def execute(self): logger.debug("Creating redhat_setup task") current_tasks = db().query(Task).filter_by(name="redhat_setup") for task in current_tasks: for subtask in task.subtasks: db().delete(subtask) db().delete(task) db().commit() supertask = Task(name="redhat_setup") supertask.result = { "release_info": { "release_id": self.data["release_id"] } } db().add(supertask) db().commit() subtasks_to_create = [ ('redhat_check_credentials', tasks.RedHatCheckCredentialsTask, 0.01), ('redhat_check_licenses', tasks.RedHatCheckLicensesTask, 0.01), ('redhat_download_release', tasks.RedHatDownloadReleaseTask, 1) ] messages = [] for task_name, task_class, weight in subtasks_to_create: task = supertask.create_subtask(task_name) task.weight = weight db().add(task) db().commit() msg = self._call_silently(task, task_class, self.data, method_name='message') db().refresh(task) if task.status == 'error': TaskHelper.update_task_status(supertask.uuid, status="error", progress=100, msg=task.message) return supertask task.cache = msg db().add(task) db().commit() messages.append(msg) db().refresh(supertask) if supertask.status == 'error': return supertask rpc.cast('naily', messages) return supertask
def execute(self): logger.debug("Creating redhat_setup task") current_tasks = db().query(Task).filter_by( name="redhat_setup" ) for task in current_tasks: for subtask in task.subtasks: db().delete(subtask) db().delete(task) db().commit() supertask = Task(name="redhat_setup") supertask.result = { "release_info": { "release_id": self.data["release_id"] } } db().add(supertask) db().commit() subtasks_to_create = [ ( 'redhat_check_credentials', tasks.RedHatCheckCredentialsTask, 0.01 ), ( 'redhat_check_licenses', tasks.RedHatCheckLicensesTask, 0.01 ), ( 'redhat_download_release', tasks.RedHatDownloadReleaseTask, 1 ) ] messages = [] for task_name, task_class, weight in subtasks_to_create: task = supertask.create_subtask(task_name) task.weight = weight db().add(task) db().commit() msg = self._call_silently( task, task_class, self.data, method_name='message' ) db().refresh(task) if task.status == 'error': TaskHelper.update_task_status( supertask.uuid, status="error", progress=100, msg=task.message ) return supertask task.cache = msg db().add(task) db().commit() messages.append(msg) db().refresh(supertask) if supertask.status == 'error': return supertask rpc.cast('naily', messages) return supertask