http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/suppliers/DescribeRegionsForRegionURIs.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/suppliers/DescribeRegionsForRegionURIs.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/suppliers/DescribeRegionsForRegionURIs.java deleted file mode 100644 index d8d7a51..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/suppliers/DescribeRegionsForRegionURIs.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.suppliers; - -import java.net.URI; -import java.util.Map; - -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.jclouds.ec2.EC2Api; -import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi; -import org.jclouds.location.Region; -import org.jclouds.location.suppliers.RegionIdToURISupplier; -import org.jclouds.util.Suppliers2; - -import com.google.common.base.Supplier; -import com.google.common.collect.Maps; - -@Singleton -public class DescribeRegionsForRegionURIs implements RegionIdToURISupplier { - private final AvailabilityZoneAndRegionApi client; - - @Inject - public DescribeRegionsForRegionURIs(EC2Api client) { - this.client = client.getAvailabilityZoneAndRegionApi().get(); - } - - @Singleton - @Region - @Override - public Map<String, Supplier<URI>> get() { - Map<String, URI> regionToUris = client.describeRegions(); - return Maps.transformValues(regionToUris, Suppliers2.<URI> ofInstanceFunction()); - } -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/IpPermissions.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/IpPermissions.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/IpPermissions.java deleted file mode 100644 index cc2b68a..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/IpPermissions.java +++ /dev/null @@ -1,197 +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.util; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Map; -import java.util.Map.Entry; - -import org.jclouds.net.domain.IpPermission; -import org.jclouds.net.domain.IpProtocol; -import org.jclouds.util.Maps2; - -import com.google.common.annotations.Beta; -import com.google.common.base.Function; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Maps; -import com.google.common.collect.Multimap; -import com.google.common.collect.Multimaps; - -/** - * - * Shortcut to create ingress rules - * - * @author Adrian Cole - */ -public class IpPermissions extends IpPermission { - - protected IpPermissions(IpProtocol ipProtocol, int fromPort, int toPort, - Multimap<String, String> userIdGroupPairs, Iterable<String> groupIds, Iterable<String> ipRanges) { - super(ipProtocol, fromPort, toPort, userIdGroupPairs, groupIds, userIdGroupPairs.size() == 0 ? ipRanges - : ImmutableSet.<String> of()); - } - - /** - * don't rely on this being here.. it will move - */ - @Beta - public static Multimap<String, String> buildFormParametersForIndex(final int index, IpPermission permission) { - Map<String, String> headers = Maps.newLinkedHashMap(); - headers.put("IpPermissions.%d.IpProtocol", permission.getIpProtocol().toString()); - headers.put("IpPermissions.%d.FromPort", permission.getFromPort() + ""); - headers.put("IpPermissions.%d.ToPort", permission.getToPort() + ""); - String prefix = "IpPermissions.%d.IpRanges."; - int i = 0; - for (String cidrIp : checkNotNull(permission.getCidrBlocks(), "cidrIps")) { - headers.put(prefix + i++ + ".CidrIp", cidrIp); - } - prefix = "IpPermissions.%d.Groups."; - i = 0; - for (String groupId : checkNotNull(permission.getGroupIds(), "groupIds")) { - headers.put(prefix + i++ + ".GroupId", groupId); - } - prefix = "IpPermissions.%d.Groups."; - i = 0; - for (Entry<String, String> tenantIdGroupNamePair : checkNotNull(permission.getTenantIdGroupNamePairs(), - "tenantIdGroupNamePairs").entries()) { - headers.put(prefix + i + ".UserId", tenantIdGroupNamePair.getKey()); - headers.put(prefix + i + ".GroupId", tenantIdGroupNamePair.getValue()); - i++; - } - prefix = "IpPermissions.%d.IpRanges."; - i = 0; - for (String cidrIp : checkNotNull(permission.getCidrBlocks(), "cidrIps")) { - headers.put(prefix + i++ + ".CidrIp", cidrIp); - } - return Multimaps.forMap(Maps2.transformKeys(headers, new Function<String, String>() { - - @Override - public String apply(String arg0) { - return String.format(arg0, index); - } - - })); - } - - public static ICMPTypeSelection permitICMP() { - return new ICMPTypeSelection(); - } - - public static ToSourceSelection permitAnyProtocol() { - return new ToSourceSelection(IpProtocol.ALL, 1, 65535); - } - - public static PortSelection permit(IpProtocol protocol) { - return new PortSelection(checkNotNull(protocol, "protocol")); - } - - public static class ICMPTypeSelection extends ToSourceSelection { - - ICMPTypeSelection() { - super(IpProtocol.ICMP, -1, -1); - } - - /** - * @param type ex. 8 for ECHO (i.e. Ping) - * @see <a href="http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xml"> ICMP Types</a> - */ - public AndCodeSelection type(int type) { - return new AndCodeSelection(type); - } - } - - public static class AndCodeSelection extends ToSourceSelection { - AndCodeSelection(int type) { - super(IpProtocol.ICMP, type, -1); - } - - public ToSourceSelection andCode(int code) { - return new ToSourceSelection(getIpProtocol(), getFromPort(), code); - } - - } - - public static class PortSelection extends ToSourceSelection { - - PortSelection(IpProtocol ipProtocol) { - super(ipProtocol, ipProtocol == IpProtocol.ICMP ? -1 : 1, ipProtocol == IpProtocol.ICMP ? -1 : 65535); - } - - public ToPortSelection fromPort(int port) { - return new ToPortSelection(getIpProtocol(), port); - } - - public ToSourceSelection port(int port) { - return new ToSourceSelection(getIpProtocol(), port, port); - } - } - - public static class ToPortSelection extends ToSourceSelection { - - ToPortSelection(IpProtocol ipProtocol, int fromPort) { - super(ipProtocol, fromPort, ipProtocol == IpProtocol.ICMP ? -1 : 65535); - } - - public ToSourceSelection to(int port) { - return new ToSourceSelection(getIpProtocol(), getFromPort(), port); - } - } - - public static class ToVPCSourceSelection extends IpPermissions { - - protected ToVPCSourceSelection(IpProtocol ipProtocol, int fromPort, int toPort) { - super(ipProtocol, fromPort, toPort, ImmutableMultimap.<String, String> of(), ImmutableSet.<String> of(), - ImmutableSet.of("0.0.0.0/0")); - } - - public IpPermissions originatingFromSecurityGroupId(String groupId) { - return toVPCSecurityGroups(ImmutableSet.of(checkNotNull(groupId, "groupId"))); - } - - public IpPermissions toVPCSecurityGroups(Iterable<String> groupIds) { - return new IpPermissions(getIpProtocol(), getFromPort(), getToPort(), getTenantIdGroupNamePairs(), groupIds, - ImmutableSet.<String> of()); - } - } - - public static class ToSourceSelection extends ToVPCSourceSelection { - ToSourceSelection(IpProtocol ipProtocol, int fromPort, int toPort) { - super(ipProtocol, fromPort, toPort); - } - - public IpPermissions originatingFromCidrBlock(String cidrIp) { - return originatingFromCidrBlocks(ImmutableSet.of(checkNotNull(cidrIp, "cidrIp"))); - } - - public IpPermissions originatingFromCidrBlocks(Iterable<String> cidrIps) { - return new IpPermissions(getIpProtocol(), getFromPort(), getToPort(), - ImmutableMultimap.<String, String> of(), ImmutableSet.<String> of(), cidrIps); - } - - public IpPermissions originatingFromUserAndSecurityGroup(String userId, String groupName) { - return toEC2SecurityGroups(ImmutableMultimap.of(checkNotNull(userId, "userId"), - checkNotNull(groupName, "groupName"))); - } - - public IpPermissions toEC2SecurityGroups(Multimap<String, String> tenantIdGroupNamePairs) { - return new IpPermissions(getIpProtocol(), getFromPort(), getToPort(), tenantIdGroupNamePairs, getGroupIds(), - ImmutableSet.<String> of()); - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/SubnetFilterBuilder.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/SubnetFilterBuilder.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/SubnetFilterBuilder.java deleted file mode 100644 index 6944bb3..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/SubnetFilterBuilder.java +++ /dev/null @@ -1,251 +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.util; - -import java.util.Comparator; -import java.util.Map.Entry; - -import org.jclouds.ec2.domain.Subnet; - -import com.google.common.annotations.Beta; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Multimap; - -/** - * You can specify filters so that the response includes information for only - * certain subnets. For example, you can use a filter to specify that you're - * interested in the subnets in the available state. You can specify multiple - * values for a filter. The response includes information for a subnet only if - * it matches at least one of the filter values that you specified. - * - * You can specify multiple filters; for example, specify subnets that are in a - * specific VPC and are in the available state. The response includes - * information for a subnet only if it matches all the filters that you - * specified. If there's no match, no special message is returned, the response - * is simply empty. - * - * <h4>Wildcards</h4> You can use wildcards with the filter values: {@code *} - * matches zero or more characters, and ? matches exactly one character. You can - * escape special characters using a backslash before the character. For - * example, a value of {@code \*amazon\?\\} searches for the literal string - * {@code *amazon?\}. - * - * @author Adrian Cole - * @author Andrew Bayer - * @see SubnetApi - */ -public class SubnetFilterBuilder extends ImmutableMultimap.Builder<String, String> { - - private static final String AVAILABILITY_ZONE = "availability-zone"; - private static final String AVAILABLE_IP_ADDRESS_COUNT = "available-ip-address-count"; - private static final String CIDR = "cidr"; - private static final String STATE = "state"; - private static final String SUBNET_ID = "subnet-id"; - private static final String TAG_KEY = "tag-key"; - private static final String TAG_VALUE = "tag-value"; - private static final String TAG_ARBITRARY_BASE = "tag:"; - private static final String VPC_ID = "vpc-id"; - - public SubnetFilterBuilder availabilityZone(String availabilityZone) { - return put(AVAILABILITY_ZONE, availabilityZone); - } - - public SubnetFilterBuilder availabilityZones(String... availabilityZones) { - return putAll(AVAILABILITY_ZONE, availabilityZones); - } - - public SubnetFilterBuilder availabilityZones(Iterable<String> availabilityZones) { - return putAll(AVAILABILITY_ZONE, availabilityZones); - } - - public SubnetFilterBuilder anyAvailabilityZone() { - return putAll(AVAILABILITY_ZONE, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder availableIpAddressCount(String availableIpAddressCount) { - return put(AVAILABLE_IP_ADDRESS_COUNT, availableIpAddressCount); - } - - public SubnetFilterBuilder availableIpAddressCounts(String... availableIpAddressCounts) { - return putAll(AVAILABLE_IP_ADDRESS_COUNT, availableIpAddressCounts); - } - - public SubnetFilterBuilder availableIpAddressCounts(Iterable<String> availableIpAddressCounts) { - return putAll(AVAILABLE_IP_ADDRESS_COUNT, availableIpAddressCounts); - } - - public SubnetFilterBuilder anyAvailableIpAddressCount() { - return putAll(AVAILABLE_IP_ADDRESS_COUNT, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder cidr(String cidr) { - return put(CIDR, cidr); - } - - public SubnetFilterBuilder cidrs(String... cidrs) { - return putAll(CIDR, cidrs); - } - - public SubnetFilterBuilder cidrs(Iterable<String> cidrs) { - return putAll(CIDR, cidrs); - } - - public SubnetFilterBuilder anyCidr() { - return putAll(CIDR, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder state(String state) { - return put(STATE, state); - } - - public SubnetFilterBuilder states(String... states) { - return putAll(STATE, states); - } - - public SubnetFilterBuilder states(Iterable<String> states) { - return putAll(STATE, states); - } - - public SubnetFilterBuilder anyState() { - return putAll(STATE, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder available() { - return put(STATE, Subnet.State.AVAILABLE.value()); - } - - public SubnetFilterBuilder pending() { - return put(STATE, Subnet.State.PENDING.value()); - } - - public SubnetFilterBuilder subnetId(String subnetId) { - return put(SUBNET_ID, subnetId); - } - - public SubnetFilterBuilder subnetIds(String... subnetIds) { - return putAll(SUBNET_ID, subnetIds); - } - - public SubnetFilterBuilder subnetIds(Iterable<String> subnetIds) { - return putAll(SUBNET_ID, subnetIds); - } - - public SubnetFilterBuilder anySubnetId() { - return putAll(SUBNET_ID, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder tagKey(String tagKey) { - return put(TAG_KEY, tagKey); - } - - public SubnetFilterBuilder tagKeys(String... tagKeys) { - return putAll(TAG_KEY, tagKeys); - } - - public SubnetFilterBuilder tagKeys(Iterable<String> tagKeys) { - return putAll(TAG_KEY, tagKeys); - } - - public SubnetFilterBuilder anyTagKey() { - return putAll(TAG_KEY, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder tagValue(String tagValue) { - return put(TAG_VALUE, tagValue); - } - - public SubnetFilterBuilder tagValues(String... tagValues) { - return putAll(TAG_VALUE, tagValues); - } - - public SubnetFilterBuilder tagValues(Iterable<String> tagValues) { - return putAll(TAG_VALUE, tagValues); - } - - public SubnetFilterBuilder anyTagValue() { - return putAll(TAG_VALUE, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder vpcId(String vpcId) { - return put(VPC_ID, vpcId); - } - - public SubnetFilterBuilder vpcIds(String... vpcIds) { - return putAll(VPC_ID, vpcIds); - } - - public SubnetFilterBuilder vpcIds(Iterable<String> vpcIds) { - return putAll(VPC_ID, vpcIds); - } - - public SubnetFilterBuilder anyVpcId() { - return putAll(VPC_ID, ImmutableSet.<String> of()); - } - - public SubnetFilterBuilder arbitraryTag(String arbitraryTagKey, String arbitraryTagValue) { - return put(TAG_ARBITRARY_BASE + arbitraryTagKey, arbitraryTagValue); - } - - public SubnetFilterBuilder arbitraryTag(String arbitraryTagKey, String... arbitraryTagValues) { - return putAll(TAG_ARBITRARY_BASE + arbitraryTagKey, arbitraryTagValues); - } - - public SubnetFilterBuilder arbitraryTag(String arbitraryTagKey, Iterable<String> arbitraryTagValues) { - return putAll(TAG_ARBITRARY_BASE + arbitraryTagKey, arbitraryTagValues); - } - - - // to set correct return val in chain - - @Override - public SubnetFilterBuilder put(String key, String value) { - return SubnetFilterBuilder.class.cast(super.put(key, value)); - } - - @Override - public SubnetFilterBuilder put(Entry<? extends String, ? extends String> entry) { - return SubnetFilterBuilder.class.cast(super.put(entry)); - } - - @Override - public SubnetFilterBuilder putAll(String key, Iterable<? extends String> values) { - return SubnetFilterBuilder.class.cast(super.putAll(key, values)); - } - - @Override - public SubnetFilterBuilder putAll(String key, String... values) { - return SubnetFilterBuilder.class.cast(super.putAll(key, values)); - } - - @Override - public SubnetFilterBuilder putAll(Multimap<? extends String, ? extends String> multimap) { - return SubnetFilterBuilder.class.cast(super.putAll(multimap)); - } - - @Override - @Beta - public SubnetFilterBuilder orderKeysBy(Comparator<? super String> keyComparator) { - return SubnetFilterBuilder.class.cast(super.orderKeysBy(keyComparator)); - } - - @Override - @Beta - public SubnetFilterBuilder orderValuesBy(Comparator<? super String> valueComparator) { - return SubnetFilterBuilder.class.cast(super.orderValuesBy(valueComparator)); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/TagFilterBuilder.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/TagFilterBuilder.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/TagFilterBuilder.java deleted file mode 100644 index c2ccedd..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/TagFilterBuilder.java +++ /dev/null @@ -1,223 +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.util; - -import java.util.Comparator; -import java.util.Map.Entry; - -import org.jclouds.ec2.domain.Tag; - -import com.google.common.annotations.Beta; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Multimap; - -/** - * You can use filters to limit the results when describing tags. For example, - * you could get only the tags for a particular resource type. You can specify - * multiple values for a filter. A tag must match at least one of the specified - * values for it to be included in the results. - * - * You can specify multiple filters (for example, limit the results to a - * specific resource type, and get only tags with values that contain the string - * database). The result includes information for a particular tag only if it - * matches all your filters. If there's no match, no special message is - * returned; the response is simply empty. - * - * <h4>Wildcards</h4> You can use wildcards with the filter values: {@code *} - * matches zero or more characters, and ? matches exactly one character. You can - * escape special characters using a backslash before the character. For - * example, a value of {@code \*amazon\?\\} searches for the literal string - * {@code *amazon?\}. - * - * @author Adrian Cole - * @see TagApi - */ -public class TagFilterBuilder extends ImmutableMultimap.Builder<String, String> { - - private static final String KEY = "key"; - private static final String VALUE = "value"; - private static final String RESOURCE_ID = "resource-id"; - private static final String RESOURCE_TYPE = "resource-type"; - - public TagFilterBuilder key(String key) { - return put(KEY, key); - } - - public TagFilterBuilder keys(String... keys) { - return putAll(KEY, keys); - } - - public TagFilterBuilder keys(Iterable<String> keys) { - return putAll(KEY, keys); - } - - public TagFilterBuilder anyKey() { - return putAll(KEY, ImmutableSet.<String> of()); - } - - public TagFilterBuilder value(String value) { - return put(VALUE, value); - } - - public TagFilterBuilder values(String... values) { - return putAll(VALUE, ImmutableSet.<String> copyOf(values)); - } - - public TagFilterBuilder values(Iterable<String> values) { - return putAll(VALUE, ImmutableSet.<String> copyOf(values)); - } - - public TagFilterBuilder anyValue() { - return putAll(VALUE, ImmutableSet.<String> of()); - } - - public TagFilterBuilder resourceId(String resourceId) { - return put(RESOURCE_ID, resourceId); - } - - public TagFilterBuilder resourceIds(String... resourceIds) { - return putAll(RESOURCE_ID, resourceIds); - } - - public TagFilterBuilder resourceIds(Iterable<String> resourceIds) { - return putAll(RESOURCE_ID, resourceIds); - } - - public TagFilterBuilder anyResourceId() { - return putAll(RESOURCE_ID, ImmutableSet.<String> of()); - } - - public TagFilterBuilder resourceType(String resourceType) { - return put(RESOURCE_TYPE, resourceType); - } - - public TagFilterBuilder resourceTypes(String... resourceTypes) { - return putAll(RESOURCE_TYPE, resourceTypes); - } - - public TagFilterBuilder resourceTypes(Iterable<String> resourceTypes) { - return putAll(RESOURCE_TYPE, resourceTypes); - } - - public TagFilterBuilder anyResourceType() { - return putAll(RESOURCE_TYPE, ImmutableSet.<String> of()); - } - - public TagFilterBuilder customerGateway() { - return put(RESOURCE_TYPE, Tag.ResourceType.CUSTOMER_GATEWAY); - } - - public TagFilterBuilder dhcpOptions() { - return put(RESOURCE_TYPE, Tag.ResourceType.DHCP_OPTIONS); - } - - public TagFilterBuilder image() { - return put(RESOURCE_TYPE, Tag.ResourceType.IMAGE); - } - - public TagFilterBuilder instance() { - return put(RESOURCE_TYPE, Tag.ResourceType.INSTANCE); - } - - public TagFilterBuilder internetGateway() { - return put(RESOURCE_TYPE, Tag.ResourceType.INTERNET_GATEWAY); - } - - public TagFilterBuilder networkAcl() { - return put(RESOURCE_TYPE, Tag.ResourceType.NETWORK_ACL); - } - - public TagFilterBuilder reservedInstance() { - return put(RESOURCE_TYPE, Tag.ResourceType.RESERVED_INSTANCES); - } - - public TagFilterBuilder routeTable() { - return put(RESOURCE_TYPE, Tag.ResourceType.ROUTE_TABLE); - } - - public TagFilterBuilder securityGroup() { - return put(RESOURCE_TYPE, Tag.ResourceType.SECURITY_GROUP); - } - - public TagFilterBuilder snapshot() { - return put(RESOURCE_TYPE, Tag.ResourceType.SNAPSHOT); - } - - public TagFilterBuilder instancesRequest() { - return put(RESOURCE_TYPE, Tag.ResourceType.SPOT_INSTANCES_REQUEST); - } - - public TagFilterBuilder subnet() { - return put(RESOURCE_TYPE, Tag.ResourceType.SUBNET); - } - - public TagFilterBuilder volume() { - return put(RESOURCE_TYPE, Tag.ResourceType.VOLUME); - } - - public TagFilterBuilder vpc() { - return put(RESOURCE_TYPE, Tag.ResourceType.VPC); - } - - public TagFilterBuilder vpnConnection() { - return put(RESOURCE_TYPE, Tag.ResourceType.VPN_CONNECTION); - } - - public TagFilterBuilder vpnGateway() { - return put(RESOURCE_TYPE, Tag.ResourceType.VPN_GATEWAY); - } - - // to set correct return val in chain - - @Override - public TagFilterBuilder put(String key, String value) { - return TagFilterBuilder.class.cast(super.put(key, value)); - } - - @Override - public TagFilterBuilder put(Entry<? extends String, ? extends String> entry) { - return TagFilterBuilder.class.cast(super.put(entry)); - } - - @Override - public TagFilterBuilder putAll(String key, Iterable<? extends String> values) { - return TagFilterBuilder.class.cast(super.putAll(key, values)); - } - - @Override - public TagFilterBuilder putAll(String key, String... values) { - return TagFilterBuilder.class.cast(super.putAll(key, values)); - } - - @Override - public TagFilterBuilder putAll(Multimap<? extends String, ? extends String> multimap) { - return TagFilterBuilder.class.cast(super.putAll(multimap)); - } - - @Override - @Beta - public TagFilterBuilder orderKeysBy(Comparator<? super String> keyComparator) { - return TagFilterBuilder.class.cast(super.orderKeysBy(keyComparator)); - } - - @Override - @Beta - public TagFilterBuilder orderValuesBy(Comparator<? super String> valueComparator) { - return TagFilterBuilder.class.cast(super.orderValuesBy(valueComparator)); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/Tags.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/Tags.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/Tags.java deleted file mode 100644 index 23e5ca1..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/util/Tags.java +++ /dev/null @@ -1,101 +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.util; - -import static com.google.common.collect.Multimaps.index; - -import java.util.Map; - -import org.jclouds.ec2.domain.Tag; - -import com.google.common.base.Function; -import com.google.common.collect.Maps; - -/** - * - * @author Adrian Cole - */ -public class Tags { - private Tags() { - } - - /** - * maps the input on {@link Tag#getResourceId()} with a value of a map of its {@link Tag#getKey()} to - * {@link Tag#getValue()} - */ - public static Map<String, Map<String, String>> resourceToTagsAsMap(Iterable<Tag> tags) { - return Maps.transformValues(index(tags, resourceIdFunction()).asMap(), - new Function<Iterable<Tag>, Map<String, String>>() { - @Override - public Map<String, String> apply(Iterable<Tag> in) { - return Maps.transformValues(Maps.uniqueIndex(in, keyFunction()), valueFunction()); - } - }); - } - - public static enum ValueFunction implements Function<Tag, String> { - INSTANCE; - @Override - public String apply(Tag in) { - return in.getValue().or(""); - } - - @Override - public String toString() { - return "getValue()"; - } - } - - public static Function<Tag, String> valueFunction() { - return ValueFunction.INSTANCE; - } - - public static enum KeyFunction implements Function<Tag, String> { - INSTANCE; - @Override - public String apply(Tag in) { - return in.getKey(); - } - - @Override - public String toString() { - return "getKey()"; - } - } - - public static Function<Tag, String> keyFunction() { - return KeyFunction.INSTANCE; - } - - public static enum ResourceIdFunction implements Function<Tag, String> { - INSTANCE; - @Override - public String apply(Tag in) { - return in.getResourceId(); - } - - @Override - public String toString() { - return "getResourceId()"; - } - } - - public static Function<Tag, String> resourceIdFunction() { - return ResourceIdFunction.INSTANCE; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AllocateAddressResponseHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AllocateAddressResponseHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AllocateAddressResponseHandler.java deleted file mode 100644 index a798201..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AllocateAddressResponseHandler.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.ec2.xml; - -import javax.annotation.Resource; - -import org.jclouds.http.functions.ParseSax.HandlerWithResult; -import org.jclouds.logging.Logger; - -/** - * @author Adrian Cole - */ -public class AllocateAddressResponseHandler extends HandlerWithResult<String> { - - @Resource - protected Logger logger = Logger.NULL; - - private String ipAddress; - private StringBuilder currentText = new StringBuilder(); - - protected String currentOrNull() { - String returnVal = currentText.toString().trim(); - return returnVal.equals("") ? null : returnVal; - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("publicIp")) { - ipAddress = currentOrNull(); - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } - - @Override - public String getResult() { - return ipAddress; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.java deleted file mode 100644 index 24affca..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/AttachmentHandler.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.ec2.xml; - -import java.util.Date; - -import javax.annotation.Resource; -import javax.inject.Inject; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; -import org.jclouds.ec2.domain.Attachment; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.location.Region; -import org.jclouds.logging.Logger; - -import com.google.common.base.Supplier; - -/** - * - * @author Adrian Cole - */ -public class AttachmentHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Attachment> { - - @Resource - protected Logger logger = Logger.NULL; - - protected final DateCodec dateCodec; - protected final Supplier<String> defaultRegion; - - @Inject - AttachmentHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) { - this.dateCodec = dateCodecFactory.iso8601(); - this.defaultRegion = defaultRegion; - } - - private StringBuilder currentText = new StringBuilder(); - private String volumeId; - private String instanceId; - private String device; - private Attachment.Status attachmentStatus; - private Date attachTime; - - public Attachment getResult() { - String region = AWSUtils.findRegionInArgsOrNull(getRequest()); - if (region == null) - region = defaultRegion.get(); - return new Attachment(region, volumeId, instanceId, device, attachmentStatus, attachTime); - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("volumeId")) { - volumeId = currentText.toString().trim(); - } else if (qName.equals("volumeId")) { - volumeId = currentText.toString().trim(); - } else if (qName.equals("status")) { - attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim()); - } else if (qName.equals("instanceId")) { - instanceId = currentText.toString().trim(); - } else if (qName.equals("device")) { - device = currentText.toString().trim(); - } else if (qName.equals("attachTime")) { - attachTime = dateCodec.toDate(currentText.toString().trim()); - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java deleted file mode 100644 index 521d5a6..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BaseReservationHandler.java +++ /dev/null @@ -1,217 +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.xml; - -import static org.jclouds.util.SaxUtils.currentOrNull; -import static org.jclouds.util.SaxUtils.equalsOrSuffix; - -import java.util.Date; -import java.util.Set; - -import javax.inject.Inject; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; -import org.jclouds.ec2.domain.Attachment; -import org.jclouds.ec2.domain.BlockDevice; -import org.jclouds.ec2.domain.InstanceState; -import org.jclouds.ec2.domain.Reservation; -import org.jclouds.ec2.domain.RootDeviceType; -import org.jclouds.ec2.domain.RunningInstance; -import org.jclouds.ec2.domain.RunningInstance.Builder; -import org.jclouds.http.functions.ParseSax.HandlerForGeneratedRequestWithResult; -import org.jclouds.location.Region; -import org.xml.sax.Attributes; - -import com.google.common.base.Supplier; -import com.google.common.collect.Sets; - -/** - * - * @author Adrian Cole - */ -public abstract class BaseReservationHandler<T> extends HandlerForGeneratedRequestWithResult<T> { - - protected final DateCodec dateCodec; - protected final Supplier<String> defaultRegion; - - @Inject - public BaseReservationHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) { - this.dateCodec = dateCodecFactory.iso8601(); - this.defaultRegion = defaultRegion; - } - - protected Builder<?> builder = newBuilder(); - - protected Builder<?> newBuilder() { - return RunningInstance.builder(); - } - - protected void inItem() { - if (endOfInstanceItem()) { - refineBuilderBeforeAddingInstance(); - instances.add(builder.build()); - builder = newBuilder(); - } - } - - protected StringBuilder currentText = new StringBuilder(); - protected int itemDepth; - protected boolean inInstancesSet; - protected boolean inProductCodes; - protected boolean inGroupSet; - - // attachments - private String volumeId; - private Attachment.Status attachmentStatus; - private Date attachTime; - private boolean deleteOnTermination; - private String deviceName; - - // reservation stuff - private Set<String> groupNames = Sets.newLinkedHashSet(); - private String ownerId; - private String requesterId; - private String reservationId; - - private Set<RunningInstance> instances = Sets.newLinkedHashSet(); - - - public void startElement(String uri, String name, String qName, Attributes attrs) { - if (equalsOrSuffix(qName, "item")) { - itemDepth++; - } else if (equalsOrSuffix(qName, "instancesSet")) { - inInstancesSet = true; - } else if (equalsOrSuffix(qName, "productCodes")) { - inProductCodes = true; - } else if (equalsOrSuffix(qName, "groupSet")) { - inGroupSet = true; - } - } - - public void endElement(String uri, String name, String qName) { - if (equalsOrSuffix(qName, "item")) { - inItem(); - itemDepth--; - } else if (equalsOrSuffix(qName, "instancesSet")) { - inInstancesSet = false; - } else if (equalsOrSuffix(qName, "productCodes")) { - inProductCodes = false; - } else if (equalsOrSuffix(qName, "groupSet")) { - inGroupSet = false; - } else if (equalsOrSuffix(qName, "groupId")) { - groupNames.add(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "ownerId")) { - ownerId = currentOrNull(currentText); - } else if (equalsOrSuffix(qName, "requesterId")) { - requesterId = currentOrNull(currentText); - } else if (equalsOrSuffix(qName, "reservationId")) { - reservationId = currentOrNull(currentText); - } else if (equalsOrSuffix(qName, "amiLaunchIndex")) { - builder.amiLaunchIndex(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "dnsName")) { - builder.dnsName(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "imageId")) { - builder.imageId(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "instanceId")) { - builder.instanceId(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "name")) { - String rawState = currentOrNull(currentText); - if (rawState != null) { - builder.rawState(rawState); - builder.instanceState(InstanceState.fromValue(rawState)); - } - } else if (equalsOrSuffix(qName, "instanceType")) { - builder.instanceType(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "ipAddress")) { - builder.ipAddress(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "kernelId")) { - builder.kernelId(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "keyName")) { - builder.keyName(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "launchTime")) { - builder.launchTime(dateCodec.toDate(currentOrNull(currentText))); - } else if (equalsOrSuffix(qName, "availabilityZone")) { - builder.availabilityZone(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "virtualizationType")) { - builder.virtualizationType(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "platform")) { - builder.platform(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "privateDnsName")) { - builder.privateDnsName(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "privateIpAddress")) { - builder.privateIpAddress(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "ramdiskId")) { - builder.ramdiskId(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "reason")) { - builder.reason(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "rootDeviceType")) { - builder.rootDeviceType(RootDeviceType.fromValue(currentOrNull(currentText))); - } else if (equalsOrSuffix(qName, "rootDeviceName")) { - builder.rootDeviceName(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "deviceName")) { - deviceName = currentOrNull(currentText); - } else if (equalsOrSuffix(qName, "volumeId")) { - volumeId = currentOrNull(currentText); - } else if (equalsOrSuffix(qName, "status")) { - attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim()); - } else if (equalsOrSuffix(qName, "attachTime")) { - attachTime = dateCodec.toDate(currentOrNull(currentText)); - } else if (equalsOrSuffix(qName, "deleteOnTermination")) { - deleteOnTermination = Boolean.parseBoolean(currentText.toString().trim()); - } else if (equalsOrSuffix(qName, "ebs")) { - builder.device(deviceName, new BlockDevice(volumeId, attachmentStatus, attachTime, deleteOnTermination)); - this.deviceName = null; - this.volumeId = null; - this.attachmentStatus = null; - this.attachTime = null; - this.deleteOnTermination = true; - } - currentText = new StringBuilder(); - } - - - protected void refineBuilderBeforeAddingInstance() { - String region = getRequest() != null ? AWSUtils.findRegionInArgsOrNull(getRequest()) : null; - builder.region((region == null) ? defaultRegion.get() : region); - builder.groupNames(groupNames); - } - - protected boolean endOfInstanceItem() { - return itemDepth <= 2 && inInstancesSet && !inProductCodes && !inGroupSet; - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } - - protected Reservation<? extends RunningInstance> newReservation() { - String region = getRequest() != null ? AWSUtils.findRegionInArgsOrNull(getRequest()) : null; - if (region == null) - region = defaultRegion.get(); - Reservation<? extends RunningInstance> info = new Reservation<RunningInstance>(region, groupNames, instances, - ownerId, requesterId, reservationId); - this.groupNames = Sets.newLinkedHashSet(); - this.instances = Sets.newLinkedHashSet(); - this.ownerId = null; - this.requesterId = null; - this.reservationId = null; - return info; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java deleted file mode 100644 index fc5a33f..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BlockDeviceMappingHandler.java +++ /dev/null @@ -1,82 +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.xml; - -import java.util.Date; -import java.util.Map; - -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; -import org.jclouds.ec2.domain.Attachment; -import org.jclouds.ec2.domain.BlockDevice; -import org.jclouds.http.functions.ParseSax; - -import com.google.common.collect.Maps; -import com.google.inject.Inject; - -/** - * - * @author Adrian Cole - */ -public class BlockDeviceMappingHandler extends - ParseSax.HandlerWithResult<Map<String, BlockDevice>> { - private StringBuilder currentText = new StringBuilder(); - - private Map<String, BlockDevice> ebsBlockDevices = Maps.newHashMap(); - private String deviceName; - private String volumeId; - private boolean deleteOnTermination = true;// correct default is true. - private Attachment.Status attachmentStatus; - private Date attachTime; - - protected final DateCodec dateCodec; - - @Inject - public BlockDeviceMappingHandler(DateCodecFactory dateCodecFactory) { - this.dateCodec = dateCodecFactory.iso8601(); - } - - public Map<String, BlockDevice> getResult() { - return ebsBlockDevices; - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("deviceName")) { - deviceName = currentText.toString().trim(); - } else if (qName.equals("volumeId")) { - volumeId = currentText.toString().trim(); - } else if (qName.equals("deleteOnTermination")) { - deleteOnTermination = Boolean.parseBoolean(currentText.toString().trim()); - } else if (qName.equals("status")) { - attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim()); - } else if (qName.equals("attachTime")) { - attachTime = dateCodec.toDate(currentText.toString().trim()); - } else if (qName.equals("item")) { - ebsBlockDevices.put(deviceName, new BlockDevice(volumeId, attachmentStatus, attachTime, deleteOnTermination)); - this.volumeId = null; - this.deviceName = null; - this.deleteOnTermination = true; - this.attachmentStatus = null; - this.attachTime = null; - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BooleanValueHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BooleanValueHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BooleanValueHandler.java deleted file mode 100644 index 35112d9..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BooleanValueHandler.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.xml; - -import org.jclouds.http.functions.ParseSax; - -/** - * - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/index.html?ApiReference-query-DescribeInstanceAttribute.html" - * /> - * @author Adrian Cole - */ -public class BooleanValueHandler extends ParseSax.HandlerWithResult<Boolean> { - - private StringBuilder currentText = new StringBuilder(); - private boolean value; - - public Boolean getResult() { - return value; - } - - public void endElement(String uri, String name, String qName) { - if (qName.equalsIgnoreCase("value")) { - this.value = Boolean.parseBoolean(currentText.toString().trim()); - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java deleted file mode 100644 index 2ffebc2..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/BundleTaskHandler.java +++ /dev/null @@ -1,111 +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.xml; - -import java.util.Date; - -import javax.inject.Inject; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; -import org.jclouds.ec2.domain.BundleTask; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.location.Region; - -import com.google.common.base.Supplier; - -/** - * - * @author Adrian Cole - */ -public class BundleTaskHandler extends ParseSax.HandlerForGeneratedRequestWithResult<BundleTask> { - protected final DateCodec dateCodec; - protected final Supplier<String> defaultRegion; - - @Inject - protected BundleTaskHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion) { - this.dateCodec = dateCodecFactory.iso8601(); - this.defaultRegion = defaultRegion; - } - - private StringBuilder currentText = new StringBuilder(); - - private String bundleId; - private String code; - private String message; - private String instanceId; - private int progress = 0; - private Date startTime; - private String state; - private String bucket; - private String prefix; - private Date updateTime; - - public BundleTask getResult() { - String region = AWSUtils.findRegionInArgsOrNull(getRequest()); - if (region == null) - region = defaultRegion.get(); - BundleTask.Error error = null; - if (code != null) - error = new BundleTask.Error(code, message); - BundleTask returnVal = new BundleTask(region, bundleId, error, instanceId, progress, startTime, - state, bucket, prefix, updateTime); - this.bundleId = null; - this.code = null; - this.message = null; - this.instanceId = null; - this.progress = 0; - this.startTime = null; - this.state = null; - this.bucket = null; - this.prefix = null; - this.updateTime = null; - return returnVal; - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("bundleId")) { - bundleId = currentText.toString().trim(); - } else if (qName.equals("code")) { - code = currentText.toString().trim(); - } else if (qName.equals("message")) { - message = currentText.toString().trim(); - } else if (qName.equals("instanceId")) { - instanceId = currentText.toString().trim(); - } else if (qName.equals("progress")) { - String temp = currentText.toString().trim(); - temp = temp.substring(0, temp.length() - 1); - progress = Integer.parseInt(temp); - } else if (qName.equals("startTime")) { - startTime = dateCodec.toDate(currentText.toString().trim()); - } else if (qName.equals("state")) { - state = currentText.toString().trim(); - } else if (qName.equals("bucket")) { - bucket = currentText.toString().trim(); - } else if (qName.equals("prefix")) { - prefix = currentText.toString().trim(); - } else if (qName.equals("updateTime")) { - updateTime = dateCodec.toDate(currentText.toString().trim()); - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java deleted file mode 100644 index ca1c77d..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/CreateVolumeResponseHandler.java +++ /dev/null @@ -1,198 +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.xml; - -import static com.google.common.base.Preconditions.checkNotNull; - -import java.util.Date; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; - -import javax.inject.Inject; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.date.DateCodec; -import org.jclouds.date.DateCodecFactory; -import org.jclouds.ec2.domain.Attachment; -import org.jclouds.ec2.domain.Volume; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.location.Region; -import org.jclouds.location.Zone; -import org.jclouds.rest.internal.GeneratedHttpRequest; -import org.xml.sax.Attributes; - -import com.google.common.base.Supplier; -import com.google.common.base.Suppliers; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -/** - * - * @author Adrian Cole - */ -public class CreateVolumeResponseHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Volume> { - protected final DateCodec dateCodec; - protected final Supplier<String> defaultRegion; - protected final Supplier<Map<String, Supplier<Set<String>>>> regionToZonesSupplier; - protected final Supplier<Set<String>> zonesSupplier; - - @Inject - protected CreateVolumeResponseHandler(DateCodecFactory dateCodecFactory, @Region Supplier<String> defaultRegion, - @Zone Supplier<Map<String, Supplier<Set<String>>>> regionToZonesSupplier, - @Zone Supplier<Set<String>> zonesSupplier) { - this.dateCodec = dateCodecFactory.iso8601(); - this.defaultRegion = defaultRegion; - this.regionToZonesSupplier = regionToZonesSupplier; - this.zonesSupplier = zonesSupplier; - } - - protected StringBuilder currentText = new StringBuilder(); - - protected String id; - protected int size; - protected String snapshotId; - protected String availabilityZone; - protected Volume.Status volumeStatus; - protected Date createTime; - protected Set<Attachment> attachments = Sets.newLinkedHashSet(); - - protected String volumeId; - protected String instanceId; - protected String device; - protected Attachment.Status attachmentStatus; - protected Date attachTime; - - protected boolean inAttachmentSet; - - protected String region; - - public Volume getResult() { - return newVolume(); - } - - public void startElement(String uri, String name, String qName, Attributes attrs) { - if (qName.equals("attachmentSet")) { - inAttachmentSet = true; - } - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("volumeId")) { - if (inAttachmentSet) { - volumeId = currentText.toString().trim(); - } else { - id = currentText.toString().trim(); - } - } else if (qName.equals("size")) { - size = Integer.parseInt(currentText.toString().trim()); - } else if (qName.equals("availabilityZone")) { - availabilityZone = currentText.toString().trim(); - } else if (qName.equals("volumeId")) { - if (inAttachmentSet) { - volumeId = currentText.toString().trim(); - } else { - id = currentText.toString().trim(); - } - } else if (qName.equals("status")) { - if (inAttachmentSet) { - attachmentStatus = Attachment.Status.fromValue(currentText.toString().trim()); - } else { - volumeStatus = Volume.Status.fromValue(currentText.toString().trim()); - } - } else if (qName.equals("createTime")) { - createTime = dateCodec.toDate(currentText.toString().trim()); - } else if (qName.equals("attachmentSet")) { - inAttachmentSet = false; - } else if (qName.equals("instanceId")) { - instanceId = currentText.toString().trim(); - } else if (qName.equals("snapshotId")) { - snapshotId = currentText.toString().trim(); - if (snapshotId.equals("")) - snapshotId = null; - } else if (qName.equals("device")) { - device = currentText.toString().trim(); - } else if (qName.equals("attachTime")) { - attachTime = dateCodec.toDate(currentText.toString().trim()); - } else if (qName.equals("item")) { - if (inAttachmentSet) { - attachments.add(new Attachment(region, volumeId, instanceId, device, attachmentStatus, attachTime)); - volumeId = null; - instanceId = null; - device = null; - attachmentStatus = null; - attachTime = null; - } - - } - currentText = new StringBuilder(); - } - - private Volume newVolume() { - Volume volume = new Volume(region, id, size, snapshotId, availabilityZone, volumeStatus, createTime, attachments); - id = null; - size = 0; - snapshotId = null; - availabilityZone = null; - volumeStatus = null; - createTime = null; - attachments = Sets.newLinkedHashSet(); - return volume; - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } - - @Override - public CreateVolumeResponseHandler setContext(HttpRequest request) { - super.setContext(request); - region = AWSUtils.findRegionInArgsOrNull(getRequest()); - if (region == null) { - Set<String> zones = zonesSupplier.get(); - String zone = findAvailabilityZoneInArgsOrNull(getRequest(), zones); - if (zone != null) { - Map<String, Set<String>> regionToZones = Maps.transformValues(regionToZonesSupplier.get(), Suppliers - .<Set<String>> supplierFunction()); - for (Entry<String, Set<String>> entry : regionToZones.entrySet()) { - if (entry.getValue().contains(zone)) { - region = entry.getKey(); - break; - } - - } - checkNotNull(regionToZones, String.format("zone %s not in %s", zone, regionToZones)); - } else { - region = defaultRegion.get(); - } - } - return this; - } - - public static String findAvailabilityZoneInArgsOrNull(GeneratedHttpRequest gRequest, Set<String> zones) { - for (Object arg : gRequest.getInvocation().getArgs()) { - if (arg instanceof String) { - String zone = (String) arg; - if (zones.contains(zone)) - return zone; - } - } - return null; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAddressesResponseHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAddressesResponseHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAddressesResponseHandler.java deleted file mode 100644 index 731b8ff..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAddressesResponseHandler.java +++ /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. - */ -package org.jclouds.ec2.xml; - -import java.util.Set; - -import javax.annotation.Resource; -import javax.inject.Inject; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.ec2.domain.PublicIpInstanceIdPair; -import org.jclouds.http.functions.ParseSax.HandlerForGeneratedRequestWithResult; -import org.jclouds.location.Region; -import org.jclouds.logging.Logger; - -import com.google.common.base.Supplier; -import com.google.common.collect.Sets; - -/** - * - * @author Adrian Cole - */ -public class DescribeAddressesResponseHandler extends - HandlerForGeneratedRequestWithResult<Set<PublicIpInstanceIdPair>> { - - @Resource - protected Logger logger = Logger.NULL; - private Set<PublicIpInstanceIdPair> pairs = Sets.newLinkedHashSet(); - private String ipAddress; - private StringBuilder currentText = new StringBuilder(); - @Inject - @Region - Supplier<String> defaultRegion; - private String instanceId; - - protected String currentOrNull() { - String returnVal = currentText.toString().trim(); - return returnVal.equals("") ? null : returnVal; - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("publicIp")) { - ipAddress = currentOrNull(); - } else if (qName.equals("instanceId")) { - instanceId = currentOrNull(); - } else if (qName.equals("item")) { - String region = AWSUtils.findRegionInArgsOrNull(getRequest()); - if (region == null) - region = defaultRegion.get(); - pairs.add(new PublicIpInstanceIdPair(region, ipAddress, instanceId)); - ipAddress = null; - instanceId = null; - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } - - @Override - public Set<PublicIpInstanceIdPair> getResult() { - return pairs; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAvailabilityZonesResponseHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAvailabilityZonesResponseHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAvailabilityZonesResponseHandler.java deleted file mode 100644 index 66d1403..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeAvailabilityZonesResponseHandler.java +++ /dev/null @@ -1,104 +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.xml; - -import java.util.Set; - -import javax.annotation.Resource; -import javax.inject.Inject; - -import org.jclouds.ec2.domain.AvailabilityZoneInfo; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.location.Region; -import org.jclouds.logging.Logger; -import org.xml.sax.Attributes; - -import com.google.common.base.Supplier; -import com.google.common.collect.Sets; - -/** - * - * @author Adrian Cole - */ -public class DescribeAvailabilityZonesResponseHandler extends ParseSax.HandlerWithResult<Set<AvailabilityZoneInfo>> { - private StringBuilder currentText = new StringBuilder(); - private final Supplier<String> defaultRegion; - - private Set<AvailabilityZoneInfo> availabilityZones = Sets.newLinkedHashSet(); - private String zone; - @Resource - protected Logger logger = Logger.NULL; - private String region; - private String zoneState; - private boolean inMessageSet; - private Set<String> messages = Sets.newHashSet(); - - /** - * clones like {@code openstack-nova-ec2}, which don't support multiple regions don't return region in the XML - * output. - */ - @Inject - DescribeAvailabilityZonesResponseHandler(@Region Supplier<String> defaultRegion) { - this.defaultRegion = defaultRegion; - } - - @Override - public void startDocument() { - region = defaultRegion.get(); - } - - public Set<AvailabilityZoneInfo> getResult() { - return availabilityZones; - } - - public void startElement(String uri, String name, String qName, Attributes attrs) { - if (qName.equals("messageSet")) { - inMessageSet = true; - } - } - - public void endElement(String uri, String name, String qName) { - if (qName.equals("zoneName")) { - zone = currentText.toString().trim(); - } else if (qName.equals("regionName")) { - try { - region = currentText.toString().trim(); - } catch (IllegalArgumentException e) { - logger.warn(e, "unsupported region: %s", currentText.toString().trim()); - region = "UNKNOWN"; - } - } else if (qName.equals("zoneState")) { - zoneState = currentText.toString().trim(); - } else if (qName.equals("message")) { - messages.add(currentText.toString().trim()); - } else if (qName.equals("messageSet")) { - inMessageSet = false; - } else if (qName.equals("item") && !inMessageSet) { - availabilityZones.add(new AvailabilityZoneInfo(zone, zoneState, region, messages)); - this.zone = null; - this.region = defaultRegion.get(); - this.zoneState = null; - this.messages = Sets.newHashSet(); - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - currentText.append(ch, start, length); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeBundleTasksResponseHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeBundleTasksResponseHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeBundleTasksResponseHandler.java deleted file mode 100644 index 1d826ce..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeBundleTasksResponseHandler.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.ec2.xml; - -import java.util.Set; - -import javax.inject.Inject; - -import org.jclouds.ec2.domain.BundleTask; -import org.jclouds.http.HttpRequest; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.http.functions.ParseSax.HandlerWithResult; -import org.xml.sax.Attributes; -import org.xml.sax.SAXException; - -import com.google.common.collect.Sets; - -/** - * @author Adrian Cole - */ -public class DescribeBundleTasksResponseHandler extends ParseSax.HandlerWithResult<Set<BundleTask>> { - - private Set<BundleTask> bundleTasks = Sets.newLinkedHashSet(); - private final BundleTaskHandler bundleTaskHandler; - - @Inject - public DescribeBundleTasksResponseHandler(BundleTaskHandler bundleTaskHandler) { - this.bundleTaskHandler = bundleTaskHandler; - } - - public Set<BundleTask> getResult() { - return bundleTasks; - } - - @Override - public HandlerWithResult<Set<BundleTask>> setContext(HttpRequest request) { - bundleTaskHandler.setContext(request); - return super.setContext(request); - } - - @Override - public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { - if (!qName.equals("item")) - bundleTaskHandler.startElement(uri, localName, qName, attributes); - } - - @Override - public void endElement(String uri, String localName, String qName) throws SAXException { - if (qName.equals("item")) { - bundleTasks.add(bundleTaskHandler.getResult()); - } - bundleTaskHandler.endElement(uri, localName, qName); - } - - public void characters(char ch[], int start, int length) { - bundleTaskHandler.characters(ch, start, length); - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/89fab312/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeImagesResponseHandler.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeImagesResponseHandler.java b/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeImagesResponseHandler.java deleted file mode 100644 index b55875a..0000000 --- a/dependencies/jclouds/apis/ec2/1.7.1-stratos/src/main/java/org/jclouds/ec2/xml/DescribeImagesResponseHandler.java +++ /dev/null @@ -1,223 +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.xml; - -import static org.jclouds.util.SaxUtils.currentOrNull; -import static org.jclouds.util.SaxUtils.equalsOrSuffix; - -import java.util.Map; -import java.util.Set; - -import javax.annotation.Resource; -import javax.inject.Inject; - -import org.jclouds.aws.util.AWSUtils; -import org.jclouds.ec2.domain.Hypervisor; -import org.jclouds.ec2.domain.Image; -import org.jclouds.ec2.domain.RootDeviceType; -import org.jclouds.ec2.domain.VirtualizationType; -import org.jclouds.ec2.domain.Image.Architecture; -import org.jclouds.ec2.domain.Image.EbsBlockDevice; -import org.jclouds.ec2.domain.Image.ImageState; -import org.jclouds.ec2.domain.Image.ImageType; -import org.jclouds.http.functions.ParseSax; -import org.jclouds.location.Region; -import org.jclouds.logging.Logger; -import org.xml.sax.Attributes; - -import com.google.common.base.Supplier; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -/** - * Parses the following XML document: - * <p/> - * DescribeImagesResponse xmlns="http://ec2.amazonaws.com/doc/2010-08-31/" - * - * @author Adrian Cole - * @see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeImages.html" - * /> - */ -public class DescribeImagesResponseHandler extends ParseSax.HandlerForGeneratedRequestWithResult<Set<Image>> { - - @Inject - public DescribeImagesResponseHandler(@Region Supplier<String> defaultRegion, TagSetHandler tagSetHandler) { - this.defaultRegion = defaultRegion; - this.tagSetHandler = tagSetHandler; - } - - @Resource - protected Logger logger = Logger.NULL; - - protected Set<Image> contents = Sets.newLinkedHashSet(); - private StringBuilder currentText = new StringBuilder(); - private final Supplier<String> defaultRegion; - private final TagSetHandler tagSetHandler; - - private Architecture architecture; - private String name; - private String description; - private String imageId; - private String imageLocation; - private String imageOwnerId; - private ImageState imageState; - private String rawState; - private ImageType imageType; - private boolean isPublic; - private String kernelId; - private String platform; - private Set<String> productCodes = Sets.newHashSet(); - private String ramdiskId; - private boolean inProductCodes; - private boolean inBlockDeviceMapping; - private boolean inTagSet; - private RootDeviceType rootDeviceType = RootDeviceType.INSTANCE_STORE; - private Map<String, EbsBlockDevice> ebsBlockDevices = Maps.newHashMap(); - private Map<String, String> tags = Maps.newLinkedHashMap(); - private String deviceName; - private String snapshotId; - private VirtualizationType virtualizationType = VirtualizationType.PARAVIRTUAL; - private Hypervisor hypervisor = Hypervisor.XEN; - - private int volumeSize; - private boolean deleteOnTermination = true;// correct default is true. - - private String rootDeviceName; - - public Set<Image> getResult() { - return contents; - } - - public void startElement(String uri, String name, String qName, Attributes attrs) { - if (qName.equals("productCodes")) { - inProductCodes = true; - } else if (qName.equals("blockDeviceMapping")) { - inBlockDeviceMapping = true; - } else if (equalsOrSuffix(qName, "tagSet")) { - inTagSet = true; - } - if (inTagSet) { - tagSetHandler.startElement(uri, name, qName, attrs); - } - } - - public void endElement(String uri, String name, String qName) { - if (equalsOrSuffix(qName, "tagSet")) { - inTagSet = false; - tags = tagSetHandler.getResult(); - } else if (inTagSet) { - tagSetHandler.endElement(uri, name, qName); - } - if (qName.equals("architecture")) { - architecture = Architecture.fromValue(currentText.toString().trim()); - // Nova Diablo uses the wrong name for this field - } else if (qName.equals("name") || qName.equals("displayName")) { - this.name = currentText.toString().trim(); - } else if (qName.equals("description")) { - description = currentText.toString().trim(); - } else if (qName.equals("imageId")) { - imageId = currentText.toString().trim(); - } else if (qName.equals("deviceName")) { - deviceName = currentText.toString().trim(); - } else if (qName.equals("imageLocation")) { - imageLocation = currentText.toString().trim(); - } else if (qName.equals("imageOwnerId")) { - imageOwnerId = currentText.toString().trim(); - } else if (qName.equals("imageState")) { - rawState = currentOrNull(currentText); - imageState = ImageState.fromValue(rawState); - } else if (qName.equals("imageType")) { - imageType = ImageType.fromValue(currentText.toString().trim()); - } else if (qName.equals("isPublic")) { - isPublic = Boolean.parseBoolean(currentText.toString().trim()); - } else if (qName.equals("kernelId")) { - kernelId = currentText.toString().trim(); - } else if (qName.equals("platform")) { - platform = currentText.toString().trim(); - } else if (qName.equals("productCode")) { - productCodes.add(currentText.toString().trim()); - } else if (qName.equals("productCodes")) { - inProductCodes = false; - } else if (qName.equals("blockDeviceMapping")) { - inBlockDeviceMapping = false; - } else if (qName.equals("snapshotId")) { - snapshotId = currentText.toString().trim(); - } else if (qName.equals("volumeSize")) { - volumeSize = Integer.parseInt(currentText.toString().trim()); - } else if (qName.equals("deleteOnTermination")) { - deleteOnTermination = Boolean.parseBoolean(currentText.toString().trim()); - } else if (qName.equals("ramdiskId")) { - ramdiskId = currentText.toString().trim(); - } else if (qName.equals("rootDeviceType")) { - rootDeviceType = RootDeviceType.fromValue(currentText.toString().trim()); - } else if (qName.equals("rootDeviceName")) { - rootDeviceName = currentText.toString().trim(); - } else if (qName.equals("virtualizationType")) { - virtualizationType = VirtualizationType.fromValue(currentText.toString().trim()); - } else if (qName.equals("hypervisor")) { - hypervisor = Hypervisor.fromValue(currentText.toString().trim()); - } else if (qName.equals("item")) { - if (inBlockDeviceMapping) { - ebsBlockDevices.put(deviceName, new Image.EbsBlockDevice(snapshotId, volumeSize, deleteOnTermination)); - this.deviceName = null; - this.snapshotId = null; - this.volumeSize = 0; - this.deleteOnTermination = true; - } else if (!inTagSet && !inProductCodes) { - try { - String region = getRequest() != null ? AWSUtils.findRegionInArgsOrNull(getRequest()) : null; - if (region == null) - region = defaultRegion.get(); - contents.add(new Image(region, architecture, this.name, description, imageId, imageLocation, - imageOwnerId, imageState, rawState, imageType, isPublic, productCodes, kernelId, platform, - ramdiskId, rootDeviceType, rootDeviceName, ebsBlockDevices, tags, virtualizationType, hypervisor)); - } catch (NullPointerException e) { - logger.warn(e, "malformed image: %s", imageId); - } - this.name = null; - this.description = null; - this.architecture = null; - this.imageId = null; - this.imageLocation = null; - this.imageOwnerId = null; - this.imageState = null; - this.rawState = null; - this.imageType = null; - this.isPublic = false; - this.kernelId = null; - this.platform = null; - this.productCodes = Sets.newHashSet(); - this.ramdiskId = null; - this.rootDeviceType = RootDeviceType.INSTANCE_STORE; - this.rootDeviceName = null; - this.ebsBlockDevices = Maps.newHashMap(); - this.virtualizationType = VirtualizationType.PARAVIRTUAL; - this.hypervisor = Hypervisor.XEN; - } - - } - currentText = new StringBuilder(); - } - - public void characters(char ch[], int start, int length) { - if (inTagSet) { - tagSetHandler.characters(ch, start, length); - } else { - currentText.append(ch, start, length); - } - } -}
