Documentation ¶
Overview ¶
Package floatingips provides the ability to manage floating ips through the Nova API.
This API has been deprecated and will be removed from a future release of the Nova API service.
For environements that support this extension, this package can be used regardless of if either Neutron or nova-network is used as the cloud's network service.
Example to List Floating IPs
allPages, err := floatingips.List(computeClient).AllPages() if err != nil { panic(err) } allFloatingIPs, err := floatingips.ExtractFloatingIPs(allPages) if err != nil { panic(err) } for _, fip := range allFloatingIPs { fmt.Printf("%+v\n", fip) }
Example to Create a Floating IP
createOpts := floatingips.CreateOpts{ Pool: "nova", } fip, err := floatingips.Create(computeClient, createOpts).Extract() if err != nil { panic(err) }
Example to Delete a Floating IP
err := floatingips.Delete(computeClient, "floatingip-id").ExtractErr() if err != nil { panic(err) }
Example to Associate a Floating IP With a Server
associateOpts := floatingips.AssociateOpts{ FloatingIP: "10.10.10.2", } err := floatingips.AssociateInstance(computeClient, "server-id", associateOpts).ExtractErr() if err != nil { panic(err) }
Example to Disassociate a Floating IP From a Server
disassociateOpts := floatingips.DisassociateOpts{ FloatingIP: "10.10.10.2", } err := floatingips.DisassociateInstance(computeClient, "server-id", disassociateOpts).ExtractErr() if err != nil { panic(err) }
Index ¶
- func List(client *gophercloud.ServiceClient) pagination.Pager
- type AssociateOpts
- type AssociateOptsBuilder
- type AssociateResult
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteResult
- type DisassociateOpts
- type DisassociateOptsBuilder
- type DisassociateResult
- type FloatingIP
- type FloatingIPPage
- type FloatingIPResult
- type GetResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(client *gophercloud.ServiceClient) pagination.Pager
List returns a Pager that allows you to iterate over a collection of FloatingIPs.
Types ¶
type AssociateOpts ¶
type AssociateOpts struct { // FloatingIP is the Floating IP to associate with an instance. FloatingIP string `json:"address" required:"true"` // FixedIP is an optional fixed IP address of the server. FixedIP string `json:"fixed_address,omitempty"` }
AssociateOpts specifies the required information to associate a Floating IP with an instance
func (AssociateOpts) ToFloatingIPAssociateMap ¶
func (opts AssociateOpts) ToFloatingIPAssociateMap() (map[string]interface{}, error)
ToFloatingIPAssociateMap constructs a request body from AssociateOpts.
type AssociateOptsBuilder ¶
AssociateOptsBuilder allows extensions to add additional parameters to the Associate request.
type AssociateResult ¶
type AssociateResult struct {
gophercloud.ErrResult
}
AssociateResult is the response from a Delete operation. Call its ExtractErr method to determine if the call succeeded or failed.
func AssociateInstance ¶
func AssociateInstance(client *gophercloud.ServiceClient, serverID string, opts AssociateOptsBuilder) (r AssociateResult)
AssociateInstance pairs an allocated Floating IP with a server.
type CreateOpts ¶
type CreateOpts struct { // Pool is the pool of Floating IPs to allocate one from. Pool string `json:"pool" required:"true"` }
CreateOpts specifies a Floating IP allocation request.
func (CreateOpts) ToFloatingIPCreateMap ¶
func (opts CreateOpts) ToFloatingIPCreateMap() (map[string]interface{}, error)
ToFloatingIPCreateMap constructs a request body from CreateOpts.
type CreateOptsBuilder ¶
CreateOptsBuilder allows extensions to add additional parameters to the Create request.
type CreateResult ¶
type CreateResult struct {
FloatingIPResult
}
CreateResult is the response from a Create operation. Call its Extract method to interpret it as a FloatingIP.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
Create requests the creation of a new Floating IP.
type DeleteResult ¶
type DeleteResult struct {
gophercloud.ErrResult
}
DeleteResult is the response from a Delete operation. Call its ExtractErr method to determine if the call succeeded or failed.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, id string) (r DeleteResult)
Delete requests the deletion of a previous allocated Floating IP.
type DisassociateOpts ¶
type DisassociateOpts struct {
FloatingIP string `json:"address" required:"true"`
}
DisassociateOpts specifies the required information to disassociate a Floating IP with a server.
func (DisassociateOpts) ToFloatingIPDisassociateMap ¶
func (opts DisassociateOpts) ToFloatingIPDisassociateMap() (map[string]interface{}, error)
ToFloatingIPDisassociateMap constructs a request body from DisassociateOpts.
type DisassociateOptsBuilder ¶
type DisassociateOptsBuilder interface {
ToFloatingIPDisassociateMap() (map[string]interface{}, error)
}
DisassociateOptsBuilder allows extensions to add additional parameters to the Disassociate request.
type DisassociateResult ¶
type DisassociateResult struct {
gophercloud.ErrResult
}
DisassociateResult is the response from a Delete operation. Call its ExtractErr method to determine if the call succeeded or failed.
func DisassociateInstance ¶
func DisassociateInstance(client *gophercloud.ServiceClient, serverID string, opts DisassociateOptsBuilder) (r DisassociateResult)
DisassociateInstance decouples an allocated Floating IP from an instance
type FloatingIP ¶
type FloatingIP struct { // ID is a unique ID of the Floating IP ID string `json:"-"` // FixedIP is a specific IP on the server to pair the Floating IP with. FixedIP string `json:"fixed_ip,omitempty"` // InstanceID is the ID of the server that is using the Floating IP. InstanceID string `json:"instance_id"` // IP is the actual Floating IP. IP string `json:"ip"` // Pool is the pool of Floating IPs that this Floating IP belongs to. Pool string `json:"pool"` }
A FloatingIP is an IP that can be associated with a server.
func ExtractFloatingIPs ¶
func ExtractFloatingIPs(r pagination.Page) ([]FloatingIP, error)
ExtractFloatingIPs interprets a page of results as a slice of FloatingIPs.
func (*FloatingIP) UnmarshalJSON ¶
func (r *FloatingIP) UnmarshalJSON(b []byte) error
type FloatingIPPage ¶
type FloatingIPPage struct {
pagination.SinglePageBase
}
FloatingIPPage stores a single page of FloatingIPs from a List call.
func (FloatingIPPage) IsEmpty ¶
func (page FloatingIPPage) IsEmpty() (bool, error)
IsEmpty determines whether or not a FloatingIPsPage is empty.
type FloatingIPResult ¶
type FloatingIPResult struct {
gophercloud.Result
}
FloatingIPResult is the raw result from a FloatingIP request.
func (FloatingIPResult) Extract ¶
func (r FloatingIPResult) Extract() (*FloatingIP, error)
Extract is a method that attempts to interpret any FloatingIP resource response as a FloatingIP struct.
type GetResult ¶
type GetResult struct {
FloatingIPResult
}
GetResult is the response from a Get operation. Call its Extract method to interpret it as a FloatingIP.