]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: throughput optimized option enabled
authorPere Diaz Bou <pdiazbou@redhat.com>
Tue, 3 May 2022 12:28:22 +0000 (14:28 +0200)
committerPere Diaz Bou <pdiazbou@redhat.com>
Mon, 23 May 2022 12:42:42 +0000 (14:42 +0200)
Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
src/pybind/mgr/dashboard/controllers/osd.py

index cca990356a7c841c2982272015ef8f57790b34c0..be55bce4ce873e1e23db51926d686026858129ab 100644 (file)
@@ -86,7 +86,20 @@ predefined_drive_groups = {
         },
         'encrypted': False
     },
-    OsdDeploymentOptions.THROUGHPUT: {},
+    OsdDeploymentOptions.THROUGHPUT: {
+        'service_type': 'osd',
+        'service_id': 'throughput_optimized',
+        'placement': {
+            'host_pattern': '*'
+        },
+        'data_devices': {
+            'rotational': 1
+        },
+        'db_devices': {
+            'rotational': 0
+        },
+        'encrypted': False
+    },
     OsdDeploymentOptions.IOPS: {},
 }
 
@@ -341,12 +354,13 @@ class Osd(RESTController):
 
     def _create_predefined_drive_group(self, data):
         orch = OrchClient.instance()
-        if OsdDeploymentOptions(data[0]['option']) == OsdDeploymentOptions.COST_CAPACITY:
+        option = OsdDeploymentOptions(data[0]['option'])
+        if option in list(OsdDeploymentOptions):
             try:
                 predefined_drive_groups[
-                    OsdDeploymentOptions.COST_CAPACITY]['encrypted'] = data[0]['encrypted']
+                    option]['encrypted'] = data[0]['encrypted']
                 orch.osds.create([DriveGroupSpec.from_json(
-                    predefined_drive_groups[OsdDeploymentOptions.COST_CAPACITY])])
+                    predefined_drive_groups[option])])
             except (ValueError, TypeError, DriveGroupValidationError) as e:
                 raise DashboardException(e, component='osd')
 
@@ -494,6 +508,10 @@ class OsdUi(Osd):
         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
+
         return res.as_dict()