common

package
v1.0.25 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2019 License: MIT Imports: 15 Imported by: 19

Documentation

Index

Constants

View Source
const (
	// Operating environment.
	OptEnvironment      = "environment"
	OptEnvironmentAlias = "e"
	OptEnvironmentAzure = "azure"
	OptEnvironmentMAS   = "mas"

	// API server URL.
	OptAPIServerURL      = "api-url"
	OptAPIServerURLAlias = "u"
	OptCnsURL            = "cns-url"
	OptCnsURLAlias       = "c"

	// Logging level.
	OptLogLevel      = "log-level"
	OptLogLevelAlias = "l"
	OptLogLevelInfo  = "info"
	OptLogLevelDebug = "debug"

	// Logging target.
	OptLogTarget       = "log-target"
	OptLogTargetAlias  = "t"
	OptLogTargetSyslog = "syslog"
	OptLogTargetStderr = "stderr"
	OptLogTargetFile   = "logfile"
	OptLogStdout       = "stdout"
	OptLogMultiWrite   = "stdoutfile"

	// Logging location
	OptLogLocation      = "log-location"
	OptLogLocationAlias = "o"

	// IPAM query URL.
	OptIpamQueryUrl      = "ipam-query-url"
	OptIpamQueryUrlAlias = "q"

	// IPAM query interval.
	OptIpamQueryInterval      = "ipam-query-interval"
	OptIpamQueryIntervalAlias = "i"

	// Start CNM
	OptStartAzureCNM      = "start-azure-cnm"
	OptStartAzureCNMAlias = "startcnm"

	// Interval to send reports to host
	OptReportToHostInterval      = "report-interval"
	OptReportToHostIntervalAlias = "hostinterval"

	// Version.
	OptVersion      = "version"
	OptVersionAlias = "v"

	// Help.
	OptHelp      = "help"
	OptHelpAlias = "h"

	// CNI binary location
	OptNetPluginPath      = "net-plugin-path"
	OptNetPluginPathAlias = "np"

	// CNI binary location
	OptNetPluginConfigFile      = "net-plugin-config-file"
	OptNetPluginConfigFileAlias = "npconfig"

	// Telemetry config Location
	OptTelemetryConfigDir      = "telemetry-config-file"
	OptTelemetryConfigDirAlias = "d"

	// Create ext Hns network
	OptCreateDefaultExtNetworkType      = "create-defaultextnetwork-type"
	OptCreateDefaultExtNetworkTypeAlias = "defaultextnetworktype"

	// Disable Telemetry
	OptTelemetry      = "telemetry"
	OptTelemetryAlias = "dt"
)

Command line options.

Variables

This section is empty.

Functions

func CheckIfFileExists added in v1.0.3

func CheckIfFileExists(filepath string) (bool, error)

func CreateDirectory added in v1.0.3

func CreateDirectory(dirPath string) error

func GetArg

func GetArg(name string) interface{}

GetArg returns the parsed value of the given argument.

func GetInterfaceSubnetWithSpecificIp added in v1.0.8

func GetInterfaceSubnetWithSpecificIp(ipAddr string) *net.IPNet

func IpToInt

func IpToInt(ip net.IP) uint32

func LogNetworkInterfaces

func LogNetworkInterfaces()

LogNetworkInterfaces logs the host's network interfaces in the default namespace.

func ParseArgs

func ParseArgs(args *ArgumentList, usage func())

ParseArgs parses and validates command line arguments based on rules in the given ArgumentList.

func ReadFileByLines added in v1.0.21

func ReadFileByLines(filename string) ([]string, error)

ReadFileByLines reads file line by line and return array of lines.

func StartProcess

func StartProcess(path string, args []string) error

Types

type Argument

type Argument struct {
	Name         string
	Shorthand    string
	Description  string
	Type         string
	DefaultValue interface{}
	Value        interface{}
	ValueMap     map[string]interface{}
	// contains filtered or unexported fields
}

Argument represents a command line argument.

type ArgumentList

type ArgumentList []*Argument

ArgumentList represents a set of command line arguments.

type IpamApi

type IpamApi interface {
}

IPAM internal interface.

type Listener

type Listener struct {
	URL *url.URL
	// contains filtered or unexported fields
}

Listener represents an HTTP listener.

func NewListener

func NewListener(u *url.URL) (*Listener, error)

NewListener creates a new Listener.

func (*Listener) AddEndpoint

func (listener *Listener) AddEndpoint(endpoint string)

AddEndpoint registers a protocol endpoint.

func (*Listener) AddHandler

func (listener *Listener) AddHandler(path string, handler func(http.ResponseWriter, *http.Request))

AddHandler registers a protocol handler.

func (*Listener) Decode

func (listener *Listener) Decode(w http.ResponseWriter, r *http.Request, request interface{}) error

Decode receives and decodes JSON payload to a request.

func (*Listener) Encode

func (listener *Listener) Encode(w http.ResponseWriter, response interface{}) error

Encode encodes and sends a response as JSON payload.

func (*Listener) GetEndpoints

func (listener *Listener) GetEndpoints() []string

GetEndpoints returns the list of registered protocol endpoints.

func (*Listener) GetMux

func (listener *Listener) GetMux() *http.ServeMux

GetMux returns the HTTP mux for the listener.

func (*Listener) Start

func (listener *Listener) Start(errChan chan error) error

Start creates the listener socket and starts the HTTP server.

func (*Listener) Stop

func (listener *Listener) Stop()

Stop stops listening for requests.

type NetApi

type NetApi interface {
	AddExternalInterface(ifName string, subnet string) error
}

Network internal interface.

type Plugin

type Plugin struct {
	Name    string
	Version string
	Options map[string]interface{}
	ErrChan chan error
	Store   store.KeyValueStore
}

Plugin is the parent class that implements behavior common to all plugins.

func NewPlugin

func NewPlugin(name, version string) (*Plugin, error)

NewPlugin creates a new Plugin object.

func (*Plugin) GetOption

func (plugin *Plugin) GetOption(key string) interface{}

GetOption gets the option value for the given key.

func (*Plugin) Initialize

func (plugin *Plugin) Initialize(config *PluginConfig) error

Initialize initializes the plugin.

func (*Plugin) SetOption

func (plugin *Plugin) SetOption(key string, value interface{})

SetOption sets the option value for the given key.

func (*Plugin) Uninitialize

func (plugin *Plugin) Uninitialize()

Uninitialize cleans up the plugin.

type PluginApi

type PluginApi interface {
	Start(*PluginConfig) error
	Stop()
	GetOption(string) interface{}
	SetOption(string, interface{})
}

Plugin base interface.

type PluginConfig

type PluginConfig struct {
	Version  string
	NetApi   NetApi
	IpamApi  IpamApi
	Listener *Listener
	ErrChan  chan error
	Store    store.KeyValueStore
}

Plugin common configuration.

type XmlDocument

type XmlDocument struct {
	XMLName   xml.Name `xml:"Interfaces"`
	Interface []struct {
		XMLName    xml.Name `xml:"Interface"`
		MacAddress string   `xml:"MacAddress,attr"`
		IsPrimary  bool     `xml:"IsPrimary,attr"`

		IPSubnet []struct {
			XMLName xml.Name `xml:"IPSubnet"`
			Prefix  string   `xml:"Prefix,attr"`

			IPAddress []struct {
				XMLName   xml.Name `xml:"IPAddress"`
				Address   string   `xml:"Address,attr"`
				IsPrimary bool     `xml:"IsPrimary,attr"`
			}
		}
	}
}

XmlDocument - Azure host agent XML document format.

Jump to

Keyboard shortcuts

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