github.com/gophercloud/gophercloud@v1.11.0/openstack/clustering/v1/nodes/testing/requests_test.go (about) 1 package testing 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/gophercloud/gophercloud/openstack/clustering/v1/nodes" 8 "github.com/gophercloud/gophercloud/pagination" 9 th "github.com/gophercloud/gophercloud/testhelper" 10 fake "github.com/gophercloud/gophercloud/testhelper/client" 11 ) 12 13 func TestCreateNode(t *testing.T) { 14 th.SetupHTTP() 15 defer th.TeardownHTTP() 16 17 HandleCreateSuccessfully(t) 18 19 createOpts := nodes.CreateOpts{ 20 ClusterID: "e395be1e-8d8e-43bb-bd6c-943eccf76a6d", 21 Metadata: map[string]interface{}{ 22 "foo": "bar", 23 "test": map[string]interface{}{ 24 "nil_interface": interface{}(nil), 25 "float_value": float64(123.3), 26 "string_value": "test_string", 27 "bool_value": false, 28 }, 29 }, 30 Name: "node-e395be1e-002", 31 ProfileID: "d8a48377-f6a3-4af4-bbbb-6e8bcaa0cbc0", 32 Role: "", 33 } 34 35 res := nodes.Create(fake.ServiceClient(), createOpts) 36 th.AssertNoErr(t, res.Err) 37 38 requestID := res.Header.Get("X-Openstack-Request-Id") 39 th.AssertEquals(t, "req-3791a089-9d46-4671-a3f9-55e95e55d2b4", requestID) 40 41 location := res.Header.Get("Location") 42 th.AssertEquals(t, "http://senlin.cloud.blizzard.net:8778/v1/actions/ffd94dd8-6266-4887-9a8c-5b78b72136da", location) 43 44 locationFields := strings.Split(location, "actions/") 45 actionID := locationFields[1] 46 th.AssertEquals(t, "ffd94dd8-6266-4887-9a8c-5b78b72136da", actionID) 47 48 actual, err := res.Extract() 49 th.AssertNoErr(t, err) 50 th.AssertDeepEquals(t, ExpectedCreate, *actual) 51 } 52 53 func TestListNodes(t *testing.T) { 54 th.SetupHTTP() 55 defer th.TeardownHTTP() 56 57 HandleListSuccessfully(t) 58 59 count := 0 60 err := nodes.List(fake.ServiceClient(), nil).EachPage(func(page pagination.Page) (bool, error) { 61 actual, err := nodes.ExtractNodes(page) 62 th.AssertNoErr(t, err) 63 th.AssertDeepEquals(t, ExpectedList, actual) 64 count++ 65 return true, nil 66 }) 67 68 th.AssertNoErr(t, err) 69 th.AssertEquals(t, count, 1) 70 } 71 72 func TestDeleteNode(t *testing.T) { 73 th.SetupHTTP() 74 defer th.TeardownHTTP() 75 76 HandleDeleteSuccessfully(t) 77 78 deleteResult := nodes.Delete(fake.ServiceClient(), "6dc6d336e3fc4c0a951b5698cd1236ee") 79 th.AssertNoErr(t, deleteResult.ExtractErr()) 80 } 81 82 func TestGetNode(t *testing.T) { 83 th.SetupHTTP() 84 defer th.TeardownHTTP() 85 86 HandleGetSuccessfully(t) 87 88 actual, err := nodes.Get(fake.ServiceClient(), "573aa1ba-bf45-49fd-907d-6b5d6e6adfd3").Extract() 89 th.AssertNoErr(t, err) 90 th.AssertDeepEquals(t, ExpectedGet, *actual) 91 } 92 93 func TestUpdateNode(t *testing.T) { 94 th.SetupHTTP() 95 defer th.TeardownHTTP() 96 97 HandleUpdateSuccessfully(t) 98 99 nodeOpts := nodes.UpdateOpts{ 100 Name: "node-e395be1e-002", 101 } 102 actual, err := nodes.Update(fake.ServiceClient(), ExpectedUpdate.ID, nodeOpts).Extract() 103 th.AssertNoErr(t, err) 104 th.AssertDeepEquals(t, ExpectedUpdate, *actual) 105 } 106 107 func TestOpsNode(t *testing.T) { 108 th.SetupHTTP() 109 defer th.TeardownHTTP() 110 111 HandleOpsSuccessfully(t) 112 113 nodeOpts := nodes.OperationOpts{ 114 Operation: nodes.PauseOperation, 115 } 116 actual, err := nodes.Ops(fake.ServiceClient(), "7d85f602-a948-4a30-afd4-e84f47471c15", nodeOpts).Extract() 117 th.AssertNoErr(t, err) 118 th.AssertDeepEquals(t, OperationExpectedActionID, actual) 119 } 120 121 func TestNodeRecover(t *testing.T) { 122 th.SetupHTTP() 123 defer th.TeardownHTTP() 124 125 HandleRecoverSuccessfully(t) 126 recoverOpts := nodes.RecoverOpts{ 127 Operation: nodes.RebuildRecovery, 128 Check: new(bool), 129 } 130 actionID, err := nodes.Recover(fake.ServiceClient(), "edce3528-864f-41fb-8759-f4707925cc09", recoverOpts).Extract() 131 th.AssertNoErr(t, err) 132 th.AssertEquals(t, ExpectedActionID, actionID) 133 } 134 135 func TestNodeCheck(t *testing.T) { 136 th.SetupHTTP() 137 defer th.TeardownHTTP() 138 139 HandleCheckSuccessfully(t) 140 141 actionID, err := nodes.Check(fake.ServiceClient(), "edce3528-864f-41fb-8759-f4707925cc09").Extract() 142 th.AssertNoErr(t, err) 143 th.AssertEquals(t, ExpectedActionID, actionID) 144 }