github.com/gophercloud/gophercloud@v1.11.0/openstack/loadbalancer/v2/loadbalancers/doc.go (about)

     1  /*
     2  Package loadbalancers provides information and interaction with Load Balancers
     3  of the LBaaS v2 extension for the OpenStack Networking service.
     4  
     5  Example to List Load Balancers
     6  
     7  	listOpts := loadbalancers.ListOpts{
     8  		Provider: "haproxy",
     9  	}
    10  
    11  	allPages, err := loadbalancers.List(networkClient, listOpts).AllPages()
    12  	if err != nil {
    13  		panic(err)
    14  	}
    15  
    16  	allLoadbalancers, err := loadbalancers.ExtractLoadBalancers(allPages)
    17  	if err != nil {
    18  		panic(err)
    19  	}
    20  
    21  	for _, lb := range allLoadbalancers {
    22  		fmt.Printf("%+v\n", lb)
    23  	}
    24  
    25  Example to Create a Load Balancer
    26  
    27  	createOpts := loadbalancers.CreateOpts{
    28  		Name:         "db_lb",
    29  		AdminStateUp: gophercloud.Enabled,
    30  		VipSubnetID:  "9cedb85d-0759-4898-8a4b-fa5a5ea10086",
    31  		VipAddress:   "10.30.176.48",
    32  		FlavorID:     "60df399a-ee85-11e9-81b4-2a2ae2dbcce4",
    33  		Provider:     "haproxy",
    34  		Tags:         []string{"test", "stage"},
    35  	}
    36  
    37  	lb, err := loadbalancers.Create(networkClient, createOpts).Extract()
    38  	if err != nil {
    39  		panic(err)
    40  	}
    41  
    42  Example to Create a fully populated Load Balancer
    43  
    44  	createOpts := loadbalancers.CreateOpts{
    45  		Name:         "db_lb",
    46  		AdminStateUp: gophercloud.Enabled,
    47  		VipSubnetID:  "9cedb85d-0759-4898-8a4b-fa5a5ea10086",
    48  		VipAddress:   "10.30.176.48",
    49  		FlavorID:     "60df399a-ee85-11e9-81b4-2a2ae2dbcce4",
    50  		Provider:     "haproxy",
    51  		Tags:         []string{"test", "stage"},
    52  		Listeners: []listeners.CreateOpts{{
    53  			Protocol:     "HTTP",
    54  			ProtocolPort: 8080,
    55  			Name:         "redirect_listener",
    56  			L7Policies: []l7policies.CreateOpts{{
    57  				Name:        "redirect-example.com",
    58  				Action:      l7policies.ActionRedirectToURL,
    59  				RedirectURL: "http://www.example.com",
    60  				Rules: []l7policies.CreateRuleOpts{{
    61  					RuleType:    l7policies.TypePath,
    62  					CompareType: l7policies.CompareTypeRegex,
    63  					Value:       "/images*",
    64  				}},
    65  			}},
    66  			DefaultPool: &pools.CreateOpts{
    67  				LBMethod: pools.LBMethodRoundRobin,
    68  				Protocol: "HTTP",
    69  				Name:     "example pool",
    70  				Members: []pools.BatchUpdateMemberOpts{{
    71  					Address:      "192.0.2.51",
    72  					ProtocolPort: 80,
    73  				},},
    74  				Monitor: &monitors.CreateOpts{
    75  					Name:           "db",
    76  					Type:           "HTTP",
    77  					Delay:          3,
    78  					MaxRetries:     2,
    79  					Timeout:        1,
    80  				},
    81  			},
    82  		}},
    83  	}
    84  
    85  	lb, err := loadbalancers.Create(networkClient, createOpts).Extract()
    86  	if err != nil {
    87  		panic(err)
    88  	}
    89  
    90  Example to Update a Load Balancer
    91  
    92  	lbID := "d67d56a6-4a86-4688-a282-f46444705c64"
    93  	name := "new-name"
    94  	updateOpts := loadbalancers.UpdateOpts{
    95  		Name: &name,
    96  	}
    97  	lb, err := loadbalancers.Update(networkClient, lbID, updateOpts).Extract()
    98  	if err != nil {
    99  		panic(err)
   100  	}
   101  
   102  Example to Delete a Load Balancers
   103  
   104  	deleteOpts := loadbalancers.DeleteOpts{
   105  		Cascade: true,
   106  	}
   107  
   108  	lbID := "d67d56a6-4a86-4688-a282-f46444705c64"
   109  
   110  	err := loadbalancers.Delete(networkClient, lbID, deleteOpts).ExtractErr()
   111  	if err != nil {
   112  		panic(err)
   113  	}
   114  
   115  Example to Get the Status of a Load Balancer
   116  
   117  	lbID := "d67d56a6-4a86-4688-a282-f46444705c64"
   118  	status, err := loadbalancers.GetStatuses(networkClient, LBID).Extract()
   119  	if err != nil {
   120  		panic(err)
   121  	}
   122  
   123  Example to Get the Statistics of a Load Balancer
   124  
   125  	lbID := "d67d56a6-4a86-4688-a282-f46444705c64"
   126  	stats, err := loadbalancers.GetStats(networkClient, LBID).Extract()
   127  	if err != nil {
   128  		panic(err)
   129  	}
   130  
   131  Example to Failover a Load Balancers
   132  
   133  	lbID := "d67d56a6-4a86-4688-a282-f46444705c64"
   134  
   135  	err := loadbalancers.Failover(networkClient, lbID).ExtractErr()
   136  	if err != nil {
   137  		panic(err)
   138  	}
   139  */
   140  package loadbalancers