kmgThirdCloud

package
v0.0.0-...-05317bf Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2015 License: MIT Imports: 22 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExampleAliyunSDK

func ExampleAliyunSDK()

func ExampleRackspace

func ExampleRackspace()

func ExampleRackspaceForTest

func ExampleRackspaceForTest()

Types

type AliyunImage

type AliyunImage struct {
	ImageId   string
	ImageName string
	OSName    string
	OSType    string
}

type AliyunInstance

type AliyunInstance struct {
	InstanceId         string
	Status             AliyunInstanceStatus
	InstanceName       string
	ImageId            string
	RegionId           string
	InstanceType       string
	PublicIpAddress    map[string][]string
	InstanceChargeType AliyunPaidType
	ExpiredTime        string
}

type AliyunInstanceStatus

type AliyunInstanceStatus string
const (
	AliyunInstanceStatusRunning AliyunInstanceStatus = "Running"
	AliyunInstanceStatusStopped AliyunInstanceStatus = "Stopped"
	AliyunInstanceStatusDeleted AliyunInstanceStatus = "Deleted"
)

type AliyunPaidType

type AliyunPaidType string
const (
	//包年包月
	AliyunPaidTypePre AliyunPaidType = "PrePaid"
	//按量
	AliyunPaidTypePost AliyunPaidType = "PostPaid"
)

type AliyunRegion

type AliyunRegion struct {
	RegionId  string
	LocalName string
}

type AliyunRespond

type AliyunRespond struct {
	RequestId       string
	RegionId        string
	PageNumber      int
	PageSize        int
	TotalCount      int
	Images          map[string][]AliyunImage
	Regions         map[string][]AliyunRegion
	Instances       map[string][]AliyunInstance
	SecurityGroupId string
	InstanceId      string
	IpAddress       string
	//错误消息
	Code    string
	Message string
}

type AliyunSDK

type AliyunSDK struct {
	ConfigParam      *url.Values
	AccessKeyId      string
	AccessKeySecret  string
	SecurityGroupId  string
	InstancePaidType AliyunPaidType
	InstancePassword string
	Region           string //Alias RegionId
	InstanceName     string
	ImageName        string //Alias ImageId
	FlavorName       string //Alias InstanceType
}

func NewAliyunSDK

func NewAliyunSDK(accessKeyId, accessKeySecret, securityGroupId string) *AliyunSDK

func (*AliyunSDK) AllocateNewInstance

func (sdk *AliyunSDK) AllocateNewInstance() (id string)

func (*AliyunSDK) AllocatePublicIpAddress

func (sdk *AliyunSDK) AllocatePublicIpAddress(instanceId string) (ip string)

func (*AliyunSDK) Call

func (sdk *AliyunSDK) Call(param *url.Values) (r *AliyunRespond, isErr bool)

func (*AliyunSDK) CreateInstance

func (sdk *AliyunSDK) CreateInstance() (ip string)

创建机器 分配公网IP 重启机器

func (*AliyunSDK) CreateSecurityGroup

func (sdk *AliyunSDK) CreateSecurityGroup() (securityGroupId string)

func (*AliyunSDK) DeleteInstance

func (sdk *AliyunSDK) DeleteInstance(ip string)

func (*AliyunSDK) DeleteInstanceById

func (sdk *AliyunSDK) DeleteInstanceById(id string)

func (*AliyunSDK) GetAllImage

func (sdk *AliyunSDK) GetAllImage() []AliyunImage

func (*AliyunSDK) GetAllRegion

func (sdk *AliyunSDK) GetAllRegion() []AliyunRegion

func (*AliyunSDK) IsInstanceRunning

func (sdk *AliyunSDK) IsInstanceRunning(id string) bool

func (*AliyunSDK) ListAllInstance

func (sdk *AliyunSDK) ListAllInstance() (idInstanceMap map[string]Instance)

func (*AliyunSDK) ListAllRunningInstance

func (sdk *AliyunSDK) ListAllRunningInstance() (ipInstanceMap map[string]Instance)

func (*AliyunSDK) MakeInstanceAvailable

func (sdk *AliyunSDK) MakeInstanceAvailable(id string) (ip string)

不断重试,彻底失败,会返回空字符串

func (*AliyunSDK) MustCall

func (sdk *AliyunSDK) MustCall(param *url.Values) *AliyunRespond

func (*AliyunSDK) RenameInstanceByIp

func (sdk *AliyunSDK) RenameInstanceByIp(name, ip string)

func (*AliyunSDK) StartInstance

func (sdk *AliyunSDK) StartInstance(instanceId string)

func (*AliyunSDK) StopInstance

func (sdk *AliyunSDK) StopInstance(instanceId string)

func (*AliyunSDK) WaitUntil

func (sdk *AliyunSDK) WaitUntil(instanceId string, status AliyunInstanceStatus)

type Instance

type Instance struct {
	Ip          string
	Id          string //第三方只认他们自己产生的ID
	Name        string
	BelongToSDK SDK
}

type RackspaceInstanceStatus

type RackspaceInstanceStatus string
const (
	RackspaceInstanceStatusACTIVE  RackspaceInstanceStatus = "ACTIVE"
	RackspaceInstanceStatusBUILD   RackspaceInstanceStatus = "BUILD"
	RackspaceInstanceStatusDELETED RackspaceInstanceStatus = "DELETED"
	RackspaceInstanceStatusERROR   RackspaceInstanceStatus = "ERROR"
	RackspaceInstanceStatusUNKNOWN RackspaceInstanceStatus = "UNKNOWN"
)

type RackspaceSDK

type RackspaceSDK struct {
	Username string
	APIKey   string

	SSHKeyName   string
	Region       string
	InstanceName string
	ImageName    string
	FlavorName   string
	// contains filtered or unexported fields
}

func NewRackspaceSDK

func NewRackspaceSDK(username, apiKey, SSHKeyName string) *RackspaceSDK

func (*RackspaceSDK) AllocateNewInstance

func (sdk *RackspaceSDK) AllocateNewInstance() (id string)

func (*RackspaceSDK) CreateInstance

func (sdk *RackspaceSDK) CreateInstance() (ip string)

func (*RackspaceSDK) DeleteInstance

func (sdk *RackspaceSDK) DeleteInstance(ip string)

func (*RackspaceSDK) DeleteInstanceById

func (sdk *RackspaceSDK) DeleteInstanceById(id string)

func (*RackspaceSDK) GetAllFlavor

func (sdk *RackspaceSDK) GetAllFlavor() []flavors.Flavor

func (*RackspaceSDK) GetAllImage

func (sdk *RackspaceSDK) GetAllImage() []OpenStackImages.Image

func (*RackspaceSDK) ListAllInstance

func (sdk *RackspaceSDK) ListAllInstance() (idInstanceMap map[string]Instance)

func (*RackspaceSDK) ListAllRunningInstance

func (sdk *RackspaceSDK) ListAllRunningInstance() (ipInstanceMap map[string]Instance)

func (*RackspaceSDK) MakeInstanceAvailable

func (sdk *RackspaceSDK) MakeInstanceAvailable(id string) (ip string)

不断重试,彻底失败,会返回空字符串

func (*RackspaceSDK) PrintAllFlavor

func (sdk *RackspaceSDK) PrintAllFlavor()

func (*RackspaceSDK) PrintAllImage

func (sdk *RackspaceSDK) PrintAllImage()

func (*RackspaceSDK) RenameInstanceByIp

func (sdk *RackspaceSDK) RenameInstanceByIp(name, ip string)

type SDK

type SDK interface {

	//以实例外网 Ip 为主键的方法,通常用这些已经够了
	//创建一个新实例,保证实例可用,出现错误 panic
	CreateInstance() (ip string)
	DeleteInstance(ip string)
	RenameInstanceByIp(name, ip string)
	ListAllRunningInstance() (ipInstanceMap map[string]Instance)

	//向云服务提供商申请分配新实例,http 请求后,立即返回实例ID,不要求实例当时可用
	AllocateNewInstance() (id string)
	//让一台实例变为可用状态
	//不断重试,彻底失败,会返回空字符串
	MakeInstanceAvailable(id string) (ip string)

	//以实例 Id 为主键的方法,一般不使用,当没有实例没有 ip 时可以使用
	ListAllInstance() (idInstanceMap map[string]Instance)
	DeleteInstanceById(id string)
}

本接口中,为降低调用者复杂度,不提供机器「状态」,因为状态较为复杂,而调用者其实只关心正在可用的,即正在运行的机器

type SDKCache

type SDKCache struct {
	Init func() SDK
	// contains filtered or unexported fields
}

func (SDKCache) Get

func (sdkCache SDKCache) Get() SDK

Lazy Getter

type SoftLayerSDK

type SoftLayerSDK struct {
	Username string
	APIKey   string
}

func NewSoftLayerSDK

func NewSoftLayerSDK(username, apiKey string) *SoftLayerSDK

func (*SoftLayerSDK) GetRegionList

func (sdk *SoftLayerSDK) GetRegionList() []string

Jump to

Keyboard shortcuts

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