Update clients with multi-region support
Clients for various OpenStack services were updated so that it would be possible to specify region name explicitly. If it is not provided then for clients that are used internally by the core library it is taken from the current region. Otherwise the default environment region is used. Change-Id: I289c7f8dc93a30ba1d5aa06d9da29a6af1308b9a
This commit is contained in:
parent
077a3c364b
commit
acd269f9b2
@ -30,12 +30,14 @@ CONF = config.CONF
|
||||
|
||||
|
||||
class MagnumClient(object):
|
||||
def __init__(self, this):
|
||||
def __init__(self, this, region_name=None):
|
||||
self._region_name = region_name
|
||||
self._owner = this.find_owner('io.murano.Environment')
|
||||
|
||||
@property
|
||||
def _client(self):
|
||||
region = None if self._owner is None else self._owner['region']
|
||||
region = self._region_name or (
|
||||
None if self._owner is None else self._owner['region'])
|
||||
return self._create_magnum_client(region)
|
||||
|
||||
@classmethod
|
||||
|
@ -41,7 +41,7 @@ class HeatStackError(Exception):
|
||||
|
||||
@dsl.name('io.murano.system.HeatStack')
|
||||
class HeatStack(object):
|
||||
def __init__(self, this, name, description=None):
|
||||
def __init__(self, this, name, description=None, region_name=None):
|
||||
self._name = name
|
||||
self._template = None
|
||||
self._parameters = {}
|
||||
@ -52,6 +52,7 @@ class HeatStack(object):
|
||||
self._last_stack_timestamps = (None, None)
|
||||
self._tags = ''
|
||||
self._owner = this.find_owner('io.murano.CloudRegion')
|
||||
self._region_name = None
|
||||
|
||||
@staticmethod
|
||||
def _create_client(session, region_name):
|
||||
@ -62,7 +63,8 @@ class HeatStack(object):
|
||||
|
||||
@property
|
||||
def _client(self):
|
||||
region = None if self._owner is None else self._owner['name']
|
||||
region = self._region_name or (
|
||||
None if self._owner is None else self._owner['name'])
|
||||
return self._get_client(region)
|
||||
|
||||
@staticmethod
|
||||
@ -73,7 +75,8 @@ class HeatStack(object):
|
||||
|
||||
def _get_token_client(self):
|
||||
ks_session = auth_utils.get_token_client_session(conf=CONF.heat)
|
||||
region = None if self._owner is None else self._owner['name']
|
||||
region = self._region_name or (
|
||||
None if self._owner is None else self._owner['name'])
|
||||
return self._create_client(ks_session, region)
|
||||
|
||||
def current(self):
|
||||
|
@ -35,12 +35,13 @@ LOG = logging.getLogger(__name__)
|
||||
|
||||
@dsl.name('io.murano.system.NetworkExplorer')
|
||||
class NetworkExplorer(object):
|
||||
def __init__(self, this):
|
||||
def __init__(self, this, region_name=None):
|
||||
session = helpers.get_execution_session()
|
||||
self._project_id = session.project_id
|
||||
self._settings = CONF.networking
|
||||
self._available_cidrs = self._generate_possible_cidrs()
|
||||
self._region = this.find_owner('io.murano.CloudRegion')
|
||||
self._region_name = region_name
|
||||
|
||||
@staticmethod
|
||||
@session_local_storage.execution_session_memoize
|
||||
@ -52,7 +53,8 @@ class NetworkExplorer(object):
|
||||
|
||||
@property
|
||||
def _client(self):
|
||||
region = None if self._region is None else self._region['name']
|
||||
region = self._region_name or (
|
||||
None if self._region is None else self._region['name'])
|
||||
return self._get_client(region)
|
||||
|
||||
# NOTE(starodubcevna): to avoid simultaneous router requests we use retry
|
||||
|
@ -39,12 +39,14 @@ class MistralError(Exception):
|
||||
|
||||
@dsl.name('io.murano.system.MistralClient')
|
||||
class MistralClient(object):
|
||||
def __init__(self, this):
|
||||
def __init__(self, this, region_name):
|
||||
self._owner = this.find_owner('io.murano.Environment')
|
||||
self._region_name = region_name
|
||||
|
||||
@property
|
||||
def _client(self):
|
||||
region = None if self._owner is None else self._owner['region']
|
||||
region = self._region_name or (
|
||||
None if self._owner is None else self._owner['region'])
|
||||
return self._create_client(region)
|
||||
|
||||
@staticmethod
|
||||
|
Loading…
x
Reference in New Issue
Block a user