# -*- coding: utf-8 -*-
import logging
+import time
LOG = logging.getLogger(__name__)
}
return credentials
+def retries(func):
+ def func_wrapper(*args, **kwargs):
+ retries = kwargs.get('retries', 3)
+ timeout = kwargs.get('timeout', 5)
+ res = None
+ for i in range(retries):
+ try:
+ res = func(*args, **kwargs)
+ except Exception as e:
+ if i == retries - 1:
+ raise e
+ time.sleep(timeout)
+ else:
+ break
+ return res
+ return func_wrapper
def create_conn(cred=None):
"""
)
return nt
-
+@retries
def list_volumes(profile=None, **kwargs):
"""
Return list of cinder volumes.
nt = create_conn(cred)
return nt.volumes.list()
-
+@retries
def list_volume_type(profile=None, **kwargs):
"""
Return list of volume types
nt = create_conn(cred)
return nt.volume_types.list()
-
+@retries
def get_volume_type(type_name, profile=None, **kwargs):
"""
Returns id of the specified volume type name
else:
return
-
+@retries
def create_volume_type(type_name, profile=None, **kwargs):
"""
Create cinder volume type
else:
return 'exists'
-
+@retries
def get_keys_volume_type(type_name, profile=None, **kwargs):
"""
Return extra specs of the specified volume type.
else:
return
-
+@retries
def set_keys_volume_type(type_name, keys={}, profile=None, **kwargs):
"""
Set extra specs of the specified volume type.