You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2016/01/21 01:03:37 UTC
[13/19] jclouds git commit: Prefer polling the status of the node
Prefer polling the status of the node
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/3fbd399f
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/3fbd399f
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/3fbd399f
Branch: refs/heads/master
Commit: 3fbd399f6b3c35f1cb2e0b0af797c9db5f72fe39
Parents: 83ff38e
Author: Ignasi Barrera <na...@apache.org>
Authored: Wed Oct 28 18:14:42 2015 +0100
Committer: Ignasi Barrera <na...@apache.org>
Committed: Thu Oct 29 15:55:23 2015 +0100
----------------------------------------------------------------------
.../DigitalOcean2ComputeServiceAdapter.java | 3 +--
.../DigitalOcean2TemplateBuilderLiveTest.java | 2 +-
.../features/DropletApiLiveTest.java | 27 +++++++-------------
.../digitalocean2/features/KeyApiLiveTest.java | 2 --
.../internal/BaseDigitalOcean2ApiLiveTest.java | 27 +++++++++++++++-----
5 files changed, 31 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3fbd399f/providers/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/DigitalOcean2ComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/providers/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/DigitalOcean2ComputeServiceAdapter.java b/providers/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/DigitalOcean2ComputeServiceAdapter.java
index 2d76176..f520f45 100644
--- a/providers/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/DigitalOcean2ComputeServiceAdapter.java
+++ b/providers/digitalocean2/src/main/java/org/jclouds/digitalocean2/compute/DigitalOcean2ComputeServiceAdapter.java
@@ -42,7 +42,6 @@ import org.jclouds.compute.reference.ComputeServiceConstants;
import org.jclouds.digitalocean2.DigitalOcean2Api;
import org.jclouds.digitalocean2.compute.internal.ImageInRegion;
import org.jclouds.digitalocean2.compute.options.DigitalOcean2TemplateOptions;
-import org.jclouds.digitalocean2.domain.Action;
import org.jclouds.digitalocean2.domain.Droplet;
import org.jclouds.digitalocean2.domain.DropletCreate;
import org.jclouds.digitalocean2.domain.Image;
@@ -237,7 +236,7 @@ public class DigitalOcean2ComputeServiceAdapter implements ComputeServiceAdapter
// We have to wait here, as the api does not properly populate the state
// but fails if there is a pending event
int dropletId = Integer.parseInt(id);
- Action action = api.dropletApi().powerOff(dropletId);
+ api.dropletApi().powerOff(dropletId);
checkState(nodeStoppedPredicate.apply(dropletId), "node did not stop in the configured timeout");
}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3fbd399f/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/compute/DigitalOcean2TemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/compute/DigitalOcean2TemplateBuilderLiveTest.java b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/compute/DigitalOcean2TemplateBuilderLiveTest.java
index 8480cc1..ee7b962 100644
--- a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/compute/DigitalOcean2TemplateBuilderLiveTest.java
+++ b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/compute/DigitalOcean2TemplateBuilderLiveTest.java
@@ -40,7 +40,7 @@ public class DigitalOcean2TemplateBuilderLiveTest extends BaseTemplateBuilderLiv
@Override
public void testDefaultTemplateBuilder() throws IOException {
Template defaultTemplate = view.getComputeService().templateBuilder().build();
- assert defaultTemplate.getImage().getOperatingSystem().getVersion().equals("15.04") : defaultTemplate
+ assert defaultTemplate.getImage().getOperatingSystem().getVersion().equals("15.10") : defaultTemplate
.getImage().getOperatingSystem().getVersion();
assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3fbd399f/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/DropletApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/DropletApiLiveTest.java b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/DropletApiLiveTest.java
index f451d2e..c10fa54 100644
--- a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/DropletApiLiveTest.java
+++ b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/DropletApiLiveTest.java
@@ -16,10 +16,7 @@
*/
package org.jclouds.digitalocean2.features;
-import static com.google.common.collect.Iterables.getOnlyElement;
import static java.util.logging.Logger.getAnonymousLogger;
-import static org.jclouds.digitalocean2.domain.Droplet.Status.ACTIVE;
-import static org.jclouds.digitalocean2.domain.Droplet.Status.OFF;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
@@ -77,8 +74,8 @@ public class DropletApiLiveTest extends BaseDigitalOcean2ApiLiveTest {
public void testCreate() {
DropletCreate dropletCreate = api().create(prefix + "-droplet-livetest", region.slug(), size.slug(), image.slug(),
CreateDropletOptions.builder().backupsEnabled(true).addSshKeyId(key.id()).build());
- assertActionCompleted(getOnlyElement(dropletCreate.links().actions()).id());
dropletId = dropletCreate.droplet().id();
+ assertNodeRunning(dropletId);
Droplet droplet = api().get(dropletId);
assertNotNull(droplet, "Droplet should not be null");
}
@@ -101,10 +98,8 @@ public class DropletApiLiveTest extends BaseDigitalOcean2ApiLiveTest {
@Test(dependsOnMethods = "testListKernels")
public void testPowerOff() {
- Action action = api().powerOff(dropletId);
- assertActionCompleted(action.id());
- Droplet droplet = api().get(dropletId);
- assertEquals(droplet.status(), OFF, "Droplet should be off");
+ api().powerOff(dropletId);
+ assertNodeStopped(dropletId);
}
@Test(groups = "live", dependsOnMethods = "testPowerOff")
@@ -146,29 +141,25 @@ public class DropletApiLiveTest extends BaseDigitalOcean2ApiLiveTest {
@Test(groups = "live", dependsOnMethods = "testSnapshots")
public void testPowerOn() {
// Apparently droplets are automatically powered on after the snapshot process
- Action action = api().powerOff(dropletId);
- assertActionCompleted(action.id());
+ api().powerOff(dropletId);
+ assertNodeStopped(dropletId);
- action = api().powerOn(dropletId);
- assertActionCompleted(action.id());
- Droplet droplet = api().get(dropletId);
- assertEquals(droplet.status(), ACTIVE, "Droplet should be Active");
+ api().powerOn(dropletId);
+ assertNodeRunning(dropletId);
}
@Test(groups = "live", dependsOnMethods = "testPowerOn")
public void testReboot() {
Action action = api().reboot(dropletId);
assertActionCompleted(action.id());
- Droplet droplet = api().get(dropletId);
- assertEquals(droplet.status(), ACTIVE, "Droplet should be off");
+ assertNodeRunning(dropletId);
}
@Test(groups = "live", dependsOnMethods = "testReboot")
public void testPowerCycle() {
Action action = api().powerCycle(dropletId);
assertActionCompleted(action.id());
- Droplet droplet = api().get(dropletId);
- assertEquals(droplet.status(), ACTIVE, "Droplet should be off");
+ assertNodeRunning(dropletId);
}
@Test(groups = "live", dependsOnMethods = "testPowerCycle")
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3fbd399f/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/KeyApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/KeyApiLiveTest.java b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/KeyApiLiveTest.java
index 2911d79..e0ec1c9 100644
--- a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/KeyApiLiveTest.java
+++ b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/features/KeyApiLiveTest.java
@@ -69,8 +69,6 @@ public class KeyApiLiveTest extends BaseDigitalOcean2ApiLiveTest {
public void testUpdateKey() {
api().update(dsa.id(), "jclouds-test-dsa-updated");
assertEquals(api().get(dsa.id()).name(), "jclouds-test-dsa-updated");
- api().update(dsa.fingerprint(), "jclouds-test-dsa-updated2");
- assertEquals(api().get(dsa.id()).name(), "jclouds-test-dsa-updated2");
}
@AfterClass(alwaysRun = true)
http://git-wip-us.apache.org/repos/asf/jclouds/blob/3fbd399f/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/internal/BaseDigitalOcean2ApiLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/internal/BaseDigitalOcean2ApiLiveTest.java b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/internal/BaseDigitalOcean2ApiLiveTest.java
index b210c93..ee5bb55 100644
--- a/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/internal/BaseDigitalOcean2ApiLiveTest.java
+++ b/providers/digitalocean2/src/test/java/org/jclouds/digitalocean2/internal/BaseDigitalOcean2ApiLiveTest.java
@@ -17,16 +17,17 @@
package org.jclouds.digitalocean2.internal;
import static com.google.common.base.Preconditions.checkState;
+import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING;
+import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED;
import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertTrue;
import static org.testng.util.Strings.isNullOrEmpty;
import java.util.Properties;
-import java.util.concurrent.atomic.AtomicReference;
import org.jclouds.apis.BaseApiLiveTest;
import org.jclouds.compute.config.ComputeServiceProperties;
-import org.jclouds.compute.domain.NodeMetadata;
import org.jclouds.digitalocean2.DigitalOcean2Api;
import org.jclouds.digitalocean2.config.DigitalOcean2RateLimitModule;
import org.jclouds.digitalocean2.domain.Action;
@@ -46,10 +47,10 @@ import com.google.inject.name.Names;
public class BaseDigitalOcean2ApiLiveTest extends BaseApiLiveTest<DigitalOcean2Api> {
- protected Predicate<Integer> actionCompleted;
- protected Predicate<AtomicReference<NodeMetadata>> nodeRunning;
- protected Predicate<Integer> nodeTerminated;
- protected Predicate<Integer> dropletOff;
+ private Predicate<Integer> actionCompleted;
+ private Predicate<Integer> nodeTerminated;
+ private Predicate<Integer> nodeStopped;
+ private Predicate<Integer> nodeRunning;
public BaseDigitalOcean2ApiLiveTest() {
provider = "digitalocean2";
@@ -67,6 +68,10 @@ public class BaseDigitalOcean2ApiLiveTest extends BaseApiLiveTest<DigitalOcean2A
actionCompleted = injector.getInstance(Key.get(new TypeLiteral<Predicate<Integer>>(){}));
nodeTerminated = injector.getInstance(Key.get(new TypeLiteral<Predicate<Integer>>(){},
Names.named(TIMEOUT_NODE_TERMINATED)));
+ nodeStopped = injector.getInstance(Key.get(new TypeLiteral<Predicate<Integer>>(){},
+ Names.named(TIMEOUT_NODE_SUSPENDED)));
+ nodeRunning = injector.getInstance(Key.get(new TypeLiteral<Predicate<Integer>>(){},
+ Names.named(TIMEOUT_NODE_RUNNING)));
return injector.getInstance(DigitalOcean2Api.class);
}
@@ -81,8 +86,16 @@ public class BaseDigitalOcean2ApiLiveTest extends BaseApiLiveTest<DigitalOcean2A
assertEquals(action.status(), Action.Status.COMPLETED);
}
+ protected void assertNodeStopped(int dropletId) {
+ assertTrue(nodeStopped.apply(dropletId), String.format("Droplet %s did not stop in the configured timeout", dropletId));
+ }
+
+ protected void assertNodeRunning(int dropletId) {
+ assertTrue(nodeRunning.apply(dropletId), String.format("Droplet %s did not start in the configured timeout", dropletId));
+ }
+
protected void assertNodeTerminated(int dropletId) {
- assertEquals(nodeTerminated.apply(dropletId), true, String.format("Timeout waiting for dropletId: %s", dropletId));
+ assertTrue(nodeTerminated.apply(dropletId), String.format("Droplet %s was not terminated in the configured timeout", dropletId));
}
protected Region firstAvailableRegion() {