github.com/gophercloud/gophercloud@v1.11.0/openstack/networking/v2/extensions/mtu/requests.go (about) 1 package mtu 2 3 import ( 4 "fmt" 5 "net/url" 6 7 "github.com/gophercloud/gophercloud" 8 "github.com/gophercloud/gophercloud/openstack/networking/v2/networks" 9 ) 10 11 // ListOptsExt adds an MTU option to the base ListOpts. 12 type ListOptsExt struct { 13 networks.ListOptsBuilder 14 15 // The maximum transmission unit (MTU) value to address fragmentation. 16 // Minimum value is 68 for IPv4, and 1280 for IPv6. 17 MTU int `q:"mtu"` 18 } 19 20 // ToNetworkListQuery adds the router:external option to the base network 21 // list options. 22 func (opts ListOptsExt) ToNetworkListQuery() (string, error) { 23 q, err := gophercloud.BuildQueryString(opts.ListOptsBuilder) 24 if err != nil { 25 return "", err 26 } 27 28 params := q.Query() 29 if opts.MTU > 0 { 30 params.Add("mtu", fmt.Sprintf("%d", opts.MTU)) 31 } 32 33 q = &url.URL{RawQuery: params.Encode()} 34 return q.String(), err 35 } 36 37 // CreateOptsExt adds an MTU option to the base Network CreateOpts. 38 type CreateOptsExt struct { 39 networks.CreateOptsBuilder 40 41 // The maximum transmission unit (MTU) value to address fragmentation. 42 // Minimum value is 68 for IPv4, and 1280 for IPv6. 43 MTU int `json:"mtu,omitempty"` 44 } 45 46 // ToNetworkCreateMap adds an MTU to the base network creation options. 47 func (opts CreateOptsExt) ToNetworkCreateMap() (map[string]interface{}, error) { 48 base, err := opts.CreateOptsBuilder.ToNetworkCreateMap() 49 if err != nil { 50 return nil, err 51 } 52 53 if opts.MTU == 0 { 54 return base, nil 55 } 56 57 networkMap := base["network"].(map[string]interface{}) 58 networkMap["mtu"] = opts.MTU 59 60 return base, nil 61 } 62 63 // CreateOptsExt adds an MTU option to the base Network UpdateOpts. 64 type UpdateOptsExt struct { 65 networks.UpdateOptsBuilder 66 67 // The maximum transmission unit (MTU) value to address fragmentation. 68 // Minimum value is 68 for IPv4, and 1280 for IPv6. 69 MTU int `json:"mtu,omitempty"` 70 } 71 72 // ToNetworkUpdateMap adds an MTU to the base network uptade options. 73 func (opts UpdateOptsExt) ToNetworkUpdateMap() (map[string]interface{}, error) { 74 base, err := opts.UpdateOptsBuilder.ToNetworkUpdateMap() 75 if err != nil { 76 return nil, err 77 } 78 79 if opts.MTU == 0 { 80 return base, nil 81 } 82 83 networkMap := base["network"].(map[string]interface{}) 84 networkMap["mtu"] = opts.MTU 85 86 return base, nil 87 }