host

package
v0.0.0-...-19fd678 Latest Latest
Warning

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

Go to latest
Published: Feb 29, 2024 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var HOST_MODIFY_FIELD_NUM int = 19

type HOST_FIELD string const (

HOST_ID HOST_FIELD = "id"
HOST_VENDOR HOST_FIELD = "vendor"

)

Functions

This section is empty.

Types

type DeleteHostRequest

type DeleteHostRequest struct {
}

DeleteHostRequest code

type Describe

type Describe struct {
	CPU          int    `json:"cpu"`           // 核数
	Memory       int    `json:"memory"`        // 内存
	GPUAmount    int    `json:"gpu_amount"`    // GPU数量
	GPUSpec      string `json:"gpu_spec"`      // GPU类型
	OSType       string `json:"os_type"`       // 操作系统类型,分为Windows和Linux
	OSName       string `json:"os_name"`       // 操作系统名称
	SerialNumber string `json:"serial_number"` // 序列号
}

Describe - Host私有属性

type DescribeHostRequest

type DescribeHostRequest struct {
	Id string
}

DescribeHostRequest code

func NewDescribeHostRequestWithId

func NewDescribeHostRequestWithId(id string) *DescribeHostRequest

type Host

type Host struct {
	*Resource // 公有属性
	*Describe // 资源独有属性
}

Host 模型定义

func NewHost

func NewHost() *Host

func (*Host) InjectDefaultTime

func (h *Host) InjectDefaultTime()

func (*Host) Patch

func (h *Host) Patch(req *UpdateHostRequest)

Patch - 局部更新

func (*Host) Put

func (h *Host) Put(req *UpdateHostRequest)

Put - 全量更新

func (*Host) Validate

func (h *Host) Validate() error

type HostService

type HostService interface {
	// 创建
	Create(context.Context, *Host) (*Host, error)
	// 查询列表, 这里使用HostSet来对Host进行拓展以及整体统筹
	Query(context.Context, *QueryHostRequest) (*HostSet, error)
	//查询详情
	Describe(context.Context, *DescribeHostRequest) (*Host, error)

	//更新或者删除的话,如果需要打印出来该操作的结果的话,也是需要Host对象的,所以输出它
	Update(context.Context, *UpdateHostRequest) (*Host, error)
	Delete(context.Context, *DeleteHostRequest) (*Host, error)

	ServiceName() string
}

type HostSet

type HostSet struct {
	Total int     `json:"total"` //计算有几页
	Items []*Host `json:"items"`
}

func NewHostSet

func NewHostSet() *HostSet

func (*HostSet) Add

func (h *HostSet) Add(item *Host) *HostSet

type QueryHostRequest

type QueryHostRequest struct {
	PageSize   int    `json:"page_size"`   // 大小
	PageNumber int    `json:"page_number"` // 第几页
	KeyWords   string `json:"keywords"`
}

QueryHostRequest code

func NewQueryHostRequest

func NewQueryHostRequest() *QueryHostRequest

func QueryHostFromHTTP

func QueryHostFromHTTP(r *http.Request) *QueryHostRequest

QueryHostFromHTTP - 从GET请求中获取请求内需要的参数 http://127.0.0.1:8080/host/query/?page_size=20&page_number=1&keyword=Resource

func (*QueryHostRequest) Offset

func (q *QueryHostRequest) Offset() int64

func (*QueryHostRequest) PageSize2uint

func (q *QueryHostRequest) PageSize2uint() uint

type Resource

type Resource struct {
	Id          string `json:"id"  validate:"required"` // 全局唯一Id
	Vendor      Vendor `json:"vendor"`                  // 厂商
	Region      string `json:"region"`                  // 地域
	CreateAt    int64  `json:"create_at"`               // 创建时间
	ExpireAt    int64  `json:"expire_at"`               // 过期时间
	Type        string `json:"type"`                    // 规格
	Name        string `json:"name"`                    // 名称
	Description string `json:"description"`             // 描述
	Status      string `json:"status"`                  // 服务商中的状态
	//Tags        map[string]string `json:"tags"`                    // 标签
	UpdateAt  int64  `json:"update_at"`  // 更新时间
	SyncAt    int64  `json:"sync_at"`    // 同步时间
	Account   string `json:"account"`    // 资源的所属账号
	PublicIP  string `json:"public_ip"`  // 公网IP
	PrivateIP string `json:"private_ip"` // 内网IP
}

type UPDATE_MODE

type UPDATE_MODE string

UpdateHostRequest code

const (
	UPDATE_PUT   UPDATE_MODE = "put"   // 全量更新
	UPDATE_PATCH UPDATE_MODE = "patch" //局部更新
)

type UpdateHostRequest

type UpdateHostRequest struct {
	UpdateMode UPDATE_MODE `json:"update_mode"` // 强制规范字段可选在可控范围内
	Id         string      `json:"id"`          // 更新数据的id
	/*	describe     *Describe
		resource     *Resource*/
	//UpdateFields map[string]interface{} `json:"updateFields"`
	Ins *Host `json:"host"` // 增量ins 通过body获取
	/*	FieldName       []string               `json:"fieldName"`
		Value           []interface{}          `json:"value"`*/
	ResourceUpdates map[string]interface{} `json:"resource_updates"`
	DescribeUpdates map[string]interface{} `json:"describe_updates"`
}

func NewUpdateHostRequest

func NewUpdateHostRequest(id string) *UpdateHostRequest

type Vendor

type Vendor int
const (
	Private_IDC Vendor = iota + 1
	ALIYUN
	TXYUN
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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