3 from datetime import datetime
8 def __init__(self, txnId, startTime, operations):
10 self.operations = operations
11 self.startTime = datetime.strptime(startTime, "%Y-%m-%d,%H:%M:%S,%f")
12 self.reachedTime = None
13 self.completeTime = None
15 def setReachedTime(self, reachedTime):
16 self.reachedTime = datetime.strptime(reachedTime, "%Y-%m-%d,%H:%M:%S,%f")
18 def setCompleteTime(self, completeTime):
19 self.completeTime = datetime.strptime(completeTime, "%Y-%m-%d,%H:%M:%S,%f")
22 return Transaction.diffInMicros(self.startTime, self.completeTime)
24 def transferTime(self):
25 return Transaction.diffInMicros(self.startTime, self.reachedTime)
28 def diffInMicros(start, end):
29 if end is not None and start is not None:
31 seconds = delta.seconds
32 microseconds = delta.microseconds
33 return (seconds * 1000000 + microseconds) / 1000
42 + unicode(self.operations)
45 + unicode(self.startTime)
48 + unicode(self.reachedTime)
51 + unicode(self.completeTime)
54 + unicode(self.transferTime())
57 + unicode(self.totalTime())
62 unicode(self.startTime)
66 + unicode(self.operations)
68 + unicode(self.transferTime())
70 + unicode(self.totalTime())
75 return "Start Time,Transaction Id,Operations,Transfer Time," "Complete Time"
79 txns = collections.OrderedDict()
80 txnBegin = open("txnbegin.txt", "r")
83 txns[arr[3]] = Transaction(
84 arr[3], arr[0] + "," + arr[1] + "," + arr[2], int(arr[4])
87 txnReached = open("txnreached.txt", "r")
88 for line in txnReached:
90 txnId = arr[3].strip()
93 txn.setReachedTime(arr[0] + "," + arr[1] + "," + arr[2])
95 txnComplete = open("txnend.txt", "r")
96 for line in txnComplete:
98 txnId = arr[3].strip()
101 txn.setCompleteTime(arr[0] + "," + arr[1] + "," + arr[2])
106 def filterTransactionsByTimeToComplete(timeToComplete):
107 txns = processFiles()
110 if txns[txn].totalTime() > timeToComplete:
112 totalTime += txns[txn].totalTime()
114 print("Total time for these transactions = ", unicode(totalTime))
118 txns = processFiles()
119 print(Transaction.csv_header())
121 print(txns[txn].csv())