cloudrepo

package
v0.0.0-...-5381133 Latest Latest
Warning

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

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

Documentation

Overview

Package cloudrepo

  • Copyright 2024-2025 Bilibili Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Package cloudrepo

  • Copyright 2024-2025 Bilibili Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Package cloudrepo

  • Copyright 2024-2025 Bilibili Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Package cloudrepo

  • Copyright 2024-2025 Bilibili Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Package cloudrepo

  • Copyright 2024-2025 Bilibili Inc. *
  • Licensed under the Apache License, Version 2.0 (the "License");
  • you may not use this file except in compliance with the License.
  • You may obtain a copy of the License at *
  • http://www.apache.org/licenses/LICENSE-2.0 *
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.

Index

Constants

View Source
const (
	CloudAli     = "alicloud"     // 阿里云
	CloudTencent = "tencentcloud" // 腾讯云
	CloudHuawei  = "huaweicloud"  // 华为云
	CloudAws     = "awscloud"     // AWS
	CloudBaidu   = "baiducloud"   // 百度云
)
View Source
const (
	CloudVMStatusPending      = "pending"       // 创建中
	CloudVMStatusRunning      = "running"       // 运行中
	CloudVMStatusStarting     = "starting"      // 启动中
	CloudVMStatusStopping     = "stopping"      // 停止中
	CloudVMStatusSuspend      = "suspend"       // 暂停中
	CloudVMStatusStopped      = "stopped"       // 已停止
	CloudVMStatusTerminated   = "terminated"    // 已销毁
	CloudVMStatusShuttingDown = "shutting-down" // 关机中
	CloudVMStatusChangeFlavor = "change_flavor" // 变更规格中
	CloudVMStatusDeploying    = "deploying"     // 部署中
	CloudVMStatueDeleted      = "deleted"       // 已删除
	CloudVMStatusOther        = "other"         // 其他状态

	CloudVmChargeTypePrePaid  = "prepaid"  // 预付费/包年包月
	CloudVmChargeTypePostPaid = "postpaid" // 后付费/按需付费
)

Variables

View Source
var (
	CloudEnumMap = map[string]map[string]map[string]string{
		CloudAli:     statusAli,
		CloudAws:     statusAws,
		CloudTencent: statusTencent,
		CloudBaidu:   statusBaidu,
		CloudHuawei:  statusHuawei,
	}
)
View Source
var (
	NotFoundError = ecode.NewECode("-60001")
)

Functions

func GetCloudEnum

func GetCloudEnum(cloudId string, enumType string, enum string) string

GetCloudEnum 获取云厂商

func GetGpuModel

func GetGpuModel(gpuModelRaw string) string

GetGpuModel 获取GPU型号

func Register

func Register(repo CloudRepo)

Register 注册云厂商

func TimeTrans

func TimeTrans(tm string) string

TimeTrans 时间格式转换

Types

type ChangeConfigCloudServerReply

type ChangeConfigCloudServerReply struct {
	// 请求ID
	RequestID string
}

ChangeConfigCloudServerReply 变更云服务器配置响应参数

type ChangeConfigCloudServerReq

type ChangeConfigCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 云服务器类型
	InstanceType string
	// 云项目ID
	ProjectID string
}

ChangeConfigCloudServerReq 变更云服务器配置请求参数

type ChangeServerChargeTypeReply

type ChangeServerChargeTypeReply struct {
	// 请求ID
	RequestID string
}

ChangeServerChargeTypeReply 变更云服务器计费方式响应参数

type ChangeServerChargeTypeReq

type ChangeServerChargeTypeReq struct {
	// 云服务器ID
	InstanceID string
	// 云项目ID
	ProjectID string
	// 计费方式
	ChargeType string
}

ChangeServerChargeTypeReq 变更云服务器计费方式请求参数

type CloudProduct

type CloudProduct interface {
	GetCID() string    // 获取产品CID
	GetName() string   // 获取产品名称
	GetStatus() string // 获取产品状态
}

CloudProduct 云产品通用接口

type CloudProductCommon

type CloudProductCommon struct {
	// 云ID
	CID string
	// 云产品名称
	Name string
	// 云产品状态
	Status string
}

CloudProductCommon 云产品通用

type CloudProject

type CloudProject interface {
	CloudProduct
}

CloudProject 云项目通用接口

type CloudProvider

type CloudProvider interface {
	ListRegion(req *GetCloudProductReq) ([]CloudRegion, error)                                   //获取地域
	ListProject(req *GetCloudProductReq) ([]CloudProject, error)                                 //获取项目
	ListServer(req *GetCloudProductReq) ([]CloudServer, error)                                   //获取服务器
	ListSecurityGroup(req *GetCloudProductReq) ([]CloudSecurityGroup, error)                     //获取安全组
	ListZone(req *GetCloudProductReq) ([]CloudZone, error)                                       //获取可用区
	ListVpc(req *GetCloudProductReq) ([]CloudVpc, error)                                         //获取专有网路
	ListSubnet(req *GetCloudProductReq) ([]CloudSubnet, error)                                   //获取子网
	ListServerImage(req *GetCloudProductReq) ([]CloudServerImage, error)                         //获取镜像
	ListServerSpec(req *GetCloudProductReq) ([]CloudServerSpec, error)                           //获取服务器规格
	ListTag(req *GetCloudProductReq) ([]CloudTag, error)                                         //获取标签
	RebootServer(req *RebootCloudServerReq) (*RebootCloudServerReply, error)                     //重启
	ReinstallServer(req *ReinstallCloudServerReq) (*ReinstallCloudServerReply, error)            //重装
	RenameServer(req *RenameCloudServerReq) (*RenameCloudServerReply, error)                     //改名
	ChangeServerConfig(req *ChangeConfigCloudServerReq) (*ChangeConfigCloudServerReply, error)   //改配
	DeleteServer(req *DeleteCloudServerReq) (*DeleteCloudServerReply, error)                     //清退
	StartServer(req *StartCloudServerReq) (*StartCloudServerReply, error)                        //开机
	StopServer(req *StopCloudServerReq) (*StopCloudServerReply, error)                           //关机
	DescribeServer(req *DescribeCloudServerReq) (*DescribeCloudServerReply, error)               //查询
	ChangeServerChargeType(req *ChangeServerChargeTypeReq) (*ChangeServerChargeTypeReply, error) //改费
}

CloudProvider 获取云厂商产品

type CloudRegion

type CloudRegion interface {
	CloudProduct
}

CloudRegion 云地域通用接口

type CloudRepo

type CloudRepo interface {
	GetName() string                                        // 获取云厂商名称
	GetProvider(req *GetProviderReq) (CloudProvider, error) // 获取云厂商client
}

CloudRepo 云厂商数据

func GetRepo

func GetRepo(name string) (CloudRepo, error)

GetRepo 获取云厂商

type CloudSecurityGroup

type CloudSecurityGroup interface {
	CloudProduct

	GetProject() string // 获取云项目
	GetVpc() string     // 获取云专有网路
}

CloudSecurityGroup 云安全组通用接口

type CloudServer

type CloudServer interface {
	CloudProduct

	GetSecurityGroupCid() []string // 获取云安全组cid
	GetSubnetCid() string          // 获取云子网cid
	GetVpcCid() string             // 获取云专有网络cid
	GetImageCid() string           // 获取云服务器镜像cid
	GetZoneCid() string            // 获取云可用区cid
	GetProjectCid() string         // 获取云项目cid
	GetServerSpec() string         // 获取云服务器规格cid
	GetChangeType() string         // 获取计费方式
	GetRenewStatus() string        // 获取续费状态
	GetPrivateIP() string          // 获取内网IP
	GetPublicIP() string           // 获取外网IP
	GetExpireTime() string         // 获取过期时间
}

CloudServer 云服务器通用接口

type CloudServerImage

type CloudServerImage interface {
	CloudProduct

	GetOsName() string // 获取操作系统名称
	GetType() string   // 获取镜像类型
}

CloudServerImage 云服务器镜像通用接口

type CloudServerSpec

type CloudServerSpec interface {
	CloudProduct

	GetBandWidth() float64 // 获取带宽
	GetCategory() string   // 获取规格类型
	GetCPU() int           // 获取CPU核数
	GetGPU() int           // 获取GPU数量
	GetGPUModel() string   // 获取GPU型号
	GetFamily() string     // 获取规格系列
	GetMemory() int        // 获取内存大小
	GetPPS() float64       // 获取每秒处理量
}

CloudServerSpec 云服务器规格通用接口

type CloudSubnet

type CloudSubnet interface {
	CloudProduct

	GetCidr() string    // 获取cidr
	GetProject() string // 获取云项目
	GetVpc() string     // 获取云专有网络
	GetZone() string    // 获取云可用区
}

CloudSubnet 云子网通用接口

type CloudTag

type CloudTag interface {
	GetTagKey() string   // 获取标签key
	GetTagValue() string // 获取标签value
}

CloudTag 云标签通用接口

type CloudVpc

type CloudVpc interface {
	CloudProduct

	GetCidr() string    // 获取cidr
	GetProject() string // 获取云项目
}

CloudVpc 云专有网络通用接口

type CloudZone

type CloudZone interface {
	CloudProduct
}

CloudZone 云可用区通用接口

type DeleteCloudServerReply

type DeleteCloudServerReply struct {
	// 请求ID
	RequestID string
}

DeleteCloudServerReply 删除云服务器响应参数

type DeleteCloudServerReq

type DeleteCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 是否强制
	IsForce bool
	// 云项目ID
	ProjectID string
}

DeleteCloudServerReq 删除云服务器请求参数

type DescribeCloudServerReply

type DescribeCloudServerReply struct {
	// 云服务器ID
	InstanceID string
	// 云服务器名称
	InstanceName string
	// 镜像ID
	ImageID string
	// 云服务器状态
	InstanceState string
	// 云服务器类型
	InstanceType string
	// 计费方式
	ChargeType string
	// 实例的最新操作状态
	LatestOperationState string
	// 实例是否操作完成
	IsOperation bool
}

DescribeCloudServerReply 获取云服务器详情响应参数

type DescribeCloudServerReq

type DescribeCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 云项目ID
	ProjectID string
}

DescribeCloudServerReq 获取云服务器详情请求参数

type GetCloudProductReq

type GetCloudProductReq struct {
	GetProviderReq
	// 云产品名称
	ResourceName string
	// 云产品ID
	ResourceID string
	// 云地域
	Region string
	// 标识
	Cursor string
	// 是否分页
	DisablePage bool
	// 条数
	PageSize int
	// 页码
	PageNum int
}

GetCloudProductReq 获取云产品列表请求

type GetProviderReq

type GetProviderReq struct {
	// 云地域
	Region string
	// 密钥ID
	SecretId string
	// 密钥
	SecretKey string
}

GetProviderReq 获取云厂商请求

type RebootCloudServerReply

type RebootCloudServerReply struct {
	// 请求ID
	RequestID string
}

RebootCloudServerReply 重启云服务器响应参数

type RebootCloudServerReq

type RebootCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 是否强制
	IsForce bool
	// 云项目ID
	ProjectID string
}

RebootCloudServerReq 重启云服务器请求参数

type ReinstallCloudServerReply

type ReinstallCloudServerReply struct {
	// 请求ID
	RequestID string
}

ReinstallCloudServerReply 重装云服务器响应参数

type ReinstallCloudServerReq

type ReinstallCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 镜像ID
	ImageID string
	// 云项目ID
	ProjectID string
	// 云账号ID
	AccountID string
	// 密钥对ID
	KeyPairID string
	// 密钥对名称
	KeyPairName string
}

ReinstallCloudServerReq 重装云服务器请求参数

type RenameCloudServerReply

type RenameCloudServerReply struct {
	// 请求ID
	RequestID string
}

RenameCloudServerReply 重命名云服务器名称响应参数

type RenameCloudServerReq

type RenameCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 新名称
	NewName string
	// 云项目ID
	ProjectID string
}

RenameCloudServerReq 重命名云服务器名称请求参数

type StartCloudServerReply

type StartCloudServerReply struct {
	// 请求ID
	RequestID string
}

StartCloudServerReply 启动云服务器响应参数

type StartCloudServerReq

type StartCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 云项目ID
	ProjectID string
	// 是否强制
	IsForce bool
}

StartCloudServerReq 启动云服务器请求参数

type StopCloudServerReply

type StopCloudServerReply struct {
	// 请求ID
	RequestID string
}

StopCloudServerReply 停止云服务器响应参数

type StopCloudServerReq

type StopCloudServerReq struct {
	// 云服务器ID
	InstanceID string
	// 云项目ID
	ProjectID string
	// 是否强制
	IsForce bool
}

StopCloudServerReq 停止云服务器请求参数

Directories

Path Synopsis
provider
alicloud
Package alicloud
Package alicloud
awscloud
Package awscloud
Package awscloud
baiducloud
Package baiducloud
Package baiducloud
huaweicloud
Package huaweicloud
Package huaweicloud
tencentcloud
Package tencentcloud
Package tencentcloud

Jump to

Keyboard shortcuts

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