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 __getDict(): """ Combines the dect of configuration from both default and custom config files @return: dict """ config_fname = ConfigManager.CONFIG_DIR + '/' + ConfigManager.CONFIG_FILE custom_config_fname = ConfigManager.CUSTOM_CONFIG_DIR + '/' + ConfigManager.CUSTOM_CONFIG_FILE if not ConfigManager.__dict: with ConfigManager.__lock: if not ConfigManager.__dict: config = OrderedDict( ConfigManager.__loadConfigFile( fname=config_fname ) ) custom_config = OrderedDict( ConfigManager.__loadConfigFile( fname=custom_config_fname, error_on_not_found=False ) ) if config and custom_config: config.update(custom_config) ConfigManager.__dict = config return ConfigManager.__dict
def get_method_params(module, clazz, method, holder=OrderedDict(), expendNestedTypes=False, groupOptions=False): args = MethodHelper.getMethodArgs(module, clazz, method) expender = MethodHelper.__expend_nested_type if not groupOptions: if args: if len(args) == 3: if expendNestedTypes: cand = expender(args[1], module, method, []) else: cand = args[1] cand = ", ".join(cand) if type(cand) == list else cand if not holder.has_key(args[2]): holder[args[2]] = cand else: if holder[args[2]] == None: if args[1] != None: holder[args[2]] = 'None, ' + cand else: holder[args[2]] = holder[args[2]] + ', ' + cand elif len(args) == 2: if not holder.has_key(args[1]): holder[args[1]] = None else: if holder[args[1]] == None: if holder[args[1]] != None: holder[args[1]] = 'None' + ', ' + holder[args[1]] else: holder[args[1]] = holder[args[1]] + ', ' + 'None' return MethodHelper.__remove_replications(holder) else: if args: if len(args) == 3: if expendNestedTypes: cand = expender(args[1], module, method, []) else: cand = args[1] cand = cand if type(cand) == list else [cand] if not holder.has_key(args[2]): holder[args[2]] = [cand] else: if holder[args[2]] == None: if args[1] != None: holder[args[2]] = [[], cand] elif cand not in holder[args[2]]: holder[args[2]].append(cand) elif len(args) == 2: if not holder.has_key(args[1]): holder[args[1]] = [[]] else: if holder[args[1]] == None: if holder[args[1]] != None: holder[args[1]] = [[], holder[args[1]]] elif [] not in holder[args[1]]: holder[args[1]].append([])
def __getitem__(self, key): if key not in self.data.keys(): with self.__lock: if key not in self.data.keys(): OrderedDict.__setitem__(self, key, Cache()) return OrderedDict.__getitem__(self, key)
def __init__(self): OrderedDict.__init__(self) self.__lock = threading.RLock()