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); registration.registerOperationHandler(legacyRemoveCustomMetricOperation, legacyRemoveCustomMetricHandler);
} }


static PathAddress translateProxyPath(OperationContext context) throws OperationFailedException { private static PathAddress translateProxyPath(OperationContext context) throws OperationFailedException {
PathAddress address = context.getCurrentAddress().getParent(); 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()); Set<Resource.ResourceEntry> children = context.readResourceFromRoot(address).getChildren(ProxyConfigurationResourceDefinition.WILDCARD_PATH.getKey());
if (children.size() != 1) { if (children.size() != 1) {
throw new OperationFailedException(ModClusterLogger.ROOT_LOGGER.legacyOperationsWithMultipleProxies()); throw new OperationFailedException(ModClusterLogger.ROOT_LOGGER.legacyOperationsWithMultipleProxies());
Expand Down
Expand Up @@ -45,8 +45,8 @@
import org.jboss.dmr.ModelNode; import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType; import org.jboss.dmr.ModelType;
import org.jboss.modcluster.ModClusterServiceMBean; import org.jboss.modcluster.ModClusterServiceMBean;
import org.jboss.msc.service.ServiceController;
import org.jboss.msc.service.ServiceName; 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. * 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ROOT_LOGGER.debugf("add-proxy: %s", operation); ROOT_LOGGER.debugf("add-proxy: %s", operation);


String host = HOST.resolveModelAttribute(context, operation).asString(); 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
service.disable(); service.disable();


context.completeStep(new OperationContext.RollbackHandler() { 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ROOT_LOGGER.debugf("disable-context: %s", operation); ROOT_LOGGER.debugf("disable-context: %s", operation);


String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString(); 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
service.enable(); service.enable();


context.completeStep(new OperationContext.RollbackHandler() { 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ROOT_LOGGER.debugf("enable-context: %s", operation); ROOT_LOGGER.debugf("enable-context: %s", operation);


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


String host = HOST.resolveModelAttribute(context, operation).asString(); 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
service.reset(); service.reset();
context.completeStep(OperationContext.RollbackHandler.NOOP_ROLLBACK_HANDLER); 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ROOT_LOGGER.debugf("stop: %s", operation); ROOT_LOGGER.debugf("stop: %s", operation);


int waitTime = WAIT_TIME.resolveModelAttribute(context, operation).asInt(); 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() { context.addStep(new OperationStepHandler() {
@Override @Override
public void execute(OperationContext context, ModelNode operation) throws OperationFailedException { public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
ServiceController<?> controller = getService(context); ModClusterServiceMBean service = getService(context);
ModClusterServiceMBean service = (ModClusterServiceMBean) controller.getValue();
ROOT_LOGGER.debugf("stop-context: %s", operation); ROOT_LOGGER.debugf("stop-context: %s", operation);


String webHost = VIRTUAL_HOST.resolveModelAttribute(context, operation).asString(); 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"; static final String SESSION_DRAINING_COMPLETE = "session-draining-complete";


private static ServiceController<?> getService(OperationContext context) throws OperationFailedException { private static ModClusterServiceMBean getService(OperationContext context) throws OperationFailedException {
PathAddress proxyAddress = LegacyMetricOperationsRegistration.translateProxyPath(context); PathAddress proxyAddress = LegacyMetricOperationsRegistration.translateProxyPath(context, context.getCurrentAddress());
ServiceName serviceName = ProxyConfigurationResourceDefinition.Capability.SERVICE.getServiceName(proxyAddress); 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.