github.com/gophercloud/gophercloud@v1.11.0/openstack/loadbalancer/v2/pools/doc.go (about) 1 /* 2 Package pools provides information and interaction with Pools and 3 Members of the LBaaS v2 extension for the OpenStack Networking service. 4 5 Example to List Pools 6 7 listOpts := pools.ListOpts{ 8 LoadbalancerID: "c79a4468-d788-410c-bf79-9a8ef6354852", 9 } 10 11 allPages, err := pools.List(networkClient, listOpts).AllPages() 12 if err != nil { 13 panic(err) 14 } 15 16 allPools, err := pools.ExtractMonitors(allPages) 17 if err != nil { 18 panic(err) 19 } 20 21 for _, pools := range allPools { 22 fmt.Printf("%+v\n", pool) 23 } 24 25 Example to Create a Pool 26 27 createOpts := pools.CreateOpts{ 28 LBMethod: pools.LBMethodRoundRobin, 29 Protocol: "HTTP", 30 Name: "Example pool", 31 Tags: []string{"test"}, 32 LoadbalancerID: "79e05663-7f03-45d2-a092-8b94062f22ab", 33 } 34 35 pool, err := pools.Create(networkClient, createOpts).Extract() 36 if err != nil { 37 panic(err) 38 } 39 40 Example to Update a Pool 41 42 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 43 44 newTags := []string{"prod"} 45 updateOpts := pools.UpdateOpts{ 46 Name: "new-name", 47 Tags: &newTags, 48 } 49 50 pool, err := pools.Update(networkClient, poolID, updateOpts).Extract() 51 if err != nil { 52 panic(err) 53 } 54 55 Example to Delete a Pool 56 57 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 58 err := pools.Delete(networkClient, poolID).ExtractErr() 59 if err != nil { 60 panic(err) 61 } 62 63 Example to List Pool Members 64 65 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 66 67 listOpts := pools.ListMemberOpts{ 68 ProtocolPort: 80, 69 } 70 71 allPages, err := pools.ListMembers(networkClient, poolID, listOpts).AllPages() 72 if err != nil { 73 panic(err) 74 } 75 76 allMembers, err := pools.ExtractMembers(allPages) 77 if err != nil { 78 panic(err) 79 } 80 81 for _, member := allMembers { 82 fmt.Printf("%+v\n", member) 83 } 84 85 Example to Create a Member 86 87 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 88 89 weight := 10 90 createOpts := pools.CreateMemberOpts{ 91 Name: "db", 92 SubnetID: "1981f108-3c48-48d2-b908-30f7d28532c9", 93 Address: "10.0.2.11", 94 ProtocolPort: 80, 95 Weight: &weight, 96 } 97 98 member, err := pools.CreateMember(networkClient, poolID, createOpts).Extract() 99 if err != nil { 100 panic(err) 101 } 102 103 Example to Update a Member 104 105 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 106 memberID := "64dba99f-8af8-4200-8882-e32a0660f23e" 107 108 weight := 4 109 updateOpts := pools.UpdateMemberOpts{ 110 Name: "new-name", 111 Weight: &weight, 112 } 113 114 member, err := pools.UpdateMember(networkClient, poolID, memberID, updateOpts).Extract() 115 if err != nil { 116 panic(err) 117 } 118 119 Example to Delete a Member 120 121 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 122 memberID := "64dba99f-8af8-4200-8882-e32a0660f23e" 123 124 err := pools.DeleteMember(networkClient, poolID, memberID).ExtractErr() 125 if err != nil { 126 panic(err) 127 } 128 129 Example to Update Members: 130 131 poolID := "d67d56a6-4a86-4688-a282-f46444705c64" 132 133 weight_1 := 20 134 member1 := pools.BatchUpdateMemberOpts{ 135 Address: "192.0.2.16", 136 ProtocolPort: 80, 137 Name: "web-server-1", 138 SubnetID: "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", 139 Weight: &weight_1, 140 } 141 142 weight_2 := 10 143 member2 := pools.BatchUpdateMemberOpts{ 144 Address: "192.0.2.17", 145 ProtocolPort: 80, 146 Name: "web-server-2", 147 Weight: &weight_2, 148 SubnetID: "bbb35f84-35cc-4b2f-84c2-a6a29bba68aa", 149 } 150 members := []pools.BatchUpdateMemberOpts{member1, member2} 151 152 err := pools.BatchUpdateMembers(networkClient, poolID, members).ExtractErr() 153 if err != nil { 154 panic(err) 155 } 156 */ 157 package pools