def bug_data(self, bugidlist, tdelta, bugcolumn=DEFAULT_BUGCOLUMN): bugsdata = [] for id in bugidlist: argv_openbug = ['-w', bugcolumn, str(id)] args = bz.parse_options(argv_openbug) bugzilla_url = bz.options.bugzilla_url bd_bug = bd.Bug() cookie_file = bd_bug.cookie_file() server = bz.BugzillaServer(bugzilla_url, cookie_file, bz.options) server.login() bug_id = args[0] regular_bugdata = {} bugdata = server.show_bug(bug_id, regular_bugdata) link = 'https://bugzilla.eng.vmware.com/show_bug.cgi?id=' + str( bugdata['Bug ID']) bugdata['buglink'] = genHyperLink(str(bugdata['Bug ID']), link) time_format = '%Y-%m-%d %H:%M:%S' create_time = time.strptime(bugdata['Creation Date'], '%Y.%m.%d %H:%M:%S') create_time = time.strftime(time_format, create_time) create_time = datetime.datetime.strptime(create_time, time_format) bugdata['Creation Date'] = create_time report_time = datetime.datetime.now() if (report_time - create_time).days > tdelta: break if bugdata['Status'] != 'resolved' and bugdata[ 'Status'] != 'closed': openeddelta = TODAY - create_time bugdata['Time expense (opened)'] = openeddelta.days #resolved date and closed date ori_bugata = server.original_bugdata(bug_id) if ori_bugata.has_key('comments'): for comment in ori_bugata['comments']: for comment_ in comment['activity']: if comment_['what'] == 'Status': if comment_['added'] == 'resolved': bugdata['Resolved Date'] = comment_['time'] resolved_time = datetime.datetime.strptime( bugdata['Resolved Date'], time_format) tdelta_ = resolved_time - create_time time_expense = tdelta_.days bugdata[ 'Time expense (opened -> resolved)'] = time_expense if comment_['added'] == 'closed': bugdata['Closed Date'] = comment_['time'] closed_time = datetime.datetime.strptime( bugdata['Closed Date'], time_format) tdelta_ = closed_time - resolved_time time_expense = tdelta_.days bugdata[ 'Time expense (resolved -> closed)'] = time_expense bugsdata.append(bugdata) return bugsdata
def buglist(self, arg): arg = bz.parse_options(arg) bugzilla_url = bz.options.bugzilla_url cookie_file = self.cookie_file() server = bz.BugzillaServer(bugzilla_url, cookie_file, bz.options) server.login() bugidlist = server.query(bz.options.query) return bugidlist
def bug_data(self, bugidlist, bugcolumn=DEFAULT_BUGCOLUMN): bugsdata = [] for id in bugidlist: argv_openbug = ['-w', bugcolumn, str(id)] args = bz.parse_options(argv_openbug) bugzilla_url = bz.options.bugzilla_url cookie_file = self.cookie_file() server = bz.BugzillaServer(bugzilla_url, cookie_file, bz.options) server.login() bug_id = args[0] regular_bugdata = {} bugdata = server.show_bug(bug_id, regular_bugdata) if (bugdata['Status'] == 'closed'): continue link = 'https://bugzilla.eng.vmware.com/show_bug.cgi?id=' + str( bugdata['Bug ID']) bugdata['Bug ID'] = genHyperLink(str(bugdata['Bug ID']), link) time_format = '%Y-%m-%d %H:%M:%S' ori_bugata = server.original_bugdata(bug_id) if ori_bugata.has_key('comments'): for comment in ori_bugata['comments']: for comment_ in comment['activity']: if comment_['what'] == 'Status': if comment_['added'] == 'resolved': bugdata['Resolved Date'] = comment_['time'] if bugdata['Status'] == 'resolved': resolved_time = datetime.datetime.strptime( bugdata['Resolved Date'], time_format) tdelta_ = NOW_TIME - resolved_time bugdata[ 'Time expense (resolved)'] = tdelta_.days flag = False if bugdata.has_key('Dup_id'): dup_bugid = [bugdata['Dup_id']] # if the duplicated bug is also be duplicated if dup_bugid != ['']: i = 0 duplicate = str(bug_id) dup_product = bugdata['Product'] while i <= (len(dup_bugid) - 1): dup_bug = server.original_bugdata(dup_bugid[i]) if dup_bug['bug_status'] != 'closed' and dup_bug[ 'bug_status'] != 'resolved': flag = True elif dup_bug['bug_status'] == 'resolved': dup_bug = self.bugstatusdate(dup_bug) resolved_time = datetime.datetime.strptime( dup_bug['Resolved Date'], time_format) tdelta = NOW_TIME - resolved_time if tdelta.days <= 7: flag = True else: dup_bug = self.bugstatusdate(dup_bug) closed_time = datetime.datetime.strptime( dup_bug['Closed Date'], time_format) tdelta = NOW_TIME - closed_time if tdelta.days <= 7: flag = True if flag: link = 'https://bugzilla.eng.vmware.com/show_bug.cgi?id=' + str( dup_bugid[i]) duplicate += '->' + genHyperLink( str(dup_bugid[i]), link) + '(' + dup_bug['bug_status'] + ')' if dup_product != dup_bug['product']: dup_product = '' flag = False if dup_bug['dup_id'] != '': dup_bugid.append(dup_bug['dup_id']) i += 1 bugdata['dup_product'] = dup_product if duplicate != str(bug_id): bugdata['Duplicate'] = duplicate bugsdata.append(bugdata) return bugsdata