agents

package
v0.14.1-0...-9eb17d5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 3, 2020 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package agents provides the ability to retrieve and manage Agents through the Neutron API.

Example of Listing Agents

listOpts := agents.ListOpts{
	AgentType: "Open vSwitch agent",
}

allPages, err := agents.List(networkClient, listOpts).AllPages()
if err != nil {
	panic(err)
}

allAgents, err := agents.ExtractAgents(allPages)
if err != nil {
	panic(err)
}

for _, agent := range allAgents {
	fmt.Printf("%+v\n", agent)
}

Example to Get an Agent

agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
agent, err := agents.Get(networkClient, agentID).Extract()
if err != nil {
	panic(err)
}

Example to Update an Agent

adminStateUp := true
description := "agent description"
updateOpts := &agents.UpdateOpts{
	Description:  &description,
	AdminStateUp: &adminStateUp,
}
agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
agent, err := agents.Update(networkClient, agentID, updateOpts).Extract()
if err != nil {
	panic(err)
}

Example to Delete an Agent

agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
err := agents.Delete(networkClient, agentID).ExtractErr()
if err != nil {
	panic(err)
}

Example to List Networks hosted by a DHCP Agent

agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
networks, err := agents.ListDHCPNetworks(networkClient, agentID).Extract()
if err != nil {
	panic(err)
}

for _, network := range networks {
	fmt.Printf("%+v\n", network)
}

Example to Schedule a network to a DHCP Agent

agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
opts := &agents.ScheduleDHCPNetworkOpts{
	NetworkID: "1ae075ca-708b-4e66-b4a7-b7698632f05f",
}
err := agents.ScheduleDHCPNetwork(networkClient, agentID, opts).ExtractErr()
if err != nil {
	panic(err)
}

Example to Remove a network from a DHCP Agent

agentID := "76af7b1f-d61b-4526-94f7-d2e14e2698df"
networkID := "1ae075ca-708b-4e66-b4a7-b7698632f05f"
err := agents.RemoveDHCPNetwork(networkClient, agentID, networkID).ExtractErr()
if err != nil {
	panic(err)
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func List

List returns a Pager which allows you to iterate over a collection of agents. It accepts a ListOpts struct, which allows you to filter and sort the returned collection for greater efficiency.

Default policy settings return only the agents owned by the project of the user submitting the request, unless the user has the administrative role.

Types

type Agent

type Agent struct {
	// ID is the id of the agent.
	ID string `json:"id"`

	// AdminStateUp is an administrative state of the agent.
	AdminStateUp bool `json:"admin_state_up"`

	// AgentType is a type of the agent.
	AgentType string `json:"agent_type"`

	// Alive indicates whether agent is alive or not.
	Alive bool `json:"alive"`

	// ResourcesSynced indicates whether agent is synced or not.
	// Not all agent types track resources via Placement.
	ResourcesSynced bool `json:"resources_synced"`

	// AvailabilityZone is a zone of the agent.
	AvailabilityZone string `json:"availability_zone"`

	// Binary is an executable binary of the agent.
	Binary string `json:"binary"`

	// Configurations is a configuration specific key/value pairs that are
	// determined by the agent binary and type.
	Configurations map[string]interface{} `json:"configurations"`

	// CreatedAt is a creation timestamp.
	CreatedAt time.Time `json:"-"`

	// StartedAt is a starting timestamp.
	StartedAt time.Time `json:"-"`

	// HeartbeatTimestamp is a last heartbeat timestamp.
	HeartbeatTimestamp time.Time `json:"-"`

	// Description contains agent description.
	Description string `json:"description"`

	// Host is a hostname of the agent system.
	Host string `json:"host"`

	// Topic contains name of AMQP topic.
	Topic string `json:"topic"`
}

Agent represents a Neutron agent.

func ExtractAgents

func ExtractAgents(r pagination.Page) ([]Agent, error)

ExtractAgents interprets the results of a single page from a List() API call, producing a slice of Agents structs.

func (*Agent) UnmarshalJSON

func (r *Agent) UnmarshalJSON(b []byte) error

UnmarshalJSON helps to convert the timestamps into the time.Time type.

type AgentPage

type AgentPage struct {
	pagination.LinkedPageBase
}

AgentPage stores a single page of Agents from a List() API call.

func (AgentPage) IsEmpty

func (r AgentPage) IsEmpty() (bool, error)

IsEmpty determines whether or not a AgentPage is empty.

func (AgentPage) NextPageURL

func (r AgentPage) NextPageURL() (string, error)

NextPageURL is invoked when a paginated collection of agent has reached the end of a page and the pager seeks to traverse over a new one. In order to do this, it needs to construct the next page's URL.

type DeleteResult

type DeleteResult struct {
	gophercloud.ErrResult
}

DeleteResult represents the result of a delete operation. Call its ExtractErr method to determine if the request succeeded or failed.

func Delete

func Delete(c *gophercloud.ServiceClient, id string) (r DeleteResult)

Delete deletes a specific agent based on its ID.

type GetResult

type GetResult struct {
	// contains filtered or unexported fields
}

GetResult represents the result of a get operation. Call its Extract method to interpret it as an Agent.

func Get

func Get(c *gophercloud.ServiceClient, id string) (r GetResult)

Get retrieves a specific agent based on its ID.

func (GetResult) Extract

func (r GetResult) Extract() (*Agent, error)

Extract is a function that accepts a result and extracts an agent resource.

type ListDHCPNetworksResult

type ListDHCPNetworksResult struct {
	gophercloud.Result
}

ListDHCPNetworksResult is the response from a List operation. Call its Extract method to interpret it as networks.

func ListDHCPNetworks

func ListDHCPNetworks(c *gophercloud.ServiceClient, id string) (r ListDHCPNetworksResult)

ListDHCPNetworks returns a list of networks scheduled to a specific dhcp agent.

func (ListDHCPNetworksResult) Extract

func (r ListDHCPNetworksResult) Extract() ([]networks.Network, error)

Extract interprets any ListDHCPNetworksResult as an array of networks.

type ListOpts

type ListOpts struct {
	ID               string `q:"id"`
	AgentType        string `q:"agent_type"`
	Alive            *bool  `q:"alive"`
	AvailabilityZone string `q:"availability_zone"`
	Binary           string `q:"binary"`
	Description      string `q:"description"`
	Host             string `q:"host"`
	Topic            string `q:"topic"`
	Limit            int    `q:"limit"`
	Marker           string `q:"marker"`
	SortKey          string `q:"sort_key"`
	SortDir          string `q:"sort_dir"`
}

ListOpts allows the filtering and sorting of paginated collections through the Neutron API. Filtering is achieved by passing in struct field values that map to the agent attributes you want to see returned. SortKey allows you to sort by a particular agent attribute. SortDir sets the direction, and is either `asc' or `desc'. Marker and Limit are used for the pagination.

func (ListOpts) ToAgentListQuery

func (opts ListOpts) ToAgentListQuery() (string, error)

ToAgentListQuery formats a ListOpts into a query string.

type ListOptsBuilder

type ListOptsBuilder interface {
	ToAgentListQuery() (string, error)
}

ListOptsBuilder allows extensions to add additional parameters to the List request.

type RemoveDHCPNetworkResult

type RemoveDHCPNetworkResult struct {
	gophercloud.ErrResult
}

RemoveDHCPNetworkResult represents the result of a remove a network from a DHCP agent operation. ExtractErr method to determine if the request succeeded or failed.

func RemoveDHCPNetwork

func RemoveDHCPNetwork(c *gophercloud.ServiceClient, id string, networkID string) (r RemoveDHCPNetworkResult)

RemoveDHCPNetwork removes a network from a DHCP agent.

type ScheduleDHCPNetworkOpts

type ScheduleDHCPNetworkOpts struct {
	NetworkID string `json:"network_id" required:"true"`
}

ScheduleDHCPNetworkOpts represents the attributes used when scheduling a network to a DHCP agent.

func (ScheduleDHCPNetworkOpts) ToAgentScheduleDHCPNetworkMap

func (opts ScheduleDHCPNetworkOpts) ToAgentScheduleDHCPNetworkMap() (map[string]interface{}, error)

ToAgentScheduleDHCPNetworkMap builds a request body from ScheduleDHCPNetworkOpts.

type ScheduleDHCPNetworkOptsBuilder

type ScheduleDHCPNetworkOptsBuilder interface {
	ToAgentScheduleDHCPNetworkMap() (map[string]interface{}, error)
}

ScheduleDHCPNetworkOptsBuilder allows extensions to add additional parameters to the ScheduleDHCPNetwork request.

type ScheduleDHCPNetworkResult

type ScheduleDHCPNetworkResult struct {
	gophercloud.ErrResult
}

ScheduleDHCPNetworkResult represents the result of a schedule a network to a DHCP agent operation. ExtractErr method to determine if the request succeeded or failed.

func ScheduleDHCPNetwork

ScheduleDHCPNetwork schedule a network to a DHCP agent.

type UpdateOpts

type UpdateOpts struct {
	Description  *string `json:"description,omitempty"`
	AdminStateUp *bool   `json:"admin_state_up,omitempty"`
}

UpdateOpts represents the attributes used when updating an existing agent.

func (UpdateOpts) ToAgentUpdateMap

func (opts UpdateOpts) ToAgentUpdateMap() (map[string]interface{}, error)

ToAgentUpdateMap builds a request body from UpdateOpts.

type UpdateOptsBuilder

type UpdateOptsBuilder interface {
	ToAgentUpdateMap() (map[string]interface{}, error)
}

UpdateOptsBuilder allows extensions to add additional parameters to the Update request.

type UpdateResult

type UpdateResult struct {
	// contains filtered or unexported fields
}

UpdateResult represents the result of a get operation. Call its Extract method to interpret it as an Agent.

func Update

Update updates a specific agent based on its ID.

func (UpdateResult) Extract

func (r UpdateResult) Extract() (*Agent, error)

Extract is a function that accepts a result and extracts an agent resource.

Directories

Path Synopsis
agents unit tests
agents unit tests

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL