github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/acceptance/openstack/elb/v3/monitors_test.go (about)

     1  package v3
     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/elb/v3/monitors"
     9  	th "github.com/opentelekomcloud/gophertelekomcloud/testhelper"
    10  )
    11  
    12  func TestMonitorList(t *testing.T) {
    13  	client, err := clients.NewElbV3Client()
    14  	th.AssertNoErr(t, err)
    15  
    16  	listOpts := monitors.ListOpts{}
    17  	monitorPages, err := monitors.List(client, listOpts).AllPages()
    18  	th.AssertNoErr(t, err)
    19  
    20  	monitorList, err := monitors.ExtractMonitors(monitorPages)
    21  	th.AssertNoErr(t, err)
    22  
    23  	for _, monitor := range monitorList {
    24  		tools.PrintResource(t, monitor)
    25  	}
    26  }
    27  
    28  func TestMonitorLifecycle(t *testing.T) {
    29  	client, err := clients.NewElbV3Client()
    30  	th.AssertNoErr(t, err)
    31  
    32  	loadbalancerID := createLoadBalancer(t, client)
    33  	defer deleteLoadbalancer(t, client, loadbalancerID)
    34  
    35  	poolID := createPool(t, client, loadbalancerID)
    36  	defer deletePool(t, client, poolID)
    37  
    38  	t.Logf("Attempting to Create ELBv3 Monitor")
    39  	monitorName := tools.RandomString("create-monitor-", 3)
    40  	createOpts := monitors.CreateOpts{
    41  		PoolID:        poolID,
    42  		Type:          monitors.TypeHTTP,
    43  		Delay:         1,
    44  		Timeout:       30,
    45  		MaxRetries:    3,
    46  		HTTPMethod:    "OPTIONS",
    47  		ExpectedCodes: "200-299",
    48  		Name:          monitorName,
    49  	}
    50  	monitor, err := monitors.Create(client, createOpts).Extract()
    51  	th.AssertNoErr(t, err)
    52  	defer func() {
    53  		t.Logf("Attempting to Delete ELBv3 Monitor: %s", monitor.ID)
    54  		err := monitors.Delete(client, monitor.ID).ExtractErr()
    55  		th.AssertNoErr(t, err)
    56  		t.Logf("Deleted ELBv3 Monitor: %s", monitor.ID)
    57  	}()
    58  
    59  	th.AssertEquals(t, createOpts.Name, monitor.Name)
    60  	th.AssertEquals(t, createOpts.Type, monitor.Type)
    61  	th.AssertEquals(t, createOpts.MaxRetries, monitor.MaxRetries)
    62  	t.Logf("Created ELBv3 Monitor: %s", monitor.ID)
    63  
    64  	t.Logf("Attempting to Update ELBv3 Monitor")
    65  	monitorName = tools.RandomString("update-monitor-", 3)
    66  	updateOpts := monitors.UpdateOpts{
    67  		Delay:          3,
    68  		Timeout:        35,
    69  		MaxRetries:     5,
    70  		MaxRetriesDown: 3,
    71  		Name:           monitorName,
    72  	}
    73  	_, err = monitors.Update(client, monitor.ID, updateOpts).Extract()
    74  	th.AssertNoErr(t, err)
    75  	t.Logf("Updated ELBv3 Monitor: %s", monitor.ID)
    76  
    77  	newMonitor, err := monitors.Get(client, monitor.ID).Extract()
    78  	th.AssertNoErr(t, err)
    79  	th.AssertEquals(t, updateOpts.Name, newMonitor.Name)
    80  	th.AssertEquals(t, updateOpts.Timeout, newMonitor.Timeout)
    81  	th.AssertEquals(t, updateOpts.Delay, newMonitor.Delay)
    82  	th.AssertEquals(t, updateOpts.MaxRetries, newMonitor.MaxRetries)
    83  	th.AssertEquals(t, createOpts.HTTPMethod, newMonitor.HTTPMethod)
    84  }