github.com/gophercloud/gophercloud@v1.11.0/openstack/containerinfra/v1/clusters/testing/fixtures_test.go (about)

     1  package testing
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/gophercloud/gophercloud"
    10  	"github.com/gophercloud/gophercloud/openstack/containerinfra/v1/clusters"
    11  	th "github.com/gophercloud/gophercloud/testhelper"
    12  	fake "github.com/gophercloud/gophercloud/testhelper/client"
    13  )
    14  
    15  const clusterUUID = "746e779a-751a-456b-a3e9-c883d734946f"
    16  const clusterUUID2 = "846e779a-751a-456b-a3e9-c883d734946f"
    17  const requestUUID = "req-781e9bdc-4163-46eb-91c9-786c53188bbb"
    18  
    19  var ClusterCreateResponse = fmt.Sprintf(`
    20  										{
    21  											"uuid":"%s"
    22  										}`, clusterUUID)
    23  
    24  var ExpectedCluster = clusters.Cluster{
    25  	APIAddress:        "https://172.24.4.6:6443",
    26  	COEVersion:        "v1.2.0",
    27  	ClusterTemplateID: "0562d357-8641-4759-8fed-8173f02c9633",
    28  	CreateTimeout:     60,
    29  	CreatedAt:         time.Date(2016, 8, 29, 6, 51, 31, 0, time.UTC),
    30  	DiscoveryURL:      "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3",
    31  	Links: []gophercloud.Link{
    32  		{
    33  			Href: "http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f",
    34  			Rel:  "self",
    35  		},
    36  		{
    37  			Href: "http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f",
    38  			Rel:  "bookmark",
    39  		},
    40  	},
    41  	KeyPair:            "my-keypair",
    42  	MasterAddresses:    []string{"172.24.4.6"},
    43  	MasterCount:        1,
    44  	Name:               "k8s",
    45  	NodeAddresses:      []string{"172.24.4.13"},
    46  	NodeCount:          1,
    47  	StackID:            "9c6f1169-7300-4d08-a444-d2be38758719",
    48  	Status:             "CREATE_COMPLETE",
    49  	StatusReason:       "Stack CREATE completed successfully",
    50  	UpdatedAt:          time.Date(2016, 8, 29, 6, 53, 24, 0, time.UTC),
    51  	UUID:               clusterUUID,
    52  	FloatingIPEnabled:  true,
    53  	FixedNetwork:       "private_network",
    54  	FixedSubnet:        "private_subnet",
    55  	HealthStatus:       "HEALTHY",
    56  	HealthStatusReason: map[string]interface{}{"api": "ok"},
    57  }
    58  
    59  var ExpectedCluster2 = clusters.Cluster{
    60  	APIAddress:        "https://172.24.4.6:6443",
    61  	COEVersion:        "v1.2.0",
    62  	ClusterTemplateID: "0562d357-8641-4759-8fed-8173f02c9633",
    63  	CreateTimeout:     60,
    64  	CreatedAt:         time.Time{},
    65  	DiscoveryURL:      "https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3",
    66  	Links: []gophercloud.Link{
    67  		{
    68  			Href: "http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f",
    69  			Rel:  "self",
    70  		},
    71  		{
    72  			Href: "http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f",
    73  			Rel:  "bookmark",
    74  		},
    75  	},
    76  	KeyPair:            "my-keypair",
    77  	MasterAddresses:    []string{"172.24.4.6"},
    78  	MasterCount:        1,
    79  	Name:               "k8s",
    80  	NodeAddresses:      []string{"172.24.4.13"},
    81  	NodeCount:          1,
    82  	StackID:            "9c6f1169-7300-4d08-a444-d2be38758719",
    83  	Status:             "CREATE_COMPLETE",
    84  	StatusReason:       "Stack CREATE completed successfully",
    85  	UpdatedAt:          time.Date(2016, 8, 29, 6, 53, 24, 0, time.UTC),
    86  	UUID:               clusterUUID2,
    87  	FloatingIPEnabled:  true,
    88  	FixedNetwork:       "private_network",
    89  	FixedSubnet:        "private_subnet",
    90  	HealthStatus:       "HEALTHY",
    91  	HealthStatusReason: map[string]interface{}{"api": "ok"},
    92  }
    93  
    94  var ExpectedClusterUUID = clusterUUID
    95  
    96  func HandleCreateClusterSuccessfully(t *testing.T) {
    97  	th.Mux.HandleFunc("/v1/clusters", func(w http.ResponseWriter, r *http.Request) {
    98  		th.TestMethod(t, r, "POST")
    99  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   100  
   101  		w.Header().Add("Content-Type", "application/json")
   102  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   103  		w.WriteHeader(http.StatusAccepted)
   104  
   105  		fmt.Fprint(w, ClusterCreateResponse)
   106  	})
   107  }
   108  
   109  func HandleGetClusterSuccessfully(t *testing.T) {
   110  	th.Mux.HandleFunc("/v1/clusters/"+clusterUUID, func(w http.ResponseWriter, r *http.Request) {
   111  		th.TestMethod(t, r, "GET")
   112  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   113  
   114  		w.Header().Add("Content-Type", "application/json")
   115  		w.WriteHeader(http.StatusOK)
   116  
   117  		fmt.Fprint(w, ClusterGetResponse)
   118  	})
   119  }
   120  
   121  var ClusterGetResponse = fmt.Sprintf(`
   122  {
   123  		"status":"CREATE_COMPLETE",
   124  		"uuid":"%s",
   125  		"links":[
   126  		  {
   127  			 "href":"http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f",
   128  			 "rel":"self"
   129  		  },
   130  		  {
   131  			 "href":"http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f",
   132  			 "rel":"bookmark"
   133  		  }
   134  		],
   135  		"stack_id":"9c6f1169-7300-4d08-a444-d2be38758719",
   136  		"created_at":"2016-08-29T06:51:31+00:00",
   137  		"api_address":"https://172.24.4.6:6443",
   138  		"discovery_url":"https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3",
   139  		"updated_at":"2016-08-29T06:53:24+00:00",
   140  		"master_count":1,
   141  		"coe_version": "v1.2.0",
   142  		"keypair":"my-keypair",
   143  		"cluster_template_id":"0562d357-8641-4759-8fed-8173f02c9633",
   144  		"master_addresses":[
   145  		  "172.24.4.6"
   146  		],
   147  		"node_count":1,
   148  		"node_addresses":[
   149  		  "172.24.4.13"
   150  		],
   151  		"status_reason":"Stack CREATE completed successfully",
   152  		"create_timeout":60,
   153  		"name":"k8s",
   154  		"floating_ip_enabled": true,
   155  		"fixed_network": "private_network",
   156  		"fixed_subnet": "private_subnet",
   157  		"health_status": "HEALTHY",
   158  		"health_status_reason": {"api": "ok"}
   159  }`, clusterUUID)
   160  
   161  var ClusterListResponse = fmt.Sprintf(`
   162  {
   163  	"clusters": [
   164  		{
   165  			"api_address":"https://172.24.4.6:6443",
   166  			"cluster_template_id":"0562d357-8641-4759-8fed-8173f02c9633",
   167  			"coe_version": "v1.2.0",
   168  			"create_timeout":60,
   169  			"created_at":"2016-08-29T06:51:31+00:00",
   170  			"discovery_url":"https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3",
   171  			"keypair":"my-keypair",
   172  			"links":[
   173  			  {
   174  				 "href":"http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f",
   175  				 "rel":"self"
   176  			  },
   177  			  {
   178  				 "href":"http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f",
   179  				 "rel":"bookmark"
   180  			  }
   181  			],
   182  			"master_addresses":[
   183  			  "172.24.4.6"
   184  			],
   185  			"master_count":1,
   186  			"name":"k8s",
   187  			"node_addresses":[
   188  			  "172.24.4.13"
   189  			],
   190  			"node_count":1,
   191  			"stack_id":"9c6f1169-7300-4d08-a444-d2be38758719",
   192  			"status":"CREATE_COMPLETE",
   193  			"status_reason":"Stack CREATE completed successfully",
   194  			"updated_at":"2016-08-29T06:53:24+00:00",
   195  			"uuid":"%s",
   196  			"floating_ip_enabled": true,
   197  			"fixed_network": "private_network",
   198  			"fixed_subnet": "private_subnet",
   199  			"health_status": "HEALTHY",
   200  			"health_status_reason": {"api": "ok"}
   201  		},
   202  		{
   203  			"api_address":"https://172.24.4.6:6443",
   204  			"cluster_template_id":"0562d357-8641-4759-8fed-8173f02c9633",
   205  			"coe_version": "v1.2.0",
   206  			"create_timeout":60,
   207  			"created_at":null,
   208  			"discovery_url":"https://discovery.etcd.io/cbeb580da58915809d59ee69348a84f3",
   209  			"keypair":"my-keypair",
   210  			"links":[
   211  			  {
   212  				 "href":"http://10.164.180.104:9511/v1/clusters/746e779a-751a-456b-a3e9-c883d734946f",
   213  				 "rel":"self"
   214  			  },
   215  			  {
   216  				 "href":"http://10.164.180.104:9511/clusters/746e779a-751a-456b-a3e9-c883d734946f",
   217  				 "rel":"bookmark"
   218  			  }
   219  			],
   220  			"master_addresses":[
   221  			  "172.24.4.6"
   222  			],
   223  			"master_count":1,
   224  			"name":"k8s",
   225  			"node_addresses":[
   226  			  "172.24.4.13"
   227  			],
   228  			"node_count":1,
   229  			"stack_id":"9c6f1169-7300-4d08-a444-d2be38758719",
   230  			"status":"CREATE_COMPLETE",
   231  			"status_reason":"Stack CREATE completed successfully",
   232  			"updated_at":null,
   233  			"uuid":"%s",
   234  			"floating_ip_enabled": true,
   235  			"fixed_network": "private_network",
   236  			"fixed_subnet": "private_subnet",
   237  			"health_status": "HEALTHY",
   238  			"health_status_reason": {"api": "ok"}
   239  		}
   240  	]
   241  }`, clusterUUID, clusterUUID2)
   242  
   243  var ExpectedClusters = []clusters.Cluster{ExpectedCluster}
   244  
   245  func HandleListClusterSuccessfully(t *testing.T) {
   246  	th.Mux.HandleFunc("/v1/clusters", func(w http.ResponseWriter, r *http.Request) {
   247  		th.TestMethod(t, r, "GET")
   248  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   249  
   250  		w.Header().Add("Content-Type", "application/json")
   251  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   252  		w.WriteHeader(http.StatusOK)
   253  
   254  		fmt.Fprint(w, ClusterListResponse)
   255  	})
   256  }
   257  
   258  func HandleListDetailClusterSuccessfully(t *testing.T) {
   259  	th.Mux.HandleFunc("/v1/clusters/detail", func(w http.ResponseWriter, r *http.Request) {
   260  		th.TestMethod(t, r, "GET")
   261  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   262  
   263  		w.Header().Add("Content-Type", "application/json")
   264  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   265  		w.WriteHeader(http.StatusOK)
   266  
   267  		fmt.Fprint(w, ClusterListResponse)
   268  	})
   269  }
   270  
   271  var UpdateResponse = fmt.Sprintf(`
   272  {
   273  	"uuid":"%s"
   274  }`, clusterUUID)
   275  
   276  func HandleUpdateClusterSuccessfully(t *testing.T) {
   277  	th.Mux.HandleFunc("/v1/clusters/"+clusterUUID, func(w http.ResponseWriter, r *http.Request) {
   278  		th.TestMethod(t, r, "PATCH")
   279  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   280  
   281  		w.Header().Add("Content-Type", "application/json")
   282  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   283  		w.WriteHeader(http.StatusOK)
   284  
   285  		fmt.Fprint(w, UpdateResponse)
   286  	})
   287  }
   288  
   289  var UpgradeResponse = fmt.Sprintf(`
   290  {
   291  	"uuid":"%s"
   292  }`, clusterUUID)
   293  
   294  func HandleUpgradeClusterSuccessfully(t *testing.T) {
   295  	th.Mux.HandleFunc("/v1/clusters/"+clusterUUID+"/actions/upgrade", func(w http.ResponseWriter, r *http.Request) {
   296  		th.TestMethod(t, r, "POST")
   297  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   298  
   299  		w.Header().Add("Content-Type", "application/json")
   300  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   301  		w.WriteHeader(http.StatusAccepted)
   302  
   303  		fmt.Fprint(w, UpgradeResponse)
   304  	})
   305  }
   306  
   307  func HandleDeleteClusterSuccessfully(t *testing.T) {
   308  	th.Mux.HandleFunc("/v1/clusters/"+clusterUUID, func(w http.ResponseWriter, r *http.Request) {
   309  		th.TestMethod(t, r, "DELETE")
   310  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   311  
   312  		w.Header().Add("Content-Type", "application/json")
   313  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   314  		w.WriteHeader(http.StatusNoContent)
   315  	})
   316  }
   317  
   318  var ResizeResponse = fmt.Sprintf(`
   319  {
   320  	"uuid": "%s"
   321  }`, clusterUUID)
   322  
   323  func HandleResizeClusterSuccessfully(t *testing.T) {
   324  	th.Mux.HandleFunc("/v1/clusters/"+clusterUUID+"/actions/resize", func(w http.ResponseWriter, r *http.Request) {
   325  		th.TestMethod(t, r, "POST")
   326  		th.TestHeader(t, r, "X-Auth-Token", fake.TokenID)
   327  
   328  		w.Header().Add("Content-Type", "application/json")
   329  		w.Header().Add("X-OpenStack-Request-Id", requestUUID)
   330  		w.WriteHeader(http.StatusAccepted)
   331  
   332  		fmt.Fprint(w, ResizeResponse)
   333  	})
   334  }