Example #1
0
    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)
Example #2
0
    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