def update_from_ica(self, log_path): parsed_ica = parse_ica_log(log_path) logger.debug('Parsed ICA log file') logger.debug('Parsed content %s', parsed_ica) self.timestamp = parsed_ica['timestamp'] logger.debug('Saving timestamp - %s', self.timestamp) try: self.log_path = parsed_ica['logPath'] logger.debug('Saving log folder path - %s', self.log_path) except KeyError: logger.warning('Log folder path not found in ICA log') try: self.lis_version = parsed_ica['lisVersion'] logger.debug('Saving LIS version - %s', self.lis_version) except KeyError: logger.warning('LIS Version not found in ICA Log') for vm_name, props in parsed_ica['vms'].iteritems(): logger.debug('Updating VM, %s, with details from ICA log', vm_name) self.vms[vm_name].host_os = props['hostOS'] self.vms[vm_name].hv_server = props['hvServer'] self.vms[vm_name].location = props['TestLocation'] for test_name, test_props in self.test_cases.iteritems(): self.test_cases[test_name].update_results(parsed_ica['tests'][test_name]) logger.debug( 'Saving test result for %s - %s', test_name, parsed_ica['tests'][test_name][1] )
def update_from_ica(self, log_path, lis_version=None): parsed_ica = parse_ica_log(log_path) logger.debug('Parsed ICA log file') logger.debug('Parsed content %s', parsed_ica) self.timestamp = parsed_ica['timestamp'] logger.debug('Saving timestamp - %s', self.timestamp) try: self.log_path = parsed_ica['logPath'] logger.debug('Saving log folder path - %s', self.log_path) except KeyError: logger.warning('Log folder path not found in ICA log') if not lis_version: try: self.lis_version = parsed_ica['lisVersion'] logger.debug('Saving LIS version - %s', self.lis_version) except KeyError: logger.warning('LIS Version not found in ICA Log') else: self.lis_version = lis_version for vm_name, props in parsed_ica['vms'].iteritems(): logger.debug('Updating VM, %s, with details from ICA log', vm_name) self.vms[vm_name].host_os = props['hostOS'] self.vms[vm_name].hv_server = props['hvServer'] self.vms[vm_name].location = props['TestLocation'] to_remove = [] remove_vms = self.vms.keys() for test_name, test_props in self.test_cases.iteritems(): try: self.test_cases[test_name].update_results(parsed_ica['tests'][test_name]) # Remove dependency VMs if parsed_ica['tests'][test_name][0] in remove_vms: remove_vms.remove(parsed_ica['tests'][test_name][0]) logger.debug( 'Saving test result for %s - %s', test_name, parsed_ica['tests'][test_name][1] ) except KeyError: logger.warning('Result for %s was not found in ICA log file', test_name) to_remove.append(test_name) if remove_vms: for vm_name in remove_vms: del self.vms[vm_name] if to_remove: self.remove_cases(to_remove)
def update_from_ica(self, log_path): parsed_ica = parse_ica_log(log_path) logger.debug("Parsed ICA log file") logger.debug("Parsed content %s", parsed_ica) self.timestamp = parsed_ica["timestamp"] logger.debug("Saving timestamp - %s", self.timestamp) try: self.log_path = parsed_ica["logPath"] logger.debug("Saving log folder path - %s", self.log_path) except KeyError: logger.warning("Log folder path not found in ICA log") try: self.lis_version = parsed_ica["lisVersion"] logger.debug("Saving LIS version - %s", self.lis_version) except KeyError: logger.warning("LIS Version not found in ICA Log") for vm_name, props in parsed_ica["vms"].iteritems(): logger.debug("Updating VM, %s, with details from ICA log", vm_name) self.vms[vm_name].host_os = props["hostOS"] self.vms[vm_name].hv_server = props["hvServer"] self.vms[vm_name].location = props["TestLocation"] to_remove = [] remove_vms = self.vms.keys() for test_name, test_props in self.test_cases.iteritems(): try: self.test_cases[test_name].update_results(parsed_ica["tests"][test_name]) # Remove dependency VMs if parsed_ica["tests"][test_name][0] in remove_vms: remove_vms.remove(parsed_ica["tests"][test_name][0]) logger.debug("Saving test result for %s - %s", test_name, parsed_ica["tests"][test_name][1]) except KeyError: logger.warning("Result for %s was not found in ICA log file", test_name) to_remove.append(test_name) if remove_vms: for vm_name in remove_vms: del self.vms[vm_name] if to_remove: self.remove_cases(to_remove)