]> 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>
Wed, 15 Jun 2022 09:10:05 +0000 (11:10 +0200)
Signed-off-by: Pere Diaz Bou <pdiazbou@redhat.com>
(cherry picked from commit f2474bcb767893dc750b8f1231b4583925f9bfb1)

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

index 4824e50ca76f0ab1b8fdfa2d914e80c49696ad6d..59d520809a14a29374f00f3bedad57fbe6ab6a4e 100644 (file)
@@ -87,7 +87,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: {},
 }
 
@@ -338,12 +351,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')
 
@@ -491,6 +505,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()