- print "len(act_all[%s]) == 0, skipping %s %s" % (nodename, loginbase, nodename)
- continue
-
- y = self.act_all[nodename][0]
-
- ## skip if end-stage
- #if 'stage' in y and "monitor-end-record" in y['stage']:
- # # 1) ok, b/c it's a new problem. set ticket_id to null
- ## self.mergedb[loginbase][nodename] = {}
- # self.mergedb[loginbase][nodename].update(x)
- # self.mergedb[loginbase][nodename]['ticket_id'] = ""
- # self.mergedb[loginbase][nodename]['prev_category'] = None
- # continue
-
- ## for legacy actions
- #if 'bucket' in y and y['bucket'][0] == 'dbg':
- # # Only bootcd debugs made it to the act_all db.
- # y['prev_category'] = "OLDBOOTCD"
- #elif 'bucket' in y and y['bucket'][0] == 'down':
- # y['prev_category'] = "ERROR"
- #elif 'bucket' not in y:
- # # for all other actions, just carry over the
- # # previous category
- # y['prev_category'] = y['category']
- #else:
- # print "UNKNOWN state for record: %s" % y
- # sys.exit(1)
-
- # determine through translation, if the buckets match
- #if 'category' in y and x['category'] == y['category']:
- # b_match = True
- #elif x['category'] == "OLDBOOTCD" and y['bucket'][0] == 'dbg':
- # b_match = True
- #elif x['category'] == "ERROR" and y['bucket'][0] == 'down':
- # b_match = True
- #else:
- # b_match = False
-
- #if b_match:
- # # 2b) ok, b/c they agree that there's still a problem..
- # # 2b) Comon & Monitor still agree; RT ticket?
- #else:
- # # 2a) mismatch, need a policy for how to resolve
- # # resolution will be handled in __diagnoseNode()
- # # for now just record the two categories.
- # #if x['category'] == "PROD" and x['state'] == "BOOT" and \
- # # ( y['bucket'][0] == 'down' or y['bucket'][0] == 'dbg'):
- # print "FINDBAD and MONITOR have a mismatch: %s vs %s" % \
- # (x['category'], y['bucket'])
-
- y['prev_category'] = y['category']
- self.mergedb[loginbase][nodename] = {}
- self.mergedb[loginbase][nodename].update(y)
- self.mergedb[loginbase][nodename]['comonstats'] = x['comonstats']
- self.mergedb[loginbase][nodename]['category'] = x['category']
- self.mergedb[loginbase][nodename]['state'] = x['state']
- self.mergedb[loginbase][nodename]['kernel']=x['kernel']
- self.mergedb[loginbase][nodename]['bootcd']=x['bootcd']
- self.mergedb[loginbase][nodename]['plcnode']=x['plcnode']
+ self.mergedb[loginbase][nodename] = {}
+ self.mergedb[loginbase][nodename].update(x)
+ self.mergedb[loginbase][nodename]['ticket_id'] = ""
+ self.mergedb[loginbase][nodename]['prev_category'] = "NORECORD"
+ else:
+ y = self.act_all[nodename][0]
+ y['prev_category'] = y['category']
+
+ self.mergedb[loginbase][nodename] = {}
+ self.mergedb[loginbase][nodename].update(y)
+ self.mergedb[loginbase][nodename]['comonstats'] = x['comonstats']
+ self.mergedb[loginbase][nodename]['category'] = x['category']
+ self.mergedb[loginbase][nodename]['state'] = x['state']
+ self.mergedb[loginbase][nodename]['kernel']=x['kernel']
+ self.mergedb[loginbase][nodename]['bootcd']=x['bootcd']
+ self.mergedb[loginbase][nodename]['plcnode']=x['plcnode']
+ ticket = get_ticket_id(self.mergedb[loginbase][nodename])
+ self.mergedb[loginbase][nodename]['rt'] = mailer.getTicketStatus(ticket)
+