Promoted Azure ARM to the main repo
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/ac03bac4 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/ac03bac4 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/ac03bac4 Branch: refs/heads/master Commit: ac03bac4d24bc00b74f194b4eb7ee84ba7eb409e Parents: 036c68f Author: Ignasi Barrera <[email protected]> Authored: Mon Jan 8 15:55:26 2018 +0100 Committer: Ignasi Barrera <[email protected]> Committed: Mon Jan 8 15:55:26 2018 +0100 ---------------------------------------------------------------------- azurecompute-arm/README.md | 101 -- azurecompute-arm/pom.xml | 165 -- .../azurecompute/arm/AzureComputeApi.java | 270 --- .../arm/AzureComputeProviderMetadata.java | 165 -- .../arm/AzureManagementApiMetadata.java | 99 -- .../arm/compute/AzureComputeService.java | 128 -- .../arm/compute/AzureComputeServiceAdapter.java | 545 ------ .../AzureComputeServiceContextModule.java | 134 -- .../compute/config/AzurePredicatesModule.java | 602 ------- .../arm/compute/domain/LocationAndName.java | 50 - .../compute/domain/ResourceGroupAndName.java | 50 - .../ResourceGroupAndNameAndIngressRules.java | 74 - .../extensions/AzureComputeImageExtension.java | 134 -- .../AzureComputeSecurityGroupExtension.java | 345 ---- .../compute/functions/CustomImageToVMImage.java | 33 - .../compute/functions/LocationToLocation.java | 61 - .../functions/LocationToResourceGroupName.java | 46 - .../NetworkSecurityGroupToSecurityGroup.java | 73 - .../NetworkSecurityRuleToIpPermission.java | 76 - .../functions/TemplateToAvailabilitySet.java | 94 - .../compute/functions/VMHardwareToHardware.java | 82 - .../arm/compute/functions/VMImageToImage.java | 157 -- .../functions/VirtualMachineToNodeMetadata.java | 208 --- .../functions/VirtualMachineToStatus.java | 116 -- .../loaders/CreateSecurityGroupIfNeeded.java | 100 -- .../compute/loaders/DefaultResourceGroup.java | 62 - .../compute/options/AzureTemplateOptions.java | 324 ---- .../arm/compute/options/IpOptions.java | 76 - .../arm/compute/strategy/CleanupResources.java | 237 --- .../CreateResourcesThenCreateNodes.java | 258 --- .../arm/config/AzureComputeHttpApiModule.java | 108 -- .../arm/config/AzureComputeParserModule.java | 29 - .../arm/config/AzureComputeProperties.java | 46 - .../arm/config/AzureComputeRateLimitModule.java | 30 - .../arm/config/AzureOAuthConfigFactory.java | 60 - .../azurecompute/arm/config/GraphRBAC.java | 54 - .../azurecompute/arm/config/OAuthResource.java | 35 - .../jclouds/azurecompute/arm/config/Tenant.java | 34 - .../azurecompute/arm/domain/Availability.java | 32 - .../arm/domain/AvailabilitySet.java | 223 --- .../arm/domain/BackendAddressPool.java | 43 - .../domain/BackendAddressPoolProperties.java | 74 - .../azurecompute/arm/domain/Certificate.java | 638 ------- .../azurecompute/arm/domain/ComputeNode.java | 31 - .../azurecompute/arm/domain/CreationData.java | 54 - .../azurecompute/arm/domain/DataDisk.java | 160 -- .../azurecompute/arm/domain/Deployment.java | 254 --- .../azurecompute/arm/domain/DeploymentBody.java | 42 - .../arm/domain/DeploymentProperties.java | 31 - .../arm/domain/DeploymentTemplate.java | 125 -- .../arm/domain/DiagnosticsProfile.java | 74 - .../jclouds/azurecompute/arm/domain/Disk.java | 105 -- .../azurecompute/arm/domain/DiskProperties.java | 78 - .../azurecompute/arm/domain/DnsSettings.java | 60 - .../azurecompute/arm/domain/Extension.java | 40 - .../arm/domain/ExtensionProfile.java | 39 - .../arm/domain/ExtensionProfileSettings.java | 42 - .../arm/domain/ExtensionProperties.java | 70 - .../arm/domain/FrontendIPConfigurations.java | 45 - .../FrontendIPConfigurationsProperties.java | 66 - .../arm/domain/HardwareProfile.java | 48 - .../azurecompute/arm/domain/IdReference.java | 71 - .../jclouds/azurecompute/arm/domain/Image.java | 86 - .../arm/domain/ImageProperties.java | 61 - .../azurecompute/arm/domain/ImageReference.java | 106 -- .../azurecompute/arm/domain/InboundNatRule.java | 43 - .../arm/domain/InboundNatRuleProperties.java | 105 -- .../arm/domain/IpConfiguration.java | 68 - .../arm/domain/IpConfigurationProperties.java | 105 -- .../jclouds/azurecompute/arm/domain/Key.java | 229 --- .../arm/domain/KeyVaultReference.java | 46 - .../azurecompute/arm/domain/LoadBalancer.java | 67 - .../arm/domain/LoadBalancerProperties.java | 109 -- .../arm/domain/LoadBalancingRule.java | 43 - .../arm/domain/LoadBalancingRuleProperties.java | 135 -- .../azurecompute/arm/domain/Location.java | 58 - .../arm/domain/ManagedDiskParameters.java | 36 - .../jclouds/azurecompute/arm/domain/Metric.java | 51 - .../azurecompute/arm/domain/MetricData.java | 74 - .../arm/domain/MetricDefinition.java | 97 -- .../azurecompute/arm/domain/MetricName.java | 38 - .../arm/domain/NetworkInterfaceCard.java | 57 - .../domain/NetworkInterfaceCardProperties.java | 78 - .../domain/NetworkInterfaceConfiguration.java | 44 - ...NetworkInterfaceConfigurationProperties.java | 68 - .../azurecompute/arm/domain/NetworkProfile.java | 92 - .../arm/domain/NetworkSecurityGroup.java | 49 - .../domain/NetworkSecurityGroupProperties.java | 89 - .../arm/domain/NetworkSecurityRule.java | 46 - .../domain/NetworkSecurityRuleProperties.java | 146 -- .../jclouds/azurecompute/arm/domain/OSDisk.java | 99 -- .../azurecompute/arm/domain/OSProfile.java | 277 --- .../jclouds/azurecompute/arm/domain/Offer.java | 51 - .../jclouds/azurecompute/arm/domain/Plan.java | 47 - .../jclouds/azurecompute/arm/domain/Probe.java | 42 - .../arm/domain/ProbeProperties.java | 91 - .../azurecompute/arm/domain/Provisionable.java | 22 - .../arm/domain/PublicIPAddress.java | 71 - .../arm/domain/PublicIPAddressProperties.java | 86 - .../azurecompute/arm/domain/Publisher.java | 52 - .../jclouds/azurecompute/arm/domain/Region.java | 103 -- .../azurecompute/arm/domain/Resource.java | 72 - .../arm/domain/ResourceDefinition.java | 106 -- .../azurecompute/arm/domain/ResourceGroup.java | 52 - .../arm/domain/ResourceProviderMetaData.java | 71 - .../jclouds/azurecompute/arm/domain/SKU.java | 40 - .../jclouds/azurecompute/arm/domain/Secret.java | 186 -- .../azurecompute/arm/domain/Secrets.java | 55 - .../arm/domain/ServicePrincipal.java | 66 - .../jclouds/azurecompute/arm/domain/Status.java | 49 - .../arm/domain/StorageAccountType.java | 47 - .../azurecompute/arm/domain/StorageProfile.java | 82 - .../azurecompute/arm/domain/StorageService.java | 226 --- .../arm/domain/StorageServiceKeys.java | 39 - .../arm/domain/StorageServiceUpdateParams.java | 65 - .../jclouds/azurecompute/arm/domain/Subnet.java | 136 -- .../arm/domain/TemplateParameterType.java | 34 - .../jclouds/azurecompute/arm/domain/VHD.java | 48 - .../azurecompute/arm/domain/VMDeployment.java | 44 - .../azurecompute/arm/domain/VMHardware.java | 70 - .../azurecompute/arm/domain/VMImage.java | 182 -- .../jclouds/azurecompute/arm/domain/VMSize.java | 67 - .../jclouds/azurecompute/arm/domain/Value.java | 42 - .../jclouds/azurecompute/arm/domain/Vault.java | 112 -- .../arm/domain/VaultCertificate.java | 46 - .../arm/domain/VaultProperties.java | 131 -- .../azurecompute/arm/domain/Version.java | 90 - .../azurecompute/arm/domain/VirtualMachine.java | 103 -- .../arm/domain/VirtualMachineInstance.java | 90 - .../arm/domain/VirtualMachineProperties.java | 154 -- .../arm/domain/VirtualMachineScaleSet.java | 110 -- .../VirtualMachineScaleSetDNSSettings.java | 41 - .../VirtualMachineScaleSetIpConfiguration.java | 61 - ...achineScaleSetIpConfigurationProperties.java | 104 -- .../VirtualMachineScaleSetNetworkProfile.java | 58 - ...tualMachineScaleSetNetworkSecurityGroup.java | 39 - .../domain/VirtualMachineScaleSetOSProfile.java | 273 --- .../arm/domain/VirtualMachineScaleSetPlan.java | 51 - .../VirtualMachineScaleSetProperties.java | 106 -- ...ineScaleSetPublicIPAddressConfiguration.java | 59 - ...achineScaleSetPublicIPAddressProperties.java | 54 - .../arm/domain/VirtualMachineScaleSetSKU.java | 45 - .../VirtualMachineScaleSetUpgradeMode.java | 35 - .../VirtualMachineScaleSetUpgradePolicy.java | 35 - ...ualMachineScaleSetVirtualMachineProfile.java | 83 - .../azurecompute/arm/domain/VirtualNetwork.java | 122 -- .../AzureComputeRateLimitExceededException.java | 51 - .../arm/features/AvailabilitySetApi.java | 84 - .../arm/features/DeploymentApi.java | 107 -- .../azurecompute/arm/features/DiskApi.java | 77 - .../azurecompute/arm/features/GraphRBACApi.java | 50 - .../azurecompute/arm/features/ImageApi.java | 77 - .../azurecompute/arm/features/JobApi.java | 58 - .../arm/features/LoadBalancerApi.java | 80 - .../azurecompute/arm/features/LocationApi.java | 56 - .../arm/features/MetricDefinitionsApi.java | 52 - .../azurecompute/arm/features/MetricsApi.java | 51 - .../arm/features/NetworkInterfaceCardApi.java | 80 - .../arm/features/NetworkSecurityGroupApi.java | 79 - .../arm/features/NetworkSecurityRuleApi.java | 91 - .../azurecompute/arm/features/OSImageApi.java | 94 - .../arm/features/PublicIPAddressApi.java | 78 - .../arm/features/ResourceGroupApi.java | 99 -- .../arm/features/ResourceProviderApi.java | 56 - .../arm/features/StorageAccountApi.java | 160 -- .../azurecompute/arm/features/SubnetApi.java | 74 - .../azurecompute/arm/features/VMSizeApi.java | 45 - .../azurecompute/arm/features/VaultApi.java | 635 ------- .../arm/features/VirtualMachineApi.java | 140 -- .../arm/features/VirtualMachineScaleSetApi.java | 88 - .../arm/features/VirtualNetworkApi.java | 76 - .../arm/filters/ApiVersionFilter.java | 90 - .../azurecompute/arm/functions/FalseOn204.java | 40 - .../arm/functions/ParseJobStatus.java | 51 - .../arm/functions/StatusCodeParser.java | 38 - .../azurecompute/arm/functions/URIParser.java | 40 - .../arm/handlers/AzureComputeErrorHandler.java | 93 - .../handlers/AzureRateLimitRetryHandler.java | 39 - .../azurecompute/arm/util/GetEnumValue.java | 35 - .../jclouds/azurecompute/arm/util/VMImages.java | 27 - .../arm/AzureComputeProviderMetadataTest.java | 28 - .../compute/AzureComputeServiceLiveTest.java | 121 -- .../compute/AzureTemplateBuilderLiveTest.java | 80 - .../AzureComputeImageExtensionLiveTest.java | 128 -- ...reComputeSecurityGroupExtensionLiveTest.java | 177 -- .../CreateResourcesThenCreateNodesTest.java | 116 -- .../arm/config/ParseTenantIdTest.java | 50 - .../arm/domain/IdReferenceTest.java | 63 - .../azurecompute/arm/domain/SubnetTest.java | 47 - .../features/AvailabilitySetApiLiveTest.java | 105 -- .../features/AvailabilitySetApiMockTest.java | 155 -- .../arm/features/DeploymentApiLiveTest.java | 156 -- .../arm/features/DeploymentApiMockTest.java | 154 -- .../arm/features/DiskApiLiveTest.java | 107 -- .../arm/features/DiskApiMockTest.java | 141 -- .../arm/features/GraphRBACApiLiveTest.java | 39 - .../arm/features/GraphRBACApiMockTest.java | 39 - .../arm/features/ImageApiLiveTest.java | 155 -- .../arm/features/ImageApiMockTest.java | 155 -- .../arm/features/JobApiMockTest.java | 96 -- .../arm/features/LoadBalancerApiLiveTest.java | 449 ----- .../arm/features/LoadBalancerApiMockTest.java | 160 -- .../arm/features/LocationApiLiveTest.java | 51 - .../arm/features/LocationApiMockTest.java | 50 - .../features/MetricDefinitionsApiLiveTest.java | 131 -- .../features/MetricDefinitionsApiMockTest.java | 65 - .../arm/features/MetricsApiLiveTest.java | 143 -- .../arm/features/MetricsApiMockTest.java | 69 - .../NetworkInterfaceCardApiLiveTest.java | 119 -- .../NetworkInterfaceCardApiMockTest.java | 145 -- .../NetworkSecurityGroupApiLiveTest.java | 106 -- .../NetworkSecurityGroupApiMockTest.java | 163 -- .../NetworkSecurityRuleApiLiveTest.java | 156 -- .../NetworkSecurityRuleApiMockTest.java | 206 --- .../arm/features/OSImageApiLiveTest.java | 70 - .../arm/features/OSImageApiMockTest.java | 123 -- .../features/PublicIPAddressApiLiveTest.java | 129 -- .../features/PublicIPAddressApiMockTest.java | 178 -- .../arm/features/ResourceGroupApiLiveTest.java | 112 -- .../arm/features/ResourceGroupApiMockTest.java | 173 -- .../features/ResourceProviderAPIMockTest.java | 66 - .../features/ResourceProviderApiLiveTest.java | 55 - .../arm/features/StorageAccountApiLiveTest.java | 143 -- .../arm/features/StorageAccountApiMockTest.java | 312 ---- .../arm/features/SubnetApiLiveTest.java | 93 - .../arm/features/SubnetApiMockTest.java | 139 -- .../arm/features/VMSizeApiLiveTest.java | 40 - .../arm/features/VMSizeApiMockTest.java | 57 - .../arm/features/VaultApiLiveTest.java | 1057 ------------ .../arm/features/VaultApiMockTest.java | 1619 ------------------ .../arm/features/VirtualMachineApiLiveTest.java | 349 ---- .../arm/features/VirtualMachineApiMockTest.java | 409 ----- .../VirtualMachineScaleSetApiLiveTest.java | 265 --- .../VirtualMachineScaleSetApiMockTest.java | 453 ----- .../arm/features/VirtualNetworkApiLiveTest.java | 89 - .../arm/features/VirtualNetworkApiMockTest.java | 137 -- .../arm/filters/ApiVersionFilterTest.java | 129 -- .../arm/functions/URIParserTest.java | 51 - .../arm/internal/AzureLiveTestUtils.java | 49 - .../internal/BaseAzureComputeApiLiveTest.java | 249 --- .../internal/BaseAzureComputeApiMockTest.java | 203 --- .../test/resources/PublicIPAddressCreate.json | 20 - .../PublicIPAddressCreateDnsRecordInUse.json | 7 - .../test/resources/PublicIPAddressGetInfo.json | 24 - .../src/test/resources/PublicIPAddressList.json | 80 - .../test/resources/availabilitysetcreate.json | 11 - .../src/test/resources/availabilitysetget.json | 12 - .../src/test/resources/availabilitysetlist.json | 16 - .../resources/createdeploymentaccepted.json | 33 - .../resources/createdeploymentsucceeded.json | 36 - .../src/test/resources/creatediskresponse.json | 11 - .../resources/createnetworkinterfacecard.json | 35 - .../src/test/resources/createsubnet.json | 5 - .../test/resources/createsubnetresponse.json | 14 - .../resources/createvirtualmachineresponse.json | 109 -- .../test/resources/createvirtualnetwork.json | 20 - .../src/test/resources/getdisk.json | 19 - .../test/resources/getnetworkinterfacecard.json | 35 - .../src/test/resources/getonesubnet.json | 14 - .../resources/getresourceprovidermetadata.json | 366 ---- .../src/test/resources/getvault.json | 60 - azurecompute-arm/src/test/resources/image.json | 43 - .../resources/isavailablestorageservice.json | 3 - .../src/test/resources/listdeployments.json | 99 -- .../src/test/resources/listdisks.json | 23 - .../test/resources/listnetworkinterfaces.json | 68 - .../listsubnetswithinvirtualnetwork.json | 18 - .../src/test/resources/listvirtualnetworks.json | 79 - .../src/test/resources/loadbalancercreate.json | 28 - .../src/test/resources/loadbalancerget.json | 54 - .../src/test/resources/loadbalancerlist.json | 35 - .../src/test/resources/locations.json | 10 - .../src/test/resources/logback-test.xml | 42 - .../src/test/resources/metricdefinitions.json | 25 - .../src/test/resources/metrics.json | 19 - .../resources/networksecuritygroupcreate.json | 125 -- .../test/resources/networksecuritygroupget.json | 125 -- .../resources/networksecuritygrouplist.json | 127 -- .../resources/networksecurityrulecreate.json | 17 - .../test/resources/networksecurityruleget.json | 17 - .../networksecurityrulegetdefault.json | 17 - .../test/resources/networksecurityrulelist.json | 35 - .../networksecurityrulelistdefault.json | 99 -- azurecompute-arm/src/test/resources/offers.json | 7 - .../src/test/resources/publishers.json | 12 - .../src/test/resources/resourceDefinition.json | 22 - .../test/resources/resourcegroup-resources.json | 46 - .../src/test/resources/resourcegroup.json | 11 - .../src/test/resources/resourcegroups.json | 21 - .../test/resources/resourcegroupupdated.json | 9 - .../src/test/resources/serviceprincipals.json | 53 - azurecompute-arm/src/test/resources/skus.json | 12 - .../src/test/resources/storageAccounts.json | 90 - .../test/resources/storageCreateResponse.json | 9 - .../src/test/resources/storageaccountkeys.json | 4 - .../test/resources/storageaccountupdate.json | 7 - .../src/test/resources/storageservices.json | 30 - .../src/test/resources/vaultbackupkey.json | 3 - .../src/test/resources/vaultbackupsecret.json | 3 - .../src/test/resources/vaultcreate.json | 26 - .../test/resources/vaultcreatecertificate.json | 11 - .../vaultcreatecertificaterequestbody.json | 21 - .../src/test/resources/vaultcreatekey.json | 15 - .../resources/vaultcreatekeyrequestbody.json | 7 - .../test/resources/vaultcreaterequestbody.json | 21 - .../test/resources/vaultdeletecertificate.json | 58 - .../vaultdeletecertificatecontacts.json | 8 - .../resources/vaultdeletecertificateissuer.json | 21 - .../vaultdeletecertificateoperation.json | 11 - .../src/test/resources/vaultdeletekey.json | 15 - .../src/test/resources/vaultdeletesecret.json | 10 - .../src/test/resources/vaultget.json | 26 - .../src/test/resources/vaultgetcertificate.json | 55 - .../resources/vaultgetcertificatecontacts.json | 8 - .../resources/vaultgetcertificateissuer.json | 21 - .../resources/vaultgetcertificateoperation.json | 11 - .../resources/vaultgetcertificatepolicy.json | 37 - .../src/test/resources/vaultgetdeleted.json | 12 - .../resources/vaultgetdeletedcertificate.json | 55 - .../src/test/resources/vaultgetdeletedkey.json | 18 - .../test/resources/vaultgetdeletedsecret.json | 13 - .../src/test/resources/vaultgetkey.json | 15 - .../src/test/resources/vaultgetkeyversions.json | 23 - .../src/test/resources/vaultgetsecret.json | 11 - .../test/resources/vaultgetsecretversions.json | 25 - .../src/test/resources/vaultimportablecert.txt | 58 - .../test/resources/vaultimportcertificate.json | 52 - .../vaultimportcertificaterequestbody.json | 9 - .../resources/vaultimportkeyrequestbody.json | 18 - .../src/test/resources/vaultkeybackup.txt | 1 - .../src/test/resources/vaultkeydecrypt.json | 4 - .../resources/vaultkeydecryptrequestbody.json | 4 - .../src/test/resources/vaultkeyencrypt.json | 4 - .../resources/vaultkeyencryptrequestbody.json | 4 - .../src/test/resources/vaultkeysign.json | 4 - .../test/resources/vaultkeysignrequestbody.json | 4 - .../src/test/resources/vaultkeyunwrap.json | 4 - .../resources/vaultkeyunwraprequestbody.json | 4 - .../src/test/resources/vaultkeyverify.json | 3 - .../resources/vaultkeyverifyrequestbody.json | 5 - .../src/test/resources/vaultkeywrap.json | 4 - .../test/resources/vaultkeywraprequestbody.json | 4 - .../src/test/resources/vaultlist.json | 29 - .../resources/vaultlistcertificateissuers.json | 7 - .../test/resources/vaultlistcertificates.json | 27 - .../resources/vaultlistcertificateversions.json | 17 - .../src/test/resources/vaultlistdeleted.json | 15 - .../resources/vaultlistdeletedcertificates.json | 18 - .../test/resources/vaultlistdeletedkeys.json | 15 - .../test/resources/vaultlistdeletedsecrets.json | 16 - .../src/test/resources/vaultlistkeys.json | 42 - .../src/test/resources/vaultlistsecrets.json | 40 - .../test/resources/vaultmergecertificate.json | 62 - .../vaultmergecertificaterequestbody.json | 10 - .../src/test/resources/vaultmergex5c-1.txt | 1 - .../src/test/resources/vaultmergex5c-2.txt | 1 - .../src/test/resources/vaultmergex5c-3.txt | 1 - .../vaultrecoverdeletedcertificate.json | 52 - .../test/resources/vaultrecoverdeletedkey.json | 15 - .../resources/vaultrecoverdeletedsecret.json | 10 - .../src/test/resources/vaultrestorekey.json | 15 - .../resources/vaultrestorekeyrequestbody.json | 3 - .../src/test/resources/vaultrestoresecret.json | 10 - .../vaultrestoresecretrequestbody.json | 3 - .../src/test/resources/vaultsamplesecret.txt | 27 - .../src/test/resources/vaultsecretbackup.txt | 1 - .../resources/vaultsetcertificatecontacts.json | 8 - .../vaultsetcertificatecontactsrequestbody.json | 7 - .../resources/vaultsetcertificateissuer.json | 21 - .../vaultsetcertificateissuerrequestbody.json | 15 - .../src/test/resources/vaultsetsecret.json | 11 - .../resources/vaultsetsecretrequestbody.json | 7 - .../test/resources/vaultupdatecertificate.json | 58 - .../resources/vaultupdatecertificateissuer.json | 21 - ...vaultupdatecertificateissuerrequestbody.json | 15 - .../vaultupdatecertificateoperation.json | 11 - ...ltupdatecertificateoperationrequestbody.json | 3 - .../resources/vaultupdatecertificatepolicy.json | 37 - ...vaultupdatecertificatepolicyrequestbody.json | 8 - .../vaultupdatecertificaterequestbody.json | 1 - .../src/test/resources/vaultupdatekey.json | 18 - .../resources/vaultupdatekeyrequestbody.json | 5 - .../resources/vaultupdatekeywithversion.json | 18 - .../src/test/resources/vaultupdatesecret.json | 13 - .../resources/vaultupdatesecretrequestbody.json | 5 - .../resources/vaultupdatesecretwithversion.json | 13 - ...vaultupdatesecretwithversionrequestbody.json | 5 - .../src/test/resources/versions.json | 12 - .../src/test/resources/virtualmachine.json | 107 -- .../test/resources/virtualmachineInstance.json | 40 - .../resources/virtualmachineimagecreate.json | 21 - .../test/resources/virtualmachineimageget.json | 21 - .../test/resources/virtualmachineimagelist.json | 25 - .../src/test/resources/virtualmachines.json | 203 --- .../resources/virtualmachinescalesetget.json | 64 - .../virtualmachinescalesetgetwhen404.json | 6 - .../resources/virtualmachinescalesetlist.json | 93 - .../virtualmachinescalesetlistwhen404.json | 6 - ...almachinescalesetresponsecreateorupdate.json | 103 -- .../src/test/resources/virtualnetwork.json | 20 - .../src/test/resources/vmsizes.json | 28 - pom.xml | 1 - 402 files changed, 33120 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/README.md ---------------------------------------------------------------------- diff --git a/azurecompute-arm/README.md b/azurecompute-arm/README.md deleted file mode 100644 index ed8abd4..0000000 --- a/azurecompute-arm/README.md +++ /dev/null @@ -1,101 +0,0 @@ -jclouds Labs - Azure Compute ARM Provider -============ - -Build status for azurecomputearm module: -[](https://jclouds.ci.cloudbees.com/job/jclouds-labs/org.apache.jclouds.labs$azurecompute-arm/) - -## Setting Up Test Credentials - -### Create a Service Principal - -Install and configure Azure CLI following these [steps](http://azure.microsoft.com/en-us/documentation/articles/xplat-cli/). - -Using the Azure CLI, run the following commands to create a service principal - -```bash -# Enter your Microsoft account credentials when prompted -az login - -# Set current subscription to create a service principal -az account set --subscription <Subscription-id> - -# Create an AD application with your information. -az ad app create --display-name <name> --password <password> --homepage <home-page> --identifier-uris <identifier-uris> - -# For example: az ad app create --display-name "jcloudsarm" --password abcd --homepage "https://jcloudsarm" --identifier-uris "https://jcloudsarm" - -# Output will include a value for `Application Id`, which will be used for the live tests - -# Create a Service Principal -az ad sp create --id <Application-id> - -# Output will include a value for `Object Id`, to be used in the next step -``` - -Run the following commands to assign roles to the service principal - -```bash -# Assign roles for this service principal -az role assignment create --role Contributor --assignee <ObjectId> -``` - -Look up the the tenant Id - -```bash -az account show - -# output will be a JSON which will include the `Tenant id` -``` - -Verify service principal - -```bash -az login -u <Application-id> -p <password> --service-principal --tenant <Tenant-id> -``` - -## Run Live Tests - -Use the following to run one live test: - -```bash -mvn -Dtest=<name of the live test> \ - -Dtest.azurecompute-arm.identity="<Application-id>" \ - -Dtest.azurecompute-arm.credential="<password>" \ - -Dtest.azurecompute-arm.endpoint="https://management.azure.com/subscriptions/<Subscription-id>" \ - -Dtest.oauth.endpoint="https://login.microsoftonline.com/<Tenant-id>/oauth2/token" - integration-test -Plive - -``` - -Use the following to run all the live tests: - -```bash - -mvn clean verify -Plive \ - -Dtest.azurecompute-arm.identity="<Application-id>"" \ - -Dtest.azurecompute-arm.credential="<password>"" \ - -Dtest.azurecompute-arm.endpoint="https://management.azure.com/subscriptions/<Subscription-id>"" \ - -Dtest.oauth.endpoint=https://login.microsoftonline.com/<Tenant-id>/oauth2/token - -``` - -## How to use it - -Azure Compute ARM provider works exactly as any other jclouds provider. -Notice that as Azure supports dozens of locations, operations like listImages can be really time-consuming. -To limit the scope of such operations there are some additional properties you may want to use: - -```bash -jclouds.azurecompute.arm.publishers -``` -which is by default `Canonical,RedHat` - -and -```bash -jclouds.regions -``` -which is by default `null`. If you want to target only the `north europe` region, you can use - -```bash -jclouds.regions="northeurope" -``` http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/pom.xml ---------------------------------------------------------------------- diff --git a/azurecompute-arm/pom.xml b/azurecompute-arm/pom.xml deleted file mode 100644 index 72ff3e2..0000000 --- a/azurecompute-arm/pom.xml +++ /dev/null @@ -1,165 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>org.apache.jclouds.labs</groupId> - <artifactId>jclouds-labs</artifactId> - <version>2.1.0-SNAPSHOT</version> - </parent> - <artifactId>azurecompute-arm</artifactId> - <name>jclouds Azure Compute ARM API</name> - <description>jclouds components to access an implementation of Azure's ARM Compute Service</description> - <packaging>bundle</packaging> - - <properties> - <test.jclouds.oauth.resource>https://management.azure.com/</test.jclouds.oauth.resource> - <test.oauth.endpoint>https://login.microsoftonline.com/FIXME_tenant-id/oauth2/token</test.oauth.endpoint> - <test.azurecompute-arm.endpoint>https://management.azure.com/subscriptions/FIXME_subscription-id</test.azurecompute-arm.endpoint> - <test.azurecompute-arm.api-version></test.azurecompute-arm.api-version> - <test.azurecompute-arm.build-version /> - <test.azurecompute-arm.identity>app id</test.azurecompute-arm.identity> - <test.azurecompute-arm.credential>app password</test.azurecompute-arm.credential> - <jclouds.osgi.export>org.jclouds.azurecompute.arm*;version="${project.version}"</jclouds.osgi.export> - <jclouds.osgi.import>org.jclouds*;version="${project.version}",*</jclouds.osgi.import> - </properties> - - <dependencies> - <dependency> - <groupId>org.apache.jclouds</groupId> - <artifactId>jclouds-compute</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>com.google.auto.service</groupId> - <artifactId>auto-service</artifactId> - <scope>provided</scope> - <optional>true</optional> - </dependency> - <dependency> - <groupId>com.google.auto.value</groupId> - <artifactId>auto-value</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds</groupId> - <artifactId>jclouds-core</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.jclouds.api</groupId> - <artifactId>oauth</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.jclouds.driver</groupId> - <artifactId>jclouds-okhttp</artifactId> - <version>${project.version}</version> - </dependency> - <dependency> - <groupId>org.apache.jclouds.api</groupId> - <artifactId>oauth</artifactId> - <version>${project.version}</version> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds</groupId> - <artifactId>jclouds-compute</artifactId> - <version>${project.version}</version> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds</groupId> - <artifactId>jclouds-core</artifactId> - <version>${project.version}</version> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds.driver</groupId> - <artifactId>jclouds-slf4j</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.jclouds.driver</groupId> - <artifactId>jclouds-sshj</artifactId> - <version>${project.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>ch.qos.logback</groupId> - <artifactId>logback-classic</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.squareup.okhttp</groupId> - <artifactId>mockwebserver</artifactId> - <scope>test</scope> - <exclusions> - <!-- Already provided by jclouds-sshj --> - <exclusion> - <groupId>org.bouncycastle</groupId> - <artifactId>bcprov-jdk15on</artifactId> - </exclusion> - </exclusions> - </dependency> - </dependencies> - - <profiles> - <profile> - <id>live</id> - <build> - <defaultGoal>clean verify</defaultGoal> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <executions> - <execution> - <id>integration</id> - <phase>integration-test</phase> - <goals> - <goal>test</goal> - </goals> - <configuration> - <threadCount>1</threadCount> - <systemPropertyVariables> - <test.azurecompute-arm.endpoint>${test.azurecompute-arm.endpoint}</test.azurecompute-arm.endpoint> - <test.azurecompute-arm.api-version>${test.azurecompute-arm.api-version}</test.azurecompute-arm.api-version> - <test.azurecompute-arm.build-version>${test.azurecompute-arm.build-version}</test.azurecompute-arm.build-version> - <test.azurecompute-arm.identity>${test.azurecompute-arm.identity}</test.azurecompute-arm.identity> - <test.azurecompute-arm.credential>${test.azurecompute-arm.credential}</test.azurecompute-arm.credential> - <test.jclouds.oauth.resource>${test.jclouds.oauth.resource}</test.jclouds.oauth.resource> - <test.oauth.endpoint>${test.oauth.endpoint}</test.oauth.endpoint> - </systemPropertyVariables> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> - </profile> - </profiles> - -</project> http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeApi.java deleted file mode 100644 index d62a5b7..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeApi.java +++ /dev/null @@ -1,270 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm; - -import java.io.Closeable; - -import javax.ws.rs.PathParam; - -import org.jclouds.azurecompute.arm.domain.ServicePrincipal; -import org.jclouds.azurecompute.arm.features.AvailabilitySetApi; -import org.jclouds.azurecompute.arm.features.DeploymentApi; -import org.jclouds.azurecompute.arm.features.DiskApi; -import org.jclouds.azurecompute.arm.features.GraphRBACApi; -import org.jclouds.azurecompute.arm.features.ImageApi; -import org.jclouds.azurecompute.arm.features.JobApi; -import org.jclouds.azurecompute.arm.features.LoadBalancerApi; -import org.jclouds.azurecompute.arm.features.LocationApi; -import org.jclouds.azurecompute.arm.features.MetricDefinitionsApi; -import org.jclouds.azurecompute.arm.features.MetricsApi; -import org.jclouds.azurecompute.arm.features.NetworkInterfaceCardApi; -import org.jclouds.azurecompute.arm.features.NetworkSecurityGroupApi; -import org.jclouds.azurecompute.arm.features.NetworkSecurityRuleApi; -import org.jclouds.azurecompute.arm.features.OSImageApi; -import org.jclouds.azurecompute.arm.features.PublicIPAddressApi; -import org.jclouds.azurecompute.arm.features.ResourceGroupApi; -import org.jclouds.azurecompute.arm.features.ResourceProviderApi; -import org.jclouds.azurecompute.arm.features.StorageAccountApi; -import org.jclouds.azurecompute.arm.features.SubnetApi; -import org.jclouds.azurecompute.arm.features.VMSizeApi; -import org.jclouds.azurecompute.arm.features.VaultApi; -import org.jclouds.azurecompute.arm.features.VirtualMachineApi; -import org.jclouds.azurecompute.arm.features.VirtualMachineScaleSetApi; -import org.jclouds.azurecompute.arm.features.VirtualNetworkApi; -import org.jclouds.rest.annotations.Delegate; - -import com.google.common.base.Supplier; -import com.google.inject.Provides; - -/** - * The Azure Resource Manager API is a REST API for managing your services and deployments. - * <p> - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn790568.aspx" >doc</a> - */ -public interface AzureComputeApi extends Closeable { - - /** - * The Azure Resource Manager API includes operations for managing resource groups in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn790546.aspx">docs</a> - */ - @Delegate - ResourceGroupApi getResourceGroupApi(); - - /** - * Provides access to the Job tracking API. - */ - @Delegate - JobApi getJobApi(); - - /** - * This Azure Resource Manager API provides all of the locations that are available for resource providers - * - * @see <a href="https://msdn.microsoft.com/en-US/library/azure/dn790540.aspx">docs</a> - */ - @Delegate - LocationApi getLocationApi(); - - /** - * The Azure Resource Manager API includes operations for managing the storage accounts in your subscription. - * - * @see <https://msdn.microsoft.com/en-us/library/mt163683.aspx">docs</a> - */ - @Delegate - StorageAccountApi getStorageAccountApi(@PathParam("resourceGroup") String resourceGroup); - - /** - * The Subnet API includes operations for managing the subnets in your virtual network. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163621.aspx">docs</a> - */ - @Delegate - SubnetApi getSubnetApi(@PathParam("resourcegroup") String resourcegroup, - @PathParam("virtualnetwork") String virtualnetwork); - - /** - * The Virtual Network API includes operations for managing the virtual networks in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163661.aspx">docs</a> - */ - @Delegate - VirtualNetworkApi getVirtualNetworkApi(@PathParam("resourcegroup") String resourcegroup); - - - /** - * The Network Interface Card API includes operations for managing the NICs in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/mt163668.aspx">docs</a> - */ - @Delegate - NetworkInterfaceCardApi getNetworkInterfaceCardApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * The Public IP Address API includes operations for managing public ID Addresses for NICs in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163638.aspx">docs</a> - */ - @Delegate - PublicIPAddressApi getPublicIPAddressApi(@PathParam("resourcegroup") String resourcegroup); - - - /** - * The Virtual Machine API includes operations for managing the virtual machines in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163630.aspx">docs</a> - */ - @Delegate - VirtualMachineApi getVirtualMachineApi(@PathParam("resourceGroup") String resourceGroup); - - /** - * The Virtual Machine Scale Set API includes operations for managing the virtual machines in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163630.aspx">docs</a> - */ - @Delegate - VirtualMachineScaleSetApi getVirtualMachineScaleSetApi(@PathParam("resourceGroup") String resourceGroup); - - /** - * This Azure Resource Manager API lists all available virtual machine sizes for a subscription in a given region - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt269440.aspx">docs</a> - */ - @Delegate - VMSizeApi getVMSizeApi(@PathParam("location") String location); - - /** - * The Azure Resource Manager API gets all the OS images in your subscription. - * - * @see <a href="http://msdn.microsoft.com/en-us/library/jj157175">docs</a> - */ - @Delegate - OSImageApi getOSImageApi(@PathParam("location") String location); - - /** - * The Deployment API allows for the management of Azure Resource Manager resources through the use of templates. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn790549.aspx">docs</a> - */ - @Delegate - DeploymentApi getDeploymentApi(@PathParam("resourcegroup") String resourceGroup); - - /** - * The NetworkSecurityGroup API includes operations for managing network security groups within your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163615.aspx">docs</a> - */ - @Delegate - NetworkSecurityGroupApi getNetworkSecurityGroupApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * The NetworkSecurityRule API includes operations for managing network security rules within a network security group. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/mt163580.aspx">docs</a> - */ - @Delegate - NetworkSecurityRuleApi getNetworkSecurityRuleApi(@PathParam("resourcegroup") String resourcegroup, - @PathParam("networksecuritygroup") String networksecuritygroup); - - /** - * The LoadBalancer API includes operations for managing load balancers - * within your subscription. - * - * @see <a href= - * "https://msdn.microsoft.com/en-us/library/azure/mt163574.aspx">docs - * </a> - */ - @Delegate - LoadBalancerApi getLoadBalancerApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * The AvailabilitySet API includes operations for managing availability sets - * within your subscription. - * - * @see <a href= - * "https://docs.microsoft.com/en-us/rest/api/compute/availabilitysets">docs - * </a> - */ - @Delegate - AvailabilitySetApi getAvailabilitySetApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * The Azure Resource Provider API provides information about a resource provider and its supported resource types. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn790534.aspx">docs</a> - */ - @Delegate - ResourceProviderApi getResourceProviderApi(); - - /** - * The ManagedDataDisk API includes operations for managing data disks within your subscription. - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/manageddisks/disks/disks-rest-api">docs</a> - */ - @Delegate - DiskApi getDiskApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * The virtual machine image API includes operations for managing data disks within your subscription. - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/manageddisks/images/images-rest-api">docs</a> - */ - @Delegate - ImageApi getVirtualMachineImageApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * The metrics API includes operations to get insights into entities within your - * subscription. - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/monitor/metrics">docs</a> - */ - @Delegate - MetricsApi getMetricsApi(@PathParam("resourceid") String resourceid); - - /** - * The metric definitions API includes operations to get insights available for entities within your - * subscription. - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions">docs</a> - */ - @Delegate - MetricDefinitionsApi getMetricsDefinitionsApi(@PathParam("resourceid") String resourceid); - - /** - * The Azure Active Directory Graph API provides programmatic access to Azure - * AD through REST API endpoints. - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/graphrbac/">docs</a> - */ - @Delegate - GraphRBACApi getGraphRBACApi(); - - /** - * Managing your key vaults as well as the keys, secrets, and certificates within your key vaults can be - * accomplished through a REST interface. - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/keyvault/">docs</a> - */ - @Delegate - VaultApi getVaultApi(@PathParam("resourcegroup") String resourcegroup); - - /** - * Returns the information about the current service principal. - */ - @Provides - Supplier<ServicePrincipal> getServicePrincipal(); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java deleted file mode 100644 index c85beb9..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureComputeProviderMetadata.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm; - -import static org.jclouds.Constants.PROPERTY_MAX_RATE_LIMIT_WAIT; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.API_VERSION_PREFIX; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_SUBNET_ADDRESS_PREFIX; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.DEFAULT_VNET_ADDRESS_SPACE_PREFIX; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.IMAGE_PUBLISHERS; -import static org.jclouds.azurecompute.arm.config.AzureComputeProperties.OPERATION_TIMEOUT; -import static org.jclouds.compute.config.ComputeServiceProperties.IMAGE_AUTHENTICATE_SUDO; -import static org.jclouds.compute.config.ComputeServiceProperties.IMAGE_LOGIN_USER; -import static org.jclouds.compute.config.ComputeServiceProperties.POLL_INITIAL_PERIOD; -import static org.jclouds.compute.config.ComputeServiceProperties.POLL_MAX_PERIOD; -import static org.jclouds.compute.config.ComputeServiceProperties.RESOURCENAME_DELIMITER; -import static org.jclouds.compute.config.ComputeServiceProperties.RESOURCENAME_PREFIX; -import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; -import static org.jclouds.oauth.v2.config.CredentialType.CLIENT_CREDENTIALS_SECRET; -import static org.jclouds.oauth.v2.config.OAuthProperties.CREDENTIAL_TYPE; -import static org.jclouds.oauth.v2.config.OAuthProperties.RESOURCE; - -import java.net.URI; -import java.util.Properties; - -import org.jclouds.azurecompute.arm.domain.Region; -import org.jclouds.azurecompute.arm.features.AvailabilitySetApi; -import org.jclouds.azurecompute.arm.features.DeploymentApi; -import org.jclouds.azurecompute.arm.features.DiskApi; -import org.jclouds.azurecompute.arm.features.GraphRBACApi; -import org.jclouds.azurecompute.arm.features.ImageApi; -import org.jclouds.azurecompute.arm.features.LoadBalancerApi; -import org.jclouds.azurecompute.arm.features.LocationApi; -import org.jclouds.azurecompute.arm.features.MetricDefinitionsApi; -import org.jclouds.azurecompute.arm.features.MetricsApi; -import org.jclouds.azurecompute.arm.features.NetworkInterfaceCardApi; -import org.jclouds.azurecompute.arm.features.NetworkSecurityGroupApi; -import org.jclouds.azurecompute.arm.features.NetworkSecurityRuleApi; -import org.jclouds.azurecompute.arm.features.OSImageApi; -import org.jclouds.azurecompute.arm.features.PublicIPAddressApi; -import org.jclouds.azurecompute.arm.features.ResourceGroupApi; -import org.jclouds.azurecompute.arm.features.ResourceProviderApi; -import org.jclouds.azurecompute.arm.features.StorageAccountApi; -import org.jclouds.azurecompute.arm.features.SubnetApi; -import org.jclouds.azurecompute.arm.features.VMSizeApi; -import org.jclouds.azurecompute.arm.features.VaultApi; -import org.jclouds.azurecompute.arm.features.VirtualMachineApi; -import org.jclouds.azurecompute.arm.features.VirtualMachineScaleSetApi; -import org.jclouds.azurecompute.arm.features.VirtualNetworkApi; -import org.jclouds.providers.ProviderMetadata; -import org.jclouds.providers.internal.BaseProviderMetadata; - -import com.google.auto.service.AutoService; - -@AutoService(ProviderMetadata.class) -public class AzureComputeProviderMetadata extends BaseProviderMetadata { - - public static Builder builder() { - return new Builder(); - } - - @Override - public Builder toBuilder() { - return builder().fromProviderMetadata(this); - } - - public AzureComputeProviderMetadata() { - super(builder()); - } - - public static Properties defaultProperties() { - final Properties properties = AzureManagementApiMetadata.defaultProperties(); - properties.put(POLL_INITIAL_PERIOD, 1000); - properties.put(POLL_MAX_PERIOD, 15000); - properties.put(OPERATION_TIMEOUT, 46000000); - properties.put(TIMEOUT_NODE_TERMINATED, 60 * 10 * 1000); - // Default max wait in rate limit: 5m30s - properties.put(PROPERTY_MAX_RATE_LIMIT_WAIT, 330000); - properties.put(RESOURCE, "https://management.azure.com/"); - properties.put(CREDENTIAL_TYPE, CLIENT_CREDENTIALS_SECRET.toString()); - // Set a default Oauth endpoint for Azure, fill in the tenantId based on the value supplied - properties.put("oauth.endpoint", "https://login.microsoft.com/${azurecompute-arm.tenantId}/oauth2/token"); - properties.put(DEFAULT_VNET_ADDRESS_SPACE_PREFIX, "10.0.0.0/16"); - properties.put(DEFAULT_SUBNET_ADDRESS_PREFIX, "10.0.0.0/24"); - properties.put(RESOURCENAME_PREFIX, "jclouds"); - properties.put(RESOURCENAME_DELIMITER, "-"); - properties.put(IMAGE_PUBLISHERS, "Canonical,RedHat"); - // Default credentials for all images, Azure doesn't accept root, admin; generate the password on the fly - properties.put(IMAGE_LOGIN_USER, "jclouds"); - // Azure allows for passwordless sudo only when using a public key to login to the machine - properties.put(IMAGE_AUTHENTICATE_SUDO, "true"); - properties.put(TEMPLATE, "imageNameMatches=UbuntuServer,osVersionMatches=1[456]\\.[01][04](\\.[0-9])?-LTS"); - // Api versions used in each API - properties.put(API_VERSION_PREFIX + DeploymentApi.class.getSimpleName(), "2016-02-01"); - properties.put(API_VERSION_PREFIX + LocationApi.class.getSimpleName(), "2015-11-01"); - properties.put(API_VERSION_PREFIX + NetworkInterfaceCardApi.class.getSimpleName(), "2017-03-01"); - properties.put(API_VERSION_PREFIX + NetworkSecurityGroupApi.class.getSimpleName(), "2016-03-30"); - properties.put(API_VERSION_PREFIX + NetworkSecurityRuleApi.class.getSimpleName(), "2016-03-30"); - properties.put(API_VERSION_PREFIX + OSImageApi.class.getSimpleName(), "2015-06-15"); - properties.put(API_VERSION_PREFIX + PublicIPAddressApi.class.getSimpleName(), "2015-06-15"); - properties.put(API_VERSION_PREFIX + ResourceGroupApi.class.getSimpleName(), "2015-01-01"); - properties.put(API_VERSION_PREFIX + ResourceProviderApi.class.getSimpleName(), "2015-01-01"); - properties.put(API_VERSION_PREFIX + StorageAccountApi.class.getSimpleName(), "2015-06-15"); - properties.put(API_VERSION_PREFIX + SubnetApi.class.getSimpleName(), "2017-03-01"); - properties.put(API_VERSION_PREFIX + VirtualNetworkApi.class.getSimpleName(), "2015-06-15"); - properties.put(API_VERSION_PREFIX + VMSizeApi.class.getSimpleName(), "2015-06-15"); - properties.put(API_VERSION_PREFIX + VirtualMachineApi.class.getSimpleName(), "2016-04-30-preview"); - properties.put(API_VERSION_PREFIX + LoadBalancerApi.class.getSimpleName(), "2016-03-30"); - properties.put(API_VERSION_PREFIX + AvailabilitySetApi.class.getSimpleName(), "2016-04-30-preview"); - properties.put(API_VERSION_PREFIX + DiskApi.class.getSimpleName(), "2017-03-30"); - properties.put(API_VERSION_PREFIX + ImageApi.class.getSimpleName(), "2016-04-30-preview"); - properties.put(API_VERSION_PREFIX + MetricDefinitionsApi.class.getSimpleName(), "2017-05-01-preview"); - properties.put(API_VERSION_PREFIX + MetricsApi.class.getSimpleName(), "2016-09-01"); - properties.put(API_VERSION_PREFIX + VirtualMachineScaleSetApi.class.getSimpleName(), "2017-03-30"); - properties.put(API_VERSION_PREFIX + GraphRBACApi.class.getSimpleName(), "1.6"); - properties.put(API_VERSION_PREFIX + VaultApi.class.getSimpleName(), "2016-10-01"); - - return properties; - } - - public AzureComputeProviderMetadata(final Builder builder) { - super(builder); - } - - public static class Builder extends BaseProviderMetadata.Builder { - - protected Builder() { - super(); - id("azurecompute-arm") - .name("Azure Resource Management") - .apiMetadata(new AzureManagementApiMetadata()) - .endpoint("https://management.azure.com/subscriptions/${azurecompute-arm.subscriptionId}") - .homepage(URI.create("https://www.windowsazure.com/")) - .console(URI.create("https://windows.azure.com/default.aspx")) - .linkedServices("azureblob") - .iso3166Codes(Region.iso3166Codes()) - .defaultProperties(AzureComputeProviderMetadata.defaultProperties()); - } - - @Override - public AzureComputeProviderMetadata build() { - return new AzureComputeProviderMetadata(this); - } - - @Override - public Builder fromProviderMetadata(final ProviderMetadata providerMetadata) { - super.fromProviderMetadata(providerMetadata); - return this; - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java deleted file mode 100644 index 56cb788..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/AzureManagementApiMetadata.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm; - -import static org.jclouds.reflect.Reflection2.typeToken; - -import java.net.URI; -import java.util.Properties; - -import org.jclouds.apis.ApiMetadata; -import org.jclouds.azurecompute.arm.compute.config.AzureComputeServiceContextModule; -import org.jclouds.azurecompute.arm.compute.config.AzurePredicatesModule; -import org.jclouds.azurecompute.arm.config.AzureComputeHttpApiModule; -import org.jclouds.azurecompute.arm.config.AzureComputeParserModule; -import org.jclouds.azurecompute.arm.config.AzureComputeRateLimitModule; -import org.jclouds.compute.ComputeServiceContext; -import org.jclouds.http.okhttp.config.OkHttpCommandExecutorServiceModule; -import org.jclouds.oauth.v2.config.OAuthModule; -import org.jclouds.rest.internal.BaseHttpApiMetadata; - -import com.google.common.collect.ImmutableSet; -import com.google.inject.Module; - -/** - * Implementation of {@link ApiMetadata} for Microsoft Azure Resource Manager REST API - */ -public class AzureManagementApiMetadata extends BaseHttpApiMetadata<AzureComputeApi> { - - @Override - public Builder toBuilder() { - return new Builder().fromApiMetadata(this); - } - - public static Builder builder() { - return new Builder(); - } - - public AzureManagementApiMetadata() { - this(builder()); - } - - protected AzureManagementApiMetadata(final Builder builder) { - super(builder); - } - - public static Properties defaultProperties() { - final Properties properties = BaseHttpApiMetadata.defaultProperties(); - return properties; - } - - public static class Builder extends BaseHttpApiMetadata.Builder<AzureComputeApi, Builder> { - - protected Builder() { - super(); - - id("azurecompute-arm") - .name("Microsoft Azure Resource Manager REST API") - .identityName("Azure Service Principal Application Id") - .credentialName("Azure Service Principal Application Password") - .endpointName("Resource Manager Endpoint ending in your Subscription Id") - .documentation(URI.create("https://msdn.microsoft.com/en-us/library/azure/dn790568.aspx")) - .defaultProperties(AzureManagementApiMetadata.defaultProperties()) - .view(typeToken(ComputeServiceContext.class)) - .defaultModules(ImmutableSet.<Class<? extends Module>>builder() - .add(OAuthModule.class) - .add(OkHttpCommandExecutorServiceModule.class) - .add(AzureComputeParserModule.class) - .add(AzureComputeHttpApiModule.class) - .add(AzureComputeServiceContextModule.class) - .add(AzurePredicatesModule.class) - .add(AzureComputeRateLimitModule.class) - .build()); - } - - @Override - public AzureManagementApiMetadata build() { - return new AzureManagementApiMetadata(this); - } - - @Override - protected Builder self() { - return this; - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeService.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeService.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeService.java deleted file mode 100644 index e676460..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/compute/AzureComputeService.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.compute; - -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.concurrent.atomic.AtomicReference; - -import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Provider; -import javax.inject.Singleton; - -import org.jclouds.Constants; -import org.jclouds.azurecompute.arm.compute.domain.ResourceGroupAndName; -import org.jclouds.azurecompute.arm.compute.strategy.CleanupResources; -import org.jclouds.collect.Memoized; -import org.jclouds.compute.ComputeServiceContext; -import org.jclouds.compute.callables.RunScriptOnNode; -import org.jclouds.compute.domain.Hardware; -import org.jclouds.compute.domain.Image; -import org.jclouds.compute.domain.NodeMetadata; -import org.jclouds.compute.domain.TemplateBuilder; -import org.jclouds.compute.extensions.ImageExtension; -import org.jclouds.compute.extensions.SecurityGroupExtension; -import org.jclouds.compute.internal.BaseComputeService; -import org.jclouds.compute.internal.PersistNodeCredentials; -import org.jclouds.compute.options.TemplateOptions; -import org.jclouds.compute.reference.ComputeServiceConstants.Timeouts; -import org.jclouds.compute.strategy.CreateNodesInGroupThenAddToSet; -import org.jclouds.compute.strategy.DestroyNodeStrategy; -import org.jclouds.compute.strategy.GetImageStrategy; -import org.jclouds.compute.strategy.GetNodeMetadataStrategy; -import org.jclouds.compute.strategy.InitializeRunScriptOnNodeOrPlaceInBadMap; -import org.jclouds.compute.strategy.ListNodesStrategy; -import org.jclouds.compute.strategy.RebootNodeStrategy; -import org.jclouds.compute.strategy.ResumeNodeStrategy; -import org.jclouds.compute.strategy.SuspendNodeStrategy; -import org.jclouds.domain.Credentials; -import org.jclouds.domain.Location; -import org.jclouds.scriptbuilder.functions.InitAdminAccess; - -import com.google.common.base.Optional; -import com.google.common.base.Predicate; -import com.google.common.base.Supplier; -import com.google.common.collect.ImmutableMultimap; -import com.google.common.collect.ImmutableSet; -import com.google.common.util.concurrent.ListeningExecutorService; - -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_RUNNING; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_SUSPENDED; -import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; - -@Singleton -public class AzureComputeService extends BaseComputeService { - private final CleanupResources cleanupResources; - - @Inject - protected AzureComputeService(ComputeServiceContext context, Map<String, Credentials> credentialStore, - @Memoized Supplier<Set<? extends Image>> images, @Memoized Supplier<Set<? extends Hardware>> sizes, - @Memoized Supplier<Set<? extends Location>> locations, ListNodesStrategy listNodesStrategy, - GetImageStrategy getImageStrategy, GetNodeMetadataStrategy getNodeMetadataStrategy, - CreateNodesInGroupThenAddToSet runNodesAndAddToSetStrategy, RebootNodeStrategy rebootNodeStrategy, - DestroyNodeStrategy destroyNodeStrategy, ResumeNodeStrategy startNodeStrategy, - SuspendNodeStrategy stopNodeStrategy, Provider<TemplateBuilder> templateBuilderProvider, - @Named("DEFAULT") Provider<TemplateOptions> templateOptionsProvider, - @Named(TIMEOUT_NODE_RUNNING) Predicate<AtomicReference<NodeMetadata>> nodeRunning, - @Named(TIMEOUT_NODE_TERMINATED) Predicate<AtomicReference<NodeMetadata>> nodeTerminated, - @Named(TIMEOUT_NODE_SUSPENDED) Predicate<AtomicReference<NodeMetadata>> nodeSuspended, - InitializeRunScriptOnNodeOrPlaceInBadMap.Factory initScriptRunnerFactory, - RunScriptOnNode.Factory runScriptOnNodeFactory, InitAdminAccess initAdminAccess, - PersistNodeCredentials persistNodeCredentials, Timeouts timeouts, - @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor, - CleanupResources cleanupResources, Optional<ImageExtension> imageExtension, - Optional<SecurityGroupExtension> securityGroupExtension) { - super(context, credentialStore, images, sizes, locations, listNodesStrategy, getImageStrategy, - getNodeMetadataStrategy, runNodesAndAddToSetStrategy, rebootNodeStrategy, destroyNodeStrategy, - startNodeStrategy, stopNodeStrategy, templateBuilderProvider, templateOptionsProvider, nodeRunning, - nodeTerminated, nodeSuspended, initScriptRunnerFactory, initAdminAccess, runScriptOnNodeFactory, - persistNodeCredentials, timeouts, userExecutor, imageExtension, securityGroupExtension); - this.cleanupResources = cleanupResources; - } - - @Override - protected void cleanUpIncidentalResourcesOfDeadNodes(Set<? extends NodeMetadata> deadNodes) { - ImmutableMultimap.Builder<String, String> regionGroups = ImmutableMultimap.builder(); - ImmutableSet.Builder<String> resourceGroups = ImmutableSet.builder(); - - for (NodeMetadata deadNode : deadNodes) { - String resourceGroupName = ResourceGroupAndName.fromSlashEncoded(deadNode.getId()).resourceGroup(); - resourceGroups.add(resourceGroupName); - - if (deadNode.getGroup() != null) { - regionGroups.put(resourceGroupName, deadNode.getGroup()); - } - - try { - cleanupResources.cleanupNode(deadNode.getId()); - } catch (Exception ex) { - logger.warn(ex, "Error cleaning up resources for node %s", deadNode); - } - } - - for (Entry<String, String> regionGroup : regionGroups.build().entries()) { - cleanupResources.cleanupSecurityGroupIfOrphaned(regionGroup.getKey(), regionGroup.getValue()); - } - - for (String resourceGroup : resourceGroups.build()) { - cleanupResources.deleteResourceGroupIfEmpty(resourceGroup); - } - } - -}
