sites = set(metricMetric.getSites()).union(set(overrideMetric.getSites())) outputEntries = [] #dateNow = datetime.now().strftime("%Y-%m-%d %H:%M:%S") for site in sites: entryFromMetric = metricMetric.getSiteEntry(site) entryFromOverride = overrideMetric.getSiteEntry(site) if entryFromMetric is not None and entryFromOverride is not None: newEntry = entryFromMetric newEntry.value = entryFromOverride.value newEntry.color = entryFromOverride.color newEntry.nvalue = entryFromOverride.nvalue newEntry.date = None elif entryFromMetric is not None: newEntry = entryFromMetric newEntry.date = None elif entryFromOverride is not None: newEntry = entryFromOverride newEntry.date = None outputEntries.append(newEntry) if len(outputEntries) > 1: header = dashboard.printHeader(scriptName="Manual Override", documentationUrl="A combination file "+ metricFileName + " and override file " + overrideFileName ) outputFile = open(outputFileName, 'w') outputFile.write(header) for entry in outputEntries: outputFile.write(str(entry) + '\n') outputFile.close()
outputEntries = [] #dateNow = datetime.now().strftime("%Y-%m-%d %H:%M:%S") for site in sites: entryFromMetric = metricMetric.getSiteEntry(site) entryFromOverride = overrideMetric.getSiteEntry(site) if entryFromMetric is not None and entryFromOverride is not None: newEntry = entryFromMetric newEntry.value = entryFromOverride.value newEntry.color = entryFromOverride.color newEntry.nvalue = entryFromOverride.nvalue newEntry.date = None elif entryFromMetric is not None: newEntry = entryFromMetric newEntry.date = None elif entryFromOverride is not None: newEntry = entryFromOverride newEntry.date = None outputEntries.append(newEntry) if len(outputEntries) > 1: header = dashboard.printHeader(scriptName="Manual Override", documentationUrl="A combination file " + metricFileName + " and override file " + overrideFileName) outputFile = open(outputFileName, 'w') outputFile.write(header) for entry in outputEntries: outputFile.write(str(entry) + '\n') outputFile.close()
elif newlifeStatus == STATUS_OK: siteColor = COLOR_OK morgueColor = "green" waitingRoomColor = "green" morgueValue = "out" waitingRoomValue = "out" if newlifeStatus is not None: lifeStatusEntries.append(dashboard.entry(date = todayAtMidnight, name = siteInfo.name, value = newlifeStatus, color = siteColor, url = LOGFILE_URL)) if newlifeStatus is not None: morgueEntries.append(dashboard.entry(date = todayAtMidnight, name = siteInfo.name, value = morgueValue, color = morgueColor, url = LOGFILE_URL)) if newlifeStatus is not None: waitingRoomEntries.append(dashboard.entry(date = todayAtMidnight, name = siteInfo.name, value = waitingRoomValue, color = waitingRoomColor, url = LOGFILE_URL)) logOutputFile = open(OUTPUT_FILE_LOGFILE, 'a') #logOutputFile.write(LOG_HEADER+'\n') #lifeStatusOutputFile = open(OUTPUT_FILE_LIFESTATUS_NAME, 'w') lifeStatusPOutputFile = open(OUTPUT_FILE_LIFESTATUSPRIMAL_NAME, 'w') #lifeStatusOutputFile.write(dashboard.printHeader(scriptName = "LifeStatus", documentationUrl="")) lifeStatusPOutputFile.write(dashboard.printHeader(scriptName = "LifeStatus", documentationUrl="")) for site in lifeStatusEntries: #lifeStatusOutputFile.write(str(site) + '\n') lifeStatusPOutputFile.write(str(site) + '\n') if str(allSitesInfo.get(site.name, "")) != "": logline = str(allSitesInfo.get(site.name, "")) logOutputFile.write(logline + '\n') logOutputFile.write("<!-- # At %s --> \n" % todayAtMidnight) print "\n--Life Status Output written to %s" % OUTPUT_FILE_LIFESTATUSPRIMAL_NAME #print "\n--Log Output written to %s" % OUTPUT_FILE_LOGFILE #lifeStatusOutputFile.close() lifeStatusPOutputFile.close() logOutputFile.close() #morgueOutputFile = open(OUTPUT_FILE_MORGUE_NAME, 'w') #for site in morgueEntries:
print site tier = sites.getTier(site) siteCurrentLifeStatus = lfStatus.getLatestEntry(site) flagBadLifeStatus = False flagGoodHC = False newCrabStatus = 'unknown' if siteCurrentLifeStatus is not None and (siteCurrentLifeStatus.value in BAD_LIFESTATUS): flagBadLifeStatus = True siteHC = hcStatus.getSiteEntries(site).values() #Check HC for the last 3 days for entry in siteHC: if entry.color == HAMMERCLOUD_OK_COLOR or useHC == False: flagGoodHC = True if flagBadLifeStatus == False and flagGoodHC == True: newCrabStatus = ENABLED_STATUS if flagBadLifeStatus == True and flagGoodHC == True: newCrabStatus = DISABLED_STATUS elif flagGoodHC == False: newCrabStatus = DISABLED_STATUS print site + " flagGoodHC :" + str(flagGoodHC) + " flagBadLifeStatus :" + str(flagBadLifeStatus)+ "New crabstatus: " + newCrabStatus if newCrabStatus != 'unknown': allsitesMetric.append(dashboard.entry(date = datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"), name = site, value = newCrabStatus, color = COLORS.get(newCrabStatus, 'white'), url = URL_ENTRY)) if len(allsitesMetric) > 1: outputFileP = open(OUTPUT_P_FILE_NAME, 'w') outputFileP.write(dashboard.printHeader(scriptName = "LifeStatus", documentationUrl="")) for site in allsitesMetric: outputFileP.write(str(site) + '\n') print "\n--Output written to %s" % OUTPUT_P_FILE_NAME outputFileP.close()
#Check HC for the last 3 days for entry in siteHC: if entry.color == HAMMERCLOUD_OK_COLOR or useHC == False: flagGoodHC = True if flagBadLifeStatus == False and flagGoodHC == True: newCrabStatus = ENABLED_STATUS if flagBadLifeStatus == True and flagGoodHC == True: newCrabStatus = DISABLED_STATUS elif flagGoodHC == False: newCrabStatus = DISABLED_STATUS print site + " flagGoodHC :" + str( flagGoodHC) + " flagBadLifeStatus :" + str( flagBadLifeStatus) + "New crabstatus: " + newCrabStatus if newCrabStatus != 'unknown': allsitesMetric.append( dashboard.entry( date=datetime.utcnow().strftime("%Y-%m-%d %H:%M:%S"), name=site, value=newCrabStatus, color=COLORS.get(newCrabStatus, 'white'), url=URL_ENTRY)) if len(allsitesMetric) > 1: outputFileP = open(OUTPUT_P_FILE_NAME, 'w') outputFileP.write( dashboard.printHeader(scriptName="LifeStatus", documentationUrl="")) for site in allsitesMetric: outputFileP.write(str(site) + '\n') print "\n--Output written to %s" % OUTPUT_P_FILE_NAME outputFileP.close()