github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/networking/v2/extensions/lbaas_v2/monitors_test.go (about)

     1  package lbaas_v2
     2  
     3  import (
     4  	"testing"
     5  
     6  	golangsdk "github.com/opentelekomcloud/gophertelekomcloud"
     7  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/clients"
     8  	"github.com/opentelekomcloud/gophertelekomcloud/acceptance/tools"
     9  	"github.com/opentelekomcloud/gophertelekomcloud/openstack/networking/v2/extensions/lbaas_v2/monitors"
    10  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    11  )
    12  
    13  func TestLbaasV2MonitorsList(t *testing.T) {
    14  	client, err := clients.NewElbV2Client()
    15  	th.AssertNoErr(t, err)
    16  
    17  	listOpts := monitors.ListOpts{}
    18  	allPages, err := monitors.List(client, listOpts).AllPages()
    19  	th.AssertNoErr(t, err)
    20  
    21  	lbaasMonitors, err := monitors.ExtractMonitors(allPages)
    22  	th.AssertNoErr(t, err)
    23  
    24  	for _, monitor := range lbaasMonitors {
    25  		tools.PrintResource(t, monitor)
    26  	}
    27  }
    28  
    29  func TestLbaasV2MonitorLifeCycle(t *testing.T) {
    30  	client, err := clients.NewElbV2Client()
    31  	th.AssertNoErr(t, err)
    32  
    33  	// Create lbaasV2 Load Balancer
    34  	loadBalancer, err := createLbaasLoadBalancer(t, client)
    35  	th.AssertNoErr(t, err)
    36  	defer deleteLbaasLoadBalancer(t, client, loadBalancer.ID)
    37  
    38  	// Create lbaasV2 pool
    39  	loadBalancerPool, err := createLbaasPool(t, client, loadBalancer.ID)
    40  	th.AssertNoErr(t, err)
    41  	defer deleteLbaasPool(t, client, loadBalancerPool.ID)
    42  
    43  	// Create lbaasV2 monitor
    44  	monitorName := tools.RandomString("create-monitor-", 3)
    45  	t.Logf("Attempting to create LbaasV2 monitor")
    46  
    47  	adminStateUp := false
    48  	createOpts := monitors.CreateOpts{
    49  		PoolID:        loadBalancerPool.ID,
    50  		Type:          "HTTP",
    51  		Delay:         15,
    52  		Timeout:       10,
    53  		MaxRetries:    10,
    54  		Name:          monitorName,
    55  		URLPath:       "/status.php",
    56  		ExpectedCodes: "200",
    57  		AdminStateUp:  &adminStateUp,
    58  	}
    59  	lbaasMonitor, err := monitors.Create(client, createOpts).Extract()
    60  	th.AssertNoErr(t, err)
    61  
    62  	t.Logf("Created LbaasV2 monitor: %s", lbaasMonitor.ID)
    63  
    64  	defer deleteLbaasMonitor(t, client, lbaasMonitor.ID)
    65  	th.AssertEquals(t, false, lbaasMonitor.AdminStateUp)
    66  	th.AssertEquals(t, "", lbaasMonitor.DomainName)
    67  
    68  	tools.PrintResource(t, lbaasMonitor)
    69  
    70  	t.Logf("Attempting to update LbaasV2 monitor")
    71  
    72  	monitorNewName := tools.RandomString("update-monitor-", 3)
    73  	adminStateUp = true
    74  
    75  	updateOpts := monitors.UpdateOpts{
    76  		Name:         monitorNewName,
    77  		AdminStateUp: &adminStateUp,
    78  		DomainName:   "www.test.com",
    79  	}
    80  
    81  	_, err = monitors.Update(client, lbaasMonitor.ID, updateOpts).Extract()
    82  	th.AssertNoErr(t, err)
    83  
    84  	t.Logf("LbaasV2 monitor successfully updated: %s", lbaasMonitor.ID)
    85  
    86  	newLbaasMonitor, err := monitors.Get(client, lbaasMonitor.ID).Extract()
    87  	th.AssertNoErr(t, err)
    88  	th.AssertEquals(t, true, newLbaasMonitor.AdminStateUp)
    89  	th.AssertEquals(t, "www.test.com", newLbaasMonitor.DomainName)
    90  	tools.PrintResource(t, newLbaasMonitor)
    91  }
    92  
    93  func deleteLbaasMonitor(t *testing.T, client *golangsdk.ServiceClient, lbaasMonitorID string) {
    94  	t.Logf("Attempting to delete LbaasV2 monitor: %s", lbaasMonitorID)
    95  
    96  	err := monitors.Delete(client, lbaasMonitorID).ExtractErr()
    97  	th.AssertNoErr(t, err)
    98  
    99  	t.Logf("LbaasV2 monitor is deleted: %s", lbaasMonitorID)
   100  }