github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/ims/members_test.go (about) 1 package ims 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 8 "github.com/opentelekomcloud/gophertelekomcloud/openstack/image/v2/members" 9 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 10 ) 11 12 func TestImageServiceV2MemberLifecycle(t *testing.T) { 13 client, err := clients.NewIMSV2Client() 14 th.AssertNoErr(t, err) 15 16 shareProjectID := clients.EnvOS.GetEnv("PROJECT_ID_2") 17 privateImageID := clients.EnvOS.GetEnv("PRIVATE_IMAGE_ID") 18 if shareProjectID == "" || privateImageID == "" { 19 t.Skipf("OS_PROJECT_ID_2 or OS_PRIVATE_IMAGE_ID env vars are missing but IMS member test requires it") 20 } 21 createOpts := members.MemberOpts{ 22 ImageId: privateImageID, 23 MemberId: shareProjectID, 24 } 25 26 share, err := members.Create(client, createOpts) 27 t.Cleanup(func() { 28 th.AssertNoErr(t, members.Delete(client, members.MemberOpts{ 29 ImageId: privateImageID, 30 MemberId: shareProjectID, 31 })) 32 }) 33 34 th.AssertNoErr(t, err) 35 th.AssertEquals(t, createOpts.MemberId, share.MemberId) 36 th.AssertEquals(t, "pending", share.Status) 37 38 newCloud := clients.EnvOS.GetEnv("CLOUD_2") 39 if newCloud != "" { 40 err = os.Setenv("OS_CLOUD", newCloud) 41 th.AssertNoErr(t, err) 42 _, err := clients.EnvOS.Cloud(newCloud) 43 th.AssertNoErr(t, err) 44 newClient, err := clients.NewIMSV2Client() 45 th.AssertNoErr(t, err) 46 updateOpts := members.UpdateOpts{ 47 ImageId: privateImageID, 48 MemberId: shareProjectID, 49 Status: "accepted", 50 VaultID: "", 51 } 52 _, err = members.Update(newClient, updateOpts) 53 th.AssertNoErr(t, err) 54 55 newShare, err := members.Get(client, createOpts) 56 th.AssertNoErr(t, err) 57 th.AssertEquals(t, updateOpts.Status, newShare.Status) 58 } 59 }