resources

package
v0.0.0-...-9c72d28 Latest Latest
Warning

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

Go to latest
Published: May 29, 2020 License: Apache-2.0, Apache-2.0, Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// default Resource GROUP Name
	CBResourceGroupName = "CB-GROUP"
	// default VPC Name
	CBVirutalNetworkName = "CB-VNet"
	// default CIDR Block
	CBVnetDefaultCidr = "130.0.0.0/16"

	// default Subnet Name
	CBSubnetName = "CB-VNet-Sub"

	// default Bandwidth is 5 Mbit/s
	CBBandwidth = "5"
	// default InstanceChargeType
	CBInstanceChargeType = "PostPaid"
	// default InternetChargeType
	CBInternetChargeType = "PayByTraffic"

	// default Tag Name
	CBMetaDefaultTagName = "cbCate"
	// default Tag Value
	CBMetaDefaultTagValue = "cbAlibaba"

	CBPageOn = true
	// page number for control pages
	CBPageNumber = 1
	// page size for control pages
	CBPageSize = 10
)

Variables

This section is empty.

Functions

func AssociatePublicIP

func AssociatePublicIP(client *ecs.Client, allocationId string, instanceId string) (bool, error)

AssociationId 대신 PublicIP로도 가능 함.

func CreateSubnetCIDR

func CreateSubnetCIDR(subnetList []*irs.VNetworkInfo) (*string, error)

서브넷 CIDR 생성 (CIDR C class 기준 생성)

func ExtractDescribeInstances

func ExtractDescribeInstances(instancInfo *ecs.Instance) irs.VMInfo

DescribeInstances결과에서 EC2 세부 정보 추출 VM 생성 시에는 Running 이전 상태의 정보가 넘어오기 때문에 최종 정보 기반으로 리턴 받고 싶으면 GetVM에 통합해야 할 듯.

func ExtractImageDescribeInfo

func ExtractImageDescribeInfo(image *ecs.Image) irs.ImageInfo

Image 정보를 추출함

func ExtractIpPermissionCommon

func ExtractIpPermissionCommon(ip *ecs.Permission, securityRuleInfo *irs.SecurityRuleInfo)

IpPermission에서 공통정보 추출

func ExtractIpPermissions

func ExtractIpPermissions(ipPermissions []*ecs.Permission) []*irs.SecurityRuleInfo

func ExtractKeyPairDescribeInfo

func ExtractKeyPairDescribeInfo(keyPair *ecs.KeyPair) irs.KeyPairInfo

KeyPair 정보를 추출함

func ExtractSecurityInfo

func ExtractSecurityInfo(securityGroupResult *ecs.SecurityGroup) irs.SecurityInfo

func ExtractSubnetDescribeInfo

func ExtractSubnetDescribeInfo(subnetInfo *vpc.VSwitch) irs.VNetworkInfo

Subnet 정보를 추출함

func ExtractVNicDescribeInfo

func ExtractVNicDescribeInfo(netIf *ecs.NetworkInterfaceSet) irs.VNicInfo

VNic 정보를 추출함

func GetCBResourceGroupName

func GetCBResourceGroupName() string

func GetCBSubnetName

func GetCBSubnetName() string

Subnet

func GetCBVirutalNetworkName

func GetCBVirutalNetworkName() string

VPC

func GetCBVnetDefaultCidr

func GetCBVnetDefaultCidr() string

func SetNameTag

func SetNameTag(Client *ecs.Client, resourceId string, resourceType string, value string) bool

Types

type AlibabaCBNetworkInfo

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

	SubnetName string
	SubnetId   string
}

type AlibabaImageHandler

type AlibabaImageHandler struct {
	Region idrv.RegionInfo
	Client *ecs.Client
}

func (*AlibabaImageHandler) CreateImage

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

func (*AlibabaImageHandler) DeleteImage

func (imageHandler *AlibabaImageHandler) DeleteImage(imageID string) (bool, error)

func (*AlibabaImageHandler) GetImage

func (imageHandler *AlibabaImageHandler) GetImage(imageID string) (irs.ImageInfo, error)

func (*AlibabaImageHandler) ListImage

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

type AlibabaKeyPairHandler

type AlibabaKeyPairHandler struct {
	Region idrv.RegionInfo
	Client *ecs.Client
}

func (*AlibabaKeyPairHandler) CreateKey

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

func (*AlibabaKeyPairHandler) DeleteKey

func (keyPairHandler *AlibabaKeyPairHandler) DeleteKey(keyPairName string) (bool, error)

func (*AlibabaKeyPairHandler) GetKey

func (keyPairHandler *AlibabaKeyPairHandler) GetKey(keyPairName string) (irs.KeyPairInfo, error)

혼선을 피하기 위해 keyPairID 대신 keyPairName으로 변경 함.

func (*AlibabaKeyPairHandler) ListKey

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

type AlibabaPublicIPHandler

type AlibabaPublicIPHandler struct {
	Region idrv.RegionInfo
	Client *vpc.Client
}

func (*AlibabaPublicIPHandler) AssociatePublicIP

func (publicIPHandler *AlibabaPublicIPHandler) AssociatePublicIP(serverID string, publicIPID string) (bool, error)

@TODO : 공통 I/F에 함수 추가해야 함. - ECS 인스턴스와의 연결을 생성하는 AssociatePublicIP publicIPID는 AssociationId임.

func (*AlibabaPublicIPHandler) CreatePublicIP

func (publicIpHandler *AlibabaPublicIPHandler) CreatePublicIP(publicIPReqInfo irs.PublicIPReqInfo) (irs.PublicIPInfo, error)

VM 생성 시 PublicIP의 AllocationId를 전달 받는 방식으로 1차 확정되어서 이 곳에서는 관련 로직을 제거 함. VMHandler.go에서 할당및 회수 함

func (*AlibabaPublicIPHandler) DeletePublicIP

func (publicIpHandler *AlibabaPublicIPHandler) DeletePublicIP(allocationId string) (bool, error)

Public IP를 완전히 제거 함.(AWS Pool로 되돌려 보냄)

func (*AlibabaPublicIPHandler) GetPublicIP

func (publicIpHandler *AlibabaPublicIPHandler) GetPublicIP(publicIPID string) (irs.PublicIPInfo, error)

@TODO : 2차 정책에 의해 IP에서 할당ID 기반으로 변경함.

func (*AlibabaPublicIPHandler) ListPublicIP

func (publicIpHandler *AlibabaPublicIPHandler) ListPublicIP() ([]*irs.PublicIPInfo, error)

func (*AlibabaPublicIPHandler) UnassociatePublicIP

func (publicIpHandler *AlibabaPublicIPHandler) UnassociatePublicIP(serverID string, publicIPID string) (bool, error)

@TODO : 공통 I/F에 함수 추가해야 함. - ECS 인스턴스와의 연결만 해제하는 UnassociatePublicIP publicIPID는 AssociationId임.

type AlibabaSecurityHandler

type AlibabaSecurityHandler struct {
	Region idrv.RegionInfo
	Client *ecs.Client
}

func (*AlibabaSecurityHandler) AuthorizeSecurityRule

func (securityHandler *AlibabaSecurityHandler) AuthorizeSecurityRule(securityGroupId string, securityRuleReqInfo irs.SecurityRuleInfo) (irs.SecurityRuleInfo, error)

func (*AlibabaSecurityHandler) AuthorizeSecurityRules

func (securityHandler *AlibabaSecurityHandler) AuthorizeSecurityRules(securityGroupId string, securityRuleInfos []*irs.SecurityRuleInfo) ([]*irs.SecurityRuleInfo, error)

func (*AlibabaSecurityHandler) CreateSecurity

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

@TODO : 존재하는 보안 그룹에 정책 추가하는 기능 필요 VPC 생략 시 활성화된 세션의 기본 VPC를 이용 함.

func (*AlibabaSecurityHandler) DeleteSecurity

func (securityHandler *AlibabaSecurityHandler) DeleteSecurity(securityID string) (bool, error)

func (*AlibabaSecurityHandler) GetPermissions

func (securityHandler *AlibabaSecurityHandler) GetPermissions(securityID string) (ecs.Permissions, error)

func (*AlibabaSecurityHandler) GetSecurity

func (securityHandler *AlibabaSecurityHandler) GetSecurity(securityID string) (irs.SecurityInfo, error)

func (*AlibabaSecurityHandler) ListSecurity

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

type AlibabaVMHandler

type AlibabaVMHandler struct {
	Region idrv.RegionInfo
	Client *ecs.Client
}

func (*AlibabaVMHandler) AssociatePublicIP

func (vmHandler *AlibabaVMHandler) AssociatePublicIP(allocationId string, instanceId string) (bool, error)

AssociationId 대신 PublicIP로도 가능 함.

func (*AlibabaVMHandler) GetVM

func (vmHandler *AlibabaVMHandler) GetVM(vmID string) (irs.VMInfo, error)

- 보안그룹의 경우 멀티개 설정이 가능한데 현재는 1개만 입력 받음 @Todo : SecurityID에 보안그룹 Name을 할당하는게 맞는지 확인 필요

func (*AlibabaVMHandler) GetVMStatus

func (vmHandler *AlibabaVMHandler) GetVMStatus(vmID string) (irs.VMStatus, error)

SHUTTING-DOWN / TERMINATED

func (*AlibabaVMHandler) ListVM

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

func (*AlibabaVMHandler) ListVMStatus

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

func (*AlibabaVMHandler) RebootVM

func (vmHandler *AlibabaVMHandler) RebootVM(vmID string) (irs.VMStatus, error)

func (*AlibabaVMHandler) ResumeVM

func (vmHandler *AlibabaVMHandler) ResumeVM(vmID string) (irs.VMStatus, error)

func (*AlibabaVMHandler) StartVM

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

@Todo : SecurityGroupId 배열 처리 방안 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 (*AlibabaVMHandler) SuspendVM

func (vmHandler *AlibabaVMHandler) SuspendVM(vmID string) (irs.VMStatus, error)

func (*AlibabaVMHandler) TerminateVM

func (vmHandler *AlibabaVMHandler) TerminateVM(vmID string) (irs.VMStatus, error)

type AlibabaVNetworkHandler

type AlibabaVNetworkHandler struct {
	Region idrv.RegionInfo
	Client *vpc.Client
}

func (*AlibabaVNetworkHandler) CreateVNetwork

func (vNetworkHandler *AlibabaVNetworkHandler) CreateVNetwork(vNetworkReqInfo irs.VNetworkReqInfo) (irs.VNetworkInfo, error)

func (*AlibabaVNetworkHandler) CreateVpc

func (vNetworkHandler *AlibabaVNetworkHandler) CreateVpc(alibabaVpcReqInfo AlibabaVpcReqInfo) (AlibabaVpcInfo, error)

FindOrCreateMcloudBaristaDefaultVPC()에서 호출됨. - 이 곳은 나중을 위해 전달 받은 정보는 이용함 기본 VPC 생성이 필요하면 FindOrCreateMcloudBaristaDefaultVPC()를 호출할 것

func (*AlibabaVNetworkHandler) DeleteVNetwork

func (vNetworkHandler *AlibabaVNetworkHandler) DeleteVNetwork(vNetworkID string) (bool, error)

서브넷 삭제 마지막 서브넷인 경우 CB-Default Virtual Network도 함께 제거

func (*AlibabaVNetworkHandler) DeleteVpc

func (vNetworkHandler *AlibabaVNetworkHandler) DeleteVpc(vpcId string) (bool, error)

func (*AlibabaVNetworkHandler) FindOrCreateMcloudBaristaDefaultVPC

func (vNetworkHandler *AlibabaVNetworkHandler) FindOrCreateMcloudBaristaDefaultVPC(vNetworkReqInfo irs.VNetworkReqInfo) (string, error)

@TODO : ListVNetwork()에서 호출되는 경우도 있기 때문에 필요하면 VPC조회와 생성을 별도의 Func으로 분리해야함.(일단은 큰 문제는 없어서 놔둠) CB Default Virtual Network가 존재하지 않으면 생성하며, 존재하는 경우 Vpc ID를 리턴 함.

func (*AlibabaVNetworkHandler) GetAutoCBNetworkInfo

func (vNetworkHandler *AlibabaVNetworkHandler) GetAutoCBNetworkInfo() (AlibabaCBNetworkInfo, error)

이 함수는 VPC & Subnet이 존재하는 곳에서만 사용됨. VPC & Subnet이 존재하는 경우 정보를 리턴하고 없는 경우 Default VPC & Subnet을 생성 후 정보를 리턴 함.

func (*AlibabaVNetworkHandler) GetMcloudBaristaDefaultSubnetId

func (vNetworkHandler *AlibabaVNetworkHandler) GetMcloudBaristaDefaultSubnetId() string

func (*AlibabaVNetworkHandler) GetMcloudBaristaDefaultVpcId

func (vNetworkHandler *AlibabaVNetworkHandler) GetMcloudBaristaDefaultVpcId() string

func (*AlibabaVNetworkHandler) GetVNetwork

func (vNetworkHandler *AlibabaVNetworkHandler) GetVNetwork(vNetworkID string) (irs.VNetworkInfo, error)

vNetworkID를 전달 받으면 해당 Subnet을 조회하고 / vNetworkID의 값이 없으면 CB Default Subnet을 조회함.

func (*AlibabaVNetworkHandler) GetVNetworkByName

func (vNetworkHandler *AlibabaVNetworkHandler) GetVNetworkByName(vNetworkName string) (irs.VNetworkInfo, error)

func (*AlibabaVNetworkHandler) GetVpc

func (vNetworkHandler *AlibabaVNetworkHandler) GetVpc(vpcName string) (AlibabaVpcInfo, error)

func (*AlibabaVNetworkHandler) GetZone

func (vNetworkHandler *AlibabaVNetworkHandler) GetZone(regionId string) (AlibabaZoneInfo, error)

func (*AlibabaVNetworkHandler) IsAvailableAutoCBNet

func (vNetworkHandler *AlibabaVNetworkHandler) IsAvailableAutoCBNet() bool

자동으로 생성된 VPC & Subnet을 삭제해도 되는가? 명시적으로 Subnet 삭제의 호출이 없기 때문에 시큐리티 그룹이나 vNic이 삭제되는 시점에 호출됨.

func (*AlibabaVNetworkHandler) ListVNetwork

func (vNetworkHandler *AlibabaVNetworkHandler) ListVNetwork() ([]*irs.VNetworkInfo, error)

@TODO : 여러 VPC에 속한 Subnet 목록을 조회하게되는데... CB-Vnet의 서브넷만 조회해야할지 결정이 필요함. 현재는 1차 버전 문맥상 CB-Vnet으로 내부적으로 제한해서 구현했음.

func (*AlibabaVNetworkHandler) ListVpc

func (vNetworkHandler *AlibabaVNetworkHandler) ListVpc() ([]*AlibabaVpcInfo, error)

type AlibabaVNicHandler

type AlibabaVNicHandler struct {
	Region idrv.RegionInfo
	Client *ecs.Client
}

https://amzn.to/2L0lfQS

func (*AlibabaVNicHandler) CreateVNic

func (vNicHandler *AlibabaVNicHandler) CreateVNic(vNicReqInfo irs.VNicReqInfo) (irs.VNicInfo, error)

@TODO : 퍼블릭IP(EIP)는 이 곳이 아닌 VM생성 시 처리함. 이곳에서 처리해야 하면 구현해야 함.

func (*AlibabaVNicHandler) DeleteVNic

func (vNicHandler *AlibabaVNicHandler) DeleteVNic(vNicID string) (bool, error)

func (*AlibabaVNicHandler) GetVNic

func (vNicHandler *AlibabaVNicHandler) GetVNic(vNicID string) (irs.VNicInfo, error)

func (*AlibabaVNicHandler) ListVNic

func (vNicHandler *AlibabaVNicHandler) ListVNic() ([]*irs.VNicInfo, error)

type AlibabaVpcInfo

type AlibabaVpcInfo struct {
	Name      string
	Id        string
	CidrBlock string // AWS, Alibaba
	IsDefault bool   // AWS, Alibaba

	Status    string // Alibaba
	CenStatus string // Alibaba

	ResourceGroupId string // Alibaba
	VRouterId       string // Alibaba
	RegionId        string // Alibaba
	RouterTableIds  []string
	VSwitchId       []string

	CreationTime string // Alibaba
	Description  string // Alibaba
}

func ExtractVpcDescribeInfo

func ExtractVpcDescribeInfo(vpcInfo *vpc.Vpc) AlibabaVpcInfo

VPC 정보를 추출함

type AlibabaVpcReqInfo

type AlibabaVpcReqInfo struct {
	Name      string
	Id        string // Alibaba
	CidrBlock string // AWS
	IsDefault bool   // Alibaba
}

type AlibabaZoneInfo

type AlibabaZoneInfo struct {
	LocalName string
	ZoneId    string // Alibaba
}

func ExtractZoneDescribeInfo

func ExtractZoneDescribeInfo(zoneInfo *vpc.Zone) AlibabaZoneInfo

Zone 정보를 추출함

Jump to

Keyboard shortcuts

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