예제 #1
0
            public override void Execute(IOperation operation, IOperationLogger logger)
            {
                if (!moduleStore.IsModuleExists(operation, ModuleId).Result)
                {
                    throw CommonExceptions.ModuleWasNotFound(operation, ModuleId);
                }

                logger.Debug($"[Operation: {operation.ComplexOperationId}, module: {ModuleId}] Setting module status to \"{ModuleStatus.GetDescription()}\"").Wait();

                moduleStore.ChangeStatus(operation, ModuleId, ModuleStatus).Wait();

                logger.Debug($"[Operation: {operation.ComplexOperationId}, module: {ModuleId}] Module status was updated").Wait();
            }
예제 #2
0
            public override void Execute(IOperation operation, IOperationLogger logger)
            {
                if (!moduleStore.IsModuleExists(operation, ModuleId).Result)
                {
                    throw CommonExceptions.ModuleWasNotFound(operation, ModuleId);
                }

                logger.Debug($"[Operation: {operation.ComplexOperationId}, module: {ModuleId}] Module update didn't complete successfully, setting status to \"{ModuleStatus.GetDescription()}\"").Wait();

                moduleStore.ChangeStatus(operation, ModuleId, ModuleStatus).Wait();
                moduleStore.AddModuleHistoryRecord(operation, ModuleId, ErrorMessage).Wait();

                logger.Debug($"[Operation: {operation.ComplexOperationId}, module: {ModuleId}] Module status was updated").Wait();
            }
예제 #3
0
        public async Task LaunchModule(IOperation operation, int moduleId)
        {
            if (!await moduleStore.IsModuleExists(operation, moduleId))
            {
                throw CommonExceptions.ModuleWasNotFound(operation, moduleId);
            }

            if (!(await moduleStore.HasStatuses(operation, moduleId, ModuleStatus.Stopped, ModuleStatus.FailedToRun)).Any())
            {
                throw CommonExceptions.FailedToRunModule(operation);
            }

            await moduleStore.ChangeStatus(operation, moduleId, ModuleStatus.UpdatedToRun);

            await new ProcessDefinition.StartProcessInstanceByKeyRequest(CamundaWorkerKey.ModuleLaunchProcess)
            {
                BusinessKey = moduleId.ToString(),
                Variables   = new CamundaVariables
                {
                    { CamundaWorkerKey.ModuleId, moduleId },
                    { CamundaWorkerKey.Action, ActionType.NoChanges }
                }
            }.SendRequest(operation, camundaClient, true);
        }
예제 #4
0
            public override void Execute(IOperation operation, IOperationLogger logger)
            {
                var moduleIdsAndStatuses = new Dictionary <int, ModuleStatus>();

                foreach (var(id, instanceId) in ModuleProcessInstanceIds)
                {
                    new ProcessInstance.DeleteRequest(instanceId)
                    {
                        FailIfNotExists = false
                    }.SendRequest(operation, camundaClient, true).Wait();

                    moduleStore.ChangeStatus(operation, id, ModuleStatus.UpdatedToUninstall).Wait();
                    moduleIdsAndStatuses.Add(id, ModuleIdsAndStatuses[id]);
                }

                ModuleIdsAndStatuses  = moduleIdsAndStatuses;
                var(moduleId, status) = moduleIdsAndStatuses.FirstOrDefault();
                ModuleId = moduleId;
                ComponentsStopRequired = status == ModuleStatus.Run;
            }