From bfc000b171c97f307fa3ae39e5b658b1184c9a62 Mon Sep 17 00:00:00 2001 From: Chris Custine Date: Tue, 3 Jun 2014 15:29:56 -0600 Subject: [PATCH] JCLOUDS-583: Updates HP Cloud compute provider to work with 13.5 release --- .../internal/BaseComputeServiceLiveTest.java | 2 +- providers/hpcloud-compute/pom.xml | 5 +- .../HPCloudComputeProviderMetadata.java | 14 +- ...loudComputeProviderMetadataExpectTest.java | 8 +- ...HPCloudComputeTemplateBuilderLiveTest.java | 20 +- .../src/test/resources/access_hpcloud.json | 561 +++++++++++------- 6 files changed, 366 insertions(+), 244 deletions(-) diff --git a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java index 478f0af790..a6f064bf3d 100644 --- a/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java +++ b/compute/src/test/java/org/jclouds/compute/internal/BaseComputeServiceLiveTest.java @@ -176,7 +176,7 @@ public abstract class BaseComputeServiceLiveTest extends BaseComputeServiceConte ComputeServiceContext context = null; try { Properties overrides = setupProperties(); - overrides.setProperty(provider + ".identity", "MOMMA"); + overrides.setProperty(provider + ".identity", "MOM:MA"); overrides.setProperty(provider + ".credential", "MIA"); context = newBuilder() .modules(ImmutableSet.of(getLoggingModule(), credentialStoreModule)) diff --git a/providers/hpcloud-compute/pom.xml b/providers/hpcloud-compute/pom.xml index 199c709b42..083559c32f 100644 --- a/providers/hpcloud-compute/pom.xml +++ b/providers/hpcloud-compute/pom.xml @@ -33,12 +33,9 @@ https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/ - 1.1 FIXME_IDENTITY FIXME_CREDENTIAL diff --git a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java index 34b9bfa940..0af3ff9041 100644 --- a/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java +++ b/providers/hpcloud-compute/src/main/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadata.java @@ -18,6 +18,7 @@ package org.jclouds.hpcloud.compute; import static org.jclouds.compute.config.ComputeServiceProperties.TEMPLATE; import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_NODE_TERMINATED; +import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.CREDENTIAL_TYPE; import static org.jclouds.openstack.keystone.v2_0.config.KeystoneProperties.REQUIRES_TENANT; import static org.jclouds.openstack.nova.v2_0.config.NovaProperties.AUTO_ALLOCATE_FLOATING_IPS; import static org.jclouds.openstack.nova.v2_0.config.NovaProperties.AUTO_GENERATE_KEYPAIRS; @@ -26,6 +27,7 @@ import java.net.URI; import java.util.Properties; import org.jclouds.hpcloud.compute.config.HPCloudComputeServiceContextModule; +import org.jclouds.openstack.keystone.v2_0.config.CredentialTypes; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule; import org.jclouds.openstack.keystone.v2_0.config.MappedAuthenticationApiModule; import org.jclouds.openstack.keystone.v2_0.config.KeystoneAuthenticationModule.ZoneModule; @@ -68,9 +70,12 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata { properties.setProperty(TIMEOUT_NODE_TERMINATED, 60 * 1000 + ""); properties.setProperty(REQUIRES_TENANT, "true"); + properties.setProperty(CREDENTIAL_TYPE, CredentialTypes.API_ACCESS_KEY_CREDENTIALS); + properties.setProperty(AUTO_ALLOCATE_FLOATING_IPS, "true"); properties.setProperty(AUTO_GENERATE_KEYPAIRS, "true"); - properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[012].[01][04],os64Bit=true,locationId=az-2.region-a.geo-1"); + properties.setProperty(TEMPLATE, "osFamily=UBUNTU,osVersionMatches=1[24].[01][04]," + + "imageNameMatches=.*LTS.*,os64Bit=true,locationId=region-a.geo-1"); return properties; } @@ -80,6 +85,9 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata { id("hpcloud-compute") .name("HP Cloud Compute Services") .apiMetadata(new NovaApiMetadata().toBuilder() + .identityName("${tenantName}:${accessKey}") + .credentialName("${secretKey}") + .version("2") .endpointName("identity service url ending in /v2.0/") .defaultEndpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/") .defaultModules(ImmutableSet.>builder() @@ -91,9 +99,9 @@ public class HPCloudComputeProviderMetadata extends BaseProviderMetadata { .add(HPCloudComputeServiceContextModule.class).build()) .build()) .homepage(URI.create("http://hpcloud.com")) - .console(URI.create("https://manage.hpcloud.com/compute")) + .console(URI.create("https://horizon.hpcloud.com/")) .linkedServices("hpcloud-compute", "hpcloud-objectstorage") - .iso3166Codes("US-NV") + .iso3166Codes("US-NV", "US-VA") .endpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/") .defaultProperties(HPCloudComputeProviderMetadata.defaultProperties()); } diff --git a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java index cc05b09781..e9d60f9d60 100644 --- a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java +++ b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/HPCloudComputeProviderMetadataExpectTest.java @@ -36,8 +36,8 @@ public class HPCloudComputeProviderMetadataExpectTest extends BaseNovaApiExpectT public HPCloudComputeProviderMetadataExpectTest() { this.provider = "hpcloud-compute"; - this.identity = "tenant:username"; - this.credential = "password"; + this.identity = "tenant:accesskey"; + this.credential = "secret"; } public void testCanGetConfiguredZones() { @@ -46,7 +46,7 @@ public class HPCloudComputeProviderMetadataExpectTest extends BaseNovaApiExpectT .endpoint("https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/tokens") .addHeader("Accept", "application/json") .payload(payloadFromStringWithContentType( - "{\"auth\":{\"passwordCredentials\":{\"username\":\"username\",\"password\":\"password\"},\"tenantName\":\"tenant\"}}" + "{\"auth\":{\"apiAccessKeyCredentials\":{\"accessKey\":\"accesskey\",\"secretKey\":\"secret\"},\"tenantName\":\"tenant\"}}" , "application/json")).build(); @@ -55,7 +55,7 @@ public class HPCloudComputeProviderMetadataExpectTest extends BaseNovaApiExpectT NovaApi whenNovaRegionExists = requestSendsResponse(authenticate, authenticationResponse); - assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("az-3.region-a.geo-1", "az-2.region-a.geo-1", "az-1.region-a.geo-1")); + assertEquals(whenNovaRegionExists.getConfiguredZones(), ImmutableSet.of("region-a.geo-1", "region-b.geo-1")); } diff --git a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/compute/HPCloudComputeTemplateBuilderLiveTest.java b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/compute/HPCloudComputeTemplateBuilderLiveTest.java index f5a807a891..c06fcb34f6 100644 --- a/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/compute/HPCloudComputeTemplateBuilderLiveTest.java +++ b/providers/hpcloud-compute/src/test/java/org/jclouds/hpcloud/compute/compute/HPCloudComputeTemplateBuilderLiveTest.java @@ -18,6 +18,7 @@ package org.jclouds.hpcloud.compute.compute; import static org.jclouds.compute.util.ComputeServiceUtils.getCores; import static org.testng.Assert.assertEquals; +import static org.testng.Assert.assertTrue; import java.util.Set; @@ -51,12 +52,13 @@ public class HPCloudComputeTemplateBuilderLiveTest extends BaseTemplateBuilderLi public boolean apply(OsFamilyVersion64Bit input) { switch (input.family) { case UBUNTU: - return (input.version.equals("") || input.version.equals("12.04") || input.version.matches("^1[01].*")) && input.is64Bit; + return (input.version.equals("") || input.version.matches("(10.04)|(11.10)|(12.04)|(12.10)|(13.04)|(13.10)")) && input.is64Bit; case DEBIAN: - return input.is64Bit && !input.version.equals("5.0"); + return input.is64Bit && !input.version.matches("(5.[0-9])|(6.[0-9])|(7.[0-9])"); case CENTOS: - return (input.version.equals("") || input.version.equals("5.6") || input.version.equals("6.0")) - && input.is64Bit; + return (input.version.equals("") || input.version.matches("(5.0)|(5.8)|(6.3)|(6.5)")) && input.is64Bit; + case WINDOWS: + return input.version.equals("") || input.version.equals("2008") || (input.version.equals("2008 R2") && input.is64Bit); default: return false; } @@ -71,17 +73,17 @@ public class HPCloudComputeTemplateBuilderLiveTest extends BaseTemplateBuilderLi assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true); assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "12.04"); assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU); - assertEquals(defaultTemplate.getImage().getName(), "Ubuntu Precise 12.04 LTS Server 64-bit 20120424"); + assertTrue(defaultTemplate.getImage().getName().startsWith("Ubuntu Server 12.04")); assertEquals(defaultTemplate.getImage().getDefaultCredentials().getUser(), "ubuntu"); - assertEquals(defaultTemplate.getLocation().getId(), "az-2.region-a.geo-1"); - assertEquals(defaultTemplate.getImage().getLocation().getId(), "az-2.region-a.geo-1"); - assertEquals(defaultTemplate.getHardware().getLocation().getId(), "az-2.region-a.geo-1"); + assertEquals(defaultTemplate.getLocation().getId(), "region-a.geo-1"); + assertEquals(defaultTemplate.getImage().getLocation().getId(), "region-a.geo-1"); + assertEquals(defaultTemplate.getHardware().getLocation().getId(), "region-a.geo-1"); assertEquals(defaultTemplate.getOptions().as(NovaTemplateOptions.class).shouldAutoAssignFloatingIp(), true); assertEquals(getCores(defaultTemplate.getHardware()), 1.0d); } @Override protected Set getIso3166Codes() { - return ImmutableSet. of("US-NV"); + return ImmutableSet. of("US-NV", "US-VA"); } } diff --git a/providers/hpcloud-compute/src/test/resources/access_hpcloud.json b/providers/hpcloud-compute/src/test/resources/access_hpcloud.json index d444d93a31..ad156f38ae 100644 --- a/providers/hpcloud-compute/src/test/resources/access_hpcloud.json +++ b/providers/hpcloud-compute/src/test/resources/access_hpcloud.json @@ -1,225 +1,340 @@ {"access": { - "token": { - "expires": "2012-09-30T12:56:12.481Z", - "id": "HPAuth_e2b86593f73366704ed4f9e4441a2467f1a67568d5363e561a72f36a96da3b4a", - "tenant": { - "id": "37936628937291", - "name": "adrian@jclouds.org" - } - }, - "user": { - "id": "54297837463082", - "name": "adrian@jclouds.org", - "roles": [ - { - "id": "00000000004016", - "serviceId": "120", - "name": "netadmin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004025", - "serviceId": "120", - "name": "sysadmin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004014", - "serviceId": "150", - "name": "cdn-admin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004013", - "serviceId": "130", - "name": "block-admin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004022", - "serviceId": "110", - "name": "Admin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004016", - "serviceId": "120", - "name": "netadmin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004024", - "serviceId": "140", - "name": "user", - "tenantId": "37936628937291" - }, - { - "id": "00000000004013", - "serviceId": "130", - "name": "block-admin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004003", - "serviceId": "100", - "name": "domainadmin" - }, - { - "id": "00000000004025", - "serviceId": "120", - "name": "sysadmin", - "tenantId": "37936628937291" - }, - { - "id": "00000000004024", - "serviceId": "140", - "name": "user", - "tenantId": "37936628937291" - }, - { - "id": "00000000004004", - "serviceId": "100", - "name": "domainuser" - } + "token": { + "expires": "2014-05-07T08:38:39.421Z", + "id": "HPAuth10_xxxx", + "tenant": { + "id": "123456789", + "name": "test-project1" + } + }, + "user": { + "id": "10951776012508", + "name": "ccustine", + "otherAttributes": { + "domainStatus": "enabled", + "domainStatusCode": "00" + }, + "roles": [ + { + "id": "00000000004004", + "serviceId": "100", + "name": "domainuser" + }, + { + "id": "00000000004016", + "serviceId": "120", + "name": "netadmin", + "tenantId": "123456789" + }, + { + "id": "00000000004014", + "serviceId": "150", + "name": "cdn-admin", + "tenantId": "123456789" + }, + { + "id": "00000000004022", + "serviceId": "110", + "name": "Admin", + "tenantId": "123456789" + }, + { + "id": "00000000004032", + "serviceId": "160", + "name": "mysql-user", + "tenantId": "123456789" + }, + { + "id": "00000000004024", + "serviceId": "140", + "name": "user", + "tenantId": "123456789" + }, + { + "id": "00000000004013", + "serviceId": "130", + "name": "block-admin", + "tenantId": "123456789" + }, + { + "id": "00000000004025", + "serviceId": "120", + "name": "sysadmin", + "tenantId": "123456789" + }, + { + "id": "91643347410087", + "serviceId": "240", + "name": "dns-admin", + "tenantId": "123456789" + }, + { + "id": "00000000004003", + "serviceId": "100", + "name": "domainadmin" + }, + { + "id": "10419409370304", + "serviceId": "170", + "name": "net-admin", + "tenantId": "123456789" + } + ] + }, + "serviceCatalog": [ + { + "name": "Usage Reporting", + "type": "metering", + "endpoints": [ + { + "publicURL": "", + "region": "region-a.geo-1", + "versionId": "2", + "versionInfo": "https:\/\/region-a.geo-1.usage-reporting-internal.hpcloudsvc.com:8777", + "versionList": "https:\/\/region-a.geo-1.usage-reporting-internal.hpcloudsvc.com:8777" + }, + { + "publicURL": "", + "region": "region-b.geo-1", + "versionId": "2", + "versionInfo": "https:\/\/region-b.geo-1.usage-reporting-internal.hpcloudsvc.com:8777", + "versionList": "https:\/\/region-b.geo-1.usage-reporting-internal.hpcloudsvc.com:8777" + } + ] + }, + { + "name": "Networking", + "type": "network", + "endpoints": [ + { + "tenantId": "123456789", + "publicURL": "", + "publicURL2": "", + "region": "az-1.region-a.geo-1", + "versionId": "", + "versionInfo": "", + "versionList": "" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.network.hpcloudsvc.com", + "publicURL2": "", + "region": "region-a.geo-1", + "versionId": "2.0", + "versionInfo": "https:\/\/region-a.geo-1.network.hpcloudsvc.com", + "versionList": "https:\/\/region-a.geo-1.network.hpcloudsvc.com" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-b.geo-1.network.hpcloudsvc.com", + "publicURL2": "", + "region": "region-b.geo-1", + "versionId": "2.0", + "versionInfo": "https:\/\/region-b.geo-1.network.hpcloudsvc.com", + "versionList": "https:\/\/region-b.geo-1.network.hpcloudsvc.com" + } + ] + }, + { + "name": "Relational DB MySQL", + "type": "database", + "endpoints": [{ + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.database.hpcloudsvc.com\/v1.0\/123456789", + "publicURL2": "", + "region": "region-a.geo-1", + "versionId": "v13.6", + "versionInfo": "https:\/\/region-a.geo-1.database.hpcloudsvc.com\/v1.0", + "versionList": "https:\/\/region-a.geo-1.database.hpcloudsvc.com" + }] + }, + { + "name": "CDN", + "type": "hpext:cdn", + "endpoints": [ + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.cdnmgmt.hpcloudsvc.com\/v1.0\/123456789", + "region": "region-a.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-a.geo-1.cdnmgmt.hpcloudsvc.com\/v1.0\/", + "versionList": "https:\/\/region-a.geo-1.cdnmgmt.hpcloudsvc.com\/" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-b.geo-1.cdnmgmt.hpcloudsvc.com\/v1.0\/123456789", + "region": "region-b.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-b.geo-1.cdnmgmt.hpcloudsvc.com\/v1.0\/", + "versionList": "https:\/\/region-b.geo-1.cdnmgmt.hpcloudsvc.com\/" + } + ] + }, + { + "name": "Object Storage", + "type": "object-store", + "endpoints": [ + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1\/123456789", + "region": "region-a.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1.0\/", + "versionList": "https:\/\/region-a.geo-1.objects.hpcloudsvc.com" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-b.geo-1.objects.hpcloudsvc.com:443\/v1\/123456789", + "region": "region-b.geo-1", + "versionId": "1", + "versionInfo": "https:\/\/region-b.geo-1.objects.hpcloudsvc.com:443\/v1\/", + "versionList": "https:\/\/region-b.geo-1.objects.hpcloudsvc.com:443" + } + ] + }, + { + "name": "Identity", + "type": "identity", + "endpoints": [ + { + "publicURL": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", + "region": "region-a.geo-1", + "versionId": "2.0", + "versionInfo": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", + "versionList": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357" + }, + { + "publicURL": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357\/v3\/", + "region": "region-a.geo-1", + "versionId": "3.0", + "versionInfo": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357\/v3\/", + "versionList": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357" + }, + { + "publicURL": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", + "region": "region-b.geo-1", + "versionId": "2.0", + "versionInfo": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", + "versionList": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357" + }, + { + "publicURL": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357\/v3\/", + "region": "region-b.geo-1", + "versionId": "3.0", + "versionInfo": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357\/v3\/", + "versionList": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357" + } + ] + }, + { + "name": "Image Management", + "type": "image", + "endpoints": [ + { + "tenantId": "123456789", + "publicURL": "https:\/\/glance1.uswest.hpcloud.net:9292\/v1.0", + "publicURL2": "", + "region": "az-1.region-a.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/glance1.uswest.hpcloud.net:9292\/v1.0\/", + "versionList": "https:\/\/glance1.uswest.hpcloud.net:9292" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.images.hpcloudsvc.com:443\/v1.0", + "publicURL2": "", + "region": "region-a.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-a.geo-1.images.hpcloudsvc.com:443\/v1.0", + "versionList": "https:\/\/region-a.geo-1.images.hpcloudsvc.com:443" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-b.geo-1.images.hpcloudsvc.com:443\/v1.0", + "publicURL2": "", + "region": "region-b.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-b.geo-1.images.hpcloudsvc.com:443\/v1.0", + "versionList": "https:\/\/region-b.geo-1.images.hpcloudsvc.com:443" + } + ] + }, + { + "name": "DNS", + "type": "hpext:dns", + "endpoints": [{ + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.dns.hpcloudsvc.com\/v1\/", + "publicURL2": "", + "region": "region-a.geo-1", + "versionId": "1", + "versionInfo": "https:\/\/region-a.geo-1.dns.hpcloudsvc.com\/v1\/", + "versionList": "https:\/\/region-a.geo-1.dns.hpcloudsvc.com\/" + }] + }, + { + "name": "Block Storage", + "type": "volume", + "endpoints": [ + { + "tenantId": "123456789", + "publicURL": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/123456789", + "publicURL2": "", + "region": "az-1.region-a.geo-1", + "versionId": "1.1", + "versionInfo": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", + "versionList": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.block.hpcloudsvc.com\/v1\/123456789", + "publicURL2": "", + "region": "region-a.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-a.geo-1.block.hpcloudsvc.com\/v1", + "versionList": "https:\/\/region-a.geo-1.block.hpcloudsvc.com" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-b.geo-1.block.hpcloudsvc.com\/v1\/123456789", + "publicURL2": "", + "region": "region-b.geo-1", + "versionId": "1.0", + "versionInfo": "https:\/\/region-b.geo-1.block.hpcloudsvc.com\/v1", + "versionList": "https:\/\/region-b.geo-1.block.hpcloudsvc.com" + } + ] + }, + { + "name": "Compute", + "type": "compute", + "endpoints": [ + { + "tenantId": "123456789", + "publicURL": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/123456789", + "publicURL2": "https:\/\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\/services\/Cloud", + "region": "az-1.region-a.geo-1", + "versionId": "1.1", + "versionInfo": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", + "versionList": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-a.geo-1.compute.hpcloudsvc.com\/v2\/123456789", + "region": "region-a.geo-1", + "versionId": "2", + "versionInfo": "https:\/\/region-a.geo-1.compute.hpcloudsvc.com\/v2\/", + "versionList": "https:\/\/region-a.geo-1.compute.hpcloudsvc.com" + }, + { + "tenantId": "123456789", + "publicURL": "https:\/\/region-b.geo-1.compute.hpcloudsvc.com\/v2\/123456789", + "region": "region-b.geo-1", + "versionId": "2", + "versionInfo": "https:\/\/region-b.geo-1.compute.hpcloudsvc.com\/v2\/", + "versionList": "https:\/\/region-b.geo-1.compute.hpcloudsvc.com" + } + ] + } ] - }, - "serviceCatalog": [ - { - "name": "CDN", - "type": "hpext:cdn", - "endpoints": [{ - "tenantId": "37936628937291", - "publicURL": "https:\/\/region-a.geo-1.cdnmgmt.hpcloudsvc.com\/v1.0\/AUTH_651c939f-04f0-4fbf-bd50-27f114ccaa15", - "region": "region-a.geo-1", - "versionId": "1.0", - "versionInfo": "https:\/\/region-a.geo-1.cdnmgmt.hpcloudsvc.com\/v1.0\/", - "versionList": "https:\/\/region-a.geo-1.cdnmgmt.hpcloudsvc.com\/" - }] - }, - { - "name": "Object Storage", - "type": "object-store", - "endpoints": [{ - "tenantId": "37936628937291", - "publicURL": "https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1.0\/AUTH_651c939f-04f0-4fbf-bd50-27f114ccaa15", - "region": "region-a.geo-1", - "versionId": "1.0", - "versionInfo": "https:\/\/region-a.geo-1.objects.hpcloudsvc.com\/v1.0\/", - "versionList": "https:\/\/region-a.geo-1.objects.hpcloudsvc.com" - }] - }, - { - "name": "Identity", - "type": "identity", - "endpoints": [ - { - "publicURL": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", - "region": "region-b.geo-1", - "versionId": "2.0", - "versionInfo": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", - "versionList": "https:\/\/region-b.geo-1.identity.hpcloudsvc.com:35357" - }, - { - "publicURL": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", - "region": "region-a.geo-1", - "versionId": "2.0", - "versionInfo": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357\/v2.0\/", - "versionList": "https:\/\/region-a.geo-1.identity.hpcloudsvc.com:35357" - } - ] - }, - { - "name": "Image Management", - "type": "image", - "endpoints": [ - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/glance2.uswest.hpcloud.net:9292\/v1.0", - "region": "az-2.region-a.geo-1", - "versionId": "1.0", - "versionInfo": "https:\/\/glance2.uswest.hpcloud.net:9292\/v1.0\/", - "versionList": "https:\/\/glance2.uswest.hpcloud.net:9292" - }, - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/glance3.uswest.hpcloud.net:9292\/v1.0", - "region": "az-3.region-a.geo-1", - "versionId": "1.0", - "versionInfo": "https:\/\/glance3.uswest.hpcloud.net:9292\/v1.0\/", - "versionList": "https:\/\/glance3.uswest.hpcloud.net:9292" - }, - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/glance1.uswest.hpcloud.net:9292\/v1.0", - "region": "az-1.region-a.geo-1", - "versionId": "1.0", - "versionInfo": "https:\/\/glance1.uswest.hpcloud.net:9292\/v1.0\/", - "versionList": "https:\/\/glance1.uswest.hpcloud.net:9292" - } - ] - }, - { - "name": "Block Storage", - "type": "volume", - "endpoints": [ - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/37936628937291", - "region": "az-1.region-a.geo-1", - "versionId": "1.1", - "versionInfo": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", - "versionList": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com" - }, - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/az-3.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/37936628937291", - "region": "az-3.region-a.geo-1", - "versionId": "1.1", - "versionInfo": "https:\/\/az-3.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", - "versionList": "https:\/\/az-3.region-a.geo-1.compute.hpcloudsvc.com" - }, - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/az-2.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/37936628937291", - "region": "az-2.region-a.geo-1", - "versionId": "1.1", - "versionInfo": "https:\/\/az-2.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", - "versionList": "https:\/\/az-2.region-a.geo-1.compute.hpcloudsvc.com" - } - ] - }, - { - "name": "Compute", - "type": "compute", - "endpoints": [ - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/az-3.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/37936628937291", - "publicURL2": "https:\/\/az-3.region-a.geo-1.ec2-compute.hpcloudsvc.com\/services\/Cloud", - "region": "az-3.region-a.geo-1", - "versionId": "1.1", - "versionInfo": "https:\/\/az-3.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", - "versionList": "https:\/\/az-3.region-a.geo-1.compute.hpcloudsvc.com" - }, - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/az-2.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/37936628937291", - "publicURL2": "https:\/\/az-2.region-a.geo-1.ec2-compute.hpcloudsvc.com\/services\/Cloud", - "region": "az-2.region-a.geo-1", - "versionId": "1.1", - "versionInfo": "https:\/\/az-2.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", - "versionList": "https:\/\/az-2.region-a.geo-1.compute.hpcloudsvc.com" - }, - { - "tenantId": "37936628937291", - "publicURL": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/37936628937291", - "publicURL2": "https:\/\/az-1.region-a.geo-1.ec2-compute.hpcloudsvc.com\/services\/Cloud", - "region": "az-1.region-a.geo-1", - "versionId": "1.1", - "versionInfo": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com\/v1.1\/", - "versionList": "https:\/\/az-1.region-a.geo-1.compute.hpcloudsvc.com" - } - ] - } - ] -}} +}} \ No newline at end of file