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 2017/05/22 08:33:08 UTC
[3/5] jclouds-labs git commit: Promoted Packet to the main repo
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiLiveTest.java
deleted file mode 100644
index aacf945..0000000
--- a/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiLiveTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.compute.internal;
-
-import java.util.Properties;
-import java.util.concurrent.TimeUnit;
-
-import org.jclouds.apis.BaseApiLiveTest;
-import org.jclouds.compute.config.ComputeServiceProperties;
-import org.jclouds.packet.PacketApi;
-
-import com.google.common.base.Predicate;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.Module;
-import com.google.inject.TypeLiteral;
-import com.google.inject.name.Names;
-
-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.assertTrue;
-
-public class BasePacketApiLiveTest extends BaseApiLiveTest<PacketApi> {
-
- private Predicate<String> deviceRunning;
- private Predicate<String> deviceSuspended;
- private Predicate<String> deviceTerminated;
-
- public BasePacketApiLiveTest() {
- provider = "packet";
- }
-
- @Override
- protected Properties setupProperties() {
- Properties props = super.setupProperties();
- props.put(ComputeServiceProperties.POLL_INITIAL_PERIOD, 1000);
- props.put(ComputeServiceProperties.POLL_MAX_PERIOD, 10000);
- props.put(ComputeServiceProperties.TIMEOUT_IMAGE_AVAILABLE, TimeUnit.MINUTES.toMillis(45));
- return props;
- }
-
- @Override
- protected PacketApi create(Properties props, Iterable<Module> modules) {
- Injector injector = newBuilder().modules(modules).overrides(props).buildInjector();
- deviceRunning = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>(){},
- Names.named(TIMEOUT_NODE_RUNNING)));
- deviceSuspended = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>(){},
- Names.named(TIMEOUT_NODE_SUSPENDED)));
- deviceTerminated = injector.getInstance(Key.get(new TypeLiteral<Predicate<String>>(){},
- Names.named(TIMEOUT_NODE_TERMINATED)));
- return injector.getInstance(PacketApi.class);
- }
-
- protected void assertNodeRunning(String deviceId) {
- assertTrue(deviceRunning.apply(deviceId), String.format("Device %s did not start in the configured timeout", deviceId));
- }
-
- protected void assertNodeSuspended(String deviceId) {
- assertTrue(deviceSuspended.apply(deviceId), String.format("Device %s was not suspended in the configured timeout", deviceId));
- }
-
- protected void assertNodeTerminated(String deviceId) {
- assertTrue(deviceTerminated.apply(deviceId), String.format("Device %s was not terminated in the configured timeout", deviceId));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiMockTest.java b/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiMockTest.java
deleted file mode 100644
index 9fe3d6f..0000000
--- a/packet/src/test/java/org/jclouds/packet/compute/internal/BasePacketApiMockTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.compute.internal;
-
-import java.io.IOException;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import org.jclouds.ContextBuilder;
-import org.jclouds.concurrent.config.ExecutorServiceModule;
-import org.jclouds.json.Json;
-import org.jclouds.packet.PacketApi;
-import org.jclouds.packet.PacketProviderMetadata;
-import org.jclouds.rest.ApiContext;
-import org.testng.annotations.AfterMethod;
-import org.testng.annotations.BeforeMethod;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.io.Resources;
-import com.google.common.reflect.TypeToken;
-import com.google.gson.JsonParser;
-import com.google.inject.Module;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.collect.Iterables.getOnlyElement;
-import static com.google.common.util.concurrent.MoreExecutors.sameThreadExecutor;
-import static org.jclouds.Constants.PROPERTY_MAX_RETRIES;
-import static org.testng.Assert.assertEquals;
-
-public class BasePacketApiMockTest {
-
- private static final String X_AUTHORIZATION_TOKEN = "c5401990f0c24135e8d6b5d260603fc71696d4738da9aa04a720229a01a2521d";
- private static final String DEFAULT_ENDPOINT = new PacketProviderMetadata().getEndpoint();
-
- private final Set<Module> modules = ImmutableSet.<Module> of(new ExecutorServiceModule(sameThreadExecutor()));
-
- protected MockWebServer server;
- protected PacketApi api;
- private Json json;
- private ApiContext<PacketApi> ctx;
-
- // So that we can ignore formatting.
- private final JsonParser parser = new JsonParser();
-
- @BeforeMethod
- public void start() throws IOException {
- server = new MockWebServer();
- server.play();
- ctx = ContextBuilder.newBuilder("packet")
- .credentials("", X_AUTHORIZATION_TOKEN)
- .endpoint(url(""))
- .modules(modules)
- .overrides(overrides())
- .build();
- json = ctx.utils().injector().getInstance(Json.class);
- api = ctx.getApi();
- }
-
- @AfterMethod(alwaysRun = true)
- public void stop() throws IOException {
- server.shutdown();
- api.close();
- }
-
- protected Properties overrides() {
- Properties properties = new Properties();
- properties.put(PROPERTY_MAX_RETRIES, "0"); // Do not retry
- return properties;
- }
-
- protected String url(String path) {
- return server.getUrl(path).toString();
- }
-
- protected MockResponse jsonResponse(String resource) {
- return new MockResponse().addHeader("Content-Type", "application/json").setBody(stringFromResource(resource));
- }
-
- protected MockResponse response404() {
- return new MockResponse().setStatus("HTTP/1.1 404 Not Found");
- }
-
- protected MockResponse response204() {
- return new MockResponse().setStatus("HTTP/1.1 204 No Content");
- }
-
- protected String stringFromResource(String resourceName) {
- try {
- return Resources.toString(getClass().getResource(resourceName), Charsets.UTF_8)
- .replace(DEFAULT_ENDPOINT, url(""));
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
- }
-
- protected <T> T onlyObjectFromResource(String resourceName, TypeToken<Map<String, T>> type) {
- // Assume JSON objects passed here will be in the form: { "entity": { ... } }
- String text = stringFromResource(resourceName);
- Map<String, T> object = json.fromJson(text, type.getType());
- checkArgument(!object.isEmpty(), "The given json does not contain any object: %s", text);
- checkArgument(object.keySet().size() == 1, "The given json does not contain more than one object: %s", text);
- return object.get(getOnlyElement(object.keySet()));
- }
-
- protected <T> T objectFromResource(String resourceName, Class<T> type) {
- String text = stringFromResource(resourceName);
- return json.fromJson(text, type);
- }
-
- protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
- RecordedRequest request = server.takeRequest();
- assertEquals(request.getMethod(), method);
- assertEquals(request.getPath(), path);
- assertEquals(request.getHeader("Accept"), "application/json; version=" + ctx.getMetadata().get("apiVersion"));
- assertEquals(request.getHeader("X-Auth-Token"), X_AUTHORIZATION_TOKEN);
- return request;
- }
-
- protected RecordedRequest assertSent(MockWebServer server, String method, String path, String json)
- throws InterruptedException {
- RecordedRequest request = assertSent(server, method, path);
- assertEquals(request.getHeader("Content-Type"), "application/json");
- assertEquals(parser.parse(new String(request.getBody(), Charsets.UTF_8)), parser.parse(json));
- return request;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/DeviceApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/DeviceApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/features/DeviceApiLiveTest.java
deleted file mode 100644
index cc96ebd..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/DeviceApiLiveTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.jclouds.packet.compute.internal.BasePacketApiLiveTest;
-import org.jclouds.packet.domain.BillingCycle;
-import org.jclouds.packet.domain.Device;
-import org.jclouds.packet.domain.SshKey;
-import org.jclouds.ssh.SshKeys;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Iterables;
-
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-@Test(groups = "live", singleThreaded = true, testName = "DeviceApiLiveTest")
-public class DeviceApiLiveTest extends BasePacketApiLiveTest {
-
- private SshKey sshKey;
- private String deviceId;
-
- @BeforeClass
- public void setupDevice() {
- Map<String, String> keyPair = SshKeys.generate();
- sshKey = api.sshKeyApi().create(prefix + "-device-livetest", keyPair.get("public"));
- }
-
- @AfterClass(alwaysRun = true)
- public void tearDown() {
- if (sshKey != null) {
- api.sshKeyApi().delete(sshKey.id());
- }
- }
-
- public void testCreate() {
- Device deviceCreated = api().create(
- Device.CreateDevice.builder()
- .hostname(prefix + "-device-livetest")
- .plan("baremetal_0")
- .billingCycle(BillingCycle.HOURLY.value())
- .facility("ewr1")
- .features(ImmutableMap.<String, String>of())
- .operatingSystem("ubuntu_16_04")
- .locked(false)
- .userdata("")
- .tags(ImmutableSet.<String> of())
- .build()
- );
- deviceId = deviceCreated.id();
- assertNodeRunning(deviceId);
- Device device = api().get(deviceId);
- assertNotNull(device, "Device must not be null");
- }
-
- @Test(groups = "live", dependsOnMethods = "testCreate")
- public void testReboot() {
- api().reboot(deviceId);
- assertNodeRunning(deviceId);
- }
-
- @Test(groups = "live", dependsOnMethods = "testReboot")
- public void testPowerOff() {
- api().powerOff(deviceId);
- assertNodeSuspended(deviceId);
- }
-
- @Test(groups = "live", dependsOnMethods = "testPowerOff")
- public void testPowerOn() {
- api().powerOn(deviceId);
- assertNodeRunning(deviceId);
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testList() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(Iterables.all(api().list().concat(), new Predicate<Device>() {
- @Override
- public boolean apply(Device input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All devices must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some devices to be returned");
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testListOnePage() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(api().list(page(1).perPage(5)).allMatch(new Predicate<Device>() {
- @Override
- public boolean apply(Device input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All devices must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some devices to be returned");
- }
-
- @Test(dependsOnMethods = "testPowerOn", alwaysRun = true)
- public void testDelete() throws InterruptedException {
- if (deviceId != null) {
- api().delete(deviceId);
- assertNodeTerminated(deviceId);
- assertNull(api().get(deviceId));
- }
- }
-
- private DeviceApi api() {
- return api.deviceApi(identity);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/DeviceApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/DeviceApiMockTest.java b/packet/src/test/java/org/jclouds/packet/features/DeviceApiMockTest.java
deleted file mode 100644
index f53c206..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/DeviceApiMockTest.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import org.jclouds.packet.compute.internal.BasePacketApiMockTest;
-import org.jclouds.packet.domain.BillingCycle;
-import org.jclouds.packet.domain.Device;
-import org.jclouds.packet.domain.Device.CreateDevice;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static com.google.common.collect.Iterables.size;
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "DeviceApiMockTest", singleThreaded = true)
-public class DeviceApiMockTest extends BasePacketApiMockTest {
-
- public void testListDevices() throws InterruptedException {
- server.enqueue(jsonResponse("/devices-first.json"));
- server.enqueue(jsonResponse("/devices-last.json"));
-
- Iterable<Device> devices = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").list().concat();
-
- assertEquals(size(devices), 7); // Force the PagedIterable to advance
- assertEquals(server.getRequestCount(), 2);
-
- assertSent(server, "GET", "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54/devices");
- assertSent(server, "GET", "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54/devices?page=2");
- }
-
- public void testListDevicesReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Device> devices = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").list().concat();
-
- assertTrue(isEmpty(devices));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54/devices");
- }
-
- public void testListDevicesWithOptions() throws InterruptedException {
- server.enqueue(jsonResponse("/devices-first.json"));
-
- Iterable<Device> devices = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").list(page(1).perPage(5));
-
- assertEquals(size(devices), 5);
- assertEquals(server.getRequestCount(), 1);
-
- assertSent(server, "GET", "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54/devices?page=1&per_page=5");
- }
-
- public void testListDevicesWithOptionsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Device> actions = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").list(page(1).perPage(5));
-
- assertTrue(isEmpty(actions));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54/devices?page=1&per_page=5");
- }
-
- public void testGetDevice() throws InterruptedException {
- server.enqueue(jsonResponse("/device.json"));
-
- Device device = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").get("1");
-
- assertEquals(device, objectFromResource("/device.json", Device.class));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/devices/1");
- }
-
- public void testGetDeviceReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Device device = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").get("1");
-
- assertNull(device);
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/devices/1");
- }
-
- public void testCreateDevice() throws InterruptedException {
- server.enqueue(jsonResponse("/device-create-res.json"));
-
- Device device = api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").create(
- CreateDevice.builder()
- .hostname("jclouds-device-livetest")
- .plan("baremetal_0")
- .billingCycle(BillingCycle.HOURLY.value())
- .facility("ewr1")
- .features(ImmutableMap.<String, String>of())
- .operatingSystem("ubuntu_16_04")
- .locked(false)
- .userdata("")
- .tags(ImmutableSet.<String> of())
- .build()
- );
-
- assertEquals(device, objectFromResource("/device-create-res.json", Device.class));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "POST", "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54/devices", stringFromResource("/device-create-req.json"));
- }
-
- public void testDeleteDevice() throws InterruptedException {
- server.enqueue(response204());
-
- api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").delete("1");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "DELETE", "/devices/1");
- }
-
- public void testDeleteDeviceReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").delete("1");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "DELETE", "/devices/1");
- }
-
- public void testActionPowerOn() throws InterruptedException {
- server.enqueue(jsonResponse("/power-on.json"));
-
- api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").powerOn("deviceId");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "POST", "/devices/deviceId/actions");
- }
-
- public void testActionPowerOff() throws InterruptedException {
- server.enqueue(jsonResponse("/power-off.json"));
-
- api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").powerOff("deviceId");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "POST", "/devices/deviceId/actions");
- }
-
- public void testActionReboot() throws InterruptedException {
- server.enqueue(jsonResponse("/reboot.json"));
-
- api.deviceApi("93907f48-adfe-43ed-ad89-0e6e83721a54").reboot("deviceId");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "POST", "/devices/deviceId/actions");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/FacilityApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/FacilityApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/features/FacilityApiLiveTest.java
deleted file mode 100644
index 0ee90da..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/FacilityApiLiveTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.jclouds.packet.compute.internal.BasePacketApiLiveTest;
-import org.jclouds.packet.domain.Facility;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertTrue;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-@Test(groups = "live", testName = "FacilityApiLiveTest")
-public class FacilityApiLiveTest extends BasePacketApiLiveTest {
-
- public void testList() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(Iterables.all(api().list().concat(), new Predicate<Facility>() {
- @Override
- public boolean apply(Facility input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All facilities must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some facilities to be returned");
- }
-
- public void testListOnePage() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(api().list(page(1).perPage(5)).allMatch(new Predicate<Facility>() {
- @Override
- public boolean apply(Facility input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All facilities must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some facilities to be returned");
- }
-
- private FacilityApi api() {
- return api.facilityApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/FacilityApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/FacilityApiMockTest.java b/packet/src/test/java/org/jclouds/packet/features/FacilityApiMockTest.java
deleted file mode 100644
index 764fa7b..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/FacilityApiMockTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import org.jclouds.packet.compute.internal.BasePacketApiMockTest;
-import org.jclouds.packet.domain.Facility;
-import org.testng.annotations.Test;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static com.google.common.collect.Iterables.size;
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "FacilityApiMockTest", singleThreaded = true)
-public class FacilityApiMockTest extends BasePacketApiMockTest {
-
- public void testListFacilities() throws InterruptedException {
- server.enqueue(jsonResponse("/facilities-first.json"));
- server.enqueue(jsonResponse("/facilities-last.json"));
-
- Iterable<Facility> facilities = api.facilityApi().list().concat();
-
- assertEquals(size(facilities), 3); // Force the PagedIterable to advance
- assertEquals(server.getRequestCount(), 2);
-
- assertSent(server, "GET", "/facilities");
- assertSent(server, "GET", "/facilities?page=2");
- }
-
- public void testListFacilitiesReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Facility> facilities = api.facilityApi().list().concat();
-
- assertTrue(isEmpty(facilities));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/facilities");
- }
-
- public void testListFacilitiesWithOptions() throws InterruptedException {
- server.enqueue(jsonResponse("/facilities-first.json"));
-
- Iterable<Facility> actions = api.facilityApi().list(page(1).perPage(2));
-
- assertEquals(size(actions), 2);
- assertEquals(server.getRequestCount(), 1);
-
- assertSent(server, "GET", "/facilities?page=1&per_page=2");
- }
-
- public void testListFacilitiesWithOptionsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Facility> actions = api.facilityApi().list(page(1).perPage(2));
-
- assertTrue(isEmpty(actions));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/facilities?page=1&per_page=2");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiLiveTest.java
deleted file mode 100644
index fd96a7e..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiLiveTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.jclouds.packet.compute.internal.BasePacketApiLiveTest;
-import org.jclouds.packet.domain.OperatingSystem;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertTrue;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-@Test(groups = "live", testName = "OperatingSystemApiLiveTest")
-public class OperatingSystemApiLiveTest extends BasePacketApiLiveTest {
-
- public void testList() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(Iterables.all(api().list().concat(), new Predicate<OperatingSystem>() {
- @Override
- public boolean apply(OperatingSystem input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All operating systems must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some operating systems to be returned");
- }
-
- public void testListOnePage() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(api().list(page(1).perPage(5)).allMatch(new Predicate<OperatingSystem>() {
- @Override
- public boolean apply(OperatingSystem input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All operating systems must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some operating systems to be returned");
- }
-
- private OperatingSystemApi api() {
- return api.operatingSystemApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiMockTest.java b/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiMockTest.java
deleted file mode 100644
index c0c332b..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/OperatingSystemApiMockTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import org.jclouds.packet.compute.internal.BasePacketApiMockTest;
-import org.jclouds.packet.domain.OperatingSystem;
-import org.testng.annotations.Test;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static com.google.common.collect.Iterables.size;
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "OperatingSystemApiMockTest", singleThreaded = true)
-public class OperatingSystemApiMockTest extends BasePacketApiMockTest {
-
- public void testListOperatingSystems() throws InterruptedException {
-
- server.enqueue(jsonResponse("/operatingSystems-first.json"));
- server.enqueue(jsonResponse("/operatingSystems-last.json"));
-
- Iterable<OperatingSystem> operatingSystems = api.operatingSystemApi().list().concat();
- assertEquals(size(operatingSystems), 14); // Force the PagedIterable to advance
- assertEquals(server.getRequestCount(), 2);
-
- assertSent(server, "GET", "/operating-systems");
- assertSent(server, "GET", "/operating-systems?page=2");
- }
-
- public void testListOperatingSystemsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<OperatingSystem> operatingSystems = api.operatingSystemApi().list().concat();
-
- assertTrue(isEmpty(operatingSystems));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/operating-systems");
- }
-
- public void testListOperatingSystemsWithOptions() throws InterruptedException {
- server.enqueue(jsonResponse("/operatingSystems-first.json"));
-
- Iterable<OperatingSystem> operatingSystems = api.operatingSystemApi().list(page(1).perPage(5));
-
- assertEquals(size(operatingSystems), 7);
- assertEquals(server.getRequestCount(), 1);
-
- assertSent(server, "GET", "/operating-systems?page=1&per_page=5");
- }
-
- public void testListOperatingSystemsWithOptionsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<OperatingSystem> operatingSystems = api.operatingSystemApi().list(page(1).perPage(5));
-
- assertTrue(isEmpty(operatingSystems));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/operating-systems?page=1&per_page=5");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/PlanApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/PlanApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/features/PlanApiLiveTest.java
deleted file mode 100644
index 1b66e04..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/PlanApiLiveTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.jclouds.packet.compute.internal.BasePacketApiLiveTest;
-import org.jclouds.packet.domain.Plan;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertTrue;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-@Test(groups = "live", testName = "PlanApiLiveTest")
-public class PlanApiLiveTest extends BasePacketApiLiveTest {
-
- public void testList() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(Iterables.all(api().list().concat(), new Predicate<Plan>() {
- @Override
- public boolean apply(Plan input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All plans must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some plans to be returned");
- }
-
- public void testListOnePage() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(api().list(page(1).perPage(5)).allMatch(new Predicate<Plan>() {
- @Override
- public boolean apply(Plan input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All plans must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some plans to be returned");
- }
-
- private PlanApi api() {
- return api.planApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/PlanApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/PlanApiMockTest.java b/packet/src/test/java/org/jclouds/packet/features/PlanApiMockTest.java
deleted file mode 100644
index 82683c8..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/PlanApiMockTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import org.jclouds.packet.compute.internal.BasePacketApiMockTest;
-import org.jclouds.packet.domain.Plan;
-import org.testng.annotations.Test;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static com.google.common.collect.Iterables.size;
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "PlanApiMockTest", singleThreaded = true)
-public class PlanApiMockTest extends BasePacketApiMockTest {
-
- public void testListPlans() throws InterruptedException {
- server.enqueue(jsonResponse("/plans-first.json"));
- server.enqueue(jsonResponse("/plans-last.json"));
-
- Iterable<Plan> plans = api.planApi().list().concat();
-
- assertEquals(size(plans), 7); // Force the PagedIterable to advance
- assertEquals(server.getRequestCount(), 2);
-
- assertSent(server, "GET", "/plans");
- assertSent(server, "GET", "/plans?page=2");
- }
-
- public void testListPlansReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Plan> plans = api.planApi().list().concat();
-
- assertTrue(isEmpty(plans));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/plans");
- }
-
- public void testListPlansWithOptions() throws InterruptedException {
- server.enqueue(jsonResponse("/plans-first.json"));
-
- Iterable<Plan> plans = api.planApi().list(page(1).perPage(5));
-
- assertEquals(size(plans), 4);
- assertEquals(server.getRequestCount(), 1);
-
- assertSent(server, "GET", "/plans?page=1&per_page=5");
- }
-
- public void testListPlansWithOptionsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Plan> plans = api.planApi().list(page(1).perPage(5));
-
- assertTrue(isEmpty(plans));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/plans?page=1&per_page=5");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/ProjectApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/ProjectApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/features/ProjectApiLiveTest.java
deleted file mode 100644
index 65fba8f..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/ProjectApiLiveTest.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.jclouds.packet.compute.internal.BasePacketApiLiveTest;
-import org.jclouds.packet.domain.Project;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertTrue;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-@Test(groups = "live", testName = "ProjectApiLiveTest")
-public class ProjectApiLiveTest extends BasePacketApiLiveTest {
-
- public void testList() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(Iterables.all(api().list().concat(), new Predicate<Project>() {
- @Override
- public boolean apply(Project input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All projects must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some projects to be returned");
- }
-
- public void testListOnePage() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(api().list(page(1).perPage(5)).allMatch(new Predicate<Project>() {
- @Override
- public boolean apply(Project input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All projects must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some projects to be returned");
- }
-
- private ProjectApi api() {
- return api.projectApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/ProjectApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/ProjectApiMockTest.java b/packet/src/test/java/org/jclouds/packet/features/ProjectApiMockTest.java
deleted file mode 100644
index d972395..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/ProjectApiMockTest.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import org.jclouds.packet.compute.internal.BasePacketApiMockTest;
-import org.jclouds.packet.domain.Project;
-import org.testng.annotations.Test;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static com.google.common.collect.Iterables.size;
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "ProjectApiMockTest", singleThreaded = true)
-public class ProjectApiMockTest extends BasePacketApiMockTest {
-
- public void testListProjects() throws InterruptedException {
- server.enqueue(jsonResponse("/projects-first.json"));
- server.enqueue(jsonResponse("/projects-last.json"));
-
- Iterable<Project> projects = api.projectApi().list().concat();
-
- assertEquals(size(projects), 8); // Force the PagedIterable to advance
- assertEquals(server.getRequestCount(), 2);
-
- assertSent(server, "GET", "/projects");
- assertSent(server, "GET", "/projects?page=2");
- }
-
- public void testListProjectsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Project> projects = api.projectApi().list().concat();
-
- assertTrue(isEmpty(projects));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/projects");
- }
-
- public void testListProjectsWithOptions() throws InterruptedException {
- server.enqueue(jsonResponse("/projects-first.json"));
-
- Iterable<Project> actions = api.projectApi().list(page(1).perPage(5));
-
- assertEquals(size(actions), 5);
- assertEquals(server.getRequestCount(), 1);
-
- assertSent(server, "GET", "/projects?page=1&per_page=5");
- }
-
- public void testListProjectsWithOptionsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<Project> actions = api.projectApi().list(page(1).perPage(5));
-
- assertTrue(isEmpty(actions));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/projects?page=1&per_page=5");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/SshKeyApiLiveTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/SshKeyApiLiveTest.java b/packet/src/test/java/org/jclouds/packet/features/SshKeyApiLiveTest.java
deleted file mode 100644
index 3ef4387..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/SshKeyApiLiveTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import org.jclouds.packet.compute.internal.BasePacketApiLiveTest;
-import org.jclouds.packet.domain.SshKey;
-import org.jclouds.ssh.SshKeys;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
-
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertTrue;
-import static org.testng.util.Strings.isNullOrEmpty;
-
-@Test(groups = "live", testName = "SshKeyApiLiveTest")
-public class SshKeyApiLiveTest extends BasePacketApiLiveTest {
-
- private SshKey sshKey;
-
- public void testCreate() {
- Map<String, String> keyPair = SshKeys.generate();
- sshKey = api.sshKeyApi().create(prefix + "-sshkey-livetest", keyPair.get("public"));
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testGet() {
- api.sshKeyApi().get(sshKey.id());
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testList() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(Iterables.all(api().list().concat(), new Predicate<SshKey>() {
- @Override
- public boolean apply(SshKey input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All ssh keys must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some ssh keys to be returned");
- }
-
- @Test(dependsOnMethods = "testCreate")
- public void testListOnePage() {
- final AtomicInteger found = new AtomicInteger(0);
- assertTrue(api().list(page(1).perPage(5)).allMatch(new Predicate<SshKey>() {
- @Override
- public boolean apply(SshKey input) {
- found.incrementAndGet();
- return !isNullOrEmpty(input.id());
- }
- }), "All ssh keys must have the 'id' field populated");
- assertTrue(found.get() > 0, "Expected some ssh keys to be returned");
- }
-
- @Test(dependsOnMethods = "testList", alwaysRun = true)
- public void testDelete() throws InterruptedException {
- api.sshKeyApi().delete(sshKey.id());
- }
-
- private SshKeyApi api() {
- return api.sshKeyApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/features/SshKeyApiMockTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/features/SshKeyApiMockTest.java b/packet/src/test/java/org/jclouds/packet/features/SshKeyApiMockTest.java
deleted file mode 100644
index 3bb1969..0000000
--- a/packet/src/test/java/org/jclouds/packet/features/SshKeyApiMockTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.features;
-
-import org.jclouds.packet.compute.internal.BasePacketApiMockTest;
-import org.jclouds.packet.domain.SshKey;
-import org.testng.annotations.Test;
-
-import static com.google.common.collect.Iterables.isEmpty;
-import static com.google.common.collect.Iterables.size;
-import static org.jclouds.packet.domain.options.ListOptions.Builder.page;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-@Test(groups = "unit", testName = "SshKeyApiMockTest", singleThreaded = true)
-public class SshKeyApiMockTest extends BasePacketApiMockTest {
-
- public void testListSshKeys() throws InterruptedException {
- server.enqueue(jsonResponse("/sshKeys-first.json"));
- server.enqueue(jsonResponse("/sshKeys-last.json"));
-
- Iterable<SshKey> sshkeys = api.sshKeyApi().list().concat();
-
- assertEquals(size(sshkeys), 8); // Force the PagedIterable to advance
- assertEquals(server.getRequestCount(), 2);
-
- assertSent(server, "GET", "/ssh-keys");
- assertSent(server, "GET", "/ssh-keys?page=2");
- }
-
- public void testListSshKeysReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<SshKey> sshkeys = api.sshKeyApi().list().concat();
-
- assertTrue(isEmpty(sshkeys));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/ssh-keys");
- }
-
- public void testListSshKeysWithOptions() throws InterruptedException {
- server.enqueue(jsonResponse("/sshKeys-first.json"));
-
- Iterable<SshKey> actions = api.sshKeyApi().list(page(1).perPage(5));
-
- assertEquals(size(actions), 5);
- assertEquals(server.getRequestCount(), 1);
-
- assertSent(server, "GET", "/ssh-keys?page=1&per_page=5");
- }
-
- public void testListSshKeysWithOptionsReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- Iterable<SshKey> actions = api.sshKeyApi().list(page(1).perPage(5));
-
- assertTrue(isEmpty(actions));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/ssh-keys?page=1&per_page=5");
- }
-
- public void testGetSshKey() throws InterruptedException {
- server.enqueue(jsonResponse("/ssh-key.json"));
-
- SshKey sshKey = api.sshKeyApi().get("1");
-
- assertEquals(sshKey, objectFromResource("/ssh-key.json", SshKey.class));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/ssh-keys/1");
- }
-
- public void testGetSshKeyReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- SshKey sshKey = api.sshKeyApi().get("1");
-
- assertNull(sshKey);
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "GET", "/ssh-keys/1");
- }
-
- public void testCreateSshKey() throws InterruptedException {
- server.enqueue(jsonResponse("/ssh-key-create-res.json"));
-
- SshKey sshKey = api.sshKeyApi().create(
- "jclouds-ssh-key-livetest",
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdgcoNzH4hCc0j3b4MuG503L/J54uyFvwCAOu8vSsYuLpJ4AEyEOv+T0SfdF605fK6GYXA16Rxk3lrPt7mfKGNtXR0Ripbv7Zc6PvCRorwgj/cjh/45miozjrkXAiHD1GFZycfbi4YsoWAqZj7W4mwtctmhrYM0FPdya2XoRpVy89N+A5Xo4Xtd6EZn6JGEKQM5+kF2aL3ggy0od/DqjuEVYwZoyTe1RgUTXZSU/Woh7WMhsRHbqd3eYz4s6ac8n8IJPGKtUaQeqUtH7OK6NRYXVypUrkqNlwdNYZAwrjXg/x5T3D+bo11LENASRt9OJ2OkmRSTqRxBeDkhnVauWK/"
- );
-
- assertEquals(sshKey, objectFromResource("/ssh-key-create-res.json", SshKey.class));
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "POST", "/ssh-keys", stringFromResource("/ssh-key-create-req.json"));
- }
-
- public void testDeleteSshKey() throws InterruptedException {
- server.enqueue(response204());
-
- api.sshKeyApi().delete("1");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "DELETE", "/ssh-keys/1");
- }
-
- public void testDeleteSshKeyReturns404() throws InterruptedException {
- server.enqueue(response404());
-
- api.sshKeyApi().delete("1");
-
- assertEquals(server.getRequestCount(), 1);
- assertSent(server, "DELETE", "/ssh-keys/1");
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/java/org/jclouds/packet/functions/HrefToListOptionsTest.java
----------------------------------------------------------------------
diff --git a/packet/src/test/java/org/jclouds/packet/functions/HrefToListOptionsTest.java b/packet/src/test/java/org/jclouds/packet/functions/HrefToListOptionsTest.java
deleted file mode 100644
index 1fecb29..0000000
--- a/packet/src/test/java/org/jclouds/packet/functions/HrefToListOptionsTest.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.packet.functions;
-
-import org.jclouds.packet.domain.Href;
-import org.jclouds.packet.domain.options.ListOptions;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.Multimap;
-
-import static com.google.common.collect.Iterables.getOnlyElement;
-import static org.jclouds.packet.domain.options.ListOptions.PAGE_PARAM;
-import static org.jclouds.packet.domain.options.ListOptions.PER_PAGE_PARAM;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-
-@Test(groups = "unit", testName = "HrefToListOptionsTest")
-public class HrefToListOptionsTest {
-
- public void testNoOptions() {
- HrefToListOptions function = new HrefToListOptions();
-
- ListOptions options = function.apply(Href.create("https://api.packet.net/projects"));
- assertNotNull(options);
-
- Multimap<String, String> params = options.buildQueryParameters();
- assertFalse(params.containsKey(PAGE_PARAM));
- assertFalse(params.containsKey(PER_PAGE_PARAM));
- }
-
- public void testWithOptions() {
- HrefToListOptions function = new HrefToListOptions();
-
- ListOptions options = function.apply(Href.create("https://api.packet.net/projects?page=2&per_page=5"));
- assertNotNull(options);
-
- Multimap<String, String> params = options.buildQueryParameters();
- assertEquals(getOnlyElement(params.get(PAGE_PARAM)), "2");
- assertEquals(getOnlyElement(params.get(PER_PAGE_PARAM)), "5");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/resources/device-create-req.json
----------------------------------------------------------------------
diff --git a/packet/src/test/resources/device-create-req.json b/packet/src/test/resources/device-create-req.json
deleted file mode 100644
index 78e5ea5..0000000
--- a/packet/src/test/resources/device-create-req.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "hostname": "jclouds-device-livetest",
- "plan": "baremetal_0",
- "billing_cycle": "hourly",
- "facility": "ewr1",
- "features": {},
- "operating_system": "ubuntu_16_04",
- "locked": false,
- "userdata": "",
- "tags": []
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/resources/device-create-res.json
----------------------------------------------------------------------
diff --git a/packet/src/test/resources/device-create-res.json b/packet/src/test/resources/device-create-res.json
deleted file mode 100644
index 7a5986f..0000000
--- a/packet/src/test/resources/device-create-res.json
+++ /dev/null
@@ -1,211 +0,0 @@
-{
- "id": "3238ce59-fe02-4b9b-92c1-915ef4f3fb9e",
- "short_id": "3238ce59",
- "hostname": "andrea-device-livetest",
- "description": null,
- "state": "queued",
- "tags": [],
- "billing_cycle": "hourly",
- "user": "root",
- "iqn": "iqn.2017-01.net.packet:device.3238ce59",
- "locked": false,
- "bonding_mode": 5,
- "created_at": "2017-01-20T14:15:28Z",
- "updated_at": "2017-01-20T14:15:29Z",
- "provisioning_percentage": 10.0,
- "operating_system": {
- "id": "1b9b78e3-de68-466e-ba00-f2123e89c112",
- "slug": "ubuntu_16_04",
- "name": "Ubuntu 16.04 LTS",
- "distro": "ubuntu",
- "version": "16.04",
- "provisionable_on": [
- "baremetal_0",
- "baremetal_1",
- "baremetal_2",
- "baremetal_2a",
- "baremetal_3",
- "baremetal_hua"
- ]
- },
- "facility": {
- "id": "e1e9c52e-a0bc-4117-b996-0fc94843ea09",
- "name": "Parsippany, NJ",
- "code": "ewr1",
- "features": [
- "baremetal",
- "storage"
- ],
- "address": null
- },
- "project": {
- "href": "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54"
- },
- "ssh_keys": [
- {
- "href": "/ssh-keys/a3d8bebe-574f-427d-80ee-bc2ba17f7074"
- },
- {
- "href": "/ssh-keys/a8d6cc17-7d9d-4fb9-8190-afdb301b67df"
- },
- {
- "href": "/ssh-keys/084a5dec-30be-415a-8937-9c615932e459"
- },
- {
- "href": "/ssh-keys/eacfb002-45e1-4047-a0d5-cd9d8bab19ed"
- },
- {
- "href": "/ssh-keys/f82b69d7-8c7e-4a38-9283-ecdbcaba56aa"
- },
- {
- "href": "/ssh-keys/da5d6c21-2e8c-43ac-820f-ff41bd4e6ebc"
- }
- ],
- "project_lite": {
- "href": "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54"
- },
- "volumes": [],
- "ip_addresses": [],
- "provisioning_events": [
- {
- "id": "32a4da09-37dd-446b-99ef-9f64c1eb0097",
- "type": "provisioning.101",
- "body": "Provisioning started",
- "created_at": "2017-01-20T14:15:29Z",
- "relationships": [
- {
- "href": "#5062a5fe-19ea-4b41-864c-e5f4dcb02fa0"
- }
- ],
- "interpolated": "Provisioning started",
- "href": "/events/32a4da09-37dd-446b-99ef-9f64c1eb0097"
- },
- {
- "id": null,
- "type": "provisioning.102",
- "body": "Network configured",
- "created_at": null,
- "relationships": [],
- "interpolated": "Network configured"
- },
- {
- "id": null,
- "type": "provisioning.103",
- "body": "Configuration written, restarting device",
- "created_at": null,
- "relationships": [],
- "interpolated": "Configuration written, restarting device"
- },
- {
- "id": null,
- "type": "provisioning.104",
- "body": "Connected to magic install system",
- "created_at": null,
- "relationships": [],
- "interpolated": "Connected to magic install system"
- },
- {
- "id": null,
- "type": "provisioning.105",
- "body": "Server partitions created",
- "created_at": null,
- "relationships": [],
- "interpolated": "Server partitions created"
- },
- {
- "id": null,
- "type": "provisioning.106",
- "body": "Operating system packages installed",
- "created_at": null,
- "relationships": [],
- "interpolated": "Operating system packages installed"
- },
- {
- "id": null,
- "type": "provisioning.107",
- "body": "Server networking interfaces configured",
- "created_at": null,
- "relationships": [],
- "interpolated": "Server networking interfaces configured"
- },
- {
- "id": null,
- "type": "provisioning.108",
- "body": "Cloud-init packages installed and configured",
- "created_at": null,
- "relationships": [],
- "interpolated": "Cloud-init packages installed and configured"
- },
- {
- "id": null,
- "type": "provisioning.109",
- "body": "Installation finished, rebooting server",
- "created_at": null,
- "relationships": [],
- "interpolated": "Installation finished, rebooting server"
- },
- {
- "id": null,
- "type": "provisioning.109",
- "body": "Installation finished, rebooting server",
- "created_at": null,
- "relationships": [],
- "interpolated": "Installation finished, rebooting server"
- }
- ],
- "plan": {
- "id": "e69c0169-4726-46ea-98f1-939c9e8a3607",
- "slug": "baremetal_0",
- "name": "Type 0",
- "description": "Our Type 0 configuration is a general use \"cloud killer\" server, with a Intel Atom 2.4Ghz processor and 8GB of RAM.",
- "line": "baremetal",
- "specs": {
- "cpus": [
- {
- "count": 1,
- "type": "Intel Atom C2550 @ 2.4Ghz"
- }
- ],
- "memory": {
- "total": "8GB"
- },
- "drives": [
- {
- "count": 1,
- "size": "80GB",
- "type": "SSD"
- }
- ],
- "nics": [
- {
- "count": 2,
- "type": "1Gbps"
- }
- ],
- "features": {
- "raid": false,
- "txt": true
- }
- },
- "available_in": [
- {
- "href": "/facilities/2b70eb8f-fa18-47c0-aba7-222a842362fd"
- },
- {
- "href": "/facilities/8e6470b3-b75e-47d1-bb93-45b225750975"
- },
- {
- "href": "/facilities/8ea03255-89f9-4e62-9d3f-8817db82ceed"
- },
- {
- "href": "/facilities/e1e9c52e-a0bc-4117-b996-0fc94843ea09"
- }
- ],
- "pricing": {
- "hour": 0.05
- }
- },
- "userdata": "",
- "root_password": "$n4hwka3!i",
- "href": "/devices/3238ce59-fe02-4b9b-92c1-915ef4f3fb9e"
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/cb70f325/packet/src/test/resources/device.json
----------------------------------------------------------------------
diff --git a/packet/src/test/resources/device.json b/packet/src/test/resources/device.json
deleted file mode 100644
index b4daa39..0000000
--- a/packet/src/test/resources/device.json
+++ /dev/null
@@ -1,278 +0,0 @@
-{
- "id": "98e22032-579e-4c04-bb12-05cc6a3864c8",
- "short_id": "98e22032",
- "hostname": "test",
- "description": null,
- "state": "provisioning",
- "tags": [],
- "billing_cycle": "hourly",
- "user": "root",
- "iqn": "iqn.2017-01.net.packet:device.98e22032",
- "locked": false,
- "bonding_mode": 5,
- "created_at": "2017-01-03T09:47:59Z",
- "updated_at": "2017-01-03T09:50:13Z",
- "provisioning_percentage": 50,
- "operating_system": {
- "id": "68bad60d-f5a7-45c2-ad09-573edaad3a3c",
- "slug": "centos_7",
- "name": "Centos 7",
- "distro": "centos",
- "version": "7",
- "provisionable_on": [
- "baremetal_0",
- "baremetal_1",
- "baremetal_2",
- "baremetal_3"
- ]
- },
- "facility": {
- "id": "e1e9c52e-a0bc-4117-b996-0fc94843ea09",
- "name": "Parsippany, NJ",
- "code": "ewr1",
- "features": [
- "baremetal",
- "storage"
- ],
- "address": null
- },
- "project": {
- "href": "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54"
- },
- "ssh_keys": [
- {
- "href": "/ssh-keys/084a5dec-30be-415a-8937-9c615932e459"
- },
- {
- "href": "/ssh-keys/a8d6cc17-7d9d-4fb9-8190-afdb301b67df"
- },
- {
- "href": "/ssh-keys/a3d8bebe-574f-427d-80ee-bc2ba17f7074"
- },
- {
- "href": "/ssh-keys/eacfb002-45e1-4047-a0d5-cd9d8bab19ed"
- },
- {
- "href": "/ssh-keys/bba63e41-b12c-493a-81d4-e52f50f247ed"
- }
- ],
- "project_lite": {
- "href": "/projects/93907f48-adfe-43ed-ad89-0e6e83721a54"
- },
- "volumes": [],
- "ip_addresses": [
- {
- "id": "5d0262c7-1727-411c-94c4-9e6f15490dd3",
- "address_family": 4,
- "netmask": "255.255.255.254",
- "created_at": "2017-01-03T09:47:59Z",
- "public": true,
- "cidr": 31,
- "management": true,
- "manageable": true,
- "assigned_to": {
- "href": "/devices/98e22032-579e-4c04-bb12-05cc6a3864c8"
- },
- "network": "147.75.106.80",
- "address": "147.75.106.81",
- "gateway": "147.75.106.80",
- "href": "/ips/5d0262c7-1727-411c-94c4-9e6f15490dd3"
- },
- {
- "id": "f7d0e65c-eb3b-42bd-af9b-ad3a736d8d43",
- "address_family": 6,
- "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:fffe",
- "created_at": "2017-01-03T09:47:59Z",
- "public": true,
- "cidr": 127,
- "management": true,
- "manageable": true,
- "assigned_to": {
- "href": "/devices/98e22032-579e-4c04-bb12-05cc6a3864c8"
- },
- "network": "2604:1380:2:9800::",
- "address": "2604:1380:2:9800::1",
- "gateway": "2604:1380:2:9800::",
- "href": "/ips/f7d0e65c-eb3b-42bd-af9b-ad3a736d8d43"
- },
- {
- "id": "a3d00b4e-d74f-4ac2-8bc9-91065d815b41",
- "address_family": 4,
- "netmask": "255.255.255.254",
- "created_at": "2017-01-03T09:47:59Z",
- "public": false,
- "cidr": 31,
- "management": true,
- "manageable": true,
- "assigned_to": {
- "href": "/devices/98e22032-579e-4c04-bb12-05cc6a3864c8"
- },
- "network": "10.99.214.0",
- "address": "10.99.214.1",
- "gateway": "10.99.214.0",
- "href": "/ips/a3d00b4e-d74f-4ac2-8bc9-91065d815b41"
- }
- ],
- "provisioning_events": [
- {
- "id": "bd62123b-afed-4e54-b1b9-89e219ba9cf0",
- "type": "provisioning.101",
- "body": "Provisioning started",
- "created_at": "2017-01-03T09:47:59Z",
- "relationships": [
- {
- "href": "#81909921-255e-413c-883a-c58d14c801ae"
- }
- ],
- "interpolated": "Provisioning started",
- "href": "/events/bd62123b-afed-4e54-b1b9-89e219ba9cf0"
- },
- {
- "id": "14b4a9e6-be90-40ee-be48-b272f855e39c",
- "type": "provisioning.102",
- "body": "Network configured with addresses 147.75.106.81, 2604:1380:2:9800::1, and 10.99.214.1",
- "created_at": "2017-01-03T09:48:46Z",
- "relationships": [
- {
- "href": "#28588657-b8bf-44a1-98d3-27f8e04b660a"
- }
- ],
- "interpolated": "Network configured with addresses 147.75.106.81, 2604:1380:2:9800::1, and 10.99.214.1",
- "href": "/events/14b4a9e6-be90-40ee-be48-b272f855e39c"
- },
- {
- "id": "57e3cadb-f9aa-4c73-be54-3c83e6cf462e",
- "type": "provisioning.103",
- "body": "Configuration written, restarting device",
- "created_at": "2017-01-03T09:48:57Z",
- "relationships": [
- {
- "href": "#25a7e807-f4aa-4f36-83cd-8347baeb26bc"
- }
- ],
- "interpolated": "Configuration written, restarting device",
- "href": "/events/57e3cadb-f9aa-4c73-be54-3c83e6cf462e"
- },
- {
- "id": "b8322996-f57e-4c87-96cc-a16f33a0c305",
- "type": "provisioning.104",
- "body": "Connected to magic install system",
- "created_at": "2017-01-03T09:50:13Z",
- "relationships": [
- {
- "href": "#a4825d20-f7f2-426a-88db-38696bd3dfd6"
- }
- ],
- "interpolated": "Connected to magic install system",
- "href": "/events/b8322996-f57e-4c87-96cc-a16f33a0c305"
- },
- {
- "id": "f00a00a9-7c59-420d-bdcf-2c0993303cf6",
- "type": "provisioning.105",
- "body": "Server partitions created",
- "created_at": "2017-01-03T09:50:13Z",
- "relationships": [
- {
- "href": "#6140659b-5e3d-4686-be8f-8879b6d3e27f"
- }
- ],
- "interpolated": "Server partitions created",
- "href": "/events/f00a00a9-7c59-420d-bdcf-2c0993303cf6"
- },
- {
- "id": null,
- "type": "provisioning.106",
- "body": "Operating system packages installed",
- "created_at": null,
- "relationships": [],
- "interpolated": "Operating system packages installed"
- },
- {
- "id": null,
- "type": "provisioning.107",
- "body": "Server networking interfaces configured",
- "created_at": null,
- "relationships": [],
- "interpolated": "Server networking interfaces configured"
- },
- {
- "id": null,
- "type": "provisioning.108",
- "body": "Cloud-init packages installed and configured",
- "created_at": null,
- "relationships": [],
- "interpolated": "Cloud-init packages installed and configured"
- },
- {
- "id": null,
- "type": "provisioning.109",
- "body": "Installation finished, rebooting server",
- "created_at": null,
- "relationships": [],
- "interpolated": "Installation finished, rebooting server"
- },
- {
- "id": null,
- "type": "provisioning.109",
- "body": "Installation finished, rebooting server",
- "created_at": null,
- "relationships": [],
- "interpolated": "Installation finished, rebooting server"
- }
- ],
- "plan": {
- "id": "e69c0169-4726-46ea-98f1-939c9e8a3607",
- "slug": "baremetal_0",
- "name": "Type 0",
- "description": "Our Type 0 configuration is a general use \"cloud killer\" server, with a Intel Atom 2.4Ghz processor and 8GB of RAM.",
- "line": "baremetal",
- "specs": {
- "cpus": [
- {
- "count": 1,
- "type": "Intel Atom C2550 @ 2.4Ghz"
- }
- ],
- "memory": {
- "total": "8GB"
- },
- "drives": [
- {
- "count": 1,
- "size": "80GB",
- "type": "SSD"
- }
- ],
- "nics": [
- {
- "count": 2,
- "type": "1Gbps"
- }
- ],
- "features": {
- "raid": false,
- "txt": true
- }
- },
- "available_in": [
- {
- "href": "/facilities/2b70eb8f-fa18-47c0-aba7-222a842362fd"
- },
- {
- "href": "/facilities/8e6470b3-b75e-47d1-bb93-45b225750975"
- },
- {
- "href": "/facilities/8ea03255-89f9-4e62-9d3f-8817db82ceed"
- },
- {
- "href": "/facilities/e1e9c52e-a0bc-4117-b996-0fc94843ea09"
- }
- ],
- "pricing": {
- "hour": 0.05
- }
- },
- "userdata": "",
- "root_password": ",q4*a8(eny",
- "href": "/devices/98e22032-579e-4c04-bb12-05cc6a3864c8"
-}