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