@Override public String getState() { return stack.getState(); } }
@Override public boolean evaluate(Stack obj) { return obj != null && CommonStatesConstants.ACTIVE.equals(obj.getState()); }
@Override public boolean isActive() { List<String> activeStates = Arrays.asList(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.UPDATING_ACTIVE); return activeStates.contains(stack.getState()); }
protected void validateStack(Stack env, Service service) { List<String> invalidStates = Arrays.asList(InstanceConstants.STATE_ERROR, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING); if (env == null || invalidStates.contains(env.getState())) { ValidationErrorCodes.throwValidationError(ValidationErrorCodes.INVALID_STATE, ServiceConstants.FIELD_STACK_ID, "stack is not in a valid state", null); } }
if (ServiceConstants.STATE_UPGRADED.equals(stack.getState())) { objectProcessManager.scheduleProcessInstance(ServiceConstants.PROCESS_STACK_FINISH_UPGRADE, stack, null); throw new ProcessDelayException(new Date(System.currentTimeMillis() + 15000)); if (CommonStatesConstants.ACTIVE.equals(stack.getState())) { String upgradeToExternalId = catalogService.getDefaultExternalId(stack); if (StringUtils.isBlank(upgradeToExternalId)) {
protected void startStacks(Account account) throws IOException { if (account.getRemoved() != null) { return; } List<Long> createdStackIds = DataAccessor.fieldLongList(account, AccountConstants.FIELD_CREATED_STACKS); List<Long> startedStackIds = DataAccessor.fieldLongList(account, AccountConstants.FIELD_STARTED_STACKS); if (!startedStackIds.isEmpty() || createdStackIds.isEmpty()) { return; } if (!hostDao.hasActiveHosts(account.getId())) { return; } startedStackIds = new ArrayList<>(); for (Long stackId : createdStackIds) { Stack stack = objectManager.loadResource(Stack.class, stackId); if (stack == null) { continue; } stack = resourceMonitor.waitForNotTransitioning(stack); if (CommonStatesConstants.ACTIVE.equals(stack.getState())) { for (Service service : objectManager.find(Service.class, SERVICE.STACK_ID, stackId, SERVICE.REMOVED, null)) { processManager.scheduleStandardProcess(StandardProcess.ACTIVATE, service, null); } } startedStackIds.add(stackId); } objectManager.setFields(account, AccountConstants.FIELD_STARTED_STACKS, startedStackIds); }
List<String> externalIds = new ArrayList<>(); for (Stack stack : stacks) { if (!ServiceConstants.isSystem(stack) || CommonStatesConstants.REMOVING.equals(stack.getState())) { continue;
protected void checkAndDelete(Service service, Stack env) { service = objectManager.reload(service); env = objectManager.reload(env); boolean found = false; for (ServiceExposeMap map : serviceExportMapDao.getUnmanagedServiceInstanceMapsToRemove(service.getId())) { found = true; if (isRemoved(service.getRemoved(), service.getState())) { Instance instance = objectManager.loadResource(Instance.class, map.getInstanceId()); DefaultDeploymentUnitInstance.removeInstance(instance, objectProcessManager); } } if (!found && !isRemoved(service.getRemoved(), service.getState())) { objectProcessManager.scheduleStandardProcess(StandardProcess.REMOVE, service, null); } env = objectManager.reload(env); if (isRemoved(env.getRemoved(), env.getState())) { return; } List<Service> services = objectManager.find(Service.class, SERVICE.STACK_ID, env.getId(), ObjectMetaDataManager.STATE_FIELD, new Condition(ConditionType.NE, CommonStatesConstants.REMOVING), ObjectMetaDataManager.REMOVED_FIELD, null); if (services.size() == 0) { objectProcessManager.scheduleStandardProcess(StandardProcess.REMOVE, env, null); } }
/** * {@inheritDoc} */ @Override public void from(io.cattle.platform.core.model.Stack from) { setId(from.getId()); setName(from.getName()); setAccountId(from.getAccountId()); setKind(from.getKind()); setUuid(from.getUuid()); setDescription(from.getDescription()); setState(from.getState()); setCreated(from.getCreated()); setRemoved(from.getRemoved()); setRemoveTime(from.getRemoveTime()); setData(from.getData()); setExternalId(from.getExternalId()); setHealthState(from.getHealthState()); setGroup(from.getGroup()); setSystem(from.getSystem()); }