]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: iops optimized option enabled 46819/head
authorPere Diaz Bou <pdiazbou@redhat.com>
Thu, 5 May 2022 14:34:36 +0000 (16:34 +0200)
committerPere Diaz Bou <pdiazbou@redhat.com>
Wed, 22 Jun 2022 15:17:48 +0000 (17:17 +0200)
Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
src/pybind/mgr/dashboard/controllers/osd.py
src/pybind/mgr/dashboard/tests/test_osd.py

index dfae52da33697722778ba628074e0864f5609c26..df3eb2f88a13c7615622a4638c4fb10d071cc030 100644 (file)
@@ -100,7 +100,17 @@ predefined_drive_groups = {
         },
         'encrypted': False
     },
-    OsdDeploymentOptions.IOPS: {},
+    OsdDeploymentOptions.IOPS: {
+        'service_type': 'osd',
+        'service_id': 'iops_optimized',
+        'placement': {
+            'host_pattern': '*'
+        },
+        'data_devices': {
+            'rotational': 0
+        },
+        'encrypted': False
+    },
 }
 
 
@@ -489,24 +499,26 @@ class OsdUi(Osd):
         ssds = 0
         nvmes = 0
         res = DeploymentOptions()
-        devices = {}
 
         for inventory_host in orch.inventory.list(hosts=None, refresh=True):
             for device in inventory_host.devices.devices:
                 if device.available:
-                    devices[device.path] = device
                     if device.human_readable_type == 'hdd':
                         hdds += 1
-                    elif device.human_readable_type == 'ssd':
+                    else:
                         ssds += 1
-                    elif device.human_readable_type == 'nvme':
+                        # we still don't know how to infer nvmes
+                        # Tracker: https://tracker.ceph.com/issues/55728
                         nvmes += 1
+
         if hdds:
             res.options[OsdDeploymentOptions.COST_CAPACITY].available = True
             res.recommended_option = OsdDeploymentOptions.COST_CAPACITY
         if ssds:
             res.options[OsdDeploymentOptions.THROUGHPUT].available = True
             res.recommended_option = OsdDeploymentOptions.THROUGHPUT
+        if nvmes:
+            res.options[OsdDeploymentOptions.IOPS].available = True
 
         return res.as_dict()
 
index 4fc1de4bf72aea2cf3e614e6c5c9f2757f21ca45..9f83fa74b37cbbd6c0d2aa265dfd8454e50fe4bf 100644 (file)
@@ -451,4 +451,5 @@ class OsdTest(ControllerTestCase):
         res = self._get_deployment_options(fake_client, devices_data)
         self.assertTrue(res['options'][OsdDeploymentOptions.COST_CAPACITY]['available'])
         self.assertTrue(res['options'][OsdDeploymentOptions.THROUGHPUT]['available'])
+        self.assertTrue(res['options'][OsdDeploymentOptions.IOPS]['available'])
         assert res['recommended_option'] == OsdDeploymentOptions.THROUGHPUT