@CLIWriteCommand('dashboard iscsi-gateway-add',
- 'name=service_url,type=CephString',
+ 'name=service_url,type=CephString '
+ 'name=name,type=CephString,req=false',
'Add iSCSI gateway configuration')
-def add_iscsi_gateway(_, service_url):
+def add_iscsi_gateway(_, service_url, name=None):
try:
IscsiGatewaysConfig.validate_service_url(service_url)
- name = IscsiClient.instance(service_url=service_url).get_hostname()['data']
+ if name is None:
+ name = IscsiClient.instance(service_url=service_url).get_hostname()['data']
IscsiGatewaysConfig.add_gateway(name, service_url)
return 0, 'Success', ''
except IscsiGatewayAlreadyExists as ex:
import json
-from orchestrator import OrchestratorError
-
try:
from urlparse import urlparse
except ImportError:
from urllib.parse import urlparse
-from mgr_util import merge_dicts
-from .orchestrator import OrchClient
from .. import mgr
# or we will try to update automatically next time
continue
- @staticmethod
- def _load_config_from_orchestrator():
- config = {'gateways': {}} # type: dict
- try:
- instances = OrchClient.instance().services.list("iscsi")
- for instance in instances:
- config['gateways'][instance.hostname] = {
- 'service_url': instance.service_url
- }
- except (RuntimeError, OrchestratorError, ImportError):
- pass
- return config
-
@classmethod
def _save_config(cls, config):
mgr.set_store(_ISCSI_STORE_KEY, json.dumps(config))
@classmethod
def remove_gateway(cls, name):
- if name in cls._load_config_from_orchestrator()['gateways']:
- raise ManagedByOrchestratorException()
-
config = cls._load_config_from_store()
if name not in config['gateways']:
raise IscsiGatewayDoesNotExist(name)
@classmethod
def get_gateways_config(cls):
- orch_config = cls._load_config_from_orchestrator()
- local_config = cls._load_config_from_store()
-
- return {'gateways': merge_dicts(orch_config['gateways'], local_config['gateways'])}
+ return cls._load_config_from_store()
@classmethod
def get_gateway_config(cls, name):