host

package
v0.0.0-...-48004d9 Latest Latest
Warning

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

Go to latest
Published: Nov 2, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

README

Host 服务模块

IMPL

这个模块写完后,Host Service 的具体实现,上层业务就基于Service进行编程,面向接口

http 
 |
Host Service (interface impl)
 |
impl(基于Mysql实现)

Host Service 定义 并把实现编写完成,使用方式有多种用途:

  • 用于内部模块代用,基于他封装更高一层的业务逻辑,比如发布服务。
  • Host Service 对外暴漏: http协议(暴漏给用户)/GRPC(暴漏给内部服务)

Documentation

Index

Constants

View Source
const (
	AppName = "host"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type DeleteHostRequest

type DeleteHostRequest struct {
	ResourceID string `json:"resource_id"`
}

type Describe

type Describe struct {
	Memory       string `json:"memory"`
	CPU          string `json:"cpu"`
	GPUAmount    int    `json:"gpu_amount"`
	GPUSpec      string `json:"gpu_spec"`
	OSType       string `json:"os_type"`
	OSName       string `json:"os_name"`
	SerialNumber string `json:"serial_number"`
}

type Host

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

func NewHost

func NewHost() *Host

func (*Host) InjectDefault

func (h *Host) InjectDefault()

func (*Host) Validate

func (h *Host) Validate() error

type HostSet

type HostSet struct {
	Total int     `json:"total"`
	Items []*Host `json:"items"`
}

func NewHostSet

func NewHostSet() *HostSet

func (*HostSet) Add

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

type QueryHostRequest

type QueryHostRequest struct {
	PageSize   uint64 `json:"page_size,omitempty"`
	PageNumber uint64 `json:"page_num,omitempty"`
	Keywords   string `json:"kws"`
}

func NewQueryHostFromHTTP

func NewQueryHostFromHTTP(r *http.Request) *QueryHostRequest

func NewQueryHostRequest

func NewQueryHostRequest() *QueryHostRequest

func (*QueryHostRequest) GetPageNum

func (req *QueryHostRequest) GetPageNum() uint

func (*QueryHostRequest) OffSet

func (req *QueryHostRequest) OffSet() int64

type Resource

type Resource struct {
	Id          string            `json:"id" validate:"required"`
	Vendor      Vendor            `json:"vendor"`
	Region      string            `json:"region" validate:"required"`
	CreateAt    int64             `json:"create_at"`
	ExpireAt    int64             `json:"expire_at"`
	Type        string            `json:"type" validate:"required"`
	Name        string            `json:"name" validate:"required"`
	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"`
	PrivateIP   string            `json:"private_ip"`
	PayType     int               `json:"pay_type"`
}

type Service

type Service interface {
	//录入主机
	CreateHost(ctx context.Context, host *Host) (*Host, error)
	// 查询主机列表
	QueryHost(ctx context.Context, QueryHostRequest *QueryHostRequest) (*HostSet, error)
	// 查询主机详情
	DescribeHost(ctx context.Context, QueryHostRequest *QueryHostRequest) (*Host, error)
	// 主机更新
	UpdateHost(ctx context.Context, UpdateHostRequest *UpdataHostRequest) (*Host, error)
	//主机删除,比如前端需要打印当前删除主机的IP或者其他信息
	DeleteHost(ctx context.Context, DeleteHostRequest *DeleteHostRequest) (*Host, error)
}

host app service 的接口定义

type UpdataHostRequest

type UpdataHostRequest struct {
	*Describe
}

type Vendor

type Vendor int
const (
	//枚举的默认值
	PRIVATE_IDC Vendor = iota
	ALIYUN
	TXYUN
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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