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 2013/09/30 18:15:34 UTC
[14/17] JCLOUDS-304. Remove broken terremark providers
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java
deleted file mode 100644
index 27bd096..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudLifeCycleStrategy.java
+++ /dev/null
@@ -1,84 +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.trmk.vcloud_0_8.compute.strategy;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.net.URI;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.compute.strategy.GetNodeMetadataStrategy;
-import org.jclouds.compute.strategy.RebootNodeStrategy;
-import org.jclouds.compute.strategy.ResumeNodeStrategy;
-import org.jclouds.compute.strategy.SuspendNodeStrategy;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudApi;
-import org.jclouds.trmk.vcloud_0_8.domain.Task;
-
-import com.google.common.base.Predicate;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class TerremarkVCloudLifeCycleStrategy implements RebootNodeStrategy, ResumeNodeStrategy, SuspendNodeStrategy {
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- private final TerremarkVCloudApi client;
- protected final Predicate<URI> taskTester;
- protected final GetNodeMetadataStrategy getNode;
-
- @Inject
- protected TerremarkVCloudLifeCycleStrategy(TerremarkVCloudApi client, Predicate<URI> taskTester,
- GetNodeMetadataStrategy getNode) {
- this.client = client;
- this.taskTester = taskTester;
- this.getNode = getNode;
- }
-
- @Override
- public NodeMetadata rebootNode(String in) {
- Task task = client.resetVApp(URI.create(checkNotNull(in, "node.id")));
- return returnWhenTaskCompletes(in, task);
- }
-
- private NodeMetadata returnWhenTaskCompletes(String in, Task task) {
- taskTester.apply(task.getHref());
- return getNode.getNode(in);
- }
-
- @Override
- public NodeMetadata resumeNode(String in) {
- Task task = client.powerOnVApp(URI.create(checkNotNull(in, "node.id")));
- return returnWhenTaskCompletes(in, task);
- }
-
- @Override
- public NodeMetadata suspendNode(String in) {
- Task task = client.powerOffVApp(URI.create(checkNotNull(in, "node.id")));
- return returnWhenTaskCompletes(in, task);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java
deleted file mode 100644
index 3a8b92a..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/strategy/TerremarkVCloudListNodesStrategy.java
+++ /dev/null
@@ -1,147 +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.trmk.vcloud_0_8.compute.strategy;
-import static com.google.common.collect.Iterables.toArray;
-import static org.jclouds.compute.config.ComputeServiceProperties.BLACKLIST_NODES;
-import static org.jclouds.compute.predicates.NodePredicates.all;
-import static org.jclouds.compute.predicates.NodePredicates.withIds;
-import static org.jclouds.compute.reference.ComputeServiceConstants.COMPUTE_LOGGER;
-
-import java.util.Map;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.ComputeMetadata;
-import org.jclouds.compute.domain.ComputeMetadataBuilder;
-import org.jclouds.compute.domain.ComputeType;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.strategy.ListNodesStrategy;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudApi;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudMediaType;
-import org.jclouds.trmk.vcloud_0_8.compute.functions.FindLocationForResource;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Predicate;
-import com.google.common.base.Splitter;
-import com.google.common.base.Supplier;
-import com.google.common.collect.FluentIterable;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Sets;
-import com.google.inject.Inject;
-
-/**
- * @author Adrian Cole
- */
-// TODO REFACTOR!!! needs to be parallel
-@Singleton
-public class TerremarkVCloudListNodesStrategy implements ListNodesStrategy {
- @Resource
- @Named(COMPUTE_LOGGER)
- public Logger logger = Logger.NULL;
- protected final TerremarkVCloudGetNodeMetadataStrategy getNodeMetadata;
- protected final TerremarkVCloudApi client;
- protected final FindLocationForResource findLocationForResourceInVDC;
- Set<String> blackListVAppNames = ImmutableSet.<String> of();
-
- @Inject(optional = true)
- void setBlackList(@Named(BLACKLIST_NODES) String blackListNodes) {
- if (blackListNodes != null && !"".equals(blackListNodes))
- this.blackListVAppNames = ImmutableSet.copyOf(Splitter.on(',').split(blackListNodes));
- }
-
- private final Supplier<Map<String, ReferenceType>> orgNameToEndpoint;
-
- @Inject
- protected TerremarkVCloudListNodesStrategy(TerremarkVCloudApi client,
- @Org Supplier<Map<String, ReferenceType>> orgNameToEndpoint,
- TerremarkVCloudGetNodeMetadataStrategy getNodeMetadata, FindLocationForResource findLocationForResourceInVDC) {
- this.client = client;
- this.orgNameToEndpoint = orgNameToEndpoint;
- this.getNodeMetadata = getNodeMetadata;
- this.findLocationForResourceInVDC = findLocationForResourceInVDC;
- }
-
- @Override
- public Iterable<ComputeMetadata> listNodes() {
- Set<ComputeMetadata> nodes = Sets.newHashSet();
- for (String org : orgNameToEndpoint.get().keySet()) {
- for (ReferenceType vdc : client.findOrgNamed(org).getVDCs().values()) {
- for (ReferenceType resource : client.getVDC(vdc.getHref()).getResourceEntities().values()) {
- if (validVApp(resource)) {
- nodes.add(convertVAppToComputeMetadata(vdc, resource));
- }
- }
- }
- }
- return nodes;
- }
-
- private boolean validVApp(ReferenceType resource) {
- return resource.getType().equals(TerremarkVCloudMediaType.VAPP_XML)
- && !blackListVAppNames.contains(resource.getName());
- }
-
- private ComputeMetadata convertVAppToComputeMetadata(ReferenceType vdc, ReferenceType resource) {
- ComputeMetadataBuilder builder = new ComputeMetadataBuilder(ComputeType.NODE);
- builder.providerId(resource.getHref().toASCIIString());
- builder.name(resource.getName());
- builder.id(resource.getHref().toASCIIString());
- builder.location(findLocationForResourceInVDC.apply(vdc));
- return builder.build();
- }
-
- @Override
- public Iterable<? extends NodeMetadata> listNodesByIds(Iterable<String> ids) {
- return FluentIterable.from(listDetailsOnNodesMatching(all())).filter(withIds(toArray(ids, String.class))).toSet();
- }
-
- @Override
- public Iterable<NodeMetadata> listDetailsOnNodesMatching(Predicate<ComputeMetadata> filter) {
- Set<NodeMetadata> nodes = Sets.newHashSet();
- for (String org : orgNameToEndpoint.get().keySet()) {
- for (ReferenceType vdc : client.findOrgNamed(org).getVDCs().values()) {
- for (ReferenceType resource : client.getVDC(vdc.getHref()).getResourceEntities().values()) {
- if (validVApp(resource) && filter.apply(convertVAppToComputeMetadata(vdc, resource))) {
- addVAppToSetRetryingIfNotYetPresent(nodes, vdc, resource);
- }
- }
- }
- }
- return nodes;
- }
-
- @VisibleForTesting
- void addVAppToSetRetryingIfNotYetPresent(Set<NodeMetadata> nodes, ReferenceType vdc, ReferenceType resource) {
- NodeMetadata node = null;
- int i = 0;
- while (node == null && i++ < 3) {
- try {
- node = getNodeMetadata.getNode(resource.getHref().toASCIIString());
- nodes.add(node);
- } catch (NullPointerException e) {
- logger.warn("vApp %s not yet present in vdc %s", resource.getName(), vdc.getName());
- }
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java
deleted file mode 100644
index 185250a..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/StaticHardwareSupplier.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.compute.suppliers;
-
-import java.util.Set;
-
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.internal.VolumeImpl;
-
-import com.google.common.base.Supplier;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.Sets;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class StaticHardwareSupplier implements Supplier<Set<? extends Hardware>> {
-
- @Override
- public Set<? extends Hardware> get() {
- Set<Hardware> hardware = Sets.newHashSet();
- for (int cpus : new int[] { 1, 2, 4, 8 })
- for (int ram : new int[] { 512, 1024, 2048, 4096, 8192, 16384 }) {
- String id = String.format("cpu=%d,ram=%s,disk=%d", cpus, ram, 10);
- hardware.add(new HardwareBuilder().ids(id).ram(ram).processors(ImmutableList.of(new Processor(cpus, 1.0)))
- .volumes(ImmutableList.<Volume> of(new VolumeImpl(10f, true, true))).hypervisor("VMware").build());
- }
- return hardware;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java
deleted file mode 100644
index 5bb79d8..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VAppTemplatesInOrgs.java
+++ /dev/null
@@ -1,73 +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.trmk.vcloud_0_8.compute.suppliers;
-
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.transform;
-import static com.google.common.collect.Sets.newLinkedHashSet;
-
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.compute.functions.ImagesInVCloudExpressOrg;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class VAppTemplatesInOrgs implements Supplier<Set<? extends Image>> {
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- public Logger logger = Logger.NULL;
-
- private final Supplier<Set<? extends Location>> locations;
- private final Function<Iterable<? extends Location>, Iterable<? extends Org>> organizationsForLocations;
- private final ImagesInVCloudExpressOrg imagesInOrg;
-
- @Inject
- VAppTemplatesInOrgs(@Memoized Supplier<Set<? extends Location>> locations,
- Function<Iterable<? extends Location>, Iterable<? extends Org>> organizationsForLocations,
- ImagesInVCloudExpressOrg imagesInOrg) {
- this.locations = locations;
- this.organizationsForLocations = organizationsForLocations;
- this.imagesInOrg = imagesInOrg;
- }
-
- /**
- * Terremark does not provide vApp templates in the vDC resourceEntity list. Rather, you must
- * query the catalog.
- */
- @Override
- public Set<? extends Image> get() {
- logger.debug(">> providing vAppTemplates");
- return newLinkedHashSet(concat(transform(organizationsForLocations.apply(locations.get()), imagesInOrg)));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java
deleted file mode 100644
index 5fcc41b..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudHardwareSupplier.java
+++ /dev/null
@@ -1,93 +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.trmk.vcloud_0_8.compute.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Sets.newLinkedHashSet;
-import static org.jclouds.concurrent.FutureIterables.transformParallel;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Callable;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.Constants;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class VCloudHardwareSupplier implements Supplier<Set<? extends Hardware>> {
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- public Logger logger = Logger.NULL;
-
- private final Supplier<Map<String, ? extends Org>> orgMap;
- private final Function<Org, Iterable<? extends Hardware>> sizesInOrg;
- private final ListeningExecutorService userExecutor;
-
- @Inject
- VCloudHardwareSupplier(Supplier<Map<String, ? extends Org>> orgMap,
- Function<Org, Iterable<? extends Hardware>> sizesInOrg,
- @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor) {
- this.orgMap = checkNotNull(orgMap, "orgMap");
- this.sizesInOrg = checkNotNull(sizesInOrg, "sizesInOrg");
- this.userExecutor = checkNotNull(userExecutor, "userExecutor");
- }
-
- @Override
- public Set<? extends Hardware> get() {
- Iterable<? extends Org> orgs = checkNotNull(orgMap.get().values(), "orgs");
- Iterable<? extends Iterable<? extends Hardware>> sizes = transformParallel(orgs,
- new Function<Org, ListenableFuture<? extends Iterable<? extends Hardware>>>() {
-
- @Override
- public ListenableFuture<Iterable<? extends Hardware>> apply(final Org from) {
- checkNotNull(from, "org");
- return userExecutor.submit(new Callable<Iterable<? extends Hardware>>() {
-
- @Override
- public Iterable<? extends Hardware> call() throws Exception {
- return sizesInOrg.apply(from);
- }
-
- @Override
- public String toString() {
- return "sizesInOrg(" + from.getHref() + ")";
- }
- });
- }
-
- }, userExecutor, null, logger, "sizes in " + orgs);
- return newLinkedHashSet(concat(sizes));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java
deleted file mode 100644
index 2d117cd..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/compute/suppliers/VCloudImageSupplier.java
+++ /dev/null
@@ -1,93 +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.trmk.vcloud_0_8.compute.suppliers;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Sets.newLinkedHashSet;
-import static org.jclouds.concurrent.FutureIterables.transformParallel;
-
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Callable;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.Constants;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.logging.Logger;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class VCloudImageSupplier implements Supplier<Set<? extends Image>> {
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- public Logger logger = Logger.NULL;
-
- private final Supplier<Map<String, ? extends Org>> orgMap;
- private final Function<Org, Iterable<? extends Image>> imagesInOrg;
- private final ListeningExecutorService userExecutor;
-
- @Inject
- VCloudImageSupplier(Supplier<Map<String, ? extends Org>> orgMap,
- Function<Org, Iterable<? extends Image>> imagesInOrg,
- @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor) {
- this.orgMap = checkNotNull(orgMap, "orgMap");
- this.imagesInOrg = checkNotNull(imagesInOrg, "imagesInOrg");
- this.userExecutor = checkNotNull(userExecutor, "userExecutor");
- }
-
- @Override
- public Set<? extends Image> get() {
- Iterable<? extends Org> orgs = checkNotNull(orgMap.get().values(), "orgs");
- Iterable<? extends Iterable<? extends Image>> images = transformParallel(orgs,
- new Function<Org, ListenableFuture<? extends Iterable<? extends Image>>>() {
-
- @Override
- public ListenableFuture<Iterable<? extends Image>> apply(final Org from) {
- checkNotNull(from, "org");
- return userExecutor.submit(new Callable<Iterable<? extends Image>>() {
-
- @Override
- public Iterable<? extends Image> call() throws Exception {
- return imagesInOrg.apply(from);
- }
-
- @Override
- public String toString() {
- return "imagesInOrg(" + from.getHref() + ")";
- }
- });
- }
-
- }, userExecutor, null, logger, "images in " + orgs);
- return newLinkedHashSet(concat(images));
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java
deleted file mode 100644
index 7fdc13b..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultCatalogForOrg.java
+++ /dev/null
@@ -1,63 +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.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_CATALOG;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Catalog;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultCatalogForOrg implements Function<ReferenceType, ReferenceType> {
- private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
- private final Supplier<Map<String, ? extends Org>> nameToOrg;
-
- @Inject
- public DefaultCatalogForOrg(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
- @Catalog Predicate<ReferenceType> defaultSelector, Supplier<Map<String, ? extends Org>> nameToOrg) {
- this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
- valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_CATALOG,
- checkNotNull(defaultSelector, "defaultSelector"));
- this.nameToOrg = checkNotNull(nameToOrg, "nameToOrg");
- }
-
- @Override
- public ReferenceType apply(ReferenceType defaultOrg) {
- org.jclouds.trmk.vcloud_0_8.domain.Org org = nameToOrg.get().get(defaultOrg.getName());
- checkState(org != null, "could not retrieve Org at %s", defaultOrg);
- return selector.apply(org.getCatalogs().values());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java
deleted file mode 100644
index 122e8ca..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultNetworkForVDC.java
+++ /dev/null
@@ -1,66 +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.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_NETWORK;
-
-import java.net.URI;
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.domain.VDC;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Network;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultNetworkForVDC implements Function<ReferenceType, ReferenceType> {
-
- private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
- private final Supplier<Map<URI, ? extends VDC>> uriToVDC;
-
- @Inject
- public DefaultNetworkForVDC(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
- @Network Predicate<ReferenceType> defaultSelector,
- Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> uriToVDC) {
- this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
- valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_NETWORK,
- checkNotNull(defaultSelector, "defaultSelector"));
- this.uriToVDC = checkNotNull(uriToVDC, "uriToVDC");
- }
-
- @Override
- public ReferenceType apply(ReferenceType defaultVDC) {
- org.jclouds.trmk.vcloud_0_8.domain.VDC vDC = uriToVDC.get().get(defaultVDC.getHref());
- checkState(vDC != null, "could not retrieve VDC at %s", defaultVDC);
- return selector.apply(vDC.getAvailableNetworks().values());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java
deleted file mode 100644
index ded2452..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultOrgForUser.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_ORG;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.domain.VCloudSession;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultOrgForUser implements Supplier<ReferenceType> {
-
- private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
- private final Supplier<VCloudSession> session;
-
- @Inject
- public DefaultOrgForUser(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
- @Org Predicate<ReferenceType> defaultSelector, Supplier<VCloudSession> session) {
- this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
- valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_ORG, checkNotNull(
- defaultSelector, "defaultSelector"));
- this.session = checkNotNull(session, "session");
- }
-
- @Override
- public ReferenceType get() {
- return selector.apply(session.get().getOrgs().values());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java
deleted file mode 100644
index 42cc3d1..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultTasksListForOrg.java
+++ /dev/null
@@ -1,63 +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.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_TASKSLIST;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.TasksList;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultTasksListForOrg implements Function<ReferenceType, ReferenceType> {
- private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
- private final Supplier<Map<String, ? extends Org>> nameToOrg;
-
- @Inject
- public DefaultTasksListForOrg(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
- @TasksList Predicate<ReferenceType> defaultSelector, Supplier<Map<String, ? extends Org>> nameToOrg) {
- this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
- valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_TASKSLIST,
- checkNotNull(defaultSelector, "defaultSelector"));
- this.nameToOrg = checkNotNull(nameToOrg, "nameToOrg");
- }
-
- @Override
- public ReferenceType apply(ReferenceType defaultOrg) {
- org.jclouds.trmk.vcloud_0_8.domain.Org org = nameToOrg.get().get(defaultOrg.getName());
- checkState(org != null, "could not retrieve Org at %s", defaultOrg);
- return selector.apply(org.getTasksLists().values());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java
deleted file mode 100644
index 5787c48..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVCloudReferencesModule.java
+++ /dev/null
@@ -1,140 +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.trmk.vcloud_0_8.config;
-
-import java.net.URI;
-import java.util.Map;
-
-import javax.inject.Singleton;
-
-import org.jclouds.trmk.vcloud_0_8.domain.Catalog;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Predicates;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.inject.AbstractModule;
-import com.google.inject.Injector;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
-
-/**
- *
- * @author Adrian Cole
- */
-public class DefaultVCloudReferencesModule extends AbstractModule {
-
- @Override
- protected void configure() {
- bind(new TypeLiteral<Supplier<ReferenceType>>() {
- }).annotatedWith(Org.class).to(DefaultOrgForUser.class);
- }
-
- @Provides
- @Singleton
- @org.jclouds.trmk.vcloud_0_8.endpoints.Org
- protected Predicate<ReferenceType> provideDefaultOrgSelector(Injector i) {
- return Predicates.alwaysTrue();
- }
-
- @Provides
- @org.jclouds.trmk.vcloud_0_8.endpoints.TasksList
- @Singleton
- protected Supplier<ReferenceType> provideDefaultTasksList(DefaultTasksListForOrg defaultTasksListURIForOrg,
- @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
- return Suppliers.compose(defaultTasksListURIForOrg, defaultOrg);
- }
-
- @Provides
- @Singleton
- @org.jclouds.trmk.vcloud_0_8.endpoints.TasksList
- protected Predicate<ReferenceType> provideDefaultTasksListSelector(Injector i) {
- return Predicates.alwaysTrue();
- }
-
- @Provides
- @org.jclouds.trmk.vcloud_0_8.endpoints.Catalog
- @Singleton
- protected Supplier<ReferenceType> provideDefaultCatalog(DefaultCatalogForOrg defaultCatalogURIForOrg,
- @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
- return Suppliers.compose(defaultCatalogURIForOrg, defaultOrg);
- }
-
- @Provides
- @Singleton
- @org.jclouds.trmk.vcloud_0_8.endpoints.Catalog
- protected Predicate<ReferenceType> provideDefaultCatalogSelector(Injector i) {
- return Predicates.alwaysTrue();
- }
-
- @Provides
- @Singleton
- protected Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> provideCatalogsById(
- Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> supplier) {
- return Suppliers
- .compose(
- new Function<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>, Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>() {
-
- @Override
- public Map<URI, ? extends Catalog> apply(Map<String, Map<String, ? extends Catalog>> arg0) {
- Builder<URI, Catalog> builder = ImmutableMap.builder();
- for (Map<String, ? extends Catalog> v1 : arg0.values()) {
- for (Catalog v2 : v1.values()) {
- builder.put(v2.getHref(), v2);
- }
- }
- return builder.build();
- }
-
- }, supplier);
- }
-
- @Provides
- @org.jclouds.trmk.vcloud_0_8.endpoints.VDC
- @Singleton
- protected Supplier<ReferenceType> provideDefaultVDC(DefaultVDCForOrg defaultVDCURIForOrg,
- @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
- return Suppliers.compose(defaultVDCURIForOrg, defaultOrg);
- }
-
- @Provides
- @Singleton
- @org.jclouds.trmk.vcloud_0_8.endpoints.VDC
- protected Predicate<ReferenceType> provideDefaultVDCSelector(Injector i) {
- return Predicates.alwaysTrue();
- }
-
- @Provides
- @org.jclouds.trmk.vcloud_0_8.endpoints.Network
- @Singleton
- protected Supplier<ReferenceType> provideDefaultNetwork(DefaultNetworkForVDC defaultNetworkURIForVDC,
- @org.jclouds.trmk.vcloud_0_8.endpoints.VDC Supplier<ReferenceType> defaultVDC) {
- return Suppliers.compose(defaultNetworkURIForVDC, defaultVDC);
- }
-
- @Provides
- @Singleton
- @org.jclouds.trmk.vcloud_0_8.endpoints.Network
- protected Predicate<ReferenceType> provideDefaultNetworkSelector(Injector i) {
- return Predicates.alwaysTrue();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java
deleted file mode 100644
index c064016..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/DefaultVDCForOrg.java
+++ /dev/null
@@ -1,63 +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.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_DEFAULT_VDC;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.config.ValueOfConfigurationKeyOrNull;
-import org.jclouds.trmk.vcloud_0_8.domain.Org;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.endpoints.VDC;
-import org.jclouds.trmk.vcloud_0_8.suppliers.OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class DefaultVDCForOrg implements Function<ReferenceType, ReferenceType> {
- private final OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault selector;
- private final Supplier<Map<String, ? extends Org>> nameToOrg;
-
- @Inject
- public DefaultVDCForOrg(ValueOfConfigurationKeyOrNull valueOfConfigurationKeyOrNull,
- @VDC Predicate<ReferenceType> defaultSelector, Supplier<Map<String, ? extends Org>> nameToOrg) {
- this.selector = new OnlyReferenceTypeFirstWithNameMatchingConfigurationKeyOrDefault(checkNotNull(
- valueOfConfigurationKeyOrNull, "valueOfConfigurationKeyOrNull"), PROPERTY_VCLOUD_DEFAULT_VDC, checkNotNull(
- defaultSelector, "defaultSelector"));
- this.nameToOrg = checkNotNull(nameToOrg, "nameToOrg");
- }
-
- @Override
- public ReferenceType apply(ReferenceType defaultOrg) {
- org.jclouds.trmk.vcloud_0_8.domain.Org org = nameToOrg.get().get(defaultOrg.getName());
- checkState(org != null, "could not retrieve Org at %s", defaultOrg);
- return selector.apply(org.getVDCs().values());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java
deleted file mode 100644
index 662d549..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/config/TerremarkVCloudHttpApiModule.java
+++ /dev/null
@@ -1,558 +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.trmk.vcloud_0_8.config;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.collect.Iterables.concat;
-import static com.google.common.collect.Iterables.getLast;
-import static com.google.common.collect.Iterables.transform;
-import static com.google.common.collect.Maps.transformValues;
-import static com.google.common.collect.Maps.uniqueIndex;
-import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL;
-import static org.jclouds.rest.config.BinderUtils.bindHttpApi;
-import static org.jclouds.trmk.vcloud_0_8.reference.VCloudConstants.PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED;
-import static org.jclouds.util.Predicates2.retry;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.SortedMap;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.domain.Location;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.location.suppliers.ImplicitLocationSupplier;
-import org.jclouds.location.suppliers.LocationsSupplier;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.annotations.ApiVersion;
-import org.jclouds.rest.config.HttpApiModule;
-import org.jclouds.rest.suppliers.MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier;
-import org.jclouds.trmk.vcloud_0_8.TerremarkVCloudApi;
-import org.jclouds.trmk.vcloud_0_8.VCloudToken;
-import org.jclouds.trmk.vcloud_0_8.compute.functions.FindLocationForResource;
-import org.jclouds.trmk.vcloud_0_8.domain.Catalog;
-import org.jclouds.trmk.vcloud_0_8.domain.CatalogItem;
-import org.jclouds.trmk.vcloud_0_8.domain.ReferenceType;
-import org.jclouds.trmk.vcloud_0_8.domain.VAppTemplate;
-import org.jclouds.trmk.vcloud_0_8.domain.VCloudSession;
-import org.jclouds.trmk.vcloud_0_8.domain.VDC;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Keys;
-import org.jclouds.trmk.vcloud_0_8.endpoints.Org;
-import org.jclouds.trmk.vcloud_0_8.endpoints.OrgList;
-import org.jclouds.trmk.vcloud_0_8.endpoints.VCloudLogin;
-import org.jclouds.trmk.vcloud_0_8.functions.AllCatalogItemsInCatalog;
-import org.jclouds.trmk.vcloud_0_8.functions.AllCatalogItemsInOrg;
-import org.jclouds.trmk.vcloud_0_8.functions.AllCatalogsInOrg;
-import org.jclouds.trmk.vcloud_0_8.functions.AllVDCsInOrg;
-import org.jclouds.trmk.vcloud_0_8.functions.OrgsForLocations;
-import org.jclouds.trmk.vcloud_0_8.functions.OrgsForNames;
-import org.jclouds.trmk.vcloud_0_8.functions.VAppTemplatesForCatalogItems;
-import org.jclouds.trmk.vcloud_0_8.handlers.ParseTerremarkVCloudErrorFromHttpResponse;
-import org.jclouds.trmk.vcloud_0_8.internal.TerremarkVCloudLoginApi;
-import org.jclouds.trmk.vcloud_0_8.internal.TerremarkVCloudVersionsApi;
-import org.jclouds.trmk.vcloud_0_8.location.DefaultVDC;
-import org.jclouds.trmk.vcloud_0_8.location.OrgAndVDCToLocationSupplier;
-import org.jclouds.trmk.vcloud_0_8.predicates.TaskSuccess;
-import org.jclouds.util.Strings2;
-
-import com.google.common.base.Function;
-import com.google.common.base.Objects;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.common.collect.Maps;
-import com.google.inject.Injector;
-import com.google.inject.Provides;
-import com.google.inject.Scopes;
-import com.google.inject.TypeLiteral;
-
-public class TerremarkVCloudHttpApiModule<S> extends HttpApiModule<S> {
-
- public TerremarkVCloudHttpApiModule() {
- }
-
- @Override
- protected void configure() {
- super.configure();
- bind(new TypeLiteral<Function<Iterable<? extends CatalogItem>, Iterable<? extends VAppTemplate>>>() {
- }).to(new TypeLiteral<VAppTemplatesForCatalogItems>() {
- });
- installDefaultVCloudEndpointsModule();
- bind(new TypeLiteral<Function<ReferenceType, Location>>() {
- }).to(new TypeLiteral<FindLocationForResource>() {
- });
- bind(new TypeLiteral<Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends Catalog>>>() {
- }).to(new TypeLiteral<AllCatalogsInOrg>() {
- });
- bind(new TypeLiteral<Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends VDC>>>() {
- }).to(new TypeLiteral<AllVDCsInOrg>() {
- });
- bind(new TypeLiteral<Function<Iterable<String>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>>>() {
- }).to(new TypeLiteral<OrgsForNames>() {
- });
- bind(
- new TypeLiteral<Function<Iterable<? extends Location>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>>>() {
- }).to(new TypeLiteral<OrgsForLocations>() {
- });
- bind(new TypeLiteral<Function<Catalog, Iterable<? extends CatalogItem>>>() {
- }).to(new TypeLiteral<AllCatalogItemsInCatalog>() {
- });
- bind(new TypeLiteral<Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends CatalogItem>>>() {
- }).to(new TypeLiteral<AllCatalogItemsInOrg>() {
- });
- bindHttpApi(binder(), TerremarkVCloudVersionsApi.class);
- bindHttpApi(binder(), TerremarkVCloudLoginApi.class);
- }
-
- @Provides
- @Singleton
- @org.jclouds.trmk.vcloud_0_8.endpoints.VDC
- protected Supplier<Map<String, String>> provideVDCtoORG(
- Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgNameToOrgSupplier) {
- return Suppliers.compose(
- new Function<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>, Map<String, String>>() {
-
- @Override
- public Map<String, String> apply(Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org> arg0) {
- Builder<String, String> returnVal = ImmutableMap.builder();
- for (Entry<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org> orgr : arg0.entrySet()) {
- for (String vdc : orgr.getValue().getVDCs().keySet()) {
- returnVal.put(vdc, orgr.getKey());
- }
- }
- return returnVal.build();
- }
- }, orgNameToOrgSupplier);
-
- }
-
- @Provides
- @Singleton
- protected Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> provideOrgMapCache(
- @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
- OrgMapSupplier supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- @Provides
- @Singleton
- @OrgList
- protected Supplier<URI> provideOrgListURI(Supplier<VCloudSession> sessionSupplier) {
- return Suppliers.compose(new Function<VCloudSession, URI>() {
-
- @Override
- public URI apply(VCloudSession arg0) {
- return URI.create(getLast(arg0.getOrgs().values()).getHref().toASCIIString().replaceAll("org/.*", "org"));
- }
-
- @Override
- public String toString() {
- return "orgListURI()";
- }
-
- }, sessionSupplier);
- }
-
- @Singleton
- public static class OrgMapSupplier implements
- Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> {
- protected final Supplier<VCloudSession> sessionSupplier;
- protected final Function<Iterable<String>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> organizationsForNames;
-
- @Inject
- protected OrgMapSupplier(Supplier<VCloudSession> sessionSupplier,
- Function<Iterable<String>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> organizationsForNames) {
- this.sessionSupplier = sessionSupplier;
- this.organizationsForNames = organizationsForNames;
- }
-
- @Override
- public Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org> get() {
- return uniqueIndex(organizationsForNames.apply(sessionSupplier.get().getOrgs().keySet()), name);
- }
- }
-
- protected void installDefaultVCloudEndpointsModule() {
- install(new DefaultVCloudReferencesModule());
- }
-
- @Singleton
- public static class OrgCatalogSupplier implements
- Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> {
- protected final Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier;
- protected final Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> allCatalogsInOrg;
-
- @Inject
- protected OrgCatalogSupplier(
- Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier,
- Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> allCatalogsInOrg) {
- this.orgSupplier = orgSupplier;
- this.allCatalogsInOrg = allCatalogsInOrg;
- }
-
- @Override
- public Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>> get() {
- return transformValues(
- transformValues(orgSupplier.get(), allCatalogsInOrg),
- new Function<Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>() {
-
- @Override
- public Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog> apply(
- Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog> from) {
- return uniqueIndex(from, name);
- }
-
- });
- }
- }
-
- @VCloudToken
- @Provides
- String provideVCloudToken(Supplier<VCloudSession> cache) {
- return checkNotNull(cache.get().getVCloudToken(), "No token present in session");
- }
-
- @Provides
- @org.jclouds.trmk.vcloud_0_8.endpoints.Org
- @Singleton
- protected Supplier<Map<String, ReferenceType>> provideVDCtoORG(@Named(PROPERTY_SESSION_INTERVAL) long seconds,
- AtomicReference<AuthorizationException> authException, OrgNameToOrgSupplier supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- @Provides
- @Singleton
- protected Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> provideURIToVDC(
- @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
- URItoVDC supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- @Singleton
- public static class URItoVDC implements Supplier<Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> {
- private final Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> orgVDCMap;
-
- @Inject
- URItoVDC(Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> orgVDCMap) {
- this.orgVDCMap = orgVDCMap;
- }
-
- @Override
- public Map<URI, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> get() {
- return uniqueIndex(
- concat(transform(
- orgVDCMap.get().values(),
- new Function<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>() {
-
- @Override
- public Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> apply(
- Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> from) {
- return from.values();
- }
-
- })), new Function<org.jclouds.trmk.vcloud_0_8.domain.VDC, URI>() {
-
- @Override
- public URI apply(org.jclouds.trmk.vcloud_0_8.domain.VDC from) {
- return from.getHref();
- }
-
- });
- }
-
- }
-
- static final Function<ReferenceType, String> name = new Function<ReferenceType, String>() {
-
- @Override
- public String apply(ReferenceType from) {
- return from.getName();
- }
-
- };
-
-
- @Provides
- @Singleton
- @VCloudLogin
- protected Supplier<URI> provideAuthenticationURI(final TerremarkVCloudVersionsApi versionService,
- @ApiVersion final String version) {
- return new Supplier<URI>() {
-
- @Override
- public URI get() {
- SortedMap<String, URI> versions = versionService.getSupportedVersions();
- checkState(versions.size() > 0, "No versions present");
- checkState(versions.containsKey(version), "version " + version + " not present in: " + versions);
- return versions.get(version);
- }
-
- public String toString() {
- return "login()";
- }
- };
- }
-
-
- @Singleton
- private static class OrgNameToOrgSupplier implements Supplier<Map<String, ReferenceType>> {
- private final Supplier<VCloudSession> sessionSupplier;
-
- @Inject
- OrgNameToOrgSupplier(Supplier<VCloudSession> sessionSupplier) {
- this.sessionSupplier = sessionSupplier;
- }
-
- @Override
- public Map<String, ReferenceType> get() {
- return sessionSupplier.get().getOrgs();
- }
-
- }
-
- @Provides
- @Singleton
- protected Supplier<org.jclouds.trmk.vcloud_0_8.domain.Org> provideOrg(
- final Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier,
- @org.jclouds.trmk.vcloud_0_8.endpoints.Org Supplier<ReferenceType> defaultOrg) {
- return Suppliers.compose(new Function<ReferenceType, org.jclouds.trmk.vcloud_0_8.domain.Org>() {
-
- @Override
- public org.jclouds.trmk.vcloud_0_8.domain.Org apply(ReferenceType input) {
- return orgSupplier.get().get(input.getName());
-
- }
- }, defaultOrg);
- }
-
- @Provides
- @Singleton
- protected Predicate<URI> successTester(Injector injector,
- @Named(PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED) long completed) {
- return retry(injector.getInstance(TaskSuccess.class), completed);
- }
-
- @Provides
- @Singleton
- protected Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> provideOrgCatalogItemMapSupplierCache(
- @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
- OrgCatalogSupplier supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- @Provides
- @Singleton
- protected Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> provideOrgVDCSupplierCache(
- @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
- OrgVDCSupplier supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- @Singleton
- public static class OrgVDCSupplier implements
- Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>> {
- protected final Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier;
- private final Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> allVDCsInOrg;
-
- @Inject
- protected OrgVDCSupplier(
- Supplier<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Org>> orgSupplier,
- Function<org.jclouds.trmk.vcloud_0_8.domain.Org, Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> allVDCsInOrg) {
- this.orgSupplier = orgSupplier;
- this.allVDCsInOrg = allVDCsInOrg;
- }
-
- @Override
- public Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>> get() {
- return transformValues(
- transformValues(orgSupplier.get(), allVDCsInOrg),
- new Function<Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC>>() {
-
- @Override
- public Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> apply(
- Iterable<? extends org.jclouds.trmk.vcloud_0_8.domain.VDC> from) {
- return uniqueIndex(from, name);
- }
-
- });
- }
- }
-
- @Singleton
- public static class OrgCatalogItemSupplier implements
- Supplier<Map<String, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>>> {
- protected final Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> catalogSupplier;
- protected final Function<org.jclouds.trmk.vcloud_0_8.domain.Catalog, Iterable<? extends CatalogItem>> allCatalogItemsInCatalog;
-
- @Inject
- protected OrgCatalogItemSupplier(
- Supplier<Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>>> catalogSupplier,
- Function<org.jclouds.trmk.vcloud_0_8.domain.Catalog, Iterable<? extends CatalogItem>> allCatalogItemsInCatalog) {
- this.catalogSupplier = catalogSupplier;
- this.allCatalogItemsInCatalog = allCatalogItemsInCatalog;
- }
-
- @Override
- public Map<String, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>> get() {
- return transformValues(
- catalogSupplier.get(),
- new Function<Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog>, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>>() {
-
- @Override
- public Map<String, Map<String, ? extends CatalogItem>> apply(
- Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.Catalog> from) {
- return transformValues(
- from,
- new Function<org.jclouds.trmk.vcloud_0_8.domain.Catalog, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>() {
-
- @Override
- public Map<String, ? extends CatalogItem> apply(
- org.jclouds.trmk.vcloud_0_8.domain.Catalog from) {
- return uniqueIndex(allCatalogItemsInCatalog.apply(from), name);
- }
- });
-
- }
- });
- }
- }
-
- @Provides
- @Singleton
- protected Supplier<Map<String, Map<String, Map<String, ? extends org.jclouds.trmk.vcloud_0_8.domain.CatalogItem>>>> provideOrgCatalogItemSupplierCache(
- @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
- OrgCatalogItemSupplier supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- /**
- *
- * @return a listing of all orgs that the current user has access to.
- */
- @Provides
- @Org
- Map<String, ReferenceType> listOrgs(Supplier<VCloudSession> sessionSupplier) {
- return sessionSupplier.get().getOrgs();
- }
-
-
- @Provides
- @Singleton
- protected Supplier<VCloudSession> provideVCloudTokenCache(@Named(PROPERTY_SESSION_INTERVAL) long seconds,
- AtomicReference<AuthorizationException> authException, final TerremarkVCloudLoginApi login) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException,
- new Supplier<VCloudSession>() {
-
- @Override
- public VCloudSession get() {
- return login.login();
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper(login).add("method", "login").toString();
- }
- }, seconds, TimeUnit.SECONDS);
- }
-
- @Singleton
- @Provides
- @Named("CreateInternetService")
- String provideCreateInternetService() throws IOException {
- return Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateInternetService.xml"));
- }
-
- @Singleton
- @Provides
- @Named("CreateNodeService")
- String provideCreateNodeService() throws IOException {
- return Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateNodeService.xml"));
- }
-
- @Override
- protected void bindErrorHandlers() {
- bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseTerremarkVCloudErrorFromHttpResponse.class);
- bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseTerremarkVCloudErrorFromHttpResponse.class);
- bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseTerremarkVCloudErrorFromHttpResponse.class);
- }
-
- @Singleton
- public static class OrgNameToKeysListSupplier implements Supplier<Map<String, ReferenceType>> {
- protected final Supplier<VCloudSession> sessionSupplier;
- private final TerremarkVCloudApi client;
-
- @Inject
- protected OrgNameToKeysListSupplier(Supplier<VCloudSession> sessionSupplier, TerremarkVCloudApi client) {
- this.sessionSupplier = sessionSupplier;
- this.client = client;
- }
-
- @Override
- public Map<String, ReferenceType> get() {
- return Maps.transformValues(sessionSupplier.get().getOrgs(), new Function<ReferenceType, ReferenceType>() {
-
- @Override
- public ReferenceType apply(ReferenceType from) {
- return client.findOrgNamed(from.getName()).getKeys();
- }
-
- });
- }
- }
-
- @Provides
- @Singleton
- @Keys
- protected Supplier<Map<String, ReferenceType>> provideOrgToKeysListCache(
- @Named(PROPERTY_SESSION_INTERVAL) long seconds, AtomicReference<AuthorizationException> authException,
- OrgNameToKeysListSupplier supplier) {
- return MemoizedRetryOnTimeOutButNotOnAuthorizationExceptionSupplier.create(authException, supplier, seconds,
- TimeUnit.SECONDS);
- }
-
- @Singleton
- @Provides
- @Named("CreateKey")
- String provideCreateKey() throws IOException {
- return Strings2.toStringAndClose(getClass().getResourceAsStream("/CreateKey.xml"));
- }
-
- @Override
- protected void installLocations() {
- super.installLocations();
- bind(ImplicitLocationSupplier.class).to(DefaultVDC.class).in(Scopes.SINGLETON);
- bind(LocationsSupplier.class).to(OrgAndVDCToLocationSupplier.class).in(Scopes.SINGLETON);
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java
deleted file mode 100644
index 004ef70..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Capacity.java
+++ /dev/null
@@ -1,108 +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.trmk.vcloud_0_8.domain;
-
-/**
- * reports storage resource consumption in a vDC.
- *
- * @author Adrian Cole
- */
-public class Capacity {
-
- private final String units;
- private final long allocated;
- private final long limit;
- private final int used;
- private final long overhead;
-
- public Capacity(String units, long allocated, long limit, int used, long overhead) {
- this.units = units;
- this.limit = limit;
- this.allocated = allocated;
- this.used = used;
- this.overhead = overhead;
- }
-
- public String getUnits() {
- return units;
- }
-
- public long getAllocated() {
- return allocated;
- }
-
- public long getLimit() {
- return limit;
- }
-
- /**
- * percentage of the allocation in use.
- */
- public int getUsed() {
- return used;
- }
-
- /**
- * number of Units allocated to vShield Manager virtual machines provisioned from this vDC.
- */
- public long getOverhead() {
- return overhead;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (int) (allocated ^ (allocated >>> 32));
- result = prime * result + (int) (limit ^ (limit >>> 32));
- result = prime * result + (int) (overhead ^ (overhead >>> 32));
- result = prime * result + ((units == null) ? 0 : units.hashCode());
- result = prime * result + used;
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- Capacity other = (Capacity) obj;
- if (allocated != other.allocated)
- return false;
- if (limit != other.limit)
- return false;
- if (overhead != other.overhead)
- return false;
- if (units == null) {
- if (other.units != null)
- return false;
- } else if (!units.equals(other.units))
- return false;
- if (used != other.used)
- return false;
- return true;
- }
-
- @Override
- public String toString() {
- return "[allocated=" + allocated + ", limit=" + limit + ", overhead=" + overhead + ", units=" + units + ", used="
- + used + "]";
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java
deleted file mode 100644
index 152facb..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/Catalog.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-import java.util.Map;
-
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.trmk.vcloud_0_8.domain.internal.CatalogImpl;
-
-import com.google.inject.ImplementedBy;
-
-/**
- * @author Adrian Cole
- */
-@org.jclouds.trmk.vcloud_0_8.endpoints.Catalog
-@ImplementedBy(CatalogImpl.class)
-public interface Catalog extends ReferenceType, Map<String, ReferenceType> {
-
- /**
- * optional description
- *
- * @since vcloud api 0.8
- */
- @Nullable
- String getDescription();
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java
deleted file mode 100644
index f822909..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CatalogItem.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-import java.util.Map;
-
-import org.jclouds.trmk.vcloud_0_8.domain.internal.CatalogItemImpl;
-
-import com.google.inject.ImplementedBy;
-
-/**
- * @author Adrian Cole
- */
-@ImplementedBy(CatalogItemImpl.class)
-public interface CatalogItem extends ReferenceType {
-
- String getDescription();
-
- ReferenceType getEntity();
-
- Map<String, String> getProperties();
-
- ReferenceType getComputeOptions();
-
- ReferenceType getCustomizationOptions();
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java
deleted file mode 100644
index c0a3fd4..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/ComputePoolReference.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.trmk.vcloud_0_8.domain;
-
-import static com.google.common.base.Objects.equal;
-
-import java.net.URI;
-
-import com.google.common.base.Objects;
-
-/**
- * @author Adrian Cole
- */
-public class ComputePoolReference implements Comparable<ComputePoolReference> {
- public static Builder builder() {
- return new Builder();
- }
-
- public Builder toBuilder() {
- return builder().fromComputePoolReference(this);
- }
-
- public static class Builder {
- private URI href;
- private String name;
-
- public Builder href(URI href) {
- this.href = href;
- return this;
- }
-
- public Builder name(String name) {
- this.name = name;
- return this;
- }
-
- public ComputePoolReference build() {
- return new ComputePoolReference(href, name);
- }
-
- public Builder fromComputePoolReference(ComputePoolReference in) {
- return href(in.getHref()).name(in.getName());
- }
-
- }
-
- private final URI href;
- private final String name;
-
- public ComputePoolReference(URI href, String name) {
- this.href = href;
- this.name = name;
- }
-
- public int compareTo(ComputePoolReference that) {
- return (this == that) ? 0 : getHref().compareTo(that.getHref());
- }
-
- public URI getHref() {
- return href;
- }
-
- public String getName() {
- return name;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o)
- return true;
- if (o == null || getClass() != o.getClass())
- return false;
- ComputePoolReference that = ComputePoolReference.class.cast(o);
- return equal(this.href, that.href) && equal(this.name, that.name);
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(href, name);
- }
-
- @Override
- public String toString() {
- return Objects.toStringHelper("").add("href", href).add("name", name).toString();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-jclouds/blob/ddfefd7e/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java
----------------------------------------------------------------------
diff --git a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java b/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java
deleted file mode 100644
index 359a7a9..0000000
--- a/common/trmk/src/main/java/org/jclouds/trmk/vcloud_0_8/domain/CustomizationParameters.java
+++ /dev/null
@@ -1,86 +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.trmk.vcloud_0_8.domain;
-
-/**
- * The response lists which customization options are supported for this
- * particular vApp. The possible customization options are Network and Password.
- *
- * @author Adrian Cole
- * @see <a
- * href="https://community.vcloudexpress.terremark.com/en-us/product_docs/w/wiki/6-using-the-vcloud-express-api.aspx"
- * >Terremark documentation</a>
- */
-public class CustomizationParameters {
- private final boolean customizeNetwork;
- private final boolean customizePassword;
- private final boolean customizeSSH;
-
- public CustomizationParameters(boolean customizeNetwork,
- boolean customizePassword, boolean customizeSSH) {
- this.customizeNetwork = customizeNetwork;
- this.customizePassword = customizePassword;
- this.customizeSSH = customizeSSH;
- }
-
- public boolean canCustomizeNetwork() {
- return customizeNetwork;
- }
-
- public boolean canCustomizePassword() {
- return customizePassword;
- }
-
- public boolean canCustomizeSSH() {
- return customizeSSH;
- }
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + (customizeNetwork ? 1231 : 1237);
- result = prime * result + (customizePassword ? 1231 : 1237);
- result = prime * result + (customizeSSH ? 1231 : 1237);
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- CustomizationParameters other = (CustomizationParameters) obj;
- if (customizeNetwork != other.customizeNetwork)
- return false;
- if (customizePassword != other.customizePassword)
- return false;
- if (customizeSSH != other.customizeSSH)
- return false;
- return true;
- }
-
- @Override
- public String toString() {
- return "CustomizationParameters [customizeNetwork=" + customizeNetwork
- + ", customizePassword=" + customizePassword + ", customizeSSH="
- + customizeSSH + "]";
- }
-}