|  | package v2 | 
|  |  | 
|  | // Taken from: http://docs.openstack.org/api/openstack-identity-service/2.0/content/POST_authenticate_v2.0_tokens_.html | 
|  | const authResultsOK = `{ | 
|  | "access":{ | 
|  | "token":{ | 
|  | "id": "ab48a9efdfedb23ty3494", | 
|  | "expires": "2010-11-01T03:32:15-05:00", | 
|  | "tenant":{ | 
|  | "id": "t1000", | 
|  | "name": "My Project" | 
|  | } | 
|  | }, | 
|  | "user":{ | 
|  | "id": "u123", | 
|  | "name": "jqsmith", | 
|  | "roles":[{ | 
|  | "id": "100", | 
|  | "name": "compute:admin" | 
|  | }, | 
|  | { | 
|  | "id": "101", | 
|  | "name": "object-store:admin", | 
|  | "tenantId": "t1000" | 
|  | } | 
|  | ], | 
|  | "roles_links":[] | 
|  | }, | 
|  | "serviceCatalog":[{ | 
|  | "name": "Cloud Servers", | 
|  | "type": "compute", | 
|  | "endpoints":[{ | 
|  | "tenantId": "t1000", | 
|  | "publicURL": "https://compute.north.host.com/v1/t1000", | 
|  | "internalURL": "https://compute.north.internal/v1/t1000", | 
|  | "region": "North", | 
|  | "versionId": "1", | 
|  | "versionInfo": "https://compute.north.host.com/v1/", | 
|  | "versionList": "https://compute.north.host.com/" | 
|  | }, | 
|  | { | 
|  | "tenantId": "t1000", | 
|  | "publicURL": "https://compute.north.host.com/v1.1/t1000", | 
|  | "internalURL": "https://compute.north.internal/v1.1/t1000", | 
|  | "region": "North", | 
|  | "versionId": "1.1", | 
|  | "versionInfo": "https://compute.north.host.com/v1.1/", | 
|  | "versionList": "https://compute.north.host.com/" | 
|  | } | 
|  | ], | 
|  | "endpoints_links":[] | 
|  | }, | 
|  | { | 
|  | "name": "Cloud Files", | 
|  | "type": "object-store", | 
|  | "endpoints":[{ | 
|  | "tenantId": "t1000", | 
|  | "publicURL": "https://storage.north.host.com/v1/t1000", | 
|  | "internalURL": "https://storage.north.internal/v1/t1000", | 
|  | "region": "North", | 
|  | "versionId": "1", | 
|  | "versionInfo": "https://storage.north.host.com/v1/", | 
|  | "versionList": "https://storage.north.host.com/" | 
|  | }, | 
|  | { | 
|  | "tenantId": "t1000", | 
|  | "publicURL": "https://storage.south.host.com/v1/t1000", | 
|  | "internalURL": "https://storage.south.internal/v1/t1000", | 
|  | "region": "South", | 
|  | "versionId": "1", | 
|  | "versionInfo": "https://storage.south.host.com/v1/", | 
|  | "versionList": "https://storage.south.host.com/" | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { | 
|  | "name": "DNS-as-a-Service", | 
|  | "type": "dnsextension:dns", | 
|  | "endpoints":[{ | 
|  | "tenantId": "t1000", | 
|  | "publicURL": "https://dns.host.com/v2.0/t1000", | 
|  | "versionId": "2.0", | 
|  | "versionInfo": "https://dns.host.com/v2.0/", | 
|  | "versionList": "https://dns.host.com/" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ] | 
|  | } | 
|  | }` | 
|  |  | 
|  | // Taken from: http://developer.openstack.org/api-ref-identity-v2.html | 
|  | const queryResults = `{ | 
|  | "extensions": { | 
|  | "values": [ | 
|  | { | 
|  | "updated": "2013-07-07T12:00:0-00:00", | 
|  | "name": "OpenStack S3 API", | 
|  | "links": [ | 
|  | { | 
|  | "href": "https://github.com/openstack/identity-api", | 
|  | "type": "text/html", | 
|  | "rel": "describedby" | 
|  | } | 
|  | ], | 
|  | "namespace": "http://docs.openstack.org/identity/api/ext/s3tokens/v1.0", | 
|  | "alias": "s3tokens", | 
|  | "description": "OpenStack S3 API." | 
|  | }, | 
|  | { | 
|  | "updated": "2013-07-23T12:00:0-00:00", | 
|  | "name": "OpenStack Keystone Endpoint Filter API", | 
|  | "links": [ | 
|  | { | 
|  | "href": "https://github.com/openstack/identity-api/blob/master/openstack-identity-api/v3/src/markdown/identity-api-v3-os-ep-filter-ext.md", | 
|  | "type": "text/html", | 
|  | "rel": "describedby" | 
|  | } | 
|  | ], | 
|  | "namespace": "http://docs.openstack.org/identity/api/ext/OS-EP-FILTER/v1.0", | 
|  | "alias": "OS-EP-FILTER", | 
|  | "description": "OpenStack Keystone Endpoint Filter API." | 
|  | }, | 
|  | { | 
|  | "updated": "2013-12-17T12:00:0-00:00", | 
|  | "name": "OpenStack Federation APIs", | 
|  | "links": [ | 
|  | { | 
|  | "href": "https://github.com/openstack/identity-api", | 
|  | "type": "text/html", | 
|  | "rel": "describedby" | 
|  | } | 
|  | ], | 
|  | "namespace": "http://docs.openstack.org/identity/api/ext/OS-FEDERATION/v1.0", | 
|  | "alias": "OS-FEDERATION", | 
|  | "description": "OpenStack Identity Providers Mechanism." | 
|  | }, | 
|  | { | 
|  | "updated": "2013-07-11T17:14:00-00:00", | 
|  | "name": "OpenStack Keystone Admin", | 
|  | "links": [ | 
|  | { | 
|  | "href": "https://github.com/openstack/identity-api", | 
|  | "type": "text/html", | 
|  | "rel": "describedby" | 
|  | } | 
|  | ], | 
|  | "namespace": "http://docs.openstack.org/identity/api/ext/OS-KSADM/v1.0", | 
|  | "alias": "OS-KSADM", | 
|  | "description": "OpenStack extensions to Keystone v2.0 API enabling Administrative Operations." | 
|  | }, | 
|  | { | 
|  | "updated": "2014-01-20T12:00:0-00:00", | 
|  | "name": "OpenStack Simple Certificate API", | 
|  | "links": [ | 
|  | { | 
|  | "href": "https://github.com/openstack/identity-api", | 
|  | "type": "text/html", | 
|  | "rel": "describedby" | 
|  | } | 
|  | ], | 
|  | "namespace": "http://docs.openstack.org/identity/api/ext/OS-SIMPLE-CERT/v1.0", | 
|  | "alias": "OS-SIMPLE-CERT", | 
|  | "description": "OpenStack simple certificate retrieval extension" | 
|  | }, | 
|  | { | 
|  | "updated": "2013-07-07T12:00:0-00:00", | 
|  | "name": "OpenStack EC2 API", | 
|  | "links": [ | 
|  | { | 
|  | "href": "https://github.com/openstack/identity-api", | 
|  | "type": "text/html", | 
|  | "rel": "describedby" | 
|  | } | 
|  | ], | 
|  | "namespace": "http://docs.openstack.org/identity/api/ext/OS-EC2/v1.0", | 
|  | "alias": "OS-EC2", | 
|  | "description": "OpenStack EC2 Credentials backend." | 
|  | } | 
|  | ] | 
|  | } | 
|  | }` | 
|  |  | 
|  | // Extensions query with a bogus JSON envelop. | 
|  | const bogusExtensionsResults = `{ | 
|  | "explosions":[{ | 
|  | "name": "Reset Password Extension", | 
|  | "namespace": "http://docs.rackspacecloud.com/identity/api/ext/rpe/v2.0", | 
|  | "alias": "RS-RPE", | 
|  | "updated": "2011-01-22T13:25:27-06:00", | 
|  | "description": "Adds the capability to reset a user's password. The user is emailed when the password has been reset.", | 
|  | "links":[{ | 
|  | "rel": "describedby", | 
|  | "type": "application/pdf", | 
|  | "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-rpe-20111111.pdf" | 
|  | }, | 
|  | { | 
|  | "rel": "describedby", | 
|  | "type": "application/vnd.sun.wadl+xml", | 
|  | "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-rpe.wadl" | 
|  | } | 
|  | ] | 
|  | }, | 
|  | { | 
|  | "name": "User Metadata Extension", | 
|  | "namespace": "http://docs.rackspacecloud.com/identity/api/ext/meta/v2.0", | 
|  | "alias": "RS-META", | 
|  | "updated": "2011-01-12T11:22:33-06:00", | 
|  | "description": "Allows associating arbritrary metadata with a user.", | 
|  | "links":[{ | 
|  | "rel": "describedby", | 
|  | "type": "application/pdf", | 
|  | "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-meta-20111201.pdf" | 
|  | }, | 
|  | { | 
|  | "rel": "describedby", | 
|  | "type": "application/vnd.sun.wadl+xml", | 
|  | "href": "http://docs.rackspacecloud.com/identity/api/ext/identity-meta.wadl" | 
|  | } | 
|  | ] | 
|  | } | 
|  | ], | 
|  | "extensions_links":[] | 
|  | }` |