github.com/gophercloud/gophercloud@v1.11.0/openstack/identity/v3/tokens/testing/fixtures.go (about)

     1  package testing
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/gophercloud/gophercloud"
    10  	"github.com/gophercloud/gophercloud/openstack/identity/v3/tokens"
    11  	"github.com/gophercloud/gophercloud/testhelper"
    12  )
    13  
    14  const testTokenID = "130f6c17-420e-4a0b-97b0-0c9cf2a05f30"
    15  
    16  // TokenOutput is a sample response to a Token call.
    17  const TokenOutput = `
    18  {
    19     "token":{
    20        "is_domain":false,
    21        "methods":[
    22           "password"
    23        ],
    24        "roles":[
    25           {
    26              "id":"434426788d5a451faf763b0e6db5aefb",
    27              "name":"admin"
    28           }
    29        ],
    30        "expires_at":"2017-06-03T02:19:49.000000Z",
    31        "project":{
    32           "domain":{
    33              "id":"default",
    34              "name":"Default"
    35           },
    36           "id":"a99e9b4e620e4db09a2dfb6e42a01e66",
    37           "name":"admin"
    38        },
    39        "catalog":[
    40           {
    41              "endpoints":[
    42                 {
    43                    "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
    44                    "interface":"admin",
    45                    "region":"RegionOne",
    46                    "region_id":"RegionOne",
    47                    "id":"3eac9e7588eb4eb2a4650cf5e079505f"
    48                 },
    49                 {
    50                    "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
    51                    "interface":"internal",
    52                    "region":"RegionOne",
    53                    "region_id":"RegionOne",
    54                    "id":"6b33fabc69c34ea782a3f6282582b59f"
    55                 },
    56                 {
    57                    "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
    58                    "interface":"public",
    59                    "region":"RegionOne",
    60                    "region_id":"RegionOne",
    61                    "id":"dae63c71bee24070a71f5425e7a916b5"
    62                 }
    63              ],
    64              "type":"compute",
    65              "id":"17e0fa04647d4155a7933ee624dd66da",
    66              "name":"nova"
    67           },
    68           {
    69              "endpoints":[
    70                 {
    71                    "url":"http://127.0.0.1:35357/v3",
    72                    "interface":"admin",
    73                    "region":"RegionOne",
    74                    "region_id":"RegionOne",
    75                    "id":"0539aeff80954a0bb756cec496768d3d"
    76                 },
    77                 {
    78                    "url":"http://127.0.0.1:5000/v3",
    79                    "interface":"public",
    80                    "region":"RegionOne",
    81                    "region_id":"RegionOne",
    82                    "id":"15bdf2d0853e4c939993d29548b1b56f"
    83                 },
    84                 {
    85                    "url":"http://127.0.0.1:5000/v3",
    86                    "interface":"internal",
    87                    "region":"RegionOne",
    88                    "region_id":"RegionOne",
    89                    "id":"3b4423c54ba343c58226bc424cb11c4b"
    90                 }
    91              ],
    92              "type":"identity",
    93              "id":"1cde0ea8cb3c49d8928cb172ca825ca5",
    94              "name":"keystone"
    95           }
    96        ],
    97        "user":{
    98           "domain":{
    99              "id":"default",
   100              "name":"Default"
   101           },
   102           "password_expires_at":null,
   103           "name":"admin",
   104           "id":"0fe36e73809d46aeae6705c39077b1b3"
   105        },
   106        "audit_ids":[
   107           "ysSI0bEWR0Gmrp4LHL9LFw"
   108        ],
   109        "issued_at":"2017-06-03T01:19:49.000000Z"
   110     }
   111  }`
   112  
   113  const DomainToken = `
   114  {
   115    "token": {
   116      "domain": {
   117        "id": "default",
   118        "name": "Default"
   119      },
   120      "methods": [
   121        "password"
   122      ],
   123      "roles":[
   124         {
   125            "id":"434426788d5a451faf763b0e6db5aefb",
   126            "name":"admin"
   127         }
   128      ],
   129      "expires_at": "2019-09-18T23:12:32.000000Z",
   130      "catalog":[
   131         {
   132            "endpoints":[
   133               {
   134                  "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   135                  "interface":"admin",
   136                  "region":"RegionOne",
   137                  "region_id":"RegionOne",
   138                  "id":"3eac9e7588eb4eb2a4650cf5e079505f"
   139               },
   140               {
   141                  "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   142                  "interface":"internal",
   143                  "region":"RegionOne",
   144                  "region_id":"RegionOne",
   145                  "id":"6b33fabc69c34ea782a3f6282582b59f"
   146               },
   147               {
   148                  "url":"http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   149                  "interface":"public",
   150                  "region":"RegionOne",
   151                  "region_id":"RegionOne",
   152                  "id":"dae63c71bee24070a71f5425e7a916b5"
   153               }
   154            ],
   155            "type":"compute",
   156            "id":"17e0fa04647d4155a7933ee624dd66da",
   157            "name":"nova"
   158         },
   159         {
   160            "endpoints":[
   161               {
   162                  "url":"http://127.0.0.1:35357/v3",
   163                  "interface":"admin",
   164                  "region":"RegionOne",
   165                  "region_id":"RegionOne",
   166                  "id":"0539aeff80954a0bb756cec496768d3d"
   167               },
   168               {
   169                  "url":"http://127.0.0.1:5000/v3",
   170                  "interface":"public",
   171                  "region":"RegionOne",
   172                  "region_id":"RegionOne",
   173                  "id":"15bdf2d0853e4c939993d29548b1b56f"
   174               },
   175               {
   176                  "url":"http://127.0.0.1:5000/v3",
   177                  "interface":"internal",
   178                  "region":"RegionOne",
   179                  "region_id":"RegionOne",
   180                  "id":"3b4423c54ba343c58226bc424cb11c4b"
   181               }
   182            ],
   183            "type":"identity",
   184            "id":"1cde0ea8cb3c49d8928cb172ca825ca5",
   185            "name":"keystone"
   186         }
   187      ],
   188      "user":{
   189         "domain":{
   190            "id":"default",
   191            "name":"Default"
   192         },
   193         "password_expires_at":null,
   194         "name":"admin",
   195         "id":"0fe36e73809d46aeae6705c39077b1b3"
   196      },
   197      "audit_ids": [
   198        "P4QTZuYXS1u8SC6b3BSK1g"
   199      ],
   200      "issued_at": "2019-09-18T15:12:32.000000Z"
   201    }
   202  }
   203  `
   204  
   205  var expectedTokenTime, _ = time.Parse(gophercloud.RFC3339Milli,
   206  	"2017-06-03T02:19:49.000000Z")
   207  var ExpectedToken = tokens.Token{
   208  	ID:        testTokenID,
   209  	ExpiresAt: expectedTokenTime,
   210  }
   211  
   212  var catalogEntry1 = tokens.CatalogEntry{
   213  	ID:   "17e0fa04647d4155a7933ee624dd66da",
   214  	Name: "nova",
   215  	Type: "compute",
   216  	Endpoints: []tokens.Endpoint{
   217  		{
   218  			ID:        "3eac9e7588eb4eb2a4650cf5e079505f",
   219  			Region:    "RegionOne",
   220  			RegionID:  "RegionOne",
   221  			Interface: "admin",
   222  			URL:       "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   223  		},
   224  		{
   225  			ID:        "6b33fabc69c34ea782a3f6282582b59f",
   226  			Region:    "RegionOne",
   227  			RegionID:  "RegionOne",
   228  			Interface: "internal",
   229  			URL:       "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   230  		},
   231  		{
   232  			ID:        "dae63c71bee24070a71f5425e7a916b5",
   233  			Region:    "RegionOne",
   234  			RegionID:  "RegionOne",
   235  			Interface: "public",
   236  			URL:       "http://127.0.0.1:8774/v2.1/a99e9b4e620e4db09a2dfb6e42a01e66",
   237  		},
   238  	},
   239  }
   240  var catalogEntry2 = tokens.CatalogEntry{
   241  	ID:   "1cde0ea8cb3c49d8928cb172ca825ca5",
   242  	Name: "keystone",
   243  	Type: "identity",
   244  	Endpoints: []tokens.Endpoint{
   245  		{
   246  			ID:        "0539aeff80954a0bb756cec496768d3d",
   247  			Region:    "RegionOne",
   248  			RegionID:  "RegionOne",
   249  			Interface: "admin",
   250  			URL:       "http://127.0.0.1:35357/v3",
   251  		},
   252  		{
   253  			ID:        "15bdf2d0853e4c939993d29548b1b56f",
   254  			Region:    "RegionOne",
   255  			RegionID:  "RegionOne",
   256  			Interface: "public",
   257  			URL:       "http://127.0.0.1:5000/v3",
   258  		},
   259  		{
   260  			ID:        "3b4423c54ba343c58226bc424cb11c4b",
   261  			Region:    "RegionOne",
   262  			RegionID:  "RegionOne",
   263  			Interface: "internal",
   264  			URL:       "http://127.0.0.1:5000/v3",
   265  		},
   266  	},
   267  }
   268  
   269  // ExpectedServiceCatalog contains expected service extracted from token response.
   270  var ExpectedServiceCatalog = tokens.ServiceCatalog{
   271  	Entries: []tokens.CatalogEntry{catalogEntry1, catalogEntry2},
   272  }
   273  
   274  var domain = tokens.Domain{
   275  	ID:   "default",
   276  	Name: "Default",
   277  }
   278  
   279  // ExpectedUser contains expected user extracted from token response.
   280  var ExpectedUser = tokens.User{
   281  	Domain: domain,
   282  	ID:     "0fe36e73809d46aeae6705c39077b1b3",
   283  	Name:   "admin",
   284  }
   285  
   286  var role = tokens.Role{
   287  	ID:   "434426788d5a451faf763b0e6db5aefb",
   288  	Name: "admin",
   289  }
   290  
   291  // ExpectedRoles contains expected roles extracted from token response.
   292  var ExpectedRoles = []tokens.Role{role}
   293  
   294  // ExpectedProject contains expected project extracted from token response.
   295  var ExpectedProject = tokens.Project{
   296  	Domain: domain,
   297  	ID:     "a99e9b4e620e4db09a2dfb6e42a01e66",
   298  	Name:   "admin",
   299  }
   300  
   301  // ExpectedDomain contains expected domain extracted from token response.
   302  var ExpectedDomain = tokens.Domain{
   303  	ID:   "default",
   304  	Name: "Default",
   305  }
   306  
   307  func getGetResult(t *testing.T) tokens.GetResult {
   308  	result := tokens.GetResult{}
   309  	result.Header = http.Header{
   310  		"X-Subject-Token": []string{testTokenID},
   311  	}
   312  	err := json.Unmarshal([]byte(TokenOutput), &result.Body)
   313  	testhelper.AssertNoErr(t, err)
   314  	return result
   315  }
   316  
   317  func getGetDomainResult(t *testing.T) tokens.GetResult {
   318  	result := tokens.GetResult{}
   319  	result.Header = http.Header{
   320  		"X-Subject-Token": []string{testTokenID},
   321  	}
   322  	err := json.Unmarshal([]byte(DomainToken), &result.Body)
   323  	testhelper.AssertNoErr(t, err)
   324  	return result
   325  }