You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ad...@apache.org on 2014/10/12 05:38:27 UTC
[4/9] Dedupe vcloud api calls and instead expose helper to resolve
ids to hrefs. cleanup pass on javadoc.
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
index fc5a583..cf94dea 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/features/admin/UserApi.java
@@ -29,6 +29,7 @@ import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
+import org.jclouds.javax.annotation.Nullable;
import org.jclouds.rest.annotations.BinderParam;
import org.jclouds.rest.annotations.EndpointParam;
import org.jclouds.rest.annotations.Fallback;
@@ -37,114 +38,44 @@ import org.jclouds.rest.annotations.RequestFilters;
import org.jclouds.rest.binders.BindToXMLPayload;
import org.jclouds.vcloud.director.v1_5.domain.User;
import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToAdminHref;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
@RequestFilters(AddVCloudAuthorizationAndCookieToRequest.class)
public interface UserApi {
+ /** Returns the user, even if disabled, or null if not found. */
+ @GET
+ @Consumes
+ @JAXBResponseParser
+ @Fallback(NullOnNotFoundOr404.class)
+ @Nullable
+ User get(@EndpointParam URI userHref);
+
/**
* Creates or imports a user in an organization. The user could be enabled or disabled.
- *
- * <pre>
- * POST /admin/org/{id}/users
- * </pre>
- *
- * @param orgUrn
- * the urn for the org
- * @return the addd user
*/
@POST
@Path("/users")
@Consumes(USER)
@Produces(USER)
- @JAXBResponseParser User addUserToOrg(@BinderParam(BindToXMLPayload.class) User user,
- @EndpointParam(parser = URNToAdminHref.class) String orgUrn);
-
- @POST
- @Path("/users")
- @Consumes(USER)
- @Produces(USER)
@JAXBResponseParser
User addUserToOrg(@BinderParam(BindToXMLPayload.class) User user, @EndpointParam URI orgAdminHref);
- /**
- * Retrieves a user. This entity could be enabled or disabled.
- *
- * <pre>
- * GET /admin/user/{id}
- * </pre>
- *
- * @param userUrn
- * the reference for the user
- * @return a user
- */
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- User get(@EndpointParam(parser = URNToHref.class) String userUrn);
-
- @GET
- @Consumes
- @JAXBResponseParser
- @Fallback(NullOnNotFoundOr404.class)
- User get(@EndpointParam URI userHref);
/**
* Modifies a user. The user object could be enabled or disabled. Note: the lock status cannot be
- * changed using this call: use unlockUser.
- *
- * <pre>
- * PUT /admin/user/{id}
- * </pre>
- *
- * @param userUrn
- * the reference for the user
- * @return the modified user
+ * changed using this call: use {@link #unlock(URI)}.
*/
@PUT
@Consumes(USER)
@Produces(USER)
@JAXBResponseParser
- User edit(@EndpointParam(parser = URNToHref.class) String userUrn, @BinderParam(BindToXMLPayload.class) User user);
-
- @PUT
- @Consumes(USER)
- @Produces(USER)
- @JAXBResponseParser
User edit(@EndpointParam URI userHref, @BinderParam(BindToXMLPayload.class) User user);
- /**
- * Deletes a user. Enabled and disabled users could be removed.
- *
- * <pre>
- * DELETE /admin/catalog/{id}
- * </pre>
- */
- @DELETE
- @Consumes
- @JAXBResponseParser
- void remove(@EndpointParam(parser = URNToHref.class) String userUrn);
-
@DELETE
@Consumes
@JAXBResponseParser
void remove(@EndpointParam URI userHref);
- /**
- * Unlocks a user.
- *
- * <pre>
- * POST /admin/user/{id}/action/unlock
- * </pre>
- */
- @POST
- @Path("/action/unlock")
- @Consumes
- @JAXBResponseParser
- void unlock(@EndpointParam(parser = URNToHref.class) String userUrn);
-
@POST
@Path("/action/unlock")
@Consumes
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToAdminHref.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToAdminHref.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToAdminHref.java
new file mode 100644
index 0000000..8b969ac
--- /dev/null
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToAdminHref.java
@@ -0,0 +1,63 @@
+/*
+ * 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.vcloud.director.v1_5.functions;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import org.jclouds.vcloud.director.v1_5.domain.Entity;
+import org.jclouds.vcloud.director.v1_5.domain.Link;
+
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.cache.LoadingCache;
+import com.google.common.collect.Iterables;
+
+/**
+ * Resolves URN to its Admin HREF via the entity Resolver
+ */
+@Singleton
+public final class IdToAdminHref implements Function<String, URI> {
+ private final LoadingCache<String, Entity> resolveEntityCache;
+
+ @Inject
+ public IdToAdminHref(LoadingCache<String, Entity> resolveEntityCache) {
+ this.resolveEntityCache = checkNotNull(resolveEntityCache, "resolveEntityCache");
+ }
+
+ @Override
+ public URI apply(String from) {
+ checkNotNull(from, "urn");
+ Entity entity = resolveEntityCache.getUnchecked(from.toString());
+ Optional<Link> link = Iterables.tryFind(entity.getLinks(), typeContainsAdmin);
+ checkArgument(link.isPresent(), "no admin link found for entity %s", entity);
+ return link.get().getHref();
+ }
+
+ private static final Predicate<Link> typeContainsAdmin = new Predicate<Link>() {
+ @Override
+ public boolean apply(Link in) {
+ return in.getType().indexOf(".admin.") != -1;
+ }
+ };
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToHref.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToHref.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToHref.java
new file mode 100644
index 0000000..790e1ed
--- /dev/null
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/IdToHref.java
@@ -0,0 +1,51 @@
+/*
+ * 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.vcloud.director.v1_5.functions;
+
+import static com.google.common.base.Preconditions.checkArgument;
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.collect.Iterables.get;
+
+import java.net.URI;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
+import org.jclouds.vcloud.director.v1_5.domain.Entity;
+
+import com.google.common.base.Function;
+import com.google.common.cache.LoadingCache;
+
+/**
+ * Resolves URN to its HREF via the entity Resolver, caching to avoid excess network requests.
+ */
+@Singleton
+public final class IdToHref implements Function<String, URI> {
+ private final LoadingCache<String, Entity> resolveEntityCache;
+
+ @Inject
+ public IdToHref(LoadingCache<String, Entity> resolveEntityCache) {
+ this.resolveEntityCache = checkNotNull(resolveEntityCache, "resolveEntityCache");
+ }
+
+ @Override
+ public URI apply(String urn) {
+ Entity entity = resolveEntityCache.getUnchecked(checkNotNull(urn, "urn"));
+ checkArgument(entity.getLinks().size() > 0, "no links found for entity %s", entity);
+ return get(entity.getLinks(), 0).getHref();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/SectionForVApp.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/SectionForVApp.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/SectionForVApp.java
index b7937f8..ef48233 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/SectionForVApp.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/SectionForVApp.java
@@ -17,11 +17,11 @@
package org.jclouds.vcloud.director.v1_5.functions;
import org.jclouds.dmtf.ovf.SectionType;
-import org.jclouds.vcloud.director.v1_5.domain.AbstractVAppType;
+import org.jclouds.vcloud.director.v1_5.domain.AbstractVApp;
import com.google.common.base.Function;
-public class SectionForVApp<S extends SectionType> implements Function<AbstractVAppType, S> {
+public class SectionForVApp<S extends SectionType> implements Function<AbstractVApp, S> {
private final Class<? extends SectionType> sectionType;
@@ -31,7 +31,7 @@ public class SectionForVApp<S extends SectionType> implements Function<AbstractV
@SuppressWarnings("unchecked")
@Override
- public S apply(AbstractVAppType from) {
+ public S apply(AbstractVApp from) {
for (SectionType section : from.getSections()) {
if (sectionType.isAssignableFrom(section.getClass())) {
return (S)section;
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToAdminHref.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToAdminHref.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToAdminHref.java
deleted file mode 100644
index b5fed26..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToAdminHref.java
+++ /dev/null
@@ -1,64 +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.vcloud.director.v1_5.functions;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.vcloud.director.v1_5.domain.Entity;
-import org.jclouds.vcloud.director.v1_5.domain.Link;
-
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.base.Predicate;
-import com.google.common.cache.LoadingCache;
-import com.google.common.collect.Iterables;
-
-/**
- * Resolves URN to its Admin HREF via the entity Resolver
- */
-@Singleton
-public final class URNToAdminHref implements Function<Object, URI> {
- private final LoadingCache<String, Entity> resolveEntityCache;
-
- @Inject
- public URNToAdminHref(LoadingCache<String, Entity> resolveEntityCache) {
- this.resolveEntityCache = checkNotNull(resolveEntityCache, "resolveEntityCache");
- }
-
- @Override
- public URI apply(@Nullable Object from) {
- checkArgument(checkNotNull(from, "urn") instanceof String, "urn is a String argument");
- Entity entity = resolveEntityCache.getUnchecked(from.toString());
- Optional<Link> link = Iterables.tryFind(entity.getLinks(), typeContainsAdmin);
- checkArgument(link.isPresent(), "no admin link found for entity %s", entity);
- return link.get().getHref();
- }
-
- private static final Predicate<Link> typeContainsAdmin = new Predicate<Link>() {
- @Override
- public boolean apply(Link in) {
- return in.getType().indexOf(".admin.") != -1;
- }
- };
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToHref.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToHref.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToHref.java
deleted file mode 100644
index bf48ba1..0000000
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/functions/URNToHref.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.vcloud.director.v1_5.functions;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Iterables.get;
-
-import java.net.URI;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.vcloud.director.v1_5.domain.Entity;
-
-import com.google.common.base.Function;
-import com.google.common.cache.LoadingCache;
-
-/**
- * Resolves URN to its HREF via the entity Resolver
- */
-@Singleton
-public final class URNToHref implements Function<Object, URI> {
- private final LoadingCache<String, Entity> resolveEntityCache;
-
- @Inject
- public URNToHref(LoadingCache<String, Entity> resolveEntityCache) {
- this.resolveEntityCache = checkNotNull(resolveEntityCache, "resolveEntityCache");
- }
-
- @Override
- public URI apply(@Nullable Object from) {
- checkArgument(checkNotNull(from, "urn") instanceof String, "urn is a String argument");
- Entity entity = resolveEntityCache.getUnchecked(from.toString());
- checkArgument(entity.getLinks().size() > 0, "no links found for entity %s", entity);
- return get(entity.getLinks(), 0).getHref();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
index a417597..1d15f40 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/internal/VCloudDirectorContextImpl.java
@@ -16,6 +16,8 @@
*/
package org.jclouds.vcloud.director.v1_5.internal;
+import java.net.URI;
+
import javax.inject.Inject;
import javax.inject.Singleton;
@@ -29,8 +31,11 @@ import org.jclouds.rest.Utils;
import org.jclouds.rest.internal.ApiContextImpl;
import org.jclouds.vcloud.director.v1_5.VCloudDirectorContext;
import org.jclouds.vcloud.director.v1_5.admin.VCloudDirectorAdminApi;
+import org.jclouds.vcloud.director.v1_5.functions.IdToAdminHref;
+import org.jclouds.vcloud.director.v1_5.functions.IdToHref;
import org.jclouds.vcloud.director.v1_5.user.VCloudDirectorApi;
+import com.google.common.base.Function;
import com.google.common.base.Supplier;
import com.google.inject.Injector;
import com.google.inject.TypeLiteral;
@@ -38,17 +43,29 @@ import com.google.inject.TypeLiteral;
@Singleton
public class VCloudDirectorContextImpl extends ApiContextImpl<VCloudDirectorApi> implements VCloudDirectorContext {
private final ApiContext<VCloudDirectorAdminApi> adminContext;
+ private final Function<String, URI> idToHref;
+ private final Function<String, URI> idToAdminHref;
- @Inject
- VCloudDirectorContextImpl(@Name String name, ProviderMetadata providerMetadata,
+ @Inject VCloudDirectorContextImpl(@Name String name, ProviderMetadata providerMetadata,
@Provider Supplier<Credentials> creds, Utils utils, Closer closer, Injector injector,
- ApiContext<VCloudDirectorAdminApi> adminContext) {
+ ApiContext<VCloudDirectorAdminApi> adminContext, IdToHref idToHref, IdToAdminHref idToAdminHref) {
super(name, providerMetadata, creds, utils, closer, injector, TypeLiteral.get(VCloudDirectorApi.class));
this.adminContext = adminContext;
+ this.idToHref = idToHref;
+ this.idToAdminHref = idToAdminHref;
+
}
-
+
@Override
public ApiContext<VCloudDirectorAdminApi> getAdminContext() {
return adminContext;
}
+
+ @Override public URI resolveIdToHref(String id) {
+ return idToHref.apply(id);
+ }
+
+ @Override public URI resolveIdToAdminHref(String adminId) {
+ return idToAdminHref.apply(adminId);
+ }
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
index a4f98d9..85bb25f 100644
--- a/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
+++ b/vcloud-director/src/main/java/org/jclouds/vcloud/director/v1_5/user/VCloudDirectorApi.java
@@ -46,7 +46,6 @@ import org.jclouds.vcloud.director.v1_5.features.VAppTemplateApi;
import org.jclouds.vcloud.director.v1_5.features.VdcApi;
import org.jclouds.vcloud.director.v1_5.features.VmApi;
import org.jclouds.vcloud.director.v1_5.filters.AddVCloudAuthorizationAndCookieToRequest;
-import org.jclouds.vcloud.director.v1_5.functions.URNToHref;
import com.google.inject.Provides;
@@ -138,12 +137,6 @@ public interface VCloudDirectorApi extends Closeable {
*/
@Delegate
VmApi getVmApi();
-
- /**
- * @return synchronous access to {@link Metadata} features
- */
- @Delegate
- MetadataApi getMetadataApi(@EndpointParam(parser = URNToHref.class) String urn);
@Delegate
MetadataApi getMetadataApi(@EndpointParam URI href);
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/AbstractVAppApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/AbstractVAppApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/AbstractVAppApiLiveTest.java
index eff236e..9ecd55a 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/AbstractVAppApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/AbstractVAppApiLiveTest.java
@@ -28,6 +28,7 @@ import static org.testng.Assert.assertTrue;
import java.io.IOException;
import java.math.BigInteger;
+import java.net.URI;
import java.util.List;
import java.util.Set;
@@ -35,7 +36,7 @@ import org.jclouds.dmtf.cim.CimBoolean;
import org.jclouds.dmtf.cim.CimString;
import org.jclouds.dmtf.cim.CimUnsignedInt;
import org.jclouds.dmtf.cim.CimUnsignedLong;
-import org.jclouds.vcloud.director.v1_5.domain.AbstractVAppType;
+import org.jclouds.vcloud.director.v1_5.domain.AbstractVApp;
import org.jclouds.vcloud.director.v1_5.domain.RasdItemsList;
import org.jclouds.vcloud.director.v1_5.domain.Reference;
import org.jclouds.vcloud.director.v1_5.domain.ResourceEntity.Status;
@@ -46,8 +47,8 @@ import org.jclouds.vcloud.director.v1_5.domain.Vdc;
import org.jclouds.vcloud.director.v1_5.domain.Vm;
import org.jclouds.vcloud.director.v1_5.domain.dmtf.RasdItem;
import org.jclouds.vcloud.director.v1_5.domain.network.NetworkConnection;
-import org.jclouds.vcloud.director.v1_5.domain.network.VAppNetworkConfiguration;
import org.jclouds.vcloud.director.v1_5.domain.network.NetworkConnection.IpAddressAllocationMode;
+import org.jclouds.vcloud.director.v1_5.domain.network.VAppNetworkConfiguration;
import org.jclouds.vcloud.director.v1_5.domain.params.UndeployVAppParams;
import org.jclouds.vcloud.director.v1_5.domain.section.GuestCustomizationSection;
import org.jclouds.vcloud.director.v1_5.domain.section.NetworkConnectionSection;
@@ -103,8 +104,8 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
protected Vm vm;
protected VApp vApp;
protected VAppTemplate vAppTemplate;
- protected String vmUrn;
- protected String vAppUrn;
+ protected String vmId;
+ protected String vAppId;
/**
* Retrieves the required apis from the REST API context
@@ -133,35 +134,35 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
vdc = lazyGetVdc();
// Get the configured VAppTemplate for the tests
- vAppTemplate = vAppTemplateApi.get(vAppTemplateUrn);
+ vAppTemplate = vAppTemplateApi.get(context.resolveIdToHref(vAppTemplateId));
assertNotNull(vAppTemplate, String.format(ENTITY_NON_NULL, VAPP_TEMPLATE));
// Instantiate a new VApp
VApp vAppInstantiated = instantiateVApp();
assertNotNull(vAppInstantiated, String.format(ENTITY_NON_NULL, VAPP));
- vAppUrn = vAppInstantiated.getId();
+ vAppId = vAppInstantiated.getId();
// Wait for the task to complete
Task instantiateTask = Iterables.getOnlyElement(vAppInstantiated.getTasks());
assertTrue(retryTaskSuccessLong.apply(instantiateTask), String.format(TASK_COMPLETE_TIMELY, "instantiateTask"));
// Get the instantiated VApp
- vApp = vAppApi.get(vAppUrn);
+ vApp = vAppApi.get(vApp.getHref());
// Get the Vm
List<Vm> vms = vApp.getChildren().getVms();
vm = Iterables.getOnlyElement(vms);
- vmUrn = vm.getId();
+ vmId = vm.getId();
assertFalse(vms.isEmpty(), "The VApp must have a Vm");
}
- protected void getGuestCustomizationSection(final Function<String, GuestCustomizationSection> getGuestCustomizationSection) {
+ protected void getGuestCustomizationSection(final Function<URI, GuestCustomizationSection> getGuestCustomizationSection) {
// Get URI for child VM
- String vmUrn = Iterables.getOnlyElement(vApp.getChildren().getVms()).getId();
+ URI vmHref = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
// The method under test
try {
- GuestCustomizationSection section = getGuestCustomizationSection.apply(vmUrn);
+ GuestCustomizationSection section = getGuestCustomizationSection.apply(vmHref);
// Check the retrieved object is well formed
checkGuestCustomizationSection(section);
@@ -170,13 +171,13 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
}
}
- protected void getNetworkConnectionSection(final Function<String, NetworkConnectionSection> getNetworkConnectionSection) {
+ protected void getNetworkConnectionSection(final Function<URI, NetworkConnectionSection> getNetworkConnectionSection) {
// Get URI for child VM
- String vmUrn = Iterables.getOnlyElement(vApp.getChildren().getVms()).getId();
+ URI vmHref = Iterables.getOnlyElement(vApp.getChildren().getVms()).getHref();
// The method under test
try {
- NetworkConnectionSection section = getNetworkConnectionSection.apply(vmUrn);
+ NetworkConnectionSection section = getNetworkConnectionSection.apply(vmHref);
// Check the retrieved object is well formed
checkNetworkConnectionSection(section);
@@ -187,7 +188,7 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
@AfterClass(alwaysRun = true, description = "Cleans up the environment by deleting addd VApps")
protected void cleanUpEnvironment() {
- vdc = vdcApi.get(vdcUrn); // Refresh
+ vdc = vdcApi.get(context.resolveIdToHref(vdcId)); // Refresh
// Find references in the Vdc with the VApp type and in the list of instantiated VApp names
Iterable<Reference> vApps = Iterables.filter(vdc.getResourceEntities(),
@@ -244,14 +245,14 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Power on a {@link VApp}.
*/
- protected VApp powerOnVApp(String vAppUrn) {
- VApp test = vAppApi.get(vAppUrn);
+ protected VApp powerOnVApp(URI vAppHref) {
+ VApp test = vAppApi.get(vAppHref);
Status status = test.getStatus();
if (status != Status.POWERED_ON) {
- Task powerOn = vAppApi.powerOn(vAppUrn);
+ Task powerOn = vAppApi.powerOn(vAppHref);
assertTaskSucceedsLong(powerOn);
}
- test = vAppApi.get(vAppUrn);
+ test = vAppApi.get(vAppHref);
assertStatus(VAPP, test, Status.POWERED_ON);
return test;
}
@@ -259,14 +260,14 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Power on a {@link Vm}.
*/
- protected Vm powerOnVm(String vmUrn) {
- Vm test = vmApi.get(vmUrn);
+ protected Vm powerOnVm(URI vmHref) {
+ Vm test = vmApi.get(vmHref);
Status status = test.getStatus();
if (status != Status.POWERED_ON) {
- Task powerOn = vmApi.powerOn(vmUrn);
+ Task powerOn = vmApi.powerOn(vmHref);
assertTaskSucceedsLong(powerOn);
}
- test = vmApi.get(vmUrn);
+ test = vmApi.get(vmHref);
assertStatus(VM, test, Status.POWERED_ON);
return test;
}
@@ -274,14 +275,14 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Power off a {@link VApp}.
*/
- protected VApp powerOffVApp(String vAppUrn) {
- VApp test = vAppApi.get(vAppUrn);
+ protected VApp powerOffVApp(URI vAppHref) {
+ VApp test = vAppApi.get(vAppHref);
Status status = test.getStatus();
if (status != Status.POWERED_OFF) {
- Task powerOff = vAppApi.powerOff(vAppUrn);
+ Task powerOff = vAppApi.powerOff(vAppHref);
assertTaskSucceedsLong(powerOff);
}
- test = vAppApi.get(vAppUrn);
+ test = vAppApi.get(vAppHref);
assertStatus(VAPP, test, Status.POWERED_OFF);
return test;
}
@@ -289,15 +290,15 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Power off a {@link Vm}.
*/
- protected Vm powerOffVm(String vmUrn) {
- Vm test = vmApi.get(vmUrn);
+ protected Vm powerOffVm(URI vmHref) {
+ Vm test = vmApi.get(vmHref);
Status status = test.getStatus();
if (status != Status.POWERED_OFF || test.isDeployed()) {
UndeployVAppParams undeployParams = UndeployVAppParams.builder().build();
- Task shutdownVapp = vmApi.undeploy(vmUrn, undeployParams);
+ Task shutdownVapp = vmApi.undeploy(vmHref, undeployParams);
assertTaskSucceedsLong(shutdownVapp);
}
- test = vmApi.get(vmUrn);
+ test = vmApi.get(vmHref);
assertStatus(VM, test, Status.POWERED_OFF);
return test;
}
@@ -305,14 +306,14 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Suspend a {@link VApp}.
*/
- protected VApp suspendVApp(String vAppUrn) {
- VApp test = vAppApi.get(vAppUrn);
+ protected VApp suspendVApp(URI vAppHref) {
+ VApp test = vAppApi.get(vAppHref);
Status status = test.getStatus();
if (status != Status.SUSPENDED) {
- Task suspend = vAppApi.suspend(vAppUrn);
+ Task suspend = vAppApi.suspend(vAppHref);
assertTaskSucceedsLong(suspend);
}
- test = vAppApi.get(vAppUrn);
+ test = vAppApi.get(vAppHref);
assertStatus(VAPP, test, Status.SUSPENDED);
return test;
}
@@ -320,14 +321,14 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Suspend a {@link Vm}.
*/
- protected Vm suspendVm(String vmUrn) {
- Vm test = vmApi.get(vmUrn);
+ protected Vm suspendVm(URI vmHref) {
+ Vm test = vmApi.get(vmHref);
Status status = test.getStatus();
if (status != Status.SUSPENDED) {
- Task suspend = vmApi.suspend(vmUrn);
+ Task suspend = vmApi.suspend(vmHref);
assertTaskSucceedsLong(suspend);
}
- test = vmApi.get(vmUrn);
+ test = vmApi.get(vmHref);
assertStatus(VM, test, Status.SUSPENDED);
return test;
}
@@ -335,30 +336,26 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
/**
* Check the {@link VApp}s current status.
*/
- protected void assertVAppStatus(final String vAppUrn, final Status status) {
- VApp testVApp = vAppApi.get(vAppUrn);
+ protected void assertVAppStatus(URI vAppHref, final Status status) {
+ VApp testVApp = vAppApi.get(vAppHref);
assertStatus(VAPP, testVApp, status);
}
/**
* Check the {@link Vm}s current status.
*/
- protected void assertVmStatus(String vmUrn, final Status status) {
- Vm testVm = vmApi.get(vmUrn);
+ protected void assertVmStatus(URI vmHref, final Status status) {
+ Vm testVm = vmApi.get(vmHref);
assertStatus(VM, testVm, status);
}
/**
* Check a {@link VApp} or {@link Vm}s status.
*/
- protected static void assertStatus(final String type, final AbstractVAppType testVApp, final Status status) {
+ protected static void assertStatus(final String type, final AbstractVApp testVApp, final Status status) {
assertEquals(testVApp.getStatus(), status, String.format(OBJ_FIELD_EQ, type, "status", status.toString(), testVApp.getStatus().toString()));
}
- /**
- * Marshals a JAXB annotated object into XML. The XML is output using
- * {@link org.jclouds.logging.Logger#debug(String)}
- */
protected void debug(final Object object) {
JAXBParser parser = new JAXBParser("true");
try {
@@ -372,7 +369,7 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
}
protected VAppNetworkConfiguration getVAppNetworkConfig(VApp vApp) {
- Set<VAppNetworkConfiguration> vAppNetworkConfigs = vAppApi.getNetworkConfigSection(vApp.getId()).getNetworkConfigs();
+ Set<VAppNetworkConfiguration> vAppNetworkConfigs = vAppApi.getNetworkConfigSection(vApp.getHref()).getNetworkConfigs();
return Iterables.tryFind(vAppNetworkConfigs, Predicates.notNull()).orNull();
}
@@ -385,16 +382,16 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
}
protected Set<NetworkConnection> listNetworkConnections(Vm vm) {
- return vmApi.getNetworkConnectionSection(vm.getId()).getNetworkConnections();
+ return vmApi.getNetworkConnectionSection(vm.getHref()).getNetworkConnections();
}
protected Set<VAppNetworkConfiguration> listVappNetworkConfigurations(VApp vApp) {
- Set<VAppNetworkConfiguration> vAppNetworkConfigs = vAppApi.getNetworkConfigSection(vApp.getId()).getNetworkConfigs();
+ Set<VAppNetworkConfiguration> vAppNetworkConfigs = vAppApi.getNetworkConfigSection(vApp.getHref()).getNetworkConfigs();
return vAppNetworkConfigs;
}
protected void attachVmToVAppNetwork(Vm vm, String vAppNetworkName) {
- Set<NetworkConnection> networkConnections = vmApi.getNetworkConnectionSection(vm.getId())
+ Set<NetworkConnection> networkConnections = vmApi.getNetworkConnectionSection(vm.getHref())
.getNetworkConnections();
NetworkConnectionSection section = NetworkConnectionSection.builder()
@@ -412,7 +409,7 @@ public abstract class AbstractVAppApiLiveTest extends BaseVCloudDirectorApiLiveT
section = section.toBuilder().networkConnection(newNetworkConnection).build();
}
- Task configureNetwork = vmApi.editNetworkConnectionSection(vm.getId(), section);
+ Task configureNetwork = vmApi.editNetworkConnectionSection(vm.getHref(), section);
assertTaskSucceedsLong(configureNetwork);
}
}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java
index 1e84eb6..8dd2080 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/domain/Checks.java
@@ -68,7 +68,7 @@ import org.jclouds.vcloud.director.v1_5.domain.network.Network;
import org.jclouds.vcloud.director.v1_5.domain.network.NetworkConfiguration;
import org.jclouds.vcloud.director.v1_5.domain.network.NetworkConnection;
import org.jclouds.vcloud.director.v1_5.domain.network.NetworkFeatures;
-import org.jclouds.vcloud.director.v1_5.domain.network.NetworkServiceType;
+import org.jclouds.vcloud.director.v1_5.domain.network.NetworkService;
import org.jclouds.vcloud.director.v1_5.domain.network.RouterInfo;
import org.jclouds.vcloud.director.v1_5.domain.network.SyslogServerSettings;
import org.jclouds.vcloud.director.v1_5.domain.network.VAppNetworkConfiguration;
@@ -89,8 +89,8 @@ import org.jclouds.vcloud.director.v1_5.domain.org.OrgPasswordPolicySettings;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgSettings;
import org.jclouds.vcloud.director.v1_5.domain.org.OrgVAppTemplateLeaseSettings;
import org.jclouds.vcloud.director.v1_5.domain.params.ControlAccessParams;
-import org.jclouds.vcloud.director.v1_5.domain.query.ContainerType;
-import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecordType;
+import org.jclouds.vcloud.director.v1_5.domain.query.Container;
+import org.jclouds.vcloud.director.v1_5.domain.query.QueryResultRecord;
import org.jclouds.vcloud.director.v1_5.domain.section.CustomizationSection;
import org.jclouds.vcloud.director.v1_5.domain.section.GuestCustomizationSection;
import org.jclouds.vcloud.director.v1_5.domain.section.LeaseSettingsSection;
@@ -448,7 +448,7 @@ public class Checks {
public static void checkNetworkFeatures(NetworkFeatures features) {
// Check optional fields
if (features.getNetworkServices() != null) {
- for (NetworkServiceType<?> service : features.getNetworkServices()) {
+ for (NetworkService<?> service : features.getNetworkServices()) {
checkNetworkService(service);
}
}
@@ -471,7 +471,7 @@ public class Checks {
checkIpAddress(routerInfo.getExternalIp());
}
- public static void checkNetworkService(NetworkServiceType service) {
+ public static void checkNetworkService(NetworkService service) {
// NOTE isEnabled cannot be checked
}
@@ -531,7 +531,7 @@ public class Checks {
checkCapacityType(capacityWithUsage);
}
- public static void checkCapacityType(CapacityType<?> capacity) {
+ public static void checkCapacityType(Capacity<?> capacity) {
// Check required fields
assertNotNull(capacity.getUnits(), "The unit attribute of a CapacityWithUsage must be set");
@@ -632,17 +632,17 @@ public class Checks {
}
}
- public static void checkAbstractVAppType(AbstractVAppType abstractVAppType) {
+ public static void checkAbstractVAppType(AbstractVApp abstractVApp) {
// Check optional fields
- Reference vAppParent = abstractVAppType.getVAppParent();
+ Reference vAppParent = abstractVApp.getVAppParent();
if (vAppParent != null) checkReferenceType(vAppParent);
// NOTE deployed cannot be checked
- for (SectionType section : abstractVAppType.getSections()) {
+ for (SectionType section : abstractVApp.getSections()) {
checkSectionType(section);
}
// Check parent type
- checkResourceEntityType(abstractVAppType);
+ checkResourceEntityType(abstractVApp);
}
public static void checkVAppTemplate(VAppTemplate template) {
@@ -1452,7 +1452,7 @@ public class Checks {
checkEntityType(vdc);
}
- public static void checkQueryResultRecord(QueryResultRecordType record) {
+ public static void checkQueryResultRecord(QueryResultRecord record) {
checkHref(record.getHref());
if (record.getLinks() != null) {
for (Link link : record.getLinks()) {
@@ -1474,7 +1474,7 @@ public class Checks {
checkContainerType(references);
}
- public static void checkContainerType(ContainerType container) {
+ public static void checkContainerType(Container container) {
// optional
// NOTE name can't be checked
if (container.getPage() != null) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiExpectTest.java
index 224d268..be8e669 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiExpectTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiExpectTest.java
@@ -16,10 +16,8 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ADMIN_CATALOG;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CATALOG;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.CATALOG_ITEM;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ENTITY;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.METADATA;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.METADATA_VALUE;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.TASK;
@@ -44,9 +42,6 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.net.HttpHeaders;
-/**
- * Test the {@link CatalogApi} by observing its side effects.
- */
@Test(groups = { "unit", "user" }, singleThreaded = true, testName = "CatalogApiExpectTest")
public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
static String catalog = "7212e451-76e1-4631-b2de-ba1dfd8080e4";
@@ -71,35 +66,7 @@ public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, get, getResponse);
assertEquals(api.getCatalogApi().get(catalogHref), catalog());
}
-
- HttpRequest resolveCatalog = HttpRequest.builder()
- .method("GET")
- .endpoint(endpoint + "/entity/" + catalogUrn)
- .addHeader("Accept", "*/*")
- .addHeader("x-vcloud-authorization", token)
- .addHeader(HttpHeaders.COOKIE, "vcloud-token=" + token)
- .build();
-
- String catalogEntity = asString(createXMLBuilder("Entity").a("xmlns", "http://www.vmware.com/vcloud/v1.5")
- .a("name", catalogUrn)
- .a("id", catalogUrn)
- .a("type", ENTITY)
- .a("href", endpoint + "/entity/" + catalogUrn)
- .e("Link").a("rel", "alternate").a("type", CATALOG).a("href", catalogHref.toString()).up()
- // TODO: remove this when VCloudDirectorApiExpectTest no longer inherits from VCloudDirectorAdminApiExpectTest
- .e("Link").a("rel", "alternate").a("type", ADMIN_CATALOG).a("href", catalogHref.toString()).up());
-
- HttpResponse resolveCatalogResponse = HttpResponse.builder()
- .statusCode(200)
- .payload(payloadFromStringWithContentType(catalogEntity, ENTITY + ";version=1.5"))
- .build();
-
- @Test
- public void testGetCatalogUrn() {
- VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, resolveCatalog, resolveCatalogResponse, get, getResponse);
- assertEquals(api.getCatalogApi().get(catalogUrn), catalog());
- }
-
+
HttpRequest add = HttpRequest.builder()
.method("POST")
.endpoint(catalogHref + "/catalogItems")
@@ -125,13 +92,7 @@ public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, add, addResponse);
assertEquals(api.getCatalogApi().addItem(catalogHref, newItem), adddCatalogItem());
}
-
- @Test
- public void testAddCatalogItemUrn() {
- VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, resolveCatalog, resolveCatalogResponse, add, addResponse);
- assertEquals(api.getCatalogApi().addItem(catalogUrn, newItem), adddCatalogItem());
- }
-
+
HttpRequest getMetadata = HttpRequest.builder()
.method("GET")
.endpoint(catalogHref + "/metadata")
@@ -183,28 +144,7 @@ public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
static String item = "a36fdac9-b8c2-43e2-9a4c-2ffaf3ee13df";
static URI itemHref = URI.create(endpoint + "/catalogItem/" + item);
- static String itemUrn = "urn:vcloud:catalogitem:" + item;
- HttpRequest resolveItem = HttpRequest.builder()
- .method("GET")
- .endpoint(endpoint + "/entity/" + itemUrn)
- .addHeader("Accept", "*/*")
- .addHeader("x-vcloud-authorization", token)
- .addHeader(HttpHeaders.COOKIE, "vcloud-token=" + token)
- .build();
-
- String itemEntity = asString(createXMLBuilder("Entity").a("xmlns", "http://www.vmware.com/vcloud/v1.5")
- .a("name", itemUrn)
- .a("id", itemUrn)
- .a("type", ENTITY)
- .a("href", endpoint + "/entity/" + itemUrn)
- .e("Link").a("rel", "alternate").a("type", CATALOG_ITEM).a("href", itemHref.toString()).up());
-
- HttpResponse resolveItemResponse = HttpResponse.builder()
- .statusCode(200)
- .payload(payloadFromStringWithContentType(itemEntity, ENTITY + ";version=1.5"))
- .build();
-
HttpRequest getItem = HttpRequest.builder()
.method("GET")
.endpoint(endpoint + "/catalogItem/" + item)
@@ -222,13 +162,7 @@ public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, getItem, getItemResponse);
assertEquals(api.getCatalogApi().getItem(itemHref), catalogItem());
}
-
- @Test
- public void testGetCatalogItemUrn() {
- VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, resolveItem, resolveItemResponse, getItem, getItemResponse);
- assertEquals(api.getCatalogApi().getItem(itemUrn), catalogItem());
- }
-
+
HttpRequest editItem = HttpRequest.builder()
.method("PUT")
.endpoint(endpoint + "/catalogItem/" + item)
@@ -248,13 +182,7 @@ public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, editItem, editItemResponse);
assertEquals(api.getCatalogApi().editItem(itemHref, catalogItem()), catalogItem());
}
-
- @Test
- public void testEditCatalogItemUrn() {
- VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, resolveItem, resolveItemResponse, editItem, editItemResponse);
- assertEquals(api.getCatalogApi().editItem(itemUrn, catalogItem()), catalogItem());
- }
-
+
HttpRequest removeItem = HttpRequest.builder()
.method("DELETE")
.endpoint(endpoint + "/catalogItem/" + item)
@@ -272,12 +200,6 @@ public class CatalogApiExpectTest extends VCloudDirectorApiExpectTest {
api.getCatalogApi().removeItem(itemHref);
}
- @Test
- public void testRemoveCatalogItemUrn() {
- VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, resolveItem, resolveItemResponse, removeItem, removeItemResponse);
- api.getCatalogApi().removeItem(itemUrn);
- }
-
HttpRequest getItemMetadata = HttpRequest.builder()
.method("GET")
.endpoint(endpoint + "/catalogItem/" + item + "/metadata")
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiLiveTest.java
index f24ee9a..a49e527 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/CatalogApiLiveTest.java
@@ -48,9 +48,6 @@ import org.testng.annotations.Test;
import com.google.common.collect.ImmutableMap;
-/**
- * Tests live behavior of {@link CatalogApi}.
- */
@Test(groups = { "live", "user" }, singleThreaded = true, testName = "CatalogApiLiveTest")
public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@@ -73,12 +70,12 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
catalogApi = context.getApi().getCatalogApi();
adminCatalogApi = adminContext.getApi().getCatalogApi();
- if (catalogUrn == null) {
+ if (catalogId == null) {
AdminCatalog newCatalog = AdminCatalog.builder().name(name("Test Catalog "))
.description("created by CatalogApiLiveTest").build();
- adminCatalog = adminCatalogApi.addCatalogToOrg(newCatalog, org.getId());
- catalogUrn = catalogApi.get(
+ adminCatalog = adminCatalogApi.addCatalogToOrg(newCatalog, org.getHref());
+ catalogId = catalogApi.get(
find(adminCatalog.getLinks(),
and(relEquals("alternate"), typeEquals(VCloudDirectorMediaType.CATALOG))).getHref()).getId();
@@ -91,7 +88,7 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
protected void tearDownContext() {
if (media != null) {
try {
- Task remove = context.getApi().getMediaApi().remove(media.getId());
+ Task remove = context.getApi().getMediaApi().remove(media.getHref());
taskDoneEventually(remove);
} catch (Exception e) {
logger.warn(e, "Error when deleting media '%s'", media.getName());
@@ -100,14 +97,14 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
if (createdByTest) {
if (catalogItem != null) {
try {
- catalogApi.removeItem(catalogItem.getId());
+ catalogApi.removeItem(catalogItem.getHref());
} catch (Exception e) {
logger.warn(e, "Error when deleting catalog item '%s'", catalogItem.getName());
}
}
if (adminContext != null && adminCatalog != null) {
try {
- adminContext.getApi().getCatalogApi().remove(adminCatalog.getId());
+ adminContext.getApi().getCatalogApi().remove(adminCatalog.getHref());
} catch (Exception e) {
logger.warn(e, "Error when deleting catalog '%s'", adminCatalog.getName());
}
@@ -121,12 +118,12 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
Catalog catalog = lazyGetCatalog();
assertNotNull(catalog);
// Double check it's pointing at the correct catalog
- assertEquals(catalog.getId(), catalogUrn);
+ assertEquals(catalog.getHref(), catalogId);
}
@Test(description = "GET /catalogItem/{id}", dependsOnMethods = "testAddCatalogItem")
public void testGetCatalogItem() {
- CatalogItem catalogItem = catalogApi.getItem(this.catalogItem.getId());
+ CatalogItem catalogItem = catalogApi.getItem(this.catalogItem.getHref());
checkCatalogItem(catalogItem);
assertEquals(catalogItem.getEntity().getHref(), this.catalogItem.getEntity().getHref());
}
@@ -146,7 +143,7 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
CatalogItem editedCatalogItem = CatalogItem.builder().name("newitem").description("New Item")
.type(VCloudDirectorMediaType.CATALOG_ITEM).entity(Reference.builder().href(media.getHref()).build())
.build();
- catalogItem = catalogApi.addItem(catalogUrn, editedCatalogItem);
+ catalogItem = catalogApi.addItem(context.resolveIdToHref(catalogId), editedCatalogItem);
checkCatalogItem(catalogItem);
assertEquals(catalogItem.getName(), "newitem");
assertEquals(catalogItem.getDescription(), "New Item");
@@ -155,7 +152,7 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "PUT /catalogItem/{id}", dependsOnMethods = "testAddCatalogItem")
public void testEditCatalogItem() {
CatalogItem editedCatalogItem = CatalogItem.builder().fromCatalogItem(catalogItem).name("UPDATEDNAME").build();
- catalogItem = catalogApi.editItem(catalogItem.getId(), editedCatalogItem);
+ catalogItem = catalogApi.editItem(catalogItem.getHref(), editedCatalogItem);
checkCatalogItem(catalogItem);
assertEquals(catalogItem.getName(), "UPDATEDNAME");
}
@@ -164,85 +161,85 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "DELETE /catalogItem/{id}", dependsOnMethods = "testRemoveCatalogItemMetadataValue")
public void testRemoveCatalogItem() {
removeMediaAttachedToCatalogItem(catalogItem);
- catalogApi.removeItem(catalogItem.getId());
- catalogItem = catalogApi.getItem(catalogItem.getId());
+ catalogApi.removeItem(catalogItem.getHref());
+ catalogItem = catalogApi.getItem(catalogItem.getHref());
assertNull(catalogItem);
}
@Test(description = "GET /catalog/{id}/metadata")
public void testGetCatalogMetadata() {
- Metadata catalogMetadata = context.getApi().getMetadataApi(catalogUrn).get();
+ Metadata catalogMetadata = context.getApi().getMetadataApi(context.resolveIdToHref(catalogId)).get();
checkMetadata(catalogMetadata);
}
@Test(description = "GET /catalog/{id}/metadata/{key}")
public void testGetCatalogMetadataValue() {
- Task mergeCatalogMetadata = context.getApi().getMetadataApi(catalogUrn)
+ Task mergeCatalogMetadata = context.getApi().getMetadataApi(context.resolveIdToHref(catalogId))
.putAll(ImmutableMap.of("KEY", "MARMALADE"));
assertTaskSucceedsLong(mergeCatalogMetadata);
- Metadata catalogMetadata = context.getApi().getMetadataApi(catalogUrn).get();
+ Metadata catalogMetadata = context.getApi().getMetadataApi(context.resolveIdToHref(catalogId)).get();
- String metadataValue = context.getApi().getMetadataApi(catalogUrn).get("KEY");
+ String metadataValue = context.getApi().getMetadataApi(context.resolveIdToHref(catalogId)).get("KEY");
assertEquals(metadataValue, catalogMetadata.get("KEY"), String.format(CORRECT_VALUE_OBJECT_FMT, "Value",
"MetadataValue", catalogMetadata.get("KEY"), metadataValue));
}
@Test(description = "GET /catalogItem/{id}/metadata", dependsOnMethods = "testAddCatalogItem")
public void testGetCatalogItemMetadata() {
- Metadata catalogItemMetadata = context.getApi().getMetadataApi(catalogItem.getId()).get();
+ Metadata catalogItemMetadata = context.getApi().getMetadataApi(catalogItem.getHref()).get();
checkMetadata(catalogItemMetadata);
}
@Test(description = "POST /catalogItem/{id}/metadata", dependsOnMethods = "testAddCatalogItem")
public void testMergeCatalogItemMetadata() {
- Metadata before = context.getApi().getMetadataApi(catalogItem.getId()).get();
+ Metadata before = context.getApi().getMetadataApi(catalogItem.getHref()).get();
- Task mergeCatalogItemMetadata = context.getApi().getMetadataApi(catalogItem.getId()).putAll(
+ Task mergeCatalogItemMetadata = context.getApi().getMetadataApi(catalogItem.getHref()).putAll(
ImmutableMap.of("KEY", "MARMALADE", "VEGIMITE", "VALUE"));
checkTask(mergeCatalogItemMetadata);
assertTrue(retryTaskSuccess.apply(mergeCatalogItemMetadata),
String.format(TASK_COMPLETE_TIMELY, "mergeCatalogItemMetadata"));
- Metadata mergedCatalogItemMetadata = context.getApi().getMetadataApi(catalogItem.getId()).get();
+ Metadata mergedCatalogItemMetadata = context.getApi().getMetadataApi(catalogItem.getHref()).get();
assertTrue(mergedCatalogItemMetadata.getMetadataEntries().size() > before.getMetadataEntries().size(),
"Should have added at least one other MetadataEntry to the CatalogItem");
- String keyMetadataValue = context.getApi().getMetadataApi(catalogItem.getId()).get("KEY");
+ String keyMetadataValue = context.getApi().getMetadataApi(catalogItem.getHref()).get("KEY");
assertEquals(keyMetadataValue, "MARMALADE", "The Value of the MetadataValue for KEY should have changed");
- String newKeyMetadataValue = context.getApi().getMetadataApi(catalogItem.getId()).get("VEGIMITE");
+ String newKeyMetadataValue = context.getApi().getMetadataApi(catalogItem.getHref()).get("VEGIMITE");
assertEquals(newKeyMetadataValue, "VALUE", "The Value of the MetadataValue for NEW_KEY should have been set");
}
@Test(description = "GET /catalogItem/{id}/metadata/{key}", dependsOnMethods = "testSetCatalogItemMetadataValue")
public void testGetCatalogItemMetadataValue() {
- String metadataValue = context.getApi().getMetadataApi(catalogItem.getId()).get("KEY");
+ String metadataValue = context.getApi().getMetadataApi(catalogItem.getHref()).get("KEY");
assertNotNull(metadataValue);
}
@Test(description = "PUT /catalogItem/{id}/metadata/{key}", dependsOnMethods = "testMergeCatalogItemMetadata")
public void testSetCatalogItemMetadataValue() {
- Task setCatalogItemMetadataValue = context.getApi().getMetadataApi(catalogItem.getId()).put("KEY", "NEW");
+ Task setCatalogItemMetadataValue = context.getApi().getMetadataApi(catalogItem.getHref()).put("KEY", "NEW");
checkTask(setCatalogItemMetadataValue);
assertTrue(retryTaskSuccess.apply(setCatalogItemMetadataValue),
String.format(TASK_COMPLETE_TIMELY, "setCatalogItemMetadataValue"));
- String editedMetadataValue = context.getApi().getMetadataApi(catalogItem.getId()).get("KEY");
+ String editedMetadataValue = context.getApi().getMetadataApi(catalogItem.getHref()).get("KEY");
assertEquals(editedMetadataValue, "NEW",
String.format(CORRECT_VALUE_OBJECT_FMT, "Value", "MetadataValue", "NEW", editedMetadataValue));
}
@Test(description = "DELETE /catalogItem/{id}/metadata/{key}", dependsOnMethods = "testGetCatalogItemMetadataValue")
public void testRemoveCatalogItemMetadataValue() {
- Task removeCatalogItemMetadataValue = context.getApi().getMetadataApi(catalogItem.getId()).remove("KEY");
+ Task removeCatalogItemMetadataValue = context.getApi().getMetadataApi(catalogItem.getHref()).remove("KEY");
checkTask(removeCatalogItemMetadataValue);
assertTrue(retryTaskSuccess.apply(removeCatalogItemMetadataValue),
String.format(TASK_COMPLETE_TIMELY, "removeCatalogItemMetadataValue"));
- String removed = context.getApi().getMetadataApi(catalogItem.getId()).get("KEY");
+ String removed = context.getApi().getMetadataApi(catalogItem.getHref()).get("KEY");
assertNull(removed);
}
@@ -250,7 +247,7 @@ public class CatalogApiLiveTest extends BaseVCloudDirectorApiLiveTest {
if (media != null) {
if (catalogItem.getEntity().getHref().equals(media.getHref())) {
try {
- Task remove = context.getApi().getMediaApi().remove(media.getId());
+ Task remove = context.getApi().getMediaApi().remove(media.getHref());
taskDoneEventually(remove);
media = null;
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/KeyPairsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/KeyPairsApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/KeyPairsApiLiveTest.java
index fb951fc..ae27c38 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/KeyPairsApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/KeyPairsApiLiveTest.java
@@ -58,9 +58,6 @@ import com.google.common.base.Predicates;
import com.google.common.collect.Iterables;
import com.google.inject.Inject;
-/**
- * Tests behavior of {@code Key Pairs}
- */
@Test(groups = { "live", "user" }, singleThreaded = true, testName = "KeyPairsApiLiveTest")
public class KeyPairsApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@@ -89,7 +86,7 @@ public class KeyPairsApiLiveTest extends BaseVCloudDirectorApiLiveTest {
Media keyPairsContainer = findOrCreateKeyPairContainerInVDCNamed(currentVDC,
keyPairContainer, keyPairName);
String keypairValue = context.getApi().getMetadataApi(
- keyPairsContainer.getId()).get(keyPairName);
+ keyPairsContainer.getHref()).get(keyPairName);
assertEquals(keypairValue, generateKeyPair(keyPairName));
}
@@ -99,12 +96,12 @@ public class KeyPairsApiLiveTest extends BaseVCloudDirectorApiLiveTest {
Vdc currentVDC = lazyGetVdc();
Media keyPairsContainer = findOrCreateKeyPairContainerInVDCNamed(currentVDC,
keyPairContainer, keyPairName);
- Task removeMedia = mediaApi.remove(keyPairsContainer.getId());
+ Task removeMedia = mediaApi.remove(keyPairsContainer.getHref());
Checks.checkTask(removeMedia);
assertTrue(retryTaskSuccess.apply(removeMedia),
String.format(TASK_COMPLETE_TIMELY, "removeMedia"));
- keyPairsContainer = mediaApi.get(keyPairsContainer.getId());
+ keyPairsContainer = mediaApi.get(keyPairsContainer.getHref());
assertNull(keyPairsContainer, String.format(OBJ_DEL, MEDIA,
keyPairsContainer != null ? keyPairsContainer.toString() : ""));
}
@@ -118,7 +115,7 @@ public class KeyPairsApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Override
public boolean apply(Media input) {
- return context.getApi().getMetadataApi(input.getId()).get(
+ return context.getApi().getMetadataApi(input.getHref()).get(
keyPairName) != null;
}
});
@@ -204,7 +201,7 @@ public class KeyPairsApiLiveTest extends BaseVCloudDirectorApiLiveTest {
private void setKeyPairOnkeyPairsContainer(Media media, String keyPairName,
String keyPair) {
- Task setKeyPair = context.getApi().getMetadataApi(media.getId()).put(
+ Task setKeyPair = context.getApi().getMetadataApi(media.getHref()).put(
keyPairName, keyPair);
Checks.checkTask(setKeyPair);
assertTrue(retryTaskSuccess.apply(setKeyPair),
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiExpectTest.java
index 4fc317f..864ae36 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiExpectTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiExpectTest.java
@@ -41,9 +41,6 @@ import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
-/**
- * Test the {@link MediaApi} via its side effects.
- */
@Test(groups = { "unit", "user" }, singleThreaded = true, testName = "MediaApiExpectTest")
public class MediaApiExpectTest extends VCloudDirectorAdminApiExpectTest {
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiLiveTest.java
index 7f6a08f..7f24595 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MediaApiLiveTest.java
@@ -67,9 +67,6 @@ import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
-/**
- * Tests behavior of {@code MediaApi}
- */
@Test(groups = { "live", "user" }, singleThreaded = true, testName = "MediaApiLiveTest")
public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@@ -103,7 +100,7 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
protected void tidyUp() {
if (media != null) {
try {
- Task remove = mediaApi.remove(media.getId());
+ Task remove = mediaApi.remove(media.getHref());
taskDoneEventually(remove);
} catch (Exception e) {
logger.warn(e, "Error when deleting media '%s': %s", media.getName());
@@ -111,7 +108,7 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
}
if (oldMedia != null) {
try {
- Task remove = mediaApi.remove(oldMedia.getId());
+ Task remove = mediaApi.remove(oldMedia.getHref());
taskDoneEventually(remove);
} catch (Exception e) {
logger.warn(e, "Error when deleting media '%s': %s", oldMedia.getName());
@@ -156,19 +153,19 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
Link uploadLink = Iterables.find(links, LinkPredicates.relEquals(Link.Rel.UPLOAD_DEFAULT));
context.getApi().getUploadApi().upload(uploadLink.getHref(), Payloads.newPayload(iso));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
if (media.getTasks().size() == 1) {
Task uploadTask = Iterables.getOnlyElement(media.getTasks());
Checks.checkTask(uploadTask);
assertEquals(uploadTask.getStatus(), Task.Status.RUNNING);
assertTrue(retryTaskSuccess.apply(uploadTask), String.format(TASK_COMPLETE_TIMELY, "uploadTask"));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
}
}
@Test(description = "GET /media/{id}", dependsOnMethods = { "testAddMedia" })
public void testGetMedia() {
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
assertNotNull(media, String.format(OBJ_REQ_LIVE, MEDIA));
owner = media.getOwner();
@@ -180,7 +177,7 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "GET /media/{id}/owner", dependsOnMethods = { "testGetMedia" })
public void testGetMediaOwner() {
- Owner directOwner = mediaApi.getOwner(media.getId());
+ Owner directOwner = mediaApi.getOwner(media.getHref());
assertEquals(owner.toBuilder().user(owner.getUser()).build(),
directOwner.toBuilder().links(ImmutableSet.<Link> of()).build(), String.format(
GETTER_RETURNS_SAME_OBJ, "getOwner()", "owner", "media.getOwner()", owner.toString(),
@@ -197,8 +194,7 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "POST /vdc/{id}/action/cloneMedia", dependsOnMethods = { "testGetMediaOwner" })
public void testCloneMedia() {
oldMedia = media;
- media = vdcApi.cloneMedia(
- vdcUrn,
+ media = vdcApi.cloneMedia(context.resolveIdToHref(vdcId),
CloneMediaParams.builder().source(Reference.builder().fromEntity(media).build())
.name("copied " + media.getName()).description("copied by testCloneMedia()").build());
@@ -209,7 +205,7 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
if (copyTask != null) {
Checks.checkTask(copyTask);
assertTrue(retryTaskSuccess.apply(copyTask), String.format(TASK_COMPLETE_TIMELY, "copyTask"));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
}
}
@@ -217,11 +213,11 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
assertTrue(media.clone(oldMedia),
String.format(OBJ_FIELD_CLONE, MEDIA, "copied media", media.toString(), oldMedia.toString()));
- context.getApi().getMetadataApi(media.getId()).put("key", "value");
+ context.getApi().getMetadataApi(media.getHref()).put("key", "value");
- media = vdcApi
- .cloneMedia(vdcUrn, CloneMediaParams.builder().source(Reference.builder().fromEntity(media).build())
- .name("moved test media").description("moved by testCloneMedia()").isSourceDelete(true).build());
+ media = vdcApi.cloneMedia(context.resolveIdToHref(vdcId),
+ CloneMediaParams.builder().source(Reference.builder().fromEntity(media).build()).name("moved test media")
+ .description("moved by testCloneMedia()").isSourceDelete(true).build());
Checks.checkMediaFor(VDC, media);
@@ -230,7 +226,7 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
if (copyTask != null) {
Checks.checkTask(copyTask);
assertTrue(retryTaskSuccess.apply(copyTask), String.format(TASK_COMPLETE_TIMELY, "copyTask"));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
}
}
@@ -247,10 +243,10 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
String newDescription = "new " + oldDescription;
media = media.toBuilder().name(newName).description(newDescription).build();
- Task editMedia = mediaApi.edit(media.getId(), media);
+ Task editMedia = mediaApi.edit(media.getHref(), media);
Checks.checkTask(editMedia);
assertTrue(retryTaskSuccess.apply(editMedia), String.format(TASK_COMPLETE_TIMELY, "editMedia"));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
assertTrue(equal(media.getName(), newName), String.format(OBJ_FIELD_UPDATABLE, MEDIA, "name"));
assertTrue(equal(media.getDescription(), newDescription),
@@ -262,15 +258,15 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
media = media.toBuilder().name(oldName).description(oldDescription).build();
- editMedia = mediaApi.edit(media.getId(), media);
+ editMedia = mediaApi.edit(media.getHref(), media);
Checks.checkTask(editMedia);
assertTrue(retryTaskSuccess.apply(editMedia), String.format(TASK_COMPLETE_TIMELY, "editMedia"));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
}
@Test(description = "GET /media/{id}/metadata", dependsOnMethods = { "testSetMetadataValue" })
public void testGetMetadata() {
- metadata = context.getApi().getMetadataApi(media.getId()).get();
+ metadata = context.getApi().getMetadataApi(media.getHref()).get();
// required for testing
assertFalse(isEmpty(metadata.getMetadataEntries()), String.format(OBJ_FIELD_REQ_LIVE, MEDIA, "metadata.entries"));
@@ -280,31 +276,31 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "POST /media/{id}/metadata", dependsOnMethods = { "testGetMedia" })
public void testMergeMetadata() {
// test new
- Task mergeMetadata = context.getApi().getMetadataApi(media.getId()).putAll(ImmutableMap.of("testKey", "testValue"));
+ Task mergeMetadata = context.getApi().getMetadataApi(media.getHref()).putAll(ImmutableMap.of("testKey", "testValue"));
Checks.checkTask(mergeMetadata);
assertTrue(retryTaskSuccess.apply(mergeMetadata), String.format(TASK_COMPLETE_TIMELY, "mergeMetadata(new)"));
- metadata = context.getApi().getMetadataApi(media.getId()).get();
+ metadata = context.getApi().getMetadataApi(media.getHref()).get();
Checks.checkMetadataFor(MEDIA, metadata);
assertEquals(metadata.get("testKey"), "testValue");
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
Checks.checkMediaFor(MEDIA, media);
// test edit
- mergeMetadata = context.getApi().getMetadataApi(media.getId()).put("testKey", "new testValue");
+ mergeMetadata = context.getApi().getMetadataApi(media.getHref()).put("testKey", "new testValue");
Checks.checkTask(mergeMetadata);
assertTrue(retryTaskSuccess.apply(mergeMetadata), String.format(TASK_COMPLETE_TIMELY, "mergeMetadata(edit)"));
- metadata = context.getApi().getMetadataApi(media.getId()).get();
+ metadata = context.getApi().getMetadataApi(media.getHref()).get();
Checks.checkMetadataFor(MEDIA, metadata);
assertEquals(metadata.get("testKey"), "new testValue");
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
Checks.checkMediaFor(MEDIA, media);
}
@Test(description = "GET /media/{id}/metadata/{key}", dependsOnMethods = { "testSetMetadataValue" })
public void testGetMetadataValue() {
- metadataValue = context.getApi().getMetadataApi(media.getId()).get("key");
+ metadataValue = context.getApi().getMetadataApi(media.getHref()).get("key");
assertNotNull(metadataValue);
}
@@ -312,42 +308,42 @@ public class MediaApiLiveTest extends BaseVCloudDirectorApiLiveTest {
public void testSetMetadataValue() {
metadataEntryValue = "value";
- Task setMetadataEntry = context.getApi().getMetadataApi(media.getId()).put("key", metadataEntryValue);
+ Task setMetadataEntry = context.getApi().getMetadataApi(media.getHref()).put("key", metadataEntryValue);
Checks.checkTask(setMetadataEntry);
assertTrue(retryTaskSuccess.apply(setMetadataEntry), String.format(TASK_COMPLETE_TIMELY, "setMetadataEntry"));
- metadataValue = context.getApi().getMetadataApi(media.getId()).get("key");
+ metadataValue = context.getApi().getMetadataApi(media.getHref()).get("key");
assertNotNull(metadataValue);
}
@Test(description = "DELETE /media/{id}/metadata/{key}", dependsOnMethods = { "testGetMetadata",
"testGetMetadataValue" })
public void testRemoveMetadata() {
- Task remove = context.getApi().getMetadataApi(media.getId()).remove("testKey");
+ Task remove = context.getApi().getMetadataApi(media.getHref()).remove("testKey");
Checks.checkTask(remove);
assertTrue(retryTaskSuccess.apply(remove), String.format(TASK_COMPLETE_TIMELY, "remove"));
- metadataValue = context.getApi().getMetadataApi(media.getId()).get("testKey");
+ metadataValue = context.getApi().getMetadataApi(media.getHref()).get("testKey");
assertNull(metadataValue, String.format(OBJ_FIELD_ATTRB_DEL, MEDIA, "Metadata",
metadataValue != null ? metadataValue.toString() : "", "MetadataEntry",
metadataValue != null ? metadataValue.toString() : ""));
- metadataValue = context.getApi().getMetadataApi(media.getId()).get("key");
+ metadataValue = context.getApi().getMetadataApi(media.getHref()).get("key");
assertNotNull(metadataValue);
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
Checks.checkMediaFor(MEDIA, media);
}
@Test(description = "DELETE /media/{id}", dependsOnMethods = { "testRemoveMetadata" })
public void testRemoveMedia() {
- Task removeMedia = mediaApi.remove(media.getId());
+ Task removeMedia = mediaApi.remove(media.getHref());
Checks.checkTask(removeMedia);
assertTrue(retryTaskSuccess.apply(removeMedia), String.format(TASK_COMPLETE_TIMELY, "removeMedia"));
- media = mediaApi.get(media.getId());
+ media = mediaApi.get(media.getHref());
assertNull(media, String.format(OBJ_DEL, MEDIA, media != null ? media.toString() : ""));
- removeMedia = mediaApi.remove(oldMedia.getId());
+ removeMedia = mediaApi.remove(oldMedia.getHref());
Checks.checkTask(removeMedia);
assertTrue(retryTaskSuccess.apply(removeMedia), String.format(TASK_COMPLETE_TIMELY, "removeMedia"));
oldMedia = null;
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MetadataApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MetadataApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MetadataApiExpectTest.java
index 8bf90b5..3f328b8 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MetadataApiExpectTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/MetadataApiExpectTest.java
@@ -37,9 +37,6 @@ import org.jclouds.vcloud.director.v1_5.domain.Task;
import org.jclouds.vcloud.director.v1_5.internal.VCloudDirectorAdminApiExpectTest;
import org.testng.annotations.Test;
-/**
- * Tests the request/response behavior of {@link org.jclouds.vcloud.director.v1_5.features.MetadataApi}
- */
@Test(groups = { "unit", "user" }, testName = "MetadataApiExpectTest")
public class MetadataApiExpectTest extends VCloudDirectorAdminApiExpectTest {
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiExpectTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiExpectTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiExpectTest.java
index dc49116..98d4700 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiExpectTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiExpectTest.java
@@ -16,12 +16,9 @@
*/
package org.jclouds.vcloud.director.v1_5.features;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ADMIN_NETWORK;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ENTITY;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ERROR;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.METADATA;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.METADATA_VALUE;
-import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.NETWORK;
import static org.jclouds.vcloud.director.v1_5.VCloudDirectorMediaType.ORG;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;
@@ -53,14 +50,10 @@ import org.testng.annotations.Test;
import com.google.common.collect.ImmutableSet;
import com.google.common.net.HttpHeaders;
-/**
- * Test the {@link NetworkApi} via its side effects.
- */
@Test(groups = { "unit", "user" }, singleThreaded = true, testName = "NetworkApiExpectTest")
public class NetworkApiExpectTest extends VCloudDirectorAdminApiExpectTest {
static String network = "55a677cf-ab3f-48ae-b880-fab90421980c";
- static String networkUrn = "urn:vcloud:network:" + network;
static URI networkHref = URI.create(endpoint + "/network/" + network);
HttpRequest get = HttpRequest.builder()
@@ -131,35 +124,6 @@ public class NetworkApiExpectTest extends VCloudDirectorAdminApiExpectTest {
assertNull(api.getNetworkApi().get(URI.create(endpoint + "/network/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")));
}
-
- HttpRequest resolveNetwork = HttpRequest.builder()
- .method("GET")
- .endpoint(endpoint + "/entity/" + networkUrn)
- .addHeader("Accept", "*/*")
- .addHeader("x-vcloud-authorization", token)
- .addHeader(HttpHeaders.COOKIE, "vcloud-token=" + token)
- .build();
-
- String networkEntity = asString(createXMLBuilder("Entity").a("xmlns", "http://www.vmware.com/vcloud/v1.5")
- .a("name", networkUrn)
- .a("id", networkUrn)
- .a("type", ENTITY)
- .a("href", endpoint + "/entity/" + networkUrn)
- .e("Link").a("rel", "alternate").a("type", NETWORK).a("href", networkHref.toString()).up()
- // TODO: remove this when VCloudDirectorApiExpectTest no longer inherits from VCloudDirectorAdminApiExpectTest
- .e("Link").a("rel", "alternate").a("type", ADMIN_NETWORK).a("href", networkHref.toString()).up());
-
- HttpResponse resolveNetworkResponse = HttpResponse.builder()
- .statusCode(200)
- .payload(payloadFromStringWithContentType(networkEntity, ENTITY + ";version=1.5"))
- .build();
-
- @Test
- public void testGetNetworkUrn() {
- VCloudDirectorApi api = requestsSendResponses(loginRequest, sessionResponse, resolveNetwork, resolveNetworkResponse, get, getResponse);
- assertEquals(api.getNetworkApi().get(networkUrn), network());
- }
-
HttpRequest getMetadata = HttpRequest.builder()
.method("GET")
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/a58cf0c6/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiLiveTest.java
----------------------------------------------------------------------
diff --git a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiLiveTest.java b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiLiveTest.java
index cc2d355..a37fe8f 100644
--- a/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiLiveTest.java
+++ b/vcloud-director/src/test/java/org/jclouds/vcloud/director/v1_5/features/NetworkApiLiveTest.java
@@ -42,9 +42,6 @@ import org.testng.annotations.Test;
import com.google.common.collect.Iterables;
-/**
- * Tests behavior of {@link NetworkApi}
- */
@Test(groups = { "live", "user" }, singleThreaded = true, testName = "NetworkApiLiveTest")
public class NetworkApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@@ -67,7 +64,7 @@ public class NetworkApiLiveTest extends BaseVCloudDirectorApiLiveTest {
public void cleanUp() {
if (metadataSet) {
try {
- Task remove = adminContext.getApi().getMetadataApi(networkUrn).remove("key");
+ Task remove = adminContext.getApi().getMetadataApi(context.resolveIdToAdminHref(networkId)).remove("key");
taskDoneEventually(remove);
} catch (Exception e) {
logger.warn(e, "Error when deleting metadata");
@@ -78,9 +75,9 @@ public class NetworkApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "GET /network/{id}")
public void testGetNetwork() {
// required for testing
- assertNotNull(networkUrn, String.format(URN_REQ_LIVE, NETWORK));
+ assertNotNull(networkId, String.format(URN_REQ_LIVE, NETWORK));
- Network abstractNetwork = networkApi.get(networkUrn);
+ Network abstractNetwork = networkApi.get(context.resolveIdToHref(networkId));
assertTrue(abstractNetwork instanceof OrgNetwork,
String.format(REQUIRED_VALUE_OBJECT_FMT, ".class", NETWORK, abstractNetwork.getClass(), "OrgNetwork"));
OrgNetwork network = Network.toSubType(abstractNetwork);
@@ -92,7 +89,7 @@ public class NetworkApiLiveTest extends BaseVCloudDirectorApiLiveTest {
private void setupMetadata() {
//TODO: block until complete
- adminContext.getApi().getMetadataApi(networkUrn).put("key", "value");
+ adminContext.getApi().getMetadataApi(context.resolveIdToHref(networkId)).put("key", "value");
metadataSet = true;
}
@@ -102,7 +99,7 @@ public class NetworkApiLiveTest extends BaseVCloudDirectorApiLiveTest {
setupMetadata();
}
- Metadata metadata = context.getApi().getMetadataApi(networkUrn).get();
+ Metadata metadata = context.getApi().getMetadataApi(context.resolveIdToHref(networkId)).get();
// required for testing
assertFalse(Iterables.isEmpty(metadata.getMetadataEntries()),
String.format(OBJ_FIELD_REQ_LIVE, NETWORK, "metadata.entries"));
@@ -124,7 +121,7 @@ public class NetworkApiLiveTest extends BaseVCloudDirectorApiLiveTest {
@Test(description = "GET /network/{id}/metadata/{key}", dependsOnMethods = { "testGetMetadata" })
public void testGetMetadataValue() {
- String metadataValue = context.getApi().getMetadataApi(networkUrn).get("key");
+ String metadataValue = context.getApi().getMetadataApi(context.resolveIdToHref(networkId)).get("key");
assertEquals(metadataValue, "value", String.format(OBJ_FIELD_EQ, NETWORK, "metadataEntry.value", "value", metadataValue));
}