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