http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateVMGroupOptions.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateVMGroupOptions.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateVMGroupOptions.java deleted file mode 100644 index 77097ac..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateVMGroupOptions.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.options; - -import org.jclouds.http.options.BaseHttpRequestOptions; - -import com.google.common.collect.ImmutableSet; - -/** - * Options used to control updates to VMGroups - * - * @see <a - * href="http://download.cloud.com/releases/2.2.0/api/user/updateInstanceGroup.html" - * /> - */ -public class UpdateVMGroupOptions extends BaseHttpRequestOptions { - - public static final UpdateVMGroupOptions NONE = new UpdateVMGroupOptions(); - - /** - * @param name new name of the VMGroup - */ - public UpdateVMGroupOptions name(String name) { - this.queryParameters.replaceValues("name", ImmutableSet.of(name)); - return this; - } - - public static class Builder { - /** - * @see org.jclouds.cloudstack.options.UpdateVMGroupOptions#name - */ - public static UpdateVMGroupOptions name(String name) { - UpdateVMGroupOptions options = new UpdateVMGroupOptions(); - return options.name(name); - } - } - -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateZoneOptions.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateZoneOptions.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateZoneOptions.java deleted file mode 100644 index ab22e96..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/options/UpdateZoneOptions.java +++ /dev/null @@ -1,258 +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.cloudstack.options; - -import static com.google.common.base.Preconditions.checkArgument; - -import java.util.List; - -import org.jclouds.cloudstack.domain.AllocationState; -import org.jclouds.http.options.BaseHttpRequestOptions; - -import com.google.common.collect.ImmutableSet; - -/** - * Options used to control how a zone is updated - * - * @see <a href= - * "http://download.cloud.com/releases/2.2.0/api_2.2.12/global_admin/updateZone.html" - * /> - */ -public class UpdateZoneOptions extends BaseHttpRequestOptions { - - public static final UpdateZoneOptions NONE = new UpdateZoneOptions(); - - /** - * @param allocationState - * allocation state of this Zone for allocation of new resources - */ - public UpdateZoneOptions allocationState(AllocationState allocationState) { - this.queryParameters.replaceValues("allocationstate", ImmutableSet.of(allocationState.toString())); - return this; - } - - /** - * @param details - * the details for the Zone - */ - public UpdateZoneOptions details(String details) { - this.queryParameters.replaceValues("details", ImmutableSet.of(details)); - return this; - } - - /** - * @param dhcpProvider - * the dhcp Provider for the Zone - */ - public UpdateZoneOptions dhcpProvider(String dhcpProvider) { - this.queryParameters.replaceValues("dhcpprovider", ImmutableSet.of(dhcpProvider)); - return this; - } - - /** - * @param externalDnsServers - * the list of external DNS servers - */ - public UpdateZoneOptions externalDns(List<String> externalDnsServers) { - checkArgument(externalDnsServers.size() == 1 || externalDnsServers.size() == 2, - "The list of DNS servers should have 1 or 2 elements"); - this.queryParameters.replaceValues("dns1", - ImmutableSet.of(externalDnsServers.get(0))); - if (externalDnsServers.size() == 2) { - this.queryParameters.replaceValues("dns2", - ImmutableSet.of(externalDnsServers.get(1))); - } - return this; - } - - /** - * @param internalDnsServers - * the list of internal DNS for the Zone - */ - public UpdateZoneOptions internalDns(List<String> internalDnsServers) { - checkArgument(internalDnsServers.size() == 1 || internalDnsServers.size() == 2, - "The list of internal DNS servers should have 1 or 2 elements"); - this.queryParameters.replaceValues("internaldns1", - ImmutableSet.of(internalDnsServers.get(0))); - if (internalDnsServers.size() == 2) { - this.queryParameters.replaceValues("internaldns2", - ImmutableSet.of(internalDnsServers.get(1))); - } - return this; - } - - /** - * @param dnsSearchOrder - * the dns search order list - */ - public UpdateZoneOptions dnsSearchOrder(String dnsSearchOrder) { - this.queryParameters.replaceValues("dnssearchorder", ImmutableSet.of(dnsSearchOrder)); - return this; - } - - /** - * @param domainName - * network domain name for the networks in zone - */ - public UpdateZoneOptions domainName(String domainName) { - this.queryParameters.replaceValues("domain", ImmutableSet.of(domainName)); - return this; - } - - /** - * @param guestCIDRAddress - * the guest CIDR address for the Zone - */ - public UpdateZoneOptions guestCIDRAddress(String guestCIDRAddress) { - this.queryParameters.replaceValues("guestcidraddress", ImmutableSet.of(guestCIDRAddress)); - return this; - } - - /** - * @param securityGroupEnabled - * true if network is security group enabled, false otherwise - */ - public UpdateZoneOptions securityGroupEnabled(boolean securityGroupEnabled) { - this.queryParameters.replaceValues("securitygroupenabled", ImmutableSet.of(securityGroupEnabled + "")); - return this; - } - - /** - * You can only make a private Zone public, not the other way around - */ - public UpdateZoneOptions makePublic() { - this.queryParameters.replaceValues("ispublic", ImmutableSet.of("true")); - return this; - } - - /** - * @param name - * the name of the Zone - */ - public UpdateZoneOptions name(String name) { - this.queryParameters.replaceValues("name", ImmutableSet.of(name)); - return this; - } - - /** - * @param vlan - * the VLAN for the Zone - */ - public UpdateZoneOptions vlan(String vlan) { - this.queryParameters.replaceValues("vlan", ImmutableSet.of(vlan)); - return this; - } - - public static class Builder { - - /** - * @see UpdateZoneOptions#allocationState - */ - public static UpdateZoneOptions allocationState(AllocationState allocationState) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.allocationState(allocationState); - } - - /** - * @see UpdateZoneOptions#details - */ - public static UpdateZoneOptions details(String details) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.details(details); - } - - /** - * @see UpdateZoneOptions#dhcpProvider - */ - public static UpdateZoneOptions dhcpProvider(String dhcpProvider) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.dhcpProvider(dhcpProvider); - } - - /** - * @see UpdateZoneOptions#externalDns - */ - public static UpdateZoneOptions externalDns(List<String> externalDnsServers) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.externalDns(externalDnsServers); - } - - /** - * @see UpdateZoneOptions#internalDns - */ - public static UpdateZoneOptions internalDns(List<String> internalDnsServers) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.internalDns(internalDnsServers); - } - - /** - * @see UpdateZoneOptions#dnsSearchOrder - */ - public static UpdateZoneOptions dnsSearchOrder(String dnsSearchOrder) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.dnsSearchOrder(dnsSearchOrder); - } - - /** - * @see UpdateZoneOptions#domainName - */ - public static UpdateZoneOptions domainName(String domainName) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.domainName(domainName); - } - - /** - * @see UpdateZoneOptions#guestCIDRAddress - */ - public static UpdateZoneOptions guestCIDRAddress(String guestCIDRAddress) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.guestCIDRAddress(guestCIDRAddress); - } - - /** - * @see UpdateZoneOptions#securityGroupEnabled - */ - public static UpdateZoneOptions securityGroupEnabled(boolean securityGroupEnabled) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.securityGroupEnabled(securityGroupEnabled); - } - - /** - * @see UpdateZoneOptions#makePublic - */ - public static UpdateZoneOptions makePublic() { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.makePublic(); - } - - /** - * @see UpdateZoneOptions#name - */ - public static UpdateZoneOptions name(String name) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.name(name); - } - - /** - * @see UpdateZoneOptions#vlan - */ - public static UpdateZoneOptions vlan(String vlan) { - UpdateZoneOptions options = new UpdateZoneOptions(); - return options.vlan(vlan); - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java deleted file mode 100644 index e518763..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/CorrectHypervisorForZone.java +++ /dev/null @@ -1,94 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Map; -import java.util.Set; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.Template; -import org.jclouds.cloudstack.domain.Zone; - -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; - -/** - * Templates can be present in a zone, and available, but not valid for launch - * as their hypervisor isn't installed. - */ -@Singleton -public class CorrectHypervisorForZone implements Function<String, Predicate<Template>> { - private final Supplier<Map<String, Set<String>>> hypervisorsSupplier; - - @Inject - public CorrectHypervisorForZone(CloudStackApi client) { - this(Suppliers.ofInstance(new CloudStackApiToZoneToHypervisors().apply(checkNotNull(client, "client")))); - } - - public CorrectHypervisorForZone(Supplier<Map<String, Set<String>>> hypervisorsSupplier) { - this.hypervisorsSupplier = checkNotNull(hypervisorsSupplier, "hypervisorsSupplier"); - } - - private static class CloudStackApiToZoneToHypervisors implements - Function<CloudStackApi, Map<String, Set<String>>> { - - @Override - public Map<String, Set<String>> apply(CloudStackApi client) { - checkNotNull(client, "client"); - Builder<String, Set<String>> builder = ImmutableMap.builder(); - for (Zone zone : client.getZoneApi().listZones()) { - builder.put(zone.getId(), client.getHypervisorApi().listHypervisorsInZone(zone.getId())); - } - return builder.build(); - } - } - - @Override - public Predicate<Template> apply(final String zoneId) { - - final Set<String> acceptableHypervisorsInZone; - try { - acceptableHypervisorsInZone = this.hypervisorsSupplier.get().get(zoneId); - } catch (NullPointerException e) { - throw new IllegalArgumentException("unknown zone: " + zoneId); - } - if (acceptableHypervisorsInZone.isEmpty()) - return Predicates.alwaysFalse(); - return new Predicate<Template>() { - - @Override - public boolean apply(Template input) { - return Predicates.in(acceptableHypervisorsInZone).apply(input.getHypervisor()); - } - - @Override - public String toString() { - return "hypervisorsInZone(" + zoneId + ", " + acceptableHypervisorsInZone + ")"; - } - }; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java deleted file mode 100644 index 3e45521..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/JobComplete.java +++ /dev/null @@ -1,67 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.annotation.Resource; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.AsyncJobException; -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.AsyncJob; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; -import com.google.inject.Inject; - -/** - * - * Tests to see if a job is in progress. - */ -@Singleton -public class JobComplete implements Predicate<String> { - - private final CloudStackApi client; - - @Resource - protected Logger logger = Logger.NULL; - - @Inject - public JobComplete(CloudStackApi client) { - this.client = client; - } - - public boolean apply(String jobId) { - logger.trace(">> looking for status on job %s", checkNotNull(jobId, "jobId")); - AsyncJob<?> job = refresh(jobId); - if (job == null) { - return false; - } - logger.trace("%s: looking for job status %s: currently: %s", job.getId(), 1, job.getStatus()); - if (job.hasFailed()) { - - throw new AsyncJobException(String.format("job %s failed with exception %s", - job.toString(), job.getError().toString())); - } - return job.hasSucceed(); - } - - private AsyncJob<?> refresh(String jobId) { - return client.getAsyncJobApi().getAsyncJob(jobId); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java deleted file mode 100644 index 7d7abc9..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/LoadBalancerRuleActive.java +++ /dev/null @@ -1,61 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.annotation.Resource; -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.LoadBalancerRule; -import org.jclouds.cloudstack.domain.LoadBalancerRule.State; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; - -/** - * - * Tests to see if a LoadBalancerRule is active - */ -@Singleton -public class LoadBalancerRuleActive implements Predicate<LoadBalancerRule> { - - private final CloudStackApi client; - - @Resource - protected Logger logger = Logger.NULL; - - @Inject - public LoadBalancerRuleActive(CloudStackApi client) { - this.client = client; - } - - public boolean apply(LoadBalancerRule rule) { - logger.trace("looking for state on rule %s", checkNotNull(rule, "rule")); - rule = refresh(rule); - if (rule == null) - return false; - logger.trace("%s: looking for rule state %s: currently: %s", rule.getId(), State.ACTIVE, rule.getState()); - return rule.getState() == State.ACTIVE; - } - - private LoadBalancerRule refresh(LoadBalancerRule rule) { - return client.getLoadBalancerApi().getLoadBalancerRule(rule.getId()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkOfferingPredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkOfferingPredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkOfferingPredicates.java deleted file mode 100644 index 680afbd..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkOfferingPredicates.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.predicates; - -import static com.google.common.base.Predicates.alwaysTrue; - -import org.jclouds.cloudstack.domain.GuestIPType; -import org.jclouds.cloudstack.domain.NetworkOffering; -import org.jclouds.cloudstack.domain.TrafficType; - -import com.google.common.base.Predicate; - -public class NetworkOfferingPredicates { - - /** - * - * @return true, if the offering supports creation of GuestVirtual Networks - */ - public static Predicate<NetworkOffering> supportsGuestVirtualNetworks() { - return new Predicate<NetworkOffering>() { - - @Override - public boolean apply(NetworkOffering arg0) { - return arg0.getTrafficType() == TrafficType.GUEST && arg0.getGuestIPType() == GuestIPType.VIRTUAL; - } - - @Override - public String toString() { - return "supportsGuestVirtualNetworks()"; - } - }; - } - - /** - * - * @return always returns true. - */ - public static Predicate<NetworkOffering> any() { - return alwaysTrue(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkPredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkPredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkPredicates.java deleted file mode 100644 index 0b89bc4..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/NetworkPredicates.java +++ /dev/null @@ -1,265 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.jclouds.cloudstack.domain.GuestIPType; -import org.jclouds.cloudstack.domain.Network; -import org.jclouds.cloudstack.domain.NetworkService; - -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; -import com.google.common.collect.Iterables; - -public class NetworkPredicates { - - public static enum HasFirewallServiceWhichSupportsStaticNAT implements Predicate<Network> { - INSTANCE; - - @Override - public boolean apply(Network arg0) { - return Iterables.any(checkNotNull(arg0, "network").getServices(), supportsStaticNAT); - } - - @Override - public String toString() { - return supportsStaticNAT.toString(); - } - } - - public static enum HasFirewallServiceWhichSupportsPortForwarding implements Predicate<Network> { - INSTANCE; - - @Override - public boolean apply(Network arg0) { - return Iterables.any(checkNotNull(arg0, "network").getServices(), supportsPortForwarding); - } - - @Override - public String toString() { - return supportsPortForwarding.toString(); - } - } - - public static enum HasLoadBalancerService implements Predicate<Network> { - INSTANCE; - - @Override - public boolean apply(Network arg0) { - return Iterables.any(checkNotNull(arg0, "network").getServices(), isLoadBalancerService); - } - - @Override - public String toString() { - return isLoadBalancerService.toString(); - } - } - - public static enum IsVirtualNetwork implements Predicate<Network> { - INSTANCE; - - @Override - public boolean apply(Network arg0) { - boolean network = isVirtualNetwork.apply(checkNotNull(arg0, "network").getGuestIPType()); - return network; - } - - @Override - public String toString() { - return isVirtualNetwork.toString(); - } - } - - public static enum IsSharedNetwork implements Predicate<Network> { - INSTANCE; - - @Override - public boolean apply(Network arg0) { - boolean network = isSharedNetwork.apply(checkNotNull(arg0, "network").getGuestIPType()); - return network; - } - - @Override - public String toString() { - return isSharedNetwork.toString(); - } - } - - public static enum IsIsolatedNetwork implements Predicate<Network> { - INSTANCE; - - @Override - public boolean apply(Network arg0) { - boolean network = isIsolatedNetwork.apply(checkNotNull(arg0, "network").getGuestIPType()); - return network; - } - - @Override - public String toString() { - return isIsolatedNetwork.toString(); - } - } - - - private static class DefaultNetworkInZone implements Predicate<Network> { - private final String zoneId; - - public DefaultNetworkInZone(String zoneId) { - this.zoneId = zoneId; - } - - @Override - public boolean apply(Network network) { - return network.getZoneId().equals(zoneId) && network.isDefault(); - } - } - - public static class NetworkServiceNamed implements Predicate<NetworkService> { - private final String name; - - public NetworkServiceNamed(String name) { - this.name = checkNotNull(name, "name"); - } - - @Override - public boolean apply(NetworkService input) { - return name.equals(checkNotNull(input, "networkService").getName()); - } - - @Override - public String toString() { - return "networkServiceNamed(" + name + ")"; - } - } - - public static class GuestIPTypeIs implements Predicate<GuestIPType> { - private final GuestIPType guestIPType; - - public GuestIPTypeIs(GuestIPType guestIPType) { - this.guestIPType = guestIPType; - } - - @Override - public boolean apply(GuestIPType guestIPType) { - return guestIPType == this.guestIPType; - } - - @Override - public String toString() { - return "guestIPTypeIs(" + guestIPType + ')'; - } - } - - public static class CapabilitiesInclude implements Predicate<NetworkService> { - private final String capability; - - public CapabilitiesInclude(String capability) { - this.capability = checkNotNull(capability, "capability"); - } - - @Override - public boolean apply(NetworkService input) { - return "true".equals(input.getCapabilities().get(capability)); - } - - @Override - public String toString() { - return "capabilitiesInclude(" + capability + ")"; - } - } - - public static final Predicate<NetworkService> supportsStaticNAT = Predicates.and(new NetworkServiceNamed("Firewall"), - new CapabilitiesInclude("StaticNat")); - - public static final Predicate<NetworkService> supportsPortForwarding = Predicates.and(new NetworkServiceNamed("Firewall"), - new CapabilitiesInclude("PortForwarding")); - - public static final Predicate<NetworkService> isLoadBalancerService = new NetworkServiceNamed("Lb"); - - public static final Predicate<GuestIPType> isVirtualNetwork = new GuestIPTypeIs(GuestIPType.VIRTUAL); - - public static final Predicate<GuestIPType> isIsolatedNetwork = new GuestIPTypeIs(GuestIPType.ISOLATED); - - public static final Predicate<GuestIPType> isSharedNetwork = new GuestIPTypeIs(GuestIPType.SHARED); - - /** - * - * @return true, if the network supports static NAT. - */ - public static Predicate<Network> supportsStaticNAT() { - return HasFirewallServiceWhichSupportsStaticNAT.INSTANCE; - } - - /** - * - * @return true, if the network supports port forwarding. - */ - public static Predicate<Network> supportsPortForwarding() { - return HasFirewallServiceWhichSupportsPortForwarding.INSTANCE; - } - - /** - * - * @return true, if the network supports load balancing. - */ - public static Predicate<Network> hasLoadBalancerService() { - return HasLoadBalancerService.INSTANCE; - } - - /** - * - * @return true, if the network is a virtual network. - */ - public static Predicate<Network> isVirtualNetwork() { - return IsVirtualNetwork.INSTANCE; - } - - /** - * - * @return true, if the network is an isolated network. - */ - public static Predicate<Network> isIsolatedNetwork() { - return IsIsolatedNetwork.INSTANCE; - } - - /** - * - * @return true, if the network is a shared network. - */ - public static Predicate<Network> isSharedNetwork() { - return IsSharedNetwork.INSTANCE; - } - - /** - * Filters for default networks in a specific zone. - * - * @param zoneId the ID of the required zone. - * @return networks in the zone that have the default flag set. - */ - public static Predicate<Network> defaultNetworkInZone(final String zoneId) { - return new DefaultNetworkInZone(zoneId); - } - - /** - * - * @return always returns true. - */ - public static Predicate<Network> any() { - return Predicates.alwaysTrue(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.java deleted file mode 100644 index 48397d8..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/OSCategoryIn.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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Map; -import java.util.Set; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.OSType; -import org.jclouds.cloudstack.domain.Template; - -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.Maps; - -@Singleton -public class OSCategoryIn implements Function<Set<String>, Predicate<Template>> { - private final Supplier<Map<String, String>> categoriesSupplier; - private final Supplier<Set<OSType>> osTypesSupplier; - - @Inject - public OSCategoryIn(CloudStackApi client) { - this(Suppliers.ofInstance(checkNotNull(client, "client").getGuestOSApi().listOSCategories()), Suppliers - .ofInstance(client.getGuestOSApi().listOSTypes())); - } - - public OSCategoryIn(Supplier<Map<String, String>> categoriesSupplier, Supplier<Set<OSType>> osTypesSupplier) { - this.categoriesSupplier = checkNotNull(categoriesSupplier, "categoriesSupplier"); - this.osTypesSupplier = checkNotNull(osTypesSupplier, "osTypesSupplier"); - } - - @Override - public Predicate<Template> apply(final Set<String> acceptableCategories) { - final Map<String, String> categories = categoriesSupplier.get(); - final Set<String> acceptableOSTypeIds = Maps.filterValues( - Maps.transformValues(Maps.uniqueIndex(osTypesSupplier.get(), new Function<OSType, String>() { - - @Override - public String apply(OSType input) { - return input.getId(); - } - - }), new Function<OSType, String>() { - - @Override - public String apply(OSType input) { - return categories.get(input.getOSCategoryId()); - } - - }), Predicates.in(acceptableCategories)).keySet(); - return new Predicate<Template>() { - - @Override - public boolean apply(Template input) { - return Predicates.in(acceptableOSTypeIds).apply(input.getOSTypeId()); - } - - @Override - public String toString() { - return "OSCategoryIn(" + acceptableCategories + ")"; - } - }; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/PublicIPAddressPredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/PublicIPAddressPredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/PublicIPAddressPredicates.java deleted file mode 100644 index a58ba47..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/PublicIPAddressPredicates.java +++ /dev/null @@ -1,85 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.jclouds.cloudstack.domain.PublicIPAddress; - -import com.google.common.base.Predicate; -import com.google.common.base.Predicates; - -public class PublicIPAddressPredicates { - - public static final class AssociatedWithNetwork implements Predicate<PublicIPAddress> { - private final String networkId; - - public AssociatedWithNetwork(String networkId) { - this.networkId = checkNotNull(networkId, "networkId"); - } - - @Override - public boolean apply(PublicIPAddress input) { - return networkId.equals(checkNotNull(input, "ipaddress").getAssociatedNetworkId()); - } - - @Override - public String toString() { - return "associatedWithNetwork(" + networkId + ")"; - } - } - - public static enum Available implements Predicate<PublicIPAddress> { - INSTANCE; - - @Override - public boolean apply(PublicIPAddress arg0) { - return !checkNotNull(arg0, "ipaddress").isSourceNAT() && !arg0.isStaticNAT() - && arg0.getVirtualMachineId() == null && arg0.getState() == PublicIPAddress.State.ALLOCATED; - } - - @Override - public String toString() { - return "available()"; - } - } - - /** - * - * @return true, if the public ip address is not assigned to a VM or NAT rule - */ - public static Predicate<PublicIPAddress> available() { - return Available.INSTANCE; - } - - /** - * - * @return true, if the public ip address is associated with the specified - * network - */ - public static Predicate<PublicIPAddress> associatedWithNetwork(final String networkId) { - return new AssociatedWithNetwork(networkId); - } - - /** - * - * @return always returns true. - */ - public static Predicate<PublicIPAddress> any() { - return Predicates.alwaysTrue(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SecurityGroupPredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SecurityGroupPredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SecurityGroupPredicates.java deleted file mode 100644 index 4796d01..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SecurityGroupPredicates.java +++ /dev/null @@ -1,236 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Predicates.alwaysTrue; - -import java.util.Set; - -import org.jclouds.cloudstack.domain.IngressRule; -import org.jclouds.cloudstack.domain.SecurityGroup; - -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import com.google.common.collect.Multimap; - -public class SecurityGroupPredicates { - /** - * - * @return true, if the security group contains an ingress rule with the given port in the port range - */ - public static Predicate<SecurityGroup> portInRange(final int port) { - return new Predicate<SecurityGroup>() { - - @Override - public boolean apply(SecurityGroup group) { - return Iterables.any(group.getIngressRules(), new Predicate<IngressRule>() { - @Override - public boolean apply(IngressRule rule) { - return rule.getStartPort() <= port && rule.getEndPort() >= port; - } - }); - } - - @Override - public String toString() { - return "portInRange(" + port + ")"; - } - }; - } - - /** - * - * @return true, if the security group contains an ingress rule with the given cidr - */ - public static Predicate<SecurityGroup> hasCidr(final String cidr) { - return new Predicate<SecurityGroup>() { - - @Override - public boolean apply(SecurityGroup group) { - return Iterables.any(group.getIngressRules(), new Predicate<IngressRule>() { - @Override - public boolean apply(IngressRule rule) { - return rule.getCIDR() != null - && rule.getCIDR().equals(cidr); - } - }); - } - - @Override - public String toString() { - return "hasCidr(" + cidr + ")"; - } - }; - } - - /** - * - * @return true, if the security group contains an ingress rule with the given cidr and the given port in range - */ - public static Predicate<SecurityGroup> portInRangeForCidr(final int port, final String cidr) { - return new Predicate<SecurityGroup>() { - - @Override - public boolean apply(SecurityGroup group) { - return Iterables.any(group.getIngressRules(), new Predicate<IngressRule>() { - @Override - public boolean apply(IngressRule rule) { - return rule.getCIDR() != null - && rule.getCIDR().equals(cidr) - && rule.getStartPort() <= port - && rule.getEndPort() >= port; - } - }); - } - - @Override - public String toString() { - return "portInRangeForCidr(" + port + ", " + cidr + ")"; - } - }; - } - - /** - * - * @return always returns true. - */ - public static Predicate<SecurityGroup> any() { - return alwaysTrue(); - } - - /** - * matches name of the given security group - * - * @param name - * @return predicate that matches name - */ - public static Predicate<SecurityGroup> nameEquals(final String name) { - checkNotNull(name, "name must be defined"); - - return new Predicate<SecurityGroup>() { - @Override - public boolean apply(SecurityGroup ext) { - return name.equals(ext.getName()); - } - - @Override - public String toString() { - return "nameEquals(" + name + ")"; - } - }; - } - - - /** - * matches name of the given security group - * - * @param name - * @return predicate that matches name - */ - public static Predicate<SecurityGroup> nameMatches(final Predicate<String> name) { - checkNotNull(name, "name must be defined"); - - return new Predicate<SecurityGroup>() { - @Override - public boolean apply(SecurityGroup ext) { - return name.apply(ext.getName()); - } - - @Override - public String toString() { - return "nameMatches(" + name + ")"; - } - }; - } - - /** - * matches IngressRules with the given protocol, start and end port, and - * any of the given CIDRs. - * - * @param protocol - * @param startPort - * @param endPort - * @param cidrs - * - * @return predicate that matches as described - */ - public static Predicate<IngressRule> ruleCidrMatches(final String protocol, - final int startPort, - final int endPort, - final Set<String> cidrs) { - checkNotNull(protocol, "protocol"); - checkNotNull(cidrs, "cidrs"); - - return new Predicate<IngressRule>() { - @Override - public boolean apply(IngressRule rule) { - return protocol.equals(rule.getProtocol()) - && startPort == rule.getStartPort() - && endPort == rule.getEndPort() - && cidrs.contains(rule.getCIDR()); - } - - @Override - public String toString() { - return "ruleCidrMatches(protocol:" + protocol - + ",startPort:" + startPort - + ",endPort:" + endPort - + ",cidrs:[" + cidrs - + "])"; - } - }; - } - - /** - * matches IngressRules with the given protocol, start and end port, and - * any of the given account/security group name pairs. - * - * @param protocol - * @param startPort - * @param endPort - * @param accountGroupNames - * - * @return predicate that matches as described - */ - public static Predicate<IngressRule> ruleGroupMatches(final String protocol, - final int startPort, - final int endPort, - final Multimap<String, String> accountGroupNames) { - checkNotNull(protocol, "protocol"); - checkNotNull(accountGroupNames, "accountGroupNames"); - - return new Predicate<IngressRule>() { - @Override - public boolean apply(IngressRule rule) { - return protocol.equals(rule.getProtocol()) - && startPort == rule.getStartPort() - && endPort == rule.getEndPort() - && accountGroupNames.containsEntry(rule.getAccount(), rule.getSecurityGroupName()); - } - - @Override - public String toString() { - return "ruleGroupMatches(protocol:" + protocol - + ",startPort:" + startPort - + ",endPort:" + endPort - + ",accountGroupNames:[" + accountGroupNames - + "])"; - } - }; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SshKeyPairPredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SshKeyPairPredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SshKeyPairPredicates.java deleted file mode 100644 index 72f34b0..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/SshKeyPairPredicates.java +++ /dev/null @@ -1,75 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.jclouds.cloudstack.domain.SshKeyPair; - -import com.google.common.base.Predicate; - -/** - * Predicates handy when working with SshKeyPairs - */ - -public class SshKeyPairPredicates { - - - /** - * matches name of the given key pair - * - * @param name - * @return predicate that matches name - */ - public static Predicate<SshKeyPair> nameMatches(final Predicate<String> name) { - checkNotNull(name, "name must be defined"); - - return new Predicate<SshKeyPair>() { - @Override - public boolean apply(SshKeyPair ext) { - return name.apply(ext.getName()); - } - - @Override - public String toString() { - return "nameMatches(" + name + ")"; - } - }; - } - - /** - * matches name of the given keypair starts with the specified prefix - * - * @param name the prefix you are looking for - * @return the predicate - */ - public static Predicate<SshKeyPair> nameEquals(final String name) { - checkNotNull(name, "name must be defined"); - - return new Predicate<SshKeyPair>() { - @Override - public boolean apply(SshKeyPair ext) { - return ext.getName() != null && ext.getName().equals(name); - } - - @Override - public String toString() { - return "nameEquals(" + name + ")"; - } - }; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/TemplatePredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/TemplatePredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/TemplatePredicates.java deleted file mode 100644 index 341356c..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/TemplatePredicates.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.predicates; - -import javax.inject.Singleton; - -import org.jclouds.cloudstack.domain.Template; - -import com.google.common.base.Predicate; - -@Singleton -public class TemplatePredicates { - public static Predicate<Template> isReady() { - return Ready.INSTANCE; - } - - public enum Ready implements Predicate<Template> { - INSTANCE; - @Override - public boolean apply(Template arg0) { - return arg0.isReady(); - } - - @Override - public String toString() { - return "isReady()"; - } - } - - public static enum PasswordEnabled implements Predicate<Template> { - INSTANCE; - - @Override - public boolean apply(Template arg0) { - return arg0.isPasswordEnabled(); - } - - @Override - public String toString() { - return "isPasswordEnabled()"; - } - } - - public static Predicate<Template> isPasswordEnabled() { - return PasswordEnabled.INSTANCE; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/UserPredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/UserPredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/UserPredicates.java deleted file mode 100644 index b278cde..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/UserPredicates.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import org.jclouds.cloudstack.domain.Account; -import org.jclouds.cloudstack.domain.User; -import org.jclouds.cloudstack.domain.Account.Type; - -import com.google.common.base.Predicate; - -public class UserPredicates { - - public static class ApiKeyEquals implements Predicate<User> { - private final String apiKey; - - public ApiKeyEquals(String apiKey) { - this.apiKey = checkNotNull(apiKey, "apiKey"); - } - - @Override - public boolean apply(User input) { - return apiKey.equals(checkNotNull(input, "user").getApiKey()); - } - - @Override - public String toString() { - return "apiKeyEquals(" + apiKey + ")"; - } - } - - /** - * - * @return true, if the user's apiKey is the following - */ - public static Predicate<User> apiKeyEquals(String apiKey) { - return new ApiKeyEquals(apiKey); - } - - /** - * - * @return true, if the user's account type is the following - */ - public static Predicate<User> accountTypeEquals(Account.Type type) { - return new AccountTypeEquals(type); - } - - public static class AccountTypeEquals implements Predicate<User> { - public AccountTypeEquals(Type type) { - this.type = checkNotNull(type, "type"); - } - - private final Account.Type type; - - @Override - public boolean apply(User input) { - return checkNotNull(input, "user").getAccountType() == type; - } - - @Override - public String toString() { - return "accountTypeEquals(" + type + ")"; - } - } - - /** - * - * @return true, if the account has user privileges - */ - public static Predicate<User> isUserAccount() { - return accountTypeEquals(Account.Type.USER); - } - - /** - * @return true, is the user is a domain admin - */ - public static Predicate<User> isDomainAdminAccount() { - return accountTypeEquals(Type.DOMAIN_ADMIN); - } - - /** - * - * @return true, if the user is a global admin - */ - public static Predicate<User> isAdminAccount() { - return accountTypeEquals(Account.Type.ADMIN); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java deleted file mode 100644 index 7548e15..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineDestroyed.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.annotation.Resource; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.VirtualMachine; -import org.jclouds.cloudstack.domain.VirtualMachine.State; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; -import com.google.inject.Inject; - -/** - * - * Tests to see if a virtualMachine is running - */ -@Singleton -public class VirtualMachineDestroyed implements Predicate<VirtualMachine> { - - private final CloudStackApi client; - - @Resource - protected Logger logger = Logger.NULL; - - @Inject - public VirtualMachineDestroyed(CloudStackApi client) { - this.client = client; - } - - public boolean apply(VirtualMachine virtualMachine) { - logger.trace("looking for state on virtualMachine %s", checkNotNull(virtualMachine, "virtualMachine")); - virtualMachine = refresh(virtualMachine); - if (virtualMachine == null) - return true; - logger.trace("%s: looking for virtualMachine state %s: currently: %s", virtualMachine.getId(), State.DESTROYED, - virtualMachine.getState()); - return virtualMachine.getState() == State.DESTROYED; - } - - private VirtualMachine refresh(VirtualMachine virtualMachine) { - return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java deleted file mode 100644 index daf3943..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineExpunged.java +++ /dev/null @@ -1,56 +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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.annotation.Resource; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.VirtualMachine; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; -import com.google.inject.Inject; - -/** - * - * Tests to see if a virtualMachine is expunged from the system - */ -@Singleton -public class VirtualMachineExpunged implements Predicate<VirtualMachine> { - - private final CloudStackApi client; - - @Resource - protected Logger logger = Logger.NULL; - - @Inject - public VirtualMachineExpunged(CloudStackApi client) { - this.client = client; - } - - public boolean apply(VirtualMachine virtualMachine) { - logger.trace("looking for state on virtualMachine %s", checkNotNull(virtualMachine, "virtualMachine")); - return refresh(virtualMachine) == null; - } - - private VirtualMachine refresh(VirtualMachine virtualMachine) { - return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.java deleted file mode 100644 index fe2c37e..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/VirtualMachineRunning.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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.annotation.Resource; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.VirtualMachine; -import org.jclouds.cloudstack.domain.VirtualMachine.State; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; -import com.google.inject.Inject; - -/** - * - * Tests to see if a virtualMachine is running - */ -@Singleton -public class VirtualMachineRunning implements Predicate<VirtualMachine> { - - private final CloudStackApi client; - - @Resource - protected Logger logger = Logger.NULL; - - @Inject - public VirtualMachineRunning(CloudStackApi client) { - this.client = client; - } - - public boolean apply(VirtualMachine virtualMachine) { - logger.trace("looking for state on virtualMachine %s", checkNotNull(virtualMachine, "virtualMachine")); - virtualMachine = refresh(virtualMachine); - if (virtualMachine == null) - return false; - logger.trace("%s: looking for virtualMachine state %s: currently: %s", virtualMachine.getId(), State.RUNNING, - virtualMachine.getState()); - if (virtualMachine.getState() == State.ERROR) - throw new IllegalStateException("virtualMachine in error state: " + virtualMachine); - return virtualMachine.getState() == State.RUNNING; - } - - private VirtualMachine refresh(VirtualMachine virtualMachine) { - return client.getVirtualMachineApi().getVirtualMachine(virtualMachine.getId()); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/ZonePredicates.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/ZonePredicates.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/ZonePredicates.java deleted file mode 100644 index ee44f69..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/predicates/ZonePredicates.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.cloudstack.predicates; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Predicates.alwaysTrue; - -import org.jclouds.cloudstack.domain.NetworkType; -import org.jclouds.cloudstack.domain.Zone; - -import com.google.common.base.Predicate; - -public class ZonePredicates { - /** - * - * @return true, if the zone supports {@link NetworkType.ADVANCED} - */ - public static Predicate<Zone> supportsAdvancedNetworks() { - return new Predicate<Zone>() { - - @Override - public boolean apply(Zone zone) { - return NetworkType.ADVANCED.equals(checkNotNull(zone, "zone").getNetworkType()); - } - - @Override - public String toString() { - return "supportsAdvancedNetworks()"; - } - }; - } - - /** - * - * @return true, if the zone supports security groups - */ - public static Predicate<Zone> supportsSecurityGroups() { - return new Predicate<Zone>() { - - @Override - public boolean apply(Zone input) { - return input.isSecurityGroupsEnabled(); - } - - @Override - public String toString() { - return "supportsSecurityGroups()"; - } - }; - } - - /** - * - * @return always returns true. - */ - public static Predicate<Zone> any() { - return alwaysTrue(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java deleted file mode 100644 index 83008b8..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/strategy/BlockUntilJobCompletesAndReturnResult.java +++ /dev/null @@ -1,69 +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.cloudstack.strategy; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Preconditions.checkState; - -import javax.annotation.Resource; -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.AsyncCreateResponse; -import org.jclouds.cloudstack.domain.AsyncJob; -import org.jclouds.compute.reference.ComputeServiceConstants; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; -import com.google.common.util.concurrent.UncheckedExecutionException; - -@Singleton -public class BlockUntilJobCompletesAndReturnResult { - @Resource - @Named(ComputeServiceConstants.COMPUTE_LOGGER) - protected Logger logger = Logger.NULL; - - private final CloudStackApi client; - private final Predicate<String> jobComplete; - - @Inject - public BlockUntilJobCompletesAndReturnResult(CloudStackApi client, Predicate<String> jobComplete) { - this.client = checkNotNull(client, "client"); - this.jobComplete = checkNotNull(jobComplete, "jobComplete"); - } - - /** - * - * @param job - * @return result of the job's execution - * @throws ExecutionException - * if the job contained an error - */ - public <T> T apply(AsyncCreateResponse job) { - boolean completed = jobComplete.apply(job.getJobId()); - logger.trace("<< job(%s) complete(%s)", job, completed); - AsyncJob<T> jobWithResult = client.getAsyncJobApi().<T> getAsyncJob(job.getJobId()); - checkState(completed, "job %s failed to complete in time %s", job.getJobId(), jobWithResult); - if (jobWithResult.getError() != null) - throw new UncheckedExecutionException(String.format("job %s failed with exception %s", job.getJobId(), - jobWithResult.getError().toString())) { - }; - return jobWithResult.getResult(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java deleted file mode 100644 index 8f65ab1..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/GetCurrentUser.java +++ /dev/null @@ -1,65 +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.cloudstack.suppliers; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.NoSuchElementException; - -import javax.annotation.Resource; -import javax.inject.Inject; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.User; -import org.jclouds.cloudstack.predicates.UserPredicates; -import org.jclouds.domain.Credentials; -import org.jclouds.location.Provider; -import org.jclouds.logging.Logger; - -import com.google.common.base.Predicate; -import com.google.common.base.Supplier; -import com.google.common.collect.Iterables; - -public class GetCurrentUser implements Supplier<User> { - - @Resource - protected Logger logger = Logger.NULL; - - private final CloudStackApi client; - private final Supplier<Credentials> creds; - - @Inject - public GetCurrentUser(CloudStackApi client, @Provider Supplier<Credentials> creds) { - this.client = checkNotNull(client, "client"); - this.creds = checkNotNull(creds, "creds"); - } - - @Override - public User get() { - Iterable<User> users = Iterables.concat(client.getAccountApi().listAccounts()); - Predicate<User> apiKeyMatches = UserPredicates.apiKeyEquals(creds.get().identity); - User currentUser = null; - try { - currentUser = Iterables.find(users, apiKeyMatches); - } catch (NoSuchElementException e) { - throw new NoSuchElementException(String.format("none of the following users match %s: %s", apiKeyMatches, - users)); - } - - return currentUser; - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java deleted file mode 100644 index 8ed3d50..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/NetworksForCurrentUser.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.suppliers; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.cloudstack.options.ListNetworksOptions.Builder.accountInDomain; - -import java.util.Map; - -import javax.inject.Inject; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.Network; -import org.jclouds.cloudstack.domain.User; -import org.jclouds.cloudstack.features.NetworkApi; -import org.jclouds.collect.Memoized; - -import com.google.common.base.Function; -import com.google.common.base.Supplier; -import com.google.common.collect.Maps; - -public class NetworksForCurrentUser implements Supplier<Map<String, Network>> { - private final CloudStackApi client; - private final Supplier<User> currentUserSupplier; - - @Inject - public NetworksForCurrentUser(CloudStackApi client, @Memoized Supplier<User> currentUserSupplier) { - this.client = checkNotNull(client, "client"); - this.currentUserSupplier = checkNotNull(currentUserSupplier, "currentUserSupplier"); - } - - @Override - public Map<String, Network> get() { - User currentUser = currentUserSupplier.get(); - NetworkApi networkClient = client.getNetworkApi(); - return Maps.uniqueIndex( - networkClient.listNetworks(accountInDomain(currentUser.getAccount(), currentUser.getDomainId())), - new Function<Network, String>() { - - @Override - public String apply(Network arg0) { - return arg0.getId(); - } - }); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ProjectsForCurrentUser.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ProjectsForCurrentUser.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ProjectsForCurrentUser.java deleted file mode 100644 index ecfebf3..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ProjectsForCurrentUser.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.suppliers; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.cloudstack.options.ListProjectsOptions.Builder.accountInDomain; - -import java.util.Map; - -import javax.inject.Inject; - -import org.jclouds.cloudstack.CloudStackApi; -import org.jclouds.cloudstack.domain.Project; -import org.jclouds.cloudstack.domain.User; -import org.jclouds.cloudstack.features.ProjectApi; -import org.jclouds.collect.Memoized; - -import com.google.common.base.Function; -import com.google.common.base.Supplier; -import com.google.common.collect.Maps; - -public class ProjectsForCurrentUser implements Supplier<Map<String, Project>> { - private final CloudStackApi api; - private final Supplier<User> currentUserSupplier; - - @Inject - public ProjectsForCurrentUser(CloudStackApi api, @Memoized Supplier<User> currentUserSupplier) { - this.api = checkNotNull(api, "api"); - this.currentUserSupplier = checkNotNull(currentUserSupplier, "currentUserSupplier"); - } - - @Override - public Map<String, Project> get() { - User currentUser = currentUserSupplier.get(); - ProjectApi projectApi = api.getProjectApi(); - return Maps.uniqueIndex( - projectApi.listProjects(accountInDomain(currentUser.getAccount(), currentUser.getDomainId())), - new Function<Project, String>() { - - @Override - public String apply(Project arg0) { - return arg0.getId(); - } - }); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/1d88fdf4/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ZoneIdToZoneSupplier.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ZoneIdToZoneSupplier.java b/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ZoneIdToZoneSupplier.java deleted file mode 100644 index 4485d01..0000000 --- a/dependencies/jclouds/apis/cloudstack/1.8.0-stratos/src/main/java/org/jclouds/cloudstack/suppliers/ZoneIdToZoneSupplier.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.cloudstack.suppliers; - -import static org.jclouds.Constants.PROPERTY_SESSION_INTERVAL; - -import java.util.concurrent.TimeUnit; - -import javax.inject.Named; - -import org.jclouds.cloudstack.domain.Zone; - -import com.google.common.base.Supplier; -import com.google.common.cache.CacheBuilder; -import com.google.common.cache.CacheLoader; -import com.google.common.cache.LoadingCache; -import com.google.inject.Inject; - -/** - * Supplies a cache that maps from zone IDs to zones. - */ -public class ZoneIdToZoneSupplier implements Supplier<LoadingCache<String, Zone>> { - private final LoadingCache<String, Zone> cache; - - @Inject - public ZoneIdToZoneSupplier(CacheLoader<String, Zone> zoneIdToZone, @Named(PROPERTY_SESSION_INTERVAL) long expirationSecs) { - cache = CacheBuilder.newBuilder().expireAfterWrite(expirationSecs, TimeUnit.SECONDS).build(zoneIdToZone); - } - - @Override - public LoadingCache<String, Zone> get() { - return cache; - } -}
