private void addOperationValidationConfig(String name, PathAddress pathAddress, Action action) { if (operationValidationExcludeFilterBuilder == null) { operationValidationExcludeFilterBuilder = ModelTestOperationValidatorFilter.createBuilder(); } operationValidationExcludeFilterBuilder.addOperation(pathAddress, name, action, null); }
private ModelTestOperationValidatorFilter getOperationValidationFilter() { if (operationValidationExcludeBuilder != null) { return operationValidationExcludeBuilder.build(); } if (additionalInit.isValidateOperations()) { return ModelTestOperationValidatorFilter.createValidateAll(); } else { return ModelTestOperationValidatorFilter.createValidateNone(); } }
public ModelTestOperationValidatorFilter build() { return new ModelTestOperationValidatorFilter(entries); } }
private ModelTestOperationValidatorFilter getOperationValidationFilter() { if (operationValidationExcludeFilterBuilder != null) { return operationValidationExcludeFilterBuilder.build(); } return ModelTestOperationValidatorFilter.createValidateAll(); } }
public ModelNode adjustForValidation(ModelNode op) { if (validateNone) { return null; } else if (entries == null) { return op; } //TODO handle composites ModelNode addr = op.get(OP_ADDR); PathAddress address = PathAddress.pathAddress(addr); String name = op.get(OP).asString(); for (OperationEntry entry : entries) { if (nameMatch(name, entry) && addressMatch(address, entry)) { if (entry.action == Action.NOCHECK) { return null; } else if (entry.action == Action.RESOLVE){ op = resolve(op); } else if (entry.operationFixer != null){ op = entry.operationFixer.fixOperation(op); } } } return op; }
private ModelTestOperationValidatorFilter(List<OperationEntry> entries) { this.entries = createStandardEntries(entries); validateNone = false; }
private boolean addressMatch(PathAddress opAddr, OperationEntry entry) { boolean match = entry.address.size() == opAddr.size(); if (match) { for (int i = 0; i < opAddr.size(); i++) { if (!pathElementMatch(opAddr.getElement(i), entry.address.getElement(i))) { match = false; break; } } } return match; }
@Override protected boolean boot(List<ModelNode> bootOperations, boolean rollbackOnRuntimeFailure) throws ConfigurationPersistenceException { try { preBoot(bootOperations, rollbackOnRuntimeFailure); // See what we need to validate, but defer doing it to after super.boot to allow // initModel to run first and given tests a chance to set things up List<ModelNode> validationList = new ArrayList<>(); for (ModelNode op : bootOperations) { ModelNode toValidate = validateOpsFilter.adjustForValidation(op.clone()); if (toValidate != null) { validationList.add(toValidate); } } bootSuccess = super.boot(persister.getBootOperations(), rollbackOnRuntimeFailure); // Ok, now we can validate OperationValidator validator = new OperationValidator(rootRegistration); for (ModelNode op : validationList) { validator.validateOperation(op); } return bootSuccess; } catch (Exception e) { error = e; } catch (Throwable t) { error = new Exception(t); } finally { postBoot(); } return false; }
private ModelTestOperationValidatorFilter getOperationValidationFilter() { if (operationValidationExcludeFilterBuilder != null) { return operationValidationExcludeFilterBuilder.build(); } return ModelTestOperationValidatorFilter.createValidateAll(); } }
private ModelTestOperationValidatorFilter(boolean validateNone) { this.validateNone = validateNone; entries = validateNone ? null : createStandardEntries(null); }
private ModelTestOperationValidatorFilter getOperationValidationFilter() { if (operationValidationExcludeBuilder != null) { return operationValidationExcludeBuilder.build(); } if (additionalInit.isValidateOperations()) { return ModelTestOperationValidatorFilter.createValidateAll(); } else { return ModelTestOperationValidatorFilter.createValidateNone(); } }
public KernelServices build() throws Exception { bootOperationBuilder.validateNotAlreadyBuilt(); List<ModelNode> bootOperations = bootOperationBuilder.build(); AbstractKernelServicesImpl kernelServices = AbstractKernelServicesImpl.create(mainSubsystemName, additionalInit, ModelTestOperationValidatorFilter.createValidateAll(), cloneExtensionRegistry(additionalInit), bootOperations, testParser, mainExtension, null, legacyControllerInitializers.size() > 0, true); SubsystemTestDelegate.this.kernelServices.add(kernelServices); validateDescriptionProviders(additionalInit, kernelServices); ImmutableManagementResourceRegistration subsystemReg = kernelServices.getRootRegistration().getSubModel(PathAddress.pathAddress(PathElement.pathElement(SUBSYSTEM, mainSubsystemName))); ModelTestUtils.validateModelDescriptions(PathAddress.EMPTY_ADDRESS, subsystemReg); for (Map.Entry<ModelVersion, LegacyKernelServiceInitializerImpl> entry : legacyControllerInitializers.entrySet()) { LegacyKernelServiceInitializerImpl legacyInitializer = entry.getValue(); List<ModelNode> transformedBootOperations = new ArrayList<ModelNode>(); for (ModelNode op : bootOperations) { TransformedOperation transformedOp = kernelServices.transformOperation(entry.getKey(), op); if (transformedOp.getTransformedOperation() != null) { //Since rejected operations now execute on the slave to determine if it has been ignored or not //we check the reject policy simulating a reject before adding it to the list of boot operations if (!transformedOp.rejectOperation(SUCCESS)) { transformedBootOperations.add(transformedOp.getTransformedOperation()); } else { System.err.println(transformedOp.getFailureDescription()); } } } LegacyControllerKernelServicesProxy legacyServices = legacyInitializer.install(kernelServices, transformedBootOperations); kernelServices.addLegacyKernelService(entry.getKey(), legacyServices); } return kernelServices; }
private void addOperationValidationConfig(String name, PathAddress pathAddress, Action action) { if (operationValidationExcludeFilterBuilder == null) { operationValidationExcludeFilterBuilder = ModelTestOperationValidatorFilter.createBuilder(); } operationValidationExcludeFilterBuilder.addOperation(pathAddress, name, action, null); }
public static ModelTestOperationValidatorFilter createValidateAll() { return new ModelTestOperationValidatorFilter(false); }
private ModelTestOperationValidatorFilter getOperationValidationFilter() { if (operationValidationExcludeBuilder != null) { return operationValidationExcludeBuilder.build(); } if (additionalInit.isValidateOperations()) { return ModelTestOperationValidatorFilter.createValidateAll(); } else { return ModelTestOperationValidatorFilter.createValidateNone(); } }
AbstractKernelServicesImpl kernelServices = AbstractKernelServicesImpl.create(processType, runningModeControl, ModelTestOperationValidatorFilter.createValidateAll(), bootOperations, testParser, null, type, modelInitializer, extensionRegistry, contentRepositoryContents); CoreModelTestDelegate.this.kernelServices.add(kernelServices);
private void addOperationValidationConfig(String name, PathAddress pathAddress, Action action, OperationFixer operationFixer) { if (!additionalInit.isValidateOperations()) { throw new IllegalStateException("The additional initialization used to create this builder has turned off operation validation. That is not compatible with calling this method"); } if (operationValidationExcludeBuilder == null) { operationValidationExcludeBuilder = ModelTestOperationValidatorFilter.createBuilder(); } operationValidationExcludeBuilder.addOperation(pathAddress, name, action, operationFixer); }
public static ModelTestOperationValidatorFilter createValidateNone() { return new ModelTestOperationValidatorFilter(true); }
public KernelServices build() throws Exception { bootOperationBuilder.validateNotAlreadyBuilt(); List<ModelNode> bootOperations = bootOperationBuilder.build(); AbstractKernelServicesImpl kernelServices = AbstractKernelServicesImpl.create(testClass, mainSubsystemName, additionalInit, ModelTestOperationValidatorFilter.createValidateAll(), cloneExtensionRegistry(additionalInit), bootOperations, testParser, mainExtension, null, legacyControllerInitializers.size() > 0, true); SubsystemTestDelegate.this.kernelServices.add(kernelServices);
private void addOperationValidationConfig(String name, PathAddress pathAddress, Action action, OperationFixer operationFixer) { if (!additionalInit.isValidateOperations()) { throw new IllegalStateException("The additional initialization used to create this builder has turned off operation validation. That is not compatible with calling this method"); } if (operationValidationExcludeBuilder == null) { operationValidationExcludeBuilder = ModelTestOperationValidatorFilter.createBuilder(); } operationValidationExcludeBuilder.addOperation(pathAddress, name, action, operationFixer); }