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