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  }