wildfly-extras / sunstone Goto Github PK
View Code? Open in Web Editor NEWSimple Java library which helps to control virtual machines in cloud environments
License: Apache License 2.0
Simple Java library which helps to control virtual machines in cloud environments
License: Apache License 2.0
Internal ID: 32
Does it make sense? v2 and/or v3? Relationship to the Kubernetes provider (#16)?
Internal ID: 20
EC2 node should have configurable VPC. Sth like:
The default boot timeout (20s) is insufficient in some cases (e.g. Azure). Let's specify it explicitly in WildFlyNode and use a reasonable default (60s?) for the new property.
CC @jmartisk
When using baremetal provider, there should be option to configure also its private IP addresses as you might want to have defined some virtual network between nodes in the clouds and want to be able to access these addresses also when using bare provider. Or you just want to mimic with the baremetal provider the same public vs private IP address setup as when using some other cloud provider where public and private IP addresses are not equal.
Internal ID: 75
From AzureNode
(but this is the case in other Nodes as well):
try {
this.initialNodeMetadata = createNode(template);
String publicAddress = Iterables.getFirst(initialNodeMetadata.getPublicAddresses(), null);
LOGGER.info("Started {} node '{}' from image {}, its public IP address is {}",
cloudProvider.getCloudProviderType().getHumanReadableName(), name, imageName, publicAddress);
waitForStartPorts();
} catch (RunNodesException e) {
throw new RuntimeException("Unable to create " + cloudProvider.getCloudProviderType().getHumanReadableName()
+ " node from template " + template, e);
}
If an exception is thrown in waitForStartPorts
it is a subclass of RuntimeException and isn't caught. In this case, the VM has already been successfully provisioned and it is not destroyed when the exception is thrown.
Internal ID: 56
Doing trivial ExecBuilder.fromCommand("touch", "/tmp/bagr").exec(node)
works properly, but when adding .asDaemon()
, the file doesn't get created.
In our tests, We're using a public AMI with Amazon Linux on it. The sleep command from our tests works on that AMI when run manually, but not when running without a terminal. I don't know what's the cause yet. However, when running the tests on a RH AMI, it works in both cases. Thus, I assume the issue is with the Amazon AMI and ExecBuilder.asDaemon
does work on EC2.
It is currently possible to start a variable number of nodes with the same configuration with Sunstone, but it's a little clunky.
To do that, we define a node with complete configuration:
node.node1.stuff=stuff
node.node1.moreStuff=moreStuff
And then we add a second node with the template property:
node.node2.template=node1
We can also change any properties for node2
that are different from the template settings. This approach can be chained (e.g. node3
inherits from node2
, node2
from node1
).
Issues with the current approach:
sunstone.properties
file or an equivalent, because it can get large. It can, of course, be extracted and passed as a list of java system properties, but then, ....properties
file related to the test defines node1
as a template, we'll be looking for properties for node2
, node3
, etc. and we'll stop when we don't find any template property for node4
. This is not an elegant solution though - it would be better if we could extract a list of node names from a property that has been passed by a user - e.g.:node.node1.templateTo=node2,node3
Proposed solution:
Exactly what I used as an example above, we introduce property node.<nodeName>.templateTo
, which will list the node names that will be automatically configured as if they were declared with node.<newNodeName>.template
.
Requirements:
template
..properties
files.Non-requirements and notes:
Internal ID: 46
This means that with a nice user-data script, you can get an instance that's not yet prepared for use. We do wait for ports to open, but the instance startup can be longer than that. We should wait for AWS to register the instance as running.
Creating the nodes only once by createNodes
will save significant amount of time for running the providers smoke test.
Internal ID: 58
This was probably intentional, but it's not very convenient. I don't think people will be writing node configuration in such a way that they could start the node in multiple cloud providers (though they theoretically can). At the same time, the link would be useful -- e.g. for the bare metal provider (actually for the byon JClouds provider) or for the Arquillian extension.
Are we gonna do something about that?
... to address wider audience.
SSIA.
I think isRunning
should return false
in such case. Before actually changing the behavior, see what is the behavior for other providers. Documentation does not state what it should be, fix that too.
Internal ID: 15
Add a new method killWildFly()
which finds and kills WFLY/EAP java processes.
These two:
clouds.sysprop.value.delimiter
at ObjectProperties
clouds.ssh
at DynamicSshClientModule
They should be deprecated and replaced with properties with proper prefix.
And the Arquillian README mentions old properties with the "clouds" prefix.
These are the properties that the behavior was observed with, the boot scripts were not executed: http://pastebin.test.redhat.com/694060
Internal ID: 25
When releasing a new version, doclint needs to be disabled, otherwise it blocks the release on the javadoc plugin. Either fix the documentation according to the errors/warnings, or disable doclint for good.
The docker api is now in the main JClouds repo. Let's update the Sunstone dependencies.
As the Sunstone tests expect to Docker provider to be configured, we can reuse it also for BaremetalCloudProvider testing. Currently the BaremetalTest expects an SSH-able host and the test run must be allowed by system property -Dbaremetal.run
.
The command for creating a key pair needs to be updated, this is the correct one:
ssh-keygen -m PEM -t rsa -f ./my-openstack.pem
The README.md
says,
Some properties are expected to contain file paths. This is typical e.g. for SSH private keys:
node.nodeA.openstack.ssh.privateKeyFile=/home/me/.ssh/id_rsa
In such cases, it is possible to load data also from classpath, using the classpath: prefix:
node.nodeA.openstack.ssh.privateKeyFile=classpath:org/jboss/test/openstack/ssh-private-key.pem
Note that these classpath resources are actually copied to the filesystem and the resulting temporary files are scheduled to be deleted at JVM exit. This shouldn't be a concern typically.
Doing "node.nodeA.openstack.ssh.privateKeyFile=classpath:test/ssh-private-key.pem" will expose
the temporary copy of the private key to local users on the system for a while.
We should add some level of protection here.
Among other things, this fixes JCLOUDS-1225.
Internal ID: 48
Let's identify possible extension points for the framework and create new issues for them:
With the current removing functionality a license header can still leak into repository with some Pull request.
Internal ID: 79
Depends on #25
Add listeners/callbacks/observers to let the user monitor the lifecycle of on-boot scripts. When this is implemented, the user should be able to find out when his VM has been fully configured.
While testing 1.2.0 release (with no changes to EC2 provider), the EC2 test failed intermittently several times:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.wildfly.extras.sunstone.tests.ec2.EC2Test
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/home/rjanik/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 425.664 sec <<< FAILURE! - in org.wildfly.extras.sunstone.tests.ec2.EC2Test
node(org.wildfly.extras.sunstone.tests.ec2.EC2Test) Time elapsed: 424.551 sec <<< FAILURE!
java.lang.AssertionError: 'sleep' process should be found expected:<0> but was:<1>
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.failNotEquals(Assert.java:834)
at org.junit.Assert.assertEquals(Assert.java:645)
at org.wildfly.extras.sunstone.tests.AbstractCloudProviderTest.testExecBuilderFactory(AbstractCloudProviderTest.java:332)
at org.wildfly.extras.sunstone.tests.AbstractCloudProviderTest.node(AbstractCloudProviderTest.java:194)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
and:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running org.wildfly.extras.sunstone.tests.ec2.EC2Test
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/home/rjanik/.m2/repository/com/google/inject/guice/3.0/guice-3.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Tests run: 2, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 521.275 sec <<< FAILURE! - in org.wildfly.extras.sunstone.tests.ec2.EC2Test
node(org.wildfly.extras.sunstone.tests.ec2.EC2Test) Time elapsed: 520.502 sec <<< FAILURE!
java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:86)
at org.junit.Assert.assertTrue(Assert.java:41)
at org.junit.Assert.assertTrue(Assert.java:52)
at org.wildfly.extras.sunstone.tests.AbstractCloudProviderTest.testLifecycleControl(AbstractCloudProviderTest.java:359)
at org.wildfly.extras.sunstone.tests.AbstractCloudProviderTest.node(AbstractCloudProviderTest.java:195)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
The first is likely timing issue - the test is slow and once the sleep time has been increased (to 300), the test passed. The second needs to be investigated, because it violates the contract that says when you run node.start()
, the node should be started afterwards.
There are 4 low priority issues and the fixing should be pretty straight forward.
current default ArgumentEscaper always encloses argument to single quotes '. So it's not possible to resolve variables.
echo '$PATH' // prints $PATH
It has been suggested that we investigate the use of structured configuration files - using JSON instead of .properties. Libraries for working with JSON (Jackson/GSON/...) could allow us to construct configuration objects directly from the configuration files.
Cc @jmartisk
I've tried creating some instances with a private image by supplying the image name and I got:
java.util.concurrent.CompletionException: java.lang.IllegalArgumentException: No image exists: <<<image-name>>>
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[na:1.8.0_45]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) ~[na:1.8.0_45]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1584) ~[na:1.8.0_45]
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1574) ~[na:1.8.0_45]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) ~[na:1.8.0_45]
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) ~[na:1.8.0_45]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1689) ~[na:1.8.0_45]
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) ~[na:1.8.0_45]
Caused by: java.lang.IllegalArgumentException: No image exists: <<<image-name>>>
at org.wildfly.extras.sunstone.api.impl.ResolvedImage.fromNameAndId(ResolvedImage.java:49) ~[sunstone-core-0.8.0.jar:na]
at org.wildfly.extras.sunstone.api.impl.ec2.EC2Node.<init>(EC2Node.java:61) ~[sunstone-core-0.8.0.jar:na]
at org.wildfly.extras.sunstone.api.impl.ec2.EC2CloudProvider.createNodeInternal(EC2CloudProvider.java:73) ~[sunstone-core-0.8.0.jar:na]
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$3(AbstractJCloudsCloudProvider.java:100) ~[sunstone-core-0.8.0.jar:na]
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$22/346631962.apply(Unknown Source) ~[na:na]
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853) ~[na:1.8.0_45]
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95) ~[sunstone-core-0.8.0.jar:na]
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$6(AbstractJCloudsCloudProvider.java:154) ~[sunstone-core-0.8.0.jar:na]
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$21/898695324.get(Unknown Source) ~[na:na]
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1582) ~[na:1.8.0_45]
... 5 common frames omitted
Creating the instance via ID succeeds and the logs show that the image name is indeed correct.
I'm not sure why this is happening or whether there is some solution to it.
Internal ID: 89
The node group name can be too long for EC2. The limitation is 63 characters.
Object 'cloudts-jenkins-eap-7x-amazon-domain-simple-cluster-test-rhel6-1' doesn't match dns naming constraints. Reason: Can't be null or empty. Length must be 3 to 63 symbols.
This is an issue that has been found with older version of Sunstone and JClouds and needs to be validated.
Copying reproducer information from an internal document:
# Install Docker-CE on Ubuntu - https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/
# Preparing docker daemon on Ubuntu to listen on tcp.
cat > /etc/docker/daemon.json <<EOF
{
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
}
EOF
# Update /lib/systemd/system/docker.service
- ExecStart=/usr/bin/dockerd -H fd://
+ ExecStart=/usr/bin/dockerd
systemctl daemon-reload
service docker restart
# run Wireshark to listen on loopback
docker -H tcp://0.0.0.0:2375 run hello-world
# TODO: Run this java application which uses JClouds library to start a local image.
# TODO: List communication when local image is running.
# When docker client is used and remote image is run, the communication consists of HTTP requests (see attached file for entire communication):
# POST /v1.30/containers/create -> returns 404
# GET /v1.30/info -> returns 200
# POST /v1.30/images/create?fromImage=hello-world&tag=latest -> returns 200
# POST /v1.30/containers/create -> returns 200
# When JClouds is used and local image is run, the communication consists of HTTP requests (see attached file for entire communication):
# POST /v1.18/images/create?fromImage=hello-world
# This request returns 200 on old implementation of Docker so JClouds works.
# This request returns 404 on new implementation of Docker what causes an exception in JClouds and failure of application.
Stacktrace:
Tests run: 4, Failures: 0, Errors: 4, Skipped: 0, Time elapsed: 7.142 sec <<< FAILURE! - in org.jboss.qa.messaging.tests.eap7.NfsNetworkFailureTestCase
disconnectJournalOnNfsCheckIOError(org.jboss.qa.messaging.tests.eap7.NfsNetworkFailureTestCase) Time elapsed: 2.422 sec <<< ERROR!
java.lang.RuntimeException: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jboss.qa.messaging.MessagingTestBase.setUp(MessagingTestBase.java:166)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at java.util.concurrent.CompletableFuture.internalComplete(CompletableFuture.java:205)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:482)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:73)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.http.HttpResponseException: command: POST http://127.0.0.1:2375/v1.18/images/create?fromImage=eap HTTP/1.1 failed with response: HTTP/1.1 404 Not Found; content: [repository eap not found: does not exist or no pull access
]
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:50)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
disconnectJournalOnNfsCheckBroker(org.jboss.qa.messaging.tests.eap7.NfsNetworkFailureTestCase) Time elapsed: 1.53 sec <<< ERROR!
java.lang.RuntimeException: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jboss.qa.messaging.MessagingTestBase.setUp(MessagingTestBase.java:166)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at java.util.concurrent.CompletableFuture.internalComplete(CompletableFuture.java:205)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:482)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:73)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.http.HttpResponseException: command: POST http://127.0.0.1:2375/v1.18/images/create?fromImage=eap HTTP/1.1 failed with response: HTTP/1.1 404 Not Found; content: [repository eap not found: does not exist or no pull access
]
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:50)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
disconnectJournalOnNfs41CheckIOError(org.jboss.qa.messaging.tests.eap7.NfsNetworkFailureTestCase) Time elapsed: 1.505 sec <<< ERROR!
java.lang.RuntimeException: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jboss.qa.messaging.MessagingTestBase.setUp(MessagingTestBase.java:166)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at java.util.concurrent.CompletableFuture.internalComplete(CompletableFuture.java:205)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:482)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:73)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.http.HttpResponseException: command: POST http://127.0.0.1:2375/v1.18/images/create?fromImage=eap HTTP/1.1 failed with response: HTTP/1.1 404 Not Found; content: [repository eap not found: does not exist or no pull access
]
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:50)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
disconnectJournalOnNfs41CheckBroker(org.jboss.qa.messaging.tests.eap7.NfsNetworkFailureTestCase) Time elapsed: 1.541 sec <<< ERROR!
java.lang.RuntimeException: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jboss.qa.messaging.MessagingTestBase.setUp(MessagingTestBase.java:166)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
Caused by: java.util.concurrent.CompletionException: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at java.util.concurrent.CompletableFuture.internalComplete(CompletableFuture.java:205)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:482)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.rest.ResourceNotFoundException: repository eap not found: does not exist or no pull access
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:73)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Caused by: org.jclouds.http.HttpResponseException: command: POST http://127.0.0.1:2375/v1.18/images/create?fromImage=eap HTTP/1.1 failed with response: HTTP/1.1 404 Not Found; content: [repository eap not found: does not exist or no pull access
]
at org.jclouds.docker.handlers.DockerErrorHandler.handleError(DockerErrorHandler.java:50)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
at org.jclouds.reflect.FunctionalReflection$FunctionalInvocationHandler.handleInvocation(FunctionalReflection.java:117)
at com.google.common.reflect.AbstractInvocationHandler.invoke(AbstractInvocationHandler.java:87)
at com.sun.proxy.$Proxy63.createImage(Unknown Source)
at org.wildfly.extras.sunstone.api.impl.docker.DockerNode.<init>(DockerNode.java:90)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.createNodeInternal(DockerCloudProvider.java:68)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$16/2104285708.apply(Unknown Source)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:172)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider$$Lambda$14/1751500625.get(Unknown Source)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:476)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:902)
at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1689)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1644)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Results :
Tests in error:
Trying with Oracle JDK 9.0.4, the tests fail with:
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.783 sec <<< FAILURE! - in org.wildfly.extras.sunstone.api.impl.docker.NodeGroupTest
test(org.wildfly.extras.sunstone.api.impl.docker.NodeGroupTest) Time elapsed: 0.75 sec <<< ERROR!
com.google.inject.internal.util.$ComputationException: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
at com.google.inject.internal.FailableCache.get(FailableCache.java:50)
at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125)
at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:521)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:847)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853)
at com.google.inject.internal.FactoryProxy.notify(FactoryProxy.java:46)
at com.google.inject.internal.ProcessedBindingData.runCreationListeners(ProcessedBindingData.java:50)
at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:133)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
at com.google.inject.Guice.createInjector(Guice.java:95)
at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:405)
at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:328)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.<init>(AbstractJCloudsCloudProvider.java:65)
at org.wildfly.extras.sunstone.api.impl.docker.DockerCloudProvider.<init>(DockerCloudProvider.java:35)
at org.wildfly.extras.sunstone.api.CloudProvider.create(CloudProvider.java:152)
at org.wildfly.extras.sunstone.api.CloudProvider.create(CloudProvider.java:134)
at org.wildfly.extras.sunstone.api.impl.docker.NodeGroupTest.test(NodeGroupTest.java:16)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:367)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:274)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:238)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:161)
at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:290)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:242)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:121)
Caused by: com.google.inject.internal.util.$ComputationException: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
at com.google.inject.internal.FailableCache.get(FailableCache.java:50)
at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125)
at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:521)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:847)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
at com.google.inject.internal.InjectorImpl.createImplementedByBinding(InjectorImpl.java:732)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:618)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:845)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853)
at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:925)
at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:913)
at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:69)
at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32)
at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39)
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549)
... 47 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3110)
at java.base/java.lang.Class.getDeclaredConstructors(Class.java:2314)
at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:243)
at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:96)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:845)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
at com.google.inject.internal.InjectorImpl.createImplementedByBinding(InjectorImpl.java:732)
at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:618)
at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:845)
at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853)
at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:925)
at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:913)
at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:69)
at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36)
at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32)
at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39)
at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549)
... 72 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 97 more
Internal ID: 26
Internal ID: 76
This is an extension of the user-data
functionality for EC2 and Azure. The idea is that the support should be across all providers and should be unified in behavior.
One idea is to implement this via ExecBuilder
.
This issue should also give the user a way to work around #19
It could help to resolve some dependency issues.
This change is related also to @mchoma findings in https://issues.jboss.org/browse/JBEAP-5654
Move waiting for start ports from Node constructor to the cloud provider before bootScript handler.
We should also add possibility to wait for ports after a bootScript is executed.
It's been observed that in some cases, file names have been truncated after files being moved with the copy functions. There's no manipulation with the file names in Sunstone, but apparently, tar
used to truncate file names in older systems. We need to find a way to work around this. Users of these methods don't necessarily expect that the methods will tar the files prior to copying them.
The AzureTest
sometime hangs during node.kill()
call (i.e. 2nd suspend of the VM).
We could try if the behavior change depending on deallocating the VM in Azure.
When we use Windows images with Cygwin, then sudo
is not available, so we should have possibility to omit it completely or replace it with another command - e.g. cygstart.exe --action=runas
.
The onBootScript
is currently launched with sudo. This could/should be also configurable.
Internal ID: 38
DockerNode.copyFromNode()
uses Docker copy
API internally, so it shouldn't care about file permissions. Nevertheless, the checks in the implemented method executes file-type tests under the configured user. When the container's user doesn't have permissions to see the file, the operation results in FileNotFoundException
.
Let's decide
if (it's a bug) {
fixIt();
} else {
documentIt();
}
A suggestion by @jmartisk
A LogRetriever class could be implemented that would be capable of opening a continuous stream of bytes from a remote text file after being passed the location of the text file and a handler class that would consume the bytes. Declarative approach could be used to specify the handlers and remote files.
@jmartisk could you specify how you imagined this would work? Thanks!
Internal ID: 96
... and use it e.g. in CreatedNodes.close()
method.
@Ladicek commented:
CreatedNodes.close
could be made parallel internally, without async node destroying. So unless people are demanding async node destroy itself, I wouldn't add it.
I've caught this twice today:
10:16:44.907 [ForkJoinPool.commonPool-worker-1] INFO sunstone.core - Started Amazon EC2 node 'node1' from image us-east-1/ami-6445c773, its public IP address is null
My test then fails because the IP address can't be null:
Caused by: java.lang.IllegalStateException: node does not have IP addresses configured: {redacted}
at com.google.common.base.Preconditions.checkState(Preconditions.java:199)
at org.jclouds.compute.util.ConcurrentOpenSocketFinder.checkNodeHasIps(ConcurrentOpenSocketFinder.java:191)
at org.jclouds.compute.util.ConcurrentOpenSocketFinder.findOpenSocketOnNode(ConcurrentOpenSocketFinder.java:82)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsNode.waitForPorts(AbstractJCloudsNode.java:191)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsNode.waitForStartPorts(AbstractJCloudsNode.java:182)
at org.wildfly.extras.sunstone.api.impl.ec2.EC2Node.<init>(EC2Node.java:91)
at org.wildfly.extras.sunstone.api.impl.ec2.EC2CloudProvider.createNodeInternal(EC2CloudProvider.java:73)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNode$0(AbstractJCloudsCloudProvider.java:100)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1853)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.createNode(AbstractJCloudsCloudProvider.java:95)
at org.wildfly.extras.sunstone.api.impl.AbstractJCloudsCloudProvider.lambda$createNodeAsync$3(AbstractJCloudsCloudProvider.java:164)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
... 5 more
I'll assign myself because I intend to investigate this in time, but if someone wants to take it, sure, go ahead. Ask me if you want instructions on how to reproduce it, but know that the fail is random.
In JCloudsSshClient, there is a code
ExecResponse sudoersResult = jcloudsSshClient.exec("sh -c '" + SshUtils.FileType.getShellTestStr("/etc/sudoers") + "'");
SshUtils.FileType sudoersFile = SshUtils.FileType.fromExitCode(sudoersResult.getExitStatus());
if (sudoersFile == SshUtils.FileType.FILE) {
// see https://bugzilla.redhat.com/show_bug.cgi?id=1020147
LOGGER.trace("Removing 'Defaults requiretty' from /etc/sudoers so that sudo works without a PTY");
ExecResponse result = jcloudsSshClient.exec("sudo sed -i -e 's/Defaults requiretty/#Defaults requiretty/' /etc/sudoers");
if (result.getExitStatus() != 0) {
LOGGER.warn("Failed removing 'Defaults requiretty' from /etc/sudoers, running with sudo might not work");
LOGGER.debug("stdout: {}", result.getOutput());
LOGGER.debug("stderr: {}", result.getError());
}
}
This code requires that the user must have sudo permissions which can be used without password. If normal user tries to connect via SSH, the sudo sed...
command hangs for 5 minutes, because sudo asks a password.
I understand why this is needed, but maybe we should consider to move this "hack" somewhere else. Would be possible to remove the line in /etc/sudoers in bootScript?
Internal ID: 50
It's not possible to use SSH key protected by passphrase. Following exception is thrown:
java.lang.IllegalStateException: Optional.get() cannot be called on an absent value
at com.google.common.base.Absent.get(Absent.java:47)
at org.jclouds.crypto.ASN1Codec.createASN1Sequence(ASN1Codec.java:84)
at org.jclouds.crypto.ASN1Codec.decodeRSAPrivateKey(ASN1Codec.java:64)
at org.jclouds.crypto.Pems$DecodeRSAPrivateCrtKeySpec.parseResult(Pems.java:238)
at org.jclouds.crypto.Pems$DecodeRSAPrivateCrtKeySpec.parseResult(Pems.java:233)
at org.jclouds.crypto.Pems$PemProcessor.getResult(Pems.java:98)
at com.google.common.io.ByteSource$ByteArrayByteSource.read(ByteSource.java:532)
at org.jclouds.crypto.Pems.fromPem(Pems.java:195)
at org.jclouds.crypto.Pems.privateKeySpec(Pems.java:214)
at org.jclouds.crypto.Pems.privateKeySpec(Pems.java:252)
at org.jclouds.ssh.SshKeys.fingerprintPrivateKey(SshKeys.java:211)
at org.jclouds.openstack.nova.v2_0.compute.strategy.ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.execute(ApplyNovaTemplateOptionsCreateNodesWithGroupEncodedIntoNameThenAddToSet.java:128)
at org.jclouds.compute.internal.BaseComputeService.createNodesInGroup(BaseComputeService.java:217)
Users hit this on OpenStack, but it can be a general issue.
Workaround exists - to use an unprotected key.
When using creaper from WildFly node, it uses auth version which expects to have properly defined user on EAP. This user creation should be created automatically to simplify usage.
User doesn't want to need to track how it is defined across different images when it can be handled automatically. There is no issue in having defined multiple management users on EAP/WildFly server => there can be added one by the sunstone library automatically for usage by creaper.
Internal ID: 31
... if it makes sense.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.