models

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2024 License: BSD-3-Clause Imports: 22 Imported by: 0

Documentation

Overview

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2023, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Copyright (C) 2022, Ava Labs, Inc. All rights reserved. See the file LICENSE for licensing terms.

Index

Constants

View Source
const (
	SubnetEvm   = "Subnet-EVM"
	BlobVM      = "Blob VM"
	TimestampVM = "Timestamp VM"
	CustomVM    = "Custom"
)

Variables

View Source
var UndefinedNetwork = Network{}

Functions

func HostAnsibleIDToCloudID

func HostAnsibleIDToCloudID(hostAnsibleID string) (string, string, error)

HostAnsibleIDToCloudID converts a host Ansible ID to a cloud ID.

func HostCloudIDToAnsibleID

func HostCloudIDToAnsibleID(cloudService string, hostCloudID string) (string, error)

func NewHostConnection

func NewHostConnection(h *Host, port uint) (*goph.Client, error)

Types

type AvagoCompatiblity

type AvagoCompatiblity map[string][]string

type CloudConfig

type CloudConfig map[string]RegionConfig

func (*CloudConfig) GetAPIInstanceIDsForRegion

func (ccm *CloudConfig) GetAPIInstanceIDsForRegion(region string) []string

GetAPIInstanceIDsForRegion returns API instance IDs for specific region

func (*CloudConfig) GetAllInstanceIDs

func (ccm *CloudConfig) GetAllInstanceIDs() []string

GetAllInstanceIDs returns all instance IDs

func (*CloudConfig) GetInstanceIDsForRegion

func (ccm *CloudConfig) GetInstanceIDsForRegion(region string) []string

GetInstanceIDsForRegion returns instance IDs for specific region

func (*CloudConfig) GetRegions

func (ccm *CloudConfig) GetRegions() []string

GetRegions returns a slice of strings representing the regions of the RegionConfig.

type ClusterConfig

type ClusterConfig struct {
	Nodes              []string
	APINodes           []string
	Network            Network
	MonitoringInstance string            // instance ID of the separate monitoring instance (if any)
	LoadTestInstance   map[string]string // maps load test name to load test cloud instance ID of the separate load test instance (if any)
	ExtraNetworkData   ExtraNetworkData
	Subnets            []string
}

func (*ClusterConfig) GetAPIHosts

func (cc *ClusterConfig) GetAPIHosts(hosts []*Host) []*Host

GetAPINodes returns a filtered list of API nodes based on the ClusterConfig and given hosts.

func (*ClusterConfig) GetCloudIDs

func (cc *ClusterConfig) GetCloudIDs() []string

func (*ClusterConfig) GetHostRoles

func (cc *ClusterConfig) GetHostRoles(nodeConf NodeConfig) []string

func (*ClusterConfig) GetValidatorHosts

func (cc *ClusterConfig) GetValidatorHosts(hosts []*Host) []*Host

GetValidatorNodes returns the validator nodes from the ClusterConfig.

func (*ClusterConfig) IsAPIHost

func (cc *ClusterConfig) IsAPIHost(hostCloudID string) bool

func (*ClusterConfig) IsAvalancheGoHost

func (cc *ClusterConfig) IsAvalancheGoHost(hostCloudID string) bool

type ClustersConfig

type ClustersConfig struct {
	Version   string
	KeyPair   map[string]string        // maps key pair name to cert path
	Clusters  map[string]ClusterConfig // maps clusterName to nodeID list + network kind
	GCPConfig GCPConfig                // stores GCP project name and filepath to service account JSON key
}

type ClustersConfigV0

type ClustersConfigV0 struct {
	KeyPair   map[string]string   // maps key pair name to cert path
	Clusters  map[string][]string // maps clusterName to nodeID list
	GCPConfig GCPConfig           // stores GCP project name and filepath to service account JSON key
}

type ElasticSubnet

type ElasticSubnet struct {
	SubnetID    ids.ID
	AssetID     ids.ID
	PChainTXID  ids.ID
	TokenName   string
	TokenSymbol string
	Validators  map[string]PermissionlessValidators
	Txs         map[string]ids.ID
}

type ElasticSubnetConfig

type ElasticSubnetConfig struct {
	SubnetID                 ids.ID
	AssetID                  ids.ID
	InitialSupply            uint64
	MaxSupply                uint64
	MinConsumptionRate       uint64
	MaxConsumptionRate       uint64
	MinValidatorStake        uint64
	MaxValidatorStake        uint64
	MinStakeDuration         time.Duration
	MaxStakeDuration         time.Duration
	MinDelegationFee         uint32
	MinDelegatorStake        uint64
	MaxValidatorWeightFactor byte
	UptimeRequirement        uint32
}

type Exportable

type Exportable struct {
	Sidecar         Sidecar
	Genesis         []byte
	ChainConfig     []byte
	SubnetConfig    []byte
	NetworkUpgrades []byte
	NodeConfig      []byte
}

type ExtraNetworkData

type ExtraNetworkData struct {
	CChainTeleporterMessengerAddress string
	CChainTeleporterRegistryAddress  string
}

type GCPConfig

type GCPConfig struct {
	ProjectName        string // name of GCP Project
	ServiceAccFilePath string // location of GCP service account key file path
}

type Host

type Host struct {
	NodeID            string
	IP                string
	SSHUser           string
	SSHPrivateKeyPath string
	SSHCommonArgs     string
	Connection        *goph.Client
}

func (*Host) Command

func (h *Host) Command(script string, env []string, timeout time.Duration) ([]byte, error)

Command executes a shell command on a remote host.

func (*Host) Connect

func (h *Host) Connect(port uint) error

Connect starts a new SSH connection with the provided private key.

func (*Host) Connected

func (h *Host) Connected() bool

func (*Host) Disconnect

func (h *Host) Disconnect() error

func (*Host) Download

func (h *Host) Download(remoteFile string, localFile string, timeout time.Duration) error

Download downloads a file from the remote server to the local machine.

func (*Host) Forward

func (h *Host) Forward(httpRequest string, timeout time.Duration) ([]byte, error)

Forward forwards the TCP connection to a remote address.

func (*Host) GetAnsibleInventoryRecord

func (h *Host) GetAnsibleInventoryRecord() string

func (*Host) GetCloudID

func (h *Host) GetCloudID() string

GetCloudID returns the node ID of the host.

func (*Host) MkdirAll

func (h *Host) MkdirAll(remoteDir string, timeout time.Duration) error

MkdirAll creates a folder on the remote server.

func (*Host) StreamSSHCommand

func (h *Host) StreamSSHCommand(command string, env []string, timeout time.Duration) error

StreamSSHCommand streams the execution of an SSH command on the host.

func (*Host) UntimedForward

func (h *Host) UntimedForward(httpRequest string) ([]byte, error)

UntimedForward forwards the TCP connection to a remote address. Does not support timeouts on the operation.

func (*Host) UntimedMkdirAll

func (h *Host) UntimedMkdirAll(remoteDir string) error

UntimedMkdirAll creates a folder on the remote server. Does not support timeouts on the operation.

func (*Host) Upload

func (h *Host) Upload(localFile string, remoteFile string, timeout time.Duration) error

Upload uploads a local file to a remote file on the host.

func (*Host) WaitForSSHPort

func (h *Host) WaitForSSHPort(port uint, timeout time.Duration) error

WaitForSSHPort waits for the SSH port to become available on the host.

func (*Host) WaitForSSHShell

func (h *Host) WaitForSSHShell(timeout time.Duration) error

WaitForSSHShell waits for the SSH shell to be available on the host within the specified timeout.

type Network

type Network struct {
	Kind        NetworkKind
	ID          uint32
	Endpoint    string
	ClusterName string
}

func NetworkFromNetworkID

func NetworkFromNetworkID(networkID uint32) Network

func NewDevnetNetwork

func NewDevnetNetwork(endpoint string, id uint32) Network

func NewLocalNetwork

func NewLocalNetwork() Network

func NewMainnetNetwork

func NewMainnetNetwork() Network

func NewNetwork

func NewNetwork(kind NetworkKind, id uint32, endpoint string, clusterName string) Network

func NewNetworkFromCluster

func NewNetworkFromCluster(n Network, clusterName string) Network

func NewTahoeNetwork

func NewTahoeNetwork() Network

func (Network) BlockchainEndpoint

func (n Network) BlockchainEndpoint(blockchainID string) string

func (Network) BlockchainWSEndpoint

func (n Network) BlockchainWSEndpoint(blockchainID string) string

func (Network) CChainEndpoint

func (n Network) CChainEndpoint() string

func (Network) CChainWSEndpoint

func (n Network) CChainWSEndpoint() string

func (Network) GenesisParams

func (n Network) GenesisParams() *genesis.Params

func (*Network) HandlePublicNetworkSimulation

func (n *Network) HandlePublicNetworkSimulation()

func (Network) Name

func (n Network) Name() string

func (Network) NetworkIDFlagValue

func (n Network) NetworkIDFlagValue() string

type NetworkData

type NetworkData struct {
	SubnetID                    ids.ID
	TransferSubnetOwnershipTxID ids.ID
	BlockchainID                ids.ID
	RPCVersion                  int
	TeleporterMessengerAddress  string
	TeleporterRegistryAddress   string
}

type NetworkKind

type NetworkKind int64
const (
	Undefined NetworkKind = iota
	Mainnet
	Tahoe
	Local
	Devnet
)

func (NetworkKind) String

func (nk NetworkKind) String() string

type NodeConfig

type NodeConfig struct {
	NodeID        string // instance id on cloud server
	Region        string // region where cloud server instance is deployed
	AMI           string // image id for cloud server dependent on its os (e.g. ubuntu )and region deployed (e.g. us-east-1)
	KeyPair       string // key pair name used on cloud server
	CertPath      string // where the cert is stored in user's local machine ssh directory
	SecurityGroup string // security group used on cloud server
	ElasticIP     string // public IP address of the cloud server
	CloudService  string // which cloud service node is hosted on (AWS / GCP)
	UseStaticIP   bool   // node has a static IP association
	IsMonitor     bool   // node has a monitoring dashboard
	IsAWMRelayer  bool   // node has an AWM relayer service
	IsLoadTest    bool   // node is used to host load test
}

type NodeResult

type NodeResult struct {
	NodeID string
	Value  interface{}
	Err    error
}

type NodeResults

type NodeResults struct {
	Results []NodeResult
	Lock    sync.Mutex
}

func (*NodeResults) AddResult

func (nr *NodeResults) AddResult(nodeID string, value interface{}, err error)

func (*NodeResults) GetErrorHostMap

func (nr *NodeResults) GetErrorHostMap() map[string]error

func (*NodeResults) GetErrorHosts

func (nr *NodeResults) GetErrorHosts() []string

func (*NodeResults) GetNodeList

func (nr *NodeResults) GetNodeList() []string

func (*NodeResults) GetResultMap

func (nr *NodeResults) GetResultMap() map[string]interface{}

func (*NodeResults) GetResults

func (nr *NodeResults) GetResults() []NodeResult

func (*NodeResults) HasErrors

func (nr *NodeResults) HasErrors() bool

func (*NodeResults) HasNodeIDWithError

func (nr *NodeResults) HasNodeIDWithError(nodeID string) bool

func (*NodeResults) Len

func (nr *NodeResults) Len() int

type PermissionlessValidators

type PermissionlessValidators struct {
	TxID ids.ID
}

type RegionConfig

type RegionConfig struct {
	InstanceIDs       []string
	APIInstanceIDs    []string
	PublicIPs         []string
	KeyPair           string
	SecurityGroup     string
	CertFilePath      string
	ImageID           string
	Prefix            string
	CertName          string
	SecurityGroupName string
	NumNodes          int
	InstanceType      string
}

type Sidecar

type Sidecar struct {
	Name                string
	VM                  VMType
	VMVersion           string
	RPCVersion          int
	Subnet              string
	TokenName           string
	TokenSymbol         string
	ChainID             string
	Version             string
	Networks            map[string]NetworkData
	ElasticSubnet       map[string]ElasticSubnet
	ImportedFromAPM     bool
	ImportedVMID        string
	CustomVMRepoURL     string
	CustomVMBranch      string
	CustomVMBuildScript string
	// Teleporter related
	TeleporterReady   bool
	TeleporterKey     string
	TeleporterVersion string
	RunRelayer        bool
	// SubnetEVM based VM's only
	SubnetEVMMainnetChainID uint
}

func (Sidecar) GetVMID

func (sc Sidecar) GetVMID() (string, error)

type VMCompatibility

type VMCompatibility struct {
	RPCChainVMProtocolVersion map[string]int `json:"rpcChainVMProtocolVersion"`
}

type VMType

type VMType string

func VMTypeFromString

func VMTypeFromString(s string) VMType

func (VMType) RepoName

func (v VMType) RepoName() string

Jump to

Keyboard shortcuts

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