Documentation ¶
Overview ¶
Proof of Concepts for the Cloud-Barista Multi-Cloud Project.
- Cloud-Barista: https://github.com/cloud-barista
EC2 Hander (AWS SDK GO Version 1.16.26, Thanks AWS.)
by CB-Spider Team, 2019.03.
2019-10-17 충돌 방지및 CB-VNet을 감추기 위해 명시적으로 각 핸들러들의 Create나 Delete에서만 자동으로 처리하며,
정확하지는 않아도 네트워크 범위를 id 기반에서 name기반으로 변경 함. (예) vpc-name / subnet-name *** Subnet은 1개만 생성되도록 제한 함..***
Index ¶
- Constants
- func Connect(region string) *ec2.EC2
- func ConvertJsonString(v interface{}) (string, error)
- func ConvertJsonStringNoEscape(v interface{}) (string, error)
- func ConvertKeyValueList(v interface{}) ([]irs.KeyValue, error)
- func ConvertToString(value interface{}) (string, error)
- func ConvertVMStatusString(vmStatus string) (irs.VMStatus, error)
- func ExtractGpuInfo(gpuDeviceInfo *ec2.GpuDeviceInfo) irs.GpuInfo
- func ExtractImageDescribeInfo(image *ec2.Image) irs.ImageInfo
- func ExtractIpPermissionCommon(ip *ec2.IpPermission, securityRuleInfo *irs.SecurityRuleInfo)
- func ExtractIpPermissions(ipPermissions []*ec2.IpPermission, direction string) []irs.SecurityRuleInfo
- func ExtractKeyPairDescribeInfo(keyPair *ec2.KeyPairInfo) irs.KeyPairInfo
- func ExtractSecurityInfo(securityGroupResult *ec2.SecurityGroup) irs.SecurityInfo
- func ExtractSubnetDescribeInfo(subnetInfo *ec2.Subnet) irs.VNetworkInfo
- func ExtractVMSpecInfo(Region string, instanceTypeInfo *ec2.InstanceTypeInfo) irs.VMSpecInfo
- func ExtractVNicDescribeInfo(netIf *ec2.NetworkInterface) irs.VNicInfo
- func ExtractVmName(Tags []*ec2.Tag) string
- func GetCBDefaultCidrBlock() string
- func GetCBDefaultSubnetName() string
- func GetCBDefaultVNetName() string
- func JSONMarshal(t interface{}) ([]byte, error)
- func SetNameTag(Client *ec2.EC2, Id string, value string) bool
- func WaitForRun(svc *ec2.EC2, instanceID string)
- type AwsCBNetworkInfo
- type AwsImageHandler
- func (imageHandler *AwsImageHandler) CreateImage(imageReqInfo irs.ImageReqInfo) (irs.ImageInfo, error)
- func (imageHandler *AwsImageHandler) DeleteImage(imageID string) (bool, error)
- func (imageHandler *AwsImageHandler) GetImage(imageID string) (irs.ImageInfo, error)
- func (imageHandler *AwsImageHandler) ListImage() ([]*irs.ImageInfo, error)
- type AwsKeyPairHandler
- func (keyPairHandler *AwsKeyPairHandler) CreateKey(keyPairReqInfo irs.KeyPairReqInfo) (irs.KeyPairInfo, error)
- func (keyPairHandler *AwsKeyPairHandler) DeleteKey(keyName string) (bool, error)
- func (keyPairHandler *AwsKeyPairHandler) GetKey(keyName string) (irs.KeyPairInfo, error)
- func (keyPairHandler *AwsKeyPairHandler) ListKey() ([]*irs.KeyPairInfo, error)
- type AwsPublicIPHandler
- func (publicIpHandler *AwsPublicIPHandler) CreatePublicIP(publicIPReqInfo irs.PublicIPReqInfo) (irs.PublicIPInfo, error)
- func (publicIpHandler *AwsPublicIPHandler) DeletePublicIP(publicIPNameId string) (bool, error)
- func (publicIpHandler *AwsPublicIPHandler) DisassociatePublicIP(publicIP string) (bool, error)
- func (publicIpHandler *AwsPublicIPHandler) GetPublicIP(publicIPNameId string) (irs.PublicIPInfo, error)
- func (publicIpHandler *AwsPublicIPHandler) ListPublicIP() ([]*irs.PublicIPInfo, error)
- type AwsSecurityHandler
- func (securityHandler *AwsSecurityHandler) CreateSecurity(securityReqInfo irs.SecurityReqInfo) (irs.SecurityInfo, error)
- func (securityHandler *AwsSecurityHandler) DeleteSecurity(securityNameId string) (bool, error)
- func (securityHandler *AwsSecurityHandler) GetSecurity(securityNameId string) (irs.SecurityInfo, error)
- func (securityHandler *AwsSecurityHandler) ListSecurity() ([]*irs.SecurityInfo, error)
- type AwsVMHandler
- func (vmHandler *AwsVMHandler) AssociatePublicIP(allocationId string, instanceId string) (bool, error)
- func (vmHandler *AwsVMHandler) AttachNetworkInterface(vNicId string, instanceId string) (bool, error)
- func (vmHandler *AwsVMHandler) ExtractDescribeInstances(reservation *ec2.Reservation) irs.VMInfo
- func (vmHandler *AwsVMHandler) GetVM(vmNameId string) (irs.VMInfo, error)
- func (vmHandler *AwsVMHandler) GetVMStatus(vmNameId string) (irs.VMStatus, error)
- func (vmHandler *AwsVMHandler) ListVM() ([]*irs.VMInfo, error)
- func (vmHandler *AwsVMHandler) ListVMStatus() ([]*irs.VMStatusInfo, error)
- func (vmHandler *AwsVMHandler) RebootVM(vmNameId string) (irs.VMStatus, error)
- func (vmHandler *AwsVMHandler) ResumeVM(vmNameId string) (irs.VMStatus, error)
- func (vmHandler *AwsVMHandler) StartVM(vmReqInfo irs.VMReqInfo) (irs.VMInfo, error)
- func (vmHandler *AwsVMHandler) SuspendVM(vmNameId string) (irs.VMStatus, error)
- func (vmHandler *AwsVMHandler) TerminateVM(vmNameId string) (irs.VMStatus, error)
- type AwsVNetworkHandler
- func (vNetworkHandler *AwsVNetworkHandler) AssociateRouteTable(vpcId string, subnetId string) error
- func (vNetworkHandler *AwsVNetworkHandler) CreateRouteIGW(vpcId string, igwId string) error
- func (vNetworkHandler *AwsVNetworkHandler) CreateVNetwork(vNetworkReqInfo irs.VNetworkReqInfo) (irs.VNetworkInfo, error)
- func (vNetworkHandler *AwsVNetworkHandler) CreateVpc(awsVpcReqInfo AwsVpcReqInfo) (AwsVpcInfo, error)
- func (vNetworkHandler *AwsVNetworkHandler) DeleteAllIGW(vpcId string) error
- func (vNetworkHandler *AwsVNetworkHandler) DeleteIGW(igwId string) error
- func (vNetworkHandler *AwsVNetworkHandler) DeleteRouteIGW(vpcId string) error
- func (vNetworkHandler *AwsVNetworkHandler) DeleteVNetwork(vNetworkNameId string) (bool, error)
- func (vNetworkHandler *AwsVNetworkHandler) DeleteVpc(vpcId string) (bool, error)
- func (vNetworkHandler *AwsVNetworkHandler) DetachInternetGateway(vpcId string, igwId string) error
- func (vNetworkHandler *AwsVNetworkHandler) FindOrCreateMcloudBaristaDefaultVPC(vNetworkReqInfo irs.VNetworkReqInfo) (string, error)
- func (vNetworkHandler *AwsVNetworkHandler) GetAutoCBNetworkInfo() (AwsCBNetworkInfo, error)
- func (vNetworkHandler *AwsVNetworkHandler) GetCBDefaultRouteTable(vpcId string) (string, error)
- func (vNetworkHandler *AwsVNetworkHandler) GetMcloudBaristaDefaultSubnetId() string
- func (vNetworkHandler *AwsVNetworkHandler) GetMcloudBaristaDefaultVpcId() string
- func (vNetworkHandler *AwsVNetworkHandler) GetVNetwork(vNetworkNameId string) (irs.VNetworkInfo, error)
- func (vNetworkHandler *AwsVNetworkHandler) GetVpc(vpcName string) (AwsVpcInfo, error)
- func (vNetworkHandler *AwsVNetworkHandler) IsAvailableAutoCBNet() bool
- func (vNetworkHandler *AwsVNetworkHandler) ListVNetwork() ([]*irs.VNetworkInfo, error)
- func (vNetworkHandler *AwsVNetworkHandler) ListVpc() ([]*AwsVpcInfo, error)
- type AwsVNicHandler
- func (vNicHandler *AwsVNicHandler) CreateVNic(vNicReqInfo irs.VNicReqInfo) (irs.VNicInfo, error)
- func (vNicHandler *AwsVNicHandler) DeleteVNic(vNicID string) (bool, error)
- func (vNicHandler *AwsVNicHandler) GetVNic(vNicID string) (irs.VNicInfo, error)
- func (vNicHandler *AwsVNicHandler) GetVNicByName(vNicName string, vpcId string) (irs.VNicInfo, error)
- func (vNicHandler *AwsVNicHandler) ListVNic() ([]*irs.VNicInfo, error)
- type AwsVmSpecHandler
- func (vmSpecHandler *AwsVmSpecHandler) GetOrgVMSpec(Region string, Name string) (string, error)
- func (vmSpecHandler *AwsVmSpecHandler) GetVMSpec(Region string, Name string) (irs.VMSpecInfo, error)
- func (vmSpecHandler *AwsVmSpecHandler) ListOrgVMSpec(Region string) (string, error)
- func (vmSpecHandler *AwsVmSpecHandler) ListVMSpec(Region string) ([]*irs.VMSpecInfo, error)
- type AwsVpcInfo
- type AwsVpcReqInfo
Constants ¶
const CBDefaultCidrBlock string = "192.168.0.0/16" // CB Default CidrBlock
const CBDefaultSubnetName string = "CB-VNet-Subnet" // CB Default Subnet Name
const CBDefaultVNetName string = "CB-VNet" // CB Default Virtual Network Name
const CUSTOM_ERR_CODE_NOTFOUND string = "404" //awserr.New("404", "XXX 정보가 존재하지 않습니다.", nil)
const CUSTOM_ERR_CODE_TOOMANY string = "600" //awserr.New("600", "n개 이상의 xxxx 정보가 존재합니다.", nil)
Variables ¶
This section is empty.
Functions ¶
func ConvertJsonString ¶
Cloud Object를 JSON String 타입으로 변환
func ConvertJsonStringNoEscape ¶ added in v0.1.2
Cloud Object를 JSON String 타입으로 변환
func ConvertKeyValueList ¶
Cloud Object를 CB-KeyValue 형식으로 변환이 필요할 경우 이용
func ConvertToString ¶
CB-KeyValue 등을 위해 String 타입으로 변환
func ExtractGpuInfo ¶
func ExtractGpuInfo(gpuDeviceInfo *ec2.GpuDeviceInfo) irs.GpuInfo
func ExtractImageDescribeInfo ¶
Image 정보를 추출함
func ExtractIpPermissionCommon ¶
func ExtractIpPermissionCommon(ip *ec2.IpPermission, securityRuleInfo *irs.SecurityRuleInfo)
IpPermission에서 공통정보 추출
func ExtractIpPermissions ¶
func ExtractIpPermissions(ipPermissions []*ec2.IpPermission, direction string) []irs.SecurityRuleInfo
func ExtractKeyPairDescribeInfo ¶
func ExtractKeyPairDescribeInfo(keyPair *ec2.KeyPairInfo) irs.KeyPairInfo
KeyPair 정보를 추출함
func ExtractSecurityInfo ¶
func ExtractSecurityInfo(securityGroupResult *ec2.SecurityGroup) irs.SecurityInfo
func ExtractSubnetDescribeInfo ¶
func ExtractSubnetDescribeInfo(subnetInfo *ec2.Subnet) irs.VNetworkInfo
Subnet 정보를 추출함
func ExtractVMSpecInfo ¶
func ExtractVMSpecInfo(Region string, instanceTypeInfo *ec2.InstanceTypeInfo) irs.VMSpecInfo
인스턴스 스펙 정보를 추출함
func ExtractVNicDescribeInfo ¶
func ExtractVNicDescribeInfo(netIf *ec2.NetworkInterface) irs.VNicInfo
VNic 정보를 추출함
func ExtractVmName ¶
func GetCBDefaultCidrBlock ¶
func GetCBDefaultCidrBlock() string
func JSONMarshal ¶ added in v0.1.2
Types ¶
type AwsCBNetworkInfo ¶
type AwsImageHandler ¶
type AwsImageHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsImageHandler) CreateImage ¶
func (imageHandler *AwsImageHandler) CreateImage(imageReqInfo irs.ImageReqInfo) (irs.ImageInfo, error)
@TODO : 작업해야 함.
func (*AwsImageHandler) DeleteImage ¶
func (imageHandler *AwsImageHandler) DeleteImage(imageID string) (bool, error)
@TODO : 삭제 API 찾아야 함.
type AwsKeyPairHandler ¶
type AwsKeyPairHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsKeyPairHandler) CreateKey ¶
func (keyPairHandler *AwsKeyPairHandler) CreateKey(keyPairReqInfo irs.KeyPairReqInfo) (irs.KeyPairInfo, error)
func (*AwsKeyPairHandler) DeleteKey ¶
func (keyPairHandler *AwsKeyPairHandler) DeleteKey(keyName string) (bool, error)
func (*AwsKeyPairHandler) GetKey ¶
func (keyPairHandler *AwsKeyPairHandler) GetKey(keyName string) (irs.KeyPairInfo, error)
혼선을 피하기 위해 keyPairID 대신 keyName으로 변경 함.
func (*AwsKeyPairHandler) ListKey ¶
func (keyPairHandler *AwsKeyPairHandler) ListKey() ([]*irs.KeyPairInfo, error)
type AwsPublicIPHandler ¶
type AwsPublicIPHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsPublicIPHandler) CreatePublicIP ¶
func (publicIpHandler *AwsPublicIPHandler) CreatePublicIP(publicIPReqInfo irs.PublicIPReqInfo) (irs.PublicIPInfo, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨. VM 생성 시 PublicIP의 AllocationId를 전달 받는 방식으로 1차 확정되어서 이 곳에서는 관련 로직을 제거 함. VMHandler.go에서 할당및 회수 함
func (*AwsPublicIPHandler) DeletePublicIP ¶
func (publicIpHandler *AwsPublicIPHandler) DeletePublicIP(publicIPNameId string) (bool, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨. Public IP를 완전히 제거 함.(AWS Pool로 되돌려 보냄)
func (*AwsPublicIPHandler) DisassociatePublicIP ¶
func (publicIpHandler *AwsPublicIPHandler) DisassociatePublicIP(publicIP string) (bool, error)
@TODO : 공통 I/F에 함수 추가해야 함. - EC2 인스턴스와의 연결만 해제하는 DisassociatePublicIP publicIP 대신 AssociationId로도 가능 함.
func (*AwsPublicIPHandler) GetPublicIP ¶
func (publicIpHandler *AwsPublicIPHandler) GetPublicIP(publicIPNameId string) (irs.PublicIPInfo, error)
@TODO : 2차 정책에 의해 IP에서 할당ID 기반으로 변경함. 2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨.
func (*AwsPublicIPHandler) ListPublicIP ¶
func (publicIpHandler *AwsPublicIPHandler) ListPublicIP() ([]*irs.PublicIPInfo, error)
type AwsSecurityHandler ¶
type AwsSecurityHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsSecurityHandler) CreateSecurity ¶
func (securityHandler *AwsSecurityHandler) CreateSecurity(securityReqInfo irs.SecurityReqInfo) (irs.SecurityInfo, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨. (보안 그룹은 그룹명으로 처리 가능하기 때문에 Name 태깅시 에러는 무시함) @TODO : 존재하는 보안 그룹에 정책 추가하는 기능 필요 VPC 생략 시 활성화된 세션의 기본 VPC를 이용 함.
func (*AwsSecurityHandler) DeleteSecurity ¶
func (securityHandler *AwsSecurityHandler) DeleteSecurity(securityNameId string) (bool, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨.
func (*AwsSecurityHandler) GetSecurity ¶
func (securityHandler *AwsSecurityHandler) GetSecurity(securityNameId string) (irs.SecurityInfo, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨.
func (*AwsSecurityHandler) ListSecurity ¶
func (securityHandler *AwsSecurityHandler) ListSecurity() ([]*irs.SecurityInfo, error)
type AwsVMHandler ¶
type AwsVMHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsVMHandler) AssociatePublicIP ¶
func (vmHandler *AwsVMHandler) AssociatePublicIP(allocationId string, instanceId string) (bool, error)
AssociationId 대신 PublicIP로도 가능 함.
func (*AwsVMHandler) AttachNetworkInterface ¶
func (vmHandler *AwsVMHandler) AttachNetworkInterface(vNicId string, instanceId string) (bool, error)
전달 받은 vNic을 VM에 추가함.
func (*AwsVMHandler) ExtractDescribeInstances ¶
func (vmHandler *AwsVMHandler) ExtractDescribeInstances(reservation *ec2.Reservation) irs.VMInfo
DescribeInstances결과에서 EC2 세부 정보 추출 VM 생성 시에는 Running 이전 상태의 정보가 넘어오기 때문에 최종 정보 기반으로 리턴 받고 싶으면 GetVM에 통합해야 할 듯.
func (*AwsVMHandler) GetVM ¶
func (vmHandler *AwsVMHandler) GetVM(vmNameId string) (irs.VMInfo, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨.
func (*AwsVMHandler) GetVMStatus ¶
func (vmHandler *AwsVMHandler) GetVMStatus(vmNameId string) (irs.VMStatus, error)
SHUTTING-DOWN / TERMINATED
func (*AwsVMHandler) ListVMStatus ¶
func (vmHandler *AwsVMHandler) ListVMStatus() ([]*irs.VMStatusInfo, error)
func (*AwsVMHandler) RebootVM ¶
func (vmHandler *AwsVMHandler) RebootVM(vmNameId string) (irs.VMStatus, error)
func (*AwsVMHandler) ResumeVM ¶
func (vmHandler *AwsVMHandler) ResumeVM(vmNameId string) (irs.VMStatus, error)
func (*AwsVMHandler) StartVM ¶
1개의 VM만 생성되도록 수정 (MinCount / MaxCount 이용 안 함) 키페어 이름(예:mcloud-barista)은 아래 URL에 나오는 목록 중 "키페어 이름"의 값을 적으면 됨. https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2#KeyPairs:sort=keyName
func (*AwsVMHandler) SuspendVM ¶
func (vmHandler *AwsVMHandler) SuspendVM(vmNameId string) (irs.VMStatus, error)
func (*AwsVMHandler) TerminateVM ¶
func (vmHandler *AwsVMHandler) TerminateVM(vmNameId string) (irs.VMStatus, error)
type AwsVNetworkHandler ¶
type AwsVNetworkHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsVNetworkHandler) AssociateRouteTable ¶
func (vNetworkHandler *AwsVNetworkHandler) AssociateRouteTable(vpcId string, subnetId string) error
VPC의 라우팅 테이블에 생성된 Subnet을 연결 함.
func (*AwsVNetworkHandler) CreateRouteIGW ¶
func (vNetworkHandler *AwsVNetworkHandler) CreateRouteIGW(vpcId string, igwId string) error
생성된 VPC의 라우팅 테이블에 IGW(Internet Gateway) 라우팅 정보를 생성함 (AWS 콘솔의 라우팅 테이블의 [라우팅] Tab 처리)
func (*AwsVNetworkHandler) CreateVNetwork ¶
func (vNetworkHandler *AwsVNetworkHandler) CreateVNetwork(vNetworkReqInfo irs.VNetworkReqInfo) (irs.VNetworkInfo, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨.
func (*AwsVNetworkHandler) CreateVpc ¶
func (vNetworkHandler *AwsVNetworkHandler) CreateVpc(awsVpcReqInfo AwsVpcReqInfo) (AwsVpcInfo, error)
FindOrCreateMcloudBaristaDefaultVPC()에서 호출됨. - 이 곳은 나중을 위해 전달 받은 정보는 이용함 기본 VPC 생성이 필요하면 FindOrCreateMcloudBaristaDefaultVPC()를 호출할 것
func (*AwsVNetworkHandler) DeleteAllIGW ¶
func (vNetworkHandler *AwsVNetworkHandler) DeleteAllIGW(vpcId string) error
VPC에 연결된 모든 IGW를 삭제함.
func (*AwsVNetworkHandler) DeleteIGW ¶
func (vNetworkHandler *AwsVNetworkHandler) DeleteIGW(igwId string) error
IGW를 삭제 함.
func (*AwsVNetworkHandler) DeleteRouteIGW ¶
func (vNetworkHandler *AwsVNetworkHandler) DeleteRouteIGW(vpcId string) error
VPC에 설정된 0.0.0.0/0 라우터를 제거 함.
func (*AwsVNetworkHandler) DeleteVNetwork ¶
func (vNetworkHandler *AwsVNetworkHandler) DeleteVNetwork(vNetworkNameId string) (bool, error)
서브넷 삭제 마지막 서브넷인 경우 CB-Default Virtual Network도 함께 제거 2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨.
func (*AwsVNetworkHandler) DeleteVpc ¶
func (vNetworkHandler *AwsVNetworkHandler) DeleteVpc(vpcId string) (bool, error)
@TODO : 의존관계를 체크해서 전체 삭제 로직을 추가해야 함.
func (*AwsVNetworkHandler) DetachInternetGateway ¶
func (vNetworkHandler *AwsVNetworkHandler) DetachInternetGateway(vpcId string, igwId string) error
VPC에 연결된 IGW의 연결을 해제함.
func (*AwsVNetworkHandler) FindOrCreateMcloudBaristaDefaultVPC ¶
func (vNetworkHandler *AwsVNetworkHandler) FindOrCreateMcloudBaristaDefaultVPC(vNetworkReqInfo irs.VNetworkReqInfo) (string, error)
@TODO : ListVNetwork()에서 호출되는 경우도 있기 때문에 필요하면 VPC조회와 생성을 별도의 Func으로 분리해야함.(일단은 큰 문제는 없어서 놔둠) CB Default Virtual Network가 존재하지 않으면 생성하며, 존재하는 경우 Vpc ID를 리턴 함.
func (*AwsVNetworkHandler) GetAutoCBNetworkInfo ¶
func (vNetworkHandler *AwsVNetworkHandler) GetAutoCBNetworkInfo() (AwsCBNetworkInfo, error)
이 함수는 VPC & Subnet이 존재하는 곳에서만 사용됨. VPC & Subnet이 존재하는 경우 정보를 리턴하고 없는 경우 Default VPC & Subnet을 생성 후 정보를 리턴 함.
func (*AwsVNetworkHandler) GetCBDefaultRouteTable ¶
func (vNetworkHandler *AwsVNetworkHandler) GetCBDefaultRouteTable(vpcId string) (string, error)
자동 생성된 VPC의 기본 라우팅 테이블 정보를 찾음
func (*AwsVNetworkHandler) GetMcloudBaristaDefaultSubnetId ¶
func (vNetworkHandler *AwsVNetworkHandler) GetMcloudBaristaDefaultSubnetId() string
func (*AwsVNetworkHandler) GetMcloudBaristaDefaultVpcId ¶
func (vNetworkHandler *AwsVNetworkHandler) GetMcloudBaristaDefaultVpcId() string
func (*AwsVNetworkHandler) GetVNetwork ¶
func (vNetworkHandler *AwsVNetworkHandler) GetVNetwork(vNetworkNameId string) (irs.VNetworkInfo, error)
2019-11-16부로 CB-Driver 전체 로직이 NameId 기반으로 변경됨. vNetworkID를 전달 받으면 해당 Subnet을 조회하고 / vNetworkID의 값이 없으면 CB Default Subnet을 조회함.
func (*AwsVNetworkHandler) GetVpc ¶
func (vNetworkHandler *AwsVNetworkHandler) GetVpc(vpcName string) (AwsVpcInfo, error)
func (*AwsVNetworkHandler) IsAvailableAutoCBNet ¶
func (vNetworkHandler *AwsVNetworkHandler) IsAvailableAutoCBNet() bool
자동으로 생성된 VPC & Subnet을 삭제해도 되는가? 명시적으로 Subnet 삭제의 호출이 없기 때문에 시큐리티 그룹이나 vNic이 삭제되는 시점에 호출됨.
func (*AwsVNetworkHandler) ListVNetwork ¶
func (vNetworkHandler *AwsVNetworkHandler) ListVNetwork() ([]*irs.VNetworkInfo, error)
@TODO : 여러 VPC에 속한 Subnet 목록을 조회하게되는데... CB-Vnet의 서브넷만 조회해야할지 결정이 필요함. 현재는 1차 버전 문맥상 CB-Vnet으로 내부적으로 제한해서 구현했음.
func (*AwsVNetworkHandler) ListVpc ¶
func (vNetworkHandler *AwsVNetworkHandler) ListVpc() ([]*AwsVpcInfo, error)
type AwsVNicHandler ¶
type AwsVNicHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
func (*AwsVNicHandler) CreateVNic ¶
func (vNicHandler *AwsVNicHandler) CreateVNic(vNicReqInfo irs.VNicReqInfo) (irs.VNicInfo, error)
@TODO : 퍼블릭IP(EIP)는 이 곳이 아닌 VM생성 시 처리함. 이곳에서 처리해야 하면 구현해야 함.
func (*AwsVNicHandler) DeleteVNic ¶
func (vNicHandler *AwsVNicHandler) DeleteVNic(vNicID string) (bool, error)
func (*AwsVNicHandler) GetVNic ¶
func (vNicHandler *AwsVNicHandler) GetVNic(vNicID string) (irs.VNicInfo, error)
func (*AwsVNicHandler) GetVNicByName ¶
type AwsVmSpecHandler ¶
type AwsVmSpecHandler struct { Region idrv.RegionInfo Client *ec2.EC2 }
https://docs.aws.amazon.com/sdk-for-go/api/service/ec2/#EC2.DescribeInstanceTypes
func (*AwsVmSpecHandler) GetOrgVMSpec ¶
func (vmSpecHandler *AwsVmSpecHandler) GetOrgVMSpec(Region string, Name string) (string, error)
AWS의 정보 그대로를 가공 없이 JSON으로 리턴 함.
func (*AwsVmSpecHandler) GetVMSpec ¶
func (vmSpecHandler *AwsVmSpecHandler) GetVMSpec(Region string, Name string) (irs.VMSpecInfo, error)
func (*AwsVmSpecHandler) ListOrgVMSpec ¶
func (vmSpecHandler *AwsVmSpecHandler) ListOrgVMSpec(Region string) (string, error)
AWS의 정보 그대로를 가공 없이 JSON으로 리턴 함.
func (*AwsVmSpecHandler) ListVMSpec ¶
func (vmSpecHandler *AwsVmSpecHandler) ListVMSpec(Region string) ([]*irs.VMSpecInfo, error)