Allow to pass cinderv3 internal params
This patch allows to pass number of retries to cinderv3 module
via connection_params.
cinder:
controller:
client:
connection_params:
connect_retries: 2
connect_retry_delay: 10
client:
connection_params:
connect_retries: 2
connect_retry_delay: 10
* Remove dead code from cinder.client
* Increase default retries to 60sec
Change-Id: I27aa89d95ac82b12fcb919f74e09877fb01e96de
Related-Prod: PROD-25982
diff --git a/_states/cinderv3.py b/_states/cinderv3.py
index c954c12..511ec5f 100644
--- a/_states/cinderv3.py
+++ b/_states/cinderv3.py
@@ -20,7 +20,7 @@
try:
method_name = '{}_get_details'.format(resource)
exact_resource = _cinder_call(
- method_name, name, cloud_name=cloud_name
+ method_name, name, cloud_name=cloud_name, **kwargs
)[resource]
except Exception as e:
if 'ResourceNotFound' in repr(e):
@@ -56,11 +56,12 @@
return _succeeded('no_changes', name, resource)
-def _resource_absent(resource, name, cloud_name):
+def _resource_absent(resource, name, cloud_name, connection_params=None):
try:
method_name = '{}_get_details'.format(resource)
_cinder_call(
- method_name, name, cloud_name=cloud_name
+ method_name, name, cloud_name=cloud_name,
+ connection_params=connection_params
)[resource]
except Exception as e:
if 'ResourceNotFound' in repr(e):
@@ -70,7 +71,8 @@
try:
method_name = '{}_delete'.format(resource)
_cinder_call(
- method_name, name, cloud_name=cloud_name
+ method_name, name, cloud_name=cloud_name,
+ connection_params=connection_params
)
except Exception as e:
log.error('Cinder delete {0} failed with {1}'.format(resource, e))
@@ -78,32 +80,36 @@
return _succeeded('delete', name, resource)
-def service_enabled(name, binary, cloud_name):
+def service_enabled(name, binary, cloud_name, connection_params=None):
"""Ensures that the service is enabled on the host
- :param name: name of a host where service is running
- :param binary: name of the service have to be run
+ :param name: name of a host where service is running
+ :param binary: name of the service have to be run
+ :param connection_params: dictionary with salt internal connection params
"""
changes = {}
ret = []
- services = _cinder_call('service_list', host=name, binary=binary, cloud_name=cloud_name)['services']
+ services = _cinder_call('service_list', host=name, binary=binary, cloud_name=cloud_name,
+ connection_params=connection_params)['services']
disabled_service = [s for s in services if s['status'] == 'disabled']
if len(disabled_service):
for service in disabled_service:
- changes = _cinder_call('service_update', service['host'], binary, 'enable', cloud_name=cloud_name)
+ changes = _cinder_call('service_update', service['host'], binary, 'enable', cloud_name=cloud_name,
+ connection_params=connection_params)
ret.append(changes)
return _succeeded('update', name, binary, {'changes':ret})
return _succeeded('no_changes', name, binary)
-def service_disabled(name, binary, cloud_name, disabled_reason=None):
+def service_disabled(name, binary, cloud_name, disabled_reason=None, connection_params=None):
"""Ensures that the service is disabled on the host
:param name: name of a host where service is running
:param binary: name of the service have to be disabled
+ :param connection_params: dictionary with salt internal connection params
"""
kwargs = {}
ret = []
@@ -111,13 +117,16 @@
if disabled_reason:
kwargs['disabled_reason'] = disabled_reason
- services = _cinder_call('service_list', host=name, binary=binary, cloud_name=cloud_name)['services']
+ services = _cinder_call('service_list', host=name, binary=binary, cloud_name=cloud_name,
+ connection_params=connection_params)['services']
enabled_services = [s for s in services if s['status'] == 'enabled']
if len(enabled_services):
for service in enabled_services:
- changes = _cinder_call('service_update', service['host'], binary, 'disable', cloud_name=cloud_name, **kwargs)
+ changes = _cinder_call('service_update', service['host'], binary, 'disable',
+ cloud_name=cloud_name, connection_params=connection_params,
+ **kwargs)
ret.append(changes)
return _succeeded('update', name, binary, {'changes':ret})
return _succeeded('no_changes', name, binary)
@@ -127,8 +136,8 @@
return _resource_present('volume_type', name, cloud_name, **kwargs)
-def volume_type_absent(name, cloud_name):
- return _resource_absent('volume_type', name, cloud_name)
+def volume_type_absent(name, cloud_name, connection_params=None):
+ return _resource_absent('volume_type', name, cloud_name, connection_params)
def volume_present(name, cloud_name, size, **kwargs):
@@ -138,18 +147,20 @@
return _resource_present('volume', name, cloud_name, **kwargs)
-def volume_absent(name, cloud_name):
- return _resource_absent('volume', name, cloud_name)
+def volume_absent(name, cloud_name, connection_params=None):
+ return _resource_absent('volume', name, cloud_name, connection_params)
-def volume_type_key_present(name=None, key=None, value=None, cloud_name=None):
+def volume_type_key_present(name=None, key=None, value=None, cloud_name=None,
+ connection_params=None):
"""
Ensures that the extra specs are present on a volume type.
"""
keys = "{u'" + key + "': u'" + value + "'}"
keys = ast.literal_eval(keys)
signal_create = _cinder_call('keys_volume_type_set', name, keys=keys,
- cloud_name=cloud_name)
+ cloud_name=cloud_name,
+ connection_params=connection_params)
if signal_create["result"] is True:
ret = {
'name': name,