Example #1
0
    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])
Example #2
0
    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])
Example #3
0
    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])