Ich habe ein Szenario, in dem ich total_seconds()
Methode verwenden muss, aber es gibt keine Option, das gleiche in Python 2.7 auszuführen. In Python 2.6 total_seconds()
Methode existiert nicht.using total_seconds Funktion in Python 2.6
Es wird vorgeschlagen,
(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6)/10**6
verwenden könnte jemand mir helfen hier, wie kann ich es hier im folgenden Code verwenden. oder irgendeine Alternative wird groß sein.
final = self.stats['FINAL']
self.stats['START'] = start = final[0][1]
self.stats['END'] = end = final[-1][2]
self.stats['DELTA'] = delta = end - start
self.stats['IS_AVAILABLE'] = is_available = final[-1][0]
self.stats['AVAILABLE'] = {}
self.stats['AVAILABLE'][True] = {}
self.stats['AVAILABLE'][False] = {}
for entry in final:
is_available = entry[0]
dstart = entry[1]
dend = entry[2]
edelta = dend - dstart
etotsec = int(edelta.total_seconds())
availability[is_available]['last'] = dend
try:
# Number of seconds in this status
seconds = availability[is_available]['seconds']
seconds = seconds + etotsec
availability[is_available]['seconds'] = seconds
self.stats['AVAILABLE'][is_available]['SECONDS'] = seconds
# Update count
count = availability[is_available]['count']
count = count + 1
availability[is_available]['count'] = count
self.stats['AVAILABLE'][is_available]['COUNT'] = count
except:
availability[is_available]['seconds'] = etotsec
availability[is_available]['count'] = 1
self.stats['AVAILABLE'][is_available]['SECONDS'] = etotsec
self.stats['AVAILABLE'][is_available]['COUNT'] = 1
try:
# Register entry
registry = availability[is_available]['registry']
registry.append(entry)
availability[is_available]['registry'] = registry
self.stats['AVAILABLE'][is_available]['REGISTRY'] = registry
except:
availability[is_available]['registry'] = []
self.stats['AVAILABLE'][is_available]['REGISTRY'] = []
self.stats['LAST_UP'] = lastup = availability[True]['last']
self.stats['DOWN_COUNT'] = numdowntime = availability[False]['count']
self.stats['DOWN_SECONDS'] = totdowntime = availability[False]['seconds']
self.stats['UP_COUNT'] = numuptime = availability[True]['count']
self.stats['UP_SECONDS'] = totuptime = availability[True]['seconds']
self.stats['DOWN_PERCENTAJE'] = ptotdowntime = totdowntime * 100/delta.total_seconds()
self.stats['UP_PERCENTAJE'] = ptotuptime = totuptime * 100/delta.total_seconds()
self.stats['DOWN_LIST'] = downtimes = availability[False]['registry']
downtimes.reverse()
REPORT += "First entry recorded: %s\n" % start
REPORT += " Last entry recorded: %s\n" % end
REPORT += " Is Available: %s\n" % is_available
if not is_available:
REPORT += " Last time up: %s\n" % lastup
REPORT += " SAP Lifetime: %s\n" % delta
REPORT += " Unavailable: %s, %d times down, %.02f%% of lifetime\n" % (str(timedelta(seconds=availability[False]['seconds'])), numdowntime, ptotdowntime)
REPORT += " Available: %s, %.02f%% of lifetime\n\n" % (str(timedelta(seconds=availability[True]['seconds'])), ptotuptime)
REPORT += "Last %d/%d downtimes:\n" % (self.props['SHOW_MAX_DOWNTIMES'], len(downtimes))
for n in range(len(downtimes)):
if n < self.props['SHOW_MAX_DOWNTIMES']:
start = downtimes[n][1]
end = downtimes[n][2]
delta = end - start
duration = str(timedelta(seconds=delta.total_seconds()))
REPORT += "\t%2d - Down from: %s\t\tto: %s\tDuration: %s\n" % (n + 1, downtimes[n][1], downtimes[n][2], duration)