You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2013/06/26 00:13:44 UTC
[2/7] Rename reddwarf to trove
https://issues.apache.org/jira/browse/JCLOUDS-129
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java
new file mode 100644
index 0000000..a4ccd3a
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/features/UserApiLiveTest.java
@@ -0,0 +1,209 @@
+/*
+ * 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.openstack.trove.v1.features;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static org.testng.Assert.assertEquals;
+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 java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+
+import org.jclouds.openstack.trove.v1.domain.Instance;
+import org.jclouds.openstack.trove.v1.domain.User;
+import org.jclouds.openstack.trove.v1.internal.BaseTroveApiLiveTest;
+import org.jclouds.openstack.trove.v1.predicates.InstancePredicates;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+/**
+ * @author Zack Shoylev
+ */
+@Test(groups = "live", testName = "UserApiLiveTest", singleThreaded = true)
+public class UserApiLiveTest extends BaseTroveApiLiveTest {
+
+ // zone to instance
+ private static Map<String,List<Instance>> instancesToDelete = Maps.newHashMap();
+ // not deleting users. they will be deleted when instances are deleted
+
+ @Override
+ @BeforeClass(groups = { "integration", "live" })
+ public void setup() {
+ super.setup();
+ for (String zone : api.getConfiguredZones()) {
+ // create instances
+ List<Instance> instanceList = Lists.newArrayList();
+ InstanceApi instanceApi = api.getInstanceApiForZone(zone);
+ Instance first = instanceApi.create("1", 1, "first_user_trove_live_testing_" + zone);
+ Instance second = instanceApi.create("1", 1, "second_user_trove_live_testing_" + zone);
+ instanceList.add(first);
+ instanceList.add(second);
+ InstancePredicates.awaitAvailable(instanceApi).apply(first);
+ InstancePredicates.awaitAvailable(instanceApi).apply(second);
+ instancesToDelete.put(zone, instanceList);
+ // create users
+ User user1 = User.builder()
+ .name("user1")
+ .password(UUID.randomUUID().toString())
+ .databases(ImmutableSet.of(
+ "u1db1",
+ "u1db2")).build();
+ User user2 = User.builder()
+ .name("user2")
+ .password(UUID.randomUUID().toString())
+ .databases(ImmutableSet.of(
+ "u2db1",
+ "u2db2")).build();
+ User user3 = User.builder()
+ .name("user3")
+ .password(UUID.randomUUID().toString())
+ .host("173.203.44.122")
+ .databases(ImmutableSet.of(
+ "u3db1",
+ "u3db2")).build();
+ UserApi userApiFirst = api.getUserApiForInstanceInZone(first.getId(), zone);
+ UserApi userApiSecond = api.getUserApiForInstanceInZone(second.getId(), zone);
+ userApiFirst.create(ImmutableSet.of(user1, user2));
+ userApiSecond.create(ImmutableSet.of(user3));
+ }
+ }
+
+ @Override
+ @AfterClass(groups = { "integration", "live" })
+ public void tearDown(){
+ for (String zone : api.getConfiguredZones()) {
+ InstanceApi instanceApi = api.getInstanceApiForZone(zone);
+ for(Instance instance : instancesToDelete.get(zone)){
+ if( !instanceApi.delete(instance.getId() ) )
+ throw new RuntimeException("Could not delete a database instance after tests!");
+ }
+ }
+ super.tearDown();
+ }
+
+ private void checkUser(User user) {
+ assertNotNull(user.getName(), "Name cannot be null for " + user);
+ assertNotNull(user.getHost(), "Host cannot be null (should be '%' if default) for " + user);
+ checkArgument(!user.getDatabases().isEmpty(), "Number of databases must not be 0");
+ }
+
+ @Test
+ public void testListUsers() {
+ for (String zone : api.getConfiguredZones()) {
+ InstanceApi instanceApi = api.getInstanceApiForZone(zone);
+ assertTrue(instanceApi.list().size() >= 2);
+ for(Instance instance : instanceApi.list() ) {
+ UserApi userApi = api.getUserApiForInstanceInZone(instance.getId(), zone);
+ if(!instance.getName().contains("user_trove_live_testing"))continue;
+ assertTrue(userApi.list().size() >=1);
+ for(User user : userApi.list()){
+ checkUser(user);
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testGetUser() {
+ for (String zone : api.getConfiguredZones()) {
+ InstanceApi instanceApi = api.getInstanceApiForZone(zone);
+ assertTrue(instanceApi.list().size() >= 2);
+ for(Instance instance : instanceApi.list() ) {
+ UserApi userApi = api.getUserApiForInstanceInZone(instance.getId(), zone);
+ if(!instance.getName().contains("user_trove_live_testing"))continue;
+ assertTrue(userApi.list().size() >=1);
+ for(User user : userApi.list()){
+ User userFromGet = userApi.get(user.getIdentifier());
+ assertEquals(userFromGet.getName(), user.getName());
+ assertEquals(userFromGet.getHost(), user.getHost());
+ assertEquals(userFromGet.getIdentifier(), user.getIdentifier());
+ assertEquals(userFromGet.getDatabases(), user.getDatabases());
+ assertEquals(userFromGet, user);
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testGetDatabaseListForUser() {
+ for (String zone : api.getConfiguredZones()) {
+ InstanceApi instanceApi = api.getInstanceApiForZone(zone);
+ assertTrue(instanceApi.list().size() >= 2 );
+ for(Instance instance : instanceApi.list() ) {
+ UserApi userApi = api.getUserApiForInstanceInZone(instance.getId(), zone);
+ if(!instance.getName().contains("user_trove_live_testing"))continue;
+ assertTrue(userApi.list().size() >=1);
+ for(User user : userApi.list()){
+ assertFalse(userApi.getDatabaseList(user.getIdentifier()).isEmpty());
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testGrantAndRevokeAcccessForUser() {
+ for (String zone : api.getConfiguredZones()) {
+ InstanceApi instanceApi = api.getInstanceApiForZone(zone);
+ assertTrue(instanceApi.list().size() >= 2);
+ for(Instance instance : instanceApi.list() ) {
+ UserApi userApi = api.getUserApiForInstanceInZone(instance.getId(), zone);
+ if(!instance.getName().contains("user_trove_live_testing"))continue;
+ assertTrue(userApi.list().size() >=1);
+ for(User user : userApi.list()){
+ userApi.grant(user.getIdentifier(), "dbA");
+ userApi.grant(user.getIdentifier(), ImmutableList.of(
+ "dbB",
+ "dbC"));
+
+ Set<String> databases = userApi.getDatabaseList(user.getIdentifier()).toSet();
+ assertTrue(databases.contains("dbA"));
+ assertTrue(databases.contains("dbB"));
+ assertTrue(databases.contains("dbC"));
+
+ userApi.revoke(user.getIdentifier(), "dbA");
+ userApi.revoke(user.getIdentifier(), "dbB");
+ userApi.revoke(user.getIdentifier(), "dbC");
+
+ databases = userApi.getDatabaseList(user.getIdentifier()).toSet();
+ assertFalse(databases.contains("dbA"));
+ assertFalse(databases.contains("dbB"));
+ assertFalse(databases.contains("dbC"));
+ }
+ }
+ }
+ }
+
+ @Test
+ public void testGetUserWhenNotFound() {
+ for (String zone : api.getConfiguredZones()) {
+ String instanceId = api.getInstanceApiForZone(zone).list().iterator().next().getId();
+ UserApi userApi = api.getUserApiForInstanceInZone(instanceId, zone);
+ assertNull(userApi.get("9999"));
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiExpectTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiExpectTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiExpectTest.java
new file mode 100644
index 0000000..3c9aaa7
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiExpectTest.java
@@ -0,0 +1,27 @@
+/*
+ * 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.openstack.trove.v1.internal;
+
+import org.jclouds.openstack.trove.v1.TroveApi;
+
+/**
+ * Base class for writing Flavor Rest Api Expect tests
+ *
+ * @author Everett Toews
+ */
+public class BaseTroveApiExpectTest extends BaseTroveExpectTest<TroveApi> {
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiLiveTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiLiveTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiLiveTest.java
new file mode 100644
index 0000000..978f4ce
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveApiLiveTest.java
@@ -0,0 +1,43 @@
+/*
+ * 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.openstack.trove.v1.internal;
+
+import java.util.Properties;
+
+import org.jclouds.apis.BaseApiLiveTest;
+import org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties;
+import org.jclouds.openstack.trove.v1.TroveApi;
+
+/**
+ * Tests behavior of TroveApi
+ *
+ * @author Zack Shoylev
+ */
+public class BaseTroveApiLiveTest extends BaseApiLiveTest<TroveApi> {
+
+ public BaseTroveApiLiveTest() {
+ provider = "openstack-trove";
+ }
+
+ @Override
+ protected Properties setupProperties() {
+ Properties props = super.setupProperties();
+ setIfTestSystemPropertyPresent(props, KeystoneProperties.CREDENTIAL_TYPE);
+ setIfTestSystemPropertyPresent(props, KeystoneProperties.SERVICE_TYPE);
+ return props;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveExpectTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveExpectTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveExpectTest.java
new file mode 100644
index 0000000..b43db05
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/internal/BaseTroveExpectTest.java
@@ -0,0 +1,78 @@
+/*
+ * 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.openstack.trove.v1.internal;
+
+import javax.ws.rs.core.MediaType;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.http.HttpResponse;
+import org.jclouds.openstack.keystone.v2_0.internal.KeystoneFixture;
+import org.jclouds.rest.internal.BaseRestApiExpectTest;
+
+/**
+ * Base class for writing Nova Expect tests
+ *
+ * @author Adrian Cole
+ */
+public class BaseTroveExpectTest<T> extends BaseRestApiExpectTest<T> {
+ protected HttpRequest keystoneAuthWithUsernameAndPassword;
+ protected HttpRequest keystoneAuthWithUsernameAndPasswordAndTenantName;
+ protected HttpRequest keystoneAuthWithAccessKeyAndSecretKeyAndTenantName;
+ protected String authToken;
+ protected HttpResponse responseWithKeystoneAccess;
+ protected HttpRequest extensionsOfNovaRequest;
+ protected HttpResponse extensionsOfNovaResponse;
+ protected HttpResponse unmatchedExtensionsOfNovaResponse;
+ protected HttpRequest keystoneAuthWithAccessKeyAndSecretKeyAndTenantId;
+ protected String identityWithTenantId;
+
+ public BaseTroveExpectTest() {
+ provider = "openstack-trove";
+ keystoneAuthWithUsernameAndPassword = KeystoneFixture.INSTANCE.initialAuthWithUsernameAndPassword(identity,
+ credential);
+ keystoneAuthWithUsernameAndPasswordAndTenantName = KeystoneFixture.INSTANCE.initialAuthWithUsernameAndPasswordAndTenantName(identity,
+ credential);
+ keystoneAuthWithAccessKeyAndSecretKeyAndTenantName = KeystoneFixture.INSTANCE.initialAuthWithAccessKeyAndSecretKeyAndTenantName(identity,
+ credential);
+ keystoneAuthWithAccessKeyAndSecretKeyAndTenantId = KeystoneFixture.INSTANCE.initialAuthWithAccessKeyAndSecretKeyAndTenantId(identity,
+ credential);
+
+ authToken = KeystoneFixture.INSTANCE.getAuthToken();
+ responseWithKeystoneAccess = KeystoneFixture.INSTANCE.responseWithAccess();
+ // now, createContext arg will need tenant prefix
+ identityWithTenantId = KeystoneFixture.INSTANCE.getTenantId() + ":" + identity;
+ identity = KeystoneFixture.INSTANCE.getTenantName() + ":" + identity;
+ }
+
+ @Override
+ protected HttpRequestComparisonType compareHttpRequestAsType(HttpRequest input) {
+ return HttpRequestComparisonType.JSON;
+ }
+
+ protected HttpRequest.Builder<?> authenticatedGET() {
+ return HttpRequest.builder()
+ .method("GET")
+ .addHeader("Accept", MediaType.APPLICATION_JSON)
+ .addHeader("X-Auth-Token", authToken);
+ }
+
+ protected HttpRequest.Builder<?> authenticatedPOST() {
+ return HttpRequest.builder()
+ .method("POST")
+ .addHeader("Accept", MediaType.APPLICATION_JSON)
+ .addHeader("X-Auth-Token", authToken);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseFlavorListTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseFlavorListTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseFlavorListTest.java
new file mode 100644
index 0000000..39361cf
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseFlavorListTest.java
@@ -0,0 +1,108 @@
+/*
+ * 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.openstack.trove.v1.parse;
+
+import java.util.Set;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.core.MediaType;
+
+import org.jclouds.http.Uris;
+import org.jclouds.json.BaseSetParserTest;
+import org.jclouds.openstack.trove.v1.domain.Flavor;
+import org.jclouds.openstack.v2_0.domain.Link;
+import org.jclouds.openstack.v2_0.domain.Link.Relation;
+import org.jclouds.rest.annotations.SelectJson;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
+/**
+ *
+ * @author Zack Shoylev
+ */
+
+@Test(groups = "unit", testName = "ParseFlavorTest")
+public class ParseFlavorListTest extends BaseSetParserTest<Flavor> {
+
+ @Override
+ public String resource() {
+ return "/flavor_list.json";
+ }
+
+ @Override
+ @Consumes(MediaType.APPLICATION_JSON)
+ @SelectJson("flavors")
+ public Set<Flavor> expected() {
+ return ImmutableSet
+ .of(Flavor.builder()
+ .id(1)
+ .name("512MB Instance")
+ .ram(512)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://localhost:8778/v1.0/811050/flavors/1").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://localhost:8778/flavors/1").build() )
+ ))
+ .build(),
+ Flavor.builder()
+ .id(2)
+ .name("1GB Instance")
+ .ram(1024)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://localhost:8778/v1.0/811050/flavors/2").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://localhost:8778/flavors/2").build() )
+ ))
+ .build(),
+ Flavor.builder()
+ .id(3)
+ .name("2GB Instance")
+ .ram(2048)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://localhost:8778/v1.0/811050/flavors/3").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://localhost:8778/flavors/3").build() )
+ ))
+ .build(),
+ Flavor.builder()
+ .id(4)
+ .name("4GB Instance")
+ .ram(4096)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://localhost:8778/v1.0/811050/flavors/4").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://localhost:8778/flavors/4").build() )
+ ))
+ .build(),
+ Flavor.builder()
+ .id(5)
+ .name("8GB Instance")
+ .ram(8192)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://localhost:8778/v1.0/811050/flavors/5").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://localhost:8778/flavors/5").build() )
+ ))
+ .build(),
+ Flavor.builder()
+ .id(6)
+ .name("16GB Instance")
+ .ram(16384)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://localhost:8778/v1.0/811050/flavors/6").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://localhost:8778/flavors/6").build() )
+ ))
+ .build());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseInstanceListTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseInstanceListTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseInstanceListTest.java
new file mode 100644
index 0000000..995404e
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseInstanceListTest.java
@@ -0,0 +1,95 @@
+/*
+ * 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.openstack.trove.v1.parse;
+
+import java.util.Set;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.core.MediaType;
+
+import org.jclouds.http.Uris;
+import org.jclouds.json.BaseSetParserTest;
+import org.jclouds.openstack.trove.v1.domain.Flavor;
+import org.jclouds.openstack.trove.v1.domain.Instance;
+import org.jclouds.openstack.v2_0.domain.Link;
+import org.jclouds.openstack.v2_0.domain.Link.Relation;
+import org.jclouds.rest.annotations.SelectJson;
+import org.testng.annotations.Test;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableSet;
+
+/**
+ *
+ * @author Zack Shoylev
+ */
+
+@Test(groups = "unit", testName = "ParseInstanceTest")
+public class ParseInstanceListTest extends BaseSetParserTest<Instance> {
+
+ @Override
+ public String resource() {
+ return "/instance_list.json";
+ }
+
+ /*
+ * The instance needs to be comparable for this test to work
+ * */
+ @Override
+ @Consumes(MediaType.APPLICATION_JSON)
+ @SelectJson("instances")
+ public Set<Instance> expected() {
+ return ImmutableSet
+ .of(Instance.builder()
+ .id("098653ba-218b-47ce-936a-e0b749101f81")
+ .name("xml_rack_instance")
+ .size(2)
+ .flavor(
+ Flavor.builder()
+ .id(1)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/flavors/1").build())))
+ .build()
+ )
+ .status(Instance.Status.ACTIVE)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/098653ba-218b-47ce-936a-e0b749101f81").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/instances/098653ba-218b-47ce-936a-e0b749101f81").build() )
+ ))
+ .build(),
+ Instance.builder()
+ .id("44b277eb-39be-4921-be31-3d61b43651d7")
+ .name("json_rack_instance")
+ .size(2)
+ .flavor(
+ Flavor.builder()
+ .id(1)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/flavors/1").build())))
+ .build()
+ )
+ .status(Instance.Status.ACTIVE)
+ .links(ImmutableList.of(
+ Link.create(Relation.SELF, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7").build() ),
+ Link.create(Relation.BOOKMARK, Uris.uriBuilder("https://ord.databases.api.rackspacecloud.com/instances/44b277eb-39be-4921-be31-3d61b43651d7").build() )
+ ))
+ .build()
+ );
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseUserListTest.java
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseUserListTest.java b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseUserListTest.java
new file mode 100644
index 0000000..e62fbf4
--- /dev/null
+++ b/openstack-trove/src/test/java/org/jclouds/openstack/trove/v1/parse/ParseUserListTest.java
@@ -0,0 +1,66 @@
+/*
+ * 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.openstack.trove.v1.parse;
+
+import java.util.Set;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.core.MediaType;
+import org.jclouds.json.BaseSetParserTest;
+import org.jclouds.openstack.trove.v1.domain.User;
+import org.jclouds.rest.annotations.SelectJson;
+import org.testng.annotations.Test;
+import com.google.common.collect.ImmutableSet;
+
+/**
+ *
+ * @author Zack Shoylev
+ */
+
+@Test(groups = "unit", testName = "ParseUserTest")
+public class ParseUserListTest extends BaseSetParserTest<User> {
+
+ @Override
+ public String resource() {
+ return "/trove_user_list.json";
+ }
+
+ /*
+ * The user needs to be comparable for this test to work
+ * */
+ @Override
+ @Consumes(MediaType.APPLICATION_JSON)
+ @SelectJson("users")
+ public Set<User> expected() {
+ return ImmutableSet
+ .of(User.builder()
+ .name("dbuser1")
+ .host("%")
+ .build(),
+ User.builder()
+ .name("dbuser2")
+ .host("%")
+ .databases( ImmutableSet.of(
+ "databaseB",
+ "databaseC") )
+ .build(),
+ User.builder().name("dbuser3").host("%").build(),
+ User.builder().name("demouser").host("%").databases(
+ ImmutableSet.of("sampledb"))
+ .build()
+ );
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/access_rax_us.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/access_rax_us.json b/openstack-trove/src/test/resources/access_rax_us.json
new file mode 100644
index 0000000..b90bebc
--- /dev/null
+++ b/openstack-trove/src/test/resources/access_rax_us.json
@@ -0,0 +1,168 @@
+{
+ "access": {
+ "token": {
+ "id": "myToken",
+ "expires": "2012-09-30T17:15:32.000-05:00",
+ "tenant": {
+ "id": "717071",
+ "name": "717071"
+ }
+ },
+ "serviceCatalog": [
+ {
+ "endpoints": [
+ {
+ "tenantId": "717071",
+ "publicURL": "https://dns.api.rackspacecloud.com/v1.0/717071"
+ }
+ ],
+ "name": "cloudDNS",
+ "type": "rax:dns"
+ },
+ {
+ "endpoints": [
+ {
+ "tenantId": "717071",
+ "publicURL": "https://monitoring.api.rackspacecloud.com/v1.0/717071"
+ }
+ ],
+ "name": "cloudMonitoring",
+ "type": "rax:monitor"
+ },
+ {
+ "endpoints": [
+ {
+ "region": "DFW",
+ "tenantId": "717071",
+ "publicURL": "https://dfw.servers.api.rackspacecloud.com/v2/717071",
+ "versionInfo": "https://dfw.servers.api.rackspacecloud.com/v2",
+ "versionList": "https://dfw.servers.api.rackspacecloud.com/",
+ "versionId": "2"
+ },
+ {
+ "region": "ORD",
+ "tenantId": "717071",
+ "publicURL": "https://ord.servers.api.rackspacecloud.com/v2/717071",
+ "versionInfo": "https://ord.servers.api.rackspacecloud.com/v2",
+ "versionList": "https://ord.servers.api.rackspacecloud.com/",
+ "versionId": "2"
+ }
+ ],
+ "name": "cloudServersOpenStack",
+ "type": "compute"
+ },
+ {
+ "endpoints": [
+ {
+ "region": "ORD",
+ "tenantId": "717071",
+ "publicURL": "https://ord.loadbalancers.api.rackspacecloud.com/v1.0/717071"
+ },
+ {
+ "region": "DFW",
+ "tenantId": "717071",
+ "publicURL": "https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/717071"
+ }
+ ],
+ "name": "cloudLoadBalancers",
+ "type": "rax:load-balancer"
+ },
+ {
+ "endpoints": [
+ {
+ "region": "DFW",
+ "tenantId": "717071",
+ "publicURL": "https://dfw.databases.api.rackspacecloud.com/v1.0/717071"
+ },
+ {
+ "region": "ORD",
+ "tenantId": "717071",
+ "publicURL": "https://ord.databases.api.rackspacecloud.com/v1.0/717071"
+ },
+ {
+ "region": "SYD",
+ "tenantId": "717071",
+ "publicURL": "https://syd.databases.api.rackspacecloud.com/v1.0/717071"
+ }
+ ],
+ "name": "cloudDatabases",
+ "type": "rax:database"
+ },
+ {
+ "endpoints": [
+ {
+ "region": "DFW",
+ "tenantId": "MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9",
+ "publicURL": "https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9",
+ "internalURL": "https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9"
+ },
+ {
+ "region": "ORD",
+ "tenantId": "MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9",
+ "publicURL": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9",
+ "internalURL": "https://snet-storage101.ord1.clouddrive.com/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9"
+ }
+ ],
+ "name": "cloudFiles",
+ "type": "object-store"
+ },
+ {
+ "endpoints": [
+ {
+ "region": "DFW",
+ "tenantId": "MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9",
+ "publicURL": "https://cdn1.clouddrive.com/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9"
+ },
+ {
+ "region": "ORD",
+ "tenantId": "MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9",
+ "publicURL": "https://cdn2.clouddrive.com/v1/MossoCloudFS_5bcf396e-39dd-45ff-93a1-712b9aba90a9"
+ }
+ ],
+ "name": "cloudFilesCDN",
+ "type": "rax:object-cdn"
+ },
+ {
+ "endpoints": [
+ {
+ "tenantId": "717071",
+ "publicURL": "https://servers.api.rackspacecloud.com/v1.0/717071",
+ "versionInfo": "https://servers.api.rackspacecloud.com/v1.0",
+ "versionList": "https://servers.api.rackspacecloud.com/",
+ "versionId": "1.0"
+ }
+ ],
+ "name": "cloudServers",
+ "type": "compute"
+ },
+ {
+ "endpoints": [
+ {
+ "publicURL": "https://ord.blockstorage.api.rackspacecloud.com/v1/717071",
+ "tenantId": "717071",
+ "region": "ORD"
+ },
+ {
+ "region": "DFW",
+ "tenantId": "717071",
+ "publicURL": "https://dfw.blockstorage.api.rackspacecloud.com/v1/717071"
+ }
+ ],
+ "name": "cloudBlockStorage",
+ "type": "volume"
+ }
+ ],
+ "user": {
+ "id": "224085",
+ "roles": [
+ {
+ "id": "3",
+ "description": "User Admin Role.",
+ "name": "identity:user-admin"
+ }
+ ],
+ "name": "myUsername",
+ "RAX-AUTH:defaultRegion": "DFW"
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/database_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/database_create_request.json b/openstack-trove/src/test/resources/database_create_request.json
new file mode 100644
index 0000000..7766ac9
--- /dev/null
+++ b/openstack-trove/src/test/resources/database_create_request.json
@@ -0,0 +1,9 @@
+{
+ "databases": [
+ {
+ "character_set": "utf8",
+ "collate": "utf8_general_ci",
+ "name": "testingdb"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/database_create_simple_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/database_create_simple_request.json b/openstack-trove/src/test/resources/database_create_simple_request.json
new file mode 100644
index 0000000..02ad014
--- /dev/null
+++ b/openstack-trove/src/test/resources/database_create_simple_request.json
@@ -0,0 +1,7 @@
+{
+ "databases": [
+ {
+ "name": "testingdb"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/database_list.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/database_list.json b/openstack-trove/src/test/resources/database_list.json
new file mode 100644
index 0000000..aca6447
--- /dev/null
+++ b/openstack-trove/src/test/resources/database_list.json
@@ -0,0 +1,19 @@
+{
+ "databases": [
+ {
+ "name": "anotherdb"
+ },
+ {
+ "name": "nextround"
+ },
+ {
+ "name": "oneMoreDB"
+ },
+ {
+ "name": "sampledb"
+ },
+ {
+ "name": "testingdb"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/flavor_get.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/flavor_get.json b/openstack-trove/src/test/resources/flavor_get.json
new file mode 100644
index 0000000..ea07770
--- /dev/null
+++ b/openstack-trove/src/test/resources/flavor_get.json
@@ -0,0 +1,17 @@
+{
+ "flavor":{
+ "id":1,
+ "links":[
+ {
+ "href":"https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
+ "rel":"self"
+ },
+ {
+ "href":"https://ord.databases.api.rackspacecloud.com/flavors/1",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"512MB Instance",
+ "ram":512
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/flavor_list.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/flavor_list.json b/openstack-trove/src/test/resources/flavor_list.json
new file mode 100644
index 0000000..a9108f2
--- /dev/null
+++ b/openstack-trove/src/test/resources/flavor_list.json
@@ -0,0 +1,94 @@
+{
+ "flavors":[
+ {
+ "ram":512,
+ "id":1,
+ "links":[
+ {
+ "href":"https://localhost:8778/v1.0/811050/flavors/1",
+ "rel":"self"
+ },
+ {
+ "href":"https://localhost:8778/flavors/1",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"512MB Instance"
+ },
+ {
+ "ram":1024,
+ "id":2,
+ "links":[
+ {
+ "href":"https://localhost:8778/v1.0/811050/flavors/2",
+ "rel":"self"
+ },
+ {
+ "href":"https://localhost:8778/flavors/2",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"1GB Instance"
+ },
+ {
+ "ram":2048,
+ "id":3,
+ "links":[
+ {
+ "href":"https://localhost:8778/v1.0/811050/flavors/3",
+ "rel":"self"
+ },
+ {
+ "href":"https://localhost:8778/flavors/3",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"2GB Instance"
+ },
+ {
+ "ram":4096,
+ "id":4,
+ "links":[
+ {
+ "href":"https://localhost:8778/v1.0/811050/flavors/4",
+ "rel":"self"
+ },
+ {
+ "href":"https://localhost:8778/flavors/4",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"4GB Instance"
+ },
+ {
+ "ram":8192,
+ "id":5,
+ "links":[
+ {
+ "href":"https://localhost:8778/v1.0/811050/flavors/5",
+ "rel":"self"
+ },
+ {
+ "href":"https://localhost:8778/flavors/5",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"8GB Instance"
+ },
+ {
+ "ram":16384,
+ "id":6,
+ "links":[
+ {
+ "href":"https://localhost:8778/v1.0/811050/flavors/6",
+ "rel":"self"
+ },
+ {
+ "href":"https://localhost:8778/flavors/6",
+ "rel":"bookmark"
+ }
+ ],
+ "name":"16GB Instance"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_create.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_create.json b/openstack-trove/src/test/resources/instance_create.json
new file mode 100644
index 0000000..cfb4106
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_create.json
@@ -0,0 +1,35 @@
+{
+ "instance": {
+ "created": "2013-03-18T19:09:17",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "id": "44b277eb-39be-4921-be31-3d61b43651d7",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/instances/44b277eb-39be-4921-be31-3d61b43651d7",
+ "rel": "bookmark"
+ }
+ ],
+ "name": "json_rack_instance",
+ "status": "BUILD",
+ "updated": "2013-03-18T19:09:17",
+ "volume": {
+ "size": 2
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_create_request.json b/openstack-trove/src/test/resources/instance_create_request.json
new file mode 100644
index 0000000..607c5a1
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_create_request.json
@@ -0,0 +1,9 @@
+{
+ "instance":{
+ "name":"json_rack_instance",
+ "volume":{
+ "size":2
+ },
+ "flavorRef":"1"
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_get.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_get.json b/openstack-trove/src/test/resources/instance_get.json
new file mode 100644
index 0000000..baf8708
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_get.json
@@ -0,0 +1,37 @@
+{
+ "instance": {
+ "created": "2013-03-18T19:09:17",
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.rackspaceclouddb.com",
+ "id": "44b277eb-39be-4921-be31-3d61b43651d7",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/instances/44b277eb-39be-4921-be31-3d61b43651d7",
+ "rel": "bookmark"
+ }
+ ],
+ "name": "json_rack_instance",
+ "status": "ACTIVE",
+ "updated": "2013-03-18T19:09:17",
+ "volume": {
+ "size": 2,
+ "used": 0.16368598397821188
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_is_rooted.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_is_rooted.json b/openstack-trove/src/test/resources/instance_is_rooted.json
new file mode 100644
index 0000000..f3990b4
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_is_rooted.json
@@ -0,0 +1,3 @@
+{
+ "rootEnabled": true
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_is_rooted_false.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_is_rooted_false.json b/openstack-trove/src/test/resources/instance_is_rooted_false.json
new file mode 100644
index 0000000..04e4e6d
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_is_rooted_false.json
@@ -0,0 +1,3 @@
+{
+ "rootEnabled": false
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_list.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_list.json b/openstack-trove/src/test/resources/instance_list.json
new file mode 100644
index 0000000..c1834a2
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_list.json
@@ -0,0 +1,66 @@
+{
+ "instances": [
+ {
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "id": "098653ba-218b-47ce-936a-e0b749101f81",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/098653ba-218b-47ce-936a-e0b749101f81",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/instances/098653ba-218b-47ce-936a-e0b749101f81",
+ "rel": "bookmark"
+ }
+ ],
+ "name": "xml_rack_instance",
+ "status": "ACTIVE",
+ "volume": {
+ "size": 2
+ }
+ },
+ {
+ "flavor": {
+ "id": "1",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/flavors/1",
+ "rel": "bookmark"
+ }
+ ]
+ },
+ "id": "44b277eb-39be-4921-be31-3d61b43651d7",
+ "links": [
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7",
+ "rel": "self"
+ },
+ {
+ "href": "https://ord.databases.api.rackspacecloud.com/instances/44b277eb-39be-4921-be31-3d61b43651d7",
+ "rel": "bookmark"
+ }
+ ],
+ "name": "json_rack_instance",
+ "status": "ACTIVE",
+ "volume": {
+ "size": 2
+ }
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/instance_root.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/instance_root.json b/openstack-trove/src/test/resources/instance_root.json
new file mode 100644
index 0000000..e937b90
--- /dev/null
+++ b/openstack-trove/src/test/resources/instance_root.json
@@ -0,0 +1,6 @@
+{
+ "user": {
+ "name": "root",
+ "password": "12345"
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/logback-test.xml b/openstack-trove/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..6559c23
--- /dev/null
+++ b/openstack-trove/src/test/resources/logback-test.xml
@@ -0,0 +1,69 @@
+<?xml version="1.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.
+
+-->
+<configuration scan="false">
+ <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+ <file>target/test-data/jclouds.log</file>
+
+ <encoder>
+ <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+ </encoder>
+ </appender>
+
+ <appender name="WIREFILE" class="ch.qos.logback.core.FileAppender">
+ <file>target/test-data/jclouds-wire.log</file>
+
+ <encoder>
+ <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+ </encoder>
+ </appender>
+
+ <appender name="BLOBSTOREFILE" class="ch.qos.logback.core.FileAppender">
+ <file>target/test-data/jclouds-blobstore.log</file>
+
+ <encoder>
+ <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+ </encoder>
+ </appender>
+
+ <root>
+ <level value="warn" />
+ </root>
+
+ <logger name="org.jclouds">
+ <level value="DEBUG" />
+ <appender-ref ref="FILE" />
+ </logger>
+
+ <logger name="jclouds.wire">
+ <level value="DEBUG" />
+ <appender-ref ref="WIREFILE" />
+ </logger>
+
+ <logger name="jclouds.headers">
+ <level value="DEBUG" />
+ <appender-ref ref="WIREFILE" />
+ </logger>
+
+ <logger name="jclouds.blobstore">
+ <level value="DEBUG" />
+ <appender-ref ref="BLOBSTOREFILE" />
+ </logger>
+
+</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/logback.xml
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/logback.xml b/openstack-trove/src/test/resources/logback.xml
new file mode 100644
index 0000000..6559c23
--- /dev/null
+++ b/openstack-trove/src/test/resources/logback.xml
@@ -0,0 +1,69 @@
+<?xml version="1.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.
+
+-->
+<configuration scan="false">
+ <appender name="FILE" class="ch.qos.logback.core.FileAppender">
+ <file>target/test-data/jclouds.log</file>
+
+ <encoder>
+ <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+ </encoder>
+ </appender>
+
+ <appender name="WIREFILE" class="ch.qos.logback.core.FileAppender">
+ <file>target/test-data/jclouds-wire.log</file>
+
+ <encoder>
+ <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+ </encoder>
+ </appender>
+
+ <appender name="BLOBSTOREFILE" class="ch.qos.logback.core.FileAppender">
+ <file>target/test-data/jclouds-blobstore.log</file>
+
+ <encoder>
+ <Pattern>%d %-5p [%c] [%thread] %m%n</Pattern>
+ </encoder>
+ </appender>
+
+ <root>
+ <level value="warn" />
+ </root>
+
+ <logger name="org.jclouds">
+ <level value="DEBUG" />
+ <appender-ref ref="FILE" />
+ </logger>
+
+ <logger name="jclouds.wire">
+ <level value="DEBUG" />
+ <appender-ref ref="WIREFILE" />
+ </logger>
+
+ <logger name="jclouds.headers">
+ <level value="DEBUG" />
+ <appender-ref ref="WIREFILE" />
+ </logger>
+
+ <logger name="jclouds.blobstore">
+ <level value="DEBUG" />
+ <appender-ref ref="BLOBSTOREFILE" />
+ </logger>
+
+</configuration>
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/trove_user_list.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/trove_user_list.json b/openstack-trove/src/test/resources/trove_user_list.json
new file mode 100644
index 0000000..546df43
--- /dev/null
+++ b/openstack-trove/src/test/resources/trove_user_list.json
@@ -0,0 +1,35 @@
+{
+ "users": [
+ {
+ "databases": [],
+ "host": "%",
+ "name": "dbuser1"
+ },
+ {
+ "databases": [
+ {
+ "name": "databaseB"
+ },
+ {
+ "name": "databaseC"
+ }
+ ],
+ "host": "%",
+ "name": "dbuser2"
+ },
+ {
+ "databases": [],
+ "name": "dbuser3",
+ "host": "%"
+ },
+ {
+ "databases": [
+ {
+ "name": "sampledb"
+ }
+ ],
+ "host": "%",
+ "name": "demouser"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_create_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_create_request.json b/openstack-trove/src/test/resources/user_create_request.json
new file mode 100644
index 0000000..f9b923e
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_create_request.json
@@ -0,0 +1,35 @@
+{
+ "users":[
+ {
+ "databases":[
+ {
+ "name":"databaseA"
+ }
+ ],
+ "name":"dbuser1",
+ "password":"password"
+ },
+ {
+ "databases":[
+ {
+ "name":"databaseB"
+ },
+ {
+ "name":"databaseC"
+ }
+ ],
+ "name":"dbuser2",
+ "password":"password"
+ },
+ {
+ "databases":[
+ {
+ "name":"databaseD"
+ }
+ ],
+ "name":"dbuser3",
+ "host":"192.168.64.64",
+ "password":"password"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_create_simple_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_create_simple_request.json b/openstack-trove/src/test/resources/user_create_simple_request.json
new file mode 100644
index 0000000..921f68e
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_create_simple_request.json
@@ -0,0 +1,13 @@
+{
+ "users":[
+ {
+ "databases":[
+ {
+ "name":"databaseA"
+ }
+ ],
+ "name":"dbuser1",
+ "password":"password"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_create_with_host_simple_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_create_with_host_simple_request.json b/openstack-trove/src/test/resources/user_create_with_host_simple_request.json
new file mode 100644
index 0000000..5dc0b78
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_create_with_host_simple_request.json
@@ -0,0 +1,14 @@
+{
+ "users":[
+ {
+ "databases":[
+ {
+ "name":"databaseA"
+ }
+ ],
+ "name":"dbuser1",
+ "password":"password",
+ "host":"192.168.64.64"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_get.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_get.json b/openstack-trove/src/test/resources/user_get.json
new file mode 100644
index 0000000..478a94d
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_get.json
@@ -0,0 +1,14 @@
+{
+ "user": {
+ "name": "exampleuser",
+ "host": "%",
+ "databases": [
+ {
+ "name": "databaseA"
+ },
+ {
+ "name": "databaseB"
+ }
+ ]
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_get_withhost.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_get_withhost.json b/openstack-trove/src/test/resources/user_get_withhost.json
new file mode 100644
index 0000000..03274b6
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_get_withhost.json
@@ -0,0 +1,14 @@
+{
+ "user": {
+ "name": "exampleuser",
+ "host": "192.168.64.64",
+ "databases": [
+ {
+ "name": "databaseA"
+ },
+ {
+ "name": "databaseB"
+ }
+ ]
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_grant_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_grant_request.json b/openstack-trove/src/test/resources/user_grant_request.json
new file mode 100644
index 0000000..97a1239
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_grant_request.json
@@ -0,0 +1,10 @@
+{
+ "databases": [
+ {
+ "name": "databaseC"
+ },
+ {
+ "name": "databaseD"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_grant_simple_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_grant_simple_request.json b/openstack-trove/src/test/resources/user_grant_simple_request.json
new file mode 100644
index 0000000..5113e4f
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_grant_simple_request.json
@@ -0,0 +1,7 @@
+{
+ "databases": [
+ {
+ "name": "databaseZ"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_list_access.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_list_access.json b/openstack-trove/src/test/resources/user_list_access.json
new file mode 100644
index 0000000..c58e1fa
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_list_access.json
@@ -0,0 +1,10 @@
+{
+ "databases": [
+ {
+ "name": "databaseA"
+ },
+ {
+ "name": "databaseB"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/openstack-trove/src/test/resources/user_password_request.json
----------------------------------------------------------------------
diff --git a/openstack-trove/src/test/resources/user_password_request.json b/openstack-trove/src/test/resources/user_password_request.json
new file mode 100644
index 0000000..e42b277
--- /dev/null
+++ b/openstack-trove/src/test/resources/user_password_request.json
@@ -0,0 +1,12 @@
+{
+ "users": [
+ {
+ "name": "dbuser1",
+ "password": "newpassword"
+ },
+ {
+ "name": "dbuser2",
+ "password": "anotherpassword"
+ }
+ ]
+}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 6253977..eed889c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,7 +66,7 @@
<modules>
<module>openstack-glance</module>
<module>openstack-quantum</module>
- <module>openstack-reddwarf</module>
+ <module>openstack-trove</module>
<module>openstack-swift</module>
<module>rackspace-clouddatabases-us</module>
<module>rackspace-clouddatabases-uk</module>
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/pom.xml
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/pom.xml b/rackspace-clouddatabases-uk/pom.xml
index 82322b1..dc08876 100644
--- a/rackspace-clouddatabases-uk/pom.xml
+++ b/rackspace-clouddatabases-uk/pom.xml
@@ -25,12 +25,12 @@
<version>1.7.0-SNAPSHOT</version>
</parent>
- <!-- TODO: when out of labs, switch to org.jclouds.provider; update dependencies when RedDwarf is moved to jclouds -->
+ <!-- TODO: when out of labs, switch to org.jclouds.provider; update dependencies when Trove is moved to jclouds -->
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-clouddatabases-uk</artifactId>
<name>jclouds Rackspace Cloud Databases UK provider</name>
- <description>OpenStack RedDwarf implementation targeted to Rackspace Cloud Databases UK</description>
+ <description>OpenStack Trove implementation targeted to Rackspace Cloud Databases UK</description>
<packaging>bundle</packaging>
<properties>
@@ -57,7 +57,7 @@
</dependency>
<dependency>
<groupId>org.apache.jclouds.labs</groupId>
- <artifactId>openstack-reddwarf</artifactId>
+ <artifactId>openstack-trove</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -79,7 +79,7 @@
</dependency>
<dependency>
<groupId>org.apache.jclouds.labs</groupId>
- <artifactId>openstack-reddwarf</artifactId>
+ <artifactId>openstack-trove</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java b/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java
index 96cf9bc..dd56dfc 100644
--- a/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java
+++ b/rackspace-clouddatabases-uk/src/main/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadata.java
@@ -26,9 +26,9 @@ import java.net.URI;
import java.util.Properties;
import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule;
-import org.jclouds.openstack.reddwarf.v1.RedDwarfApiMetadata;
-import org.jclouds.openstack.reddwarf.v1.config.RedDwarfHttpApiModule;
-import org.jclouds.openstack.reddwarf.v1.config.RedDwarfParserModule;
+import org.jclouds.openstack.trove.v1.TroveApiMetadata;
+import org.jclouds.openstack.trove.v1.config.TroveHttpApiModule;
+import org.jclouds.openstack.trove.v1.config.TroveParserModule;
import org.jclouds.providers.ProviderMetadata;
import org.jclouds.providers.internal.BaseProviderMetadata;
import org.jclouds.rackspace.cloudidentity.v2_0.config.CloudIdentityAuthenticationApiModule;
@@ -76,7 +76,7 @@ public class CloudDatabasesUKProviderMetadata extends BaseProviderMetadata {
protected Builder(){
id("rackspace-clouddatabases-uk")
.name("Rackspace Clouddatabases UK")
- .apiMetadata(new RedDwarfApiMetadata().toBuilder()
+ .apiMetadata(new TroveApiMetadata().toBuilder()
.identityName("${userName}")
.credentialName("${apiKey}")
.defaultEndpoint("https://lon.api.rackspacecloud.com/v2.0/")
@@ -86,8 +86,8 @@ public class CloudDatabasesUKProviderMetadata extends BaseProviderMetadata {
.add(CloudIdentityAuthenticationApiModule.class)
.add(CloudIdentityAuthenticationModule.class)
.add(ZoneModule.class)
- .add(RedDwarfParserModule.class)
- .add(RedDwarfHttpApiModule.class).build())
+ .add(TroveParserModule.class)
+ .add(TroveHttpApiModule.class).build())
.build())
.homepage(URI.create("http://www.rackspace.com/cloud/public/databases/"))
.console(URI.create("https://mycloud.rackspace.com"))
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java
index e066993..afbfc4a 100644
--- a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java
+++ b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderMetadataExpectTest.java
@@ -20,8 +20,8 @@ import static org.testng.Assert.assertEquals;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
-import org.jclouds.openstack.reddwarf.v1.RedDwarfApi;
-import org.jclouds.openstack.reddwarf.v1.internal.BaseRedDwarfApiExpectTest;
+import org.jclouds.openstack.trove.v1.TroveApi;
+import org.jclouds.openstack.trove.v1.internal.BaseTroveApiExpectTest;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
@@ -32,7 +32,7 @@ import com.google.common.collect.ImmutableSet;
* @author Zack Shoylev
*/
@Test(groups = "unit", testName = "CloudDatabasesUKProviderMetadataExpectTest")
-public class CloudDatabasesUKProviderMetadataExpectTest extends BaseRedDwarfApiExpectTest {
+public class CloudDatabasesUKProviderMetadataExpectTest extends BaseTroveApiExpectTest {
public CloudDatabasesUKProviderMetadataExpectTest() {
this.provider = "rackspace-clouddatabases-uk";
@@ -55,7 +55,7 @@ public class CloudDatabasesUKProviderMetadataExpectTest extends BaseRedDwarfApiE
.payload(payloadFromResourceWithContentType("/access_rax_uk.json", "application/json"))
.build();
- RedDwarfApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse);
+ TroveApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse);
assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("LON"));
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderTest.java b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderTest.java
index bf0934c..a4bb2c9 100644
--- a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderTest.java
+++ b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/CloudDatabasesUKProviderTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rackspace.clouddatabases.uk;
-import org.jclouds.openstack.reddwarf.v1.RedDwarfApiMetadata;
+import org.jclouds.openstack.trove.v1.TroveApiMetadata;
import org.jclouds.providers.internal.BaseProviderMetadataTest;
import org.testng.annotations.Test;
@@ -27,6 +27,6 @@ import org.testng.annotations.Test;
public class CloudDatabasesUKProviderTest extends BaseProviderMetadataTest {
public CloudDatabasesUKProviderTest() {
- super(new CloudDatabasesUKProviderMetadata(), new RedDwarfApiMetadata());
+ super(new CloudDatabasesUKProviderMetadata(), new TroveApiMetadata());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKDatabaseApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKDatabaseApiLiveTest.java b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKDatabaseApiLiveTest.java
index 7f7ddba..294e021 100644
--- a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKDatabaseApiLiveTest.java
+++ b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKDatabaseApiLiveTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rackspace.clouddatabases.uk.features;
-import org.jclouds.openstack.reddwarf.v1.features.DatabaseApiLiveTest;
+import org.jclouds.openstack.trove.v1.features.DatabaseApiLiveTest;
import org.testng.annotations.Test;
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKFlavorApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKFlavorApiLiveTest.java b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKFlavorApiLiveTest.java
index 8d5bcef..75d0f4f 100644
--- a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKFlavorApiLiveTest.java
+++ b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKFlavorApiLiveTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rackspace.clouddatabases.uk.features;
-import org.jclouds.openstack.reddwarf.v1.features.FlavorApiLiveTest;
+import org.jclouds.openstack.trove.v1.features.FlavorApiLiveTest;
import org.testng.annotations.Test;
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKInstanceApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKInstanceApiLiveTest.java b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKInstanceApiLiveTest.java
index 21923c3..7419e18 100644
--- a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKInstanceApiLiveTest.java
+++ b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKInstanceApiLiveTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rackspace.clouddatabases.uk.features;
-import org.jclouds.openstack.reddwarf.v1.features.InstanceApiLiveTest;
+import org.jclouds.openstack.trove.v1.features.InstanceApiLiveTest;
import org.testng.annotations.Test;
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKUserApiLiveTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKUserApiLiveTest.java b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKUserApiLiveTest.java
index 22c70a2..afde455 100644
--- a/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKUserApiLiveTest.java
+++ b/rackspace-clouddatabases-uk/src/test/java/org/jclouds/rackspace/clouddatabases/uk/features/CloudDatabasesUKUserApiLiveTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rackspace.clouddatabases.uk.features;
-import org.jclouds.openstack.reddwarf.v1.features.UserApiLiveTest;
+import org.jclouds.openstack.trove.v1.features.UserApiLiveTest;
import org.testng.annotations.Test;
/**
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-us/pom.xml
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-us/pom.xml b/rackspace-clouddatabases-us/pom.xml
index 5acdc4e..8d6ab03 100644
--- a/rackspace-clouddatabases-us/pom.xml
+++ b/rackspace-clouddatabases-us/pom.xml
@@ -25,12 +25,12 @@
<version>1.7.0-SNAPSHOT</version>
</parent>
- <!-- TODO: when out of labs, switch to org.jclouds.provider; update dependencies when RedDwarf is moved to jclouds -->
+ <!-- TODO: when out of labs, switch to org.jclouds.provider; update dependencies when Trove is moved to jclouds -->
<groupId>org.apache.jclouds.provider</groupId>
<artifactId>rackspace-clouddatabases-us</artifactId>
<name>jclouds Rackspace Cloud Databases US provider</name>
- <description>OpenStack RedDwarf implementation targeted to Rackspace Cloud Databases US</description>
+ <description>OpenStack Trove implementation targeted to Rackspace Cloud Databases US</description>
<packaging>bundle</packaging>
<properties>
@@ -57,7 +57,7 @@
</dependency>
<dependency>
<groupId>org.apache.jclouds.labs</groupId>
- <artifactId>openstack-reddwarf</artifactId>
+ <artifactId>openstack-trove</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
@@ -79,7 +79,7 @@
</dependency>
<dependency>
<groupId>org.apache.jclouds.labs</groupId>
- <artifactId>openstack-reddwarf</artifactId>
+ <artifactId>openstack-trove</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java b/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java
index 8441ffd..6435fa3 100644
--- a/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java
+++ b/rackspace-clouddatabases-us/src/main/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadata.java
@@ -25,9 +25,9 @@ import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.SERV
import java.net.URI;
import java.util.Properties;
-import org.jclouds.openstack.reddwarf.v1.RedDwarfApiMetadata;
-import org.jclouds.openstack.reddwarf.v1.config.RedDwarfParserModule;
-import org.jclouds.openstack.reddwarf.v1.config.RedDwarfHttpApiModule;
+import org.jclouds.openstack.trove.v1.TroveApiMetadata;
+import org.jclouds.openstack.trove.v1.config.TroveParserModule;
+import org.jclouds.openstack.trove.v1.config.TroveHttpApiModule;
import org.jclouds.openstack.v2_0.ServiceType;
import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule;
import org.jclouds.providers.ProviderMetadata;
@@ -79,7 +79,7 @@ public class CloudDatabasesUSProviderMetadata extends BaseProviderMetadata {
protected Builder(){
id("rackspace-clouddatabases-us")
.name("Rackspace Clouddatabases US")
- .apiMetadata(new RedDwarfApiMetadata().toBuilder()
+ .apiMetadata(new TroveApiMetadata().toBuilder()
.identityName("${userName}")
.credentialName("${apiKey}")
.defaultEndpoint("https://identity.api.rackspacecloud.com/v2.0/")
@@ -89,8 +89,8 @@ public class CloudDatabasesUSProviderMetadata extends BaseProviderMetadata {
.add(CloudIdentityAuthenticationApiModule.class)
.add(CloudIdentityAuthenticationModule.class)
.add(ZoneModule.class)
- .add(RedDwarfParserModule.class)
- .add(RedDwarfHttpApiModule.class).build())
+ .add(TroveParserModule.class)
+ .add(TroveHttpApiModule.class).build())
.build())
.homepage(URI.create("http://www.rackspace.com/cloud/public/databases/"))
.console(URI.create("https://mycloud.rackspace.com"))
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java b/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java
index 7178898..ac49b61 100644
--- a/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java
+++ b/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderMetadataExpectTest.java
@@ -20,8 +20,8 @@ import static org.testng.Assert.assertEquals;
import org.jclouds.http.HttpRequest;
import org.jclouds.http.HttpResponse;
-import org.jclouds.openstack.reddwarf.v1.RedDwarfApi;
-import org.jclouds.openstack.reddwarf.v1.internal.BaseRedDwarfApiExpectTest;
+import org.jclouds.openstack.trove.v1.TroveApi;
+import org.jclouds.openstack.trove.v1.internal.BaseTroveApiExpectTest;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
@@ -32,7 +32,7 @@ import com.google.common.collect.ImmutableSet;
* @author Zack Shoylev
*/
@Test(groups = "unit", testName = "CloudDatabasesUSProviderMetadataExpectTest")
-public class CloudDatabasesUSProviderMetadataExpectTest extends BaseRedDwarfApiExpectTest {
+public class CloudDatabasesUSProviderMetadataExpectTest extends BaseTroveApiExpectTest {
public CloudDatabasesUSProviderMetadataExpectTest() {
this.provider = "rackspace-clouddatabases-us";
@@ -55,7 +55,7 @@ public class CloudDatabasesUSProviderMetadataExpectTest extends BaseRedDwarfApiE
.payload(payloadFromResourceWithContentType("/access_rax_us.json", "application/json"))
.build();
- RedDwarfApi whenRegionExists = requestSendsResponse(authenticate, authenticationResponse);
+ TroveApi whenRegionExists = requestSendsResponse(authenticate, authenticationResponse);
assertEquals(whenRegionExists.getConfiguredZones(), ImmutableSet.of("ORD", "DFW", "SYD"));
http://git-wip-us.apache.org/repos/asf/incubator-jclouds-labs-openstack/blob/0d9dd39a/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderTest.java
----------------------------------------------------------------------
diff --git a/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderTest.java b/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderTest.java
index 24255a1..e6dbbed 100644
--- a/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderTest.java
+++ b/rackspace-clouddatabases-us/src/test/java/org/jclouds/rackspace/clouddatabases/us/CloudDatabasesUSProviderTest.java
@@ -16,7 +16,7 @@
*/
package org.jclouds.rackspace.clouddatabases.us;
-import org.jclouds.openstack.reddwarf.v1.RedDwarfApiMetadata;
+import org.jclouds.openstack.trove.v1.TroveApiMetadata;
import org.jclouds.providers.internal.BaseProviderMetadataTest;
import org.testng.annotations.Test;
@@ -27,6 +27,6 @@ import org.testng.annotations.Test;
public class CloudDatabasesUSProviderTest extends BaseProviderMetadataTest {
public CloudDatabasesUSProviderTest() {
- super(new CloudDatabasesUSProviderMetadata(), new RedDwarfApiMetadata());
+ super(new CloudDatabasesUSProviderMetadata(), new TroveApiMetadata());
}
}