github.com/gophercloud/gophercloud@v1.11.0/internal/acceptance/openstack/dns/v2/transfers_test.go (about) 1 //go:build acceptance || dns || transfers 2 // +build acceptance dns transfers 3 4 package v2 5 6 import ( 7 "testing" 8 9 "github.com/gophercloud/gophercloud/internal/acceptance/clients" 10 identity "github.com/gophercloud/gophercloud/internal/acceptance/openstack/identity/v3" 11 "github.com/gophercloud/gophercloud/internal/acceptance/tools" 12 transferAccepts "github.com/gophercloud/gophercloud/openstack/dns/v2/transfer/accept" 13 transferRequests "github.com/gophercloud/gophercloud/openstack/dns/v2/transfer/request" 14 th "github.com/gophercloud/gophercloud/testhelper" 15 ) 16 17 func TestTransferRequestCRUD(t *testing.T) { 18 // Create new Zone 19 client, err := clients.NewDNSV2Client() 20 th.AssertNoErr(t, err) 21 22 zone, err := CreateZone(t, client) 23 th.AssertNoErr(t, err) 24 defer DeleteZone(t, client, zone) 25 26 // Create transfers request to new tenant 27 transferRequest, err := CreateTransferRequest(t, client, zone, "123") 28 th.AssertNoErr(t, err) 29 defer DeleteTransferRequest(t, client, transferRequest) 30 31 allTransferRequestsPages, err := transferRequests.List(client, nil).AllPages() 32 th.AssertNoErr(t, err) 33 34 allTransferRequests, err := transferRequests.ExtractTransferRequests(allTransferRequestsPages) 35 th.AssertNoErr(t, err) 36 37 var foundRequest bool 38 for _, tr := range allTransferRequests { 39 tools.PrintResource(t, &tr) 40 if transferRequest.ZoneID == tr.ZoneID { 41 foundRequest = true 42 } 43 } 44 th.AssertEquals(t, foundRequest, true) 45 46 description := "new description" 47 updateOpts := transferRequests.UpdateOpts{ 48 Description: description, 49 } 50 51 newTransferRequest, err := transferRequests.Update(client, transferRequest.ID, updateOpts).Extract() 52 th.AssertNoErr(t, err) 53 54 tools.PrintResource(t, &newTransferRequest) 55 th.AssertEquals(t, newTransferRequest.Description, description) 56 } 57 58 func TestTransferRequestAccept(t *testing.T) { 59 // Create new project 60 identityClient, err := clients.NewIdentityV3Client() 61 th.AssertNoErr(t, err) 62 63 project, err := identity.CreateProject(t, identityClient, nil) 64 th.AssertNoErr(t, err) 65 defer identity.DeleteProject(t, identityClient, project.ID) 66 67 // Create new Zone 68 client, err := clients.NewDNSV2Client() 69 th.AssertNoErr(t, err) 70 71 zone, err := CreateZone(t, client) 72 th.AssertNoErr(t, err) 73 defer DeleteZone(t, client, zone) 74 75 // Create transfers request to new tenant 76 transferRequest, err := CreateTransferRequest(t, client, zone, project.ID) 77 78 // Accept Zone Transfer Request 79 transferAccept, err := CreateTransferAccept(t, client, transferRequest.ID, transferRequest.Key) 80 81 allTransferAcceptsPages, err := transferAccepts.List(client, nil).AllPages() 82 th.AssertNoErr(t, err) 83 84 allTransferAccepts, err := transferAccepts.ExtractTransferAccepts(allTransferAcceptsPages) 85 th.AssertNoErr(t, err) 86 87 var foundAccept bool 88 for _, ta := range allTransferAccepts { 89 tools.PrintResource(t, &ta) 90 if transferAccept.ZoneID == ta.ZoneID { 91 foundAccept = true 92 } 93 } 94 th.AssertEquals(t, foundAccept, true) 95 }