def find_tasks_from_objects(self, objects, project): task_util = TaskUtil(self.ccm) tasks = {} not_used = [] if self.tag in self.history.keys(): if 'tasks' in self.history[self.tag]: for t in self.history[self.tag]['tasks']: print "loading old task:", t.get_display_name() tasks[t.get_display_name()] = t num_of_tasks = sum([len(o.get_tasks().split(',')) for o in objects]) print "Tasks with associated objects:", num_of_tasks #Find all tasks from the objects found for o in objects: for task in o.get_tasks().split(','): if task != "<void>": if task not in tasks.keys(): if task not in not_used: # create task object print "Task:", task if task_util.task_in_project(task, project): result = self.ccm.query("name='{0}' and instance='{1}'".format('task' + task.split('#')[1], task.split('#')[0])).format("%objectname").format("%owner").format("%status").format("%create_time").format("%task_synopsis").format("%release").run() t = result[0] # Only use completed tasks! if t['status'] == 'completed': to = TaskObject.TaskObject(t['objectname'], self.delim, t['owner'], t['status'], t['create_time'], task) to.set_synopsis(t['task_synopsis']) to.set_release(t['release']) print "adding", o.get_object_name(), "to", task to.add_object(o.get_object_name()) tasks[task] = to else: not_used.append(task) else: if o.get_object_name() not in tasks[task].get_objects(): print "adding", o.get_object_name(), "to", task tasks[task].add_object(o.get_object_name()) num_of_tasks -= 1 print "tasks left:", num_of_tasks num_of_tasks = len(tasks.keys()) print "Tasks in release to process for info:", num_of_tasks # Fill out all task info for task in tasks.values(): if not task.get_attributes(): task_util.fill_task_info(task) num_of_tasks -= 1 print "tasks left:", num_of_tasks self.history[self.tag]['tasks'] = tasks.values() fname = self.outputfile + '_' + self.tag + '_inc' self.persist_data(fname, self.history[self.tag])
def find_tasks_from_objects(self, objects, project): tasks = {} unconfirmed_tasks = {} if self.tag in self.history.keys(): if 'tasks' in self.history[self.tag]: for t in self.history[self.tag]['tasks']: logger.info("loading old task: %s" % t.get_object_name()) tasks[t.get_object_name()] = t #Build a list of all tasks task_list = [ task for o in objects for task in ccm_cache.get_object(o, self.ccm).get_tasks() ] num_of_tasks = len(set(task_list)) logger.info("Tasks with associated objects: %i" % num_of_tasks) task_util = TaskUtil(self.ccm) for t in set(task_list) - set(tasks.keys()): try: task = ccm_cache.get_object(t, self.ccm) except ccm_cache.ObjectCacheException: continue if task.status == 'completed': if task_util.task_in_project(task, project): tasks[task.get_object_name()] = task else: # try to add it anyway to see what happens... unconfirmed_tasks[task.get_object_name()] = task # Add objects to tasks [ t.add_object(o) for o in objects for t in tasks.values() if t.get_object_name() in ccm_cache.get_object( o, self.ccm).get_tasks() ] # Add objects to unconfirmed tasks [ t.add_object(o) for o in objects for t in unconfirmed_tasks.values() if t.get_object_name() in ccm_cache.get_object(o, self.ccm).get_tasks() ] logger.info("Sanitizing tasks") tasks = sanitize_tasks(tasks, unconfirmed_tasks) logger.info("No of tasks in release %s: %i" % (project.get_object_name(), len(tasks.keys()))) self.history[self.tag]['tasks'] = tasks.values() fname = self.outputfile + '_' + self.tag + '_inc' self.persist_data(fname, self.history[self.tag])
def find_tasks_from_objects(self, objects, project): tasks = {} unconfirmed_tasks = {} if self.tag in self.history.keys(): if 'tasks' in self.history[self.tag]: for t in self.history[self.tag]['tasks']: logger.info("loading old task: %s" % t.get_object_name()) tasks[t.get_object_name()] = t #Build a list of all tasks task_list = [task for o in objects for task in ccm_cache.get_object(o, self.ccm).get_tasks()] num_of_tasks = len(set(task_list)) logger.info("Tasks with associated objects: %i" % num_of_tasks) task_util = TaskUtil(self.ccm) for t in set(task_list)-set(tasks.keys()): try: task = ccm_cache.get_object(t, self.ccm) except ccm_cache.ObjectCacheException: continue if task.status == 'completed': if task_util.task_in_project(task, project): tasks[task.get_object_name()] = task else: # try to add it anyway to see what happens... unconfirmed_tasks[task.get_object_name()] = task # Add objects to tasks [t.add_object(o) for o in objects for t in tasks.values() if t.get_object_name() in ccm_cache.get_object(o, self.ccm).get_tasks()] # Add objects to unconfirmed tasks [t.add_object(o) for o in objects for t in unconfirmed_tasks.values() if t.get_object_name() in ccm_cache.get_object(o, self.ccm).get_tasks()] logger.info("Sanitizing tasks") tasks = sanitize_tasks(tasks, unconfirmed_tasks) logger.info("No of tasks in release %s: %i" % (project.get_object_name(), len(tasks.keys()))) self.history[self.tag]['tasks'] = tasks.values() fname = self.outputfile + '_' + self.tag + '_inc' self.persist_data(fname, self.history[self.tag])