upgrading jclouds version to 1.7
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/5d5c3229 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/5d5c3229 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/5d5c3229 Branch: refs/heads/master Commit: 5d5c322911df126e2ae04ebcf1cccaf3b30ab6d7 Parents: a25f5fe Author: Nirmal Fernando <[email protected]> Authored: Fri Feb 7 15:20:42 2014 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Fri Feb 7 15:20:42 2014 +0530 ---------------------------------------------------------------------- .../cloud/controller/iaases/AWSEC2Iaas.java | 61 ++++++++------------ .../controller/iaases/OpenstackNovaIaas.java | 25 +++----- .../pom.xml | 4 +- pom.xml | 2 +- 4 files changed, 36 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5d5c3229/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java index 3248d1d..203017e 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/AWSEC2Iaas.java @@ -31,34 +31,27 @@ import org.apache.stratos.cloud.controller.exception.InvalidZoneException; import org.apache.stratos.cloud.controller.interfaces.Iaas; import org.apache.stratos.cloud.controller.jcloud.ComputeServiceBuilderUtil; import org.apache.stratos.cloud.controller.pojo.IaasProvider; -import org.apache.stratos.cloud.controller.pojo.PersistanceMapping; import org.apache.stratos.cloud.controller.util.CloudControllerConstants; import org.apache.stratos.cloud.controller.util.CloudControllerUtil; import org.apache.stratos.cloud.controller.validate.AWSEC2PartitionValidator; import org.apache.stratos.cloud.controller.validate.interfaces.PartitionValidator; -import org.jclouds.aws.ec2.AWSEC2ApiMetadata; -import org.jclouds.aws.ec2.AWSEC2Client; +import org.jclouds.aws.ec2.AWSEC2Api; import org.jclouds.aws.ec2.compute.AWSEC2TemplateOptions; -import org.jclouds.aws.ec2.domain.RegionNameAndPublicKeyMaterial; -import org.jclouds.aws.ec2.functions.ImportOrReturnExistingKeypair; +import org.jclouds.aws.ec2.features.AWSKeyPairApi; import org.jclouds.compute.ComputeServiceContext; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Template; import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.options.TemplateOptions; -import org.jclouds.ec2.EC2ApiMetadata; -import org.jclouds.ec2.EC2Client; -import org.jclouds.ec2.compute.options.EC2TemplateOptions; import org.jclouds.ec2.domain.AvailabilityZoneInfo; import org.jclouds.ec2.domain.KeyPair; import org.jclouds.ec2.domain.PublicIpInstanceIdPair; import org.jclouds.ec2.features.AvailabilityZoneAndRegionApi; +import org.jclouds.ec2.features.ElasticIPAddressApi; import org.jclouds.ec2.options.DescribeAvailabilityZonesOptions; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; -import java.util.List; import java.util.Set; @SuppressWarnings("deprecation") @@ -185,15 +178,11 @@ public class AWSEC2Iaas extends Iaas { ComputeServiceContext context = iaasInfo.getComputeService() .getContext(); - AWSEC2Client ec2Client = context.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi(); - - ImportOrReturnExistingKeypair importer = new ImportOrReturnExistingKeypair( - ec2Client); - - RegionNameAndPublicKeyMaterial regionNameAndKey = new RegionNameAndPublicKeyMaterial( - region, keyPairName, publicKey); - KeyPair keyPair = importer.apply(regionNameAndKey); + + AWSKeyPairApi keyPairApi = context.unwrapApi(AWSEC2Api.class).getKeyPairApiForRegion(region).get(); + KeyPair keyPair = keyPairApi.importKeyPairInRegion(region, keyPairName, publicKey); + if (keyPair != null) { iaasInfo.getTemplate().getOptions().as(AWSEC2TemplateOptions.class) @@ -215,16 +204,15 @@ public class AWSEC2Iaas extends Iaas { ComputeServiceContext context = iaasInfo.getComputeService() .getContext(); - AWSEC2Client ec2Client = context.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi(); + + ElasticIPAddressApi elasticIPAddressApi = context.unwrapApi(AWSEC2Api.class).getElasticIPAddressApi().get(); String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo); String ip = null; // first try to find an unassigned IP. ArrayList<PublicIpInstanceIdPair> unassignedIps = Lists - .newArrayList(Iterables.filter(ec2Client - .getElasticIPAddressServices() - .describeAddressesInRegion(region, new String[0]), + .newArrayList(Iterables.filter(elasticIPAddressApi.describeAddressesInRegion(region, new String[0]), new Predicate<PublicIpInstanceIdPair>() { @Override @@ -244,9 +232,9 @@ public class AWSEC2Iaas extends Iaas { // if no unassigned IP is available, we'll try to allocate an IP. if (ip == null || ip.isEmpty()) { try { - ip = ec2Client.getElasticIPAddressServices() + ip = elasticIPAddressApi .allocateAddressInRegion(region); - log.info("Assigned ip [" + ip + "]"); + log.info("Allocated ip [" + ip + "]"); } catch (Exception e) { String msg = "Failed to allocate an IP address. All IP addresses are in use."; @@ -266,7 +254,7 @@ public class AWSEC2Iaas extends Iaas { } int retries = 0; - while (retries < 12 && !associatePublicIp(ec2Client, region, ip, id)) { + while (retries < 12 && !associatePublicIp(elasticIPAddressApi, region, ip, id)) { // wait for 5s CloudControllerUtil.sleep(5000); @@ -281,15 +269,15 @@ public class AWSEC2Iaas extends Iaas { } /** - * @param ec2Client + * @param addressApi * @param region * @param ip * @param id */ - private boolean associatePublicIp(AWSEC2Client ec2Client, String region, + private boolean associatePublicIp(ElasticIPAddressApi addressApi, String region, String ip, String id) { try { - ec2Client.getElasticIPAddressServices().associateAddressInRegion( + addressApi.associateAddressInRegion( region, ip, id); log.info("Successfully associated public IP "); return true; @@ -306,12 +294,12 @@ public class AWSEC2Iaas extends Iaas { ComputeServiceContext context = iaasInfo.getComputeService() .getContext(); - AWSEC2Client ec2Client = context.unwrap(AWSEC2ApiMetadata.CONTEXT_TOKEN).getApi(); + ElasticIPAddressApi elasticIPAddressApi = context.unwrapApi(AWSEC2Api.class).getElasticIPAddressApi().get(); String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo); - ec2Client.getElasticIPAddressServices().disassociateAddressInRegion( + elasticIPAddressApi.disassociateAddressInRegion( region, ip); - ec2Client.getElasticIPAddressServices().releaseAddressInRegion(region, + elasticIPAddressApi.releaseAddressInRegion(region, ip); } @@ -329,8 +317,8 @@ public class AWSEC2Iaas extends Iaas { } ComputeServiceContext context = iaasInfo.getComputeService().getContext(); - EC2Client api = EC2Client.class.cast(context.unwrap(EC2ApiMetadata.CONTEXT_TOKEN).getApi()); - for (String configuredRegion : api.getConfiguredRegions()) { + Set<String> regions = context.unwrapApi(AWSEC2Api.class).getConfiguredRegions(); + for (String configuredRegion : regions) { if (region.equalsIgnoreCase(configuredRegion)) { if (log.isDebugEnabled()) { log.debug("Found a matching region: " + region); @@ -356,10 +344,9 @@ public class AWSEC2Iaas extends Iaas { throw new InvalidZoneException(msg); } ComputeServiceContext context = iaasInfo.getComputeService().getContext(); - EC2Client api = EC2Client.class.cast(context.unwrap(EC2ApiMetadata.CONTEXT_TOKEN).getApi()); - AvailabilityZoneAndRegionApi zoneRegionApi = - api.getAvailabilityZoneAndRegionApiForRegion(region) - .get(); + AvailabilityZoneAndRegionApi zoneRegionApi = context.unwrapApi(AWSEC2Api.class). + getAvailabilityZoneAndRegionApiForRegion(region).get(); + Set<AvailabilityZoneInfo> availabilityZones = zoneRegionApi.describeAvailabilityZonesInRegion(region, new DescribeAvailabilityZonesOptions[0]); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5d5c3229/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java index 2f45f9b..8cba65a 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/OpenstackNovaIaas.java @@ -54,6 +54,7 @@ import org.jclouds.openstack.nova.v2_0.extensions.KeyPairApi; import java.util.ArrayList; import java.util.Collections; +import java.util.Set; public class OpenstackNovaIaas extends Iaas { @@ -169,10 +170,8 @@ public class OpenstackNovaIaas extends Iaas { ComputeServiceContext context = iaasInfo.getComputeService() .getContext(); - @SuppressWarnings("deprecation") - NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi(); - - KeyPairApi api = novaApi.getKeyPairExtensionForZone(region).get(); + + KeyPairApi api = context.unwrapApi(NovaApi.class).getKeyPairExtensionForZone(region).get(); KeyPair keyPair = api.createWithPublicKey(keyPairName, publicKey); @@ -198,11 +197,9 @@ public class OpenstackNovaIaas extends Iaas { ComputeServiceContext context = iaasInfo.getComputeService() .getContext(); - @SuppressWarnings("deprecation") - NovaApi novaClient = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi(); String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo); - FloatingIPApi floatingIp = novaClient.getFloatingIPExtensionForZone( + FloatingIPApi floatingIp = context.unwrapApi(NovaApi.class).getFloatingIPExtensionForZone( region).get(); String ip = null; @@ -270,11 +267,9 @@ public class OpenstackNovaIaas extends Iaas { ComputeServiceContext context = iaasInfo.getComputeService() .getContext(); - @SuppressWarnings("deprecation") - NovaApi novaApi = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi(); String region = ComputeServiceBuilderUtil.extractRegion(iaasInfo); - FloatingIPApi floatingIPApi = novaApi + FloatingIPApi floatingIPApi = context.unwrapApi(NovaApi.class) .getFloatingIPExtensionForZone(region).get(); for (FloatingIP floatingIP : floatingIPApi.list()) { @@ -309,9 +304,9 @@ public class OpenstackNovaIaas extends Iaas { } ComputeServiceContext context = iaasInfo.getComputeService().getContext(); - @SuppressWarnings("deprecation") - NovaApi api = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi(); - for (String configuredZone : api.getConfiguredZones()) { + + Set<String> zones = context.unwrapApi(NovaApi.class).getConfiguredZones(); + for (String configuredZone : zones) { if (region.equalsIgnoreCase(configuredZone)) { if (log.isDebugEnabled()) { log.debug("Found a matching region: " + region); @@ -347,9 +342,7 @@ public class OpenstackNovaIaas extends Iaas { throw new InvalidHostException(msg); } ComputeServiceContext context = iaasInfo.getComputeService().getContext(); - @SuppressWarnings("deprecation") - NovaApi api = context.unwrap(NovaApiMetadata.CONTEXT_TOKEN).getApi(); - HostAggregateApi hostApi = api.getHostAggregateExtensionForZone(zone).get(); + HostAggregateApi hostApi = context.unwrapApi(NovaApi.class).getHostAggregateExtensionForZone(zone).get(); for (HostAggregate hostAggregate : hostApi.list()) { for (String configuredHost : hostAggregate.getHosts()) { if (host.equalsIgnoreCase(configuredHost)) { http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5d5c3229/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml ---------------------------------------------------------------------- diff --git a/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml index a81b287..c98b499 100644 --- a/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml +++ b/features/cloud-controller/org.apache.stratos.cloud.controller.feature/pom.xml @@ -111,7 +111,7 @@ <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> - <version>14.0.1</version> + <version>15.0</version> </dependency> <dependency> <groupId>com.jamesmurty.utils.wso2</groupId> @@ -238,7 +238,7 @@ <bundleDef>org.apache.jclouds.common:openstack-common:${jclouds.version}</bundleDef> <bundleDef>org.apache.jclouds.api:openstack-keystone:${jclouds.version}</bundleDef> <bundleDef>org.apache.jclouds.provider:aws-ec2:${jclouds.version}</bundleDef> - <bundleDef>com.google.guava:guava:14.0.1</bundleDef> + <bundleDef>com.google.guava:guava:15.0</bundleDef> <bundleDef>com.google.code.gson:gson:${gson2.version}</bundleDef> <bundleDef>com.google.guice.wso2:guice:${google.guice.wso2.version}</bundleDef> <bundleDef>com.google.guice.assistedinject.wso2:guice-assistedinject:${com.google.guice.assistedinject.wso2.version}</bundleDef> http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5d5c3229/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index c8179ed..1fa5174 100644 --- a/pom.xml +++ b/pom.xml @@ -432,6 +432,6 @@ <carbon.platform.package.import.version.range>[4.2.0, 5.0.0)</carbon.platform.package.import.version.range> <carbon.platform.package.export.version>4.2.0</carbon.platform.package.export.version> <axis2.osgi.version>1.6.1.wso2v10</axis2.osgi.version> - <jclouds.version>1.6.2-incubating</jclouds.version> + <jclouds.version>1.7.0</jclouds.version> </properties> </project>
