github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/css/v1/clusters_test.go (about) 1 package v1 2 3 import ( 4 "log" 5 "testing" 6 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/openstack" 9 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools" 10 "github.com/opentelekomcloud/gophertelekomcloud/openstack/css/v1/clusters" 11 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 12 ) 13 14 const timeout = 1200 15 16 func TestClusterWorkflow(t *testing.T) { 17 client, err := clients.NewCssV1Client() 18 th.AssertNoErr(t, err) 19 20 vpcID := clients.EnvOS.GetEnv("VPC_ID") 21 subnetID := clients.EnvOS.GetEnv("NETWORK_ID") 22 23 if vpcID == "" || subnetID == "" { 24 t.Skip("Both `VPC_ID` and `NETWORK_ID` need to be defined") 25 } 26 27 sgID := openstack.DefaultSecurityGroup(t) 28 29 opts := clusters.CreateOpts{ 30 Name: tools.RandomString("css-cluster-", 4), 31 Instance: &clusters.InstanceSpec{ 32 Flavor: "css.medium.8", 33 34 Volume: &clusters.Volume{ 35 Type: "COMMON", 36 Size: 40, 37 }, 38 Nics: &clusters.Nics{ 39 VpcID: vpcID, 40 SubnetID: subnetID, 41 SecurityGroupID: sgID, 42 }, 43 AvailabilityZone: "eu-de-02", 44 }, 45 InstanceNum: 1, 46 DiskEncryption: &clusters.DiskEncryption{ 47 Encrypted: "0", 48 }, 49 Datastore: &clusters.Datastore{ 50 Version: "7.6.2", 51 Type: "elasticsearch", 52 }, 53 } 54 created, err := clusters.Create(client, opts) 55 th.AssertNoErr(t, err) 56 57 defer func() { 58 err = clusters.Delete(client, created.ID) 59 th.AssertNoErr(t, err) 60 }() 61 62 got, err := clusters.Get(client, created.ID) 63 th.AssertNoErr(t, err) 64 65 log.Printf("Creating cluster, ID: %s", got.ID) 66 th.AssertEquals(t, created.ID, got.ID) 67 th.AssertEquals(t, created.Name, got.Name) 68 69 th.CheckNoErr(t, clusters.WaitForClusterOperationSucces(client, created.ID, timeout)) 70 71 list, err := clusters.List(client) 72 th.AssertNoErr(t, err) 73 74 found := false 75 for _, one := range list { 76 if one.ID == created.ID { 77 found = true 78 break 79 } 80 } 81 if !found { 82 t.Errorf("cluster %s is not found in list", created.ID) 83 } 84 85 _, err = clusters.ExtendCluster(client, created.ID, []clusters.ClusterExtendSpecialOpts{ 86 { 87 Type: "ess", 88 NodeSize: 0, 89 DiskSize: 160, 90 }, 91 }) 92 th.AssertNoErr(t, err) 93 94 th.AssertNoErr(t, clusters.WaitForClusterToExtend(client, created.ID, timeout)) 95 96 _, err = clusters.ExtendCluster(client, created.ID, clusters.ClusterExtendCommonOpts{ 97 ModifySize: 1, 98 }) 99 th.AssertNoErr(t, err) 100 101 th.AssertNoErr(t, clusters.WaitForClusterToExtend(client, created.ID, timeout)) 102 }