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