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/05/09 09:33:30 UTC
[1/2] jclouds-labs git commit: Remove project etcd. Project is now
being hosted at https://github.com/cdancy/etcd-rest.
Repository: jclouds-labs
Updated Branches:
refs/heads/master 247e9fd97 -> 1f2153799
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiMockTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiMockTest.java b/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiMockTest.java
deleted file mode 100644
index ad5d8a1..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiMockTest.java
+++ /dev/null
@@ -1,105 +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.etcd.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertFalse;
-
-import org.jclouds.etcd.EtcdApi;
-import org.jclouds.etcd.domain.miscellaneous.Version;
-import org.jclouds.etcd.internal.BaseEtcdMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-/**
- * Mock tests for the {@link org.jclouds.etcd.features.MiscellaneousApi} class.
- */
-@Test(groups = "unit", testName = "MiscellaneousApiMockTest")
-public class MiscellaneousApiMockTest extends BaseEtcdMockTest {
-
- private final String versionRegex = "^\\d+\\.\\d+\\.\\d+$";
-
- public void testGetVersion() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/version.json")).setResponseCode(200));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- MiscellaneousApi api = etcdJavaApi.miscellaneousApi();
- try {
- Version version = api.version();
- assertNotNull(version);
- assertTrue(version.etcdServer().matches(versionRegex));
- assertTrue(version.etcdCluster().matches(versionRegex));
- assertSent(server, "GET", "/version");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-
- public void testGetHealth() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/health.json")).setResponseCode(200));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- MiscellaneousApi api = etcdJavaApi.miscellaneousApi();
- try {
- boolean health = api.health();
- assertTrue(health);
- assertSent(server, "GET", "/health");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-
- public void testGetBadHealth() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/health-bad.json")).setResponseCode(503));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- MiscellaneousApi api = etcdJavaApi.miscellaneousApi();
- try {
- boolean health = api.health();
- assertFalse(health);
- assertSent(server, "GET", "/health");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-
- public void testGetMetrics() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/metrics.txt")).setResponseCode(200));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- MiscellaneousApi api = etcdJavaApi.miscellaneousApi();
- try {
- String metrics = api.metrics();
- assertNotNull(metrics);
- assertSentAcceptText(server, "GET", "/metrics");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiLiveTest.java b/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiLiveTest.java
deleted file mode 100644
index 97cd1ac..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiLiveTest.java
+++ /dev/null
@@ -1,77 +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.etcd.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.fail;
-
-import java.util.Properties;
-
-import org.jclouds.Constants;
-import org.jclouds.etcd.BaseEtcdApiLiveTest;
-import org.jclouds.etcd.EtcdApi;
-import org.jclouds.etcd.domain.members.Member;
-import org.jclouds.etcd.domain.statistics.Self;
-import org.testng.annotations.Test;
-
-import com.google.inject.Module;
-
-@Test(groups = "live", testName = "StatisticsApiLiveTest")
-public class StatisticsApiLiveTest extends BaseEtcdApiLiveTest {
-
- private Self self;
-
- @Test
- public void testGetSelf() {
- self = api().self();
- assertNotNull(self);
- }
-
- @Test(dependsOnMethods = "testGetSelf")
- public void testGetLeader() {
-
- /*
- * It's possible the default end-point is not the cluster leader. If true
- * we will iterate through all members to find the leader and execute the
- * 'leader' endpoint against its client URL.
- */
- if (self.state().equals("StateLeader")) {
- assertNotNull(api().leader());
- } else {
- for (Member possibleLeader : api.membersApi().list()) {
- if (possibleLeader.id().equals(self.leaderInfo().leader())) {
- Properties properties = new Properties();
- properties.setProperty(Constants.PROPERTY_ENDPOINT, possibleLeader.clientURLs().get(0));
- Iterable<Module> modules = setupModules();
- EtcdApi etcdApi = super.create(properties, modules);
- assertNotNull(etcdApi.statisticsApi().leader());
- return;
- }
- }
- fail("Could not find a leader within cluster");
- }
- }
-
- @Test
- public void testGetStore() {
- assertNotNull(api().store());
- }
-
- private StatisticsApi api() {
- return api.statisticsApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiMockTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiMockTest.java b/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiMockTest.java
deleted file mode 100644
index fc5bdc7..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/StatisticsApiMockTest.java
+++ /dev/null
@@ -1,91 +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.etcd.features;
-
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertNotNull;
-
-import org.jclouds.etcd.EtcdApi;
-import org.jclouds.etcd.EtcdApiMetadata;
-import org.jclouds.etcd.domain.statistics.Leader;
-import org.jclouds.etcd.domain.statistics.Self;
-import org.jclouds.etcd.domain.statistics.Store;
-import org.jclouds.etcd.internal.BaseEtcdMockTest;
-
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-/**
- * Mock tests for the {@link org.jclouds.etcd.features.StatisticsApi} class.
- */
-@Test(groups = "unit", testName = "StatisticsApiMockTest")
-public class StatisticsApiMockTest extends BaseEtcdMockTest {
-
- public void testGetLeader() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/leader.json")).setResponseCode(200));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- StatisticsApi api = etcdJavaApi.statisticsApi();
- try {
- Leader leader = api.leader();
- assertNotNull(leader);
- assertTrue(leader.followers().size() == 2);
- assertTrue(leader.leader().equals("924e2e83e93f2560"));
- assertSent(server, "GET", "/" + EtcdApiMetadata.API_VERSION + "/stats/leader");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-
- public void testGetSelf() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/self.json")).setResponseCode(200));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- StatisticsApi api = etcdJavaApi.statisticsApi();
- try {
- Self self = api.self();
- assertNotNull(self);
- assertTrue(self.leaderInfo().leader().equals("924e2e83e93f2560"));
- assertSent(server, "GET", "/" + EtcdApiMetadata.API_VERSION + "/stats/self");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-
- public void testGetStore() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/store.json")).setResponseCode(200));
- EtcdApi etcdJavaApi = api(server.getUrl("/"));
- StatisticsApi api = etcdJavaApi.statisticsApi();
- try {
- Store store = api.store();
- assertNotNull(store);
- assertTrue(store.getsSuccess() == 75);
- assertSent(server, "GET", "/" + EtcdApiMetadata.API_VERSION + "/stats/store");
- } finally {
- etcdJavaApi.close();
- server.shutdown();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/internal/BaseEtcdMockTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/internal/BaseEtcdMockTest.java b/etcd/src/test/java/org/jclouds/etcd/internal/BaseEtcdMockTest.java
deleted file mode 100644
index 9358d09..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/internal/BaseEtcdMockTest.java
+++ /dev/null
@@ -1,114 +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.etcd.internal;
-
-import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.jclouds.util.Strings2.toStringAndClose;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
-import java.net.URL;
-import java.util.Properties;
-
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Constants;
-import org.jclouds.ContextBuilder;
-import org.jclouds.etcd.EtcdApi;
-
-import com.google.common.base.Charsets;
-import com.google.common.base.Throwables;
-import com.google.gson.JsonParser;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-import com.squareup.okhttp.mockwebserver.RecordedRequest;
-
-/**
- * Base class for all Etcd mock tests.
- */
-public class BaseEtcdMockTest {
-
- protected String provider;
- private final JsonParser parser = new JsonParser();
-
- public BaseEtcdMockTest() {
- provider = "etcd";
- }
-
- public EtcdApi api(URL url) {
- return ContextBuilder.newBuilder(provider).endpoint(url.toString()).overrides(setupProperties())
- .buildApi(EtcdApi.class);
- }
-
- protected Properties setupProperties() {
- Properties properties = new Properties();
- properties.setProperty(Constants.PROPERTY_MAX_RETRIES, "0");
- return properties;
- }
-
- public static MockWebServer mockEtcdJavaWebServer() throws IOException {
- MockWebServer server = new MockWebServer();
- server.play();
- return server;
- }
-
- public String payloadFromResource(String resource) {
- try {
- return new String(toStringAndClose(getClass().getResourceAsStream(resource)).getBytes(Charsets.UTF_8));
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
- }
-
- protected RecordedRequest assertSent(MockWebServer server, String method, String path) throws InterruptedException {
- RecordedRequest request = server.takeRequest();
- assertThat(request.getMethod()).isEqualTo(method);
- assertThat(request.getPath()).isEqualTo(path);
- assertThat(request.getHeader(HttpHeaders.ACCEPT)).isEqualTo(MediaType.APPLICATION_JSON);
- return request;
- }
-
- protected RecordedRequest assertSentWithFormData(MockWebServer server, String method, String path, String body)
- throws InterruptedException {
- RecordedRequest request = server.takeRequest();
- assertThat(request.getMethod()).isEqualTo(method);
- assertThat(request.getPath()).isEqualTo(path);
- assertThat(request.getUtf8Body()).isEqualTo(body);
- assertThat(request.getHeader(HttpHeaders.ACCEPT)).isEqualTo(MediaType.APPLICATION_JSON);
- assertThat(request.getHeader(HttpHeaders.CONTENT_TYPE)).isEqualTo(MediaType.APPLICATION_FORM_URLENCODED);
- return request;
- }
-
- protected RecordedRequest assertSentAcceptText(MockWebServer server, String method, String path)
- throws InterruptedException {
- RecordedRequest request = server.takeRequest();
- assertThat(request.getMethod()).isEqualTo(method);
- assertThat(request.getPath()).isEqualTo(path);
- assertThat(request.getHeader(HttpHeaders.ACCEPT)).isEqualTo(MediaType.TEXT_PLAIN);
- 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(request.getUtf8Body()), parser.parse(json));
- return request;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/health-bad.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/health-bad.json b/etcd/src/test/resources/health-bad.json
deleted file mode 100644
index 6b68ef1..0000000
--- a/etcd/src/test/resources/health-bad.json
+++ /dev/null
@@ -1 +0,0 @@
-{"health": "false"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/health.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/health.json b/etcd/src/test/resources/health.json
deleted file mode 100644
index fdc9176..0000000
--- a/etcd/src/test/resources/health.json
+++ /dev/null
@@ -1 +0,0 @@
-{"health": "true"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/keys-create-ttl.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/keys-create-ttl.json b/etcd/src/test/resources/keys-create-ttl.json
deleted file mode 100644
index aa1b94a..0000000
--- a/etcd/src/test/resources/keys-create-ttl.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "action":"set",
- "node":{
- "createdIndex":5,
- "expiration":"2016-02-16T13:33:21.970469165Z",
- "key":"/hello",
- "modifiedIndex":5,
- "ttl":5,
- "value":"world"
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/keys-create.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/keys-create.json b/etcd/src/test/resources/keys-create.json
deleted file mode 100644
index 79cb39e..0000000
--- a/etcd/src/test/resources/keys-create.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "action":"set",
- "node":{
- "key":"/hello",
- "value":"world",
- "modifiedIndex":40,
- "createdIndex":40
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/keys-delete.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/keys-delete.json b/etcd/src/test/resources/keys-delete.json
deleted file mode 100644
index 9e8d234..0000000
--- a/etcd/src/test/resources/keys-delete.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "action":"delete",
- "node":{
- "key":"/hello",
- "modifiedIndex":41,
- "createdIndex":39
- },
- "prevNode":{
- "key":"/hello",
- "value":"world",
- "modifiedIndex":39,
- "createdIndex":39
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/keys-get-delete-nonexistent.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/keys-get-delete-nonexistent.json b/etcd/src/test/resources/keys-get-delete-nonexistent.json
deleted file mode 100644
index 3a69156..0000000
--- a/etcd/src/test/resources/keys-get-delete-nonexistent.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "errorCode":100,
- "message":"Key not found",
- "cause":"/foo",
- "index":16
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/keys-get.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/keys-get.json b/etcd/src/test/resources/keys-get.json
deleted file mode 100644
index 19213c4..0000000
--- a/etcd/src/test/resources/keys-get.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "action":"get",
- "node":{
- "key":"/hello",
- "value":"world",
- "modifiedIndex":39,
- "createdIndex":39
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/leader.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/leader.json b/etcd/src/test/resources/leader.json
deleted file mode 100644
index 496f904..0000000
--- a/etcd/src/test/resources/leader.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "followers": {
- "6e3bd23ae5f1eae0": {
- "counts": {
- "fail": 0,
- "success": 745
- },
- "latency": {
- "average": 0.017039507382550306,
- "current": 0.000138,
- "maximum": 1.007649,
- "minimum": 0,
- "standardDeviation": 0.05289178277920594
- }
- },
- "a8266ecf031671f3": {
- "counts": {
- "fail": 0,
- "success": 735
- },
- "latency": {
- "average": 0.012124141496598642,
- "current": 0.000559,
- "maximum": 0.791547,
- "minimum": 0,
- "standardDeviation": 0.04187900156583733
- }
- }
- },
- "leader": "924e2e83e93f2560"
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/members-add-existent.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/members-add-existent.json b/etcd/src/test/resources/members-add-existent.json
deleted file mode 100644
index 363618c..0000000
--- a/etcd/src/test/resources/members-add-existent.json
+++ /dev/null
@@ -1 +0,0 @@
-{"message":"etcdserver: ID exists"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/members-add-illegal-format.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/members-add-illegal-format.json b/etcd/src/test/resources/members-add-illegal-format.json
deleted file mode 100644
index c344f28..0000000
--- a/etcd/src/test/resources/members-add-illegal-format.json
+++ /dev/null
@@ -1 +0,0 @@
-{"message":"URL address does not have the form \"host:port\": http://www.google.com"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/members-add-malformed-url.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/members-add-malformed-url.json b/etcd/src/test/resources/members-add-malformed-url.json
deleted file mode 100644
index ffa9a2e..0000000
--- a/etcd/src/test/resources/members-add-malformed-url.json
+++ /dev/null
@@ -1 +0,0 @@
-{"message":"URL scheme must be http or https: 1234567890"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/members-added.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/members-added.json b/etcd/src/test/resources/members-added.json
deleted file mode 100644
index 904d739..0000000
--- a/etcd/src/test/resources/members-added.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "id": "3777296169",
- "peerURLs": [
- "http://10.0.0.10:2380"
- ],
- "clientURLs": [
- "http://10.0.0.10:2381"
- ]
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/members-delete-nonexistent.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/members-delete-nonexistent.json b/etcd/src/test/resources/members-delete-nonexistent.json
deleted file mode 100644
index 52302e6..0000000
--- a/etcd/src/test/resources/members-delete-nonexistent.json
+++ /dev/null
@@ -1 +0,0 @@
-{"message":"No such member: 1234567890"}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/members.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/members.json b/etcd/src/test/resources/members.json
deleted file mode 100644
index cdfcbb5..0000000
--- a/etcd/src/test/resources/members.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "members": [
- {
- "id": "272e204152",
- "name": "infra1",
- "peerURLs": [
- "http://10.0.0.10:2380"
- ],
- "clientURLs": [
- "http://10.0.0.10:2379"
- ]
- },
- {
- "id": "2225373f43",
- "name": "infra2",
- "peerURLs": [
- "http://10.0.0.11:2380"
- ],
- "clientURLs": [
- "http://10.0.0.11:2379"
- ]
- },
- ]
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/metrics.txt
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/metrics.txt b/etcd/src/test/resources/metrics.txt
deleted file mode 100644
index e59f2d6..0000000
--- a/etcd/src/test/resources/metrics.txt
+++ /dev/null
@@ -1,160 +0,0 @@
-# HELP etcd_rafthttp_message_sent_latency_microseconds message sent latency distributions.
-# TYPE etcd_rafthttp_message_sent_latency_microseconds summary
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.5"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.9"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.99"} NaN
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="message"} 84
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="message"} 1
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="msgappv2",quantile="0.5"} 50
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="msgappv2",quantile="0.9"} 78
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="msgappv2",quantile="0.99"} 98
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="msgappv2"} 2.045591e+06
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgApp",remoteID="96d5f4741cf7499e",sendingType="msgappv2"} 34607
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.5"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.9"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.99"} NaN
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="message"} 45
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="message"} 1
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="msgappv2",quantile="0.5"} 35
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="msgappv2",quantile="0.9"} 51
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="msgappv2",quantile="0.99"} 83
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="msgappv2"} 1.426621e+06
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgApp",remoteID="f992d9b00b6adf2f",sendingType="msgappv2"} 34664
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgHeartbeat",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.5"} 60
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgHeartbeat",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.9"} 91
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgHeartbeat",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.99"} 101
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgHeartbeat",remoteID="96d5f4741cf7499e",sendingType="message"} 548492
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgHeartbeat",remoteID="96d5f4741cf7499e",sendingType="message"} 7076
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgHeartbeat",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.5"} 39
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgHeartbeat",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.9"} 58
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgHeartbeat",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.99"} 93
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgHeartbeat",remoteID="f992d9b00b6adf2f",sendingType="message"} 335711
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgHeartbeat",remoteID="f992d9b00b6adf2f",sendingType="message"} 7076
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="message",quantile="0.5"} 53
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="message",quantile="0.9"} 65
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="message",quantile="0.99"} 71
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="message"} 455136
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="message"} 8578
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="msgappv2",quantile="0.5"} 54
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="msgappv2",quantile="0.9"} 69
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="msgappv2",quantile="0.99"} 93
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="msgappv2"} 482458
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgLinkHeartbeat",remoteID="0",sendingType="msgappv2"} 8578
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVote",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.5"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVote",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.9"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVote",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.99"} NaN
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgVote",remoteID="96d5f4741cf7499e",sendingType="message"} 162
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgVote",remoteID="96d5f4741cf7499e",sendingType="message"} 1
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVote",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.5"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVote",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.9"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVote",remoteID="f992d9b00b6adf2f",sendingType="message",quantile="0.99"} NaN
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgVote",remoteID="f992d9b00b6adf2f",sendingType="message"} 57
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgVote",remoteID="f992d9b00b6adf2f",sendingType="message"} 1
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVoteResp",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.5"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVoteResp",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.9"} NaN
-etcd_rafthttp_message_sent_latency_microseconds{msgType="MsgVoteResp",remoteID="96d5f4741cf7499e",sendingType="message",quantile="0.99"} NaN
-etcd_rafthttp_message_sent_latency_microseconds_sum{msgType="MsgVoteResp",remoteID="96d5f4741cf7499e",sendingType="message"} 54
-etcd_rafthttp_message_sent_latency_microseconds_count{msgType="MsgVoteResp",remoteID="96d5f4741cf7499e",sendingType="message"} 1
-# HELP etcd_server_file_descriptors_used_total The total number of file descriptors used.
-# TYPE etcd_server_file_descriptors_used_total gauge
-etcd_server_file_descriptors_used_total 18
-# HELP etcd_server_pending_proposal_total The total number of pending proposals.
-# TYPE etcd_server_pending_proposal_total gauge
-etcd_server_pending_proposal_total 0
-# HELP etcd_server_proposal_durations_milliseconds The latency distributions of committing proposal.
-# TYPE etcd_server_proposal_durations_milliseconds summary
-etcd_server_proposal_durations_milliseconds{quantile="0.5"} NaN
-etcd_server_proposal_durations_milliseconds{quantile="0.9"} NaN
-etcd_server_proposal_durations_milliseconds{quantile="0.99"} NaN
-etcd_server_proposal_durations_milliseconds_sum 3678
-etcd_server_proposal_durations_milliseconds_count 2
-# HELP etcd_server_proposal_failed_total The total number of failed proposals.
-# TYPE etcd_server_proposal_failed_total counter
-etcd_server_proposal_failed_total 1
-# HELP etcd_snapshot_save_total_durations_microseconds The total latency distributions of save called by snapshot.
-# TYPE etcd_snapshot_save_total_durations_microseconds summary
-etcd_snapshot_save_total_durations_microseconds{quantile="0.5"} NaN
-etcd_snapshot_save_total_durations_microseconds{quantile="0.9"} NaN
-etcd_snapshot_save_total_durations_microseconds{quantile="0.99"} NaN
-etcd_snapshot_save_total_durations_microseconds_sum 258
-etcd_snapshot_save_total_durations_microseconds_count 1
-# HELP etcd_store_expires_total Total number of expired keys.
-# TYPE etcd_store_expires_total counter
-etcd_store_expires_total 0
-# HELP etcd_store_reads_total Total number of reads action by (get/getRecursive), local to this member.
-# TYPE etcd_store_reads_total counter
-etcd_store_reads_total{action="getRecursive"} 5
-# HELP etcd_store_watch_requests_total Total number of incoming watch requests (new or reestablished).
-# TYPE etcd_store_watch_requests_total counter
-etcd_store_watch_requests_total 0
-# HELP etcd_store_watchers Count of currently active watchers.
-# TYPE etcd_store_watchers gauge
-etcd_store_watchers 0
-# HELP etcd_store_writes_total Total number of writes (e.g. set/compareAndDelete) seen by this member.
-# TYPE etcd_store_writes_total counter
-etcd_store_writes_total{action="create"} 3
-etcd_store_writes_total{action="set"} 4
-# HELP etcd_wal_fsync_durations_microseconds The latency distributions of fsync called by wal.
-# TYPE etcd_wal_fsync_durations_microseconds summary
-etcd_wal_fsync_durations_microseconds{quantile="0.5"} 41299
-etcd_wal_fsync_durations_microseconds{quantile="0.9"} 120044
-etcd_wal_fsync_durations_microseconds{quantile="0.99"} 563066
-etcd_wal_fsync_durations_microseconds_sum 1.862452899e+09
-etcd_wal_fsync_durations_microseconds_count 27906
-# HELP etcd_wal_last_index_saved The index of the last entry saved by wal.
-# TYPE etcd_wal_last_index_saved gauge
-etcd_wal_last_index_saved 13970
-# HELP go_gc_duration_seconds A summary of the GC invocation durations.
-# TYPE go_gc_duration_seconds summary
-go_gc_duration_seconds{quantile="0"} 0.000199168
-go_gc_duration_seconds{quantile="0.25"} 0.011117938
-go_gc_duration_seconds{quantile="0.5"} 0.013050367
-go_gc_duration_seconds{quantile="0.75"} 0.015054046000000001
-go_gc_duration_seconds{quantile="1"} 0.020298544
-go_gc_duration_seconds_sum 0.8452645520000001
-go_gc_duration_seconds_count 71
-# HELP go_goroutines Number of goroutines that currently exist.
-# TYPE go_goroutines gauge
-go_goroutines 69
-# HELP http_request_duration_microseconds The HTTP request latencies in microseconds.
-# TYPE http_request_duration_microseconds summary
-http_request_duration_microseconds{handler="prometheus",quantile="0.5"} NaN
-http_request_duration_microseconds{handler="prometheus",quantile="0.9"} NaN
-http_request_duration_microseconds{handler="prometheus",quantile="0.99"} NaN
-http_request_duration_microseconds_sum{handler="prometheus"} 11850.234
-http_request_duration_microseconds_count{handler="prometheus"} 2
-# HELP http_request_size_bytes The HTTP request sizes in bytes.
-# TYPE http_request_size_bytes summary
-http_request_size_bytes{handler="prometheus",quantile="0.5"} NaN
-http_request_size_bytes{handler="prometheus",quantile="0.9"} NaN
-http_request_size_bytes{handler="prometheus",quantile="0.99"} NaN
-http_request_size_bytes_sum{handler="prometheus"} 680
-http_request_size_bytes_count{handler="prometheus"} 2
-# HELP http_requests_total Total number of HTTP requests made.
-# TYPE http_requests_total counter
-http_requests_total{code="200",handler="prometheus",method="get"} 2
-# HELP http_response_size_bytes The HTTP response sizes in bytes.
-# TYPE http_response_size_bytes summary
-http_response_size_bytes{handler="prometheus",quantile="0.5"} NaN
-http_response_size_bytes{handler="prometheus",quantile="0.9"} NaN
-http_response_size_bytes{handler="prometheus",quantile="0.99"} NaN
-http_response_size_bytes_sum{handler="prometheus"} 3494
-http_response_size_bytes_count{handler="prometheus"} 2
-# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds.
-# TYPE process_cpu_seconds_total counter
-process_cpu_seconds_total 48.72
-# HELP process_max_fds Maximum number of open file descriptors.
-# TYPE process_max_fds gauge
-process_max_fds 1024
-# HELP process_open_fds Number of open file descriptors.
-# TYPE process_open_fds gauge
-process_open_fds 19
-# HELP process_resident_memory_bytes Resident memory size in bytes.
-# TYPE process_resident_memory_bytes gauge
-process_resident_memory_bytes 2.8459008e+07
-# HELP process_start_time_seconds Start time of the process since unix epoch in seconds.
-# TYPE process_start_time_seconds gauge
-process_start_time_seconds 1.43810894456e+09
-# HELP process_virtual_memory_bytes Virtual memory size in bytes.
-# TYPE process_virtual_memory_bytes gauge
-process_virtual_memory_bytes 3.749888e+07
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/self.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/self.json b/etcd/src/test/resources/self.json
deleted file mode 100644
index 72b15d5..0000000
--- a/etcd/src/test/resources/self.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "id": "924e2e83e93f2560",
- "leaderInfo": {
- "leader": "924e2e83e93f2560",
- "startTime": "2015-02-09T11:38:30.177534688-08:00",
- "uptime": "9m33.891343412s"
- },
- "name": "infra3",
- "recvAppendRequestCnt": 0,
- "sendAppendRequestCnt": 6535,
- "sendBandwidthRate": 824.1758351191694,
- "sendPkgRate": 11.111234716807138,
- "startTime": "2015-02-09T11:38:28.972034204-08:00",
- "state": "StateLeader"
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/store.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/store.json b/etcd/src/test/resources/store.json
deleted file mode 100644
index 03e6e3d..0000000
--- a/etcd/src/test/resources/store.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "compareAndSwapFail": 0,
- "compareAndSwapSuccess": 0,
- "createFail": 0,
- "createSuccess": 2,
- "deleteFail": 0,
- "deleteSuccess": 0,
- "expireCount": 0,
- "getsFail": 4,
- "getsSuccess": 75,
- "setsFail": 2,
- "setsSuccess": 4,
- "updateFail": 0,
- "updateSuccess": 0,
- "watchers": 0
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/resources/version.json
----------------------------------------------------------------------
diff --git a/etcd/src/test/resources/version.json b/etcd/src/test/resources/version.json
deleted file mode 100644
index f5c5e12..0000000
--- a/etcd/src/test/resources/version.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "etcdserver":"2.1.1",
- "etcdcluster":"2.1.0"
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 03cd02f..cb03655 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,7 +67,6 @@
<modules>
<module>azurecompute-arm</module>
<module>azurecompute</module>
- <module>etcd</module>
<module>docker</module>
<module>cdmi</module>
<module>cloudsigma2</module>
[2/2] jclouds-labs git commit: Remove project etcd. Project is now
being hosted at https://github.com/cdancy/etcd-rest.
Posted by na...@apache.org.
Remove project etcd. Project is now being hosted at https://github.com/cdancy/etcd-rest.
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/1f215379
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/1f215379
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/1f215379
Branch: refs/heads/master
Commit: 1f2153799190d06b64295f65607e2b0bb3600903
Parents: 247e9fd
Author: Christopher Dancy <da...@pega.com>
Authored: Fri May 6 11:21:27 2016 -0400
Committer: Ignasi Barrera <na...@apache.org>
Committed: Mon May 9 11:24:00 2016 +0200
----------------------------------------------------------------------
etcd/pom.xml | 123 --------------
.../src/main/java/org/jclouds/etcd/EtcdApi.java | 41 -----
.../java/org/jclouds/etcd/EtcdApiMetadata.java | 82 ---------
.../jclouds/etcd/config/EtcdHttpApiModule.java | 43 -----
.../java/org/jclouds/etcd/domain/keys/Key.java | 42 -----
.../java/org/jclouds/etcd/domain/keys/Node.java | 60 -------
.../etcd/domain/members/CreateMember.java | 47 ------
.../org/jclouds/etcd/domain/members/Member.java | 49 ------
.../etcd/domain/miscellaneous/Version.java | 38 -----
.../jclouds/etcd/domain/statistics/Counts.java | 38 -----
.../etcd/domain/statistics/Follower.java | 38 -----
.../jclouds/etcd/domain/statistics/Latency.java | 45 -----
.../jclouds/etcd/domain/statistics/Leader.java | 41 -----
.../etcd/domain/statistics/LeaderInfo.java | 40 -----
.../jclouds/etcd/domain/statistics/Self.java | 55 ------
.../jclouds/etcd/domain/statistics/Store.java | 68 --------
.../jclouds/etcd/fallbacks/EtcdFallbacks.java | 48 ------
.../java/org/jclouds/etcd/features/KeysApi.java | 59 -------
.../org/jclouds/etcd/features/MembersApi.java | 74 --------
.../jclouds/etcd/features/MiscellaneousApi.java | 52 ------
.../jclouds/etcd/features/StatisticsApi.java | 58 -------
.../jclouds/etcd/handlers/EtcdErrorHandler.java | 83 ---------
.../org/jclouds/etcd/BaseEtcdApiLiveTest.java | 51 ------
.../org/jclouds/etcd/EtcdApiMetadataTest.java | 50 ------
.../jclouds/etcd/features/KeysApiLiveTest.java | 100 -----------
.../jclouds/etcd/features/KeysApiMockTest.java | 144 ----------------
.../etcd/features/MembersApiLiveTest.java | 103 ------------
.../etcd/features/MembersApiMockTest.java | 168 -------------------
.../etcd/features/MiscellaneousApiLiveTest.java | 53 ------
.../etcd/features/MiscellaneousApiMockTest.java | 105 ------------
.../etcd/features/StatisticsApiLiveTest.java | 77 ---------
.../etcd/features/StatisticsApiMockTest.java | 91 ----------
.../jclouds/etcd/internal/BaseEtcdMockTest.java | 114 -------------
etcd/src/test/resources/health-bad.json | 1 -
etcd/src/test/resources/health.json | 1 -
etcd/src/test/resources/keys-create-ttl.json | 11 --
etcd/src/test/resources/keys-create.json | 9 -
etcd/src/test/resources/keys-delete.json | 14 --
.../resources/keys-get-delete-nonexistent.json | 6 -
etcd/src/test/resources/keys-get.json | 9 -
etcd/src/test/resources/leader.json | 31 ----
.../test/resources/members-add-existent.json | 1 -
.../resources/members-add-illegal-format.json | 1 -
.../resources/members-add-malformed-url.json | 1 -
etcd/src/test/resources/members-added.json | 9 -
.../resources/members-delete-nonexistent.json | 1 -
etcd/src/test/resources/members.json | 24 ---
etcd/src/test/resources/metrics.txt | 160 ------------------
etcd/src/test/resources/self.json | 15 --
etcd/src/test/resources/store.json | 16 --
etcd/src/test/resources/version.json | 4 -
pom.xml | 1 -
52 files changed, 2595 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/pom.xml
----------------------------------------------------------------------
diff --git a/etcd/pom.xml b/etcd/pom.xml
deleted file mode 100644
index f83e72c..0000000
--- a/etcd/pom.xml
+++ /dev/null
@@ -1,123 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.jclouds.labs</groupId>
- <artifactId>jclouds-labs</artifactId>
- <version>2.0.0-SNAPSHOT</version>
- </parent>
-
- <!-- TODO: when out of labs, switch to org.jclouds.api -->
- <artifactId>etcd</artifactId>
- <name>jclouds etcd api</name>
- <description>jclouds components to access an implementation of etcd</description>
- <packaging>bundle</packaging>
-
- <properties>
- <test.etcd.endpoint>http://127.0.0.1:2379</test.etcd.endpoint>
- <test.etcd.identity>FIXME</test.etcd.identity>
- <test.etcd.credential>FIXME</test.etcd.credential>
- <test.etcd.api-version>v2</test.etcd.api-version>
- <jclouds.osgi.export>org.jclouds.etcd*;version="${project.version}"</jclouds.osgi.export>
- <jclouds.osgi.import>
- org.jclouds*;version="${jclouds.version}",
- *
- </jclouds.osgi.import>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-core</artifactId>
- <version>${jclouds.version}</version>
- </dependency>
- <dependency>
- <groupId>com.google.auto.service</groupId>
- <artifactId>auto-service</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>com.google.auto.value</groupId>
- <artifactId>auto-value</artifactId>
- <scope>provided</scope>
- </dependency>
- <!-- Test dependencies -->
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-core</artifactId>
- <version>${jclouds.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>com.squareup.okhttp</groupId>
- <artifactId>mockwebserver</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-slf4j</artifactId>
- <version>${jclouds.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>ch.qos.logback</groupId>
- <artifactId>logback-classic</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>live</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>integration</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <systemPropertyVariables>
- <test.etcd.endpoint>${test.etcd.endpoint}</test.etcd.endpoint>
- <test.etcd.identity>${test.etcd.identity}</test.etcd.identity>
- <test.etcd.credential>${test.etcd.credential}</test.etcd.credential>
- <test.etcd.api-version>${test.etcd.api-version}</test.etcd.api-version>
- </systemPropertyVariables>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-</project>
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/EtcdApi.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/EtcdApi.java b/etcd/src/main/java/org/jclouds/etcd/EtcdApi.java
deleted file mode 100644
index fb5f811..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/EtcdApi.java
+++ /dev/null
@@ -1,41 +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.etcd;
-
-import java.io.Closeable;
-
-import org.jclouds.etcd.features.KeysApi;
-import org.jclouds.etcd.features.MembersApi;
-import org.jclouds.etcd.features.MiscellaneousApi;
-import org.jclouds.etcd.features.StatisticsApi;
-import org.jclouds.rest.annotations.Delegate;
-
-public interface EtcdApi extends Closeable {
-
- @Delegate
- KeysApi keysApi();
-
- @Delegate
- MembersApi membersApi();
-
- @Delegate
- MiscellaneousApi miscellaneousApi();
-
- @Delegate
- StatisticsApi statisticsApi();
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/EtcdApiMetadata.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/EtcdApiMetadata.java b/etcd/src/main/java/org/jclouds/etcd/EtcdApiMetadata.java
deleted file mode 100644
index c44490f..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/EtcdApiMetadata.java
+++ /dev/null
@@ -1,82 +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.etcd;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.etcd.config.EtcdHttpApiModule;
-import org.jclouds.rest.internal.BaseHttpApiMetadata;
-
-import com.google.auto.service.AutoService;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-@AutoService(ApiMetadata.class)
-public class EtcdApiMetadata extends BaseHttpApiMetadata<EtcdApi> {
-
- public static final String API_VERSION = "v2";
- public static final String BUILD_VERSION = "2.2.5";
-
- @Override
- public Builder toBuilder() {
- return new Builder().fromApiMetadata(this);
- }
-
- public EtcdApiMetadata() {
- this(new Builder());
- }
-
- protected EtcdApiMetadata(Builder builder) {
- super(builder);
- }
-
- public static Properties defaultProperties() {
- Properties properties = BaseHttpApiMetadata.defaultProperties();
- return properties;
- }
-
- public static class Builder extends BaseHttpApiMetadata.Builder<EtcdApi, Builder> {
-
- protected Builder() {
- super(EtcdApi.class);
- id("etcd").name("Etcd API").identityName("Optional Username").credentialName("Optional Password")
- .defaultIdentity("N/A").defaultCredential("N/A")
- .documentation(URI.create("https://github.com/coreos/etcd/blob/master/Documentation/api.md"))
- .version(API_VERSION).buildVersion(BUILD_VERSION).defaultEndpoint("http://127.0.0.1:2379")
- .defaultProperties(EtcdApiMetadata.defaultProperties())
- .defaultModules(ImmutableSet.<Class<? extends Module>> of(EtcdHttpApiModule.class));
- }
-
- @Override
- public EtcdApiMetadata build() {
- return new EtcdApiMetadata(this);
- }
-
- @Override
- protected Builder self() {
- return this;
- }
-
- @Override
- public Builder fromApiMetadata(ApiMetadata in) {
- return this;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/config/EtcdHttpApiModule.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/config/EtcdHttpApiModule.java b/etcd/src/main/java/org/jclouds/etcd/config/EtcdHttpApiModule.java
deleted file mode 100644
index f635387..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/config/EtcdHttpApiModule.java
+++ /dev/null
@@ -1,43 +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.etcd.config;
-
-import org.jclouds.etcd.EtcdApi;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.rest.ConfiguresHttpApi;
-import org.jclouds.rest.config.HttpApiModule;
-
-import org.jclouds.etcd.handlers.EtcdErrorHandler;
-
-@ConfiguresHttpApi
-public class EtcdHttpApiModule extends HttpApiModule<EtcdApi> {
-
- @Override
- protected void bindErrorHandlers() {
- bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(EtcdErrorHandler.class);
- bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(EtcdErrorHandler.class);
- bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(EtcdErrorHandler.class);
- }
-
- protected void configure() {
- super.configure();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/keys/Key.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/keys/Key.java b/etcd/src/main/java/org/jclouds/etcd/domain/keys/Key.java
deleted file mode 100644
index 5c9b378..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/keys/Key.java
+++ /dev/null
@@ -1,42 +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.etcd.domain.keys;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Key {
-
- public abstract String action();
-
- public abstract Node node();
-
- @Nullable
- public abstract Node prevNode();
-
- Key() {
- }
-
- @SerializedNames({ "action", "node", "prevNode" })
- public static Key create(String action, Node node, Node prevNode) {
- return new AutoValue_Key(action, node, prevNode);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/keys/Node.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/keys/Node.java b/etcd/src/main/java/org/jclouds/etcd/domain/keys/Node.java
deleted file mode 100644
index 6ccdac9..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/keys/Node.java
+++ /dev/null
@@ -1,60 +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.etcd.domain.keys;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-
-@AutoValue
-public abstract class Node {
-
- public abstract int createdIndex();
-
- public abstract boolean dir();
-
- public abstract List<Node> nodes();
-
- @Nullable
- public abstract String expiration();
-
- @Nullable
- public abstract String key();
-
- public abstract int modifiedIndex();
-
- public abstract int ttl();
-
- @Nullable
- public abstract String value();
-
- Node() {
- }
-
- @SerializedNames({ "createdIndex", "dir", "nodes", "expiration", "key", "modifiedIndex", "ttl", "value" })
- public static Node create(int createdIndex, boolean dir, List<Node> nodes, String expiration, String key,
- int modifiedIndex, int ttl, String value) {
- return new AutoValue_Node(createdIndex, dir,
- nodes != null ? ImmutableList.copyOf(nodes) : ImmutableList.<Node> of(), expiration, key, modifiedIndex,
- ttl, value);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/members/CreateMember.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/members/CreateMember.java b/etcd/src/main/java/org/jclouds/etcd/domain/members/CreateMember.java
deleted file mode 100644
index 025e8bd..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/members/CreateMember.java
+++ /dev/null
@@ -1,47 +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.etcd.domain.members;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-
-@AutoValue
-public abstract class CreateMember {
-
- @Nullable
- public abstract String name();
-
- public abstract List<String> peerURLs();
-
- public abstract List<String> clientURLs();
-
- CreateMember() {
- }
-
- @SerializedNames({ "name", "peerURLs", "clientURLs" })
- public static CreateMember create(String name, List<String> peerURLs, List<String> clientURLs) {
- if (clientURLs == null)
- clientURLs = ImmutableList.of();
- return new AutoValue_CreateMember(name, ImmutableList.copyOf(peerURLs), ImmutableList.copyOf(clientURLs));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/members/Member.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/members/Member.java b/etcd/src/main/java/org/jclouds/etcd/domain/members/Member.java
deleted file mode 100644
index cfeae6c..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/members/Member.java
+++ /dev/null
@@ -1,49 +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.etcd.domain.members;
-
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableList;
-
-@AutoValue
-public abstract class Member {
-
- public abstract String id();
-
- @Nullable
- public abstract String name();
-
- public abstract List<String> peerURLs();
-
- public abstract List<String> clientURLs();
-
- Member() {
- }
-
- @SerializedNames({ "id", "name", "peerURLs", "clientURLs" })
- private static Member create(String id, String name, List<String> peerURLs, List<String> clientURLs) {
- if (clientURLs == null)
- clientURLs = ImmutableList.of();
- return new AutoValue_Member(id, name, ImmutableList.copyOf(peerURLs), ImmutableList.copyOf(clientURLs));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/miscellaneous/Version.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/miscellaneous/Version.java b/etcd/src/main/java/org/jclouds/etcd/domain/miscellaneous/Version.java
deleted file mode 100644
index 60d05ed..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/miscellaneous/Version.java
+++ /dev/null
@@ -1,38 +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.etcd.domain.miscellaneous;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Version {
-
- public abstract String etcdServer();
-
- public abstract String etcdCluster();
-
- Version() {
- }
-
- @SerializedNames({ "etcdserver", "etcdcluster" })
- public static Version create(String etcdserver, String etcdcluster) {
- return new AutoValue_Version(etcdserver, etcdcluster);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Counts.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Counts.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Counts.java
deleted file mode 100644
index eabc6a9..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Counts.java
+++ /dev/null
@@ -1,38 +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.etcd.domain.statistics;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Counts {
-
- public abstract int fail();
-
- public abstract int success();
-
- Counts() {
- }
-
- @SerializedNames({ "fail", "success" })
- private static Counts create(int fail, int success) {
- return new AutoValue_Counts(fail, success);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Follower.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Follower.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Follower.java
deleted file mode 100644
index 05c333e..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Follower.java
+++ /dev/null
@@ -1,38 +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.etcd.domain.statistics;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Follower {
-
- public abstract Counts counts();
-
- public abstract Latency latency();
-
- Follower() {
- }
-
- @SerializedNames({ "counts", "latency" })
- private static Follower create(Counts counts, Latency latency) {
- return new AutoValue_Follower(counts, latency);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Latency.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Latency.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Latency.java
deleted file mode 100644
index 1002170..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Latency.java
+++ /dev/null
@@ -1,45 +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.etcd.domain.statistics;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Latency {
-
- public abstract double average();
-
- public abstract double current();
-
- public abstract double maximum();
-
- public abstract double minimum();
-
- public abstract double standardDeviation();
-
- Latency() {
- }
-
- @SerializedNames({ "average", "current", "maximum", "minimum", "standardDeviation" })
- private static Latency create(double average, double current, double maximum, double minimum,
- double standardDeviation) {
- return new AutoValue_Latency(average, current, maximum, minimum, standardDeviation);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Leader.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Leader.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Leader.java
deleted file mode 100644
index e3af2b0..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Leader.java
+++ /dev/null
@@ -1,41 +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.etcd.domain.statistics;
-
-import java.util.Map;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-import com.google.common.collect.ImmutableMap;
-
-@AutoValue
-public abstract class Leader {
-
- public abstract String leader();
-
- public abstract Map<String, Follower> followers();
-
- Leader() {
- }
-
- @SerializedNames({ "leader", "followers" })
- private static Leader create(String leader, Map<String, Follower> followers) {
- return new AutoValue_Leader(leader, ImmutableMap.copyOf(followers));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/LeaderInfo.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/LeaderInfo.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/LeaderInfo.java
deleted file mode 100644
index ec0aa67..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/LeaderInfo.java
+++ /dev/null
@@ -1,40 +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.etcd.domain.statistics;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class LeaderInfo {
-
- public abstract String leader();
-
- public abstract String startTime();
-
- public abstract String uptime();
-
- LeaderInfo() {
- }
-
- @SerializedNames({ "leader", "startTime", "uptime" })
- private static LeaderInfo create(String leader, String startTime, String uptime) {
- return new AutoValue_LeaderInfo(leader, startTime, uptime);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Self.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Self.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Self.java
deleted file mode 100644
index a9d7e22..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Self.java
+++ /dev/null
@@ -1,55 +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.etcd.domain.statistics;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Self {
-
- public abstract String id();
-
- public abstract LeaderInfo leaderInfo();
-
- public abstract String name();
-
- public abstract double recvAppendRequestCnt();
-
- public abstract double sendAppendRequestCnt();
-
- public abstract double sendBandwidthRate();
-
- public abstract double sendPkgRate();
-
- public abstract String startTime();
-
- public abstract String state();
-
- Self() {
- }
-
- @SerializedNames({ "id", "leaderInfo", "name", "recvAppendRequestCnt", "sendAppendRequestCnt", "sendBandwidthRate",
- "sendPkgRate", "startTime", "state" })
- private static Self create(String id, LeaderInfo leaderInfo, String name, double recvAppendRequestCnt,
- double sendAppendRequestCnt, double sendBandwidthRate, double sendPkgRate, String startTime, String state) {
- return new AutoValue_Self(id, leaderInfo, name, recvAppendRequestCnt, sendAppendRequestCnt, sendBandwidthRate,
- sendPkgRate, startTime, state);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Store.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Store.java b/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Store.java
deleted file mode 100644
index 7c468d1..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/domain/statistics/Store.java
+++ /dev/null
@@ -1,68 +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.etcd.domain.statistics;
-
-import org.jclouds.json.SerializedNames;
-
-import com.google.auto.value.AutoValue;
-
-@AutoValue
-public abstract class Store {
-
- public abstract int compareAndSwapFail();
-
- public abstract int compareAndSwapSuccess();
-
- public abstract int createFail();
-
- public abstract int createSuccess();
-
- public abstract int deleteFail();
-
- public abstract int deleteSuccess();
-
- public abstract int expireCount();
-
- public abstract int getsFail();
-
- public abstract int getsSuccess();
-
- public abstract int setsFail();
-
- public abstract int setsSuccess();
-
- public abstract int updateFail();
-
- public abstract int updateSuccess();
-
- public abstract int watchers();
-
- Store() {
- }
-
- @SerializedNames({ "compareAndSwapFail", "compareAndSwapSuccess", "createFail", "createSuccess", "deleteFail",
- "deleteSuccess", "expireCount", "getsFail", "getsSuccess", "setsFail", "setsSuccess", "updateFail",
- "updateSuccess", "watchers" })
- private static Store create(int compareAndSwapFail, int compareAndSwapSuccess, int createFail, int createSuccess,
- int deleteFail, int deleteSuccess, int expireCount, int getsFail, int getsSuccess, int setsFail,
- int setsSuccess, int updateFail, int updateSuccess, int watchers) {
- return new AutoValue_Store(compareAndSwapFail, compareAndSwapSuccess, createFail, createSuccess, deleteFail,
- deleteSuccess, expireCount, getsFail, getsSuccess, setsFail, setsSuccess, updateFail, updateSuccess,
- watchers);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/fallbacks/EtcdFallbacks.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/fallbacks/EtcdFallbacks.java b/etcd/src/main/java/org/jclouds/etcd/fallbacks/EtcdFallbacks.java
deleted file mode 100644
index de8cec9..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/fallbacks/EtcdFallbacks.java
+++ /dev/null
@@ -1,48 +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.etcd.fallbacks;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Predicates.equalTo;
-import static com.google.common.base.Throwables.propagate;
-import static org.jclouds.http.HttpUtils.returnValueOnCodeOrNull;
-
-import org.jclouds.Fallback;
-import org.jclouds.http.HttpUtils;
-
-public final class EtcdFallbacks {
-
- public static final class FalseOn503 implements Fallback<Boolean> {
- public Boolean createOrPropagate(Throwable t) throws Exception {
- if (checkNotNull(t, "throwable") != null && t.getMessage().contains("{\"health\": \"false\"}")
- && returnValueOnCodeOrNull(t, true, equalTo(503)) != null) {
- return Boolean.FALSE;
- }
- throw propagate(t);
- }
- }
-
- public static final class NullOnKeyNonFoundAnd404 implements Fallback<Object> {
- public Object createOrPropagate(Throwable t) throws Exception {
- if (checkNotNull(t, "throwable") != null && t.getMessage().contains("Key not found")
- && HttpUtils.contains404(t)) {
- return null;
- }
- throw propagate(t);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/features/KeysApi.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/features/KeysApi.java b/etcd/src/main/java/org/jclouds/etcd/features/KeysApi.java
deleted file mode 100644
index f2ef5d6..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/features/KeysApi.java
+++ /dev/null
@@ -1,59 +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.etcd.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.etcd.domain.keys.Key;
-import org.jclouds.etcd.fallbacks.EtcdFallbacks.NullOnKeyNonFoundAnd404;
-import org.jclouds.rest.annotations.Fallback;
-
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/{jclouds.api-version}/keys")
-public interface KeysApi {
-
- @Named("keys:create")
- @PUT
- @Path("/{key}")
- Key createKey(@PathParam("key") String key, @FormParam("value") String value);
-
- @Named("keys:create")
- @PUT
- @Path("/{key}")
- Key createKey(@PathParam("key") String key, @FormParam("value") String value, @FormParam("ttl") int seconds);
-
- @Named("keys:get")
- @GET
- @Path("/{key}")
- @Fallback(NullOnKeyNonFoundAnd404.class)
- Key getKey(@PathParam("key") String key);
-
- @Named("keys:delete")
- @DELETE
- @Path("/{key}")
- @Fallback(NullOnKeyNonFoundAnd404.class)
- Key deleteKey(@PathParam("key") String key);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/features/MembersApi.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/features/MembersApi.java b/etcd/src/main/java/org/jclouds/etcd/features/MembersApi.java
deleted file mode 100644
index 655b748..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/features/MembersApi.java
+++ /dev/null
@@ -1,74 +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.etcd.features;
-
-import java.util.List;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.etcd.domain.members.CreateMember;
-import org.jclouds.etcd.domain.members.Member;
-import org.jclouds.rest.ResourceAlreadyExistsException;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.SelectJson;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/{jclouds.api-version}/members")
-public interface MembersApi {
-
- /**
- * @return list of members within cluster
- */
- @Named("members:list")
- @SelectJson("members")
- @GET
- List<Member> list();
-
- /**
- * @param member
- * non-existing member to add to cluster
- * @return newly created member
- * @throws ResourceAlreadyExistsException
- * if member with peerURLs was already present
- */
- @Named("members:add")
- @POST
- Member add(@BinderParam(BindToJsonPayload.class) CreateMember memberToCreate);
-
- /**
- * @param memberID
- * id of previously existing member
- * @return true if member was deleted or false if id did not match an
- * existing member
- */
- @Named("members:delete")
- @Path("/{id}")
- @Fallback(FalseOnNotFoundOr404.class)
- @DELETE
- boolean delete(@PathParam("id") String memberID);
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/features/MiscellaneousApi.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/features/MiscellaneousApi.java b/etcd/src/main/java/org/jclouds/etcd/features/MiscellaneousApi.java
deleted file mode 100644
index 73d61ea..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/features/MiscellaneousApi.java
+++ /dev/null
@@ -1,52 +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.etcd.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.etcd.domain.miscellaneous.Version;
-import org.jclouds.etcd.fallbacks.EtcdFallbacks.FalseOn503;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.SelectJson;
-
-public interface MiscellaneousApi {
-
- @Named("miscellaneous:version")
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/version")
- @GET
- Version version();
-
- @Named("miscellaneous:health")
- @Consumes(MediaType.APPLICATION_JSON)
- @Path("/health")
- @SelectJson("health")
- @Fallback(FalseOn503.class)
- @GET
- boolean health();
-
- @Named("miscellaneous:metrics")
- @Consumes(MediaType.TEXT_PLAIN)
- @Path("/metrics")
- @GET
- String metrics();
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/features/StatisticsApi.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/features/StatisticsApi.java b/etcd/src/main/java/org/jclouds/etcd/features/StatisticsApi.java
deleted file mode 100644
index d469cf6..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/features/StatisticsApi.java
+++ /dev/null
@@ -1,58 +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.etcd.features;
-
-import javax.inject.Named;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.etcd.domain.statistics.Leader;
-import org.jclouds.etcd.domain.statistics.Self;
-import org.jclouds.etcd.domain.statistics.Store;
-
-@Consumes(MediaType.APPLICATION_JSON)
-@Path("/{jclouds.api-version}/stats")
-public interface StatisticsApi {
-
- /**
- * @return information on leader and entire cluster but only if WE are the
- * leader
- */
- @Named("statistics:leader")
- @Path("/leader")
- @GET
- Leader leader();
-
- /**
- * @return information on node we are currently pointing at
- */
- @Named("statistics:self")
- @Path("/self")
- @GET
- Self self();
-
- /**
- * @return information about operations this node has handled
- */
- @Named("statistics:store")
- @Path("/store")
- @GET
- Store store();
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/main/java/org/jclouds/etcd/handlers/EtcdErrorHandler.java
----------------------------------------------------------------------
diff --git a/etcd/src/main/java/org/jclouds/etcd/handlers/EtcdErrorHandler.java b/etcd/src/main/java/org/jclouds/etcd/handlers/EtcdErrorHandler.java
deleted file mode 100644
index e3e2261..0000000
--- a/etcd/src/main/java/org/jclouds/etcd/handlers/EtcdErrorHandler.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.etcd.handlers;
-
-import static org.jclouds.util.Closeables2.closeQuietly;
-
-import java.io.IOException;
-
-import javax.annotation.Resource;
-
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.logging.Logger;
-import org.jclouds.rest.ResourceAlreadyExistsException;
-import org.jclouds.util.Strings2;
-
-import com.google.common.base.Throwables;
-
-/**
- * Handle errors and propagate exception
- */
-public class EtcdErrorHandler implements HttpErrorHandler {
- @Resource
- protected Logger logger = Logger.NULL;
-
- public void handleError(HttpCommand command, HttpResponse response) {
-
- String message = parseMessage(response);
- Exception exception = null;
- try {
-
- message = message != null ? message
- : String.format("%s -> %s", command.getCurrentRequest().getRequestLine(), response.getStatusLine());
-
- switch (response.getStatusCode()) {
- case 400:
- exception = new IllegalArgumentException(message);
- break;
- case 409:
- exception = new ResourceAlreadyExistsException(message);
- break;
- default:
- exception = new HttpResponseException(message, command, response);
- break;
- }
- } catch (Exception e) {
- exception = new HttpResponseException(command, response, e);
- } finally {
- if (exception == null) {
- exception = message != null ? new HttpResponseException(command, response, message)
- : new HttpResponseException(command, response);
- }
- closeQuietly(response.getPayload());
- command.setException(exception);
- }
- }
-
- private String parseMessage(HttpResponse response) {
- if (response.getPayload() == null)
- return null;
- try {
- return Strings2.toStringAndClose(response.getPayload().openStream());
- } catch (IOException e) {
- throw Throwables.propagate(e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/BaseEtcdApiLiveTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/BaseEtcdApiLiveTest.java b/etcd/src/test/java/org/jclouds/etcd/BaseEtcdApiLiveTest.java
deleted file mode 100644
index 88cfb61..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/BaseEtcdApiLiveTest.java
+++ /dev/null
@@ -1,51 +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.etcd;
-
-import java.util.Properties;
-import java.util.UUID;
-
-import org.jclouds.Constants;
-import org.jclouds.apis.BaseApiLiveTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Module;
-
-@Test(groups = "live")
-public class BaseEtcdApiLiveTest extends BaseApiLiveTest<EtcdApi> {
-
- public BaseEtcdApiLiveTest() {
- provider = "etcd";
- }
-
- @Override
- protected Iterable<Module> setupModules() {
- return ImmutableSet.<Module> of(getLoggingModule());
- }
-
- @Override
- protected Properties setupProperties() {
- Properties overrides = super.setupProperties();
- overrides.setProperty(Constants.PROPERTY_MAX_RETRIES, "0");
- return overrides;
- }
-
- protected String randomString() {
- return UUID.randomUUID().toString().replaceAll("-", "");
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/EtcdApiMetadataTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/EtcdApiMetadataTest.java b/etcd/src/test/java/org/jclouds/etcd/EtcdApiMetadataTest.java
deleted file mode 100644
index 475a5b5..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/EtcdApiMetadataTest.java
+++ /dev/null
@@ -1,50 +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.etcd;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.HashSet;
-import org.jclouds.View;
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.apis.Apis;
-import org.jclouds.apis.internal.BaseApiMetadataTest;
-import org.testng.annotations.Test;
-
-import com.google.common.reflect.TypeToken;
-
-/**
- * Unit tests for the {@link EtcdApiMetadata} class.
- */
-@Test(groups = "unit", testName = "EtcdApiMetadataTest")
-public class EtcdApiMetadataTest extends BaseApiMetadataTest {
-
- public EtcdApiMetadataTest() {
- super(new EtcdApiMetadata(), new HashSet<TypeToken<? extends View>>());
- }
-
- public void testEtcdApiRegistered() {
- ApiMetadata api = Apis.withId("etcd");
-
- assertNotNull(api);
- assertTrue(api instanceof EtcdApiMetadata);
- assertEquals(api.getId(), "etcd");
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/KeysApiLiveTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/KeysApiLiveTest.java b/etcd/src/test/java/org/jclouds/etcd/features/KeysApiLiveTest.java
deleted file mode 100644
index 2b31917..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/KeysApiLiveTest.java
+++ /dev/null
@@ -1,100 +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.etcd.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.etcd.BaseEtcdApiLiveTest;
-import org.jclouds.etcd.domain.keys.Key;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Throwables;
-
-@Test(groups = "live", testName = "KeysApiLiveTest")
-public class KeysApiLiveTest extends BaseEtcdApiLiveTest {
-
- private String key;
- private String value;
-
- @BeforeClass
- protected void init() {
- key = randomString();
- value = randomString();
- }
-
- @Test
- public void testCreateKeyWithTTL() {
- String localKey = randomString();
- String localValue = randomString();
- Key createdKey = api().createKey(localKey, localValue, 1);
- assertNotNull(createdKey);
- assertNotNull(createdKey.node().expiration());
- assertTrue(createdKey.node().ttl() == 1);
-
- try {
- Thread.sleep(3000);
- } catch (InterruptedException e) {
- Throwables.propagate(e);
- }
-
- createdKey = api().getKey(localKey);
- assertNull(createdKey);
- }
-
- @Test
- public void testCreateKey() {
- Key createdKey = api().createKey(key, value);
- assertNotNull(createdKey);
- assertTrue(createdKey.action().equals("set"));
- assertTrue(createdKey.node().value().equals(value));
- }
-
- @Test(dependsOnMethods = "testCreateKey")
- public void testGetKey() {
- Key getKey = api().getKey(key);
- assertNotNull(getKey);
- assertTrue(getKey.action().equals("get"));
- assertTrue(getKey.node().value().equals(value));
- }
-
- @Test(dependsOnMethods = "testGetKey", alwaysRun = true)
- public void testDeleteKey() {
- Key deletedKey = api().deleteKey(key);
- assertNotNull(deletedKey);
- assertTrue(deletedKey.action().equals("delete"));
- assertTrue(deletedKey.prevNode().value().equals(value));
- }
-
- @Test
- public void testGetNonExistentKey() {
- Key deletedKey = api().getKey(randomString());
- assertNull(deletedKey);
- }
-
- @Test
- public void testDeleteNonExistentKey() {
- Key deletedKey = api().deleteKey(randomString());
- assertNull(deletedKey);
- }
-
- private KeysApi api() {
- return api.keysApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/KeysApiMockTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/KeysApiMockTest.java b/etcd/src/test/java/org/jclouds/etcd/features/KeysApiMockTest.java
deleted file mode 100644
index 7f650a0..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/KeysApiMockTest.java
+++ /dev/null
@@ -1,144 +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.etcd.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import org.jclouds.etcd.EtcdApi;
-import org.jclouds.etcd.EtcdApiMetadata;
-import org.jclouds.etcd.domain.keys.Key;
-import org.jclouds.etcd.internal.BaseEtcdMockTest;
-import org.testng.annotations.Test;
-
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-/**
- * Mock tests for the {@link org.jclouds.etcd.features.KeysApi} class.
- */
-@Test(groups = "unit", testName = "KeysApiMockTest")
-public class KeysApiMockTest extends BaseEtcdMockTest {
-
- public void testCreateKey() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/keys-create.json")).setResponseCode(201));
- EtcdApi etcdApi = api(server.getUrl("/"));
- KeysApi api = etcdApi.keysApi();
- try {
- Key createdKey = api.createKey("hello", "world");
- assertNotNull(createdKey);
- assertTrue(createdKey.node().key().equals("/hello"));
- assertTrue(createdKey.node().value().equals("world"));
- assertSentWithFormData(server, "PUT", "/" + EtcdApiMetadata.API_VERSION + "/keys/hello", "value=world");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testCreateKeyWithTTL() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/keys-create-ttl.json")).setResponseCode(201));
- EtcdApi etcdApi = api(server.getUrl("/"));
- KeysApi api = etcdApi.keysApi();
- try {
- Key createdKey = api.createKey("hello", "world", 5);
- assertNotNull(createdKey);
- assertNotNull(createdKey.node().expiration());
- assertTrue(createdKey.node().ttl() == 5);
- assertTrue(createdKey.node().key().equals("/hello"));
- assertTrue(createdKey.node().value().equals("world"));
- assertSentWithFormData(server, "PUT", "/" + EtcdApiMetadata.API_VERSION + "/keys/hello", "value=world&ttl=5");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testGetKey() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/keys-get.json")).setResponseCode(200));
- EtcdApi etcdApi = api(server.getUrl("/"));
- KeysApi api = etcdApi.keysApi();
- try {
- Key foundKey = api.getKey("hello");
- assertNotNull(foundKey);
- assertTrue(foundKey.node().key().equals("/hello"));
- assertTrue(foundKey.node().value().equals("world"));
- assertSent(server, "GET", "/" + EtcdApiMetadata.API_VERSION + "/keys/hello");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testGetNonExistentKey() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(
- new MockResponse().setBody(payloadFromResource("/keys-get-delete-nonexistent.json")).setResponseCode(404));
- EtcdApi etcdApi = api(server.getUrl("/"));
- KeysApi api = etcdApi.keysApi();
- try {
- Key nonExistentKey = api.getKey("NonExistentKeyToGet");
- assertNull(nonExistentKey);
- assertSent(server, "GET", "/" + EtcdApiMetadata.API_VERSION + "/keys/NonExistentKeyToGet");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testDeleteKey() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/keys-delete.json")).setResponseCode(200));
- EtcdApi etcdApi = api(server.getUrl("/"));
- KeysApi api = etcdApi.keysApi();
- try {
- Key deletedKey = api.deleteKey("hello");
- assertTrue(deletedKey.prevNode().key().equals("/hello"));
- assertTrue(deletedKey.prevNode().value().equals("world"));
- assertSent(server, "DELETE", "/" + EtcdApiMetadata.API_VERSION + "/keys/hello");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testDeleteNonExistentKey() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(
- new MockResponse().setBody(payloadFromResource("/keys-get-delete-nonexistent.json")).setResponseCode(404));
- EtcdApi etcdApi = api(server.getUrl("/"));
- KeysApi api = etcdApi.keysApi();
- try {
- Key nonExistentKey = api.deleteKey("NonExistentKeyToDelete");
- assertNull(nonExistentKey);
- assertSent(server, "DELETE", "/" + EtcdApiMetadata.API_VERSION + "/keys/NonExistentKeyToDelete");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/MembersApiLiveTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/MembersApiLiveTest.java b/etcd/src/test/java/org/jclouds/etcd/features/MembersApiLiveTest.java
deleted file mode 100644
index df8d58e..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/MembersApiLiveTest.java
+++ /dev/null
@@ -1,103 +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.etcd.features;
-
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-
-import java.util.List;
-
-import org.jclouds.etcd.BaseEtcdApiLiveTest;
-import org.jclouds.etcd.domain.members.CreateMember;
-import org.jclouds.etcd.domain.members.Member;
-import org.jclouds.rest.ResourceAlreadyExistsException;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-@Test(groups = "live", testName = "MembersApiLiveTest", singleThreaded = true)
-public class MembersApiLiveTest extends BaseEtcdApiLiveTest {
-
- private String selfID;
- private Member nonSelfMember;
- private Member addedMember;
-
- @BeforeClass
- protected void init() {
- selfID = api.statisticsApi().self().id();
- assertNotNull(selfID);
- }
-
- public void testListMembers() {
- List<Member> members = api().list();
- assertNotNull(members);
- assertTrue(members.size() > 0);
- for (Member member : members) {
- if (!member.id().equals(selfID)) {
- this.nonSelfMember = member;
- return;
- }
- }
- throw new RuntimeException("Could not find another member in cluster with different id");
- }
-
- @Test(dependsOnMethods = "testListMembers")
- public void testDeleteMember() {
- boolean successful = api().delete(nonSelfMember.id());
- assertTrue(successful);
- }
-
- @Test(dependsOnMethods = "testDeleteMember")
- public void testAddMember() {
- assertNotNull(nonSelfMember);
-
- addedMember = api().add(CreateMember.create(null, nonSelfMember.peerURLs(), null));
- assertNotNull(addedMember);
- assertTrue(addedMember.peerURLs().containsAll(nonSelfMember.peerURLs()));
- }
-
- @Test(dependsOnMethods = "testAddMember", expectedExceptions = ResourceAlreadyExistsException.class)
- public void testAddExistingMember() {
- assertNotNull(addedMember);
-
- Member existingMember = api().add(CreateMember.create(null, addedMember.peerURLs(), addedMember.clientURLs()));
- assertNull(existingMember);
- }
-
- @Test(dependsOnMethods = "testAddExistingMember", expectedExceptions = IllegalArgumentException.class)
- public void testAddMemberWithMalformedURL() {
- api().add(CreateMember.create(null, ImmutableList.of("htp:/hello/world:11bye"), null));
- }
-
- @Test(dependsOnMethods = "testAddMemberWithMalformedURL", expectedExceptions = IllegalArgumentException.class)
- public void testAddMemberWithIllegalFormat() {
- api().add(CreateMember.create(null, ImmutableList.of("http://www.google.com"), null));
- }
-
- @Test(dependsOnMethods = "testAddMemberWithIllegalFormat")
- public void testDeleteMemberNonExistentMember() {
- boolean successful = api().delete(randomString());
- assertFalse(successful);
- }
-
- private MembersApi api() {
- return api.membersApi();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/MembersApiMockTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/MembersApiMockTest.java b/etcd/src/test/java/org/jclouds/etcd/features/MembersApiMockTest.java
deleted file mode 100644
index 863e131..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/MembersApiMockTest.java
+++ /dev/null
@@ -1,168 +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.etcd.features;
-
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.assertFalse;
-
-import java.util.List;
-
-import org.jclouds.etcd.EtcdApi;
-import org.jclouds.etcd.EtcdApiMetadata;
-import org.jclouds.etcd.domain.members.CreateMember;
-import org.jclouds.etcd.domain.members.Member;
-import org.jclouds.etcd.internal.BaseEtcdMockTest;
-import org.jclouds.rest.ResourceAlreadyExistsException;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.squareup.okhttp.mockwebserver.MockResponse;
-import com.squareup.okhttp.mockwebserver.MockWebServer;
-
-/**
- * Mock tests for the {@link org.jclouds.etcd.features.MembersApi} class.
- */
-@Test(groups = "unit", testName = "MembersApiMockTest")
-public class MembersApiMockTest extends BaseEtcdMockTest {
-
- public void testListMembers() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/members.json")).setResponseCode(200));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- List<Member> members = api.list();
- assertNotNull(members);
- assertTrue(members.size() == 2);
- assertSent(server, "GET", "/" + EtcdApiMetadata.API_VERSION + "/members");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testAddMember() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody(payloadFromResource("/members-added.json")).setResponseCode(201));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- String peerURL = "http://10.0.0.10:2380";
- String clientURL = "http://10.0.0.10:2381";
- Member member = api.add(CreateMember.create(null, ImmutableList.of(peerURL), ImmutableList.of(clientURL)));
- assertNotNull(member);
- assertTrue(member.peerURLs().contains(peerURL));
- assertTrue(member.clientURLs().contains(clientURL));
- assertSent(server, "POST", "/" + EtcdApiMetadata.API_VERSION + "/members");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testAddMemberWithMalformedURL() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(
- new MockResponse().setBody(payloadFromResource("/members-add-malformed-url.json")).setResponseCode(400));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- String peerURL = "htp:/hello/world:11bye";
- api.add(CreateMember.create(null, ImmutableList.of(peerURL), null));
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testAddMemberWithIllegalFormat() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(
- new MockResponse().setBody(payloadFromResource("/members-add-illegal-format.json")).setResponseCode(400));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- String peerURL = "http://www.google.com";
- api.add(CreateMember.create(null, ImmutableList.of(peerURL), null));
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- @Test(expectedExceptions = ResourceAlreadyExistsException.class)
- public void testAddExistingMember() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(
- new MockResponse().setBody(payloadFromResource("/members-add-existent.json")).setResponseCode(409));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- String peerURL = "http://10.0.0.10:2380";
- Member member = api.add(CreateMember.create(null, ImmutableList.of(peerURL), null));
- assertNull(member);
- assertSent(server, "POST", "/" + EtcdApiMetadata.API_VERSION + "/members");
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testDeleteMember() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(new MockResponse().setBody("").setResponseCode(204));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- String memberID = "123456789";
- boolean deleted = api.delete(memberID);
- assertTrue(deleted);
- assertSent(server, "DELETE", "/" + EtcdApiMetadata.API_VERSION + "/members/" + memberID);
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-
- public void testDeleteNonExistentMember() throws Exception {
- MockWebServer server = mockEtcdJavaWebServer();
-
- server.enqueue(
- new MockResponse().setBody(payloadFromResource("/members-delete-nonexistent.json")).setResponseCode(404));
- EtcdApi etcdApi = api(server.getUrl("/"));
- MembersApi api = etcdApi.membersApi();
- try {
- String memberID = "1234567890";
- boolean deleted = api.delete(memberID);
- assertFalse(deleted);
- assertSent(server, "DELETE", "/" + EtcdApiMetadata.API_VERSION + "/members/" + memberID);
- } finally {
- etcdApi.close();
- server.shutdown();
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/1f215379/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiLiveTest.java
----------------------------------------------------------------------
diff --git a/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiLiveTest.java b/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiLiveTest.java
deleted file mode 100644
index ec955c3..0000000
--- a/etcd/src/test/java/org/jclouds/etcd/features/MiscellaneousApiLiveTest.java
+++ /dev/null
@@ -1,53 +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.etcd.features;
-
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-import org.jclouds.etcd.BaseEtcdApiLiveTest;
-import org.jclouds.etcd.domain.miscellaneous.Version;
-import org.testng.annotations.Test;
-
-@Test(groups = "live", testName = "MiscellaneousApiLiveTest")
-public class MiscellaneousApiLiveTest extends BaseEtcdApiLiveTest {
-
- private final String versionRegex = "^\\d+\\.\\d+\\.\\d+$";
-
- @Test
- public void testGetVersion() {
- Version version = api().version();
- assertNotNull(version);
- assertTrue(version.etcdServer().matches(versionRegex));
- assertTrue(version.etcdCluster().matches(versionRegex));
- }
-
- @Test
- public void testGetHealth() {
- boolean health = api().health();
- assertTrue(health);
- }
-
- @Test
- public void testGetMetrics() {
- String metrics = api().metrics();
- assertNotNull(metrics);
- }
-
- private MiscellaneousApi api() {
- return api.miscellaneousApi();
- }
-}