def import_contents(self, contents): if not contents: raise UserWarning('No content to import!') yaml = load(contents) try: host = yaml.host status = yaml.status except AttributeError: logger.warning("Incorrect report from %s, skipped!" % host) return if status == 'unchanged': # skip it, we import only changed/failed return logger.debug('Got puppet change/failed request: host: %s kind: %s' % ( yaml.host, yaml.kind )) if db.CIChangePuppet.objects.filter( configuration_version=yaml.configuration_version, host=yaml.host, ).exists(): # skip importing another copy report of the same host/config # version return report = db.CIChangePuppet() report.configuration_version = yaml.configuration_version or '' report.host = yaml.host report.kind = yaml.kind report.time = yaml.time report.ci = self.get_ci_by_name(host) report.status = status report.save() if status == 'changed' or status == 'failed': for log in yaml.logs: level = log.level message = log.message time = log.time title = status.title dblog = db.PuppetLog() dblog.cichange = report dblog.source = log.source dblog.message = message[:1024] dblog.time = time dblog.level = level dblog.save() logger.debug('-' * 40) logger.debug(''' title=%s host=%s status=%s level=%s message=%s time=%s''' % (title(), host, status, level, message, time))
def import_contents(self, contents): if not contents: raise UserWarning('No content to import!') yaml = load(contents) try: host = yaml.host status = yaml.status except AttributeError: logger.warning("Incorrect report from %s, skipped!" % host) return if status == 'unchanged': # skip it, we import only changed/failed return logger.debug('Got puppet change/failed request: host: %s kind: %s' % (yaml.host, yaml.kind)) if db.CIChangePuppet.objects.filter( configuration_version=yaml.configuration_version, host=yaml.host, ).exists(): # skip importing another copy report of the same host/config # version return report = db.CIChangePuppet() report.configuration_version = yaml.configuration_version or '' report.host = yaml.host report.kind = yaml.kind report.time = yaml.time report.ci = self.get_ci_by_name(host) report.status = status report.save() if status == 'changed' or status == 'failed': for log in yaml.logs: level = log.level message = log.message time = log.time title = status.title dblog = db.PuppetLog() dblog.cichange = report dblog.source = log.source dblog.message = message[:1024] dblog.time = time dblog.level = level dblog.save() logger.debug('-' * 40) logger.debug(''' title=%s host=%s status=%s level=%s message=%s time=%s''' % (title(), host, status, level, message, time))
def import_contents(self, contents): if not contents: raise UserWarning('No content to import!') yaml = load(contents) host = yaml.host try: status = yaml.status except AttributeError: logger.warning("Got unknown report status from host %s, skipped!" % host) return if status == 'unchanged': # skip it, we import only changed/failed return logger.debug('Got puppet change/failed request: host: %s kind: %s' % (yaml.host, yaml.kind)) report = db.CIChangePuppet() report.configuration_version = yaml.configuration_version or '' report.host = yaml.host report.kind = yaml.kind report.time = yaml.time report.ci = self.get_ci_by_name(host) report.status = status report.save() if status != 'unchanged': for key in yaml.resource_statuses: resource_status = yaml.resource_statuses[key] change_count = resource_status.change_count changed = resource_status.changed type = resource_status.resource_type time = resource_status.time logger.debug('Resource status %s %s %s %s %s' % (key, change_count, changed, type, time)) obj = db.PuppetResourceStatus() obj.change_count = change_count obj.cichange = report obj.changed = changed obj.failed = getattr(resource_status, 'failed', 0) obj.skipped = getattr(resource_status, 'skipped', 0) obj.file = resource_status.file or '' obj.line = resource_status.line or 0 obj.resource = resource_status.resource obj.resource_type = resource_status.resource_type obj.time = resource_status.time obj.title = resource_status.title obj.save() for event in resource_status.events: msg = event.message name = event.name pvalue = event.previous_value dvalue = event.desired_value pr = event.property stat = event.status logger.debug('EVENT %s %s %s %s %s' % (msg, name, pvalue, dvalue, stat)) if status == 'changed' or status == 'failed': for log in yaml.logs: level = log.level message = log.message time = log.time title = status.title try: f = log.file except: f = '' pass dblog = db.PuppetLog() dblog.cichange = report dblog.source = log.source dblog.message = message[:1024] dblog.time = time dblog.level = level dblog.save() logger.debug('-' * 40) logger.debug(''' title=%s host=%s status=%s level=%s message=%s time=%s''' % (title(), host, status, level, message, time))
def import_contents(self, contents): if not contents: raise UserWarning('No content to import!') yaml = load(contents) host = yaml.host try: status = yaml.status except AttributeError: logger.warning("Got unknown report status from host %s, skipped!" % host) return if status == 'unchanged': # skip it, we import only changed/failed return logger.debug('Got puppet change/failed request: host: %s kind: %s' % ( yaml.host, yaml.kind )) report = db.CIChangePuppet() report.configuration_version = yaml.configuration_version or '' report.host = yaml.host report.kind = yaml.kind report.time = yaml.time report.ci = self.get_ci_by_name(host) report.status = status report.save() if status !='unchanged': for key in yaml.resource_statuses: resource_status = yaml.resource_statuses[key] change_count = resource_status.change_count changed = resource_status.changed type = resource_status.resource_type time = resource_status.time logger.debug('Resource status %s %s %s %s %s' % ( key, change_count, changed, type, time )) obj = db.PuppetResourceStatus() obj.change_count = change_count obj.cichange = report obj.changed = changed obj.failed = getattr(resource_status, 'failed', 0) obj.skipped = getattr(resource_status, 'skipped', 0) obj.file = resource_status.file or '' obj.line = resource_status.line or 0 obj.resource = resource_status.resource obj.resource_type = resource_status.resource_type obj.time = resource_status.time obj.title = resource_status.title obj.save() for event in resource_status.events: msg = event.message name = event.name pvalue = event.previous_value dvalue = event.desired_value pr = event.property stat = event.status logger.debug('EVENT %s %s %s %s %s' % (msg, name, pvalue, dvalue, stat) ) if status == 'changed' or status == 'failed': for log in yaml.logs: level = log.level message = log.message time = log.time title = status.title try: f = log.file except: f = '' pass dblog = db.PuppetLog() dblog.cichange= report dblog.source = log.source dblog.message = message[:1024] dblog.time = time dblog.level = level dblog.save() logger.debug('-' * 40) logger.debug(''' title=%s host=%s status=%s level=%s message=%s time=%s''' % ( title(), host, status, level, message, time))