| // Package api defines the data structure to be used in the request/response |
| // messages between libnetwork and the remote ipam plugin |
| package api |
| |
| import "github.com/docker/docker/libnetwork/ipamapi" |
| |
| // Response is the basic response structure used in all responses |
| type Response struct { |
| Error string |
| } |
| |
| // IsSuccess returns whether the plugin response is successful |
| func (r *Response) IsSuccess() bool { |
| return r.Error == "" |
| } |
| |
| // GetError returns the error from the response, if any. |
| func (r *Response) GetError() string { |
| return r.Error |
| } |
| |
| // GetCapabilityResponse is the response of GetCapability request |
| type GetCapabilityResponse struct { |
| Response |
| RequiresMACAddress bool |
| RequiresRequestReplay bool |
| } |
| |
| // ToCapability converts the capability response into the internal ipam driver capability structure |
| func (capRes GetCapabilityResponse) ToCapability() *ipamapi.Capability { |
| return &ipamapi.Capability{ |
| RequiresMACAddress: capRes.RequiresMACAddress, |
| RequiresRequestReplay: capRes.RequiresRequestReplay, |
| } |
| } |
| |
| // GetAddressSpacesResponse is the response to the “get default address spaces“ request message |
| type GetAddressSpacesResponse struct { |
| Response |
| LocalDefaultAddressSpace string |
| GlobalDefaultAddressSpace string |
| } |
| |
| // RequestPoolRequest represents the expected data in a “request address pool“ request message |
| type RequestPoolRequest struct { |
| AddressSpace string |
| Pool string |
| SubPool string |
| Options map[string]string |
| V6 bool |
| } |
| |
| // RequestPoolResponse represents the response message to a “request address pool“ request |
| type RequestPoolResponse struct { |
| Response |
| PoolID string |
| Pool string // CIDR format |
| Data map[string]string |
| } |
| |
| // ReleasePoolRequest represents the expected data in a “release address pool“ request message |
| type ReleasePoolRequest struct { |
| PoolID string |
| } |
| |
| // ReleasePoolResponse represents the response message to a “release address pool“ request |
| type ReleasePoolResponse struct { |
| Response |
| } |
| |
| // RequestAddressRequest represents the expected data in a “request address“ request message |
| type RequestAddressRequest struct { |
| PoolID string |
| Address string |
| Options map[string]string |
| } |
| |
| // RequestAddressResponse represents the expected data in the response message to a “request address“ request |
| type RequestAddressResponse struct { |
| Response |
| Address string // in CIDR format |
| Data map[string]string |
| } |
| |
| // ReleaseAddressRequest represents the expected data in a “release address“ request message |
| type ReleaseAddressRequest struct { |
| PoolID string |
| Address string |
| } |
| |
| // ReleaseAddressResponse represents the response message to a “release address“ request |
| type ReleaseAddressResponse struct { |
| Response |
| } |