Documentation
¶
Overview ¶
Package models provides Database Lab struct.
Index ¶
- Constants
- type Alert
- type AlertLevel
- type AlertType
- type Checklist
- type Clone
- type CloneList
- type CloneListView
- type CloneMetadata
- type CloneMetadataView
- type CloneView
- type Cloning
- type CloningView
- type ContainerOptions
- type Database
- type Engine
- type Error
- type ErrorCode
- type FileSystem
- type FileSystemView
- type InstanceStatus
- type InstanceStatusView
- type Interval
- type ObservationResult
- type PoolEntry
- type PoolEntryView
- type RetrievalMode
- type RetrievalStatus
- type Retrieving
- type Size
- type Snapshot
- type SnapshotView
- type Status
- type StatusCode
- type Summary
Constants ¶
const ( StatusOK StatusCode = "OK" StatusCreating StatusCode = "CREATING" StatusResetting StatusCode = "RESETTING" StatusDeleting StatusCode = "DELETING" StatusExporting StatusCode = "EXPORTING" StatusFatal StatusCode = "FATAL" StatusWarning StatusCode = "WARNING" CloneMessageOK = "Clone is ready to accept Postgres connections." CloneMessageCreating = "Clone is being created." CloneMessageResetting = "Clone is being reset." CloneMessageDeleting = "Clone is being deleted." CloneMessageFatal = "Cloning failure." InstanceMessageOK = "Instance is ready" InstanceMessageWarning = "Subsystems that need attention" )
Constants declares available status codes and messages.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Alert ¶
type Alert struct {
Level AlertLevel `json:"level"`
Message string `json:"message"`
LastSeen time.Time `json:"lastSeen"`
Count int `json:"count"`
}
Alert describes retrieval subsystem alert.
type AlertLevel ¶
type AlertLevel string
AlertLevel defines levels of retrieval alert.
const ( // ErrorLevel defines error alerts. ErrorLevel AlertLevel = "error" // WarningLevel defines warning alerts. WarningLevel AlertLevel = "warning" // UnknownLevel defines unknown alerts. UnknownLevel AlertLevel = "unknown" )
func AlertLevelByType ¶
func AlertLevelByType(alertType AlertType) AlertLevel
AlertLevelByType defines relations between alert type and its level.
type Checklist ¶
type Checklist struct {
Success bool `json:"overall_success"`
Duration bool `json:"session_duration_acceptable"`
Locks bool `json:"no_long_dangerous_locks"`
}
Checklist represents a list of observation checks.
type Clone ¶
type Clone struct {
ID string `json:"id"`
Snapshot *Snapshot `json:"snapshot"`
Protected bool `json:"protected"`
DeleteAt string `json:"deleteAt"`
CreatedAt string `json:"createdAt"`
Status Status `json:"status"`
DB Database `json:"db"`
Metadata CloneMetadata `json:"metadata"`
}
Clone defines a clone model.
type CloneList ¶
type CloneList struct {
Cloning Cloning `json:"cloning"`
}
CloneList represents a list of clones.
type CloneListView ¶
type CloneListView struct {
Cloning CloningView `json:"cloning"`
}
CloneListView represents cloning process views.
type CloneMetadata ¶
type CloneMetadata struct {
CloneDiffSize uint64 `json:"cloneDiffSize"`
LogicalSize uint64 `json:"logicalSize"`
CloningTime float64 `json:"cloningTime"`
MaxIdleMinutes uint `json:"maxIdleMinutes"`
}
CloneMetadata contains fields describing a clone model.
type CloneMetadataView ¶
type CloneMetadataView struct {
*CloneMetadata
CloneDiffSize Size `json:"cloneDiffSize"`
LogicalSize Size `json:"logicalSize"`
}
CloneMetadataView represents a view of clone metadata.
type CloneView ¶
type CloneView struct {
*Clone
Snapshot *SnapshotView `json:"snapshot"`
Metadata CloneMetadataView `json:"metadata"`
}
CloneView represents a view of clone model.
type Cloning ¶
type Cloning struct {
ExpectedCloningTime float64 `json:"expectedCloningTime"`
NumClones uint64 `json:"numClones"`
Clones []*Clone `json:"clones"`
}
Cloning represents info about the cloning process.
type CloningView ¶
type CloningView struct {
Clones []*CloneView `json:"clones"`
}
CloningView represents a list of clone views.
type ContainerOptions ¶
type ContainerOptions struct {
DockerImage string `json:"dockerImage"`
ContainerConfig map[string]string `json:"containerConfig"`
}
ContainerOptions describes options for running containers.
type Database ¶
type Database struct {
ConnStr string `json:"connStr"`
Host string `json:"host"`
Port string `json:"port"`
Username string `json:"username"`
Password string `json:"password"`
DBName string `json:"dbName"`
}
Database defines clone database parameters.
type Engine ¶
type Engine struct {
Version string `json:"version"`
StartedAt *time.Time `json:"startedAt,omitempty"`
Telemetry *bool `json:"telemetry,omitempty"`
}
Engine represents info about Database Lab Engine instance.
type Error ¶
Error struct represents a response error.
type FileSystem ¶
type FileSystem struct {
Mode string `json:"mode"`
Size uint64 `json:"size"`
Free uint64 `json:"free"`
Used uint64 `json:"used"`
DataSize uint64 `json:"dataSize"`
UsedBySnapshots uint64 `json:"usedBySnapshots"`
UsedByClones uint64 `json:"usedByClones"`
CompressRatio float64 `json:"compressRatio"`
}
FileSystem describes state of a file system.
type FileSystemView ¶
type FileSystemView struct {
*FileSystem
Size Size `json:"size"`
Free Size `json:"free"`
Used Size `json:"used"`
DataSize Size `json:"dataSize"`
UsedBySnapshots Size `json:"usedBySnapshots"`
UsedByClones Size `json:"usedByClones"`
}
FileSystemView describes a view of file system state.
type InstanceStatus ¶
type InstanceStatus struct {
Status *Status `json:"status"`
Engine Engine `json:"engine"`
Pools []PoolEntry `json:"pools"`
Cloning Cloning `json:"cloning"`
Retrieving Retrieving `json:"retrieving"`
Provisioner ContainerOptions `json:"provisioner"`
}
InstanceStatus represents status of a Database Lab Engine instance.
type InstanceStatusView ¶
type InstanceStatusView struct {
*InstanceStatus
Pools []PoolEntryView `json:"pools"`
}
InstanceStatusView represents view of a Database Lab Engine instance status.
type Interval ¶
type Interval struct {
StartedAt time.Time `json:"started_at"`
Duration float64 `json:"duration"`
Warning string `json:"warning"`
}
Interval represents data of an observation interval.
type ObservationResult ¶
type ObservationResult struct {
Status string `json:"status"`
Intervals []Interval `json:"intervals"`
Summary Summary `json:"summary"`
}
ObservationResult represents a result of observation session.
type PoolEntry ¶
type PoolEntry struct {
Name string `json:"name"`
Mode string `json:"mode"`
DataStateAt string `json:"dataStateAt"`
Status resources.PoolStatus `json:"status"`
CloneList []string `json:"cloneList"`
FileSystem FileSystem `json:"fileSystem"`
}
PoolEntry represents a pool entry.
type PoolEntryView ¶
type PoolEntryView struct {
*PoolEntry
FileSystem FileSystemView `json:"fileSystem"`
}
PoolEntryView represents a pool entry view.
type RetrievalMode ¶
type RetrievalMode string
RetrievalMode defines mode of retrieval subsystem.
const ( // Physical defines physical retrieval mode. Physical RetrievalMode = "physical" // Logical defines logical retrieval mode. Logical RetrievalMode = "logical" // Unknown defines the case when retrieval mode is unknown or is not set. Unknown RetrievalMode = "unknown" )
type RetrievalStatus ¶
type RetrievalStatus string
RetrievalStatus defines status of refreshing data.
const ( // Inactive defines status when data retrieving is disabled. Inactive RetrievalStatus = "inactive" // Failed defines status when data retrieving is failed. Failed RetrievalStatus = "failed" // Refreshing defines status when data retrieving is in progress. Refreshing RetrievalStatus = "refreshing" // Finished defines status when data retrieving is finished. Finished RetrievalStatus = "finished" )
type Retrieving ¶
type Retrieving struct {
Mode RetrievalMode `json:"mode"`
Status RetrievalStatus `json:"status"`
LastRefresh *time.Time `json:"lastRefresh"`
NextRefresh *time.Time `json:"nextRefresh"`
Alerts map[AlertType]Alert `json:"alerts"`
}
Retrieving represents state of retrieval subsystem.
type Size ¶
type Size uint64
Size describes amount of disk space.
func (Size) MarshalJSON ¶
MarshalJSON marshals the Size struct.
type Snapshot ¶
type Snapshot struct {
ID string `json:"id"`
CreatedAt string `json:"createdAt"`
DataStateAt string `json:"dataStateAt"`
PhysicalSize uint64 `json:"physicalSize"`
LogicalSize uint64 `json:"logicalSize"`
Pool string `json:"pool"`
NumClones int `json:"numClones"`
}
Snapshot defines a snapshot entity.
type SnapshotView ¶
type SnapshotView struct {
*Snapshot
PhysicalSize Size `json:"physicalSize"`
LogicalSize Size `json:"logicalSize"`
}
SnapshotView represents a view of snapshot.
type Status ¶
type Status struct {
Code StatusCode `json:"code"`
Message string `json:"message"`
}
Status defines the status of clones and instance.