]
Brian Stansberry updated WFLY-3703:
-----------------------------------
Fix Version/s: 8.2.0.CR1
9.0.0.Alpha1
arq.container.domain.ManagementClient.readRootNode does not see
servers on remote hosts
---------------------------------------------------------------------------------------
Key: WFLY-3703
URL:
https://issues.jboss.org/browse/WFLY-3703
Project: WildFly
Issue Type: Bug
Components: Test Suite
Affects Versions: 8.1.0.Final
Environment: Linux
aimobile-sm.servicemesh.com 3.15.6-200.fc20.x86_64 #1 SMP Fri
Jul 18 02:36:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Reporter: Arcadiy Ivanov
Assignee: Arcadiy Ivanov
Priority: Blocker
Fix For: 8.2.0.CR1, 9.0.0.Alpha1
Attachments: non-recursive.txt, recursive-runtime.txt, recursive.txt
Trying to use Arquillian with remote multi-host domain.
Now see the code snippet below:
* readRootNode calls readResource with includeRuntime set to true.
* readResource also sets recursive to true.
However due to this behavior of read-resource *no hosts other than domain
controller's are visible to Arquillian*:
[proxies – (boolean, default is false) – whether to include remote resources in a
recursive query (i.e. host level resources from slave Host Controllers in a query of the
Domain Controller; running server resources in a query of a
host).|https://docs.jboss.org/author/display/WFLY8/Global+operations]
+As a result if I have a DC on localhost with no servers and Host1 with Node1 on
127.0.0.2 and Host2 with Node2 on 127.0.0.3, Arquillian will not find ANY servers to
deploy to - no proxies (remote hosts) will be enumerated.+
{noformat}
private void readRootNode() throws Exception {
rootNode = readResource(new ModelNode());
}
private ModelNode readResource(ModelNode address) throws Exception {
return readResource(address, true);
}
private ModelNode readResource(ModelNode address, boolean includeRuntime) throws
Exception {
final ModelNode operation = new ModelNode();
operation.get(OP).set(READ_RESOURCE_OPERATION);
operation.get(RECURSIVE).set("true");
operation.get(INCLUDE_RUNTIME).set(includeRuntime);
operation.get(OP_ADDR).set(address);
return executeForResult(operation);
}
{noformat}