github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/cce/v3/nodepool_test.go (about) 1 package v3 2 3 import ( 4 "time" 5 6 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/openstack/cce" 9 "github.com/opentelekomcloud/gophertelekomcloud/openstack/cce/v3/nodepools" 10 "github.com/opentelekomcloud/gophertelekomcloud/openstack/cce/v3/nodes" 11 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 12 ) 13 14 func (s *testNodes) TestNodePoolLifecycle() { 15 t := s.T() 16 client, err := clients.NewCceV3Client() 17 th.AssertNoErr(t, err) 18 19 clusterId := s.clusterID 20 21 kp := cce.CreateKeypair(t) 22 defer cce.DeleteKeypair(t, kp) 23 24 createOpts := nodepools.CreateOpts{ 25 Kind: "NodePool", 26 ApiVersion: "v3", 27 Metadata: nodepools.CreateMetaData{ 28 Name: "nodepool-test", 29 }, 30 Spec: nodepools.CreateSpec{ 31 Type: "vm", 32 NodeTemplate: nodes.Spec{ 33 Flavor: "s2.large.2", 34 Az: "eu-de-01", 35 Os: "EulerOS 2.5", 36 Login: nodes.LoginSpec{ 37 SshKey: kp, 38 }, 39 RootVolume: nodes.VolumeSpec{ 40 Size: 40, 41 VolumeType: "SSD", 42 }, 43 DataVolumes: []nodes.VolumeSpec{ 44 { 45 Size: 100, 46 VolumeType: "SSD", 47 ExtendParam: map[string]interface{}{ 48 "useType": "docker", 49 }, 50 }, 51 { 52 Size: 100, 53 VolumeType: "SSD", 54 }, 55 }, 56 Count: 1, 57 }, 58 InitialNodeCount: 1, 59 }, 60 } 61 62 nodePool, err := nodepools.Create(client, clusterId, createOpts).Extract() 63 th.AssertNoErr(t, err) 64 65 nodeId := nodePool.Metadata.Id 66 67 th.AssertNoErr(t, golangsdk.WaitFor(1800, func() (bool, error) { 68 n, err := nodepools.Get(client, clusterId, nodeId).Extract() 69 if err != nil { 70 return false, err 71 } 72 if n.Status.Phase == "" { 73 return true, nil 74 } 75 time.Sleep(10 * time.Second) 76 return false, nil 77 })) 78 79 _, err = nodepools.Get(client, clusterId, nodeId).Extract() 80 th.AssertNoErr(t, err) 81 82 th.AssertNoErr(t, nodepools.Delete(client, clusterId, nodeId).ExtractErr()) 83 84 err = golangsdk.WaitFor(1800, func() (bool, error) { 85 _, err := nodepools.Get(client, clusterId, nodeId).Extract() 86 if err != nil { 87 if _, ok := err.(golangsdk.ErrDefault404); ok { 88 return true, nil 89 } 90 return false, err 91 } 92 return false, nil 93 }) 94 th.AssertNoErr(t, err) 95 }