monitors

package
v0.5.23 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2022 License: Apache-2.0 Imports: 3 Imported by: 1

Documentation

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 health monitors. It accepts a ListOpts struct, which allows you to filter and sort the returned collection for greater efficiency.

Default policy settings return only those health monitors that are owned by the tenant who submits the request, unless an admin user submits the request.

Types

type CreateOpts

type CreateOpts struct {
	// The Pool to Monitor.
	PoolID string `json:"pool_id" required:"true"`

	// Specifies the health check protocol.
	//
	// The value can be TCP, UDP_CONNECT, HTTP, HTTPS, or PING.
	Type Type `json:"type" required:"true"`

	// The time, in seconds, between sending probes to members.
	Delay int `json:"delay" required:"true"`

	// Specifies the maximum time required for waiting for a response from the health check, in seconds.
	// It is recommended that you set the value less than that of parameter delay.
	Timeout int `json:"timeout" required:"true"`

	// Specifies the number of consecutive health checks when the health check result of a backend server changes
	// from OFFLINE to ONLINE. The value ranges from 1 to 10.
	MaxRetries int `json:"max_retries" required:"true"`

	// Specifies the number of consecutive health checks when the health check result of a backend server changes
	// from ONLINE to OFFLINE.
	MaxRetriesDown int `json:"max_retries_down,omitempty"`

	// Specifies the HTTP request path for the health check.
	// The value must start with a slash (/), and the default value is /. This parameter is available only when type is set to HTTP.
	URLPath string `json:"url_path,omitempty"`

	// Specifies the domain name that HTTP requests are sent to during the health check.
	// This parameter is available only when type is set to HTTP.
	DomainName string `json:"domain_name,omitempty"`

	// The HTTP method used for requests by the Monitor. If this attribute
	// is not specified, it defaults to "GET".
	HTTPMethod string `json:"http_method,omitempty"`

	// Expected HTTP codes for a passing HTTP(S) Monitor. You can either specify
	// a single status like "200", or a range like "200-202".
	ExpectedCodes string `json:"expected_codes,omitempty"`

	// ProjectID is the UUID of the project who owns the Monitor.
	// Only administrative users can specify a project UUID other than their own.
	ProjectID string `json:"project_id,omitempty"`

	// The Name of the Monitor.
	Name string `json:"name,omitempty"`

	// The administrative state of the Monitor. A valid value is true (UP)
	// or false (DOWN).
	AdminStateUp *bool `json:"admin_state_up,omitempty"`

	// The Port of the Monitor.
	MonitorPort int `json:"monitor_port,omitempty"`
}

CreateOpts is the common options' struct used in this package's Create operation.

func (CreateOpts) ToMonitorCreateMap

func (opts CreateOpts) ToMonitorCreateMap() (map[string]interface{}, error)

ToMonitorCreateMap builds a request body from CreateOpts.

type CreateOptsBuilder

type CreateOptsBuilder interface {
	ToMonitorCreateMap() (map[string]interface{}, error)
}

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

type CreateResult

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

CreateResult represents the result of a create operation. Call its Extract method to interpret it as a Monitor.

func Create

func Create(client *golangsdk.ServiceClient, opts CreateOptsBuilder) (r CreateResult)

Create is an operation which provisions a new Health Monitor. There are different types of Monitor you can provision: PING, TCP or HTTP(S). Below are examples of how to create each one.

func (CreateResult) Extract

func (r CreateResult) Extract() (*Monitor, error)

Extract is a function that accepts a result and extracts a Monitor.

type DeleteResult

type DeleteResult struct {
	golangsdk.ErrResult
}

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

func Delete

func Delete(client *golangsdk.ServiceClient, id string) (r DeleteResult)

Delete will permanently delete a particular Monitor based on its unique 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 a Monitor.

func Get

func Get(client *golangsdk.ServiceClient, id string) (r GetResult)

Get retrieves a particular Health Monitor based on its unique ID.

func (GetResult) Extract

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

Extract is a function that accepts a result and extracts a Monitor.

type ListOpts

type ListOpts struct {
	ID            string `q:"id"`
	Name          string `q:"name"`
	TenantID      string `q:"tenant_id"`
	ProjectID     string `q:"project_id"`
	PoolID        string `q:"pool_id"`
	Type          string `q:"type"`
	Delay         int    `q:"delay"`
	Timeout       int    `q:"timeout"`
	MaxRetries    int    `q:"max_retries"`
	HTTPMethod    string `q:"http_method"`
	URLPath       string `q:"url_path"`
	ExpectedCodes string `q:"expected_codes"`
	AdminStateUp  *bool  `q:"admin_state_up"`
	Status        string `q:"status"`
	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 API. Filtering is achieved by passing in struct field values that map to the Monitor attributes you want to see returned. SortKey allows you to sort by a particular Monitor attribute. SortDir sets the direction, and is either `asc' or `desc'. Marker and Limit are used for pagination.

func (ListOpts) ToMonitorListQuery

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

ToMonitorListQuery formats a ListOpts into a query string.

type ListOptsBuilder

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

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

type Monitor

type Monitor struct {
	// The unique ID for the Monitor.
	ID string `json:"id"`

	// The Name of the Monitor.
	Name string `json:"name"`

	// Specifies the project ID.
	ProjectID string `json:"project_id"`

	// The type of probe sent by the load balancer to verify the member state,
	// which is PING, TCP, HTTP, or HTTPS.
	Type Type `json:"type"`

	// The time, in seconds, between sending probes to members.
	Delay int `json:"delay"`

	// The maximum number of seconds for a monitor to wait for a connection to be
	// established before it times out. This value must be less than the delay
	// value.
	Timeout int `json:"timeout"`

	// Specifies the number of consecutive health checks when the health check result of a backend server changes
	// from OFFLINE to ONLINE.
	MaxRetries int `json:"max_retries"`

	// Specifies the number of consecutive health checks when the health check result of a backend server changes
	// from ONLINE to OFFLINE.
	MaxRetriesDown int `json:"max_retries_down"`

	// The HTTP method that the monitor uses for requests.
	HTTPMethod string `json:"http_method"`

	// The HTTP path of the request sent by the monitor to test the health of a
	// member. Must be a string beginning with a forward slash (/).
	URLPath string `json:"url_path"`

	// Domain Name.
	DomainName string `json:"domain_name"`

	// Expected HTTP codes for a passing HTTP(S) monitor.
	ExpectedCodes string `json:"expected_codes"`

	// The administrative state of the health monitor, which is up (true) or
	// down (false).
	AdminStateUp bool `json:"admin_state_up"`

	// The Port of the Monitor.
	MonitorPort int `json:"monitor_port"`

	// List of pools that are associated with the health monitor.
	Pools []structs.ResourceRef `json:"pools"`
}

Monitor represents a load balancer health monitor. A health monitor is used to determine whether back-end members of the VIP's pool are usable for processing a request. A pool can have several health monitors associated with it. There are different types of health monitors supported:

PING: used to ping the members using ICMP. TCP: used to connect to the members using TCP. HTTP: used to send an HTTP request to the member. HTTPS: used to send a secure HTTP request to the member.

When a pool has several monitors associated with it, each member of the pool is monitored by all these monitors. If any monitor declares the member as unhealthy, then the member status is changed to INACTIVE and the member won't participate in its pool's load balancing. In other words, ALL monitors must declare the member to be healthy for it to stay ACTIVE.

func ExtractMonitors

func ExtractMonitors(r pagination.Page) ([]Monitor, error)

ExtractMonitors accepts a Page struct, specifically a MonitorPage struct, and extracts the elements into a slice of Monitor structs. In other words, a generic collection is mapped into a relevant slice.

type MonitorPage

type MonitorPage struct {
	pagination.PageWithInfo
}

MonitorPage is the page returned by a pager when traversing over a collection of health monitors.

func (MonitorPage) IsEmpty

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

IsEmpty checks whether a MonitorPage struct is empty.

type Type

type Type string
const (
	TypePING  Type = "PING"
	TypeTCP   Type = "TCP"
	TypeHTTP  Type = "HTTP"
	TypeHTTPS Type = "HTTPS"
)

Constants that represent approved monitoring types.

type UpdateOpts

type UpdateOpts struct {
	// The time, in seconds, between sending probes to members.
	Delay int `json:"delay,omitempty"`

	// Maximum number of seconds for a Monitor to wait for a ping reply
	// before it times out. The value must be less than the delay value.
	Timeout int `json:"timeout,omitempty"`

	// Number of permissible ping failures before changing the member's
	// status to INACTIVE. Must be a number between 1 and 10.
	MaxRetries int `json:"max_retries,omitempty"`

	MaxRetriesDown int `json:"max_retries_down,omitempty"`

	// URI path that will be accessed if Monitor type is HTTP or HTTPS.
	// Required for HTTP(S) types.
	URLPath string `json:"url_path,omitempty"`

	// Domain Name.
	DomainName string `json:"domain_name,omitempty"`

	// The HTTP method used for requests by the Monitor. If this attribute
	// is not specified, it defaults to "GET". Required for HTTP(S) types.
	HTTPMethod string `json:"http_method,omitempty"`

	// Expected HTTP codes for a passing HTTP(S) Monitor. You can either specify
	// a single status like "200", or a range like "200-202". Required for HTTP(S)
	// types.
	ExpectedCodes string `json:"expected_codes,omitempty"`

	// The Name of the Monitor.
	Name string `json:"name,omitempty"`

	// The administrative state of the Monitor. A valid value is true (UP)
	// or false (DOWN).
	AdminStateUp *bool `json:"admin_state_up,omitempty"`

	// The Port of the Monitor.
	MonitorPort int `json:"monitor_port,omitempty"`

	// The type of probe, which is PING, TCP, HTTP, or HTTPS, that is
	// sent by the load balancer to verify the member state.
	Type string `json:"type,omitempty"`
}

UpdateOpts is the common options' struct used in this package's Update operation.

func (UpdateOpts) ToMonitorUpdateMap

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

ToMonitorUpdateMap builds a request body from UpdateOpts.

type UpdateOptsBuilder

type UpdateOptsBuilder interface {
	ToMonitorUpdateMap() (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 an update operation. Call its Extract method to interpret it as a Monitor.

func Update

func Update(client *golangsdk.ServiceClient, id string, opts UpdateOptsBuilder) (r UpdateResult)

Update is an operation which modifies the attributes of the specified Monitor.

func (UpdateResult) Extract

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

Extract is a function that accepts a result and extracts a Monitor.

Jump to

Keyboard shortcuts

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