task

package
v0.0.0-...-eccb811 Latest Latest
Warning

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

Go to latest
Published: Jun 18, 2022 License: MIT Imports: 16 Imported by: 0

README

任务管理

  • secret
  • provider
  • host service

/task/

# 这个是资源同步的任务
type: "sync"
# secret, 比如腾讯云secret
secret_id: "xxx"
# operater 按照资源划分, 不如操作主机
resource_type: "host"
# 操作那个地域的资源
region: "shanghai"

任务的状态:

  • 状态: running
  • 开启时间
  • 介绍时间
  • 执行日志

Documentation

Index

Constants

View Source
const (
	AppName = "task"
)

Variables

View Source
var (
	Type_name = map[int32]string{
		0: "RESOURCE_SYNC",
		1: "RESOURCE_RELEASE",
	}
	Type_value = map[string]int32{
		"RESOURCE_SYNC":    0,
		"RESOURCE_RELEASE": 1,
	}
)

Enum value maps for Type.

View Source
var (
	Stage_name = map[int32]string{
		0: "PENDDING",
		1: "RUNNING",
		2: "SUCCESS",
		3: "FAILED",
		4: "WARNING",
	}
	Stage_value = map[string]int32{
		"PENDDING": 0,
		"RUNNING":  1,
		"SUCCESS":  2,
		"FAILED":   3,
		"WARNING":  4,
	}
)

Enum value maps for Stage.

View Source
var File_apps_task_pb_task_proto protoreflect.FileDescriptor
View Source
var Service_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "course.cmdb.task.Service",
	HandlerType: (*ServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "CreateTask",
			Handler:    _Service_CreateTask_Handler,
		},
		{
			MethodName: "QueryBook",
			Handler:    _Service_QueryBook_Handler,
		},
		{
			MethodName: "DescribeBook",
			Handler:    _Service_DescribeBook_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "apps/task/pb/task.proto",
}

Service_ServiceDesc is the grpc.ServiceDesc for Service service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterServiceServer

func RegisterServiceServer(s grpc.ServiceRegistrar, srv ServiceServer)

Types

type CreateTaskRequst

type CreateTaskRequst struct {

	// 任务类型
	// @gotags: json:"type"
	Type Type `protobuf:"varint,1,opt,name=type,proto3,enum=course.cmdb.task.Type" json:"type"`
	// 测试运行
	// @gotags: json:"dry_run"
	DryRun bool `protobuf:"varint,2,opt,name=dry_run,json=dryRun,proto3" json:"dry_run"`
	// 任务使用的云商凭证Id
	// @gotags: json:"secret_id" validate:"required,lte=100"
	SecretId string `protobuf:"bytes,3,opt,name=secret_id,json=secretId,proto3" json:"secret_id" validate:"required,lte=100"`
	// 任务操作的资源类型
	// @gotags: json:"resource_type"
	ResourceType resource.Type `protobuf:"varint,4,opt,name=resource_type,json=resourceType,proto3,enum=course.cmdb.resource.Type" json:"resource_type"`
	// 通知资源的Region
	// @gotags: json:"region"
	Region string `protobuf:"bytes,5,opt,name=region,proto3" json:"region"`
	// 额外的一些参数
	// @gotags: json:"params"
	Params map[string]string `` /* 143-byte string literal not displayed */
	// 任务执行的超时时间, 单位时秒
	// @gotags: json:"timeout"
	Timeout int64 `protobuf:"varint,7,opt,name=timeout,proto3" json:"timeout"`
	// contains filtered or unexported fields
}

func NewCreateTaskRequst

func NewCreateTaskRequst() *CreateTaskRequst

func (*CreateTaskRequst) Descriptor deprecated

func (*CreateTaskRequst) Descriptor() ([]byte, []int)

Deprecated: Use CreateTaskRequst.ProtoReflect.Descriptor instead.

func (*CreateTaskRequst) GetDryRun

func (x *CreateTaskRequst) GetDryRun() bool

func (*CreateTaskRequst) GetParams

func (x *CreateTaskRequst) GetParams() map[string]string

func (*CreateTaskRequst) GetRegion

func (x *CreateTaskRequst) GetRegion() string

func (*CreateTaskRequst) GetResourceType

func (x *CreateTaskRequst) GetResourceType() resource.Type

func (*CreateTaskRequst) GetSecretId

func (x *CreateTaskRequst) GetSecretId() string

func (*CreateTaskRequst) GetTimeout

func (x *CreateTaskRequst) GetTimeout() int64

func (*CreateTaskRequst) GetType

func (x *CreateTaskRequst) GetType() Type

func (*CreateTaskRequst) ProtoMessage

func (*CreateTaskRequst) ProtoMessage()

func (*CreateTaskRequst) ProtoReflect

func (x *CreateTaskRequst) ProtoReflect() protoreflect.Message

func (*CreateTaskRequst) Reset

func (x *CreateTaskRequst) Reset()

func (*CreateTaskRequst) String

func (x *CreateTaskRequst) String() string

func (*CreateTaskRequst) Validate

func (req *CreateTaskRequst) Validate() error

type DescribeTaskRequest

type DescribeTaskRequest struct {

	// Task id
	// @gotags: json:"id" validate:"required"
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" validate:"required"`
	// contains filtered or unexported fields
}

func (*DescribeTaskRequest) Descriptor deprecated

func (*DescribeTaskRequest) Descriptor() ([]byte, []int)

Deprecated: Use DescribeTaskRequest.ProtoReflect.Descriptor instead.

func (*DescribeTaskRequest) GetId

func (x *DescribeTaskRequest) GetId() string

func (*DescribeTaskRequest) ProtoMessage

func (*DescribeTaskRequest) ProtoMessage()

func (*DescribeTaskRequest) ProtoReflect

func (x *DescribeTaskRequest) ProtoReflect() protoreflect.Message

func (*DescribeTaskRequest) Reset

func (x *DescribeTaskRequest) Reset()

func (*DescribeTaskRequest) String

func (x *DescribeTaskRequest) String() string

type QueryTaskRequest

type QueryTaskRequest struct {

	// 分页参数
	// @gotags: json:"page"
	Page *request.PageRequest `protobuf:"bytes,1,opt,name=page,proto3" json:"page"`
	// 更加资源类型来过滤任务
	// @gotags: json:"resource_type"
	ResourceType resource.Type `protobuf:"varint,3,opt,name=resource_type,json=resourceType,proto3,enum=course.cmdb.resource.Type" json:"resource_type"`
	// @gotags: json:"keywords"
	Keywords string `protobuf:"bytes,4,opt,name=keywords,proto3" json:"keywords"`
	// contains filtered or unexported fields
}

func (*QueryTaskRequest) Descriptor deprecated

func (*QueryTaskRequest) Descriptor() ([]byte, []int)

Deprecated: Use QueryTaskRequest.ProtoReflect.Descriptor instead.

func (*QueryTaskRequest) GetKeywords

func (x *QueryTaskRequest) GetKeywords() string

func (*QueryTaskRequest) GetPage

func (x *QueryTaskRequest) GetPage() *request.PageRequest

func (*QueryTaskRequest) GetResourceType

func (x *QueryTaskRequest) GetResourceType() resource.Type

func (*QueryTaskRequest) ProtoMessage

func (*QueryTaskRequest) ProtoMessage()

func (*QueryTaskRequest) ProtoReflect

func (x *QueryTaskRequest) ProtoReflect() protoreflect.Message

func (*QueryTaskRequest) Reset

func (x *QueryTaskRequest) Reset()

func (*QueryTaskRequest) String

func (x *QueryTaskRequest) String() string

type ServiceClient

type ServiceClient interface {
	CreateTask(ctx context.Context, in *CreateTaskRequst, opts ...grpc.CallOption) (*Task, error)
	QueryBook(ctx context.Context, in *QueryTaskRequest, opts ...grpc.CallOption) (*TaskSet, error)
	DescribeBook(ctx context.Context, in *DescribeTaskRequest, opts ...grpc.CallOption) (*Task, error)
}

ServiceClient is the client API for Service service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewServiceClient

func NewServiceClient(cc grpc.ClientConnInterface) ServiceClient

type ServiceServer

type ServiceServer interface {
	CreateTask(context.Context, *CreateTaskRequst) (*Task, error)
	QueryBook(context.Context, *QueryTaskRequest) (*TaskSet, error)
	DescribeBook(context.Context, *DescribeTaskRequest) (*Task, error)
	// contains filtered or unexported methods
}

ServiceServer is the server API for Service service. All implementations must embed UnimplementedServiceServer for forward compatibility

type Stage

type Stage int32

任务运行的状态

const (
	Stage_PENDDING Stage = 0
	Stage_RUNNING  Stage = 1
	Stage_SUCCESS  Stage = 2
	Stage_FAILED   Stage = 3
	Stage_WARNING  Stage = 4
)

func ParseStageFromString

func ParseStageFromString(str string) (Stage, error)

ParseStageFromString Parse Stage from string

func (Stage) Descriptor

func (Stage) Descriptor() protoreflect.EnumDescriptor

func (Stage) Enum

func (x Stage) Enum() *Stage

func (Stage) EnumDescriptor deprecated

func (Stage) EnumDescriptor() ([]byte, []int)

Deprecated: Use Stage.Descriptor instead.

func (Stage) Equal

func (t Stage) Equal(target Stage) bool

Equal type compare

func (Stage) IsIn

func (t Stage) IsIn(targets ...Stage) bool

IsIn todo

func (Stage) MarshalJSON

func (t Stage) MarshalJSON() ([]byte, error)

MarshalJSON todo

func (Stage) Number

func (x Stage) Number() protoreflect.EnumNumber

func (Stage) String

func (x Stage) String() string

func (Stage) Type

func (Stage) Type() protoreflect.EnumType

func (*Stage) UnmarshalJSON

func (t *Stage) UnmarshalJSON(b []byte) error

UnmarshalJSON todo

type Status

type Status struct {

	// 任务状态
	// @gotags: json:"stage"
	Stage Stage `protobuf:"varint,1,opt,name=stage,proto3,enum=course.cmdb.task.Stage" json:"stage"`
	// 失败时的异常信息
	// @gotags: json:"message"
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message"`
	// 开始同步的时间
	// @gotags: json:"start_at"
	StartAt int64 `protobuf:"varint,3,opt,name=start_at,json=startAt,proto3" json:"start_at"`
	// 同步结束时间
	// @gotags: json:"end_at"
	EndAt int64 `protobuf:"varint,4,opt,name=end_at,json=endAt,proto3" json:"end_at"`
	// 成功的条数
	// @gotags: json:"total_succeed"
	TotalSucceed int64 `protobuf:"varint,5,opt,name=total_succeed,json=totalSucceed,proto3" json:"total_succeed"`
	// 失败的条数
	// @gotags: json:"total_failed"
	TotalFailed int64 `protobuf:"varint,6,opt,name=total_failed,json=totalFailed,proto3" json:"total_failed"`
	// contains filtered or unexported fields
}

func (*Status) Descriptor deprecated

func (*Status) Descriptor() ([]byte, []int)

Deprecated: Use Status.ProtoReflect.Descriptor instead.

func (*Status) GetEndAt

func (x *Status) GetEndAt() int64

func (*Status) GetMessage

func (x *Status) GetMessage() string

func (*Status) GetStage

func (x *Status) GetStage() Stage

func (*Status) GetStartAt

func (x *Status) GetStartAt() int64

func (*Status) GetTotalFailed

func (x *Status) GetTotalFailed() int64

func (*Status) GetTotalSucceed

func (x *Status) GetTotalSucceed() int64

func (*Status) ProtoMessage

func (*Status) ProtoMessage()

func (*Status) ProtoReflect

func (x *Status) ProtoReflect() protoreflect.Message

func (*Status) Reset

func (x *Status) Reset()

func (*Status) String

func (x *Status) String() string

type Task

type Task struct {

	// 任务id
	// @gotags: json:"id"
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id"`
	// secret
	// @gotags: json:"secret_description"
	SecretDescription string `protobuf:"bytes,2,opt,name=secret_description,json=secretDescription,proto3" json:"secret_description"`
	// 任务描述
	// @gotags: json:"data"
	Data *CreateTaskRequst `protobuf:"bytes,3,opt,name=data,proto3" json:"data"`
	// 任务状态
	// @gotags: json:"status"
	Status *Status `protobuf:"bytes,4,opt,name=status,proto3" json:"status"`
	// contains filtered or unexported fields
}

Task 同个区域的同一种资源一次只能有1个task run

func CreateTask

func CreateTask(req *CreateTaskRequst) (*Task, error)

func NewDefaultTask

func NewDefaultTask() *Task

func (*Task) Descriptor deprecated

func (*Task) Descriptor() ([]byte, []int)

Deprecated: Use Task.ProtoReflect.Descriptor instead.

func (*Task) Failed

func (s *Task) Failed(message string)

func (*Task) GetData

func (x *Task) GetData() *CreateTaskRequst

func (*Task) GetId

func (x *Task) GetId() string

func (*Task) GetSecretDescription

func (x *Task) GetSecretDescription() string

func (*Task) GetStatus

func (x *Task) GetStatus() *Status

func (*Task) ProtoMessage

func (*Task) ProtoMessage()

func (*Task) ProtoReflect

func (x *Task) ProtoReflect() protoreflect.Message

func (*Task) Reset

func (x *Task) Reset()

func (*Task) Run

func (s *Task) Run()

func (*Task) String

func (x *Task) String() string

func (*Task) Success

func (s *Task) Success()

type TaskSet

type TaskSet struct {

	// @gotags: json:"total"
	Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total"`
	// @gotags: json:"items"
	Items []*Task `protobuf:"bytes,2,rep,name=items,proto3" json:"items"`
	// contains filtered or unexported fields
}

func (*TaskSet) Descriptor deprecated

func (*TaskSet) Descriptor() ([]byte, []int)

Deprecated: Use TaskSet.ProtoReflect.Descriptor instead.

func (*TaskSet) GetItems

func (x *TaskSet) GetItems() []*Task

func (*TaskSet) GetTotal

func (x *TaskSet) GetTotal() int64

func (*TaskSet) ProtoMessage

func (*TaskSet) ProtoMessage()

func (*TaskSet) ProtoReflect

func (x *TaskSet) ProtoReflect() protoreflect.Message

func (*TaskSet) Reset

func (x *TaskSet) Reset()

func (*TaskSet) String

func (x *TaskSet) String() string

type Type

type Type int32

任务类型

const (
	// 资源同步任务
	Type_RESOURCE_SYNC Type = 0
	// 资源释放任务
	Type_RESOURCE_RELEASE Type = 1
)

func ParseTypeFromString

func ParseTypeFromString(str string) (Type, error)

ParseTypeFromString Parse Type from string

func (Type) Descriptor

func (Type) Descriptor() protoreflect.EnumDescriptor

func (Type) Enum

func (x Type) Enum() *Type

func (Type) EnumDescriptor deprecated

func (Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use Type.Descriptor instead.

func (Type) Equal

func (t Type) Equal(target Type) bool

Equal type compare

func (Type) IsIn

func (t Type) IsIn(targets ...Type) bool

IsIn todo

func (Type) MarshalJSON

func (t Type) MarshalJSON() ([]byte, error)

MarshalJSON todo

func (Type) Number

func (x Type) Number() protoreflect.EnumNumber

func (Type) String

func (x Type) String() string

func (Type) Type

func (Type) Type() protoreflect.EnumType

func (*Type) UnmarshalJSON

func (t *Type) UnmarshalJSON(b []byte) error

UnmarshalJSON todo

type UnimplementedServiceServer

type UnimplementedServiceServer struct {
}

UnimplementedServiceServer must be embedded to have forward compatible implementations.

func (UnimplementedServiceServer) CreateTask

func (UnimplementedServiceServer) DescribeBook

func (UnimplementedServiceServer) QueryBook

type UnsafeServiceServer

type UnsafeServiceServer interface {
	// contains filtered or unexported methods
}

UnsafeServiceServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ServiceServer will result in compilation errors.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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