Documentation
¶
Index ¶
Constants ¶
const ( // The usage number for DATA,TEMP. Set internally by Vertica. UsageIsDataTemp = 3 // The usage number for DEPOT. Set internally by Vertica. UsageIsDepot = 5 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ATPlanner ¶
type ATPlanner struct {
Database Database
CommunalLocation CommunalLocation
Log logr.Logger
ParseComplete bool
}
func (*ATPlanner) ApplyChanges ¶
ApplyChanges will update the input vdb based on things it found during analysis. Return true if the vdb was updated.
func (*ATPlanner) IsCompatible ¶
IsCompatible will check the vdb and extracted revive info to see if everything is compatible. Returns a failure if an error is detected.
type CommunalLocation ¶
type CommunalLocation struct {
CommunalStorageURL string `json:"communal_storage_url"`
NumShards string `json:"num_shards"`
DepotPath string `json:"depot_path"`
DepotSize string `json:"depot_size"`
}
CommunalLocation shows information about the database's communal storage
type Database ¶
type Database struct {
Nodes []Node `json:"nodes"`
Name string `json:"name"`
Version int `json:"version"`
SpreadVersion int `json:"spreadversion"`
ControlMode string `json:"controlmode"`
WillUgrade bool `json:"willupgrade"`
SpreadEncryption string `json:"spreadEncryption"`
SpreadEncryptionInUse bool `json:"spreadEncryptionInUse"`
}
Database is a top-level database struct
type Node ¶
type Node struct {
Name string `json:"name"`
OID int64 `json:"oid"`
CatalogPath string `json:"catalogpath"`
StorageLocs []string `json:"storagelocs"`
VStorageLocations []StorageLocation `json:"_vstorage_locations"`
CommunalStorageLocation StorageLocation `json:"_communal_storage_location"`
Host string `json:"host"`
Port int `json:"port"`
ControlNode int64 `json:"controlnode"`
Deps [][]string `json:"deps"`
StartCmd string `json:"startcmd"`
IsPrimary bool `json:"isprimary"`
}
Node shows information about a single node
func (*Node) GetDataPaths ¶
GetDataPaths returns the data paths for the node
func (*Node) GetDepotPath ¶
GetDepotPath returns the depot paths for the node
type Planner ¶
type Planner interface {
// Analyze will look at the given output, from revive --display-only, and
// parse it into Go structs.
Parse(op string) error
// IsCompatible will check if the revive will even work in k8s. A failure
// message is returned if it isn't compatible.
IsCompatible() (string, bool)
// ApplyChanges will update the input vdb based on things it found during
// analysis. Return true if the vdb was updated.
ApplyChanges(vdb *vapi.VerticaDB) (bool, error)
}
func MakeATPlanner ¶
MakeATPlanner is a factory function for the Planner interface. This makes one specific to admintools output.
type StorageLocation ¶
type StorageLocation struct {
Name string `json:"name"`
Label string `json:"label"`
OID int64 `json:"oid"`
Path string `json:"path"`
SharingType int `json:"sharing_type"`
Usage int `json:"usage"`
Size int `json:"size"`
Site int64 `json:"site"`
}
StorageLocation has details about a single storage location