github.com/gophercloud/gophercloud@v1.11.0/openstack/networking/v2/extensions/agents/doc.go (about)

     1  /*
     2  Package agents provides the ability to retrieve and manage Agents through the Neutron API.
     3  
     4  Example of Listing Agents
     5  
     6  	listOpts := agents.ListOpts{
     7  		AgentType: "Open vSwitch agent",
     8  	}
     9  
    10  	allPages, err := agents.List(networkClient, listOpts).AllPages()
    11  	if err != nil {
    12  		panic(err)
    13  	}
    14  
    15  	allAgents, err := agents.ExtractAgents(allPages)
    16  	if err != nil {
    17  		panic(err)
    18  	}
    19  
    20  	for _, agent := range allAgents {
    21  		fmt.Printf("%+v\n", agent)
    22  	}
    23  
    24  Example to Get an Agent
    25  
    26  	agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
    27  	agent, err := agents.Get(networkClient, agentID).Extract()
    28  	if err != nil {
    29  		panic(err)
    30  	}
    31  
    32  Example to Update an Agent
    33  
    34  	adminStateUp := true
    35  	description := "agent description"
    36  	updateOpts := &agents.UpdateOpts{
    37  		Description:  &description,
    38  		AdminStateUp: &adminStateUp,
    39  	}
    40  	agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
    41  	agent, err := agents.Update(networkClient, agentID, updateOpts).Extract()
    42  	if err != nil {
    43  		panic(err)
    44  	}
    45  
    46  Example to Delete an Agent
    47  
    48  	agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
    49  	err := agents.Delete(networkClient, agentID).ExtractErr()
    50  	if err != nil {
    51  		panic(err)
    52  	}
    53  
    54  Example to List Networks hosted by a DHCP Agent
    55  
    56  	agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
    57  	networks, err := agents.ListDHCPNetworks(networkClient, agentID).Extract()
    58  	if err != nil {
    59  		panic(err)
    60  	}
    61  
    62  	for _, network := range networks {
    63  		fmt.Printf("%+v\n", network)
    64  	}
    65  
    66  Example to Schedule a network to a DHCP Agent
    67  
    68  	agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
    69  	opts := &agents.ScheduleDHCPNetworkOpts{
    70  		NetworkID: "1ae075ca-708b-4e66-b4a7-b7698632f05f",
    71  	}
    72  	err := agents.ScheduleDHCPNetwork(networkClient, agentID, opts).ExtractErr()
    73  	if err != nil {
    74  		panic(err)
    75  	}
    76  
    77  Example to Remove a network from a DHCP Agent
    78  
    79  	agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
    80  	networkID := "1ae075ca-708b-4e66-b4a7-b7698632f05f"
    81  	err := agents.RemoveDHCPNetwork(networkClient, agentID, networkID).ExtractErr()
    82  	if err != nil {
    83  		panic(err)
    84  	}
    85  
    86  Example to List BGP speakers by dragent
    87  
    88  	pages, err := agents.ListBGPSpeakers(c, agentID).AllPages()
    89  	if err != nil {
    90  		log.Panicf("%v", err)
    91  	}
    92  	allSpeakers, err := agents.ExtractBGPSpeakers(pages)
    93  	if err != nil {
    94  		log.Panicf("%v", err)
    95  	}
    96  	for _, s := range allSpeakers {
    97  		log.Printf("%v", s)
    98  	}
    99  
   100  Example to Schedule bgp speaker to dragent
   101  
   102  	var opts agents.ScheduleBGPSpeakerOpts
   103  	opts.SpeakerID = speakerID
   104  	err := agents.ScheduleBGPSpeaker(c, agentID, opts).ExtractErr()
   105  	if err != nil {
   106  		log.Panic(err)
   107  	}
   108  
   109  Example to Remove bgp speaker from dragent
   110  
   111  	err := agents.RemoveBGPSpeaker(c, agentID, speakerID).ExtractErr()
   112  	if err != nil {
   113  		log.Panic(err)
   114  	}
   115  
   116  Example to list dragents hosting specific bgp speaker
   117  
   118  	pages, err := agents.ListDRAgentHostingBGPSpeakers(client, speakerID).AllPages()
   119  	if err != nil {
   120  		log.Panic(err)
   121  	}
   122  	allAgents, err := agents.ExtractAgents(pages)
   123  	if err != nil {
   124  		log.Panic(err)
   125  	}
   126  	for _, a := range allAgents {
   127  		log.Printf("%+v", a)
   128  	}
   129  
   130  Example to list routers scheduled to L3 agent
   131  
   132          routers, err := agents.ListL3Routers(neutron, "655967f5-d6f3-4732-88f5-617b0ff5c356").Extract()
   133          if err != nil {
   134              log.Panic(err)
   135          }
   136  
   137          for _, r := range routers {
   138              log.Printf("%+v", r)
   139          }
   140  
   141  Example to remove router from L3 agent
   142  
   143  	agentID := "0e1095ae-6f36-40f3-8322-8e1c9a5e68ca"
   144  	routerID := "e6fa0457-efc2-491d-ac12-17ab60417efd"
   145          err = agents.RemoveL3Router(neutron, agentID, routerID).ExtractErr()
   146          if err != nil {
   147              log.Panic(err)
   148          }
   149  
   150  Example to schedule router to L3 agent
   151  
   152  	agentID := "0e1095ae-6f36-40f3-8322-8e1c9a5e68ca"
   153  	routerID := "e6fa0457-efc2-491d-ac12-17ab60417efd"
   154  	err = agents.ScheduleL3Router(neutron, agentID, agents.ScheduleL3RouterOpts{RouterID: routerID}).ExtractErr()
   155          if err != nil {
   156              log.Panic(err)
   157          }
   158  
   159  
   160  */
   161  
   162  package agents