]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/dashboard: increase API test coverage in API controllers
authorAashish Sharma <aashishsharma@localhost.localdomain>
Mon, 6 Jul 2020 10:34:51 +0000 (16:04 +0530)
committerAashish Sharma <aashishsharma@localhost.localdomain>
Mon, 6 Jul 2020 10:34:51 +0000 (16:04 +0530)
Added test cases for the missing endpoints

Fixes: https://tracker.ceph.com/issues/45901
Signed-off-by: Aashish Sharma <aasharma@redhat.com>
src/pybind/mgr/dashboard/controllers/osd.py
src/pybind/mgr/dashboard/module.py

index 1688f2697c459b91f4dcb3139ff3dc0f0a0968cb..caff46e5eaadfad4897d352d0cb0c4e1a8892ccc 100644 (file)
@@ -157,16 +157,27 @@ class Osd(RESTController):
     @raise_if_no_orchestrator
     @handle_orchestrator_error('osd')
     @osd_task('delete', {'svc_id': '{svc_id}'})
-    def delete(self, svc_id, force=None):  # pragma: no cover - requires realtime env
+    def delete(self, svc_id, preserve_id=None, force=None):  # pragma: no cover
+        replace = False
+        check = False
+        try:
+            if preserve_id is not None:
+                replace = str_to_bool(preserve_id)
+            if force is not None:
+                check = not str_to_bool(force)
+        except ValueError:
+            raise DashboardException(
+                component='osd', http_status_code=400, msg='Invalid parameter(s)')
         orch = OrchClient.instance()
-        if not force:
+        if check:
             logger.info('Check for removing osd.%s...', svc_id)
             check = self._check_delete([svc_id])
             if not check['safe']:
                 logger.error('Unable to remove osd.%s: %s', svc_id, check['message'])
                 raise DashboardException(component='osd', msg=check['message'])
-        logger.info('Start removing osd.%s...', svc_id)
-        orch.osds.remove([svc_id])
+
+        logger.info('Start removing osd.%s (replace: %s)...', svc_id, replace)
+        orch.osds.remove([svc_id], replace)
         while True:
             removal_osds = orch.osds.removing_status()
             logger.info('Current removing OSDs %s', removal_osds)
index 2f8dfdb876f53b53f5f0fd6727573e35357c97b4..669049fc233c9faadb9f7a8f979e1538e55e6349 100644 (file)
@@ -12,6 +12,7 @@ import socket
 import tempfile
 import threading
 import time
+
 from mgr_module import MgrModule, MgrStandbyModule, Option, CLIWriteCommand
 from mgr_util import get_default_addr, ServerConfigException, verify_tls_files, \
     create_self_signed_cert
@@ -290,8 +291,9 @@ class Module(MgrModule, CherryPyConfig):
 
         if 'COVERAGE_ENABLED' in os.environ:
             import coverage
-            __cov = coverage.Coverage(config_file="{}/.coveragerc".format
-            (os.path.dirname(__file__)),data_suffix=True)
+            __cov = coverage.Coverage(config_file="{}/.coveragerc"
+                                      .format(os.path.dirname(__file__)),
+                                      data_suffix=True)
             __cov.start()
             cherrypy.engine.subscribe('after_request', __cov.save)