client

package
v0.0.0-...-2750233 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2025 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package client implements a Versa API client

Package client implements a Versa API client

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ApplianceLite

type ApplianceLite struct {
	Name              string `json:"name"`
	UUID              string `json:"uuid"`
	LastUpdatedTime   string `json:"last-updated-time"`
	PingStatus        string `json:"ping-status"`
	SyncStatus        string `json:"sync-status"`
	CreatedAt         string `json:"createdAt"`
	YangCompatibility string `json:"yang-compatibility-status"`
	ServicesStatus    string `json:"services-status"`
	OverallStatus     string `json:"overall-status"`
	// ControlStatus is a misspelled field in the API
	ControlStatus           string      `json:"controll-status"` //nolint:misspell
	PathStatus              string      `json:"path-status"`
	TemplateStatus          string      `json:"templateStatus"`
	OwnerOrg                string      `json:"ownerOrg"`
	Type                    string      `json:"type"`
	SngCount                int         `json:"sngCount"`
	SoftwareVersion         string      `json:"softwareVersion"`
	Connector               string      `json:"connector"`
	ConnectorType           string      `json:"connectorType"`
	BranchID                string      `json:"branchId"`
	Services                []string    `json:"services"`
	IPAddress               string      `json:"ipAddress"`
	Location                string      `json:"location"`
	StartTime               string      `json:"startTime"`
	StolenSuspected         bool        `json:"stolenSuspected"`
	Hardware                Hardware    `json:"Hardware"`
	SPack                   SPack       `json:"SPack"`
	OssPack                 OssPack     `json:"OssPack"`
	RefreshCycleCount       int         `json:"refreshCycleCount"`
	BranchMaintenanceMode   bool        `json:"branch-maintenance-mode"`
	ApplianceTags           []string    `json:"applianceTags"`
	LockDetails             LockDetails `json:"lockDetails"`
	Unreachable             bool        `json:"unreachable"`
	BranchInMaintenanceMode bool        `json:"branchInMaintenanceMode"`
	Nodes                   Nodes       `json:"nodes"`
	UcpeNodes               UcpeNodes   `json:"ucpe-nodes"`
}

ApplianceLite encapsulates metadata for appliances

type ApplianceLiteResponse

type ApplianceLiteResponse struct {
	Appliances []ApplianceLite `json:"appliances"`
	TotalCount int             `json:"totalCount"`
}

ApplianceLiteResponse /versa/ncs-services/vnms/appliance/appliance/lite

type Client

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

Client is an HTTP Versa client.

func NewClient

func NewClient(endpoint, analyticsEndpoint, username, password string, useHTTP bool, options ...ClientOptions) (*Client, error)

NewClient creates a new Versa HTTP client.

func (*Client) GetAppliancesLite

func (client *Client) GetAppliancesLite() ([]ApplianceLite, error)

GetAppliancesLite retrieves a list of appliances in a paginated manner

func (*Client) GetControllerMetadata

func (client *Client) GetControllerMetadata() ([]ControllerStatus, error)

GetControllerMetadata retrieves the controller metadata

func (*Client) GetDirectorStatus

func (client *Client) GetDirectorStatus() (*DirectorStatus, error)

GetDirectorStatus retrieves the director status

type ClientOptions

type ClientOptions func(*Client)

ClientOptions are the functional options for the Versa client

func WithLookback

func WithLookback(lookback time.Duration) ClientOptions

WithLookback is a functional option to set the client lookback interval

func WithMaxAttempts

func WithMaxAttempts(maxAttempts int) ClientOptions

WithMaxAttempts is a functional option to set the client max attempts

func WithMaxCount

func WithMaxCount(maxCount int) ClientOptions

WithMaxCount is a functional option to set the client max count

func WithMaxPages

func WithMaxPages(maxPages int) ClientOptions

WithMaxPages is a functional option to set the client max pages

func WithTLSConfig

func WithTLSConfig(insecure bool, CAFile string) (ClientOptions, error)

WithTLSConfig is a functional option to set the HTTP Client TLS Config

type Content

Content encapsulates the content types of the Versa API

type ControllerResponse

type ControllerResponse struct {
	ControllerStatuses []ControllerStatus `json:"applianceStatus"`
	HAStatus           HAStatus           `json:"haStatus"`
}

ControllerResponse /versa/ncs-services/vnms/dashboard/status/headEnds

type ControllerStatus

type ControllerStatus struct {
	Name       string `json:"name"`
	UUID       string `json:"uuid"`
	Status     string `json:"status"`
	LockStatus string `json:"lockStatus"`
	SyncStatus string `json:"syncStatus"`
	IPAddress  string `json:"ip-address"`
}

ControllerStatus encapsulates metadata for a controller

type DirectorStatus

type DirectorStatus struct {
	HAConfig struct {
		ClusterID                      string   `json:"clusterid"`
		FailoverTimeout                int      `json:"failoverTimeout"`
		SlaveStartTimeout              int      `json:"slaveStartTimeout"`
		AutoSwitchOverTimeout          int      `json:"autoSwitchOverTimeout"`
		AutoSwitchOverEnabled          bool     `json:"autoSwitchOverEnabled"`
		DesignatedMaster               bool     `json:"designatedMaster"`
		StartupMode                    string   `json:"startupMode"`
		MyVnfManagementIPs             []string `json:"myVnfManagementIps"`
		VDSBInterfaces                 []string `json:"vdsbinterfaces"`
		StartupModeHA                  bool     `json:"startupModeHA"`
		MyNcsHaSetAsMaster             bool     `json:"myNcsHaSet"`
		PingViaAnyDeviceSuccessful     bool     `json:"pingViaAnyDeviceSuccessful"`
		PeerReachableViaNcsPortDevices bool     `json:"peerReachableViaNcsPortAndDevices"`
		HAEnabledOnBothNodes           bool     `json:"haEnabledOnBothNodes"`
	} `json:"haConfig"`
	HADetails struct {
		Enabled           bool `json:"enabled"`
		DesignatedMaster  bool `json:"designatedMaster"`
		PeerVnmsHaDetails []struct {
		} `json:"peerVnmsHaDetails"`
		EnableHaInProgress bool `json:"enableHaInProgress"`
	} `json:"haDetails"`
	VDSBInterfaces []string `json:"vdSBInterfaces"`
	SystemDetails  struct {
		CPUCount   int    `json:"cpuCount"`
		CPULoad    string `json:"cpuLoad"`
		Memory     string `json:"memory"`
		MemoryFree string `json:"memoryFree"`
		Disk       string `json:"disk"`
		DiskUsage  string `json:"diskUsage"`
	} `json:"systemDetails"`
	PkgInfo struct {
		Version     string `json:"version"`
		PackageDate string `json:"packageDate"`
		Name        string `json:"name"`
		PackageID   string `json:"packageId"`
		UIPackageID string `json:"uiPackageId"`
		Branch      string `json:"branch"`
	} `json:"pkgInfo"`
	SystemUpTime struct {
		CurrentTime       string `json:"currentTime"`
		ApplicationUpTime string `json:"applicationUpTime"`
		SysProcUptime     string `json:"sysProcUptime"`
		SysUpTimeDetail   string `json:"sysUpTimeDetail"`
	} `json:"systemUpTime"`
}

DirectorStatus /versa/ncs-services/vnms/dashboard/vdStatus

type HAStatus

type HAStatus struct {
	Enabled bool `json:"enabled"`
}

HAStatus encapsulates HA status metadata for a headend

type Hardware

type Hardware struct {
	Model                        string `json:"model"`
	CPUCores                     int    `json:"cpuCores"`
	Memory                       string `json:"memory"`
	LPM                          bool   `json:"lpm"`
	Fanless                      bool   `json:"fanless"`
	IntelQuickAssistAcceleration bool   `json:"intelQuickAssistAcceleration"`
	SerialNo                     string `json:"serialNo"`
	CPUCount                     int    `json:"cpuCount"`
	CPULoad                      int    `json:"cpuLoad"`
	InterfaceCount               int    `json:"interfaceCount"`
	PackageName                  string `json:"packageName"`
	SSD                          bool   `json:"ssd"`
}

Hardware encapsulates hardware metadata for an appliance

type LockDetails

type LockDetails struct {
	User     string `json:"user"`
	LockType string `json:"lockType"`
}

LockDetails encapsulates lock metadata for an appliance

type Nodes

type Nodes struct {
	NodeStatusList []interface{} `json:"nodeStatusList"`
}

Nodes encapsulates node metadata for an appliance

type OssPack

type OssPack struct {
	OsspackVersion string `json:"osspackVersion"`
}

OssPack encapsulates OssPack metadata for an appliance

type SPack

type SPack struct {
	SPackVersion string `json:"spackVersion"`
}

SPack encapsulates SPack metadata for an appliance

type UcpeNodes

type UcpeNodes struct {
	UcpeNodeStatusList []interface{} `json:"ucpeNodeStatusList"`
}

UcpeNodes encapsulates UCPE node metadata for an appliance

Jump to

Keyboard shortcuts

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