From e71d412a0a1625fb1b444c755f733ab59123ed9d Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sun, 9 Jan 2011 17:52:48 -0800 Subject: [PATCH] Issue 440: reorganized terremark and added trmk-common, trmk-ecloud, trmk-vcloudexpress --- allcompute/pom.xml | 20 +++ common/pom.xml | 2 + {vcloud => common/trmk}/pom.xml | 70 +++++--- .../terremark/TerremarkVCloudAsyncClient.java | 0 .../terremark/TerremarkVCloudClient.java | 0 .../terremark/TerremarkVCloudMediaType.java | 1 + .../TerremarkVCloudPropertiesBuilder.java | 0 .../BindAddInternetServiceToXmlPayload.java | 0 .../BindAddNodeServiceToXmlPayload.java | 0 .../binders/BindCreateKeyToXmlPayload.java | 0 .../BindNodeConfigurationToXmlPayload.java | 0 .../BindVAppConfigurationToXmlPayload.java | 2 +- ...remarkBindCloneVAppParamsToXmlPayload.java | 0 ...antiateVAppTemplateParamsToXmlPayload.java | 0 .../compute/TerremarkVCloudComputeClient.java | 52 ++---- .../TerremarkVCloudComputeService.java | 0 ...TerremarkBindComputeStrategiesByClass.java | 0 .../TerremarkBindComputeSuppliersByClass.java | 0 ...markVCloudComputeServiceContextModule.java | 0 .../compute/domain/KeyPairCredentials.java | 0 .../terremark/compute/domain/OrgAndName.java | 0 .../functions/CreateUniqueKeyPair.java | 0 .../functions/NodeMetadataToOrgAndName.java | 0 .../TemplateToInstantiateOptions.java | 0 ...remarkVCloudExpressVAppToNodeMetadata.java | 0 .../TerremarkVCloudTemplateOptions.java | 0 .../compute/strategy/CleanupOrphanKeys.java | 0 ...ewKeyPairUnlessUserSpecifiedOtherwise.java | 0 .../compute/strategy/DeleteKeyPair.java | 0 ...scriptionToGetDefaultLoginCredentials.java | 0 ...agIntoNameRunNodesAndAddToSetStrategy.java | 0 ...TerremarkVCloudAddNodeWithTagStrategy.java | 0 .../suppliers/VAppTemplatesInOrgs.java | 0 .../config/TerremarkRestClientModule.java | 0 .../domain/CustomizationParameters.java | 0 .../terremark/domain/InternetService.java | 0 .../vcloud/terremark/domain/IpAddress.java | 0 .../vcloud/terremark/domain/KeyPair.java | 0 .../jclouds/vcloud/terremark/domain/Node.java | 0 .../vcloud/terremark/domain/Protocol.java | 0 .../terremark/domain/PublicIpAddress.java | 0 .../domain/TerremarkCatalogItem.java | 0 .../terremark/domain/TerremarkNetwork.java | 0 .../vcloud/terremark/domain/TerremarkOrg.java | 0 .../terremark/domain/TerremarkOrgNetwork.java | 0 .../vcloud/terremark/domain/TerremarkVDC.java | 0 .../terremark/domain/VAppConfiguration.java | 0 .../internal/TerremarkCatalogItemImpl.java | 0 .../domain/internal/TerremarkOrgImpl.java | 0 .../TerremarkVCloudExpressNetwork.java | 0 .../domain/internal/TerremarkVDCImpl.java | 0 .../terremark/endpoints/InternetServices.java | 0 .../vcloud/terremark/endpoints/KeysList.java | 0 .../vcloud/terremark/endpoints/PublicIPs.java | 0 .../functions/OrgURIToKeysListEndpoint.java | 0 .../ParseTaskFromLocationHeader.java | 0 .../ReturnVoidOnDeleteDefaultIp.java | 0 .../VDCURIToInternetServicesEndpoint.java | 0 .../functions/VDCURIToPublicIPsEndpoint.java | 0 ...eTerremarkVCloudErrorFromHttpResponse.java | 0 .../options/AddInternetServiceOptions.java | 0 .../terremark/options/AddNodeOptions.java | 0 ...rremarkInstantiateVAppTemplateOptions.java | 0 .../reference/TerremarkConstants.java | 0 ...rnetServiceAndPublicIpAddressSupplier.java | 35 ++++ .../xml/CustomizationParametersHandler.java | 0 .../terremark/xml/InternetServiceHandler.java | 0 .../xml/InternetServicesHandler.java | 0 .../terremark/xml/IpAddressesHandler.java | 0 .../terremark/xml/KeyPairByNameHandler.java | 0 .../vcloud/terremark/xml/KeyPairHandler.java | 0 .../vcloud/terremark/xml/KeyPairsHandler.java | 0 .../vcloud/terremark/xml/NodeHandler.java | 0 .../vcloud/terremark/xml/NodesHandler.java | 0 .../terremark/xml/PublicIpAddressHandler.java | 0 .../xml/PublicIpAddressesHandler.java | 0 .../xml/TerremarkCatalogItemHandler.java | 0 .../xml/TerremarkNetworkHandler.java | 0 .../terremark/xml/TerremarkOrgHandler.java | 6 +- ...mTerremarkVCloudExpressNetworkHandler.java | 0 .../TerremarkVCloudExpressNetworkHandler.java | 0 .../terremark/xml/TerremarkVDCHandler.java | 0 .../terremark/TerremarkClientLiveTest.java | 30 ++-- ...indAddInternetServiceToXmlPayloadTest.java | 0 .../BindAddNodeServiceToXmlPayloadTest.java | 0 ...BindNodeConfigurationToXmlPayloadTest.java | 14 +- ...BindVAppConfigurationToXmlPayloadTest.java | 4 +- ...ateVAppTemplateParamsToXmlPayloadTest.java | 0 .../TerremarkVCloudComputeClientTest.java | 27 +-- .../TerremarkVCloudTemplateOptionsTest.java | 0 .../strategy/CleanupOrphanKeysTest.java | 0 ...yPairUnlessUserSpecifiedOtherwiseTest.java | 0 .../compute/strategy/DeleteKeyPairTest.java | 4 +- ...ltLoginCredentialsForVAppTemplateTest.java | 0 .../VAppTemplatesInOrgsLiveTest.java | 0 ...remarkVCloudErrorFromHttpResponseTest.java | 0 .../AddInternetServiceOptionsTest.java | 0 .../terremark/options/AddNodeOptionsTest.java | 0 ...arkInstantiateVAppTemplateOptionsTest.java | 0 .../CustomizationParametersHandlerTest.java | 0 .../xml/InternetServiceHandlerTest.java | 0 .../xml/InternetServicesHandlerTest.java | 0 .../terremark/xml/IpAddressesHandlerTest.java | 0 .../vcloud/terremark/xml/KeyHandlerTest.java | 0 .../xml/KeyPairByNameHandlerTest.java | 0 .../vcloud/terremark/xml/KeysHandlerTest.java | 0 .../vcloud/terremark/xml/NodeHandlerTest.java | 0 .../terremark/xml/NodesHandlerTest.java | 0 .../xml/PublicIpAddressHandlerTest.java | 0 .../xml/PublicIpAddressesHandlerTest.java | 0 .../xml/ResourceAllocationHandlerTest.java | 0 .../xml/TerremarkCatalogItemHandlerTest.java | 0 .../xml/TerremarkNetworkHandlerTest.java | 0 .../xml/TerremarkOrgHandlerTest.java | 3 +- ...remarkVCloudExpressNetworkHandlerTest.java | 2 +- .../xml/TerremarkVDCHandlerTest.java | 0 .../vcloud/terremark/xml/VAppHandlerTest.java | 0 .../terremark/xml/ovf/SystemHandlerTest.java | 3 +- .../trmk}/src/test/resources/log4j.xml | 0 .../resources/terremark/ComputeOption.xml | 0 .../resources/terremark/ComputeOptions.xml | 0 .../terremark/ConfigureInternetService.xml | 0 .../CreateInternetService-options-test.xml | 0 .../terremark/CreateInternetService-test.xml | 0 .../terremark/CreateInternetService-test2.xml | 0 .../terremark/CreateInternetService.xml | 0 .../test}/resources/terremark/CreateKey.xml | 0 .../CreateNodeService-options-test.xml | 0 .../terremark/CreateNodeService-test.xml | 0 .../terremark/CreateNodeService-test2.xml | 0 .../resources/terremark/CreateNodeService.xml | 0 .../terremark/CustomizationParameters.xml | 0 ...antiateVAppTemplateParams-options-test.xml | 0 .../InstantiateVAppTemplateParams-test.xml | 0 .../resources/terremark/InternetService.xml | 0 .../resources/terremark/InternetService2.xml | 0 .../resources/terremark/InternetServices.xml | 0 .../test/resources/terremark/NodeService.xml | 0 .../test/resources/terremark/NodeServices.xml | 0 .../resources/terremark/PublicIpAddress.xml | 0 .../resources/terremark/PublicIpAddresses.xml | 0 .../resources/terremark/TerremarkNetwork.xml | 0 .../test/resources/terremark/catalogItem.xml | 0 .../resources/terremark/configureVApp.xml | 0 .../resources/terremark/configureVApp4.xml | 0 .../resources/terremark/ec_description.txt | 0 .../resources/terremark/ft_description.txt | 0 .../src/test/resources/terremark/get_vapp.xml | 0 .../resources/terremark/get_vapp2disks.xml | 0 .../test/resources/terremark/ipAddresses.xml | 0 .../src/test/resources/terremark/item.xml | 0 .../src/test/resources/terremark/key.xml | 0 .../src/test/resources/terremark/keysList.xml | 0 .../resources/terremark/lamp_description.txt | 0 .../resources/terremark/launched_vapp.xml | 0 .../src/test/resources/terremark/org.xml | 0 .../resources/terremark/rhel_description.txt | 0 .../src/test/resources/terremark/system.xml | 0 .../src/test/resources/terremark/vdc.xml | 0 .../terremark/windows_description.txt | 0 providers/pom.xml | 2 + .../trmk-ecloud}/README.txt | 0 providers/trmk-ecloud/pom.xml | 150 ++++++++++++++++ .../terremark/TerremarkECloudAsyncClient.java | 0 .../terremark/TerremarkECloudClient.java | 0 .../TerremarkECloudContextBuilder.java | 0 .../terremark/TerremarkECloudMediaType.java | 0 .../TerremarkECloudPropertiesBuilder.java | 4 +- ...markECloudComputeServiceContextModule.java | 9 + .../TerremarkECloudRestClientModule.java | 0 ...rnetServiceAndPublicIpAddressSupplier.java | 97 ++++++++++ .../terremark/ProvidersInPropertiesTest.java | 50 ++++++ .../TerremarkECloudAsyncClientTest.java | 75 ++++++-- ...TerremarkECloudClientLiveTestDisabled.java | 20 +++ ...TerremarkECloudComputeServiceLiveTest.java | 0 ...erremarkECloudTemplateBuilderLiveTest.java | 0 .../trmk-ecloud/src/test/resources/log4j.xml | 170 ++++++++++++++++++ .../trmk-vcloudexpress}/pom.xml | 101 ++++++----- .../TerremarkVCloudExpressAsyncClient.java | 0 .../TerremarkVCloudExpressClient.java | 0 .../TerremarkVCloudExpressContextBuilder.java | 4 +- .../TerremarkVCloudExpressMediaType.java | 0 ...rremarkVCloudExpressPropertiesBuilder.java | 0 ...oudExpressComputeServiceContextModule.java | 56 ++++++ ...erremarkVCloudExpressRestClientModule.java | 0 ...rnetServiceAndPublicIpAddressSupplier.java | 71 ++++++++ .../terremark/InternetServiceLiveTest.java | 0 .../terremark/ProvidersInPropertiesTest.java | 3 - ...TerremarkVCloudExpressAsyncClientTest.java | 3 +- .../TerremarkVCloudExpressClientLiveTest.java | 19 ++ ...rkVCloudExpressComputeServiceLiveTest.java | 0 ...kVCloudExpressTemplateBuilderLiveTest.java | 0 192 files changed, 928 insertions(+), 181 deletions(-) rename {vcloud => common/trmk}/pom.xml (60%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudAsyncClient.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudClient.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java (99%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudPropertiesBuilder.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayload.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayload.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/BindCreateKeyToXmlPayload.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayload.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java (99%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindCloneVAppParamsToXmlPayload.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayload.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java (83%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeService.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeStrategiesByClass.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeSuppliersByClass.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkVCloudComputeServiceContextModule.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/domain/KeyPairCredentials.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/domain/OrgAndName.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/functions/CreateUniqueKeyPair.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/functions/NodeMetadataToOrgAndName.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TemplateToInstantiateOptions.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TerremarkVCloudExpressVAppToNodeMetadata.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/options/TerremarkVCloudTemplateOptions.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeys.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwise.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPair.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/ParseVAppTemplateDescriptionToGetDefaultLoginCredentials.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkEncodeTagIntoNameRunNodesAndAddToSetStrategy.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkVCloudAddNodeWithTagStrategy.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgs.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkRestClientModule.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/CustomizationParameters.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/InternetService.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/IpAddress.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/KeyPair.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/Node.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/Protocol.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/PublicIpAddress.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkCatalogItem.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkNetwork.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrg.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrgNetwork.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkVDC.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/VAppConfiguration.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkCatalogItemImpl.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkOrgImpl.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVCloudExpressNetwork.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVDCImpl.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/endpoints/InternetServices.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/endpoints/KeysList.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/endpoints/PublicIPs.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/functions/OrgURIToKeysListEndpoint.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/functions/ParseTaskFromLocationHeader.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/functions/ReturnVoidOnDeleteDefaultIp.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToInternetServicesEndpoint.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToPublicIPsEndpoint.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponse.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptions.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/options/AddNodeOptions.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptions.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/reference/TerremarkConstants.java (100%) create mode 100644 common/trmk/src/main/java/org/jclouds/vcloud/terremark/suppliers/InternetServiceAndPublicIpAddressSupplier.java rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairsHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/NodeHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/NodesHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java (88%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgNetworkFromTerremarkVCloudExpressNetworkHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandler.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java (95%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayloadTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayloadTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java (83%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java (97%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayloadTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java (81%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudTemplateOptionsTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeysTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwiseTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java (96%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/PopulateDefaultLoginCredentialsForVAppTemplateTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgsLiveTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponseTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptionsTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/options/AddNodeOptionsTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptionsTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/KeyHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/KeysHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/NodeHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/NodesHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/ResourceAllocationHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java (97%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java (97%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/VAppHandlerTest.java (100%) rename {vcloud/terremark => common/trmk}/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java (93%) rename {vcloud/terremark => common/trmk}/src/test/resources/log4j.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/ComputeOption.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/ComputeOptions.xml (100%) rename {vcloud/terremark/src/main => common/trmk/src/test}/resources/terremark/ConfigureInternetService.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CreateInternetService-options-test.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CreateInternetService-test.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CreateInternetService-test2.xml (100%) rename {vcloud/terremark/src/main => common/trmk/src/test}/resources/terremark/CreateInternetService.xml (100%) rename {vcloud/terremark/src/main => common/trmk/src/test}/resources/terremark/CreateKey.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CreateNodeService-options-test.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CreateNodeService-test.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CreateNodeService-test2.xml (100%) rename {vcloud/terremark/src/main => common/trmk/src/test}/resources/terremark/CreateNodeService.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/CustomizationParameters.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/InstantiateVAppTemplateParams-options-test.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/InstantiateVAppTemplateParams-test.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/InternetService.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/InternetService2.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/InternetServices.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/NodeService.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/NodeServices.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/PublicIpAddress.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/PublicIpAddresses.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/TerremarkNetwork.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/catalogItem.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/configureVApp.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/configureVApp4.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/ec_description.txt (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/ft_description.txt (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/get_vapp.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/get_vapp2disks.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/ipAddresses.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/item.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/key.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/keysList.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/lamp_description.txt (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/launched_vapp.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/org.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/rhel_description.txt (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/system.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/vdc.xml (100%) rename {vcloud/terremark => common/trmk}/src/test/resources/terremark/windows_description.txt (100%) rename {vcloud/terremark => providers/trmk-ecloud}/README.txt (100%) create mode 100644 providers/trmk-ecloud/pom.xml rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClient.java (100%) rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudClient.java (100%) rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudContextBuilder.java (100%) rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudMediaType.java (100%) rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java (96%) rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java (77%) rename {vcloud/terremark => providers/trmk-ecloud}/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkECloudRestClientModule.java (100%) create mode 100644 providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkECloudInternetServiceAndPublicIpAddressSupplier.java create mode 100644 providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java rename {vcloud/terremark => providers/trmk-ecloud}/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java (87%) rename {vcloud/terremark => providers/trmk-ecloud}/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java (66%) rename {vcloud/terremark => providers/trmk-ecloud}/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudComputeServiceLiveTest.java (100%) rename {vcloud/terremark => providers/trmk-ecloud}/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudTemplateBuilderLiveTest.java (100%) create mode 100755 providers/trmk-ecloud/src/test/resources/log4j.xml rename {vcloud/terremark => providers/trmk-vcloudexpress}/pom.xml (58%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClient.java (100%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClient.java (100%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java (92%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressMediaType.java (100%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressPropertiesBuilder.java (100%) create mode 100644 providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceContextModule.java rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkVCloudExpressRestClientModule.java (100%) create mode 100644 providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier.java rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java (100%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java (91%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java (99%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java (80%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceLiveTest.java (100%) rename {vcloud/terremark => providers/trmk-vcloudexpress}/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressTemplateBuilderLiveTest.java (100%) diff --git a/allcompute/pom.xml b/allcompute/pom.xml index 2ae4b3f130..a8f7b459f0 100644 --- a/allcompute/pom.xml +++ b/allcompute/pom.xml @@ -69,6 +69,26 @@ vcloudexpress ${project.version} + + org.jclouds.provider + trmk-vcloudexpress + ${project.version} + + + org.jclouds.provider + trmk-ecloud + ${project.version} + + + org.jclouds.provider + trmk-vcloudexpress + ${project.version} + + + org.jclouds.provider + trmk-ecloud + ${project.version} + org.jclouds.provider bluelock-vcdirector diff --git a/common/pom.xml b/common/pom.xml index 2b079236cf..418c349d71 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -35,5 +35,7 @@ aws openstack + vcloud + trmk diff --git a/vcloud/pom.xml b/common/trmk/pom.xml similarity index 60% rename from vcloud/pom.xml rename to common/trmk/pom.xml index 04d09dff86..d28cef84ef 100644 --- a/vcloud/pom.xml +++ b/common/trmk/pom.xml @@ -26,53 +26,69 @@ org.jclouds jclouds-project 1.0-SNAPSHOT - ../project/pom.xml + ../../project/pom.xml - jclouds-vcloud-project - pom - jclouds vcloud project - - core - terremark - bluelock - + org.jclouds.common + trmk-common + common Terremark components + common Terremark components - ${project.groupId} + org.jclouds.api + vcloudexpress + ${project.version} + + + org.jclouds.common + vcloud-common + ${project.version} + + + org.jclouds jclouds-core ${project.version} - test-jar + test-jar test - ${project.groupId} - jclouds-compute - ${project.version} - - - ${project.groupId} + org.jclouds jclouds-compute ${project.version} test-jar test - ${project.groupId} + org.jclouds.common + vcloud-common + ${project.version} + test-jar + test + + + org.jclouds.api + vcloudexpress + ${project.version} + test-jar + test + + + org.jclouds + jclouds-log4j + ${project.version} + test + + + org.jclouds jclouds-jsch ${project.version} test - log4j - log4j - 1.2.14 - test - - - ${project.groupId} - jclouds-log4j - ${project.version} + log4j + log4j + 1.2.16 test + diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudAsyncClient.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudAsyncClient.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudAsyncClient.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudAsyncClient.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudClient.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudClient.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudClient.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudClient.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java similarity index 99% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java index 0da3343c3a..ade30e578f 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java +++ b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudMediaType.java @@ -29,6 +29,7 @@ import org.jclouds.vcloud.VCloudExpressMediaType; * @see MediaType */ public interface TerremarkVCloudMediaType extends VCloudExpressMediaType { + /** * "application/vnd.tmrk.vCloud.publicIp+xml" diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudPropertiesBuilder.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudPropertiesBuilder.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudPropertiesBuilder.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudPropertiesBuilder.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayload.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayload.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayload.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayload.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindCreateKeyToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindCreateKeyToXmlPayload.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindCreateKeyToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindCreateKeyToXmlPayload.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayload.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayload.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java similarity index 99% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java index 6538ca0d40..5364e10f86 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java +++ b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayload.java @@ -80,7 +80,7 @@ public class BindVAppConfigurationToXmlPayload implements MapBinder, Function R bindToRequest(R request, Map postParams) { - checkArgument(checkNotNull(request, "request") instanceof GeneratedHttpRequest, + checkArgument(checkNotNull(request, "request") instanceof GeneratedHttpRequest, "this binder is only valid for GeneratedHttpRequests!"); GeneratedHttpRequest gRequest = (GeneratedHttpRequest) request; checkState(gRequest.getArgs() != null, "args should be initialized at this point"); diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindCloneVAppParamsToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindCloneVAppParamsToXmlPayload.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindCloneVAppParamsToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindCloneVAppParamsToXmlPayload.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayload.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayload.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayload.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayload.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java similarity index 83% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java index d2d6658990..e045a3e0f3 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java +++ b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClient.java @@ -27,6 +27,7 @@ import java.net.URI; import java.util.Map; import java.util.NoSuchElementException; import java.util.Set; +import java.util.Map.Entry; import javax.annotation.Nullable; import javax.inject.Inject; @@ -37,7 +38,6 @@ import javax.inject.Singleton; import org.jclouds.compute.domain.NodeState; import org.jclouds.compute.strategy.PopulateDefaultLoginCredentialsForImageStrategy; import org.jclouds.domain.Credentials; -import org.jclouds.http.HttpResponseException; import org.jclouds.vcloud.compute.internal.VCloudExpressComputeClientImpl; import org.jclouds.vcloud.domain.Status; import org.jclouds.vcloud.domain.Task; @@ -46,14 +46,13 @@ import org.jclouds.vcloud.domain.TasksList; import org.jclouds.vcloud.domain.VCloudExpressVApp; import org.jclouds.vcloud.domain.VCloudExpressVAppTemplate; import org.jclouds.vcloud.options.InstantiateVAppTemplateOptions; -import org.jclouds.vcloud.terremark.TerremarkECloudClient; import org.jclouds.vcloud.terremark.TerremarkVCloudClient; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressClient; import org.jclouds.vcloud.terremark.domain.InternetService; import org.jclouds.vcloud.terremark.domain.Node; import org.jclouds.vcloud.terremark.domain.Protocol; import org.jclouds.vcloud.terremark.domain.PublicIpAddress; import org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTemplateOptions; +import org.jclouds.vcloud.terremark.suppliers.InternetServiceAndPublicIpAddressSupplier; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; @@ -69,17 +68,20 @@ public class TerremarkVCloudComputeClient extends VCloudExpressComputeClientImpl protected final PopulateDefaultLoginCredentialsForImageStrategy credentialsProvider; protected final Provider passwordGenerator; protected final Map credentialStore; + protected final InternetServiceAndPublicIpAddressSupplier internetServiceAndPublicIpAddressSupplier; @Inject protected TerremarkVCloudComputeClient(TerremarkVCloudClient client, PopulateDefaultLoginCredentialsForImageStrategy credentialsProvider, @Named("PASSWORD") Provider passwordGenerator, Predicate successTester, - Map vAppStatusToNodeState, Map credentialStore) { + Map vAppStatusToNodeState, Map credentialStore, + InternetServiceAndPublicIpAddressSupplier internetServiceAndPublicIpAddressSupplier) { super(client, successTester, vAppStatusToNodeState); this.client = client; this.credentialsProvider = credentialsProvider; this.passwordGenerator = passwordGenerator; this.credentialStore = credentialStore; + this.internetServiceAndPublicIpAddressSupplier = internetServiceAndPublicIpAddressSupplier; } @Override @@ -133,42 +135,12 @@ public class TerremarkVCloudComputeClient extends VCloudExpressComputeClientImpl break; } if (ip == null) { - if (client instanceof TerremarkVCloudExpressClient) { - is = TerremarkVCloudExpressClient.class.cast(client).addInternetServiceToVDC( - vApp.getVDC().getHref(), - vApp.getName() + "-" + port, - protocol, - port, - withDescription(String.format("port %d access to serverId: %s name: %s", port, vApp.getName(), - vApp.getName()))); - ip = is.getPublicIpAddress(); - } else { - logger.debug(">> creating InternetService in vDC %s:%s:%d", vApp.getVDC().getName(), protocol, port); - // http://support.theenterprisecloud.com/kb/default.asp?id=706&Lang=1&SID= - // response with a 500 error code means we should look for an existing public ip to - // use - try { - ip = TerremarkECloudClient.class.cast(client).activatePublicIpInVDC(vApp.getVDC().getHref()); - } catch (HttpResponseException e) { - if (e.getResponse().getStatusCode() == 500) { - logger.warn(">> no more ip addresses available, looking for one to re-use"); - for (PublicIpAddress existingIp : client.getPublicIpsAssociatedWithVDC(vApp.getVDC().getHref())) { - Set services = client.getInternetServicesOnPublicIp(existingIp.getId()); - if (services.size() == 0) { - ip = existingIp; - break; - } - } - if (ip == null) - throw e; - } else { - throw e; - } - } - is = client.addInternetServiceToExistingIp(ip.getId(), vApp.getName() + "-" + port, protocol, port, - withDescription(String.format("port %d access to serverId: %s name: %s", port, vApp.getName(), - vApp.getName()))); - } + + Entry entry = internetServiceAndPublicIpAddressSupplier + .getNewInternetServiceAndIp(vApp, port, protocol); + is = entry.getKey(); + ip = entry.getValue(); + } else { logger.debug(">> adding InternetService %s:%s:%d", ip.getAddress(), protocol, port); is = client.addInternetServiceToExistingIp(ip.getId(), vApp.getName() + "-" + port, protocol, port, diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeService.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeService.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeService.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeService.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeStrategiesByClass.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeStrategiesByClass.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeStrategiesByClass.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeStrategiesByClass.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeSuppliersByClass.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeSuppliersByClass.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeSuppliersByClass.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkBindComputeSuppliersByClass.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkVCloudComputeServiceContextModule.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkVCloudComputeServiceContextModule.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkVCloudComputeServiceContextModule.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkVCloudComputeServiceContextModule.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/domain/KeyPairCredentials.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/domain/KeyPairCredentials.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/domain/KeyPairCredentials.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/domain/KeyPairCredentials.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/domain/OrgAndName.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/domain/OrgAndName.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/domain/OrgAndName.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/domain/OrgAndName.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/CreateUniqueKeyPair.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/CreateUniqueKeyPair.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/CreateUniqueKeyPair.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/CreateUniqueKeyPair.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/NodeMetadataToOrgAndName.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/NodeMetadataToOrgAndName.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/NodeMetadataToOrgAndName.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/NodeMetadataToOrgAndName.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TemplateToInstantiateOptions.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TemplateToInstantiateOptions.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TemplateToInstantiateOptions.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TemplateToInstantiateOptions.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TerremarkVCloudExpressVAppToNodeMetadata.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TerremarkVCloudExpressVAppToNodeMetadata.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TerremarkVCloudExpressVAppToNodeMetadata.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/functions/TerremarkVCloudExpressVAppToNodeMetadata.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/options/TerremarkVCloudTemplateOptions.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/options/TerremarkVCloudTemplateOptions.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/options/TerremarkVCloudTemplateOptions.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/options/TerremarkVCloudTemplateOptions.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeys.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeys.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeys.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeys.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwise.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwise.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwise.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwise.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPair.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPair.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPair.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPair.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/ParseVAppTemplateDescriptionToGetDefaultLoginCredentials.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/ParseVAppTemplateDescriptionToGetDefaultLoginCredentials.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/ParseVAppTemplateDescriptionToGetDefaultLoginCredentials.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/ParseVAppTemplateDescriptionToGetDefaultLoginCredentials.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkEncodeTagIntoNameRunNodesAndAddToSetStrategy.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkEncodeTagIntoNameRunNodesAndAddToSetStrategy.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkEncodeTagIntoNameRunNodesAndAddToSetStrategy.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkEncodeTagIntoNameRunNodesAndAddToSetStrategy.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkVCloudAddNodeWithTagStrategy.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkVCloudAddNodeWithTagStrategy.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkVCloudAddNodeWithTagStrategy.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/strategy/TerremarkVCloudAddNodeWithTagStrategy.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgs.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgs.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgs.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgs.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkRestClientModule.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkRestClientModule.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkRestClientModule.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkRestClientModule.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/CustomizationParameters.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/CustomizationParameters.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/CustomizationParameters.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/CustomizationParameters.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/InternetService.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/InternetService.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/InternetService.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/InternetService.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/IpAddress.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/IpAddress.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/IpAddress.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/IpAddress.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/KeyPair.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/KeyPair.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/KeyPair.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/KeyPair.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/Node.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/Node.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/Node.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/Node.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/Protocol.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/Protocol.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/Protocol.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/Protocol.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/PublicIpAddress.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/PublicIpAddress.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/PublicIpAddress.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/PublicIpAddress.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkCatalogItem.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkCatalogItem.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkCatalogItem.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkCatalogItem.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkNetwork.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkNetwork.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkNetwork.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkNetwork.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrg.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrg.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrg.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrg.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrgNetwork.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrgNetwork.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrgNetwork.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkOrgNetwork.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkVDC.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkVDC.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkVDC.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/TerremarkVDC.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/VAppConfiguration.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/VAppConfiguration.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/VAppConfiguration.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/VAppConfiguration.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkCatalogItemImpl.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkCatalogItemImpl.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkCatalogItemImpl.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkCatalogItemImpl.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkOrgImpl.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkOrgImpl.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkOrgImpl.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkOrgImpl.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVCloudExpressNetwork.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVCloudExpressNetwork.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVCloudExpressNetwork.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVCloudExpressNetwork.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVDCImpl.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVDCImpl.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVDCImpl.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/domain/internal/TerremarkVDCImpl.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/endpoints/InternetServices.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/endpoints/InternetServices.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/endpoints/InternetServices.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/endpoints/InternetServices.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/endpoints/KeysList.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/endpoints/KeysList.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/endpoints/KeysList.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/endpoints/KeysList.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/endpoints/PublicIPs.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/endpoints/PublicIPs.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/endpoints/PublicIPs.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/endpoints/PublicIPs.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/OrgURIToKeysListEndpoint.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/OrgURIToKeysListEndpoint.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/OrgURIToKeysListEndpoint.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/OrgURIToKeysListEndpoint.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/ParseTaskFromLocationHeader.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/ParseTaskFromLocationHeader.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/ParseTaskFromLocationHeader.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/ParseTaskFromLocationHeader.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/ReturnVoidOnDeleteDefaultIp.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/ReturnVoidOnDeleteDefaultIp.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/ReturnVoidOnDeleteDefaultIp.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/ReturnVoidOnDeleteDefaultIp.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToInternetServicesEndpoint.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToInternetServicesEndpoint.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToInternetServicesEndpoint.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToInternetServicesEndpoint.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToPublicIPsEndpoint.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToPublicIPsEndpoint.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToPublicIPsEndpoint.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/functions/VDCURIToPublicIPsEndpoint.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponse.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponse.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponse.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponse.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptions.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptions.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptions.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptions.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/options/AddNodeOptions.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/options/AddNodeOptions.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/options/AddNodeOptions.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/options/AddNodeOptions.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptions.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptions.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptions.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptions.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/reference/TerremarkConstants.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/reference/TerremarkConstants.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/reference/TerremarkConstants.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/reference/TerremarkConstants.java diff --git a/common/trmk/src/main/java/org/jclouds/vcloud/terremark/suppliers/InternetServiceAndPublicIpAddressSupplier.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/suppliers/InternetServiceAndPublicIpAddressSupplier.java new file mode 100644 index 0000000000..5772f8ccd0 --- /dev/null +++ b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/suppliers/InternetServiceAndPublicIpAddressSupplier.java @@ -0,0 +1,35 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.vcloud.terremark.suppliers; + +import java.util.Map.Entry; + +import org.jclouds.vcloud.domain.VCloudExpressVApp; +import org.jclouds.vcloud.terremark.domain.InternetService; +import org.jclouds.vcloud.terremark.domain.Protocol; +import org.jclouds.vcloud.terremark.domain.PublicIpAddress; + +/** + * @author Adrian Cole + */ +public interface InternetServiceAndPublicIpAddressSupplier { + Entry getNewInternetServiceAndIp(VCloudExpressVApp vApp, int port, + Protocol protocol); +} \ No newline at end of file diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairsHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairsHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairsHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/KeyPairsHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/NodeHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/NodeHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/NodeHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/NodeHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/NodesHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/NodesHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/NodesHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/NodesHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java similarity index 88% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java index 2143e74785..c479cb9dee 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java +++ b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandler.java @@ -27,8 +27,6 @@ import java.util.Map; import javax.inject.Inject; import org.jclouds.vcloud.domain.ReferenceType; -import org.jclouds.vcloud.terremark.TerremarkECloudMediaType; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressMediaType; import org.jclouds.vcloud.terremark.domain.TerremarkOrg; import org.jclouds.vcloud.terremark.domain.internal.TerremarkOrgImpl; import org.jclouds.vcloud.xml.OrgHandler; @@ -59,12 +57,10 @@ public class TerremarkOrgHandler extends OrgHandler { if (qName.equals("Link")) { if (attributes.containsKey("type")) { String type = attributes.get("type"); - if (type.equals(TerremarkVCloudExpressMediaType.KEYSLIST_XML) - || type.equals(TerremarkECloudMediaType.KEYSLIST_XML)) { + if (type != null && type.endsWith("keysList+xml")) { keysList = newReferenceType(attributes); } } } } - } diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgNetworkFromTerremarkVCloudExpressNetworkHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgNetworkFromTerremarkVCloudExpressNetworkHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgNetworkFromTerremarkVCloudExpressNetworkHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgNetworkFromTerremarkVCloudExpressNetworkHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandler.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandler.java b/common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandler.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandler.java rename to common/trmk/src/main/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandler.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java similarity index 95% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java index 738ba14e27..a0fc557c84 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/TerremarkClientLiveTest.java @@ -35,6 +35,7 @@ import java.net.URI; import java.util.List; import java.util.NoSuchElementException; import java.util.Properties; +import java.util.Map.Entry; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; @@ -66,7 +67,6 @@ import org.jclouds.vcloud.predicates.TaskSuccess; import org.jclouds.vcloud.terremark.domain.CustomizationParameters; import org.jclouds.vcloud.terremark.domain.InternetService; import org.jclouds.vcloud.terremark.domain.Node; -import org.jclouds.vcloud.terremark.domain.Protocol; import org.jclouds.vcloud.terremark.domain.PublicIpAddress; import org.jclouds.vcloud.terremark.domain.TerremarkCatalogItem; import org.jclouds.vcloud.terremark.domain.TerremarkVDC; @@ -115,7 +115,8 @@ public abstract class TerremarkClientLiveTest extends VCloudExpressClientLiveTes @Test public void testGetPublicIpsAssociatedWithVDC() throws Exception { - for (PublicIpAddress ip : tmClient.getPublicIpsAssociatedWithVDC(tmClient.findVDCInOrgNamed(null, null).getHref())) { + for (PublicIpAddress ip : tmClient + .getPublicIpsAssociatedWithVDC(tmClient.findVDCInOrgNamed(null, null).getHref())) { assertNotNull(tmClient.getInternetServicesOnPublicIp(ip.getId())); assertNotNull(tmClient.getPublicIp(ip.getId())); } @@ -175,7 +176,8 @@ public abstract class TerremarkClientLiveTest extends VCloudExpressClientLiveTes VCloudExpressVAppTemplate vAppTemplate = tmClient.getVAppTemplate(item.getEntity().getHref()); // instantiate, noting vApp returned has minimal details - vApp = tmClient.instantiateVAppTemplateInVDC(vdc.getHref(), vAppTemplate.getHref(), serverName, instantiateOptions); + vApp = tmClient.instantiateVAppTemplateInVDC(vdc.getHref(), vAppTemplate.getHref(), serverName, + instantiateOptions); assertEquals(vApp.getStatus(), Status.RESOLVED); @@ -224,19 +226,16 @@ public abstract class TerremarkClientLiveTest extends VCloudExpressClientLiveTes abstract TerremarkInstantiateVAppTemplateOptions createInstantiateOptions(); + protected abstract Entry getNewInternetServiceAndIpForSSH(URI vdc); + @Test public void testAddInternetService() throws InterruptedException, ExecutionException, TimeoutException, IOException { - PublicIpAddress ip; - if (tmClient instanceof TerremarkVCloudExpressClient) { - is = TerremarkVCloudExpressClient.class.cast(tmClient).addInternetServiceToVDC( - tmClient.findVDCInOrgNamed(null, null).getHref(), "SSH", Protocol.TCP, 22); - ip = is.getPublicIpAddress(); - } else { - ip = TerremarkECloudClient.class.cast(tmClient).activatePublicIpInVDC( - tmClient.findVDCInOrgNamed(null, null).getHref()); - is = tmClient.addInternetServiceToExistingIp(ip.getId(), "SSH", Protocol.TCP, 22); - } - publicIp = ip.getAddress(); + + Entry entry = getNewInternetServiceAndIpForSSH(tmClient.findVDCInOrgNamed(null, + null).getHref()); + is = entry.getKey(); + publicIp = entry.getValue().getAddress(); + } @Test(enabled = true, dependsOnMethods = "testInstantiateAndPowerOn") @@ -461,7 +460,8 @@ public abstract class TerremarkClientLiveTest extends VCloudExpressClientLiveTes Properties overrides = setupProperties(); Injector injector = new RestContextFactory().createContextBuilder(provider, - ImmutableSet. of(new Log4JLoggingModule(), new JschSshClientModule()),overrides).buildInjector(); + ImmutableSet. of(new Log4JLoggingModule(), new JschSshClientModule()), overrides) + .buildInjector(); connection = tmClient = injector.getInstance(TerremarkVCloudClient.class); diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayloadTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayloadTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayloadTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddInternetServiceToXmlPayloadTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayloadTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayloadTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayloadTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindAddNodeServiceToXmlPayloadTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java similarity index 83% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java index 9132ec8922..5d607f8d80 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindNodeConfigurationToXmlPayloadTest.java @@ -24,6 +24,10 @@ import static org.easymock.EasyMock.expect; import static org.easymock.classextension.EasyMock.createMock; import static org.easymock.classextension.EasyMock.replay; import static org.easymock.classextension.EasyMock.verify; +import static org.jclouds.Constants.PROPERTY_API_VERSION; +import static org.jclouds.Constants.PROPERTY_ENDPOINT; +import static org.jclouds.vcloud.terremark.reference.TerremarkConstants.PROPERTY_TERREMARK_EXTENSION_NAME; +import static org.jclouds.vcloud.terremark.reference.TerremarkConstants.PROPERTY_TERREMARK_EXTENSION_VERSION; import java.io.IOException; import java.net.URI; @@ -31,7 +35,7 @@ import java.util.Map; import java.util.Properties; import org.jclouds.http.HttpRequest; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressPropertiesBuilder; +import org.jclouds.vcloud.terremark.TerremarkVCloudPropertiesBuilder; import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; @@ -51,8 +55,12 @@ public class BindNodeConfigurationToXmlPayloadTest { @Override protected void configure() { - Properties props = new Properties(); - Names.bindProperties(binder(), checkNotNull(new TerremarkVCloudExpressPropertiesBuilder(props).build(), + Properties properties = new Properties(); + properties.setProperty(PROPERTY_API_VERSION, "0.8a-ext1.6"); + properties.setProperty(PROPERTY_TERREMARK_EXTENSION_NAME, "vCloudExpressExtensions"); + properties.setProperty(PROPERTY_TERREMARK_EXTENSION_VERSION, "1.6"); + properties.setProperty(PROPERTY_ENDPOINT, "https://services.vcloudexpress.terremark.com/api"); + Names.bindProperties(binder(), checkNotNull(new TerremarkVCloudPropertiesBuilder(properties).build(), "properties")); } }); diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java similarity index 97% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java index 79cdc53e90..db7e3e7ae8 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/BindVAppConfigurationToXmlPayloadTest.java @@ -36,7 +36,7 @@ import org.jclouds.vcloud.domain.Status; import org.jclouds.vcloud.domain.internal.VCloudExpressVAppImpl; import org.jclouds.vcloud.domain.ovf.ResourceAllocation; import org.jclouds.vcloud.domain.ovf.ResourceType; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressPropertiesBuilder; +import org.jclouds.vcloud.terremark.TerremarkVCloudPropertiesBuilder; import org.jclouds.vcloud.terremark.domain.VAppConfiguration; import org.testng.annotations.Test; @@ -62,7 +62,7 @@ public class BindVAppConfigurationToXmlPayloadTest { protected void configure() { Properties props = new Properties(); Names.bindProperties(binder(), - checkNotNull(new TerremarkVCloudExpressPropertiesBuilder(props).build(), "properties")); + checkNotNull(new TerremarkVCloudPropertiesBuilder(props).build(), "properties")); } }); diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayloadTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayloadTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayloadTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/binders/TerremarkBindInstantiateVAppTemplateParamsToXmlPayloadTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java similarity index 81% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java index eec37c44cb..83f7381a67 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudComputeClientTest.java @@ -38,10 +38,11 @@ import org.jclouds.vcloud.domain.Status; import org.jclouds.vcloud.domain.Task; import org.jclouds.vcloud.domain.VCloudExpressVApp; import org.jclouds.vcloud.domain.VCloudExpressVAppTemplate; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressClient; +import org.jclouds.vcloud.terremark.TerremarkVCloudClient; import org.jclouds.vcloud.terremark.compute.strategy.ParseVAppTemplateDescriptionToGetDefaultLoginCredentials; import org.jclouds.vcloud.terremark.domain.TerremarkVDC; import org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTemplateOptions; +import org.jclouds.vcloud.terremark.suppliers.InternetServiceAndPublicIpAddressSupplier; import org.testng.annotations.Test; import com.google.common.base.Predicate; @@ -65,14 +66,14 @@ public class TerremarkVCloudComputeClientTest { URI vdcURI = URI.create("vdc"); expect(template.getDescription()).andReturn(description).atLeastOnce(); - TerremarkVCloudExpressClient client = createMock(TerremarkVCloudExpressClient.class); + TerremarkVCloudClient client = createMock(TerremarkVCloudClient.class); VCloudExpressVApp vApp = createMock(VCloudExpressVApp.class); - + InternetServiceAndPublicIpAddressSupplier supplier = createMock(InternetServiceAndPublicIpAddressSupplier.class); expect(client.getVAppTemplate(templateURI)).andReturn(template); expect( - client.instantiateVAppTemplateInVDC(vdcURI, templateURI, "name", - new TerremarkInstantiateVAppTemplateOptions().productProperty("password", "password"))).andReturn( - vApp); + client.instantiateVAppTemplateInVDC(vdcURI, templateURI, "name", + new TerremarkInstantiateVAppTemplateOptions().productProperty("password", "password"))) + .andReturn(vApp); Task task = createMock(Task.class); URI vappLocation = URI.create("vapp"); URI taskLocation = URI.create("task"); @@ -89,14 +90,14 @@ public class TerremarkVCloudComputeClientTest { Map vAppStatusToNodeState = createMock(Map.class); TerremarkVCloudComputeClient computeClient = new TerremarkVCloudComputeClient(client, - new ParseVAppTemplateDescriptionToGetDefaultLoginCredentials(), new Provider() { + new ParseVAppTemplateDescriptionToGetDefaultLoginCredentials(), new Provider() { - @Override - public String get() { - return "password"; - } + @Override + public String get() { + return "password"; + } - }, successTester, vAppStatusToNodeState, credentialStore); + }, successTester, vAppStatusToNodeState, credentialStore, supplier); replay(vdc); replay(template); @@ -108,7 +109,7 @@ public class TerremarkVCloudComputeClientTest { replay(vAppStatusToNodeState); VCloudExpressVApp response = computeClient.start(vdcURI, templateURI, "name", - new TerremarkInstantiateVAppTemplateOptions()); + new TerremarkInstantiateVAppTemplateOptions()); assertEquals(response.getHref().toASCIIString(), "vapp"); assertEquals(credentialStore.get("node#vapp"), new Credentials("Administrator", "password")); diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudTemplateOptionsTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudTemplateOptionsTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudTemplateOptionsTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudTemplateOptionsTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeysTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeysTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeysTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CleanupOrphanKeysTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwiseTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwiseTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwiseTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/CreateNewKeyPairUnlessUserSpecifiedOtherwiseTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java similarity index 96% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java index b75c449e7c..18a2816821 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/DeleteKeyPairTest.java @@ -27,7 +27,7 @@ import static org.easymock.classextension.EasyMock.verify; import java.net.URI; import java.util.concurrent.ConcurrentMap; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressClient; +import org.jclouds.vcloud.terremark.TerremarkVCloudClient; import org.jclouds.vcloud.terremark.compute.domain.KeyPairCredentials; import org.jclouds.vcloud.terremark.compute.domain.OrgAndName; import org.jclouds.vcloud.terremark.domain.KeyPair; @@ -126,7 +126,7 @@ public class DeleteKeyPairTest { @SuppressWarnings("unchecked") private DeleteKeyPair setupStrategy() { ConcurrentMap credentialsMap = createMock(ConcurrentMap.class); - TerremarkVCloudExpressClient terremarkClient = createMock(TerremarkVCloudExpressClient.class); + TerremarkVCloudClient terremarkClient = createMock(TerremarkVCloudClient.class); return new DeleteKeyPair(terremarkClient, credentialsMap); } diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/PopulateDefaultLoginCredentialsForVAppTemplateTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/PopulateDefaultLoginCredentialsForVAppTemplateTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/PopulateDefaultLoginCredentialsForVAppTemplateTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/strategy/PopulateDefaultLoginCredentialsForVAppTemplateTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgsLiveTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgsLiveTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgsLiveTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/compute/suppliers/VAppTemplatesInOrgsLiveTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponseTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponseTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponseTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/handlers/ParseTerremarkVCloudErrorFromHttpResponseTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptionsTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptionsTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptionsTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/options/AddInternetServiceOptionsTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/options/AddNodeOptionsTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/options/AddNodeOptionsTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/options/AddNodeOptionsTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/options/AddNodeOptionsTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptionsTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptionsTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptionsTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/options/TerremarkInstantiateVAppTemplateOptionsTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/CustomizationParametersHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServiceHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/InternetServicesHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/IpAddressesHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/KeyHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/KeyHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/KeyHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/KeyHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/KeyPairByNameHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/KeysHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/KeysHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/KeysHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/KeysHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/NodeHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/NodeHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/NodeHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/NodeHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/NodesHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/NodesHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/NodesHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/NodesHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/PublicIpAddressesHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/ResourceAllocationHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/ResourceAllocationHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/ResourceAllocationHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/ResourceAllocationHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkCatalogItemHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkNetworkHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java similarity index 97% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java index eaf9c51fdd..9772694aca 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkOrgHandlerTest.java @@ -33,7 +33,6 @@ import org.jclouds.http.functions.ParseSax; import org.jclouds.http.functions.config.SaxParserModule; import org.jclouds.vcloud.VCloudExpressMediaType; import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressMediaType; import org.jclouds.vcloud.terremark.TerremarkVCloudPropertiesBuilder; import org.jclouds.vcloud.terremark.domain.TerremarkOrg; import org.testng.annotations.BeforeTest; @@ -82,7 +81,7 @@ public class TerremarkOrgHandlerTest extends BaseHandlerTest { .create("https://services.vcloudexpress.terremark.com/api/v0.8a-ext1.6/vdc/32")))); assertEquals(result.getTasksList(), new ReferenceTypeImpl("Miami Environment 1 Tasks List", TASKSLIST_XML, URI .create("https://services.vcloudexpress.terremark.com/api/v0.8a-ext1.6/vdc/32/tasksList"))); - assertEquals(result.getKeysList(), new ReferenceTypeImpl("Keys", TerremarkVCloudExpressMediaType.KEYSLIST_XML, + assertEquals(result.getKeysList(), new ReferenceTypeImpl("Keys", "application/vnd.tmrk.vcloudExpress.keysList+xml", URI.create("https://services.vcloudexpress.terremark.com/api/v0.8a-ext1.6/extensions/org/48/keys"))); } diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java similarity index 97% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java index ac1eee753b..6ce0f83484 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVCloudExpressNetworkHandlerTest.java @@ -52,7 +52,7 @@ public class TerremarkVCloudExpressNetworkHandlerTest { private Factory factory; public void testTerremark() { - InputStream is = getClass().getResourceAsStream("/express/network-terremark.xml"); + InputStream is = getClass().getResourceAsStream("/network-terremark.xml"); injector = Guice.createInjector(new SaxParserModule()); factory = injector.getInstance(ParseSax.Factory.class); VCloudExpressNetwork result = factory.create(injector.getInstance(TerremarkVCloudExpressNetworkHandler.class)) diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/TerremarkVDCHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/VAppHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/VAppHandlerTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/VAppHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/VAppHandlerTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java similarity index 93% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java rename to common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java index 9590d6bb8c..69b1f6dbe4 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java +++ b/common/trmk/src/test/java/org/jclouds/vcloud/terremark/xml/ovf/SystemHandlerTest.java @@ -24,7 +24,6 @@ import static org.testng.Assert.assertEquals; import java.io.InputStream; import org.jclouds.http.functions.BaseHandlerTest; -import org.jclouds.vcloud.domain.ovf.System; import org.jclouds.vcloud.xml.ovf.SystemHandler; import org.testng.annotations.BeforeTest; import org.testng.annotations.Test; @@ -49,7 +48,7 @@ public class SystemHandlerTest extends BaseHandlerTest { public void testApplyInputStream() { InputStream is = getClass().getResourceAsStream("/terremark/system.xml"); - System result = factory.create(injector.getInstance(SystemHandler.class)).parse(is); + org.jclouds.vcloud.domain.ovf.System result = factory.create(injector.getInstance(SystemHandler.class)).parse(is); assertEquals(result.getName(), "Virtual Hardware Family"); assertEquals(result.getId(), 0); assertEquals(result.getIdentifier(), "adriantest1"); diff --git a/vcloud/terremark/src/test/resources/log4j.xml b/common/trmk/src/test/resources/log4j.xml similarity index 100% rename from vcloud/terremark/src/test/resources/log4j.xml rename to common/trmk/src/test/resources/log4j.xml diff --git a/vcloud/terremark/src/test/resources/terremark/ComputeOption.xml b/common/trmk/src/test/resources/terremark/ComputeOption.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/ComputeOption.xml rename to common/trmk/src/test/resources/terremark/ComputeOption.xml diff --git a/vcloud/terremark/src/test/resources/terremark/ComputeOptions.xml b/common/trmk/src/test/resources/terremark/ComputeOptions.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/ComputeOptions.xml rename to common/trmk/src/test/resources/terremark/ComputeOptions.xml diff --git a/vcloud/terremark/src/main/resources/terremark/ConfigureInternetService.xml b/common/trmk/src/test/resources/terremark/ConfigureInternetService.xml similarity index 100% rename from vcloud/terremark/src/main/resources/terremark/ConfigureInternetService.xml rename to common/trmk/src/test/resources/terremark/ConfigureInternetService.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CreateInternetService-options-test.xml b/common/trmk/src/test/resources/terremark/CreateInternetService-options-test.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CreateInternetService-options-test.xml rename to common/trmk/src/test/resources/terremark/CreateInternetService-options-test.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CreateInternetService-test.xml b/common/trmk/src/test/resources/terremark/CreateInternetService-test.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CreateInternetService-test.xml rename to common/trmk/src/test/resources/terremark/CreateInternetService-test.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CreateInternetService-test2.xml b/common/trmk/src/test/resources/terremark/CreateInternetService-test2.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CreateInternetService-test2.xml rename to common/trmk/src/test/resources/terremark/CreateInternetService-test2.xml diff --git a/vcloud/terremark/src/main/resources/terremark/CreateInternetService.xml b/common/trmk/src/test/resources/terremark/CreateInternetService.xml similarity index 100% rename from vcloud/terremark/src/main/resources/terremark/CreateInternetService.xml rename to common/trmk/src/test/resources/terremark/CreateInternetService.xml diff --git a/vcloud/terremark/src/main/resources/terremark/CreateKey.xml b/common/trmk/src/test/resources/terremark/CreateKey.xml similarity index 100% rename from vcloud/terremark/src/main/resources/terremark/CreateKey.xml rename to common/trmk/src/test/resources/terremark/CreateKey.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CreateNodeService-options-test.xml b/common/trmk/src/test/resources/terremark/CreateNodeService-options-test.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CreateNodeService-options-test.xml rename to common/trmk/src/test/resources/terremark/CreateNodeService-options-test.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CreateNodeService-test.xml b/common/trmk/src/test/resources/terremark/CreateNodeService-test.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CreateNodeService-test.xml rename to common/trmk/src/test/resources/terremark/CreateNodeService-test.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CreateNodeService-test2.xml b/common/trmk/src/test/resources/terremark/CreateNodeService-test2.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CreateNodeService-test2.xml rename to common/trmk/src/test/resources/terremark/CreateNodeService-test2.xml diff --git a/vcloud/terremark/src/main/resources/terremark/CreateNodeService.xml b/common/trmk/src/test/resources/terremark/CreateNodeService.xml similarity index 100% rename from vcloud/terremark/src/main/resources/terremark/CreateNodeService.xml rename to common/trmk/src/test/resources/terremark/CreateNodeService.xml diff --git a/vcloud/terremark/src/test/resources/terremark/CustomizationParameters.xml b/common/trmk/src/test/resources/terremark/CustomizationParameters.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/CustomizationParameters.xml rename to common/trmk/src/test/resources/terremark/CustomizationParameters.xml diff --git a/vcloud/terremark/src/test/resources/terremark/InstantiateVAppTemplateParams-options-test.xml b/common/trmk/src/test/resources/terremark/InstantiateVAppTemplateParams-options-test.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/InstantiateVAppTemplateParams-options-test.xml rename to common/trmk/src/test/resources/terremark/InstantiateVAppTemplateParams-options-test.xml diff --git a/vcloud/terremark/src/test/resources/terremark/InstantiateVAppTemplateParams-test.xml b/common/trmk/src/test/resources/terremark/InstantiateVAppTemplateParams-test.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/InstantiateVAppTemplateParams-test.xml rename to common/trmk/src/test/resources/terremark/InstantiateVAppTemplateParams-test.xml diff --git a/vcloud/terremark/src/test/resources/terremark/InternetService.xml b/common/trmk/src/test/resources/terremark/InternetService.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/InternetService.xml rename to common/trmk/src/test/resources/terremark/InternetService.xml diff --git a/vcloud/terremark/src/test/resources/terremark/InternetService2.xml b/common/trmk/src/test/resources/terremark/InternetService2.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/InternetService2.xml rename to common/trmk/src/test/resources/terremark/InternetService2.xml diff --git a/vcloud/terremark/src/test/resources/terremark/InternetServices.xml b/common/trmk/src/test/resources/terremark/InternetServices.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/InternetServices.xml rename to common/trmk/src/test/resources/terremark/InternetServices.xml diff --git a/vcloud/terremark/src/test/resources/terremark/NodeService.xml b/common/trmk/src/test/resources/terremark/NodeService.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/NodeService.xml rename to common/trmk/src/test/resources/terremark/NodeService.xml diff --git a/vcloud/terremark/src/test/resources/terremark/NodeServices.xml b/common/trmk/src/test/resources/terremark/NodeServices.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/NodeServices.xml rename to common/trmk/src/test/resources/terremark/NodeServices.xml diff --git a/vcloud/terremark/src/test/resources/terremark/PublicIpAddress.xml b/common/trmk/src/test/resources/terremark/PublicIpAddress.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/PublicIpAddress.xml rename to common/trmk/src/test/resources/terremark/PublicIpAddress.xml diff --git a/vcloud/terremark/src/test/resources/terremark/PublicIpAddresses.xml b/common/trmk/src/test/resources/terremark/PublicIpAddresses.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/PublicIpAddresses.xml rename to common/trmk/src/test/resources/terremark/PublicIpAddresses.xml diff --git a/vcloud/terremark/src/test/resources/terremark/TerremarkNetwork.xml b/common/trmk/src/test/resources/terremark/TerremarkNetwork.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/TerremarkNetwork.xml rename to common/trmk/src/test/resources/terremark/TerremarkNetwork.xml diff --git a/vcloud/terremark/src/test/resources/terremark/catalogItem.xml b/common/trmk/src/test/resources/terremark/catalogItem.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/catalogItem.xml rename to common/trmk/src/test/resources/terremark/catalogItem.xml diff --git a/vcloud/terremark/src/test/resources/terremark/configureVApp.xml b/common/trmk/src/test/resources/terremark/configureVApp.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/configureVApp.xml rename to common/trmk/src/test/resources/terremark/configureVApp.xml diff --git a/vcloud/terremark/src/test/resources/terremark/configureVApp4.xml b/common/trmk/src/test/resources/terremark/configureVApp4.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/configureVApp4.xml rename to common/trmk/src/test/resources/terremark/configureVApp4.xml diff --git a/vcloud/terremark/src/test/resources/terremark/ec_description.txt b/common/trmk/src/test/resources/terremark/ec_description.txt similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/ec_description.txt rename to common/trmk/src/test/resources/terremark/ec_description.txt diff --git a/vcloud/terremark/src/test/resources/terremark/ft_description.txt b/common/trmk/src/test/resources/terremark/ft_description.txt similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/ft_description.txt rename to common/trmk/src/test/resources/terremark/ft_description.txt diff --git a/vcloud/terremark/src/test/resources/terremark/get_vapp.xml b/common/trmk/src/test/resources/terremark/get_vapp.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/get_vapp.xml rename to common/trmk/src/test/resources/terremark/get_vapp.xml diff --git a/vcloud/terremark/src/test/resources/terremark/get_vapp2disks.xml b/common/trmk/src/test/resources/terremark/get_vapp2disks.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/get_vapp2disks.xml rename to common/trmk/src/test/resources/terremark/get_vapp2disks.xml diff --git a/vcloud/terremark/src/test/resources/terremark/ipAddresses.xml b/common/trmk/src/test/resources/terremark/ipAddresses.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/ipAddresses.xml rename to common/trmk/src/test/resources/terremark/ipAddresses.xml diff --git a/vcloud/terremark/src/test/resources/terremark/item.xml b/common/trmk/src/test/resources/terremark/item.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/item.xml rename to common/trmk/src/test/resources/terremark/item.xml diff --git a/vcloud/terremark/src/test/resources/terremark/key.xml b/common/trmk/src/test/resources/terremark/key.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/key.xml rename to common/trmk/src/test/resources/terremark/key.xml diff --git a/vcloud/terremark/src/test/resources/terremark/keysList.xml b/common/trmk/src/test/resources/terremark/keysList.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/keysList.xml rename to common/trmk/src/test/resources/terremark/keysList.xml diff --git a/vcloud/terremark/src/test/resources/terremark/lamp_description.txt b/common/trmk/src/test/resources/terremark/lamp_description.txt similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/lamp_description.txt rename to common/trmk/src/test/resources/terremark/lamp_description.txt diff --git a/vcloud/terremark/src/test/resources/terremark/launched_vapp.xml b/common/trmk/src/test/resources/terremark/launched_vapp.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/launched_vapp.xml rename to common/trmk/src/test/resources/terremark/launched_vapp.xml diff --git a/vcloud/terremark/src/test/resources/terremark/org.xml b/common/trmk/src/test/resources/terremark/org.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/org.xml rename to common/trmk/src/test/resources/terremark/org.xml diff --git a/vcloud/terremark/src/test/resources/terremark/rhel_description.txt b/common/trmk/src/test/resources/terremark/rhel_description.txt similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/rhel_description.txt rename to common/trmk/src/test/resources/terremark/rhel_description.txt diff --git a/vcloud/terremark/src/test/resources/terremark/system.xml b/common/trmk/src/test/resources/terremark/system.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/system.xml rename to common/trmk/src/test/resources/terremark/system.xml diff --git a/vcloud/terremark/src/test/resources/terremark/vdc.xml b/common/trmk/src/test/resources/terremark/vdc.xml similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/vdc.xml rename to common/trmk/src/test/resources/terremark/vdc.xml diff --git a/vcloud/terremark/src/test/resources/terremark/windows_description.txt b/common/trmk/src/test/resources/terremark/windows_description.txt similarity index 100% rename from vcloud/terremark/src/test/resources/terremark/windows_description.txt rename to common/trmk/src/test/resources/terremark/windows_description.txt diff --git a/providers/pom.xml b/providers/pom.xml index a30e991d7f..8e024150fb 100644 --- a/providers/pom.xml +++ b/providers/pom.xml @@ -48,5 +48,7 @@ cloudfiles-us cloudfiles-uk bluelock-vcdirector + trmk-ecloud + trmk-vcloudexpress diff --git a/vcloud/terremark/README.txt b/providers/trmk-ecloud/README.txt similarity index 100% rename from vcloud/terremark/README.txt rename to providers/trmk-ecloud/README.txt diff --git a/providers/trmk-ecloud/pom.xml b/providers/trmk-ecloud/pom.xml new file mode 100644 index 0000000000..92fca418e6 --- /dev/null +++ b/providers/trmk-ecloud/pom.xml @@ -0,0 +1,150 @@ + + + + + 4.0.0 + + org.jclouds + jclouds-project + 1.0-SNAPSHOT + ../../project/pom.xml + + org.jclouds.provider + trmk-ecloud + jclouds Terremark Enterprise Cloud provider + jclouds Terremark Enterprise Cloud provider + + + https://services.enterprisecloud.terremark.com/api + 0.8b-ext2.6 + FIXME + FIXME + + + + + org.jclouds.common + trmk-common + ${project.version} + + + org.jclouds.common + trmk-common + ${project.version} + test-jar + test + + + org.jclouds.common + vcloud-common + ${project.version} + test-jar + test + + + org.jclouds.api + vcloudexpress + ${project.version} + test-jar + test + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.jclouds + jclouds-compute + ${project.version} + test-jar + test + + + org.jclouds + jclouds-log4j + ${project.version} + test + + + org.jclouds + jclouds-jsch + ${project.version} + test + + + log4j + log4j + 1.2.16 + test + + + + + + live + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration + integration-test + + test + + + + + test.trmk-ecloud.endpoint + ${test.trmk-ecloud.endpoint} + + + test.trmk-ecloud.apiversion + ${test.trmk-ecloud.apiversion} + + + test.trmk-ecloud.identity + ${test.trmk-ecloud.identity} + + + test.trmk-ecloud.credential + ${test.trmk-ecloud.credential} + + + + + + + + + + + + + + diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClient.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClient.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClient.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClient.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudClient.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudClient.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudClient.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudClient.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudContextBuilder.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudContextBuilder.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudContextBuilder.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudContextBuilder.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudMediaType.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudMediaType.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudMediaType.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudMediaType.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java similarity index 96% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java index 547bdaf8f3..a6fc4a6514 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java +++ b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/TerremarkECloudPropertiesBuilder.java @@ -36,10 +36,10 @@ public class TerremarkECloudPropertiesBuilder extends TerremarkVCloudPropertiesB @Override protected Properties defaultProperties() { Properties properties = super.defaultProperties(); - properties.setProperty(PROPERTY_API_VERSION, "0.8b-ext2.5"); + properties.setProperty(PROPERTY_API_VERSION, "0.8b-ext2.6"); properties.setProperty(PROPERTY_ENDPOINT, "https://services.enterprisecloud.terremark.com/api"); properties.setProperty(PROPERTY_TERREMARK_EXTENSION_NAME, "eCloudExtensions"); - properties.setProperty(PROPERTY_TERREMARK_EXTENSION_VERSION, "2.5"); + properties.setProperty(PROPERTY_TERREMARK_EXTENSION_VERSION, "2.6"); // for some reason the centos template is very slow to deploy properties.setProperty(PROPERTY_VCLOUD_TIMEOUT_TASK_COMPLETED, 720l * 1000l + ""); return properties; diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java similarity index 77% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java index 1afcc45c64..b3386085aa 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java +++ b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/compute/config/TerremarkECloudComputeServiceContextModule.java @@ -22,6 +22,8 @@ package org.jclouds.vcloud.terremark.compute.config; import static org.jclouds.compute.domain.OsFamily.CENTOS; import org.jclouds.compute.domain.TemplateBuilder; +import org.jclouds.vcloud.terremark.suppliers.InternetServiceAndPublicIpAddressSupplier; +import org.jclouds.vcloud.terremark.suppliers.TerremarkECloudInternetServiceAndPublicIpAddressSupplier; import com.google.inject.Injector; @@ -36,4 +38,11 @@ public class TerremarkECloudComputeServiceContextModule extends TerremarkVCloudC protected TemplateBuilder provideTemplate(Injector injector, TemplateBuilder template) { return template.osFamily(CENTOS).os64Bit(true); } + + @Override + protected void configure() { + bind(InternetServiceAndPublicIpAddressSupplier.class).to( + TerremarkECloudInternetServiceAndPublicIpAddressSupplier.class); + super.configure(); + } } diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkECloudRestClientModule.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkECloudRestClientModule.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkECloudRestClientModule.java rename to providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkECloudRestClientModule.java diff --git a/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkECloudInternetServiceAndPublicIpAddressSupplier.java b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkECloudInternetServiceAndPublicIpAddressSupplier.java new file mode 100644 index 0000000000..7154b57445 --- /dev/null +++ b/providers/trmk-ecloud/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkECloudInternetServiceAndPublicIpAddressSupplier.java @@ -0,0 +1,97 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.vcloud.terremark.suppliers; + +import static org.jclouds.vcloud.terremark.options.AddInternetServiceOptions.Builder.withDescription; + +import java.util.Map; +import java.util.Set; +import java.util.Map.Entry; + +import javax.annotation.Resource; +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Singleton; + +import org.jclouds.compute.reference.ComputeServiceConstants; +import org.jclouds.http.HttpResponseException; +import org.jclouds.logging.Logger; +import org.jclouds.vcloud.domain.VCloudExpressVApp; +import org.jclouds.vcloud.terremark.TerremarkECloudClient; +import org.jclouds.vcloud.terremark.domain.InternetService; +import org.jclouds.vcloud.terremark.domain.Protocol; +import org.jclouds.vcloud.terremark.domain.PublicIpAddress; +import org.jclouds.vcloud.terremark.suppliers.InternetServiceAndPublicIpAddressSupplier; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; + +/** + * @author Adrian Cole + */ +@Singleton +public class TerremarkECloudInternetServiceAndPublicIpAddressSupplier implements + InternetServiceAndPublicIpAddressSupplier { + + @Resource + @Named(ComputeServiceConstants.COMPUTE_LOGGER) + public Logger logger = Logger.NULL; + protected final TerremarkECloudClient client; + + @Inject + public TerremarkECloudInternetServiceAndPublicIpAddressSupplier(TerremarkECloudClient client) { + this.client = client; + } + + @Override + public Entry getNewInternetServiceAndIp(VCloudExpressVApp vApp, int port, + Protocol protocol) { + logger.debug(">> creating InternetService in vDC %s:%s:%d", vApp.getVDC().getName(), protocol, port); + // http://support.theenterprisecloud.com/kb/default.asp?id=706&Lang=1&SID= + // response with a 500 error code means we should look for an existing public ip to + // use + InternetService is = null; + PublicIpAddress ip = null; + try { + ip = client.activatePublicIpInVDC(vApp.getVDC().getHref()); + } catch (HttpResponseException e) { + if (e.getResponse().getStatusCode() == 500) { + logger.warn(">> no more ip addresses available, looking for one to re-use"); + for (PublicIpAddress existingIp : client.getPublicIpsAssociatedWithVDC(vApp.getVDC().getHref())) { + Set services = client.getInternetServicesOnPublicIp(existingIp.getId()); + if (services.size() == 0) { + ip = existingIp; + break; + } + } + if (ip == null) + throw e; + } else { + throw e; + } + } + is = client.addInternetServiceToExistingIp(ip.getId(), vApp.getName() + "-" + port, protocol, port, + withDescription(String.format("port %d access to serverId: %s name: %s", port, vApp.getName(), vApp + .getName()))); + Map result = ImmutableMap. of(is, ip); + Entry entry = Iterables.getOnlyElement(result.entrySet()); + return entry; + } +} \ No newline at end of file diff --git a/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java new file mode 100644 index 0000000000..b06384c692 --- /dev/null +++ b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java @@ -0,0 +1,50 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.vcloud.terremark; + +import org.jclouds.compute.util.ComputeServiceUtils; +import org.jclouds.rest.Providers; +import org.testng.annotations.Test; + +import com.google.common.collect.Iterables; + +/** + * + * @author Adrian Cole + * + */ +@Test(groups = "unit") +public class ProvidersInPropertiesTest { + + @Test + public void testSupportedProviders() { + Iterable providers = Providers.getSupportedProviders(); + assert Iterables.contains(providers, "trmk-ecloud") : providers; + + } + + @Test + public void testSupportedComputeServiceProviders() { + Iterable providers = ComputeServiceUtils.getSupportedProviders(); + assert Iterables.contains(providers, "trmk-ecloud") : providers; + + } + +} diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java similarity index 87% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java rename to providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java index 4a42c95d62..09784f608b 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java +++ b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudAsyncClientTest.java @@ -49,19 +49,25 @@ import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404; import org.jclouds.rest.internal.RestAnnotationProcessor; import org.jclouds.util.Strings2; import org.jclouds.vcloud.CommonVCloudClient; +import org.jclouds.vcloud.VCloudVersionsAsyncClient; import org.jclouds.vcloud.VCloudExpressAsyncClientTest.VCloudRestClientModuleExtension.TestOrgCatalogItemSupplier; import org.jclouds.vcloud.VCloudExpressAsyncClientTest.VCloudRestClientModuleExtension.TestOrgCatalogSupplier; +import org.jclouds.vcloud.config.CommonVCloudRestClientModule.OrgVDCSupplier; +import org.jclouds.vcloud.domain.AllocationModel; +import org.jclouds.vcloud.domain.Capacity; import org.jclouds.vcloud.domain.Org; import org.jclouds.vcloud.domain.ReferenceType; +import org.jclouds.vcloud.domain.Task; import org.jclouds.vcloud.domain.VCloudSession; +import org.jclouds.vcloud.domain.VDCStatus; import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl; import org.jclouds.vcloud.domain.network.NetworkConfig; import org.jclouds.vcloud.filters.SetVCloudTokenCookie; import org.jclouds.vcloud.options.InstantiateVAppTemplateOptions; -import org.jclouds.vcloud.terremark.TerremarkVCloudExpressAsyncClientTest.TerremarkVCloudRestClientModuleExtension.TestTerremarkOrgVDCSupplier; -import org.jclouds.vcloud.terremark.config.TerremarkVCloudExpressRestClientModule; +import org.jclouds.vcloud.terremark.config.TerremarkECloudRestClientModule; import org.jclouds.vcloud.terremark.domain.Protocol; import org.jclouds.vcloud.terremark.domain.internal.TerremarkOrgImpl; +import org.jclouds.vcloud.terremark.domain.internal.TerremarkVDCImpl; import org.jclouds.vcloud.terremark.options.AddInternetServiceOptions; import org.jclouds.vcloud.terremark.options.AddNodeOptions; import org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTemplateOptions; @@ -83,20 +89,19 @@ import org.testng.annotations.Test; import com.google.common.base.Function; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; import com.google.inject.Injector; import com.google.inject.Module; import com.google.inject.TypeLiteral; -import domain.VCloudVersionsAsyncClient; - /** * Tests behavior of {@code TerremarkECloudAsyncClient} * * @author Adrian Cole */ // NOTE:without testName, this will not call @Before* and fail w/NPE during surefire -@Test(groups = "unit", sequential=true, testName = "TerremarkECloudAsyncClientTest") +@Test(groups = "unit", sequential = true, testName = "TerremarkECloudAsyncClientTest") public class TerremarkECloudAsyncClientTest extends RestClientTest { public void testNetwork() throws SecurityException, NoSuchMethodException, IOException { Method method = TerremarkECloudAsyncClient.class.getMethod("getNetwork", URI.class); @@ -278,8 +283,10 @@ public class TerremarkECloudAsyncClientTest extends RestClientTestnametrueeggs", + "nametrueeggs", "application/vnd.tmrk.vCloud.nodeService+xml", false); assertResponseParserClassEquals(method, request, ParseSax.class); assertSaxResponseParserClassEquals(method, NodeHandler.class); @@ -387,7 +399,7 @@ public class TerremarkECloudAsyncClientTest extends RestClientTestnametrue", + "nametrue", "application/vnd.tmrk.vCloud.nodeService+xml", false); assertResponseParserClassEquals(method, request, ParseSax.class); assertSaxResponseParserClassEquals(method, NodeHandler.class); @@ -528,13 +540,12 @@ public class TerremarkECloudAsyncClientTest extends RestClientTest createContextSpec() { - return new RestContextFactory().createContextSpec("trmk-vcloudexpress", "identity", "credential", - new Properties()); + return new RestContextFactory().createContextSpec("trmk-ecloud", "identity", "credential", new Properties()); } @RequiresHttp @ConfiguresRestClient - protected static class TerremarkVCloudRestClientModuleExtension extends TerremarkVCloudExpressRestClientModule { + protected static class TerremarkVCloudRestClientModuleExtension extends TerremarkECloudRestClientModule { @Override protected URI provideAuthenticationURI(VCloudVersionsAsyncClient versionService, @Named(PROPERTY_API_VERSION) String version) { @@ -643,4 +654,32 @@ public class TerremarkECloudAsyncClientTest extends RestClientTest> get() { + return ImmutableMap.> of("org", + + ImmutableMap. of("vdc", new TerremarkVDCImpl("vdc", null, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vdc/1"), VDCStatus.READY, null, "description", + ImmutableSet. of(), AllocationModel.UNRECOGNIZED, new Capacity("MB", 0, 0, 0, 0), new Capacity( + "MB", 0, 0, 0, 0), new Capacity("MB", 0, 0, 0, 0), ImmutableMap. of( + "vapp", new ReferenceTypeImpl("vapp", "application/vnd.vmware.vcloud.vApp+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vApp/188849-1")), "network", + new ReferenceTypeImpl("network", "application/vnd.vmware.vcloud.vAppTemplate+xml", URI + .create("https://vcloud.safesecureweb.com/api/v0.8/vdcItem/2"))), ImmutableMap + . of(), 0, 0, 0, false, new ReferenceTypeImpl("catalog", + TerremarkVCloudMediaType.CATALOG_XML, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/catalog/1")), + new ReferenceTypeImpl("publicIps", TerremarkVCloudMediaType.PUBLICIPSLIST_XML, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/publicIps/1")), new ReferenceTypeImpl( + "internetServices", TerremarkVCloudMediaType.INTERNETSERVICESLIST_XML, URI + .create("https://vcloud.safesecureweb.com/api/v0.8/internetServices/1"))))); + } + } } diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java similarity index 66% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java rename to providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java index 351353d98b..97c4051ec6 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java +++ b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/TerremarkECloudClientLiveTestDisabled.java @@ -21,13 +21,23 @@ package org.jclouds.vcloud.terremark; import static org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTemplateOptions.Builder.processorCount; +import java.net.URI; +import java.util.Map; +import java.util.Map.Entry; + import org.jclouds.domain.Credentials; import org.jclouds.net.IPSocket; import org.jclouds.ssh.SshClient; +import org.jclouds.vcloud.terremark.domain.InternetService; +import org.jclouds.vcloud.terremark.domain.Protocol; +import org.jclouds.vcloud.terremark.domain.PublicIpAddress; import org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTemplateOptions; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; + /** * Tests behavior of {@code TerremarkVCloudClient} * @@ -51,4 +61,14 @@ public class TerremarkECloudClientLiveTestDisabled extends TerremarkClientLiveTe return sshFactory.create(socket, new Credentials("ecloud", "$Ep455l0ud!2")); } + @Override + protected Entry getNewInternetServiceAndIpForSSH(URI vdc) { + PublicIpAddress ip = TerremarkECloudClient.class.cast(tmClient).activatePublicIpInVDC( + tmClient.findVDCInOrgNamed(null, null).getHref()); + InternetService is = tmClient.addInternetServiceToExistingIp(ip.getId(), "SSH", Protocol.TCP, 22); + Map result = ImmutableMap. of(is, ip); + Entry entry = Iterables.getOnlyElement(result.entrySet()); + return entry; + } + } diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudComputeServiceLiveTest.java b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudComputeServiceLiveTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudComputeServiceLiveTest.java rename to providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudComputeServiceLiveTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudTemplateBuilderLiveTest.java b/providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudTemplateBuilderLiveTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudTemplateBuilderLiveTest.java rename to providers/trmk-ecloud/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkECloudTemplateBuilderLiveTest.java diff --git a/providers/trmk-ecloud/src/test/resources/log4j.xml b/providers/trmk-ecloud/src/test/resources/log4j.xml new file mode 100755 index 0000000000..7343ec00e2 --- /dev/null +++ b/providers/trmk-ecloud/src/test/resources/log4j.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/vcloud/terremark/pom.xml b/providers/trmk-vcloudexpress/pom.xml similarity index 58% rename from vcloud/terremark/pom.xml rename to providers/trmk-vcloudexpress/pom.xml index fe0ca133a4..186a9ba048 100644 --- a/vcloud/terremark/pom.xml +++ b/providers/trmk-vcloudexpress/pom.xml @@ -20,48 +20,86 @@ --> - + 4.0.0 org.jclouds - jclouds-vcloud-project + jclouds-project 1.0-SNAPSHOT + ../../project/pom.xml - jclouds-terremark - jclouds terremark Components Core - jclouds Core components to access terremark + org.jclouds.provider + trmk-vcloudexpress + jclouds Terremark vCloud Express provider + jclouds Terremark vCloud Express provider + - - trmkrun-ccc,test.trmk-924 https://services.vcloudexpress.terremark.com/api 0.8a-ext1.6 FIXME FIXME - https://services.enterprisecloud.terremark.com/api - 0.8b-ext2.3 - FIXME - FIXME - - scm:svn:http://jclouds.googlecode.com/svn/trunk/vcloud/terremark - scm:svn:https://jclouds.googlecode.com/svn/trunk/vcloud/terremark - http://jclouds.googlecode.com/svn/trunk/vcloud/terremark - - - ${project.groupId} - jclouds-vcloud + org.jclouds.common + trmk-common ${project.version} - ${project.groupId} - jclouds-vcloud + org.jclouds.common + trmk-common ${project.version} test-jar test + + org.jclouds.common + vcloud-common + ${project.version} + test-jar + test + + + org.jclouds.api + vcloudexpress + ${project.version} + test-jar + test + + + org.jclouds + jclouds-core + ${project.version} + test-jar + test + + + org.jclouds + jclouds-compute + ${project.version} + test-jar + test + + + org.jclouds + jclouds-log4j + ${project.version} + test + + + org.jclouds + jclouds-jsch + ${project.version} + test + + + log4j + log4j + 1.2.16 + test + @@ -97,26 +135,6 @@ test.trmk-vcloudexpress.credential ${test.trmk-vcloudexpress.credential} - - test.trmk-ecloud.endpoint - ${test.trmk-ecloud.endpoint} - - - test.trmk-ecloud.apiversion - ${test.trmk-ecloud.apiversion} - - - test.trmk-ecloud.identity - ${test.trmk-ecloud.identity} - - - test.trmk-ecloud.credential - ${test.trmk-ecloud.credential} - - - jclouds.compute.blacklist-nodes - ${jclouds.compute.blacklist-nodes} - @@ -129,3 +147,4 @@ + diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClient.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClient.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClient.java rename to providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClient.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClient.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClient.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClient.java rename to providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClient.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java similarity index 92% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java rename to providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java index 3ce7713c9f..a77437bebe 100644 --- a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java +++ b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressContextBuilder.java @@ -25,7 +25,7 @@ import java.util.Properties; import org.jclouds.http.config.JavaUrlHttpCommandExecutorServiceModule; import org.jclouds.logging.jdk.config.JDKLoggingModule; import org.jclouds.vcloud.VCloudExpressContextBuilder; -import org.jclouds.vcloud.terremark.compute.config.TerremarkVCloudComputeServiceContextModule; +import org.jclouds.vcloud.terremark.compute.TerremarkVCloudExpressComputeServiceContextModule; import org.jclouds.vcloud.terremark.config.TerremarkVCloudExpressRestClientModule; import com.google.inject.Injector; @@ -52,7 +52,7 @@ public class TerremarkVCloudExpressContextBuilder extends VCloudExpressContextBu @Override protected void addContextModule(List modules) { - modules.add(new TerremarkVCloudComputeServiceContextModule()); + modules.add(new TerremarkVCloudExpressComputeServiceContextModule()); } @Override diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressMediaType.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressMediaType.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressMediaType.java rename to providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressMediaType.java diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressPropertiesBuilder.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressPropertiesBuilder.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressPropertiesBuilder.java rename to providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressPropertiesBuilder.java diff --git a/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceContextModule.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceContextModule.java new file mode 100644 index 0000000000..d62a2cd11d --- /dev/null +++ b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceContextModule.java @@ -0,0 +1,56 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.vcloud.terremark.compute; + +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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. + * ==================================================================== + */ + +import org.jclouds.vcloud.terremark.compute.config.TerremarkVCloudComputeServiceContextModule; +import org.jclouds.vcloud.terremark.suppliers.InternetServiceAndPublicIpAddressSupplier; +import org.jclouds.vcloud.terremark.suppliers.TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier; + +/** + * @author Adrian Cole + */ +public class TerremarkVCloudExpressComputeServiceContextModule extends TerremarkVCloudComputeServiceContextModule { + + @Override + protected void configure() { + bind(InternetServiceAndPublicIpAddressSupplier.class).to( + TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier.class); + super.configure(); + } +} diff --git a/vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkVCloudExpressRestClientModule.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkVCloudExpressRestClientModule.java similarity index 100% rename from vcloud/terremark/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkVCloudExpressRestClientModule.java rename to providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/config/TerremarkVCloudExpressRestClientModule.java diff --git a/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier.java b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier.java new file mode 100644 index 0000000000..819e5df8a1 --- /dev/null +++ b/providers/trmk-vcloudexpress/src/main/java/org/jclouds/vcloud/terremark/suppliers/TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier.java @@ -0,0 +1,71 @@ +/** + * + * Copyright (C) 2010 Cloud Conscious, LLC. + * + * ==================================================================== + * Licensed 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.vcloud.terremark.suppliers; + +import static org.jclouds.vcloud.terremark.options.AddInternetServiceOptions.Builder.withDescription; + +import java.util.Map; +import java.util.Map.Entry; + +import javax.annotation.Resource; +import javax.inject.Inject; +import javax.inject.Named; +import javax.inject.Singleton; + +import org.jclouds.compute.reference.ComputeServiceConstants; +import org.jclouds.logging.Logger; +import org.jclouds.vcloud.domain.VCloudExpressVApp; +import org.jclouds.vcloud.terremark.TerremarkVCloudExpressClient; +import org.jclouds.vcloud.terremark.domain.InternetService; +import org.jclouds.vcloud.terremark.domain.Protocol; +import org.jclouds.vcloud.terremark.domain.PublicIpAddress; + +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; + +/** + * @author Adrian Cole + */ +@Singleton +public class TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier implements + InternetServiceAndPublicIpAddressSupplier { + + @Resource + @Named(ComputeServiceConstants.COMPUTE_LOGGER) + public Logger logger = Logger.NULL; + protected final TerremarkVCloudExpressClient client; + + @Inject + public TerremarkVCloudExpressInternetServiceAndPublicIpAddressSupplier(TerremarkVCloudExpressClient client) { + this.client = client; + } + + @Override + public Entry getNewInternetServiceAndIp(VCloudExpressVApp vApp, int port, + Protocol protocol) { + logger.debug(">> creating InternetService in vDC %s:%s:%d", vApp.getVDC().getName(), protocol, port); + InternetService is = client.addInternetServiceToVDC(vApp.getVDC().getHref(), vApp.getName() + "-" + port, + protocol, port, withDescription(String.format("port %d access to serverId: %s name: %s", port, vApp + .getName(), vApp.getName()))); + PublicIpAddress ip = is.getPublicIpAddress(); + Map result = ImmutableMap. of(is, ip); + Entry entry = Iterables.getOnlyElement(result.entrySet()); + return entry; + } +} \ No newline at end of file diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java rename to providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/InternetServiceLiveTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java similarity index 91% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java rename to providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java index 200a062d32..390e478dad 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java +++ b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/ProvidersInPropertiesTest.java @@ -37,7 +37,6 @@ public class ProvidersInPropertiesTest { public void testSupportedProviders() { Iterable providers = Providers.getSupportedProviders(); assert Iterables.contains(providers, "trmk-vcloudexpress") : providers; - assert Iterables.contains(providers, "trmk-ecloud") : providers; } @@ -45,8 +44,6 @@ public class ProvidersInPropertiesTest { public void testSupportedComputeServiceProviders() { Iterable providers = ComputeServiceUtils.getSupportedProviders(); assert Iterables.contains(providers, "trmk-vcloudexpress") : providers; - assert Iterables.contains(providers, "trmk-ecloud") : providers; - } } diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java similarity index 99% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java rename to providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java index cd6fa8c8b0..576add150d 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java +++ b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressAsyncClientTest.java @@ -49,6 +49,7 @@ import org.jclouds.rest.functions.ReturnVoidOnNotFoundOr404; import org.jclouds.rest.internal.RestAnnotationProcessor; import org.jclouds.util.Strings2; import org.jclouds.vcloud.CommonVCloudClient; +import org.jclouds.vcloud.VCloudVersionsAsyncClient; import org.jclouds.vcloud.VCloudExpressAsyncClientTest.VCloudRestClientModuleExtension.TestOrgCatalogItemSupplier; import org.jclouds.vcloud.VCloudExpressAsyncClientTest.VCloudRestClientModuleExtension.TestOrgCatalogSupplier; import org.jclouds.vcloud.domain.AllocationModel; @@ -93,8 +94,6 @@ import com.google.inject.Injector; import com.google.inject.Module; import com.google.inject.TypeLiteral; -import domain.VCloudVersionsAsyncClient; - /** * Tests behavior of {@code TerremarkVCloudExpressAsyncClient} * diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java similarity index 80% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java rename to providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java index f76ac27596..a01b730154 100644 --- a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java +++ b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/TerremarkVCloudExpressClientLiveTest.java @@ -23,19 +23,28 @@ import static org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTempl import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; +import java.net.URI; +import java.util.Map; import java.util.Set; +import java.util.Map.Entry; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeoutException; import org.jclouds.domain.Credentials; import org.jclouds.net.IPSocket; import org.jclouds.ssh.SshClient; +import org.jclouds.vcloud.terremark.domain.InternetService; import org.jclouds.vcloud.terremark.domain.KeyPair; +import org.jclouds.vcloud.terremark.domain.Protocol; +import org.jclouds.vcloud.terremark.domain.PublicIpAddress; import org.jclouds.vcloud.terremark.domain.TerremarkOrg; import org.jclouds.vcloud.terremark.options.TerremarkInstantiateVAppTemplateOptions; import org.testng.annotations.AfterTest; import org.testng.annotations.Test; +import com.google.common.collect.ImmutableMap; +import com.google.common.collect.Iterables; + /** * Tests behavior of {@code TerremarkVCloudClient} * @@ -44,6 +53,16 @@ import org.testng.annotations.Test; @Test(groups = "live", sequential = true) public class TerremarkVCloudExpressClientLiveTest extends TerremarkClientLiveTest { + @Override + protected Entry getNewInternetServiceAndIpForSSH(URI vdc) { + InternetService is = TerremarkVCloudExpressClient.class.cast(tmClient).addInternetServiceToVDC( + tmClient.findVDCInOrgNamed(null, null).getHref(), "SSH", Protocol.TCP, 22); + PublicIpAddress ip = is.getPublicIpAddress(); + Map result = ImmutableMap. of(is, ip); + Entry entry = Iterables.getOnlyElement(result.entrySet()); + return entry; + } + KeyPair key; @Test diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceLiveTest.java b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceLiveTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceLiveTest.java rename to providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressComputeServiceLiveTest.java diff --git a/vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressTemplateBuilderLiveTest.java b/providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressTemplateBuilderLiveTest.java similarity index 100% rename from vcloud/terremark/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressTemplateBuilderLiveTest.java rename to providers/trmk-vcloudexpress/src/test/java/org/jclouds/vcloud/terremark/compute/TerremarkVCloudExpressTemplateBuilderLiveTest.java