github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/swr/v2/domain_test.go (about) 1 package v2 2 3 import ( 4 "testing" 5 6 "github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients" 7 "github.com/opentelekomcloud/gophertelekomcloud/openstack/swr/v2/domains" 8 th "github.com/opentelekomcloud/gophertelekomcloud/testhelper" 9 ) 10 11 func TestAccessDomainWorkflow(t *testing.T) { 12 client, err := clients.NewSwrV2Client() 13 th.AssertNoErr(t, err) 14 15 // setup deps 16 orgName := "domaintest" 17 dep := dependencies{t: t, client: client} 18 dep.createOrganization(orgName) 19 t.Cleanup(func() { dep.deleteOrganization(orgName) }) 20 21 repoName := "repodomain" 22 dep.createRepository(orgName, repoName) 23 t.Cleanup(func() { dep.deleteRepository(orgName, repoName) }) 24 25 domainToShare := clients.EnvOS.GetEnv("DOMAIN_NAME_2") 26 if domainToShare == "" { 27 t.Skipf("OS_DOMAIN_NAME_2 env var is missing but SWR domain test requires it") 28 } 29 opts := domains.CreateOpts{ 30 Namespace: orgName, 31 Repository: repoName, 32 AccessDomain: domainToShare, 33 Permit: "read", 34 Deadline: "forever", 35 } 36 th.AssertNoErr(t, domains.Create(client, opts)) 37 38 t.Cleanup(func() { 39 err = domains.Delete(client, domains.GetOpts{ 40 Namespace: orgName, 41 Repository: repoName, 42 AccessDomain: domainToShare, 43 }) 44 th.AssertNoErr(t, err) 45 }) 46 47 accessDomains, err := domains.List(client, domains.ListOpts{ 48 Namespace: orgName, 49 Repository: repoName, 50 }) 51 th.AssertNoErr(t, err) 52 53 found := false 54 for _, d := range accessDomains { 55 if d.AccessDomain == domainToShare { 56 found = true 57 break 58 } 59 } 60 if !found { 61 t.Errorf("access domain %s is not found in the list", domainToShare) 62 } 63 64 updateOpts := domains.UpdateOpts{ 65 Namespace: orgName, 66 Repository: repoName, 67 AccessDomain: domainToShare, 68 Permit: "read", // only read premission is possible 69 Deadline: "2024-01-01T00:00:00.000Z", 70 Description: "Updated description", 71 } 72 th.AssertNoErr(t, domains.Update(client, updateOpts)) 73 74 domain, err := domains.Get(client, domains.GetOpts{ 75 Namespace: orgName, 76 Repository: repoName, 77 AccessDomain: domainToShare, 78 }) 79 th.AssertNoErr(t, err) 80 th.CheckEquals(t, domainToShare, domain.AccessDomain) 81 th.CheckEquals(t, updateOpts.Permit, domain.Permit) 82 th.CheckEquals(t, true, domain.Status) 83 th.CheckEquals(t, updateOpts.Description, domain.Description) 84 }