mirror of
https://github.com/ceph/ceph
synced 2025-02-21 01:47:25 +00:00
mgr/dashboard: Unable to remove an iSCSI gateway that is alrea… (#32984)
mgr/dashboard: Unable to remove an iSCSI gateway that is already in use Reviewed-by: Tiago Melo <tmelo@suse.com>
This commit is contained in:
commit
dcb2035cca
@ -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:
|
||||
|
@ -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:
|
||||
|
@ -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__(
|
||||
|
Loading…
Reference in New Issue
Block a user