def main(self): with self.get_system() as system: file_id = self.prepare_file_by_args(system) if file_id is None: raise ValueError("No file specification supplied") api = system.async_call.api_analysis(file_id.get_result()) if self.store and self.project: if not self.proj_commit_date: raise ValueError( "Commit date required when storing API results of a project" ) system.call.api_store_project(self.project, self.proj_commit, self.proj_commit_date, api.result, api.meta) elif self.store and self.package_name: system.call.api_store_package(self.package_name, self.pkg_version, self.pkg_release, self.pkg_distro, api.result, api.meta) elif self.store: # when --package raise RuntimeError("Store API not supported") if self.meta: print dict2json(api.get_result_with_meta()) else: print dict2json(api.result) return 0
def main(self): with self.get_system() as system: file_id = self.prepare_file_by_args(system) if not file_id: raise ValueError("No file specified") deps = system.async_call.deps_analysis(file_id.get_result()) if self.store and self.project: if not self.proj_commit_date: raise ValueError( "Commit date required when storing dependency results of a project" ) system.call.deps_store_project(self.project, self.proj_commit, self.proj_commit_date, deps.result, deps.meta) elif self.store and self.package_name: system.call.deps_store_package(self.package_name, self.pkg_version, self.pkg_release, self.pkg_distro, deps.result, deps.meta) elif self.store: # TODO: when --package raise RuntimeError("Store Deps not supported") if self.meta: print dict2json(deps.get_result_with_meta()) else: print dict2json(deps.result) return 0
def main(self): with self.get_system() as system: file_id = self.prepare_file_by_args(system) if file_id is None: raise ValueError("No file specification supplied") api = system.async_call.api_analysis(file_id.get_result()) if self.store and self.project: if not self.proj_commit_date: raise ValueError("Commit date required when storing API results of a project") system.call.api_store_project(self.project, self.proj_commit, self.proj_commit_date, api.result, api.meta) elif self.store and self.package_name: system.call.api_store_package(self.package_name, self.pkg_version, self.pkg_release, self.pkg_distro, api.result, api.meta) elif self.store: # when --package raise RuntimeError("Store API not supported") if self.meta: print dict2json(api.get_result_with_meta()) else: print dict2json(api.result) return 0
def main(self): with self.get_system() as system: file_id = self.prepare_file_by_args(system) if not file_id: raise ValueError("No file specified") deps = system.async_call.deps_analysis(file_id.get_result()) if self.store and self.project: if not self.proj_commit_date: raise ValueError("Commit date required when storing dependency results of a project") system.call.deps_store_project(self.project, self.proj_commit, self.proj_commit_date, deps.result, deps.meta) elif self.store and self.package_name: system.call.deps_store_package(self.package_name, self.pkg_version, self.pkg_release, self.pkg_distro, deps.result, deps.meta) elif self.store: # TODO: when --package raise RuntimeError("Store Deps not supported") if self.meta: print dict2json(deps.get_result_with_meta()) else: print dict2json(deps.result) return 0
def _generate_status(self): ret = { "author": get_user(), "generated": get_time_str(), "gofed_version": VERSION, "hostname": get_hostname(), "topology": [] } system = System(self.get_config(), self.get_system_json_path()) for service_name in system.get_services_list(): try: registry_response = system.get_service_location(service_name) except Exception as e: log.warning("Encountered error while querying for service '%s', skipping this service ('%s')" % (service_name, str(e))) for response in registry_response: ret['topology'].append({ 'service': service_name, 'host': response[0], 'port': response[1], 'type': 'computational' if system.is_computational(service_name) else 'storage' }) ret['topology'].append({ 'type': 'registry', 'host': system.get_registry_host(), 'port': system.get_registry_port() }) print dict2json(ret)
def __init__(self, config, system_json_file, service=False): self._config = config self._connections = {} self._service = service with open(system_json_file, 'r') as f: self._system = json.load(f) log.debug("Config file:\n%s\n" % dict2json(config)) log.debug("System:\n%s\n" % dict2json(self._system))
def main(self, project_file): with self.get_system() as system: with open(project_file, 'r') as f: file_id = system.async_call.upload(f.read()) licenses = system.async_call.license_analysis(file_id.result) print dict2json(licenses.result) return 0
def main(self, projectfile): with self.get_system() as system: with open(projectfile, 'r') as f: file_id = system.async_call.upload(f.read()) br = system.async_call.spec_buildrequires(file_id.get_result()) print dict2json(br.result) return 0
def _fedora_pkgdb_packages_list(cls): packages = [] page = 0 while True: response = urllib2.urlopen(PKGDB_API_URL + '&page=%d' % (page + 1)) if response.code != 200: raise RuntimeError("Failed to receive packages from Fedora package database (%s)" % str(response.code)) response = json.loads(response.read()) if response['output'] != 'ok': raise RuntimeError("Bad response from Fedora package database:\n%s" % dict2json(response)) packages = packages + response['packages'] if response['page'] == response['page_total']: break page = int(response['page']) return packages
def _fedora_pkgdb_packages_list(cls): packages = [] page = 0 while True: response = urllib2.urlopen(PKGDB_API_URL + '&page=%d' % (page + 1)) if response.code != 200: raise RuntimeError( "Failed to receive packages from Fedora package database (%s)" % str(response.code)) response = json.loads(response.read()) if response['output'] != 'ok': raise RuntimeError( "Bad response from Fedora package database:\n%s" % dict2json(response)) packages = packages + response['packages'] if response['page'] == response['page_total']: break page = int(response['page']) return packages
def main(self, project_file1, project_file2): with self.get_system() as system: opts1 = self.construct_opts(first=True) opts2 = self.construct_opts(first=False) with open(project_file1, 'r') as f: file_id1 = system.async_call.upload(f.read()) with open(project_file2, 'r') as f: file_id2 = system.async_call.upload(f.read()) deps1 = system.async_call.deps_analysis(file_id1.result, opts1) deps2 = system.async_call.deps_analysis(file_id2.result, opts2) depsdiff = system.async_call.deps_diff(deps1.result, deps2.result) print dict2json(depsdiff.result) return 0
def main(self): with self.get_system() as system: file1_id, file2_id = self.prepare_files2_by_args(system) if not file1_id: raise ValueError("First file not specified") if not file2_id: raise ValueError("Second file not specified") api1 = system.async_call.api_analysis(file1_id.result) api2 = system.async_call.api_analysis(file2_id.result) apidiff = system.async_call.api_diff(api1.result, api2.result) if self.meta: print dict2json(apidiff.get_result_with_meta()) else: print dict2json(apidiff.result) return 0
def _generate_status(self): ret = { "author": get_user(), "generated": get_time_str(), "gofed_version": VERSION, "hostname": get_hostname(), "topology": [] } system = System(self.get_config(), self.get_system_json_path()) for service_name in system.get_services_list(): try: registry_response = system.get_service_location(service_name) except Exception as e: log.warning( "Encountered error while querying for service '%s', skipping this service ('%s')" % (service_name, str(e))) for response in registry_response: ret['topology'].append({ 'service': service_name, 'host': response[0], 'port': response[1], 'type': 'computational' if system.is_computational(service_name) else 'storage' }) ret['topology'].append({ 'type': 'registry', 'host': system.get_registry_host(), 'port': system.get_registry_port() }) print dict2json(ret)
def main(self): service_classes = [] if self.service_port: print(self._get_service_port(self.service_port)) return 0 log.info("Performing analyses for services in '%s'" % self.service_dir) for service in os.listdir(self.service_dir): path = os.path.join(self.service_dir, service) if not os.path.isdir(path): continue service_classes.append(self._analyse_service(path)) self._sanity_check(service_classes) services = self._aggregate_services(service_classes) if not self.no_configs and not self.check_only: self._render_services_conf(services) self._render_gofed_conf(services) if not self.check_only: self._make_symlinks(services) ret = self._make_header(services) if not self.ugly_output: ret = dict2json(ret) else: ret = json.dumps(ret) if self.output_file == '-': print ret else: with open(self.output_file, "w") as f: f.write(ret) self._copy_system_json(self.output_file, services) self._generate_scenarios() return 0
def main(self): with self.get_system() as system: packages = system.async_call.goland_package_listing() if self.format: for package in packages.result: fmt = { '\%a': package["acls"], '\%c': package["creation_date"], '\%d': package["description"], '\%k': package["koschei_monitor"], '\%m': package["monitor"], '\%n': package["name"], '\%r': package["review_url"], '\%S': package["status"], '\%s': package["summary"], '\%u': package["upstream_url"] } print(format_str(self.format, fmt)) else: print(dict2json(packages.result)) return 0
def signal_startup(cls, config): log.info("got startup signal") log.info("config sections: " + dict2json(config))