]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: Unable to remove an iSCSI gateway that is already in use 32304/head
authorRicardo Marques <rimarques@suse.com>
Thu, 30 Jan 2020 13:19:48 +0000 (13:19 +0000)
committerRicardo Marques <rimarques@suse.com>
Mon, 3 Feb 2020 09:44:03 +0000 (09:44 +0000)
Fixes: https://tracker.ceph.com/issues/43900
Signed-off-by: Ricardo Marques <rimarques@suse.com>
(cherry picked from commit bcb05d0cae89deeb6c5e6a0cf282d84fed7811c3)

src/pybind/mgr/dashboard/controllers/iscsi.py
src/pybind/mgr/dashboard/services/iscsi_cli.py
src/pybind/mgr/dashboard/services/iscsi_config.py

index 93189685d73aa3f36e9ea1d42c39108ccf4b8000..843b0fac0b3a8fbdefc56799502bcb182e642d3a 100644 (file)
@@ -16,6 +16,7 @@ from ..rest_client import RequestException
 from ..security import Scope
 from ..services.iscsi_client import IscsiClient
 from ..services.iscsi_cli import IscsiGatewaysConfig
+from ..services.iscsi_config import IscsiGatewayDoesNotExist
 from ..services.rbd import format_bitmask
 from ..services.tcmu_service import TcmuService
 from ..exceptions import DashboardException
@@ -848,7 +849,7 @@ class IscsiTarget(RESTController):
         for portal in target['portals']:
             try:
                 IscsiClient.instance(gateway_name=portal['host']).ping()
-            except RequestException:
+            except (IscsiGatewayDoesNotExist, RequestException):
                 return
         gateway_name = target['portals'][0]['host']
         try:
index d7a0a0139cd9a612c37c47b223254d11992c29b6..fca1f61b3cc14db1a24a176f935bad97ba016bfb 100644 (file)
@@ -8,7 +8,7 @@ from mgr_module import CLIReadCommand, CLIWriteCommand
 
 from .iscsi_client import IscsiClient
 from .iscsi_config import IscsiGatewaysConfig, IscsiGatewayAlreadyExists, InvalidServiceUrl, \
-    ManagedByOrchestratorException, IscsiGatewayDoesNotExist, IscsiGatewayInUse
+    ManagedByOrchestratorException, IscsiGatewayDoesNotExist
 from ..rest_client import RequestException
 
 
@@ -41,16 +41,8 @@ def add_iscsi_gateway(_, service_url):
                  'Remove iSCSI gateway configuration')
 def remove_iscsi_gateway(_, name):
     try:
-        try:
-            iscsi_config = IscsiClient.instance(gateway_name=name).get_config()
-            if name in iscsi_config['gateways']:
-                raise IscsiGatewayInUse(name)
-        except RequestException:
-            pass
         IscsiGatewaysConfig.remove_gateway(name)
         return 0, 'Success', ''
-    except IscsiGatewayInUse as ex:
-        return -errno.EBUSY, '', str(ex)
     except IscsiGatewayDoesNotExist as ex:
         return -errno.ENOENT, '', str(ex)
     except ManagedByOrchestratorException as ex:
index c8cded19ab043ebf9105c8d43a62aa4dcd45f06a..2f119136e1bd5021d4bc3c8f1321baf1657164c6 100644 (file)
@@ -27,12 +27,6 @@ class IscsiGatewayDoesNotExist(Exception):
             "iSCSI gateway '{}' does not exist".format(hostname))
 
 
-class IscsiGatewayInUse(Exception):
-    def __init__(self, hostname):
-        super(IscsiGatewayInUse, self).__init__(
-            "iSCSI gateway '{}' is in use".format(hostname))
-
-
 class InvalidServiceUrl(Exception):
     def __init__(self, service_url):
         super(InvalidServiceUrl, self).__init__(