Difference between revisions of "API Special Interest Group/Current Design/Service Catalog"
Line 1: | Line 1: | ||
The format of the service catalog needs to be fixed. The de facto standard is currently DevStack. We need to define a proper format for the service catalog. | The format of the service catalog needs to be fixed. The de facto standard is currently DevStack. We need to define a proper format for the service catalog. | ||
− | = | + | = Examples From The Wild = |
− | + | == Rackspace Public Cloud == | |
− | + | <pre><nowiki> | |
+ | { | ||
+ | "access": { | ||
+ | "user": { | ||
+ | "RAX-AUTH:defaultRegion": "DFW", | ||
+ | "name": "useranme", | ||
+ | "roles": [ | ||
+ | { | ||
+ | "name": "checkmate", | ||
+ | "description": "Checkmate Access role", | ||
+ | "id": "10000150" | ||
+ | }, | ||
+ | { | ||
+ | "name": "object-store:default", | ||
+ | "description": "A Role that allows a user access to keystone Service methods", | ||
+ | "id": "5", | ||
+ | "tenantId": "MossoCloudFS_ID" | ||
+ | }, | ||
+ | { | ||
+ | "name": "compute:default", | ||
+ | "description": "A Role that allows a user access to keystone Service methods", | ||
+ | "id": "6", | ||
+ | "tenantId": "TENANT_ID" | ||
+ | }, | ||
+ | { | ||
+ | "name": "identity:user-admin", | ||
+ | "description": "User Admin Role.", | ||
+ | "id": "3" | ||
+ | } | ||
+ | ], | ||
+ | "id": "USER_ID" | ||
+ | }, | ||
+ | "serviceCatalog": [ | ||
+ | { | ||
+ | "type": "rax:object-cdn", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://cdn5.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://cdn4.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://cdn1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://cdn6.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://cdn2.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "ORD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudFilesCDN" | ||
+ | }, | ||
+ | { | ||
+ | "type": "object-store", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "internalURL": "https://snet-storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "publicURL": "https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "publicURL": "https://storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "publicURL": "https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "publicURL": "https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "publicURL": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID", | ||
+ | "tenantId": "MossoCloudFS_ID", | ||
+ | "region": "ORD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudFiles" | ||
+ | }, | ||
+ | { | ||
+ | "type": "volume", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://syd.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://iad.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudBlockStorage" | ||
+ | }, | ||
+ | { | ||
+ | "type": "image", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://iad.images.api.rackspacecloud.com/v2", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.images.api.rackspacecloud.com/v2", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.images.api.rackspacecloud.com/v2", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.images.api.rackspacecloud.com/v2", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://syd.images.api.rackspacecloud.com/v2", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudImages" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:queues", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "internalURL": "https://snet-hkg.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "publicURL": "https://hkg.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-ord.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "publicURL": "https://ord.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-syd.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "publicURL": "https://syd.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-dfw.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "publicURL": "https://dfw.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://snet-iad.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "publicURL": "https://iad.queues.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudQueues" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:bigdata", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://iad.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudBigData" | ||
+ | }, | ||
+ | { | ||
+ | "type": "orchestration", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://hkg.orchestration.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.orchestration.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.orchestration.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://iad.orchestration.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://syd.orchestration.api.rackspacecloud.com/v1/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudOrchestration" | ||
+ | }, | ||
+ | { | ||
+ | "type": "compute", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "versionId": "2", | ||
+ | "versionList": "https://syd.servers.api.rackspacecloud.com/", | ||
+ | "versionInfo": "https://syd.servers.api.rackspacecloud.com/v2", | ||
+ | "publicURL": "https://syd.servers.api.rackspacecloud.com/v2/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "versionId": "2", | ||
+ | "versionList": "https://dfw.servers.api.rackspacecloud.com/", | ||
+ | "versionInfo": "https://dfw.servers.api.rackspacecloud.com/v2", | ||
+ | "publicURL": "https://dfw.servers.api.rackspacecloud.com/v2/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "versionId": "2", | ||
+ | "versionList": "https://iad.servers.api.rackspacecloud.com/", | ||
+ | "versionInfo": "https://iad.servers.api.rackspacecloud.com/v2", | ||
+ | "publicURL": "https://iad.servers.api.rackspacecloud.com/v2/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "versionId": "2", | ||
+ | "versionList": "https://hkg.servers.api.rackspacecloud.com/", | ||
+ | "versionInfo": "https://hkg.servers.api.rackspacecloud.com/v2", | ||
+ | "publicURL": "https://hkg.servers.api.rackspacecloud.com/v2/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "versionId": "2", | ||
+ | "versionList": "https://ord.servers.api.rackspacecloud.com/", | ||
+ | "versionInfo": "https://ord.servers.api.rackspacecloud.com/v2", | ||
+ | "publicURL": "https://ord.servers.api.rackspacecloud.com/v2/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudServersOpenStack" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:autoscale", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://ord.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://iad.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://syd.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "autoscale" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:database", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://syd.databases.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.databases.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.databases.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://iad.databases.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.databases.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudDatabases" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:backup", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://iad.backup.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.backup.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://syd.backup.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.backup.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.backup.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudBackup" | ||
+ | }, | ||
+ | { | ||
+ | "type": "network", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://iad.networks.api.rackspacecloud.com/v2.0", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://lon.networks.api.rackspacecloud.com/v2.0", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "LON" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.networks.api.rackspacecloud.com/v2.0", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://syd.networks.api.rackspacecloud.com/v2.0", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.networks.api.rackspacecloud.com/v2.0", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.networks.api.rackspacecloud.com/v2.0", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudNetworks" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:cloudmetrics", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://global.metrics.api.rackspacecloud.com/v2.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudMetrics" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:load-balancer", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://syd.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://iad.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://ord.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://hkg.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "publicURL": "https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudLoadBalancers" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:feeds", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "internalURL": "https://atom.prod.hkg1.us.ci.rackspace.net/TENANT_ID", | ||
+ | "publicURL": "https://hkg.feeds.api.rackspacecloud.com/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "HKG" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://atom.prod.syd2.us.ci.rackspace.net/TENANT_ID", | ||
+ | "publicURL": "https://syd.feeds.api.rackspacecloud.com/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "SYD" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://atom.prod.iad3.us.ci.rackspace.net/TENANT_ID", | ||
+ | "publicURL": "https://iad.feeds.api.rackspacecloud.com/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "IAD" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://atom.prod.dfw1.us.ci.rackspace.net/TENANT_ID", | ||
+ | "publicURL": "https://dfw.feeds.api.rackspacecloud.com/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "DFW" | ||
+ | }, | ||
+ | { | ||
+ | "internalURL": "https://atom.prod.ord1.us.ci.rackspace.net/TENANT_ID", | ||
+ | "publicURL": "https://ord.feeds.api.rackspacecloud.com/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID", | ||
+ | "region": "ORD" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudFeeds" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:monitor", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://monitoring.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudMonitoring" | ||
+ | }, | ||
+ | { | ||
+ | "type": "rax:dns", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "publicURL": "https://dns.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudDNS" | ||
+ | }, | ||
+ | { | ||
+ | "type": "compute", | ||
+ | "endpoints": [ | ||
+ | { | ||
+ | "versionId": "1.0", | ||
+ | "versionList": "https://servers.api.rackspacecloud.com/", | ||
+ | "versionInfo": "https://servers.api.rackspacecloud.com/v1.0", | ||
+ | "publicURL": "https://servers.api.rackspacecloud.com/v1.0/TENANT_ID", | ||
+ | "tenantId": "TENANT_ID" | ||
+ | } | ||
+ | ], | ||
+ | "name": "cloudServers" | ||
+ | } | ||
+ | ], | ||
+ | "token": { | ||
+ | "RAX-AUTH:authenticatedBy": [ | ||
+ | "PASSWORD" | ||
+ | ], | ||
+ | "tenant": { | ||
+ | "name": "TENANT_ID", | ||
+ | "id": "TENANT_ID" | ||
+ | }, | ||
+ | "expires": "2014-12-11T03:26:57.420Z", | ||
+ | "id": "TOKEN_ID" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </nowiki></pre> | ||
− | + | == HP Public Cloud == | |
− | == | + | == Rackspace Private Cloud == |
− | + | == DevStack == | |
− | |||
− | == | + | == RDO == |
− | Does there need to be a top-level "access" property? | + | == Mirantis == |
+ | |||
+ | |||
+ | = Outstanding Questions = | ||
+ | |||
+ | * How are entry points currently done for all the services? | ||
+ | * How are versions currently done for all the services? | ||
+ | * Why are Name and Type both needed? | ||
+ | * Which of Name and Type are guaranteed to be unique? | ||
+ | * Does there need to be a top-level "access" property? |
Revision as of 22:40, 10 December 2014
The format of the service catalog needs to be fixed. The de facto standard is currently DevStack. We need to define a proper format for the service catalog.
Contents
Examples From The Wild
Rackspace Public Cloud
{ "access": { "user": { "RAX-AUTH:defaultRegion": "DFW", "name": "useranme", "roles": [ { "name": "checkmate", "description": "Checkmate Access role", "id": "10000150" }, { "name": "object-store:default", "description": "A Role that allows a user access to keystone Service methods", "id": "5", "tenantId": "MossoCloudFS_ID" }, { "name": "compute:default", "description": "A Role that allows a user access to keystone Service methods", "id": "6", "tenantId": "TENANT_ID" }, { "name": "identity:user-admin", "description": "User Admin Role.", "id": "3" } ], "id": "USER_ID" }, "serviceCatalog": [ { "type": "rax:object-cdn", "endpoints": [ { "publicURL": "https://cdn5.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "IAD" }, { "publicURL": "https://cdn4.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "SYD" }, { "publicURL": "https://cdn1.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "DFW" }, { "publicURL": "https://cdn6.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "HKG" }, { "publicURL": "https://cdn2.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "ORD" } ], "name": "cloudFilesCDN" }, { "type": "object-store", "endpoints": [ { "internalURL": "https://snet-storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID", "publicURL": "https://storage101.iad3.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "IAD" }, { "internalURL": "https://snet-storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID", "publicURL": "https://storage101.syd2.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "SYD" }, { "internalURL": "https://snet-storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID", "publicURL": "https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "DFW" }, { "internalURL": "https://snet-storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID", "publicURL": "https://storage101.hkg1.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "HKG" }, { "internalURL": "https://snet-storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID", "publicURL": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_ID", "tenantId": "MossoCloudFS_ID", "region": "ORD" } ], "name": "cloudFiles" }, { "type": "volume", "endpoints": [ { "publicURL": "https://syd.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "publicURL": "https://dfw.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://ord.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://iad.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://hkg.blockstorage.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" } ], "name": "cloudBlockStorage" }, { "type": "image", "endpoints": [ { "publicURL": "https://iad.images.api.rackspacecloud.com/v2", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://ord.images.api.rackspacecloud.com/v2", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://hkg.images.api.rackspacecloud.com/v2", "tenantId": "TENANT_ID", "region": "HKG" }, { "publicURL": "https://dfw.images.api.rackspacecloud.com/v2", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://syd.images.api.rackspacecloud.com/v2", "tenantId": "TENANT_ID", "region": "SYD" } ], "name": "cloudImages" }, { "type": "rax:queues", "endpoints": [ { "internalURL": "https://snet-hkg.queues.api.rackspacecloud.com/v1/TENANT_ID", "publicURL": "https://hkg.queues.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "internalURL": "https://snet-ord.queues.api.rackspacecloud.com/v1/TENANT_ID", "publicURL": "https://ord.queues.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" }, { "internalURL": "https://snet-syd.queues.api.rackspacecloud.com/v1/TENANT_ID", "publicURL": "https://syd.queues.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "internalURL": "https://snet-dfw.queues.api.rackspacecloud.com/v1/TENANT_ID", "publicURL": "https://dfw.queues.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "internalURL": "https://snet-iad.queues.api.rackspacecloud.com/v1/TENANT_ID", "publicURL": "https://iad.queues.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" } ], "name": "cloudQueues" }, { "type": "rax:bigdata", "endpoints": [ { "publicURL": "https://iad.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://dfw.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://ord.bigdata.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" } ], "name": "cloudBigData" }, { "type": "orchestration", "endpoints": [ { "publicURL": "https://hkg.orchestration.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "publicURL": "https://dfw.orchestration.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://ord.orchestration.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://iad.orchestration.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://syd.orchestration.api.rackspacecloud.com/v1/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" } ], "name": "cloudOrchestration" }, { "type": "compute", "endpoints": [ { "versionId": "2", "versionList": "https://syd.servers.api.rackspacecloud.com/", "versionInfo": "https://syd.servers.api.rackspacecloud.com/v2", "publicURL": "https://syd.servers.api.rackspacecloud.com/v2/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "versionId": "2", "versionList": "https://dfw.servers.api.rackspacecloud.com/", "versionInfo": "https://dfw.servers.api.rackspacecloud.com/v2", "publicURL": "https://dfw.servers.api.rackspacecloud.com/v2/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "versionId": "2", "versionList": "https://iad.servers.api.rackspacecloud.com/", "versionInfo": "https://iad.servers.api.rackspacecloud.com/v2", "publicURL": "https://iad.servers.api.rackspacecloud.com/v2/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "versionId": "2", "versionList": "https://hkg.servers.api.rackspacecloud.com/", "versionInfo": "https://hkg.servers.api.rackspacecloud.com/v2", "publicURL": "https://hkg.servers.api.rackspacecloud.com/v2/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "versionId": "2", "versionList": "https://ord.servers.api.rackspacecloud.com/", "versionInfo": "https://ord.servers.api.rackspacecloud.com/v2", "publicURL": "https://ord.servers.api.rackspacecloud.com/v2/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" } ], "name": "cloudServersOpenStack" }, { "type": "rax:autoscale", "endpoints": [ { "publicURL": "https://ord.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://dfw.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://hkg.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "publicURL": "https://iad.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://syd.autoscale.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" } ], "name": "autoscale" }, { "type": "rax:database", "endpoints": [ { "publicURL": "https://syd.databases.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "publicURL": "https://dfw.databases.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://ord.databases.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://iad.databases.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://hkg.databases.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" } ], "name": "cloudDatabases" }, { "type": "rax:backup", "endpoints": [ { "publicURL": "https://iad.backup.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://hkg.backup.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "publicURL": "https://syd.backup.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "publicURL": "https://dfw.backup.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://ord.backup.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" } ], "name": "cloudBackup" }, { "type": "network", "endpoints": [ { "publicURL": "https://iad.networks.api.rackspacecloud.com/v2.0", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://lon.networks.api.rackspacecloud.com/v2.0", "tenantId": "TENANT_ID", "region": "LON" }, { "publicURL": "https://ord.networks.api.rackspacecloud.com/v2.0", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://syd.networks.api.rackspacecloud.com/v2.0", "tenantId": "TENANT_ID", "region": "SYD" }, { "publicURL": "https://dfw.networks.api.rackspacecloud.com/v2.0", "tenantId": "TENANT_ID", "region": "DFW" }, { "publicURL": "https://hkg.networks.api.rackspacecloud.com/v2.0", "tenantId": "TENANT_ID", "region": "HKG" } ], "name": "cloudNetworks" }, { "type": "rax:cloudmetrics", "endpoints": [ { "publicURL": "https://global.metrics.api.rackspacecloud.com/v2.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" } ], "name": "cloudMetrics" }, { "type": "rax:load-balancer", "endpoints": [ { "publicURL": "https://syd.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "publicURL": "https://iad.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "publicURL": "https://ord.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" }, { "publicURL": "https://hkg.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "publicURL": "https://dfw.loadbalancers.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" } ], "name": "cloudLoadBalancers" }, { "type": "rax:feeds", "endpoints": [ { "internalURL": "https://atom.prod.hkg1.us.ci.rackspace.net/TENANT_ID", "publicURL": "https://hkg.feeds.api.rackspacecloud.com/TENANT_ID", "tenantId": "TENANT_ID", "region": "HKG" }, { "internalURL": "https://atom.prod.syd2.us.ci.rackspace.net/TENANT_ID", "publicURL": "https://syd.feeds.api.rackspacecloud.com/TENANT_ID", "tenantId": "TENANT_ID", "region": "SYD" }, { "internalURL": "https://atom.prod.iad3.us.ci.rackspace.net/TENANT_ID", "publicURL": "https://iad.feeds.api.rackspacecloud.com/TENANT_ID", "tenantId": "TENANT_ID", "region": "IAD" }, { "internalURL": "https://atom.prod.dfw1.us.ci.rackspace.net/TENANT_ID", "publicURL": "https://dfw.feeds.api.rackspacecloud.com/TENANT_ID", "tenantId": "TENANT_ID", "region": "DFW" }, { "internalURL": "https://atom.prod.ord1.us.ci.rackspace.net/TENANT_ID", "publicURL": "https://ord.feeds.api.rackspacecloud.com/TENANT_ID", "tenantId": "TENANT_ID", "region": "ORD" } ], "name": "cloudFeeds" }, { "type": "rax:monitor", "endpoints": [ { "publicURL": "https://monitoring.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID" } ], "name": "cloudMonitoring" }, { "type": "rax:dns", "endpoints": [ { "publicURL": "https://dns.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID" } ], "name": "cloudDNS" }, { "type": "compute", "endpoints": [ { "versionId": "1.0", "versionList": "https://servers.api.rackspacecloud.com/", "versionInfo": "https://servers.api.rackspacecloud.com/v1.0", "publicURL": "https://servers.api.rackspacecloud.com/v1.0/TENANT_ID", "tenantId": "TENANT_ID" } ], "name": "cloudServers" } ], "token": { "RAX-AUTH:authenticatedBy": [ "PASSWORD" ], "tenant": { "name": "TENANT_ID", "id": "TENANT_ID" }, "expires": "2014-12-11T03:26:57.420Z", "id": "TOKEN_ID" } } }
HP Public Cloud
Rackspace Private Cloud
DevStack
RDO
Mirantis
Outstanding Questions
- How are entry points currently done for all the services?
- How are versions currently done for all the services?
- Why are Name and Type both needed?
- Which of Name and Type are guaranteed to be unique?
- Does there need to be a top-level "access" property?