Documentation ¶
Index ¶
- Constants
- func BuildClusterMap(resources []*Resource, rris []*ResourceRequestItem) (rriItemID2Resource map[uint]*Resource, ...)
- type Args
- type Artifacts
- type ClusterRequest
- type ClusterRequestTopology
- type Envs
- type RequestIDList
- type Resource
- type ResourceRequest
- type ResourceRequestItem
- type ResourceRequestItemWithIP
- type ResourceRequestQueue
- type WorkloadReport
- type WorkloadRequest
Constants ¶
const ( // ClusterRequestStatusPending means that the request is in queue ClusterRequestStatusPending = "PENDING" // ClusterRequestStatusReady means that the request is met(get expected resources) but haven't run workloads ClusterRequestStatusReady = "READY" // ClusterRequestStatusRunning means that the request is running some workloads now ClusterRequestStatusRunning = "RUNNING" // ClusterRequestStatusDataCleanPending ... ClusterRequestStatusDataCleanPending = "CLEANING-PENDING" // ClusterRequestStatusDataCleaning ... ClusterRequestStatusDataCleaning = "CLEANING" // ClusterRequestStatusDataCleaningFail ... ClusterRequestStatusDataCleaningFail = "CLEANING-FAIL" // ClusterRequestStatusDone means that the request is finished and resources ClusterRequestStatusDone = "DONE" // ClusterTopoStatusReady ... ClusterTopoStatusReady = "READY" // ClusterTopoStatusOnline ... ClusterTopoStatusOnline = "ONLINE" // WorkloadStatusReady ... WorkloadStatusReady = "READY" // WorkloadStatusRunning ... WorkloadStatusRunning = "RUNNING" // WorkloadStatusDone ... WorkloadStatusDone = "DONE" // WorkloadStatusFail ... WorkloadStatusFail = "FAIL" )
const ( // ResourceStatusOffline ... ResourceStatusOffline = "OFFLINE" // ResourceStatusReady ... ResourceStatusReady = "READY" // ResourceStatusBinding ... ResourceStatusBinding = "BINDING" // ResourceRequestStatusIdle ... ResourceRequestStatusIdle = "IDLE" // ResourceRequestStatusPending ... ResourceRequestStatusPending = "PENDING" // ResourceRequestStatusReady ... ResourceRequestStatusReady = "READY" // ResourceRequestStatusDisable ... ResourceRequestStatusDisable = "DISABLE" )
const ( // WorkloadTypeStandard is default value WorkloadTypeStandard = "standard" // WorkloadTypePR compares with baseline WorkloadTypePR = "PR" // WorkloadTypeDataImporter runs as a importer WorkloadTypeDataImporter = "importer" )
Variables ¶
This section is empty.
Functions ¶
func BuildClusterMap ¶
func BuildClusterMap(resources []*Resource, rris []*ResourceRequestItem) ( rriItemID2Resource map[uint]*Resource, component2Resources map[string][]*Resource, )
BuildClusterMap receives resources and resource request items then builds two maps. rriItemID2Resource maps resource request item id to resource component2Resources maps component name to resources
Types ¶
type Artifacts ¶
type Artifacts struct { gorm.Model CRID uint `gorm:"column:cr_id" json:"cr_id"` UUID string `gorm:"column:uuid" json:"uuid"` }
Artifacts ... 1. prometheus/grafana archive data 2. TiDB/TiKV/PD and workloads logs
type ClusterRequest ¶
type ClusterRequest struct { gorm.Model Name string `gorm:"column:name;type:varchar(255);not null" json:"name"` Config string `gorm:"column:config;type:text" json:"config"` Version string `gorm:"column:version;type:varchar(255);not null" json:"version"` PDVersion string `gorm:"column:pd_version;type:varchar(255)" json:"pd_version"` TiDBVersion string `gorm:"column:tidb_version;type:varchar(255)" json:"tidb_version"` TiKVVersion string `gorm:"column:tikv_version;type:varchar(255)" json:"tikv_version"` RRID uint `gorm:"column:rr_id;not null" json:"rr_id"` Status string `gorm:"column:status;type:varchar(255);not null" json:"status"` }
ClusterRequest ...
type ClusterRequestTopology ¶
type ClusterRequestTopology struct { gorm.Model Component string `gorm:"column:component;type:varchar(255);not null" json:"component"` DeployPath string `gorm:"column:deploy_path;type:varchar(255);not null" json:"deploy_path"` CRID uint `gorm:"column:cr_id;not null" json:"cr_id"` RRIItemID uint `gorm:"column:rri_item_id;not null" json:"rri_item_id"` // READY // ONLINE Status string `gorm:"column:status;not null" json:"status"` }
ClusterRequestTopology defines which component is installed on a Resource.
type Resource ¶
type Resource struct { gorm.Model IP string `gorm:"column:ip;type:varchar(20);unique;not null" json:"ip"` Username string `gorm:"column:username;type:varchar(50);not null" json:"username"` InstanceType string `gorm:"column:instance_type;type:varchar(100);not null" json:"instance_type"` Status string `gorm:"column:status;type:varchar(255);not null" json:"status"` RRID uint `gorm:"column:rr_id" json:"rr_id"` }
Resource means (physical- or vm-)machine
type ResourceRequest ¶
type ResourceRequest struct { gorm.Model Name string `gorm:"column:name;type:varchar(255);unique;not null"` Status string `gorm:"column:status;type:varchar(255);not null"` CRID uint `gorm:"column:cr_id"` }
ResourceRequest ...
type ResourceRequestItem ¶
type ResourceRequestItem struct { gorm.Model ItemID uint `gorm:"column:item_id;not null" json:"item_id"` InstanceType string `gorm:"column:instance_type;type:varchar(100);not null" json:"instance_type"` RRID uint `gorm:"column:rr_id;not null" json:"rr_id"` RID uint `gorm:"column:r_id" json:"r_id"` Static bool `gorm:"column:static" json:"static"` Components string `gorm:"column:components" json:"components"` // Components records which *_servers are serving on this machine }
ResourceRequestItem ...
type ResourceRequestItemWithIP ¶
type ResourceRequestItemWithIP struct { gorm.Model ItemID uint `gorm:"column:item_id;not null" json:"item_id"` InstanceType string `gorm:"column:instance_type;type:varchar(100);not null" json:"instance_type"` RRID uint `gorm:"column:rr_id;not null" json:"rr_id"` RID uint `gorm:"column:r_id" json:"r_id"` Components string `gorm:"column:components" json:"components"` IP string `json:"ip"` }
ResourceRequestItemWithIP aggregates ResourceRequestItem with the ip field
type ResourceRequestQueue ¶
type ResourceRequestQueue struct { ResourceID uint `gorm:"column:r_id;unique;not null" json:"r_id"` PendingRequestList string `gorm:"column:pending_request_list;type:text" json:"pending_request_list"` }
ResourceRequestQueue records the request queue of each resource
func (*ResourceRequestQueue) PendingRequestIDList ¶
func (r *ResourceRequestQueue) PendingRequestIDList() (list RequestIDList)
PendingRequestIDList gets pending resource request id list
func (*ResourceRequestQueue) PopPendingRequestID ¶
func (r *ResourceRequestQueue) PopPendingRequestID() uint
PopPendingRequestID ...
func (*ResourceRequestQueue) PushPendingRequestID ¶
func (r *ResourceRequestQueue) PushPendingRequestID(id uint)
PushPendingRequestID ...
type WorkloadReport ¶
type WorkloadReport struct { gorm.Model CRID uint `gorm:"column:cr_id;not null" json:"cr_id"` Data string `gorm:"column:result;type:longtext;not null" json:"data"` PlainText *string `gorm:"column:plaintext;type:longtext" json:"plaintext,omitempty"` }
WorkloadReport means workload report
type WorkloadRequest ¶
type WorkloadRequest struct { gorm.Model Type string `gorm:"column:type;type:varchar(255)" json:"type,omitempty"` RestorePath *string `gorm:"column:restore_path;type:varchar(1024)" json:"restore_path,omitempty"` BackupPath *string `gorm:"column:backup_path;type:varchar(1024)" json:"backup_path,omitempty"` DockerImage string `gorm:"column:docker_image;type:varchar(255);not null" json:"docker_image"` Cmd *string `gorm:"column:cmd;type:varchar(255)" json:"cmd"` ArtifactDir *string `gorm:"column:artifact_dir;type:varchar(255)" json:"artifact_dir"` Args Args `gorm:"column:args;type:varchar(1024)" json:"args"` Envs Envs `gorm:"column:envs;type:text" json:"envs"` Status string `gorm:"column:status;not null" json:"status"` CRID uint `gorm:"column:cr_id;not null" json:"cr_id"` RRIItemID uint `gorm:"column:rri_item_id;not null" json:"rri_item_id"` }
WorkloadRequest means workload requests