def test_get_parameters_str_with_function_parameter(self): def test_func(foo, bar=None, test_func=time.sleep): pass parameters_str = i_u.get_arg_list_as_str(test_func) self.assertEqual("foo, bar=null", parameters_str)
def register_action_class(name, cls, attributes=None, desc=None): action_manager.register_action_class( name, '%s.%s' % (cls.__module__, cls.__name__), attributes or {}, input_str=i_utils.get_arg_list_as_str(cls.__init__) )
def create_actions(cls): mapping = get_mapping() method_dict = mapping[cls.action_namespace] action_classes = [] for action_name, method_name in method_dict.items(): clazz = cls.create_action_class(method_name) try: client_method = clazz.get_fake_client_method() except Exception as e: LOG.debug("Failed to get fake client method: %s" % e) client_method = None if client_method: arg_list = i_u.get_arg_list_as_str(client_method) description = i_u.get_docstring(client_method) else: arg_list = '' description = None action_classes.append( { 'class': clazz, 'name': "%s.%s" % (cls.action_namespace, action_name), 'description': description, 'arg_list': arg_list, } ) return action_classes
def test_get_parameters_str_all_mandatory(self): clazz = commands.RunTask parameters_str = i_u.get_arg_list_as_str(clazz.__init__) self.assertEqual( 'wf_ex, wf_spec, task_spec, ctx, triggered_by=null,' ' handles_error=false', parameters_str)
def test_get_parameters_str_all_mandatory(self): clazz = commands.RunTask parameters_str = i_u.get_arg_list_as_str(clazz.__init__) self.assertEqual( 'wf_ex, wf_spec, task_spec, ctx, triggered_by=null,' ' handles_error=false', parameters_str )
def test_get_parameters_str(self): action_class = std_actions.HTTPAction parameters_str = i_u.get_arg_list_as_str(action_class.__init__) http_action_params = ('url, method="GET", params=null, body=null, ' 'headers=null, cookies=null, auth=null, ' 'timeout=null, allow_redirects=null, ' 'proxies=null, verify=null') self.assertEqual(http_action_params, parameters_str)
def test_get_parameters_str(self): action_class = std_actions.HTTPAction parameters_str = i_u.get_arg_list_as_str(action_class.__init__) http_action_params = ( 'url, method="GET", params=null, body=null, ' 'headers=null, cookies=null, auth=null, ' 'timeout=null, allow_redirects=null, ' 'proxies=null, verify=null' ) self.assertEqual(http_action_params, parameters_str)
def test_get_parameters_str(self): action_class = std_actions.HTTPAction parameters_str = i_u.get_arg_list_as_str(action_class.__init__) http_action_params = ( "url, method=GET, params=None, body=None, " "headers=None, cookies=None, auth=None, " "timeout=None, allow_redirects=None, " "proxies=None, verify=None" ) self.assertEqual(http_action_params, parameters_str)
def _get_client_method(cls, client): method = getattr(cls, cls.client_method_name) # We can't use partial as it's not supported by getargspec @functools.wraps(method) def wrap(*args, **kwargs): return method(client, *args, **kwargs) arguments = inspect_utils.get_arg_list_as_str(method) # Remove client wrap.__arguments__ = arguments.split(', ', 1)[1] return wrap
def _get_client_method(cls, client): if cls.client_method_name != "secrets_store": return super(BarbicanAction, cls)._get_client_method(client) method = getattr(cls, cls.client_method_name) @functools.wraps(method) def wrap(*args, **kwargs): return method(client, *args, **kwargs) args = inspect_utils.get_arg_list_as_str(method) # Remove client. wrap.__arguments__ = args.split(', ', 1)[1] return wrap
def _extract_actions_from_module(module): action_list = [] for member in inspect.getmembers(module): if inspect.isclass(member[1]) and hasattr( member[1], '__export__') and hasattr(member[1], 'run'): action = {} cls = member[1] module_name = cls.__module__ action['name'] = (ROOT_NAMESPACE + module_name[module_name.index('.'):] + '.' + utils.convert_to_snake_case(cls.__name__)) action['action_class_str'] = cls.__module__ + '.' + cls.__name__ action['attributes'] = i_utils.get_public_fields(cls) action['description'] = i_utils.get_docstring(cls) action['input_str'] = i_utils.get_arg_list_as_str(cls.__init__) action_list.append(action) return action_list
def register_action_classes(): mgr = extension.ExtensionManager(namespace='mistral.actions', invoke_on_load=False) for name in mgr.names(): action_class_str = mgr[name].entry_point_target.replace(':', '.') action_class = mgr[name].plugin description = i_utils.get_docstring(action_class) input_str = i_utils.get_arg_list_as_str(action_class.__init__) attrs = i_utils.get_public_fields(mgr[name].plugin) register_action_class(name, action_class_str, attrs, description=description, input_str=input_str) _register_dynamic_action_classes()
def create_actions(cls): mapping = get_mapping() method_dict = mapping.get(cls.action_namespace, {}) action_classes = [] for action_name, method_name in method_dict.items(): class_ = cls.create_action_class(method_name) try: client_method = class_.get_fake_client_method() except Exception: LOG.exception( "Failed to create action: %s.%s", cls.action_namespace, action_name ) continue arg_list = i_u.get_arg_list_as_str(client_method) # Support specifying region for OpenStack actions. modules = CONF.openstack_actions.modules_support_region if cls.action_namespace in modules: arg_list = cls.prepare_action_inputs( arg_list, added=['action_region=""'] ) description = i_u.get_docstring(client_method) action_classes.append( { 'class': class_, 'name': "%s.%s" % (cls.action_namespace, action_name), 'description': description, 'arg_list': arg_list, } ) return action_classes
def register_action_classes(): mgr = extension.ExtensionManager( namespace='mistral.actions', invoke_on_load=False ) for name in mgr.names(): action_class_str = mgr[name].entry_point_target.replace(':', '.') action_class = mgr[name].plugin description = i_utils.get_docstring(action_class) input_str = i_utils.get_arg_list_as_str(action_class.__init__) attrs = i_utils.get_public_fields(mgr[name].plugin) register_action_class( name, action_class_str, attrs, description=description, input_str=input_str ) _register_dynamic_action_classes()
def create_actions(cls): mapping = get_mapping() method_dict = mapping.get(cls.action_namespace, {}) action_classes = [] for action_name, method_name in method_dict.items(): class_ = cls.create_action_class(method_name) try: client_method = class_.get_fake_client_method() except Exception: LOG.exception("Failed to create action: %s.%s", cls.action_namespace, action_name) continue arg_list = i_u.get_arg_list_as_str(client_method) # Support specifying region for OpenStack actions. modules = CONF.openstack_actions.modules_support_region if cls.action_namespace in modules: arg_list = cls.prepare_action_inputs( arg_list, added=['action_region=""']) description = i_u.get_docstring(client_method) action_classes.append({ 'class': class_, 'name': "%s.%s" % (cls.action_namespace, action_name), 'description': description, 'arg_list': arg_list, }) return action_classes
def test_get_parameters_str_all_mandatory(self): action_class = std_actions.SSHAction parameters_str = i_u.get_arg_list_as_str(action_class.__init__) self.assertEqual("cmd, host, username, password", parameters_str)
def test_get_parameters_str_all_mandatory(self): clazz = commands.RunTask parameters_str = i_u.get_arg_list_as_str(clazz.__init__) self.assertEqual('wf_ex, wf_spec, task_spec, ctx', parameters_str)
def test_get_parameters_str_all_mandatory(self): clazz = commands.RunTask parameters_str = i_u.get_arg_list_as_str(clazz.__init__) self.assertEqual("wf_ex, task_spec, ctx", parameters_str)