public void installRuntimeServices(OperationContext context, ModelNode model, String name) throws OperationFailedException { final ModelNode fullModel = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS), 2); final SessionCookieConfig config = SessionCookieDefinition.INSTANCE.getConfig(context, fullModel.get(SessionCookieDefinition.INSTANCE.getPathElement().getKeyValuePair())); final CrawlerSessionManagerConfig crawlerSessionManagerConfig = CrawlerSessionManagementDefinition.INSTANCE.getConfig(context, fullModel.get(CrawlerSessionManagementDefinition.INSTANCE.getPathElement().getKeyValuePair())); final boolean persistentSessions = PersistentSessionsDefinition.isEnabled(context, fullModel.get(PersistentSessionsDefinition.INSTANCE.getPathElement().getKeyValuePair())); final boolean allowNonStandardWrappers = ServletContainerDefinition.ALLOW_NON_STANDARD_WRAPPERS.resolveModelAttribute(context, model).asBoolean(); final boolean proactiveAuth = ServletContainerDefinition.PROACTIVE_AUTHENTICATION.resolveModelAttribute(context, model).asBoolean(); final String bufferCache = ServletContainerDefinition.DEFAULT_BUFFER_CACHE.resolveModelAttribute(context, model).asString(); final boolean disableFileWatchService = ServletContainerDefinition.DISABLE_FILE_WATCH_SERVICE.resolveModelAttribute(context, model).asBoolean(); final boolean disableSessionIdReususe = ServletContainerDefinition.DISABLE_SESSION_ID_REUSE.resolveModelAttribute(context, model).asBoolean(); JSPConfig jspConfig = JspDefinition.INSTANCE.getConfig(context, fullModel.get(JspDefinition.INSTANCE.getPathElement().getKeyValuePair())); final String stackTracesString = ServletContainerDefinition.STACK_TRACE_ON_ERROR.resolveModelAttribute(context, model).asString(); final ModelNode defaultEncodingValue = ServletContainerDefinition.DEFAULT_ENCODING.resolveModelAttribute(context, model); final String defaultEncoding = defaultEncodingValue.isDefined()? defaultEncodingValue.asString() : null; final CapabilityServiceBuilder<ServletContainerService> builder = context.getCapabilityServiceTarget() .addCapability(ServletContainerDefinition.SERVLET_CONTAINER_CAPABILITY, container); if(bufferCache != null) {
protected void updateOptionsAttribute(OperationContext context, ModelNode operation, String type) { final PathAddress operationAddress = PathAddress.pathAddress(operation.get(OP_ADDR)); final PathAddress discoveryOptionsAddress = operationAddress.subAddress(0, operationAddress.size() - 1); final ModelNode discoveryOptions = Resource.Tools.readModel(context.readResourceFromRoot(discoveryOptionsAddress)); // Get the current list of discovery options and remove the given discovery option // from the list to maintain the order final ModelNode currentList = discoveryOptions.get(ModelDescriptionConstants.OPTIONS); final String name = operationAddress.getLastElement().getValue(); final ModelNode newList = new ModelNode().setEmptyList(); for (ModelNode e : currentList.asList()) { final Property prop = e.asProperty(); final String discoveryOptionType = prop.getName(); final String discoveryOptionName = prop.getValue().get(ModelDescriptionConstants.NAME).asString(); if (!(discoveryOptionType.equals(type) && discoveryOptionName.equals(name))) { newList.add(e); } } final ModelNode writeOp = Util.getWriteAttributeOperation(discoveryOptionsAddress, ModelDescriptionConstants.OPTIONS, newList); final OperationStepHandler writeHandler = context.getRootResourceRegistration().getSubModel(discoveryOptionsAddress).getOperationHandler(PathAddress.EMPTY_ADDRESS, WRITE_ATTRIBUTE_OPERATION); context.addStep(writeOp, writeHandler, OperationContext.Stage.MODEL); } }
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final ServiceTarget serviceTarget = context.getServiceTarget(); final String serverName = context.getCurrentAddressValue(); final ModelNode model = Resource.Tools.readModel(resource); final Configuration configuration = transformConfig(context, serverName, model); String bindingsPath = PATHS.get(BINDINGS_DIRECTORY).resolveModelAttribute(context, model.get(PATH, BINDINGS_DIRECTORY)).asString(); String bindingsRelativeToPath = RELATIVE_TO.resolveModelAttribute(context, model.get(PATH, BINDINGS_DIRECTORY)).asString(); String journalPath = PATHS.get(JOURNAL_DIRECTORY).resolveModelAttribute(context, model.get(PATH, JOURNAL_DIRECTORY)).asString(); String journalRelativeToPath = RELATIVE_TO.resolveModelAttribute(context, model.get(PATH, JOURNAL_DIRECTORY)).asString(); String largeMessagePath = PATHS.get(LARGE_MESSAGES_DIRECTORY).resolveModelAttribute(context, model.get(PATH, LARGE_MESSAGES_DIRECTORY)).asString(); Supplier pathManager = serviceBuilder.requires(context.getCapabilityServiceName(PATH_MANAGER_CAPABILITY, PathManager.class));
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { final PathAddress address = context.getCurrentAddress(); final PathAddress serverAddress = address.getParent(); final PathAddress subsystemAddress = serverAddress.getParent(); final ModelNode subsystemModel = Resource.Tools.readModel(context.readResourceFromRoot(subsystemAddress, false), 0); final ModelNode serverModel = Resource.Tools.readModel(context.readResourceFromRoot(serverAddress, false), 0); final String name = address.getLastElement().getValue(); final List<String> aliases = HostDefinition.ALIAS.unwrap(context, model); final String defaultWebModule = HostDefinition.DEFAULT_WEB_MODULE.resolveModelAttribute(context, model).asString(); final String defaultServerName = UndertowRootDefinition.DEFAULT_SERVER.resolveModelAttribute(context, subsystemModel).asString(); final String defaultHostName = ServerDefinition.DEFAULT_HOST.resolveModelAttribute(context, serverModel).asString(); final String serverName = serverAddress.getLastElement().getValue(); final boolean isDefaultHost = defaultServerName.equals(serverName) && name.equals(defaultHostName); final int defaultResponseCode = HostDefinition.DEFAULT_RESPONSE_CODE.resolveModelAttribute(context, model).asInt();
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { Resource resource = context.readResource(PathAddress.EMPTY_ADDRESS); ModelNode authModules = Resource.Tools.readModel(resource).get(newKeyName); ModelNode result = new ModelNode(); if (authModules.isDefined()) { List<Property> loginModules = authModules.asPropertyList(); for (Property p : loginModules) { result.add(p.getValue()); } } context.getResult().set(result); } }
@Override public void execute(OperationContext operationContext, ModelNode modelNode) throws OperationFailedException { final Resource jacorbResource = context.readResourceForUpdate(PathAddress.EMPTY_ADDRESS); final ModelNode jacorbModel = Resource.Tools.readModel(jacorbResource).clone(); warnings.add(JacORBLogger.ROOT_LOGGER.cannotEmulatePropertiesWarning(unsupportedProperties)); for(String unsupportedProperty : unsupportedProperties){ jacorbModel.get(unsupportedProperty).clear(); warnings.addAll(ConfigValidator.validateConfig(context, openjdkModel)); final PathAddress openjdkAddress = subsystemsAddress.append(OPENJDK_SUBSYSTEM_ELEMENT); addOpenjdkSubsystem(openjdkAddress, openjdkModel, migrateOperations); final PathAddress jacorbAddress = subsystemsAddress.append(JACORB_SUBSYSTEM_ELEMENT); removeJacorbSubsystem(jacorbAddress, migrateOperations, context.getProcessType() == ProcessType.STANDALONE_SERVER); result.get(MIGRATION_WARNINGS).set(rw); context.getResult().set(result); } else {
@Override public void execute(final OperationContext context, final ModelNode operation) { final ModelNode model = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); final String logDir = pathManager.getPathEntry(ServerEnvironment.SERVER_LOG_DIR).resolvePath(); List<File> logFiles; try { logFiles = findFiles(logDir, model); } catch (IOException e) { logFiles = Collections.emptyList(); LoggingLogger.ROOT_LOGGER.errorProcessingLogDirectory(logDir); } final SimpleDateFormat dateFormat = new SimpleDateFormat(LogFileResourceDefinition.ISO_8601_FORMAT); final ModelNode result = context.getResult().setEmptyList(); for (File logFile : logFiles) { final ModelNode fileInfo = new ModelNode(); fileInfo.get(FILE_NAME.getName()).set(logFile.getName()); fileInfo.get(FILE_SIZE.getName()).set(logFile.length()); fileInfo.get(LAST_MODIFIED_DATE.getName()).set(dateFormat.format(new Date(logFile.lastModified()))); result.add(fileInfo); } context.completeStep(ResultHandler.NOOP_RESULT_HANDLER); } }
final String fileName = NAME.resolveModelAttribute(context, operation).asString(); final int numberOfLines = LINES.resolveModelAttribute(context, operation).asInt(); final int skip = SKIP.resolveModelAttribute(context, operation).asInt(); final boolean tail = TAIL.resolveModelAttribute(context, operation).asBoolean(); final ModelNode encodingModel = CommonAttributes.ENCODING.resolveModelAttribute(context, operation); throw LoggingLogger.ROOT_LOGGER.logFileNotFound(fileName, ServerEnvironment.SERVER_LOG_DIR); final ModelNode model = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); final List<File> logFiles; try { lines = readLines(path, encoding, tail, skip, numberOfLines); final ModelNode result = context.getResult().setEmptyList(); for (String line : lines) { result.add(line); throw LoggingLogger.ROOT_LOGGER.failedToReadLogFile(e, fileName); context.completeStep(ResultHandler.NOOP_RESULT_HANDLER);
String channelName = address.getLastElement().getValue(); PathAddress rootAddress = address.subAddress(0, address.size() - 2); PathAddress subsystemAddress = rootAddress.append(PathElement.pathElement(ModelDescriptionConstants.SUBSYSTEM, "infinispan")); return DiscardPolicy.REJECT_AND_WARN; ModelNode infinispanModel = Resource.Tools.readModel(infinispanResource); if (infinispanModel.hasDefined("cache-container")) { for (ModelNode container : infinispanModel.get("cache-container").asList()) { ModelNode cacheContainer = container.get(0); if (cacheContainer.hasDefined("transport")) {
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.require(OP_ADDR)); final String name = address.getLastElement().getValue(); final ModelNode model = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); if (model.get(READ_ONLY.getName()).asBoolean(false)) { throw ControllerMessages.MESSAGES.cannotRemoveReadOnlyPath(name); context.removeResource(PathAddress.EMPTY_ADDRESS); context.addStep(new OperationStepHandler() { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final PathEventContextImpl pathEventContext = pathManager.checkRestartRequired(context, name, Event.REMOVED);
@Override public void transformResource(ResourceTransformationContext context, PathAddress address, Resource resource) throws OperationFailedException { Resource untransformedResource = context.readResource(PathAddress.EMPTY_ADDRESS); ModelNode untransformedModel = Resource.Tools.readModel(untransformedResource); String defaultDataStore = untransformedModel.get(TimerServiceResourceDefinition.DEFAULT_DATA_STORE.getName()).asString(); ModelNode transformed = resource.getModel(); transformed.remove(TimerServiceResourceDefinition.DEFAULT_DATA_STORE.getName()); ModelNode fileStore = untransformedModel.get(EJB3SubsystemModel.FILE_DATA_STORE, defaultDataStore); if (!fileStore.isDefined()) {//happens where default is not file-store rejectIncompatibleDataStores(context, address); } else if ((untransformedModel.hasDefined(EJB3SubsystemModel.DATABASE_DATA_STORE) && untransformedModel.get(EJB3SubsystemModel.DATABASE_DATA_STORE).keys().size() > 0) || untransformedModel.get(EJB3SubsystemModel.FILE_DATA_STORE).keys().size() > 1) { rejectIncompatibleDataStores(context, address); } ModelNode path = fileStore.get(EJB3SubsystemModel.PATH); transformed.get(EJB3SubsystemModel.PATH).set(path); transformed.get(EJB3SubsystemModel.RELATIVE_TO).set(fileStore.get(EJB3SubsystemModel.RELATIVE_TO)); context.addTransformedResource(PathAddress.EMPTY_ADDRESS, resource); //do not process children! }
@SuppressWarnings("deprecation") @Override public void transformResource(ResourceTransformationContext context, PathAddress address, Resource resource) throws OperationFailedException { final ModelNode model = resource.getModel(); final ModelNode maxBatchSize = model.remove(StoreResourceDefinition.Attribute.MAX_BATCH_SIZE.getName()); final ModelNode binaryTableModel = Resource.Tools.readModel(resource.removeChild(BinaryTableResourceDefinition.PATH)); if (binaryTableModel != null && binaryTableModel.isDefined()) { model.get(DeprecatedAttribute.TABLE.getName()).set(binaryTableModel); model.get(DeprecatedAttribute.TABLE.getName()).get(TableResourceDefinition.DeprecatedAttribute.BATCH_SIZE.getName()).set((maxBatchSize != null) ? maxBatchSize : new ModelNode()); } final ModelNode properties = model.remove(StoreResourceDefinition.Attribute.PROPERTIES.getName()); final ResourceTransformationContext childContext = context.addTransformedResource(PathAddress.EMPTY_ADDRESS, resource); LegacyPropertyResourceTransformer.transformPropertiesToChildrenResources(properties, address, childContext); context.processChildren(resource); } });
private OptionMap getChannelCreationOptions(final OperationContext context) throws OperationFailedException { // read the full model of the current resource final ModelNode fullModel = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); final ModelNode channelCreationOptions = fullModel.get(EJB3SubsystemModel.CHANNEL_CREATION_OPTIONS); if (channelCreationOptions.isDefined() && channelCreationOptions.asInt() > 0) { final ClassLoader loader = this.getClass().getClassLoader(); final OptionMap.Builder builder = OptionMap.builder(); for (final Property optionProperty : channelCreationOptions.asPropertyList()) { final String name = optionProperty.getName(); final ModelNode propValueModel = optionProperty.getValue(); final String type = RemoteConnectorChannelCreationOptionResource.CHANNEL_CREATION_OPTION_TYPE.resolveModelAttribute(context,propValueModel).asString(); final String optionClassName = this.getClassNameForChannelOptionType(type); final String fullyQualifiedOptionName = optionClassName + "." + name; final Option option = Option.fromString(fullyQualifiedOptionName, loader); final String value = RemoteConnectorChannelCreationOptionResource.CHANNEL_CREATION_OPTION_VALUE.resolveModelAttribute(context, propValueModel).asString(); builder.set(option, option.parseValue(value, loader)); } return builder.getMap(); } return OptionMap.EMPTY; }
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final ModelNode model = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); context.removeResource(PathAddress.EMPTY_ADDRESS); final String roleName = PathAddress.pathAddress(operation.require(ModelDescriptionConstants.OP_ADDR)).getLastElement().getValue(); RoleMappingNotRequiredHandler.addOperation(context, roleName); context.addStep(new OperationStepHandler() { @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final String baseRole = ServerGroupScopedRoleResourceDefinition.BASE_ROLE.resolveModelAttribute(context, model).asString(); ModelNode hostsAttribute = HostScopedRolesResourceDefinition.HOSTS.resolveModelAttribute(context, model); final List<ModelNode> hostNodes = hostsAttribute.isDefined() ? hostsAttribute.asList() : Collections.<ModelNode>emptyList(); authorizerConfiguration.removeScopedRole(roleName); constraintMap.remove(roleName); context.completeStep(new OperationContext.RollbackHandler() { @Override public void handleRollback(OperationContext context, ModelNode operation) { HostScopedRoleAdd.addScopedRole(roleName, baseRole, hostNodes, authorizerConfiguration, constraintMap); } }); } }, OperationContext.Stage.RUNTIME); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); final String federationName = address.getLastElement().getValue(); ModelNode partitionManager = Resource.Tools.readModel(context.readResource(EMPTY_ADDRESS)); createPartitionManagerService(context, federationName, partitionManager, false); }
throws OperationFailedException { ModelNode config = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); if (config.hasDefined(ModelKeys.AUTHENTICATION) && config.get(ModelKeys.AUTHENTICATION, ModelKeys.AUTHENTICATION_NAME).isDefined()) { authConfig = config.get(ModelKeys.AUTHENTICATION, ModelKeys.AUTHENTICATION_NAME); restAuthMethod = RestAuthMethod.valueOf(RestAuthenticationResource.AUTH_METHOD.resolveModelAttribute(context, authConfig).asString()); String contextPath = RestConnectorResource.CONTEXT_PATH.resolveModelAttribute(context, config).asString(); ExtendedHeaders extendedHeaders = ExtendedHeaders.valueOf(RestConnectorResource.EXTENDED_HEADERS.resolveModelAttribute(context, config).asString()); ServiceBuilder<?> builder = context.getServiceTarget().addService(EndpointUtils.getServiceName(operation, "rest"), service); String cacheContainerName = config.hasDefined(ModelKeys.CACHE_CONTAINER) ? config.get(ModelKeys.CACHE_CONTAINER).asString() : null; EndpointUtils.addCacheContainerDependency(builder, cacheContainerName, service.getCacheManager());
@Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final PathAddress address = getParentAddress(PathAddress.pathAddress(operation.require(OP_ADDR))); Resource resource = context.readResourceFromRoot(address); final ModelNode parentModel = Resource.Tools.readModel(resource); PartitionManagerAddHandler.INSTANCE.validateModel(context, address.getLastElement().getValue(), parentModel); } }, OperationContext.Stage.MODEL);
protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model, ServiceVerificationHandler verificationHandler, List<ServiceController<?>> newControllers) throws OperationFailedException { final PathAddress address = PathAddress.pathAddress(operation.get(OP_ADDR)); final String connectorName = address.getLastElement().getValue(); ServiceName tmpDirPath = ServiceName.JBOSS.append("server", "path", "jboss.controller.temp.dir"); final ServiceName securityRealm = model.hasDefined(SECURITY_REALM) ? SecurityRealmService.BASE_SERVICE_NAME .append(model.require(SECURITY_REALM).asString()) : null; final ModelNode fullModel = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); RemotingServices.installSecurityServices(context.getServiceTarget(), connectorName, securityRealm, null, tmpDirPath, verificationHandler, newControllers); launchServices(context, connectorName, fullModel, verificationHandler, newControllers); }
/** * {@inheritDoc} */ @Override public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { final ModelNode model = Resource.Tools.readModel(context.readResource(PathAddress.EMPTY_ADDRESS)); final String name = PathAddress.pathAddress(operation.require(OP_ADDR)).getLastElement().getValue(); final String runtimeName = RUNTIME_NAME.resolveModelAttribute(context, model).asString(); final DeploymentHandlerUtil.ContentItem[] contents = getContents(CONTENT_ALL.resolveModelAttribute(context, model)); redeploy(context, runtimeName, name, vaultReader, contents); context.stepCompleted(); } }
@Override protected void performRuntime(OperationContext context, ModelNode operation, ModelNode model) throws OperationFailedException { boolean useManagementEndpoint = RemotingConnectorResource.USE_MANAGEMENT_ENDPOINT.resolveModelAttribute(context, model).asBoolean(); ServiceName remotingCapability; if (!useManagementEndpoint) { // Use the remoting capability // if (context.getProcessType() == ProcessType.DOMAIN_SERVER) then DomainServerCommunicationServices // installed the "remoting subsystem" endpoint and we don't even necessarily *have to* have a remoting // subsystem and possibly we could skip adding the requirement for its capability. But really, specifying // not to use the management endpoint and then not configuring a remoting subsystem is a misconfiguration, // and we should treat it as such. So, we add the requirement no matter what. context.requireOptionalCapability(RemotingConnectorResource.REMOTING_CAPABILITY, RemotingConnectorResource.REMOTE_JMX_CAPABILITY.getName(), RemotingConnectorResource.USE_MANAGEMENT_ENDPOINT.getName()); remotingCapability = context.getCapabilityServiceName(RemotingConnectorResource.REMOTING_CAPABILITY, Endpoint.class); } else { remotingCapability = ManagementRemotingServices.MANAGEMENT_ENDPOINT; } // Read the model for the JMX subsystem to find the domain name for the resolved/expressions models (if they are exposed). PathAddress address = PathAddress.pathAddress(operation.get(ModelDescriptionConstants.OP_ADDR)); PathAddress parentAddress = address.subAddress(0, address.size() - 1); ModelNode jmxSubsystemModel = Resource.Tools.readModel(context.readResourceFromRoot(parentAddress, true)); String resolvedDomain = getDomainName(context, jmxSubsystemModel, CommonAttributes.RESOLVED); String expressionsDomain = getDomainName(context, jmxSubsystemModel, CommonAttributes.EXPRESSION); RemotingConnectorService.addService(context.getServiceTarget(), remotingCapability, resolvedDomain, expressionsDomain); } }