github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/dns/zones_test.go (about)

     1  package dns
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/dns/v2/nameservers"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/dns/v2/zones"
    10  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    11  )
    12  
    13  func TestZonesList(t *testing.T) {
    14  	client, err := clients.NewDNSV2Client()
    15  	th.AssertNoErr(t, err)
    16  
    17  	listOpts := zones.ListOpts{}
    18  	pages, err := zones.List(client, listOpts).AllPages()
    19  	th.AssertNoErr(t, err)
    20  
    21  	allZones, err := zones.ExtractZones(pages)
    22  	th.AssertNoErr(t, err)
    23  
    24  	for _, zone := range allZones {
    25  		tools.PrintResource(t, zone)
    26  	}
    27  }
    28  
    29  func TestZonesCRUD(t *testing.T) {
    30  	client, err := clients.NewDNSV2Client()
    31  	th.AssertNoErr(t, err)
    32  
    33  	t.Logf("Attempting to create DNS public zone")
    34  	zoneName := tools.RandomString("public-zone", 3)
    35  	createOpts := zones.CreateOpts{
    36  		Description: "interesting public zone",
    37  		Name:        zoneName + ".com",
    38  		TTL:         300,
    39  	}
    40  	zone, err := zones.Create(client, createOpts).Extract()
    41  	th.AssertNoErr(t, err)
    42  	t.Logf("Created DNS public zone: %s", zone.ID)
    43  
    44  	n, err := nameservers.List(client, zone.ID).Extract()
    45  	th.AssertNoErr(t, err)
    46  
    47  	for _, nameserver := range n {
    48  		tools.PrintResource(t, nameserver)
    49  	}
    50  
    51  	defer func() {
    52  		t.Logf("Attempting to delete DNS public zone: %s", zone.ID)
    53  		_, err := zones.Delete(client, zone.ID).Extract()
    54  		th.AssertNoErr(t, err)
    55  		t.Logf("Deleted DNS public zone: %s", zone.ID)
    56  	}()
    57  	th.AssertEquals(t, createOpts.TTL, zone.TTL)
    58  
    59  	t.Logf("Attempting to update DNS public zone: %s", zone.ID)
    60  	updateOpts := zones.UpdateOpts{
    61  		Email: "bla-bla@mail.com",
    62  		TTL:   400,
    63  	}
    64  	update, err := zones.Update(client, zone.ID, updateOpts).Extract()
    65  	th.AssertNoErr(t, err)
    66  	t.Logf("Updated DNS public zone")
    67  	th.AssertEquals(t, updateOpts.Email, update.Email)
    68  	th.AssertEquals(t, updateOpts.TTL, update.TTL)
    69  }