http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/ebs2.clj ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/ebs2.clj b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/ebs2.clj deleted file mode 100644 index 2bde9a5..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/ebs2.clj +++ /dev/null @@ -1,286 +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. -; - -(ns - #^{:author "Chas Emerick, [email protected]" - :doc "A clojure binding to the jclouds EBS service interface."} - org.jclouds.ec2.ebs2 - (:use org.jclouds.compute2 [clojure.core.incubator :only (-?>)]) - (:import org.jclouds.aws.domain.Region - org.jclouds.compute.domain.NodeMetadata - (org.jclouds.ec2.domain Volume Volume$Status Snapshot Snapshot$Status AvailabilityZoneInfo) - (org.jclouds.ec2.options DescribeSnapshotsOptions DetachVolumeOptions CreateSnapshotOptions))) -(defn snapshot? - "Returns true iff the argument is a org.jclouds.ec2.domain.Snapshot." - [s] - (instance? Snapshot s)) - -(defn volume? - "Returns true iff the argument is a org.jclouds.ec2.domain.Volume." - [v] - (instance? Volume v)) - -(defn ^org.jclouds.ec2.services.ElasticBlockStoreClient - ebs-service - "" - [compute] - (-> compute - .getContext - .getProviderSpecificContext - .getApi - .getElasticBlockStoreServices)) - -(defn get-region - "Coerces the first parameter into a Region string; strings, keywords, and - NodeMetadata instances are acceptable arguments. An optional second argument - is returned if the first cannot be coerced into a region string. - Returns nil otherwise." - ([v] (get-region v nil)) - ([v default-region] - (cond - (string? v) v - (keyword? v) (name v) - (instance? NodeMetadata v) (let [zone (location v)] - ; no easier way to go from zone -> region? - (if (> (.indexOf zone "-") -1) - (subs zone 0 (-> zone count dec)) - zone)) - :else default-region))) - -(defn get-volume-id - "Returns a string volume ID taken from the given string, keyword, or Volume argument." - [v] - (cond - (instance? Volume v) (.getId ^Volume v) - (keyword? v) (name v) - (string? v) v - :else (throw (IllegalArgumentException. - (str "Can't obtain volume id from argument of type " (class v)))))) - -(defn volumes - "Returns a set of org.jclouds.ec2.domain.Volume instances corresponding to the - volumes in the specified region (defaulting to your account's default region)." - [compute & [region & volume-ids]] - (set - (.describeVolumesInRegion (ebs-service compute) - (get-region region) - (into-array String (map get-volume-id - (if (get-region region) - volume-ids - (when region (cons region volume-ids)))))))) - -(defn- as-string - [v] - (cond - (string? v) v - (keyword? v) (name v) - :else v)) -(defn- get-string - [map key] - (as-string (get map key))) - -(defn- as-int - [v] - (cond - (number? v) (int v) - (string? v) (Integer/parseInt v) - :else (throw (IllegalArgumentException. - (str "Don't know how to convert object of type " (class v) " to a string"))))) - -(defn- snapshot-options - [optmap] - (let [string-array #(let [v (% optmap)] - (into-array String (cond - (keyword? v) [(name v)] - (string? v) [v] - :else (map as-string v))))] - (-> (DescribeSnapshotsOptions.) - (.ownedBy (string-array :owner)) - (.snapshotIds (string-array :ids)) - (.restorableBy (string-array :restorable-by))))) - -(defn snapshots - "Returns a set of org.jclouds.aws.ec2.domain.Snapshot instances that match - the criteria provided. Options include: - - :region - region string, keyword, or NodeMetadata - :owner - AWS account id (or \"amazon\" or \"self\") - :restorable-by - AWS account id - - Multiple values for each type of criteria can be provided by passing a seq - of the appropriate types as values." - [compute & options] - (let [options (apply hash-map options) - region (:region options) - options (snapshot-options (dissoc options :region))] - (set - (.describeSnapshotsInRegion (ebs-service compute) - (get-region region) - (into-array DescribeSnapshotsOptions [options]))))) - -(defn create-snapshot - "Creates a snapshot of a volume in the specified region with an optional description. - If provided, the description must be < 255 characters in length. Returns the - org.jclouds.aws.ec2.domain.Snapshot object representing the created snapshot." - ([compute ^Volume volume] (create-snapshot compute volume nil)) - ([compute ^Volume volume description] (create-snapshot compute (.getRegion volume) (.getId volume) description)) - ([compute region volume-id description] - (.createSnapshotInRegion (ebs-service compute) - (get-region region) - (as-string volume-id) - (into-array CreateSnapshotOptions (when description - [(.withDescription (CreateSnapshotOptions.) description)]))))) - -(defn delete-snapshot - "Deletes a snapshot in the specified region." - ([compute ^Snapshot snapshot] (delete-snapshot compute (.getRegion snapshot) (.getId snapshot))) - ([compute region snapshot-id] - (.deleteSnapshotInRegion (ebs-service compute) - (get-region region) - (as-string snapshot-id)))) - -(defn get-zone - [v] - (cond - (instance? AvailabilityZoneInfo v) (.getZone v) - (instance? NodeMetadata v) (location ^NodeMetadata v) - (string? v) v - (keyword? v) (name v) - :else (throw (IllegalArgumentException. - (str "Can't obtain zone from argument of type " (class v)))))) - -(defn attach-volume - "Attaches a volume to an instance, returning the resulting org.jclouds.aws.ec2.domain.Attachment." - ([compute ^NodeMetadata node volume device] - (attach-volume compute node (.getProviderId node) (get-volume-id volume) device)) - ([compute region instance-id volume-id device] - (apply #(.attachVolumeInRegion (ebs-service compute) - (get-region region) % %2 %3) - (map as-string [volume-id instance-id device])))) - -(defn detach-volume - "Detaches a volume from the instance to which it is currently attached. - The volume may be specified with a Volume instance, a string, or a keyword. - Providing a logical true value for the :force option will cause the volume - to be forcibly detached, regardless of whether it is in-use (mounted) or not. - - If the volume is specified as a string or keyword, one of the following options - is additionally required: - - :region - the region where the volume is allocated - :node - a node in the region where the volume is allocated - - FYI: It appears that issuing a detatch-volume command while the volume in question is mounted - will cause the volume to be detatched immediately upon the volume beign unmounted." - [compute volume & options] - (let [options (apply hash-map options) - volume-id (get-volume-id volume) - region (get-region (if (instance? Volume volume) - (.getRegion volume) - (or (:region options) (:node options))))] - (when (not region) - (throw (IllegalArgumentException. - "Must specify volume's region via :region or :node options, or by providing a Volume instance."))) - (.detachVolumeInRegion (ebs-service compute) - region - volume-id - (boolean (:force options)) - (into-array DetachVolumeOptions [])))) - -(defn create-volume - "Creates a new volume given a set of options: - - - one of :zone (keyword, string, or AvailabilityZoneInfo) or :node (NodeMetadata) - - one or both of :snapshot (keyword, string, or Snapshot instance) or :size - (string, keyword, or number) - - :device (string or keyword) provided *only* when you want to attach the new volume to - the :node you specified! - - Returns a vector of [created org.jclouds.ec2.domain.Volume, - optional org.jclouds.ec2.domain.Attachment] - - Note that specifying :node instead of :zone will only attach the created volume - :device is also provided. Otherwise, the node is only used to obtain the desired - availability zone. - - Note also that if :device and :node are specified, and the attach operation fails, - you will have \"leaked\" the newly-created volume - (volume creation and attachment cannot be done atomically)." - [compute & options] - (when (-> options count odd?) - (throw (IllegalArgumentException. "Must provide key-value pairs, e.g. :zone :us-east-1d :size 200"))) - (let [options (apply hash-map options) - snapshot (get-string options :snapshot) - snapshot (if (snapshot? snapshot) (.getId snapshot) snapshot) - size (-?> (get-string options :size) as-int) - ^NodeMetadata node (:node options) - zone (or node (get-string options :zone)) - zone (if zone - (get-zone zone) - (throw (IllegalArgumentException. "Must supply a :zone or :node option."))) - ebs (ebs-service compute)] - (when (and (:device options) (not node)) - (throw (IllegalArgumentException. "Cannot create and attach new volume; no :node specified"))) - (let [new-volume (cond - (and snapshot size) (.createVolumeFromSnapshotInAvailabilityZone ebs zone size snapshot) - snapshot (.createVolumeFromSnapshotInAvailabilityZone ebs zone snapshot) - size (.createVolumeInAvailabilityZone ebs zone size) - :else (throw (IllegalArgumentException. "Must supply :size and/or :snapshot options.")))] - [new-volume (when (:device options) - (attach-volume compute node new-volume (as-string (:device options))))]))) - -(defn delete-volume - "Deletes a volume in the specified region." - ([compute ^Volume volume] - (delete-volume (.getRegion volume) (.getId volume))) - ([compute region volume-id] - (.deleteVolumeInRegion (ebs-service compute) - (get-region region) - (as-string volume-id)))) - -(defn status - "Returns the status of the given entity; works for Volumes and Snapshots." - [k] - (.getStatus k)) - -(defn status-available? - [^Volume v] - (= Volume$Status/AVAILABLE (status v))) - -(defn status-creating? - [^Volume v] - (= Volume$Status/CREATING (status v))) - -(defn status-deleting? - [^Volume v] - (= Volume$Status/DELETING (status v))) - -(defn status-in-use? - [^Volume v] - (= Volume$Status/IN_USE (status v))) - -(defn status-completed? - [^Snapshot s] - (= Snapshot$Status/COMPLETED (status s))) - -(defn status-error? - [^Snapshot s] - (= Snapshot$Status/ERROR (status s))) - -(defn status-pending? - [^Snapshot s] - (= Snapshot$Status/PENDING (status s))) \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/elastic_ip2.clj ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/elastic_ip2.clj b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/elastic_ip2.clj deleted file mode 100644 index 68c372f..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/elastic_ip2.clj +++ /dev/null @@ -1,80 +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. -; - -(ns - #^{:author "Chas Emerick, [email protected]" - :doc "A clojure binding for the jclouds AWS elastic IP address interface."} - org.jclouds.ec2.elastic-ip2 - (:require (org.jclouds [compute2 :as compute]) - [org.jclouds.ec2.ebs2 :as ebs]) - (:import org.jclouds.compute.domain.NodeMetadata - (org.jclouds.ec2.domain PublicIpInstanceIdPair))) - -(defn ^org.jclouds.ec2.features.ElasticIPAddressApi - eip-service - "Returns an ElasticIPAddressApi for the given ComputeService" - [compute] - (-> compute - .getContext .getProviderSpecificContext .getApi .getElasticIPAddressApi().get)) - -(defn allocate - "Claims a new elastic IP address within the (optionally) specified region for your account. - Region may be a string, keyword, or a node from which the region - is inferred. Returns the IP address as a string." - ([compute] (allocate compute nil)) - ([compute region] - (.allocateAddressInRegion (eip-service compute) (ebs/get-region region)))) - -(defn associate - "Associates an elastic IP address with a node." - ([compute ^NodeMetadata node public-ip] - (associate node public-ip (.getProviderId node))) - ([compute region public-ip instance-id] - (.associateAddressInRegion (eip-service compute) - (ebs/get-region region) - public-ip - instance-id))) - -(defn addresses - "Returns a map of elastic IP addresses to maps with slots: - - :region - the region (string/keyword/NodeMetadata) the IP address is allocated within - :node-id - the ID of the instance with which the IP address is associated (optional) - - You may optionally specify which IP addresses you would like to query." - ([compute] (addresses compute nil)) - ([compute region & public-ips] - (into {} (for [^PublicIpInstanceIdPair pair (.describeAddressesInRegion (eip-service compute) - (ebs/get-region region) - (into-array String public-ips))] - [(.getPublicIp pair) (merge {:region (.getRegion pair)} - (when (.getInstanceId pair) {:node-id (.getInstanceId pair)}))])))) - -(defn dissociate - "Dissociates an elastic IP address from the node with which it is currently associated." - [compute region public-ip] - (.disassociateAddressInRegion (eip-service compute) - (ebs/get-region region) - public-ip)) - -(defn release - "Disclaims an elastic IP address from your account." - ([compute public-ip] (release compute public-ip nil)) - ([compute public-ip region] - (.releaseAddressInRegion (eip-service compute) - (ebs/get-region region) - public-ip))) http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/security_group2.clj ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/security_group2.clj b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/security_group2.clj deleted file mode 100644 index a4f33cf..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/clojure/org/jclouds/ec2/security_group2.clj +++ /dev/null @@ -1,99 +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. -; - -(ns - #^{:author "Juegen Hoetzel, [email protected]" - :doc "A clojure binding for the jclouds AWS security group interface."} - org.jclouds.ec2.security-group2 - (:require (org.jclouds [compute2 :as compute]) - [org.jclouds.ec2.ebs2 :as ebs]) - (:import org.jclouds.ec2.domain.SecurityGroup - org.jclouds.ec2.features.SecurityGroupApi - org.jclouds.net.domain.IpProtocol)) - -(defn #^SecurityGroupApi - sg-service - "Returns the SecurityGroup Api associated with the specified compute service." - [compute] - (-> compute .getContext .getProviderSpecificContext .getApi .getSecurityGroupApi().get)) - -(defn create-group - "Creates a new security group. - - e.g. (create-group compute \"Database Server\" \"Description for group\" :region :us-west-1)" - [compute name & {:keys [description region]}] - (.createSecurityGroupInRegion (sg-service compute) (ebs/get-region region) name (or description name))) - -(defn delete-group - "Deletes a security group. - - e.g. (delete-group compute \"Database Server\" :region :us-west-1)" - [compute name & {:keys [region]}] - (.deleteSecurityGroupInRegion (sg-service compute) (ebs/get-region region) name)) - -(defn groups - "Returns a map of GroupName -> org.jclouds.ec2.domain.SecurityGroup instances. - - e.g. (groups compute :region :us-east-1)" - [compute & {:keys [region]}] - (into {} (for [#^SecurityGroup group (.describeSecurityGroupsInRegion (sg-service compute) - (ebs/get-region region) - (into-array String '()))] - [(.getName group) group]))) - -(defn get-protocol [v] - "Coerce argument to a IP Protocol." - (cond - (instance? IpProtocol v) v - (keyword? v) (if-let [p (get {:tcp IpProtocol/TCP - :udp IpProtocol/UDP - :icmp IpProtocol/ICMP} - v)] - p - (throw (IllegalArgumentException. - (str "Can't obtain IP protocol from " v " (valid :tcp, :udp and :icmp)")))) - (nil? v) IpProtocol/TCP - :else (throw (IllegalArgumentException. - (str "Can't obtain IP protocol from argument of type " (type v)))))) - -(defn authorize - "Adds permissions to a security group. - - e.g. (authorize compute \"jclouds#webserver#us-east-1\" 80 :ip-range \"0.0.0.0/0\") - (authorize compute \"jclouds#webserver#us-east-1\" [1000,2000] :protocol :udp)" - - [compute group-name port & {:keys [protocol ip-range region]}] - (let [group ((groups compute :region region) group-name) - [from-port to-port] (if (number? port) [port port] port)] - (if group - (.authorizeSecurityGroupIngressInRegion - (sg-service compute) (ebs/get-region region) (.getName group) (get-protocol protocol) from-port to-port (or ip-range "0.0.0.0/0")) - (throw (IllegalArgumentException. - (str "Can't find security group for name " group-name)))))) - -(defn revoke - "Revokes permissions from a security group. - - e.g. (revoke compute 80 \"jclouds#webserver#us-east-1\" :protocol :tcp 80 80 :ip-range \"0.0.0.0/0\")" - [compute group-name port & {:keys [protocol ip-range region]}] - (let [group ((groups compute :region region) group-name) - [from-port to-port] (if (number? port) [port port] port)] - (if group - (.revokeSecurityGroupIngressInRegion - (sg-service compute) (ebs/get-region region) (.getName group) (get-protocol protocol) from-port to-port (or ip-range "0.0.0.0/0")) - (throw (IllegalArgumentException. - (str "Can't find security group for name " group-name)))))) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Api.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Api.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Api.java deleted file mode 100644 index d8637e8..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Api.java +++ /dev/null @@ -1,167 +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.ec2; - -import java.io.Closeable; -import java.util.Set; -import org.jclouds.ec2.features.SubnetApi; -import org.jclouds.ec2.features.TagApi; -import org.jclouds.ec2.features.WindowsApi; -import org.jclouds.ec2.features.AMIApi; -import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi; -import org.jclouds.ec2.features.ElasticBlockStoreApi; -import org.jclouds.ec2.features.ElasticIPAddressApi; -import org.jclouds.ec2.features.InstanceApi; -import org.jclouds.ec2.features.KeyPairApi; -import org.jclouds.ec2.features.SecurityGroupApi; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.location.Region; -import org.jclouds.location.functions.RegionToEndpointOrProviderIfNull; -import org.jclouds.rest.annotations.Delegate; -import org.jclouds.rest.annotations.EndpointParam; - -import com.google.common.base.Optional; -import com.google.inject.Provides; - -/** - * Provides access to EC2 features, broken up by feature group. Use of the - * {@link Optional} type allows you to check to see if the underlying - * implementation supports a particular feature before attempting to use it. - * This is useful in clones like OpenStack, CloudStack, or Eucalyptus, which - * track the api, but are always behind Amazon's service. In the case of Amazon - * ({@code aws-ec2}), you can expect all features to be present. - * - * - * Example - * - * <pre> - * Optional<? extends WindowsApi> windowsOption = ec2Api.getWindowsApi(); - * checkState(windowsOption.isPresent(), "windows feature required, but not present"); - * </pre> - * - * @author Adrian Cole - */ -public interface EC2Api extends Closeable { - /** - * - * @return the Region codes configured - */ - @Provides - @Region - Set<String> getConfiguredRegions(); - - /** - * Provides synchronous access to Windows features. - */ - @Delegate - Optional<? extends WindowsApi> getWindowsApi(); - - @Delegate - Optional<? extends WindowsApi> getWindowsApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to Tag features. - */ - @Delegate - Optional<? extends TagApi> getTagApi(); - - @Delegate - Optional<? extends TagApi> getTagApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to Subnet features. - */ - @Delegate - Optional<? extends SubnetApi> getSubnetApi(); - - @Delegate - Optional<? extends SubnetApi> getSubnetApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to AMI services. - */ - @Delegate - Optional<? extends AMIApi> getAMIApi(); - - @Delegate - Optional<? extends AMIApi> getAMIApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - - /** - * Provides synchronous access to Elastic IP Address services. - */ - @Delegate - Optional<? extends ElasticIPAddressApi> getElasticIPAddressApi(); - - @Delegate - Optional<? extends ElasticIPAddressApi> getElasticIPAddressApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to Instance services. - */ - @Delegate - Optional<? extends InstanceApi> getInstanceApi(); - - @Delegate - Optional<? extends InstanceApi> getInstanceApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to KeyPair services. - */ - @Delegate - Optional<? extends KeyPairApi> getKeyPairApi(); - - @Delegate - Optional<? extends KeyPairApi> getKeyPairApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to SecurityGroup services. - */ - @Delegate - Optional<? extends SecurityGroupApi> getSecurityGroupApi(); - - @Delegate - Optional<? extends SecurityGroupApi> getSecurityGroupApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to Availability Zones and Regions services. - */ - @Delegate - Optional<? extends AvailabilityZoneAndRegionApi> getAvailabilityZoneAndRegionApi(); - - @Delegate - Optional<? extends AvailabilityZoneAndRegionApi> getAvailabilityZoneAndRegionApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); - - /** - * Provides synchronous access to Elastic Block Store services. - */ - @Delegate - Optional<? extends ElasticBlockStoreApi> getElasticBlockStoreApi(); - - @Delegate - Optional<? extends ElasticBlockStoreApi> getElasticBlockStoreApiForRegion( - @EndpointParam(parser = RegionToEndpointOrProviderIfNull.class) @Nullable String region); -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java deleted file mode 100644 index 2b081c5..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2ApiMetadata.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.ec2; - -import static org.jclouds.aws.reference.AWSConstants.PROPERTY_AUTH_TAG; -import static org.jclouds.aws.reference.AWSConstants.PROPERTY_HEADER_TAG; -import static org.jclouds.compute.config.ComputeServiceProperties.RESOURCENAME_DELIMITER; -import static org.jclouds.ec2.reference.EC2Constants.PROPERTY_EC2_AMI_OWNERS; -import static org.jclouds.ec2.reference.EC2Constants.PROPERTY_EC2_AUTO_ALLOCATE_ELASTIC_IPS; -import static org.jclouds.ec2.reference.EC2Constants.PROPERTY_EC2_GENERATE_INSTANCE_NAMES; -import static org.jclouds.ec2.reference.EC2Constants.PROPERTY_EC2_TIMEOUT_SECURITYGROUP_PRESENT; - -import java.net.URI; -import java.util.Properties; - -import org.jclouds.apis.ApiMetadata; -import org.jclouds.ec2.compute.EC2ComputeServiceContext; -import org.jclouds.ec2.compute.config.EC2ComputeServiceContextModule; -import org.jclouds.ec2.compute.config.EC2ResolveImagesModule; -import org.jclouds.ec2.config.EC2HttpApiModule; -import org.jclouds.rest.internal.BaseHttpApiMetadata; - -import com.google.common.collect.ImmutableSet; -import com.google.inject.Module; - -public final class EC2ApiMetadata extends BaseHttpApiMetadata<EC2Api> { - - @Override - public Builder toBuilder() { - return new Builder().fromApiMetadata(this); - } - - public EC2ApiMetadata() { - super(new Builder()); - } - - protected EC2ApiMetadata(Builder builder) { - super(builder); - } - - public static Properties defaultProperties() { - Properties properties = BaseHttpApiMetadata.defaultProperties(); - properties.setProperty(PROPERTY_AUTH_TAG, "AWS"); - properties.setProperty(PROPERTY_HEADER_TAG, "amz"); - properties.setProperty(PROPERTY_EC2_AMI_OWNERS, "*"); - properties.setProperty(PROPERTY_EC2_TIMEOUT_SECURITYGROUP_PRESENT, "500"); - properties.setProperty(PROPERTY_EC2_AUTO_ALLOCATE_ELASTIC_IPS, "false"); - properties.setProperty(RESOURCENAME_DELIMITER, "#"); - properties.setProperty(PROPERTY_EC2_GENERATE_INSTANCE_NAMES, "true"); - return properties; - } - - public static final class Builder extends BaseHttpApiMetadata.Builder<EC2Api, Builder> { - public Builder() { - id("ec2") - .name("Amazon Elastic Compute Cloud (EC2) API") - .identityName("Access Key ID") - .credentialName("Secret Access Key") - .defaultEndpoint("https://ec2.us-east-1.amazonaws.com") - .documentation(URI.create("http://docs.amazonwebservices.com/AWSEC2/latest/APIReference")) - .version("2010-08-31") - .defaultProperties(EC2ApiMetadata.defaultProperties()) - .view(EC2ComputeServiceContext.class) - .defaultModules(ImmutableSet.<Class<? extends Module>>of(EC2HttpApiModule.class, EC2ResolveImagesModule.class, EC2ComputeServiceContextModule.class)); - } - - @Override - public ApiMetadata build() { - return new EC2ApiMetadata(this); - } - - @Override - protected Builder self() { - return this; - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Fallbacks.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Fallbacks.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Fallbacks.java deleted file mode 100644 index 7cb4675..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/EC2Fallbacks.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.ec2; - -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.base.Throwables.propagate; -import static com.google.common.util.concurrent.Futures.immediateFuture; - -import org.jclouds.Fallback; -import org.jclouds.aws.AWSResponseException; - -import com.google.common.base.Predicates; -import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.ListenableFuture; - -public final class EC2Fallbacks { - private EC2Fallbacks() { - } - - public static final class VoidOnVolumeAvailable implements Fallback<Void> { - @Override - public ListenableFuture<Void> create(Throwable t) throws Exception { - return immediateFuture(createOrPropagate(t)); - } - - @Override - public Void createOrPropagate(Throwable t) throws Exception { - if (checkNotNull(t, "throwable") instanceof AWSResponseException) { - AWSResponseException e = AWSResponseException.class.cast(t); - if (Predicates.in(ImmutableSet.of("IncorrectState", "available")).apply(e.getError().getCode())) - return null; - } - throw propagate(t); - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBlockDeviceMappingToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBlockDeviceMappingToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBlockDeviceMappingToIndexedFormParams.java deleted file mode 100644 index 2286d56..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBlockDeviceMappingToIndexedFormParams.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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; -import static java.lang.String.format; -import static org.jclouds.http.utils.Queries.queryParser; -import static org.jclouds.io.Payloads.newUrlEncodedFormPayload; - -import java.util.Map; -import java.util.Map.Entry; - -import org.jclouds.ec2.domain.BlockDevice; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.Multimap; - -/** - * @author Oleksiy Yarmula - * @author Adrian Cole - */ -public class BindBlockDeviceMappingToIndexedFormParams implements Binder { - - private static final String deviceNamePattern = "BlockDeviceMapping.%d.DeviceName"; - private static final String deleteOnTerminationPattern = "BlockDeviceMapping.%d.Ebs.DeleteOnTermination"; - private static final String volumeIdPattern = "BlockDeviceMapping.%d.Ebs.VolumeId"; - - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof Map, "this binder is only valid for Map"); - Map<String, BlockDevice> blockDeviceMapping = (Map<String, BlockDevice>) input; - Multimap<String, String> original = queryParser().apply(request.getPayload().getRawContent().toString()); - ImmutableMultimap.Builder<String, String> builder = ImmutableMultimap.builder(); - builder.putAll("Action", "ModifyInstanceAttribute"); - int amazonOneBasedIndex = 1; // according to docs, counters must start with 1 - for (Entry<String, BlockDevice> ebsBlockDeviceName : blockDeviceMapping.entrySet()) { - // not null by contract - builder.put(format(deviceNamePattern, amazonOneBasedIndex), ebsBlockDeviceName.getKey()); - builder.put(format(deleteOnTerminationPattern, amazonOneBasedIndex), - String.valueOf(ebsBlockDeviceName.getValue().isDeleteOnTermination())); - builder.put(format(volumeIdPattern, amazonOneBasedIndex), ebsBlockDeviceName.getValue().getVolumeId()); - amazonOneBasedIndex++; - } - builder.putAll("InstanceId", original.get("InstanceId")); - request.setPayload(newUrlEncodedFormPayload(builder.build())); - return request; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBundleIdsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBundleIdsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBundleIdsToIndexedFormParams.java deleted file mode 100644 index c37d3e1..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindBundleIdsToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to form parameters named with BundleId.index - * - * @author Adrian Cole - */ -@Singleton -public class BindBundleIdsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "BundleId", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindFiltersToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindFiltersToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindFiltersToIndexedFormParams.java deleted file mode 100644 index db22895..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindFiltersToIndexedFormParams.java +++ /dev/null @@ -1,57 +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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.Multimap; - -/** - * Binds the Multimap to form parameters for filtering. - * - * <pre> - * https://ec2.amazonaws.com/?Action=DescribeTags - * &Filter.1.Name=resource-type - * &Filter.1.Value.1=instance - * &Filter.2.Name=key - * &Filter.2.Value.1=stack - * &Filter.3.Name=value - * &Filter.3.Value.1=Test - * &Filter.3.Value.2=Production - * &AUTHPARAMS - * </pre> - * - * @author Adrian Cole - */ -@Singleton -public class BindFiltersToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof Multimap, "this binder is only valid for Multimap"); - @SuppressWarnings("unchecked") - Multimap<String, String> filters = (Multimap<String, String>) input; - return AWSUtils.indexMultimapToFormValuesWithPrefix(request, "Filter", "Name", "Value", filters); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupIdsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupIdsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupIdsToIndexedFormParams.java deleted file mode 100644 index bafc493..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupIdsToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to query parameters named with GroupId.index - * - * @author Adrian Cole - */ -@Singleton -public class BindGroupIdsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "GroupId", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupNamesToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupNamesToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupNamesToIndexedFormParams.java deleted file mode 100644 index 1efc743..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindGroupNamesToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to query parameters named with GroupName.index - * - * @author Adrian Cole - */ -@Singleton -public class BindGroupNamesToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "GroupName", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindInstanceIdsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindInstanceIdsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindInstanceIdsToIndexedFormParams.java deleted file mode 100644 index 1c90791..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindInstanceIdsToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to form parameters named with InstanceId.index - * - * @author Adrian Cole - */ -@Singleton -public class BindInstanceIdsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "InstanceId", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionToIndexedFormParams.java deleted file mode 100644 index 403f592..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionToIndexedFormParams.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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import org.jclouds.ec2.util.IpPermissions; -import org.jclouds.http.HttpRequest; -import org.jclouds.net.domain.IpPermission; -import org.jclouds.rest.Binder; - -/** - * @author Adrian Cole - */ -public class BindIpPermissionToIndexedFormParams implements Binder { - - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof IpPermission, "this binder is only valid for IpPermission"); - IpPermission perm = (IpPermission) input; - return (R) request.toBuilder().replaceFormParams(IpPermissions.buildFormParametersForIndex(0, perm)).build(); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.java deleted file mode 100644 index 4bead83..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindIpPermissionsToIndexedFormParams.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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import org.jclouds.ec2.util.IpPermissions; -import org.jclouds.http.HttpRequest; -import org.jclouds.net.domain.IpPermission; -import org.jclouds.rest.Binder; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableMultimap.Builder; - -/** - * @author Adrian Cole - */ -public class BindIpPermissionsToIndexedFormParams implements Binder { - - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof Iterable, - "this binder is only valid for Iterable<IpPermission>"); - Builder<String, String> formBuilder = ImmutableMultimap.builder(); - int index = 0; - for (IpPermission perm : (Iterable<IpPermission>) input) - formBuilder.putAll(IpPermissions.buildFormParametersForIndex(index++, perm)); - ImmutableMultimap<String, String> forms = formBuilder.build(); - return forms.size() == 0 ? request : (R) request.toBuilder().replaceFormParams(forms).build(); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindKeyNamesToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindKeyNamesToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindKeyNamesToIndexedFormParams.java deleted file mode 100644 index 44f0076..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindKeyNamesToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to query parameters named with KeyName.index - * - * @author Adrian Cole - */ -@Singleton -public class BindKeyNamesToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "KeyName", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindProductCodesToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindProductCodesToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindProductCodesToIndexedFormParams.java deleted file mode 100644 index 7a088dc..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindProductCodesToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the Iterable to form parameters named with ProductCode.index - * - * @author Adrian Cole - */ -@Singleton -public class BindProductCodesToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexIterableToFormValuesWithPrefix(request, "ProductCode", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindPublicIpsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindPublicIpsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindPublicIpsToIndexedFormParams.java deleted file mode 100644 index 1a2687d..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindPublicIpsToIndexedFormParams.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to form parameters named with InstanceId.index - * - * @author Adrian Cole - */ -@Singleton -public class BindPublicIpsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof String[], "this binder is only valid for String[] : " - + input.getClass()); - String[] addressStrings = (String[]) input; - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "PublicIp", addressStrings); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindResourceIdsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindResourceIdsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindResourceIdsToIndexedFormParams.java deleted file mode 100644 index b32d8ed..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindResourceIdsToIndexedFormParams.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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds Ids to query parameters named with ResourceId.index - * - * @author [email protected] - */ -@Singleton -public class BindResourceIdsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof Iterable, "this binder is only valid for Iterable<String>"); - return AWSUtils.indexIterableToFormValuesWithPrefix(request, "ResourceId", input); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindS3UploadPolicyAndSignature.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindS3UploadPolicyAndSignature.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindS3UploadPolicyAndSignature.java deleted file mode 100644 index 5397f4e..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindS3UploadPolicyAndSignature.java +++ /dev/null @@ -1,57 +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.ec2.binders; - -import static com.google.common.base.Charsets.UTF_8; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.io.BaseEncoding.base64; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.aws.filters.FormSigner; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableMultimap.Builder; - -/** - * - * @author Adrian Cole - */ -@Singleton -public class BindS3UploadPolicyAndSignature implements Binder { - private final FormSigner signer; - - @Inject - BindS3UploadPolicyAndSignature(FormSigner signer) { - this.signer = signer; - } - - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - String encodedJson = base64().encode(checkNotNull(input, "json").toString().getBytes(UTF_8)); - Builder<String, String> builder = ImmutableMultimap.builder(); - builder.put("Storage.S3.UploadPolicy", encodedJson); - String signature = signer.sign(encodedJson); - builder.put("Storage.S3.UploadPolicySignature", signature); - return (R) request.toBuilder().replaceFormParams(builder.build()).build(); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagKeysToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagKeysToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagKeysToIndexedFormParams.java deleted file mode 100644 index 0ed7cd3..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagKeysToIndexedFormParams.java +++ /dev/null @@ -1,46 +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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.Iterables; - -/** - * Binds the Iterable<String> to form parameters named with Tag.index.Key - * - * @author Adrian Cole - */ -@Singleton -public class BindTagKeysToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof Iterable, "This binder is only valid for Iterable<String>"); - @SuppressWarnings("unchecked") - Iterable<String> keys = (Iterable<String>) input; - return AWSUtils.indexStringArrayToFormValuesWithStringFormat(request, "Tag.%s.Key", - Iterables.toArray(keys, String.class)); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagsToIndexedFormParams.java deleted file mode 100644 index 322e0b5..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindTagsToIndexedFormParams.java +++ /dev/null @@ -1,54 +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.ec2.binders; - -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.aws.util.AWSUtils.indexMapToFormValuesWithPrefix; - -import java.util.Map; - -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMap.Builder; - -/** - * @author Adrian Cole - */ -public class BindTagsToIndexedFormParams implements Binder { - - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkNotNull(input, "tags"); - Map<String, String> tagValues; - if (input instanceof Iterable) { - Builder<String, String> builder = ImmutableMap.<String, String> builder(); - for (String key : (Iterable<String>) input) { - builder.put(key, ""); - } - tagValues = builder.build(); - } else if (input instanceof Map) { - tagValues = Map.class.cast(input); - } else { - throw new IllegalArgumentException("This binder is only valid for Map<String,String> or Iterable<String>"); - } - return indexMapToFormValuesWithPrefix(request, "Tag", "Key", "Value", tagValues); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserGroupsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserGroupsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserGroupsToIndexedFormParams.java deleted file mode 100644 index 5982193..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserGroupsToIndexedFormParams.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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.Iterables; - -/** - * Binds the Iterable to query parameters named with UserGroup.index - * - * @author Adrian Cole - */ -@Singleton -public class BindUserGroupsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof Iterable<?>, "this binder is only valid for Iterable<?>: " - + input.getClass()); - checkValidUserGroup(input); - return AWSUtils.indexIterableToFormValuesWithPrefix(request, "UserGroup", input); - } - - private void checkValidUserGroup(Object input) { - Iterable<?> values = (Iterable<?>) input; - long size = Iterables.size(values); - checkArgument(size == 0 || (size == 1 && Iterables.getOnlyElement(values).equals("all")), - "only supported UserGroup is 'all'"); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdGroupPairToSourceSecurityGroupFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdGroupPairToSourceSecurityGroupFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdGroupPairToSourceSecurityGroupFormParams.java deleted file mode 100644 index 4e0b3bc..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdGroupPairToSourceSecurityGroupFormParams.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkNotNull; - -import javax.inject.Singleton; - -import org.jclouds.ec2.domain.UserIdGroupPair; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableMultimap.Builder; - -/** - * Binds the String [] to query parameters named with GroupName.index - * - * @author Adrian Cole - */ -@Singleton -public class BindUserIdGroupPairToSourceSecurityGroupFormParams implements Binder { - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - checkArgument(checkNotNull(input, "input") instanceof UserIdGroupPair, - "this binder is only valid for UserIdGroupPair!"); - UserIdGroupPair pair = (UserIdGroupPair) input; - Builder<String, String> builder = ImmutableMultimap.builder(); - builder.put("SourceSecurityGroupOwnerId", pair.getUserId()); - builder.put("SourceSecurityGroupName", pair.getGroupName()); - return (R) request.toBuilder().replaceFormParams(builder.build()).build(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdsToIndexedFormParams.java deleted file mode 100644 index 508971f..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindUserIdsToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the Iterable to form parameters named with UserId.index - * - * @author Adrian Cole - */ -@Singleton -public class BindUserIdsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexIterableToFormValuesWithPrefix(request, "UserId", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindVolumeIdsToIndexedFormParams.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindVolumeIdsToIndexedFormParams.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindVolumeIdsToIndexedFormParams.java deleted file mode 100644 index c1b0cdd..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/BindVolumeIdsToIndexedFormParams.java +++ /dev/null @@ -1,37 +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.ec2.binders; - -import javax.inject.Singleton; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the String [] to form parameters named with VolumeId.index - * - * @author Adrian Cole - */ -@Singleton -public class BindVolumeIdsToIndexedFormParams implements Binder { - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - return AWSUtils.indexStringArrayToFormValuesWithPrefix(request, "VolumeId", input); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/397d9926/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/IfNotNullBindAvailabilityZoneToFormParam.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/IfNotNullBindAvailabilityZoneToFormParam.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/IfNotNullBindAvailabilityZoneToFormParam.java deleted file mode 100644 index f319935..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/binders/IfNotNullBindAvailabilityZoneToFormParam.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.ec2.binders; - -import static com.google.common.base.Preconditions.checkArgument; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.http.HttpRequest; -import org.jclouds.rest.Binder; - -/** - * Binds the AvailabilityZone to a form parameter if set. - * - * @author Adrian Cole - */ -@Singleton -public class IfNotNullBindAvailabilityZoneToFormParam implements Binder { - private final String param; - - @Inject - protected IfNotNullBindAvailabilityZoneToFormParam() { - this("Placement.AvailabilityZone"); - } - - protected IfNotNullBindAvailabilityZoneToFormParam(String param) { - this.param = param; - } - - @SuppressWarnings("unchecked") - @Override - public <R extends HttpRequest> R bindToRequest(R request, Object input) { - if (input != null) { - checkArgument(input instanceof String, "this binder is only valid for String!"); - return (R) request.toBuilder().replaceFormParam(param, String.class.cast(input)).build(); - } - return request; - } - -}
