def list_available_modules(hostname): """ Gets all available modules (for given host) and returns a list with them. :param hostname: :return: """ modules_list = [] module = Module(hostname) # getting keys keys = get_keys('{0}:modules:*'.format(module.host())) names = [x.rpartition(':')[-1] for x in keys] for name in names: loaded_sys_versions = [ x for x in sys.modules.keys() if '{0}_v'.format(name) in x ] lastest_code_version = module.latest_version(name) source_code = Module(hostname).get_source(name) obj = { 'name': name, 'latest_code_version': lastest_code_version, 'loaded_sys_versions': loaded_sys_versions, 'source_raw': source_code, 'href': '/api/v2/modules/objects/%s' % name } modules_list.append(obj) return {'version': version, 'data': modules_list}
def list_module(handler, names): module = Module(get_hostname(handler.request)) info = {} if not names: names = [ x.rpartition(':')[-1] for x in get_keys('{0}:modules:*'.format(module.host())) ] for name in names: loaded_sys_versions = [x for x in sys.modules.keys() if \ '{0}_v'.format(name) in x] lastest_code_version = module.latest_version(name) info[name] = { 'latest_code_version': lastest_code_version, 'loaded_sys_versions': loaded_sys_versions } payload = dict(message='list modules', info=info) return {'version': version, 'data': payload}
def list_module(handler, names): module = Module(get_hostname(handler.request)) info = {} if not names: names = [x.rpartition(':')[-1] for x in get_keys( '{0}:modules:*'.format(module.host()))] for name in names: loaded_sys_versions = [x for x in sys.modules.keys() if '{0}_v'.format(name) in x] lastest_code_version = module.latest_version(name) info[name] = { 'latest_code_version': lastest_code_version, 'loaded_sys_versions': loaded_sys_versions } payload = dict(message='list modules', info=info) return { 'version': version, 'data': payload }