JCLOUDS-583: Updates HP Cloud compute provider to work with 13.5 release

This commit is contained in:
Chris Custine 2014-06-03 15:29:56 -06:00 committed by Ignasi Barrera
parent 9b50754c24
commit c857ccc479
6 changed files with 366 additions and 244 deletions

View File

@ -172,7 +172,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))

View File

@ -33,12 +33,9 @@
<properties>
<test.hpcloud-compute.endpoint>https://region-a.geo-1.identity.hpcloudsvc.com:35357/v2.0/</test.hpcloud-compute.endpoint>
<test.hpcloud-compute.api-version>1.1</test.hpcloud-compute.api-version>
<test.hpcloud-compute.build-version />
<!--
Identity must be tenantName:userName. Note that the following
credentials are the HP Cloud username and password, not the access
key id and secret key.
Identity must be "tenantName:accessKey". Credential is "secretKey"
-->
<test.hpcloud-compute.identity>FIXME_IDENTITY</test.hpcloud-compute.identity>
<test.hpcloud-compute.credential>FIXME_CREDENTIAL</test.hpcloud-compute.credential>

View File

@ -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;
@ -66,9 +68,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;
}
@ -78,6 +83,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.<Class<? extends Module>>builder()
@ -89,9 +97,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());
}

View File

@ -34,8 +34,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() {
@ -44,7 +44,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();
@ -53,7 +53,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"));
}

View File

@ -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;
@ -47,12 +48,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;
}
@ -67,17 +69,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<String> getIso3166Codes() {
return ImmutableSet.<String> of("US-NV");
return ImmutableSet.<String> of("US-NV", "US-VA");
}
}

View File

@ -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"
}
]
}
]
}}
}}