github.com/gophercloud/gophercloud@v1.11.0/openstack/networking/v2/extensions/bgp/speakers/doc.go (about) 1 package speakers 2 3 /* 4 Package speakers contains the functionality for working with Neutron bgp speakers. 5 6 7 1. List BGP Speakers, e.g. GET /bgp-speakers 8 9 Example: 10 11 pages, err := speakers.List(c).AllPages() 12 if err != nil { 13 log.Panic(err) 14 } 15 allSpeakers, err := speakers.ExtractBGPSpeakers(pages) 16 if err != nil { 17 log.Panic(err) 18 } 19 20 for _, speaker := range allSpeakers { 21 log.Printf("%+v", speaker) 22 } 23 24 25 2. Get BGP speakers, e.g. GET /bgp-speakers/{id} 26 27 Example: 28 29 speaker, err := speakers.Get(c, id).Extract() 30 if err != nil { 31 log.Panic(nil) 32 } 33 log.Printf("%+v", *speaker) 34 35 36 3. Create BGP Speaker, a.k.a. POST /bgp-speakers 37 38 Example: 39 40 opts := speakers.CreateOpts{ 41 IPVersion: 6, 42 AdvertiseFloatingIPHostRoutes: false, 43 AdvertiseTenantNetworks: true, 44 Name: "gophercloud-testing-bgp-speaker", 45 LocalAS: "2000", 46 Networks: []string{}, 47 } 48 r, err := speakers.Create(c, opts).Extract() 49 if err != nil { 50 log.Panic(err) 51 } 52 log.Printf("%+v", *r) 53 54 55 5. Delete BGP Speaker, a.k.a. DELETE /bgp-speakers/{id} 56 57 Example: 58 59 err := speakers.Delete(auth, speakerID).ExtractErr() 60 if err != nil { 61 log.Panic(err) 62 } 63 log.Printf("Speaker Deleted") 64 65 66 6. Update BGP Speaker 67 68 Example: 69 70 opts := speakers.UpdateOpts{ 71 Name: "testing-bgp-speaker", 72 AdvertiseTenantNetworks: false, 73 AdvertiseFloatingIPHostRoutes: true, 74 } 75 spk, err := speakers.Update(c, bgpSpeakerID, opts).Extract() 76 if err != nil { 77 log.Panic(err) 78 } 79 log.Printf("%+v", spk) 80 81 82 7. Add BGP Peer, a.k.a. PUT /bgp-speakers/{id}/add_bgp_peer 83 84 Example: 85 86 opts := speakers.AddBGPPeerOpts{BGPPeerID: bgpPeerID} 87 r, err := speakers.AddBGPPeer(c, bgpSpeakerID, opts).Extract() 88 if err != nil { 89 log.Panic(err) 90 } 91 log.Printf("%+v", r) 92 93 94 8. Remove BGP Peer, a.k.a. PUT /bgp-speakers/{id}/remove_bgp_peer 95 96 Example: 97 98 opts := speakers.RemoveBGPPeerOpts{BGPPeerID: bgpPeerID} 99 err := speakers.RemoveBGPPeer(c, bgpSpeakerID, opts).ExtractErr() 100 if err != nil { 101 log.Panic(err) 102 } 103 log.Printf("Successfully removed BGP Peer") 104 105 106 9. Get advertised routes, a.k.a. GET /bgp-speakers/{id}/get_advertised_routes 107 108 Example: 109 110 pages, err := speakers.GetAdvertisedRoutes(c, speakerID).AllPages() 111 if err != nil { 112 log.Panic(err) 113 } 114 routes, err := speakers.ExtractAdvertisedRoutes(pages) 115 if err != nil { 116 log.Panic(err) 117 } 118 for _, r := range routes { 119 log.Printf("%+v", r) 120 } 121 122 123 10. Add geteway network to BGP Speaker, a.k.a. PUT /bgp-speakers/{id}/add_gateway_network 124 125 Example: 126 127 128 opts := speakers.AddGatewayNetworkOpts{NetworkID: networkID} 129 r, err := speakers.AddGatewayNetwork(c, speakerID, opts).Extract() 130 if err != nil { 131 log.Panic(err) 132 } 133 log.Printf("%+v", r) 134 135 136 11. Remove gateway network to BGP Speaker, a.k.a. PUT /bgp-speakers/{id}/remove_gateway_network 137 138 Example: 139 140 opts := speakers.RemoveGatewayNetworkOpts{NetworkID: networkID} 141 err := speakers.RemoveGatewayNetwork(c, speakerID, opts).ExtractErr() 142 if err != nil { 143 log.Panic(err) 144 } 145 log.Printf("Successfully removed gateway network") 146 */