def load_project_bugs(project_name, queue, stop_event): launchpad = LaunchpadClient() project = launchpad._get_project(project_name) counter = 0 for bug in launchpad.get_all_bugs(project): rts = bug.related_tasks.entries if rts: for rt in rts: counter += 1 rt = Bug(rt) queue.put(serialize_bug(rt, task=bug)) else: counter += 1 queue.put(serialize_bug(bug)) print("No more bugs for project '{0}' ({1} processed)".format( project_name, counter)) stop_event.set()
def use_access_token(credentials): global user_agents if not session['access_token_parts']['oauth_token'] in user_agents: credentials.access_token = AccessToken.from_params( session['access_token_parts']) user_agents[credentials.access_token.key] = LaunchpadClient( credentials) is_authorized = True session['is_authorized'] = is_authorized return (False, None, is_authorized)
def load_project_bugs(project_name, queue, stop_event): launchpad = LaunchpadClient() project = launchpad._get_project(project_name) milestone_series = {} for m in project.active_milestones: milestone_series[str(m)] = str(m.series_target) counter = 0 for bug in launchpad.get_all_bugs(project): bug_id = bug.bug.id db.bugs[str(bug.bug_target_name).split("/")[0]].remove({"id": bug_id}) if bug.bug.duplicate_of is not None: continue target_projects = launchpad.get_bug_targets(bug) for project in PROJECTS_LIST: if project not in target_projects: db.bugs[project].remove({"id": bug_id}) bug_milestone = str(bug.milestone) rts = bug.related_tasks.entries if rts: rts_milestones = [] for rt in rts: rts_milestones.append(rt["target_link"]) if milestone_series[bug_milestone] not in rts_milestones: queue.put(serialize_bug(bug)) for rt in rts: counter += 1 rt = Bug(rt) queue.put(serialize_bug(rt, task=bug)) else: counter += 1 queue.put(serialize_bug(bug)) print("No more bugs for project '{0}' ({1} processed)".format(project_name, counter)) stop_event.set()
def get_access_token(credentials): global user_agents credentials._request_token = AccessToken.from_params( session['request_token_parts']) request_token_key = credentials._request_token.key try: credentials.exchange_request_token_for_access_token(LPNET_WEB_ROOT) except Exception as e: return (False, None, False) user_agents[credentials.access_token.key] = LaunchpadClient(credentials) session['access_token_parts'] = { 'oauth_token': credentials.access_token.key, 'oauth_token_secret': credentials.access_token.secret, 'lp.context': credentials.access_token.context } is_authorized = True session['is_authorized'] = is_authorized del session['request_token_parts'] return (False, None, is_authorized)
try: bug = queue.get_nowait() db.bugs[ str(bug['target_name']).split('/')[0] ].update({"$and": [ {'id': bug['id']}, {'milestone': bug['milestone']}]}, bug, upsert=True) except Empty: if all([e.is_set() for e in stop_events]): break time.sleep(0.1) if __name__ == "__main__": launchpad = LaunchpadClient() milestones = db.bugs.milestones db.bugs.drop_collection(milestones) projects = db.bugs.projects subprojects = db.bugs.subprojects mos = launchpad.get_project("mos") fuel = launchpad.get_project("fuel") milestones_list = launchpad.common_milestone( mos.active_milestones, fuel.active_milestones )
{"$and": [{ 'id': bug['id'] }, { 'milestone': bug['milestone'] }]}, bug, upsert=True) except Empty: if all([e.is_set() for e in stop_events]): break time.sleep(0.1) if __name__ == "__main__": launchpad = LaunchpadClient() milestones = db.bugs.milestones db.bugs.drop_collection(milestones) projects = db.bugs.projects subprojects = db.bugs.subprojects mos = launchpad.get_project("mos") fuel = launchpad.get_project("fuel") milestones_list = launchpad.common_milestone(mos.active_milestones, fuel.active_milestones) print("Creating milestones...") milestones.insert({"Milestone": milestones_list})