Skip to content

Commit

Permalink
WFLY-11117 Executing legacy operations in mod_cluster subsystem is no…
Browse files Browse the repository at this point in the history
…t possible with configuration with just one proxy
  • Loading branch information
rhusar committed Oct 25, 2018
1 parent 60a86a7 commit 733b4db
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 32 deletions.
Expand Up @@ -162,8 +162,11 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
registration.registerOperationHandler(legacyRemoveCustomMetricOperation, legacyRemoveCustomMetricHandler);
}

static PathAddress translateProxyPath(OperationContext context) throws OperationFailedException {
PathAddress address = context.getCurrentAddress().getParent();
private static PathAddress translateProxyPath(OperationContext context) throws OperationFailedException {
return translateProxyPath(context, context.getCurrentAddress().getParent());
}

static PathAddress translateProxyPath(OperationContext context, PathAddress address) throws OperationFailedException {
Set<Resource.ResourceEntry> children = context.readResourceFromRoot(address).getChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey());
if (children.size() != 1) {
throw new OperationFailedException(ModClusterLogger.ROOT_LOGGER.legacyOperationsWithMultipleProxies());
Expand Down
Expand Up @@ -45,8 +45,8 @@
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import org.jboss.modcluster.ModClusterServiceMBean;
import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceName;
import org.wildfly.clustering.service.ActiveServiceSupplier;

/**
* These are legacy operations suffering from multiple issues such as WFLY-10442, WFLY-10445, WFLY-10444, WFLY-10441, etc.
Expand Down Expand Up @@ -76,8 +76,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
ROOT_LOGGER.debugf("add-proxy: %s", operation);

String host = HOST.resolveModelAttribute(context, operation).asString();
Expand Down Expand Up @@ -118,8 +117,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
service.disable();

context.completeStep(new OperationContext.RollbackHandler() {
Expand Down Expand Up @@ -149,8 +147,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
ROOT_LOGGER.debugf("disable-context: %s", operation);

String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString();
Expand Down Expand Up @@ -187,8 +184,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
service.enable();

context.completeStep(new OperationContext.RollbackHandler() {
Expand Down Expand Up @@ -218,8 +214,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
ROOT_LOGGER.debugf("enable-context: %s", operation);

String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString();
Expand Down Expand Up @@ -260,8 +255,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
Map<InetSocketAddress, String> map = service.getProxyInfo();
ROOT_LOGGER.debugf("Mod_cluster ListProxies %s", map);
if (!map.isEmpty()) {
Expand Down Expand Up @@ -295,8 +289,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
Map<InetSocketAddress, String> map = service.getProxyConfiguration();
ROOT_LOGGER.debugf("Mod_cluster ProxyConfiguration %s", map);
if (!map.isEmpty()) {
Expand Down Expand Up @@ -334,8 +327,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
Map<InetSocketAddress, String> map = service.getProxyInfo();
ROOT_LOGGER.debugf("Mod_cluster ProxyInfo %s", map);
if (!map.isEmpty()) {
Expand Down Expand Up @@ -369,8 +361,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
service.refresh();
context.completeStep(OperationContext.RollbackHandler.NOOP_ROLLBACK_HANDLER);
}
Expand All @@ -395,8 +386,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
ROOT_LOGGER.debugf("remove-proxy: %s", operation);

String host = HOST.resolveModelAttribute(context, operation).asString();
Expand Down Expand Up @@ -438,8 +428,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
service.reset();
context.completeStep(OperationContext.RollbackHandler.NOOP_ROLLBACK_HANDLER);
}
Expand All @@ -462,8 +451,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
ROOT_LOGGER.debugf("stop: %s", operation);

int waitTime = WAIT_TIME.resolveModelAttribute(context, operation).asInt();
Expand Down Expand Up @@ -500,8 +488,7 @@ public void execute(OperationContext context, ModelNode operation) throws Operat
context.addStep(new OperationStepHandler() {
@Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ModClusterServiceMBean service = getService(context);
ROOT_LOGGER.debugf("stop-context: %s", operation);

String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString();
Expand Down Expand Up @@ -531,9 +518,9 @@ public void handleRollback(OperationContext context, ModelNode operation) {

static final String SESSION_DRAINING_COMPLETE = "session-draining-complete";

private static ServiceController<?> getService(OperationContext context) throws OperationFailedException {
PathAddress proxyAddress = LegacyMetricOperationsRegistration.translateProxyPath(context);
private static ModClusterServiceMBean getService(OperationContext context) throws OperationFailedException {
PathAddress proxyAddress = LegacyMetricOperationsRegistration.translateProxyPath(context, context.getCurrentAddress());
ServiceName serviceName = ProxyConfigurationResourceDefinition.Capability.SERVICE.getServiceName(proxyAddress);
return context.getServiceRegistry(false).getService(serviceName);
return new ActiveServiceSupplier<ModClusterServiceMBean>(context.getServiceRegistry(true), serviceName).get();
}
}

0 comments on commit 733b4db

Please sign in to comment.