def load(file_name): with open(file_name) as input_file: content = input_file.read() json_data_representation = json.loads( content, object_pairs_hook=collections.OrderedDict) data = Data() for json_service_representation in json_data_representation: service = Service( ServiceDescription( ServiceLocalization(json_service_representation['host'], json_service_representation['port']), ServiceParameters( json_service_representation['service_type'], '/redfish/v1', None))) for json_resource_representation in json_service_representation[ 'resources']: resource = Resource( json_resource_representation['path'], json_resource_representation['status_code'], json_resource_representation['headers'], json_resource_representation['body']) service.add_resource(resource) data.add_service(service) return data
def _create_pod_manager_service_description(): service_localization = ServiceLocalization(PodManagerDefaults.host, PodManagerDefaults.port) service_parameters = ServiceParameters(PodManagerDefaults.service_type, PodManagerDefaults.root_path, PodManagerDefaults.protocol) return ServiceDescription(service_localization, service_parameters)
def retrieve_service_descriptions(cls): pod_manager_service_description = ServiceDescription( ServiceLocalization(ServiceRetriever._pod_manager_host, ServiceRetriever._default_port), ServiceParameters(ServiceRetriever._pod_manager_service_type, ServiceRetriever._pod_manager_root_path, ServiceRetriever._default_protocol)) descriptions = cls._additional_work() descriptions.insert(0, pod_manager_service_description) return descriptions
def parse_line(line): match = PodManagerLogParser._service_detected_pattern.match(line) uri = match.group(1) service_type = match.group(2) parsed_uri = urllib.parse.urlsplit(uri) service_localization = ServiceLocalization(parsed_uri.hostname, parsed_uri.port) service_parameters = ServiceParameters(service_type, parsed_uri.path, parsed_uri.scheme) return [ServiceDescription(service_localization, service_parameters)]
def parse_line(line): line_split = line.split() uri = line_split[0] parsed_uri = urllib.parse.urlsplit(uri) root_path = parsed_uri.path protocol = Protocols.from_string(parsed_uri.scheme) service_type = line_split[1] service_localization = ServiceLocalization(parsed_uri.hostname, parsed_uri.port) service_parameters = ServiceParameters(service_type, root_path, protocol) return [ServiceDescription(service_localization, service_parameters)]
def parse_line(line): line_split = line.split() host = line_split[1] service_type = line_split[2] [ports, protocol ] = ServiceConnectionReader.read_connection_security_parameters( service_type) service_parameters = ServiceParameters(service_type, PodManagerDefaults.root_path, protocol) service_descriptions = [] for port in ports: service_localization = ServiceLocalization(host, port) service_description = ServiceDescription(service_localization, service_parameters) service_descriptions.append(service_description) return service_descriptions
def _append_descriptions_from_log(descriptions, file): for line in file: match = PodManagerLogParser._service_detected_regular_expression.match( line) if match is not None: uri = match.group(1) service_type = match.group(2) parsed = urllib.parse.urlparse(uri) protocol = parsed.scheme host = parsed.hostname port = parsed.port root_path = parsed.path description = ServiceDescription( ServiceLocalization(host, port), ServiceParameters(service_type, root_path, protocol)) if description in descriptions: descriptions.remove(description) descriptions.append(description)
def _additional_work(): descriptions = [] if os.path.isfile(LeasesParser._leases_file_location): with open(LeasesParser._leases_file_location) as leases_file: lines = leases_file.readlines() for line in lines: line_split = line.split() host = line_split[1] service_type = line_split[2] [port, protocol] = LeasesParser._read_connection_security_parameters(service_type) description = ServiceDescription( ServiceLocalization(host, port), ServiceParameters(service_type, ServiceRetriever._pod_manager_root_path, protocol) ) descriptions.append(description) return descriptions
def crawl(arguments): service_description = ServiceDescription.from_uri(arguments.uri) data = ScriptController._crawl_services([service_description]) print(DataToJsonConverter.dumps(data, False))