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  }