Documentation ¶
Index ¶
- Constants
- func CheckMachineType(Name string) bool
- func ConvertVMStatusString(vmStatus string) (irs.VMStatus, error)
- func CreateHashString(credentialInfo idrv.CredentialInfo) (string, error)
- func GetCBDefaultSubnetName() string
- func GetCBDefaultVNetName() string
- func GetKeyValueList(i map[string]interface{}) []irs.KeyValue
- func GetPublicKey(credentialInfo idrv.CredentialInfo, keyPairName string) (string, error)
- type GCPImageHandler
- func (imageHandler *GCPImageHandler) ConvertGcpImageInfoToCbImageInfo(imageInfo GcpImageInfo) irs.ImageInfo
- func (imageHandler *GCPImageHandler) CreateImage(imageReqInfo irs.ImageReqInfo) (irs.ImageInfo, error)
- func (imageHandler *GCPImageHandler) DeleteImage(imageIID irs.IID) (bool, error)
- func (imageHandler *GCPImageHandler) FindImageInfo(reqImageName string) (GcpImageInfo, error)
- func (imageHandler *GCPImageHandler) FindImageInfoByName(reqImageName string) (GcpImageInfo, error)
- func (imageHandler *GCPImageHandler) GetImage(imageIID irs.IID) (irs.ImageInfo, error)
- func (imageHandler *GCPImageHandler) GetImageByUrl(imageIID irs.IID) (irs.ImageInfo, error)
- func (imageHandler *GCPImageHandler) ListImage() ([]*irs.ImageInfo, error)
- type GCPKeyPairHandler
- func (keyPairHandler *GCPKeyPairHandler) CreateKey(keyPairReqInfo irs.KeyPairReqInfo) (irs.KeyPairInfo, error)
- func (keyPairHandler *GCPKeyPairHandler) DeleteKey(keyIID irs.IID) (bool, error)
- func (keyPairHandler *GCPKeyPairHandler) GetKey(keyIID irs.IID) (irs.KeyPairInfo, error)
- func (keyPairHandler *GCPKeyPairHandler) ListKey() ([]*irs.KeyPairInfo, error)
- type GCPSecurityHandler
- func (securityHandler *GCPSecurityHandler) AddRules(sgIID irs.IID, securityRules *[]irs.SecurityRuleInfo) (irs.SecurityInfo, error)
- func (securityHandler *GCPSecurityHandler) CreateSecurity(securityReqInfo irs.SecurityReqInfo) (irs.SecurityInfo, error)
- func (securityHandler *GCPSecurityHandler) DeleteSecurity(securityIID irs.IID) (bool, error)
- func (securityHandler *GCPSecurityHandler) GetSecurity(securityIID irs.IID) (irs.SecurityInfo, error)
- func (securityHandler *GCPSecurityHandler) ListSecurity() ([]*irs.SecurityInfo, error)
- func (securityHandler *GCPSecurityHandler) RemoveRules(sgIID irs.IID, securityRules *[]irs.SecurityRuleInfo) (bool, error)
- func (securityHandler *GCPSecurityHandler) WaitUntilComplete(resourceId string) error
- type GCPVMHandler
- func (vmHandler *GCPVMHandler) GetVM(vmID irs.IID) (irs.VMInfo, error)
- func (vmHandler *GCPVMHandler) GetVMStatus(vmID irs.IID) (irs.VMStatus, error)
- func (vmHandler *GCPVMHandler) ListVM() ([]*irs.VMInfo, error)
- func (vmHandler *GCPVMHandler) ListVMStatus() ([]*irs.VMStatusInfo, error)
- func (vmHandler *GCPVMHandler) RebootVM(vmID irs.IID) (irs.VMStatus, error)
- func (vmHandler *GCPVMHandler) ResumeVM(vmID irs.IID) (irs.VMStatus, error)
- func (vmHandler *GCPVMHandler) StartVM(vmReqInfo irs.VMReqInfo) (irs.VMInfo, error)
- func (vmHandler *GCPVMHandler) SuspendVM(vmID irs.IID) (irs.VMStatus, error)
- func (vmHandler *GCPVMHandler) TerminateVM(vmID irs.IID) (irs.VMStatus, error)
- func (vmHandler *GCPVMHandler) WaitForRun(vmIID irs.IID) (irs.VMStatus, error)
- type GCPVMSpecHandler
- func (vmSpecHandler *GCPVMSpecHandler) GetOrgVMSpec(Name string) (string, error)
- func (vmSpecHandler *GCPVMSpecHandler) GetVMSpec(Name string) (irs.VMSpecInfo, error)
- func (vmSpecHandler *GCPVMSpecHandler) ListOrgVMSpec() (string, error)
- func (vmSpecHandler *GCPVMSpecHandler) ListVMSpec() ([]*irs.VMSpecInfo, error)
- type GCPVPCHandler
- func (VPCHandler *GCPVPCHandler) AddSubnet(vpcIID irs.IID, subnetInfo irs.SubnetInfo) (irs.VPCInfo, error)
- func (vVPCHandler *GCPVPCHandler) CreateSubnet(vpcId string, reqSubnetInfo irs.SubnetInfo) (irs.SubnetInfo, error)
- func (vVPCHandler *GCPVPCHandler) CreateVPC(vpcReqInfo irs.VPCReqInfo) (irs.VPCInfo, error)
- func (vVPCHandler *GCPVPCHandler) DeleteVPC(vpcID irs.IID) (bool, error)
- func (vVPCHandler *GCPVPCHandler) GetVPC(vpcIID irs.IID) (irs.VPCInfo, error)
- func (vVPCHandler *GCPVPCHandler) ListVPC() ([]*irs.VPCInfo, error)
- func (vVPCHandler *GCPVPCHandler) RemoveSubnet(vpcIID irs.IID, subnetIID irs.IID) (bool, error)
- func (vVPCHandler *GCPVPCHandler) WaitForRunSubnet(subnetName string, waitFound bool) error
- func (vVPCHandler *GCPVPCHandler) WaitForRunVpc(name string, waitFound bool) error
- func (vVPCHandler *GCPVPCHandler) WaitUntilComplete(resourceId string, isGlobalAction bool) error
- type GcpCBNetworkInfo
- type GcpImageInfo
Constants ¶
const ( CBVMUser = "cscservice" //CBKeyPairPath = "/cloud-control-manager/cloud-driver/driver-libs/.ssh-gcp/" // by powerkim, 2019.10.30 CBKeyPairPath = "/meta_db/.ssh-gcp/" CBKeyPairProvider = "GCP" )
const ( Const_SecurityRule_Add = "add" Const_SecurityRule_Remove = "remove" Const_Firewall_Allow = true Const_Firewall_Deny = false Const_GCP_Direction_INGRESS = "INGRESS" Const_GCP_Direction_EGRESS = "EGRESS" Const_Spider_Direction_INBOUND = "inbound" Const_Spider_Direction_OUTBOUND = "outbound" Const_IPPROTOCOL_ALL = "ALL" Const_IPPROTOCOL_TCP = "TCP" Const_IPPROTOCOL_UDP = "UDP" Const_IPPROTOCOL_ICMP = "ICMP" Const_IPPROTOCOL_ETC = "ETC" )
const CBDefaultSubnetName string = "cb-vnet" // CB Default Subnet Name
const CBDefaultVNetName string = "cb-vnet" // CB Default Virtual Network Name
Variables ¶
This section is empty.
Functions ¶
func CheckMachineType ¶
func CreateHashString ¶
func CreateHashString(credentialInfo idrv.CredentialInfo) (string, error)
KeyPair 해시 생성 함수
func GetKeyValueList ¶
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 ¶
이슈 #239에 의해 Name 기반에서 URL 기반으로 로직 변경 전달 받은 URL에서 projectId와 Name을 추출해서 조회함.
func (*GCPImageHandler) GetImageByUrl ¶ added in v0.2.1
이슈 #239에 의해 Name 기반에서 URL 기반으로 로직 변경 전체 목록에서 이미지 정보를 조회 함. - 위의 GetImage()로 검색되지 않는 경우가 발생하면 이 함수를 이용할 것.
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) AddRules ¶ added in v0.5.4
func (securityHandler *GCPSecurityHandler) AddRules(sgIID irs.IID, securityRules *[]irs.SecurityRuleInfo) (irs.SecurityInfo, error)
func (*GCPSecurityHandler) CreateSecurity ¶
func (securityHandler *GCPSecurityHandler) CreateSecurity(securityReqInfo irs.SecurityReqInfo) (irs.SecurityInfo, error)
SecurityGroup 생성. GCP는 firewall 추가 시 tag = securityGroupName .GCP 기본 정책이 outbound에 대해 all allow이므로
- 우선순위가 가장 낮은(65535) all deny outbound rule 추가
- 우선순위 = 100 인 all allow outbound rule 추가
.사용자의 요청에서 outbound all open 이 있는 경우. default로 생성하므로 skip
func (*GCPSecurityHandler) DeleteSecurity ¶
func (securityHandler *GCPSecurityHandler) DeleteSecurity(securityIID irs.IID) (bool, error)
SecurityGroup 삭제 (해당 Tag를 가진 firewall 삭제)
func (*GCPSecurityHandler) GetSecurity ¶
func (securityHandler *GCPSecurityHandler) GetSecurity(securityIID irs.IID) (irs.SecurityInfo, error)
TAG를 이용해서 해당 security(firewall)를 모두 가와야 하기 때문에 해당 project의 모든 list에서 해당 하는 TAG를 추출
func (*GCPSecurityHandler) ListSecurity ¶
func (securityHandler *GCPSecurityHandler) ListSecurity() ([]*irs.SecurityInfo, error)
func (*GCPSecurityHandler) RemoveRules ¶ added in v0.5.4
func (securityHandler *GCPSecurityHandler) RemoveRules(sgIID irs.IID, securityRules *[]irs.SecurityRuleInfo) (bool, error)
요청받은 Security 그룹안의 SecurityRule이 동일한 firewall 삭제 추가가 allow만 가능 하므로 삭제도 allow만 가능
func (*GCPSecurityHandler) WaitUntilComplete ¶ added in v0.5.5
func (securityHandler *GCPSecurityHandler) WaitUntilComplete(resourceId string) error
securityGroup(firewall) 은 global
type GCPVMHandler ¶
type GCPVMHandler struct { Region idrv.RegionInfo Ctx context.Context Client *compute.Service Credential idrv.CredentialInfo }
func (*GCPVMHandler) GetVMStatus ¶
func (*GCPVMHandler) ListVMStatus ¶
func (vmHandler *GCPVMHandler) ListVMStatus() ([]*irs.VMStatusInfo, error)
func (*GCPVMHandler) StartVM ¶
https://cloud.google.com/compute/docs/reference/rest/v1/instances https://cloud.google.com/compute/docs/disks#disk-types
func (*GCPVMHandler) TerminateVM ¶
func (*GCPVMHandler) WaitForRun ¶ added in v0.1.5
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(Name string) (string, error)
func (*GCPVMSpecHandler) GetVMSpec ¶
func (vmSpecHandler *GCPVMSpecHandler) GetVMSpec(Name string) (irs.VMSpecInfo, error)
func (*GCPVMSpecHandler) ListOrgVMSpec ¶
func (vmSpecHandler *GCPVMSpecHandler) ListOrgVMSpec() (string, error)
func (*GCPVMSpecHandler) ListVMSpec ¶
func (vmSpecHandler *GCPVMSpecHandler) ListVMSpec() ([]*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) ListVPC ¶ added in v0.1.3
func (vVPCHandler *GCPVPCHandler) ListVPC() ([]*irs.VPCInfo, error)
func (*GCPVPCHandler) RemoveSubnet ¶ added in v0.2.1
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 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 리턴 정보 조회용