def create_install_task(products: ProductCollection, parameter_manager: ParametersManager): """ фабричный метод: создать такс с переданными параметрами, с типом COMMAND_INSTALL сохранить в базе данных зхапустить воркер :param products: продукты для установки (продукты которые выбрал пользователь + зависимости) :param parameter_manager: :return: номер таска """ settings = json_encode(Core.get_instance().settings.get_state()) job_array = [] task_object = TaskDataModel(command="install", settings=settings) for product in products: title = product.title state = { 'products': [product.to_dict()], 'parameters': parameter_manager.get_state() } state2save = json_encode(state) job = JobDataModel(command=JobDataModel.COMMAND_INSTALL, title=title, params=state2save, task=task_object, settings=settings) job_array.append(job) task = Task(task_model=task_object, jobs=job_array) return task
def create_upgrade_task(products: ProductCollection, parameter_manager: ParametersManager): """ фабричный метод: создать такс с переданными параметрами, с типом COMMAND_UPGRADE сохранить в базе данных зхапустить воркер :param products: :param parameter_manager: :return: """ settings = json_encode(Core.get_instance().settings.get_state()) job_array = [] task_object = TaskDataModel(command="upgrade", settings=settings) for product in products: title = product.title state = { 'products': [product.to_dict()], 'parameters': parameter_manager.get_state() } state2save = json_encode(state) job = JobDataModel(command=JobDataModel.COMMAND_UPGRADE, title=title, params=state2save, task=task_object, settings=settings) job_array.append(job) task = Task(task_model=task_object, jobs=job_array) return task
def create_install_task(products: ProductCollection, parameter_manager: ParametersManager): """ фабричный метод: создать такс с переданными параметрами, с типом COMMAND_INSTALL сохранить в базе данных зхапустить воркер :param products: продукты для установки (продукты которые выбрал пользователь + зависимости) :param parameter_manager: :return: номер таска """ settings = json_encode(Core.get_instance().settings.get_state()) job_array = [] task_object = TaskDataModel(command="install", settings=settings) for product in products: title = product.title state = { 'products': [product.to_dict()], 'parameters': parameter_manager.get_state() } state2save = json_encode(state) job = JobDataModel( command=JobDataModel.COMMAND_INSTALL, title=title, params=state2save, task=task_object, settings=settings ) job_array.append(job) task = Task(task_model=task_object, jobs=job_array) return task
def create_upgrade_task(products: ProductCollection, parameter_manager: ParametersManager): """ фабричный метод: создать такс с переданными параметрами, с типом COMMAND_UPGRADE сохранить в базе данных зхапустить воркер :param products: :param parameter_manager: :return: """ settings = json_encode(Core.get_instance().settings.get_state()) job_array = [] task_object = TaskDataModel(command="upgrade", settings=settings) for product in products: title = product.title state = { 'products': [product.to_dict()], 'parameters': parameter_manager.get_state() } state2save = json_encode(state) job = JobDataModel( command=JobDataModel.COMMAND_UPGRADE, title=title, params=state2save, task=task_object, settings=settings ) job_array.append(job) task = Task(task_model=task_object, jobs=job_array) return task
def create_install_task(self, requested_products: list, products: ProductCollection, parameter_manager: ParametersManager): """ фабричный метод: создать такс с переданными параметрами, с типом COMMAND_INSTALL сохранить в базе данных зхапустить воркер :param requested_products: те продукты которые выбрал пользователь :param products: продукты для установки (продукты которые выбрал пользователь + зависимости) :param parameter_manager: :return: номер таска """ title = 'Installing products: {0}'.format(', '.join([product_name for product_name in requested_products])) state = { 'requested_products': requested_products, 'products': products.to_json_list(), 'parameters': parameter_manager.get_state() } settings = Core.get_instance().settings.get_state() for product in products.to_json_list(): state = { 'requested_products': requested_products, 'products': product, 'parameters': parameter_manager.get_state() } state2save = json.dumps(state, sort_keys=True, indent=1) task = Task( command=Task.COMMAND_INSTALL, title=title, params=state2save, settings=json.dumps(settings, sort_keys=True, indent=1) ) task.save() # production # For debug worker uncomment this # self.task.execute() return task.id