def execute_method(self, resource, method_name, opts={}): """executes given method with specified opts.""" if hasattr(resource, method_name): method = getattr(resource, method_name) method_args = OrderedDict().fromkeys( MethodHelper.getMethodArgs(brokers, method.im_class.__name__, method_name, drop_self=True)) if method_args: for arg in method_args.keys(): param_type = ParseHelper.getXmlType(arg) if param_type: method_args[arg] = self.update_object_data( param_type.factory(), opts) elif opts.has_key('--' + arg): method_args[arg] = opts['--' + arg] else: # TODO: throw error if param is mandatory pass try: result = method(**method_args) except AttributeError: self.error(Messages.Error.UNSUPPORTED_ATTRIBUTE) else: result = method() return result else: self.error('no such action "%s"' % method_name)
def execute_method(self, resource, method_name, opts={}): """executes given method with specified opts.""" if hasattr(resource, method_name): method = getattr(resource, method_name) method_args = OrderedDict().fromkeys(MethodHelper.getMethodArgs(brokers, method.im_class.__name__, method_name, drop_self=True)) if method_args: for arg in method_args.keys(): param_type = ParseHelper.getXmlType(arg) if param_type: method_args[arg] = self.update_object_data(param_type.factory(), opts) elif opts.has_key('--' + arg): method_args[arg] = opts['--' + arg] else: # TODO: throw error if param is mandatory pass try: result = method(**method_args) except AttributeError: self.error(Messages.Error.UNSUPPORTED_ATTRIBUTE) else: result = method() return result else: self.error('no such action "%s"' % method_name)
def __add_resource_specific_options(self, obj, specific_options, line, key=None): typ = TypeHelper.getDecoratorType(obj) if typ: plur_obj = TypeHelper.to_plural(typ) if hasattr(brokers, plur_obj): method_args = MethodHelper.getMethodArgs( brokers, plur_obj, ListCmdShell.NAME, True, True, True) if method_args: specific_options[obj if key == None else key] = method_args
def __add_resource_specific_options(self, obj, specific_options, line, key=None): typ = TypeHelper.getDecoratorType(obj) if typ: plur_obj = TypeHelper.to_plural(typ) if hasattr(brokers, plur_obj): method_args = MethodHelper.getMethodArgs(brokers, plur_obj, ListCmdShell.NAME, True, True, True) if method_args: specific_options[obj if key == None else key] = method_args