Documentation
¶
Index ¶
- Variables
- func DoRequest(baseAPI, query, queryType, method string, body []byte) ([]byte, int, error)
- type AlertingNameConfig
- type AlertingRulesConfig
- type AllocatedResources
- type Body
- type ClusterResource
- type Config
- type ConfigUnit
- type DependStrategy
- type ExecedTask
- type Expr
- type FirstConfig
- type GlobalConfig
- type InitStatus
- type InstallStatus
- type Login
- type LoginResult
- type NodeDetails
- type NodePodResource
- type NodeResource
- type NotificationEvent
- type Pods
- type Prome
- type PromeData
- type PromeResultCore
- type PrometheusAPI
- type PrometheusInterface
- type Resource
- type ResponseBody
- type RulesConfig
- type Scheduler
- type SchedulerStatus
- type Shell
- type Task
- type TaskGroup
- type TaskGroupStatus
- type TaskOutPut
- type TaskOutPutStatus
- type TaskStatus
- type TaskTemp
Constants ¶
This section is empty.
Variables ¶
View Source
var AtLeastOnceStrategy = "AtLeastOnce"
AtLeastOnceStrategy 至少已执行一次
View Source
var SameNodeStrategy = "SameNode"
SameNodeStrategy 相同节点已执行
Functions ¶
Types ¶
type AlertingNameConfig ¶
type AlertingNameConfig struct {
Name string `yaml:"name" json:"name"`
Rules []*RulesConfig `yaml:"rules" json:"rules"`
}
type AlertingRulesConfig ¶
type AlertingRulesConfig struct {
Groups []*AlertingNameConfig `yaml:"groups" json:"groups"`
}
type AllocatedResources ¶
type Body ¶
type Body struct {
List interface{} `json:"list"`
Bean interface{} `json:"bean,omitempty"`
}
type ClusterResource ¶
type ClusterResource struct {
AllNode int `json:"all_node"`
NotReadyNode int `json:"notready_node"`
ComputeNode int `json:"compute_node"`
Tenant int `json:"tenant"`
CapCPU int `json:"cap_cpu"`
CapMem int `json:"cap_mem"`
ReqCPU float32 `json:"req_cpu"`
ReqMem int `json:"req_mem"`
CapDisk uint64 `json:"cap_disk"`
ReqDisk uint64 `json:"req_disk"`
}
ClusterResource 资源
type ConfigUnit ¶
type ConfigUnit struct {
//配置名称 例如:network
Name string `json:"name" validate:"name|required"`
CNName string `json:"cn_name" validate:"cn_name"`
//类型 例如:midonet
Value interface{} `json:"value" validate:"value|required"`
ValueType string `json:"value_type"`
//可选类型 类型名称和需要的配置项
OptionalValue []string `json:"optional_value,omitempty"`
DependConfig map[string][]ConfigUnit `json:"depend_config,omitempty"`
//是否用户可配置
IsConfigurable bool `json:"is_configurable"`
}
ConfigUnit 一个配置单元
func (ConfigUnit) String ¶
func (c ConfigUnit) String() string
type DependStrategy ¶
type DependStrategy struct {
DependTaskID string `json:"depend_task_id"`
DetermineStrategy string `json:"strategy"`
}
DependStrategy 依赖策略
type ExecedTask ¶
type Expr ¶
type Expr struct {
Body struct {
// expr
// in: body
// required: true
Expr string `json:"expr" validate:"expr|required"`
}
}
type FirstConfig ¶
type FirstConfig struct {
StorageMode string `json:"storage_mode"`
StorageHost string `json:"storage_host,omitempty"`
StorageEndPoint string `json:"storage_endpoint,omitempty"`
NetworkMode string `json:"network_mode"`
ZKHosts string `json:"zk_host,omitempty"`
CassandraIP string `json:"cassandra_ip,omitempty"`
K8SAPIAddr string `json:"k8s_apiserver,omitempty"`
MasterIP string `json:"master_ip,omitempty"`
DNS string `json:"dns,omitempty"`
ZMQSub string `json:"zmq_sub,omitempty"`
ZMQTo string `json:"zmq_to,omitempty"`
EtcdIP string `json:"etcd_ip,omitempty"`
}
type GlobalConfig ¶
type GlobalConfig struct {
Configs map[string]*ConfigUnit `json:"configs"`
}
GlobalConfig 全局配置
func CreateDefaultGlobalConfig ¶
func CreateDefaultGlobalConfig() *GlobalConfig
CreateDefaultGlobalConfig 生成默认配置
func CreateGlobalConfig ¶
func CreateGlobalConfig(kvs []*mvccpb.KeyValue) (*GlobalConfig, error)
CreateGlobalConfig 生成配置
type InitStatus ¶
type InstallStatus ¶
type InstallStatus struct {
Status int `json:"status"`
StatusCN string `json:"cn"`
Tasks []*ExecedTask `json:"tasks"`
}
type LoginResult ¶
type NodeDetails ¶
type NodeDetails struct {
Name string `json:"name"`
Role []string `json:"role"`
Status string `json:"status"`
Labels map[string]string `json:"labels"`
Annotations map[string]string `json:"annotations"`
CreationTimestamp string `json:"creationtimestamp"`
Conditions []v1.NodeCondition `json:"conditions"`
Addresses map[string]string `json:"addresses"`
Capacity map[string]string `json:"capacity"`
Allocatable map[string]string `json:"allocatable"`
SystemInfo v1.NodeSystemInfo `json:"systeminfo"`
ExternalID string `json:"externalid"`
NonterminatedPods []*Pods `json:"nonterminatedpods"`
AllocatedResources map[string]string `json:"allocatedresources"`
Events map[string][]string `json:"events"`
}
NodeDetails NodeDetails
type NodePodResource ¶
type NodePodResource struct {
AllocatedResources `json:"allocatedresources"`
Resource `json:"allocatable"`
}
type NodeResource ¶
type NodeResource struct {
CapCPU int `json:"cap_cpu"`
CapMem int `json:"cap_mem"`
ReqCPU float32 `json:"req_cpu"`
ReqMem int `json:"req_mem"`
}
node 资源
type NotificationEvent ¶
type NotificationEvent struct {
//Kind could be service, tenant, cluster, node
Kind string `json:"Kind"`
//KindID could be service_id,tenant_id,cluster_id,node_id
KindID string `json:"KindID"`
Hash string `json:"Hash"`
//Type could be Normal UnNormal Notification
Type string `json:"Type"`
Message string `json:"Message"`
Reason string `json:"Reason"`
Count int `json:"Count"`
LastTime string `json:"LastTime"`
FirstTime string `json:"FirstTime"`
IsHandle bool `json:"IsHandle"`
HandleMessage string `json:"HandleMessage"`
ServiceName string `json:"ServiceName"`
TenantName string `json:"TenantName"`
}
NotificationEvent NotificationEvent
type Pods ¶
type Pods struct {
Namespace string `json:"namespace"`
Id string `json:"id"`
Name string `json:"name"`
TenantName string `json:"tenant_name"`
CPURequests string `json:"cpurequest"`
CPURequestsR string `json:"cpurequestr"`
CPULimits string `json:"cpulimits"`
CPULimitsR string `json:"cpulimitsr"`
MemoryRequests string `json:"memoryrequests"`
MemoryRequestsR string `json:"memoryrequestsr"`
MemoryLimits string `json:"memorylimits"`
MemoryLimitsR string `json:"memorylimitsr"`
Status string `json:"status"`
}
type PromeData ¶
type PromeData struct {
ResultType string `json:"resultType"`
Result []*PromeResultCore `json:"result"`
}
type PromeResultCore ¶
type PrometheusAPI ¶
type PrometheusAPI struct {
API string
}
func (*PrometheusAPI) Query ¶
func (s *PrometheusAPI) Query(query string) (*Prome, *utils.APIHandleError)
Get Get
func (*PrometheusAPI) QueryRange ¶
func (s *PrometheusAPI) QueryRange(query string, start, end, step string) (*Prome, *utils.APIHandleError)
Get Get
type PrometheusInterface ¶
type ResponseBody ¶
type RulesConfig ¶
type Scheduler ¶
type Scheduler struct {
Mode string `json:"mode"` //立即调度(Intime),触发调度(Passive)
Status map[string]SchedulerStatus `json:"status"`
}
Scheduler 调度状态
type SchedulerStatus ¶
type SchedulerStatus struct {
Status string `json:"status"`
Message string `json:"message"`
SchedulerTime time.Time `json:"scheduler_time"` //调度时间
SchedulerMaster string `json:"scheduler_master"` //调度的管理节点
}
SchedulerStatus 调度状态
type Task ¶
type Task struct {
Name string `json:"name" validate:"name|required"`
ID string `json:"id" validate:"id|uuid"`
TempID string `json:"temp_id,omitempty" validate:"temp_id|uuid"`
Temp *TaskTemp `json:"temp,omitempty"`
GroupID string `json:"group_id,omitempty"`
//执行的节点
Nodes []string `json:"nodes"`
//执行时间定义
//例如每30分钟执行一次:@every 30m
Timer string `json:"timer"`
TimeOut int64 `json:"time_out"`
// 执行任务失败重试次数
// 默认为 0,不重试
Retry int `json:"retry"`
// 执行任务失败重试时间间隔
// 单位秒,如果不大于 0 则马上重试
Interval int `json:"interval"`
//ExecCount 执行次数
ExecCount int `json:"exec_count"`
//每个执行节点执行状态
Status map[string]TaskStatus `json:"status,omitempty"`
Scheduler Scheduler `json:"scheduler"`
CreateTime time.Time `json:"create_time"`
StartTime time.Time `json:"start_time"`
CompleteTime time.Time `json:"complete_time"`
ResultPath string `json:"result_path"`
EventID string `json:"event_id"`
RunMode string `json:"run_mode"`
OutPut []*TaskOutPut `json:"out_put"`
}
Task 任务
type TaskGroup ¶
type TaskGroup struct {
Name string `json:"name" validate:"name|required"`
ID string `json:"id" validate:"id|uuid"`
Tasks []*Task `json:"tasks"`
CreateTime time.Time `json:"create_time"`
Status *TaskGroupStatus `json:"status"`
}
TaskGroup 任务组
type TaskGroupStatus ¶
type TaskGroupStatus struct {
TaskStatus map[string]TaskStatus `json:"task_status"`
InitTime time.Time `json:"init_time"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time"`
Status string `json:"status"` //create init exec complete timeout
}
TaskGroupStatus 任务组状态
type TaskOutPut ¶
type TaskOutPut struct {
NodeID string `json:"node_id"`
JobID string `json:"job_id"`
Global map[string]string `json:"global"`
Inner map[string]string `json:"inner"`
//返回数据类型,检测结果类(check) 执行安装类 (install) 普通类 (common)
Type string `json:"type"`
Status []TaskOutPutStatus `json:"status"`
ExecStatus string `json:"exec_status"`
Body string `json:"body"`
}
TaskOutPut 任务输出
func ParseTaskOutPut ¶
func ParseTaskOutPut(body string) (t TaskOutPut, err error)
ParseTaskOutPut json parse
type TaskOutPutStatus ¶
type TaskOutPutStatus struct {
Name string `json:"name"`
//节点属性
ConditionType string `json:"condition_type"`
//节点属性值
ConditionStatus string `json:"condition_status"`
NextTask []string `json:"next_tasks,omitempty"`
NextGroups []string `json:"next_groups,omitempty"`
}
TaskOutPutStatus 输出数据
type TaskStatus ¶
type TaskStatus struct {
JobID string `json:"job_id"`
Status string `json:"status"` //执行状态,create init exec complete timeout
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time"`
TakeTime int `json:"take_time"`
CompleStatus string `json:"comple_status"`
//脚本退出码
ShellCode int `json:"shell_code"`
Message string `json:"message,omitempty"`
}
TaskStatus 任务状态
type TaskTemp ¶
type TaskTemp struct {
Name string `json:"name" validate:"name|required"`
ID string `json:"id" validate:"id|uuid"`
Shell Shell `json:"shell"`
Envs map[string]string `json:"envs,omitempty"`
Input string `json:"input,omitempty"`
Args []string `json:"args,omitempty"`
Depends []DependStrategy `json:"depends,omitempty"`
Timeout int `json:"timeout" validate:"timeout|required|numeric"`
CreateTime time.Time `json:"create_time"`
Labels map[string]string `json:"labels,omitempty"`
}
TaskTemp 任务模版
Click to show internal directories.
Click to hide internal directories.