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:
Lenz Grimmer 2020-01-31 15:52:51 +00:00 committed by GitHub
commit dcb2035cca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 16 deletions

View 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:

View 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:

View 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__(