resources

package
v0.3.13 Latest Latest
Warning

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

Go to latest
Published: May 11, 2021 License: Apache-2.0 Imports: 22 Imported by: 1

Documentation

Index

Constants

View Source
const (
	CBVMUser = "cscservice"
	//CBKeyPairPath = "/cloud-control-manager/cloud-driver/driver-libs/.ssh-gcp/"
	// by powerkim, 2019.10.30
	CBKeyPairPath = "/cloud-driver-libs/.ssh-gcp/"
)
View Source
const CBDefaultSubnetName string = "cb-vnet" // CB Default Subnet Name
View Source
const CBDefaultVNetName string = "cb-vnet" // CB Default Virtual Network Name

Variables

This section is empty.

Functions

func CheckMachineType

func CheckMachineType(Name string) bool

func ConvertVMStatusString

func ConvertVMStatusString(vmStatus string) (irs.VMStatus, error)

func CreateHashString

func CreateHashString(credentialInfo idrv.CredentialInfo) (string, error)

KeyPair 해시 생성 함수

func GetCBDefaultSubnetName

func GetCBDefaultSubnetName() string

Subnet

func GetCBDefaultVNetName

func GetCBDefaultVNetName() string

VPC

func GetKeyValueList

func GetKeyValueList(i map[string]interface{}) []irs.KeyValue

func GetPublicKey

func GetPublicKey(credentialInfo idrv.CredentialInfo, keyPairName string) (string, error)

Public KeyPair 정보 가져오기

Types

type GCPImageHandler

type GCPImageHandler struct {
	Region     idrv.RegionInfo
	Ctx        context.Context
	Client     *compute.Service
	Credential idrv.CredentialInfo
}

func (*GCPImageHandler) ConvertGcpImageInfoToCbImageInfo added in v0.1.5

func (imageHandler *GCPImageHandler) ConvertGcpImageInfoToCbImageInfo(imageInfo GcpImageInfo) irs.ImageInfo

GCP 호출을 줄이기 위해 조회된 정보를 CB형태로 직접 변환해서 전달 함.

func (*GCPImageHandler) CreateImage

func (imageHandler *GCPImageHandler) CreateImage(imageReqInfo irs.ImageReqInfo) (irs.ImageInfo, error)

func (*GCPImageHandler) DeleteImage

func (imageHandler *GCPImageHandler) DeleteImage(imageIID irs.IID) (bool, error)

public Image 는 지울 수 없는데 어떻게 해야 하는가?

func (*GCPImageHandler) FindImageInfo added in v0.1.5

func (imageHandler *GCPImageHandler) FindImageInfo(reqImageName string) (GcpImageInfo, error)

이슈 #239에 의해 Name 기반에서 URL 기반으로 로직 변경 사용의 편의를 위해 이미지 URL을 전달 받아서 이미지 정보를 리턴 함. https://cloud.google.com/compute/docs/images?hl=ko @TODO : 효율을 위해서 최소한 ProjectId 정보를 입력 받아야 하지만 현재는 이미지 URL만 전달 받기 때문에 하나로 통합해 놓음.

func (*GCPImageHandler) FindImageInfoByName added in v0.2.1

func (imageHandler *GCPImageHandler) FindImageInfoByName(reqImageName string) (GcpImageInfo, error)

목록에서 이미지 Name으로 정보를 찾아서 리턴 함. - 2020-07-24 URL기반으로 변경되어서 이 메소드는 사용 안 함. @TODO : 효율을 위해서 최소한 ProjectId 정보를 입력 받아야 하지만 현재는 이미지 명만 전달 받기 때문에 하나로 통합해 놓음.

func (*GCPImageHandler) GetImage

func (imageHandler *GCPImageHandler) GetImage(imageIID irs.IID) (irs.ImageInfo, error)

이슈 #239에 의해 Name 기반에서 URL 기반으로 로직 변경 전달 받은 URL에서 projectId와 Name을 추출해서 조회함.

func (*GCPImageHandler) GetImageByUrl added in v0.2.1

func (imageHandler *GCPImageHandler) GetImageByUrl(imageIID irs.IID) (irs.ImageInfo, error)

이슈 #239에 의해 Name 기반에서 URL 기반으로 로직 변경 전체 목록에서 이미지 정보를 조회 함. - 위의 GetImage()로 검색되지 않는 경우가 발생하면 이 함수를 이용할 것.

func (*GCPImageHandler) ListImage

func (imageHandler *GCPImageHandler) ListImage() ([]*irs.ImageInfo, error)

리스트의 경우 Name 기반으로 조회해서 처리하기에는 너무 느리기 때문에 직접 컨버팅함.

type GCPKeyPairHandler

type GCPKeyPairHandler struct {
	CredentialInfo idrv.CredentialInfo
	Region         idrv.RegionInfo
}

func (*GCPKeyPairHandler) CreateKey

func (keyPairHandler *GCPKeyPairHandler) CreateKey(keyPairReqInfo irs.KeyPairReqInfo) (irs.KeyPairInfo, error)

func (*GCPKeyPairHandler) DeleteKey

func (keyPairHandler *GCPKeyPairHandler) DeleteKey(keyIID irs.IID) (bool, error)

func (*GCPKeyPairHandler) GetKey

func (keyPairHandler *GCPKeyPairHandler) GetKey(keyIID irs.IID) (irs.KeyPairInfo, error)

func (*GCPKeyPairHandler) ListKey

func (keyPairHandler *GCPKeyPairHandler) ListKey() ([]*irs.KeyPairInfo, error)

type GCPSecurityHandler

type GCPSecurityHandler struct {
	Region     idrv.RegionInfo
	Ctx        context.Context
	Client     *compute.Service
	Credential idrv.CredentialInfo
}

func (*GCPSecurityHandler) CreateSecurity

func (securityHandler *GCPSecurityHandler) CreateSecurity(securityReqInfo irs.SecurityReqInfo) (irs.SecurityInfo, error)

@TODO : 이슈

func (*GCPSecurityHandler) DeleteSecurity

func (securityHandler *GCPSecurityHandler) DeleteSecurity(securityIID irs.IID) (bool, error)

func (*GCPSecurityHandler) GetSecurity

func (securityHandler *GCPSecurityHandler) GetSecurity(securityIID irs.IID) (irs.SecurityInfo, error)

func (*GCPSecurityHandler) ListSecurity

func (securityHandler *GCPSecurityHandler) ListSecurity() ([]*irs.SecurityInfo, error)

type GCPVMHandler

type GCPVMHandler struct {
	Region     idrv.RegionInfo
	Ctx        context.Context
	Client     *compute.Service
	Credential idrv.CredentialInfo
}

func (*GCPVMHandler) GetVM

func (vmHandler *GCPVMHandler) GetVM(vmID irs.IID) (irs.VMInfo, error)

func (*GCPVMHandler) GetVMStatus

func (vmHandler *GCPVMHandler) GetVMStatus(vmID irs.IID) (irs.VMStatus, error)

func (*GCPVMHandler) ListVM

func (vmHandler *GCPVMHandler) ListVM() ([]*irs.VMInfo, error)

func (*GCPVMHandler) ListVMStatus

func (vmHandler *GCPVMHandler) ListVMStatus() ([]*irs.VMStatusInfo, error)

func (*GCPVMHandler) RebootVM

func (vmHandler *GCPVMHandler) RebootVM(vmID irs.IID) (irs.VMStatus, error)

func (*GCPVMHandler) ResumeVM

func (vmHandler *GCPVMHandler) ResumeVM(vmID irs.IID) (irs.VMStatus, error)

func (*GCPVMHandler) StartVM

func (vmHandler *GCPVMHandler) StartVM(vmReqInfo irs.VMReqInfo) (irs.VMInfo, error)

func (*GCPVMHandler) SuspendVM

func (vmHandler *GCPVMHandler) SuspendVM(vmID irs.IID) (irs.VMStatus, error)

stop이라고 보면 될듯

func (*GCPVMHandler) TerminateVM

func (vmHandler *GCPVMHandler) TerminateVM(vmID irs.IID) (irs.VMStatus, error)

func (*GCPVMHandler) WaitForRun added in v0.1.5

func (vmHandler *GCPVMHandler) WaitForRun(vmIID irs.IID) (irs.VMStatus, error)

VM 정보를 조회할 수 있을 때까지 최대 30초간 대기

type GCPVMSpecHandler

type GCPVMSpecHandler struct {
	Region     idrv.RegionInfo
	Ctx        context.Context
	Client     *compute.Service
	Credential idrv.CredentialInfo
}

func (*GCPVMSpecHandler) GetOrgVMSpec

func (vmSpecHandler *GCPVMSpecHandler) GetOrgVMSpec(Region string, Name string) (string, error)

func (*GCPVMSpecHandler) GetVMSpec

func (vmSpecHandler *GCPVMSpecHandler) GetVMSpec(Region string, Name string) (irs.VMSpecInfo, error)

func (*GCPVMSpecHandler) ListOrgVMSpec

func (vmSpecHandler *GCPVMSpecHandler) ListOrgVMSpec(Region string) (string, error)

func (*GCPVMSpecHandler) ListVMSpec

func (vmSpecHandler *GCPVMSpecHandler) ListVMSpec(Region string) ([]*irs.VMSpecInfo, error)

type GCPVPCHandler added in v0.1.3

type GCPVPCHandler struct {
	Region     idrv.RegionInfo
	Ctx        context.Context
	Client     *compute.Service
	Credential idrv.CredentialInfo
}

func (*GCPVPCHandler) AddSubnet added in v0.2.1

func (VPCHandler *GCPVPCHandler) AddSubnet(vpcIID irs.IID, subnetInfo irs.SubnetInfo) (irs.VPCInfo, error)

func (*GCPVPCHandler) CreateSubnet added in v0.2.1

func (vVPCHandler *GCPVPCHandler) CreateSubnet(vpcId string, reqSubnetInfo irs.SubnetInfo) (irs.SubnetInfo, error)

리턴 값은 구현하지 않고 nil을 리턴함. - 현재 사용되는 곳이 없어서 시간상 누락 시킴.

func (*GCPVPCHandler) CreateVPC added in v0.1.3

func (vVPCHandler *GCPVPCHandler) CreateVPC(vpcReqInfo irs.VPCReqInfo) (irs.VPCInfo, error)

@TODO : VPC 생성 로직 변경 필요 / 서브넷이 백그라운드로 생성되기 때문에 조회 시 모두 생성될 때까지 대기하는 로직 필요(그렇지 않으면 일부 정보가 누락됨)

func (*GCPVPCHandler) DeleteVPC added in v0.1.3

func (vVPCHandler *GCPVPCHandler) DeleteVPC(vpcID irs.IID) (bool, error)

func (*GCPVPCHandler) GetVPC added in v0.1.3

func (vVPCHandler *GCPVPCHandler) GetVPC(vpcIID irs.IID) (irs.VPCInfo, error)

func (*GCPVPCHandler) ListVPC added in v0.1.3

func (vVPCHandler *GCPVPCHandler) ListVPC() ([]*irs.VPCInfo, error)

func (*GCPVPCHandler) RemoveSubnet added in v0.2.1

func (vVPCHandler *GCPVPCHandler) RemoveSubnet(vpcIID irs.IID, subnetIID irs.IID) (bool, error)

func (*GCPVPCHandler) WaitForRunSubnet added in v0.1.9

func (vVPCHandler *GCPVPCHandler) WaitForRunSubnet(subnetName string, waitFound bool) error

Subnet 정보가 조회될때까지 대기 waitFound : true - 정보가 조회될때까지 대기(생성 시) / false - 정보가 조회되지 않을때까지 대기(삭제 시)

func (*GCPVPCHandler) WaitForRunVpc added in v0.1.9

func (vVPCHandler *GCPVPCHandler) WaitForRunVpc(name string, waitFound bool) error

VPC 정보가 조회될때까지 대기 waitFound : true - 정보가 조회될때까지 대기(생성 시) / false - 정보가 조회되지 않을때까지 대기(삭제 시)

func (*GCPVPCHandler) WaitUntilComplete added in v0.1.9

func (vVPCHandler *GCPVPCHandler) WaitUntilComplete(resourceId string, isGlobalAction bool) error

https://cloud.google.com/compute/docs/reference/rest/v1/globalOperations/get

resourceId : API 호출후 받은 리소스 값 VPC : 글로벌 https://www.googleapis.com/compute/v1/projects/mcloud-barista2020/global/networks/cb-vpc-load-test Subnet : Regions https://www.googleapis.com/compute/v1/projects/mcloud-barista2020/regions/asia-northeast3/operations/operation-1590139586815-5a6393937274c-71aebdca-1574e4d7 404 에러 체크해서 global과 region 자동으로 처리 가능하니 필요하면 나중에 공통 유틸로 변경할 것

type GcpCBNetworkInfo

type GcpCBNetworkInfo struct {
	VpcName   string
	VpcId     string
	CidrBlock string
	IsDefault bool
	State     string

	SubnetName string
	SubnetId   string
}

type GcpImageInfo added in v0.1.5

type GcpImageInfo struct {
	ImageUrl string //for CB(VM Start)
	Name     string //for CB
	GuestOS  string //for CB (Item.Family)
	Status   string //for CB

	ProjectId string //for image api call
	//Id        uint64 //for image api call
	Id string

	SourceType  string //for keyValue
	SourceImage string //for keyValue
	SelfLink    string //for keyValue
	Family      string //for keyValue
}

Name 기반으로 VM생성에 필요한 URL및 Image API 호출과 CB 리턴 정보 조회용

Jump to

Keyboard shortcuts

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