]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: iops optimized option enabled 46737/head
authorPere Diaz Bou <pdiazbou@redhat.com>
Thu, 5 May 2022 14:34:36 +0000 (16:34 +0200)
committerNizamudeen A <nia@redhat.com>
Fri, 17 Jun 2022 17:23:29 +0000 (22:53 +0530)
Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
(cherry picked from commit 86cb558a7772df587c8eca7bdfecc95928dc7730)

src/pybind/mgr/dashboard/controllers/osd.py
src/pybind/mgr/dashboard/tests/test_osd.py

index 59d520809a14a29374f00f3bedad57fbe6ab6a4e..e4918da8452187caafaef3810a21fac96bf13fdf 100644 (file)
@@ -101,7 +101,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
+    },
 }
 
 
@@ -490,24 +500,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 1404ceedac2b377ece19300e7b66b2b5a9783542..0740f580c9a44be3dae19ecfe4714069a7f139bd 100644 (file)
@@ -393,4 +393,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