Documentation
¶
Overview ¶
Use this data source to query instances types.
Example Usage ¶
```hcl data "zenlayercloud_bmc_instance_types" "foo" {
}
data "zenlayercloud_bmc_instance_types" "sel" {
availability_zone = "SEL-A"
instance_charge_type = "PREPAID"
exclude_sold_out = true
}
```
Use this data source to query DDoS IP instances.
Example Usage ¶
```hcl
data "zenlayercloud_bmc_ddos_ips" "foo" {
availability_zone = "SEL-A"
}
```
Use this data source to query eip instances.
Example Usage ¶
```hcl
data "zenlayercloud_bmc_eips" "foo" {
availability_zone = "SEL-A"
}
```
Use this data source to query images.
Example Usage ¶
```hcl
data "zenlayercloud_bmc_images" "foo" {
catalog = "centos"
instance_type_id = "S9I"
}
```
Use this data source to query bmc instances.
Example Usage ¶
```hcl
data "zenlayercloud_bmc_instances" "foo" {
availability_zone = "SEL-A"
}
```
Use this data source to query vpc subnets information.
Example Usage ¶
```hcl
variable "availability_zone" {
default = "SEL-A"
}
resource "zenlayercloud_bmc_subnet" "foo" {
availability_zone = var.availability_zone
name = "subnet_test"
cidr_block = "10.0.0.0/16"
}
data "zenlayercloud_bmc_subnets" "id_subnets" {
subnet_id = zenlayercloud_bmc_subnet.foo.id
}
data "zenlayercloud_bmc_subnets" "name_subnets" {
subnet_name = zenlayercloud_bmc_subnet.foo.name
}
Use this data source to get the available regions for vpc.
Example Usage ¶
```hcl
data "zenlayercloud_bmc_vpc_regions" "sel-region" {
availability_zone = "SEL-A"
}
```
Use this data source to query vpc information.
Example Usage ¶
```hcl data "zenlayercloud_bmc_vpc_regions" "region" { }
resource "zenlayercloud_bmc_vpc" "foo" {
region = data.zenlayercloud_bmc_vpc_regions.region.vpc_regions.0.region
name = "test_vpc"
cidr_block = "10.0.0.0/16"
}
data "zenlayercloud_bmc_vpcs" "foo" { } ```
Use this data source to get all bmc available zones.
Example Usage ¶
```hcl data "zenlayercloud_bmc_zones" "all" { }
data "zenlayercloud_bmc_zones" "sel" {
name_regex = "SEL*"
}
```
Use this data source to query vm disk information.
Example Usage ¶
```hcl data "zenlayercloud_disks" "all" { }
filter system disk ¶
data "zenlayercloud_disks" "system_disk" {
disk_type = "SYSTEM"
}
#filter with name regex
data "zenlayercloud_disks" "name_disk" {
name_regex = "disk20*"
}
```
Use this data source to query images.
Example Usage ¶
```hcl
data "zenlayercloud_images" "foo" {
availability_zone = "FRA-A"
category = "CentOS"
image_type = ["PUBLIC_IMAGE"]
}
```
Use this data source to query instances type.
Example Usage ¶
```hcl data "zenlayercloud_instance_types" "foo" {
}
data "zenlayercloud_instance_types" "sel1c1g" {
availability_zone = "SEL-A"
cpu_count = 1
memory = 1
}
```
Use this data source to query detailed information of security groups.
Example Usage ¶
```hcl data "zenlayercloud_security_groups" "sg1" { }
data "zenlayercloud_security_groups" "sg2" {
name = "example_name"
}
```
Use this data source to query subnets information.
Example Usage ¶
```hcl
variable "availability_zone" {
default = "SEL-A"
}
resource "zenlayercloud_subnet" "foo" {
availability_zone = var.availability_zone
name = "subnet_test"
cidr_block = "10.0.0.0/24"
}
filter by subnet id ¶
data "zenlayercloud_subnets" "id_subnets" {
subnet_id = zenlayercloud_subnet.foo.id
}
filter by subnet name ¶
data "zenlayercloud_subnets" "name_subnets" {
subnet_name = zenlayercloud_subnet.foo.name
}
```
Use this data source to get all vm available zones.
Example Usage ¶
```hcl data "zenlayercloud_zones" "all" { }
data "zenlayercloud_zones" "sel" {
name_regex = "SEL*"
}
```
The ZenlayerCloud provider is used to interact with many resources supported by [ZenlayerCloud](https://console.zenlayer.com). The provider needs to be configured with the proper credentials before it can be used.
Use the navigation on the left to read about the available resources.
Example Usage ¶
```hcl
terraform {
required_providers {
zenlayercloud = {
source = "zenlayer/zenlayercloud"
}
}
}
Configure the Zenlayer Cloud Provider ¶
provider "zenlayercloud" {
access_key_id = var.access_key_id
access_key_password = var.access_key_password
}
```
Resources List ¶
Provider Data Sources ¶
Zenlayer Virtual Machine(VM)
Data Source zenlayercloud_zones zenlayercloud_images zenlayercloud_instance_types zenlayercloud_security_groups zenlayercloud_instance_types zenlayercloud_disks zenlayercloud_subnets Resource zenlayercloud_image zenlayercloud_security_group zenlayercloud_security_group_attachment zenlayercloud_security_group_rule zenlayercloud_instance zenlayercloud_disk zenlayercloud_disk_attachment zenlayercloud_subnet
Bare Metal Cloud(BMC)
Data Source
zenlayercloud_bmc_zones
zenlayercloud_bmc_instance_types
zenlayercloud_bmc_images
zenlayercloud_bmc_instances
zenlayercloud_bmc_eips
zenlayercloud_bmc_ddos_ips
zenlayercloud_bmc_vpc_regions
zenlayercloud_bmc_vpcs
zenlayercloud_bmc_subnets
Resource
zenlayercloud_bmc_instance
zenlayercloud_bmc_ddos_ip
zenlayercloud_bmc_ddos_ip_association
zenlayercloud_bmc_eip
zenlayercloud_bmc_eip_association
zenlayercloud_bmc_vpc
zenlayercloud_bmc_subnet
Provides an DDoS IP resource.
Example Usage ¶
```hcl
variable "availability_zone" {
default = "SEL-A"
}
resource "zenlayercloud_bmc_ddos_ip" "foo" {
availability_zone = var.availability_zone
}
```
Import ¶
EIP can be imported using the id, e.g.
``` $ terraform import zenlayercloud_bmc_ddos_ip.foo 123123xxxx ```
Provides an DDoS IP resource associated with BMC instance.
Example Usage ¶
```hcl
resource "zenlayercloud_bmc_ddos_ip_association" "foo" {
ddos_ip_id = "ddosIpIdxxxxxx"
instance_id = "instanceIdxxxxxx"
}
```
Import ¶
DDoS IP association can be imported using the id, e.g.
``` $ terraform import zenlayercloud_bmc_ddos_ip_association.bar ddosIpIdxxxxxx:instanceIdxxxxxxx ```
Provides an EIP resource.
Example Usage ¶
```hcl
variable "availability_zone" {
default = "SEL-A"
}
resource "zenlayercloud_bmc_eip" "foo" {
availability_zone = var.availability_zone
}
```
Import ¶
EIP can be imported using the id, e.g.
``` $ terraform import zenlayercloud_bmc_eip.foo 123123xxxx ```
Provides an eip resource associated with BMC instance.
Example Usage ¶
```hcl
resource "zenlayercloud_bmc_eip_association" "foo" {
eip_id = "eipxxxxxx"
instance_id = "instanceIdxxxxxx"
}
```
Import ¶
Eip association can be imported using the id, e.g.
``` $ terraform import zenlayercloud_bmc_eip_association.bar eipIdxxxxxx:instanceIdxxxxxxx ```
Provides a BMC instance resource.
~> **NOTE:** You can launch an BMC instance for a private network via specifying parameter `subnet_id`.
~> **NOTE:** At present, 'PREPAID' instance cannot be deleted and must wait it to be outdated and released automatically.
Example Usage ¶
```hcl
data "zenlayercloud_bmc_zones" "default" {
}
data "zenlayercloud_bmc_instance_types" "default" {
availability_zone = data.zenlayercloud_bmc_zones.default.zones.0.id
}
Get a centos image which also supported to install on given instance type ¶
data "zenlayercloud_bmc_images" "default" {
catalog = "centos"
instance_type_id = data.zenlayercloud_bmc_instance_types.default.instance_types.0.id
}
resource "zenlayercloud_bmc_subnet" "default" {
availability_zone = data.zenlayercloud_bmc_zones.default.zones.0.id
name = "test-subnet"
cidr_block = "10.0.10.0/24"
}
Create a web server ¶
resource "zenlayercloud_bmc_instance" "web" {
availability_zone = data.zenlayercloud_bmc_zones.default.zones.0.id
image_id = data.zenlayercloud_bmc_images.default.images.0.image_id
internet_charge_type = "ByBandwidth"
instance_type_id = data.zenlayercloud_bmc_instance_types.default.instance_types.0.id
password = "Example~123"
instance_name = "web"
subnet_id = zenlayercloud_bmc_subnet.default.id
}
```
Import ¶
BMC instance can be imported using the id, e.g.
``` terraform import zenlayercloud_bmc_instance.foo 123123xxx ```
Provide a resource to create a VPC subnet.
Example Usage ¶
```hcl
variable "region" {
default = "SEL1"
}
variable "availability_zone" {
default = "SEL-A"
}
resource "zenlayercloud_bmc_vpc" "foo" {
region = var.region
name = "test-vpc"
cidr_block = "10.0.0.0/16"
}
resource "zenlayercloud_bmc_subnet" "subnet_with_vpc" {
availability_zone = var.availability_zone
name = "test-subnet"
vpc_id = zenlayercloud_bmc_vpc.foo.id
cidr_block = "10.0.10.0/24"
}
resource "zenlayercloud_bmc_subnet" "subnet" {
availability_zone = var.availability_zone
name = "test-subnet"
cidr_block = "10.0.10.0/24"
}
```
Import ¶
Vpc subnet instance can be imported, e.g.
``` $ terraform import zenlayercloud_bmc_subnet.subnet subnet_id ```
Provide a resource to create a VPC.
Example Usage ¶
```hcl data "zenlayercloud_bmc_vpc_regions" "default_region" {
}
resource "zenlayercloud_bmc_vpc" "foo" {
region = data.zenlayercloud_bmc_vpc_regions.default_region.regions.0.id
cidr_block = "10.0.0.0/26"
}
```
Import ¶
Vpc instance can be imported, e.g.
``` $ terraform import zenlayercloud_bmc_vpc.test vpc-id ```
Provide a resource to create data disk.
Example Usage ¶
```hcl
resource "zenlayercloud_disk" "foo" {
availability_zone = "SEL-A"
name = "SEL-20G"
disk_size = 20
}
```
Import ¶
Disk instance can be imported, e.g.
``` $ terraform import zenlayercloud_disk.test disk-id ```
Provide a resource to create data disk.
Example Usage ¶
```hcl
resource "zenlayercloud_disk_attachment" "foo" {
disk_id = "diskxxxx"
instance_id = "instancexxxx"
}
```
Import ¶
Disk attachment can be imported, e.g.
``` $ terraform import zenlayercloud_disk_attachment.foo disk-id:instance-id ```
Provides a resource to manage image.
~> **NOTE:** You have to keep the instance power off if the image is created from instance.
Example Usage ¶
```hcl
resource "zenlayercloud_image" "foo" {
image_name = "web-image-centos"
instance_id = "xxxxxx"
image_description = "create a image by the web server"
}
```
Import ¶
Image can be imported, e.g.
``` $ terraform import zenlayercloud_image.foo img-xxxxxxx ```
Provides a instance resource.
~> **NOTE:** You can launch an instance for a private network via specifying parameter `subnet_id`.
~> **NOTE:** At present, 'PREPAID' instance cannot be deleted and must wait it to be outdated and released automatically.
Example Usage ¶
```hcl
data "zenlayercloud_zones" "default" {
}
data "zenlayercloud_instance_types" "default" {
availability_zone = data.zenlayercloud_zones.default.zones.0.id
}
Get a centos image which also supported to install on given instance type ¶
data "zenlayercloud_images" "default" {
availability_zone = data.zenlayercloud_zones.default.zones.0.id
category = "CentOS"
}
resource "zenlayercloud_subnet" "default" {
name = "test-subnet"
cidr_block = "10.0.10.0/24"
}
Create a web server ¶
resource "zenlayercloud_instance" "web" {
availability_zone = data.zenlayercloud_zones.default.zones.0.id
image_id = data.zenlayercloud_images.default.images.0.image_id
internet_charge_type = "ByBandwidth"
instance_type = data.zenlayercloud_instance_types.default.instance_types.0.id
password = "Example~123"
instance_name = "web"
subnet_id = zenlayercloud_subnet.default.id
system_disk_size = 100
}
```
Import ¶
Instance can be imported using the id, e.g.
``` terraform import zenlayercloud_instance.foo 123123xxx ```
Provides a resource to create security group.
Example Usage ¶
```hcl
resource "zenlayercloud_security_group" "foo" {
name = "example-name"
description = "example purpose"
}
```
Import ¶
Security group can be imported, e.g.
``` $ terraform import zenlayercloud_security_group.security_group security_group_id ```
Provides a resource to create a security group attachment ¶
Example Usage ¶
```hcl
resource "zenlayercloud_security_group_attachment" "foo" {
security_group_id = "12364246"
instance_id = "62343412426423623"
}
```
Import ¶
Security group attachment can be imported using the id, e.g.
``` terraform import zenlayercloud_security_group_attachment.security_group_attachment securityGroupId:instanceId ```
Provides a resource to create security group rule.
~> **NOTE:** Single security rule is hardly ordered, use zenlayercloud_security_group_rule_set instead.
Example Usage ¶
```hcl
resource "zenlayercloud_security_group" "foo" {
name = "example-name"
description = "example purpose"
}
resource "zenlayercloud_security_group_rule" "bar" {
security_group_id = zenlayercloud_security_group.foo.id
direction = "ingress"
policy = "accept"
cidr_ip = "10.0.0.0/16"
ip_protocol = "tcp"
port_range = "80"
priority = 50
}
```
Provide a resource to create a subnet.
Example Usage ¶
```hcl
variable "availability_zone" {
default = "SEL-A"
}
resource "zenlayercloud_subnet" "foo" {
availability_zone = var.availability_zone
name = "test-subnet"
cidr_block = "10.0.0.0/24"
}
```
Import ¶
Subnet instance can be imported, e.g.
``` $ terraform import zenlayercloud_subnet.subnet subnet_id ```
Index ¶
- Constants
- Variables
- func BuildDdosIpState(bmcService BmcService, ddosIpId string, ctx context.Context, ...) *resource.StateChangeConf
- func BuildDiskState(vmService *VmService, diskId string, ctx context.Context, ...) *resource.StateChangeConf
- func BuildEipState(bmcService BmcService, eipId string, ctx context.Context, ...) *resource.StateChangeConf
- func BuildImageState(vmService VmService, imageId string, ctx context.Context, ...) *resource.StateChangeConf
- func Error(msg string, args ...interface{}) error
- func IsContains(array interface{}, value interface{}) bool
- func ParseResourceId(id string, length int) (parts []string, err error)
- func Provider() *schema.Provider
- func String(s string) int
- type BmcService
- func (s *BmcService) AssociateSubnetInstance(ctx context.Context, instanceId string, subnetId string) error
- func (s *BmcService) DeleteInstance(ctx context.Context, instanceId string) (err error)
- func (s *BmcService) DeleteSubnet(ctx context.Context, subnetId string) (err error)
- func (s *BmcService) DeleteVpc(ctx context.Context, vpcId string) error
- func (s *BmcService) DescribeDdosIpAddressById(ctx context.Context, ddosIpId string) (eip *bmc.DdosIpAddress, err error)
- func (s *BmcService) DescribeDdosIpAddressesByFilter(filter *DDosIpFilter) (ddosIpAddress []*bmc.DdosIpAddress, err error)
- func (s *BmcService) DescribeEipAddressById(ctx context.Context, eipId string) (eip *bmc.EipAddress, err error)
- func (s *BmcService) DescribeEipAddressesByFilter(filter *EipFilter) (eipAddresses []*bmc.EipAddress, err error)
- func (s *BmcService) DescribeInstanceById(ctx context.Context, instanceId string) (instance *bmc.InstanceInfo, err error)
- func (s *BmcService) DescribeInstanceInternetStatus(ctx context.Context, instanceId string) (*bmc.InstanceInternetStatus, error)
- func (s *BmcService) DescribeInstancesByFilter(instanceFilter *InstancesFilter) (instances []*bmc.InstanceInfo, err error)
- func (s *BmcService) DescribeSubnetById(ctx context.Context, subnetId string) (subnet *bmc.Subnet, err error)
- func (s *BmcService) DescribeSubnets(ctx context.Context, filter *SubnetFilter) (subnets []*bmc.Subnet, err error)
- func (s *BmcService) DescribeVpcById(ctx context.Context, vpcId string) (vpc *bmc.VpcInfo, err error)
- func (s *BmcService) DescribeVpcsByFilter(ctx context.Context, filter *VpcFilter) (vpcs []*bmc.VpcInfo, err error)
- func (s *BmcService) DescribeZones(ctx context.Context) (zones []*bmc.ZoneInfo, err error)
- func (s *BmcService) DestroyInstance(ctx context.Context, instanceId string) (err error)
- func (s *BmcService) DisassociateSubnetInstance(ctx context.Context, instanceId string, subnetId string) error
- func (s *BmcService) InstanceDdosIpStateRefreshFunc(ctx context.Context, eipId string) resource.StateRefreshFunc
- func (s *BmcService) InstanceEipStateRefreshFunc(ctx context.Context, eipId string) resource.StateRefreshFunc
- func (s *BmcService) InstanceNetworkStateRefreshFunc(ctx context.Context, instanceId string, condition NetworkStateCondition) resource.StateRefreshFunc
- func (s *BmcService) InstanceStateRefreshFunc(ctx context.Context, instanceId string, failStates []string) resource.StateRefreshFunc
- func (s *BmcService) InstanceSubnetStateRefreshFunc(ctx context.Context, instanceId string, subnetId string) resource.StateRefreshFunc
- func (s *BmcService) ModifyDdosIpResourceGroup(ctx context.Context, ddpsIp string, resourceGroupId string) error
- func (s *BmcService) ModifyEipResourceGroup(ctx context.Context, eipId string, resourceGroupId string) error
- func (s *BmcService) ModifyInstanceName(ctx context.Context, instanceId string, instanceName string) error
- func (s *BmcService) ModifyInstanceResourceGroup(ctx context.Context, instanceId string, resourceGroupId string) error
- func (s *BmcService) ModifySubnetName(ctx context.Context, subnetId string, subnetName string) error
- func (s *BmcService) ModifySubnetResourceGroupById(ctx context.Context, subnetId string, resourceGroupId string) error
- func (s *BmcService) ModifyVpcName(ctx context.Context, vpcId string, vpcName string) error
- func (s *BmcService) ModifyVpcResourceGroup(ctx context.Context, vpcId string, resourceGroupId string) error
- func (s *BmcService) ReleaseDDoSIpAddressById(ctx context.Context, ddosIpId string) (err error)
- func (s *BmcService) ReleaseEipAddressById(ctx context.Context, eipId string) (err error)
- func (s *BmcService) SubnetStateRefreshFunc(ctx context.Context, subnetId string, failStates []string) resource.StateRefreshFunc
- func (s *BmcService) TerminateDDoSIpAddress(ctx context.Context, ddosIpId string) (err error)
- func (s *BmcService) TerminateEipAddress(ctx context.Context, eipId string) (err error)
- func (s *BmcService) VpcStateRefreshFunc(ctx context.Context, vpcId string, failStates []string) resource.StateRefreshFunc
- type DDosIpFilter
- type EipFilter
- type GoRoutineLimit
- type InstancesFilter
- type NetworkStateCondition
- type SecurityGroupFilter
- type SubnetFilter
- type VmDiskFilter
- type VmImageFilter
- type VmNetworkStateCondition
- type VmService
- func (s *VmService) CreateSecurityGroupRule(ctx context.Context, info securityGroupRuleBasicInfo) (ruleId string, err error)
- func (s *VmService) DeleteDisk(ctx context.Context, diskId string) (err error)
- func (s *VmService) DeleteImage(ctx context.Context, imageId string) error
- func (s *VmService) DeleteInstance(ctx context.Context, instanceId string) (err error)
- func (s *VmService) DeleteSecurityGroup(ctx context.Context, securityGroupId string) (err error)
- func (s *VmService) DeleteSubnet(ctx context.Context, subnetId string) (err error)
- func (s *VmService) DescribeDiskById(ctx context.Context, diskId string) (*vm.DiskInfo, error)
- func (s *VmService) DescribeDisks(ctx context.Context, filter *VmDiskFilter) (disks []*vm.DiskInfo, err error)
- func (s *VmService) DescribeImageById(ctx context.Context, imageId string) (image *vm.ImageInfo, err error)
- func (s *VmService) DescribeImagesByFilter(filter *VmImageFilter) (images []*vm.ImageInfo, err error)
- func (s *VmService) DescribeInstanceById(ctx context.Context, instanceId string) (instance *vm.InstanceInfo, err error)
- func (s *VmService) DescribeInstanceInternetStatus(ctx context.Context, instanceId string) (*vm.DescribeInstanceInternetStatusResponseParams, error)
- func (s *VmService) DescribeSecurityGroupById(ctx context.Context, securityGroupId string) (securityGroup *vm.SecurityGroupInfo, err error)
- func (s *VmService) DescribeSecurityGroupRule(ruleId string) (securityGroupId string, rule *vm.RuleInfo, err error)
- func (s *VmService) DescribeSecurityGroupsByFilter(filter *SecurityGroupFilter) (securityGroups []*vm.SecurityGroupInfo, err error)
- func (s *VmService) DescribeSubnetById(ctx context.Context, subnetId string) (subnet *vm.SubnetInfo, err error)
- func (s *VmService) DescribeSubnets(ctx context.Context, filter *VmSubnetFilter) (subnets []*vm.SubnetInfo, err error)
- func (s *VmService) DescribeZones(ctx context.Context) (zones []*vm.ZoneInfo, err error)
- func (s *VmService) DestroyInstance(ctx context.Context, instanceId string) (err error)
- func (s *VmService) DiskStateRefreshFunc(ctx context.Context, diskId string, failStates []string) resource.StateRefreshFunc
- func (s *VmService) ImageStateRefreshFunc(ctx context.Context, imageId string) resource.StateRefreshFunc
- func (s *VmService) InstanceNetworkStateRefreshFunc(ctx context.Context, instanceId string, condition VmNetworkStateCondition) resource.StateRefreshFunc
- func (s *VmService) InstanceStateRefreshFunc(ctx context.Context, instanceId string, failStates []string) resource.StateRefreshFunc
- func (s *VmService) ModifyDiskName(ctx context.Context, diskId string, diskName string) error
- func (s *VmService) ModifyImage(ctx context.Context, imageId string, imageName string, imageDesc string) error
- func (s *VmService) ModifyInstanceName(ctx context.Context, instanceId string, instanceName string) error
- func (s *VmService) ModifyInstanceResourceGroup(ctx context.Context, instanceId string, resourceGroupId string) error
- func (s *VmService) ModifySecurityGroupAttribute(ctx context.Context, securityGroupId string, securityGroupName string, ...) error
- func (s *VmService) ModifySubnetName(ctx context.Context, subnetId string, subnetName string) error
- func (s *VmService) ReleaseDisk(ctx context.Context, diskId string) (err error)
- func (s *VmService) SubnetStateRefreshFunc(ctx context.Context, subnetId string, failStates []string) resource.StateRefreshFunc
- type VmSubnetFilter
- type VpcFilter
Constants ¶
const ( PROVIDER_WRITE_RETRY_TIMEOUT = "ZENLAYERCLOUD_WRITE_RETRY_TIMEOUT" PROVIDER_READ_RETRY_TIMEOUT = "ZENLAYERCLOUD_READ_RETRY_TIMEOUT" PROVIDER_BMC_CREATE_TIMEOUT = "ZENLAYERCLOUD_BMC_CREATE_TIMEOUT" PROVIDER_BMC_UPDATE_TIMEOUT = "ZENLAYERCLOUD_BMC_UPDATE_TIMEOUT" PROVIDER_VM_CREATE_TIMEOUT = "ZENLAYERCLOUD_VM_CREATE_TIMEOUT" PROVIDER_VM_UPDATE_TIMEOUT = "ZENLAYERCLOUD_VM_UPDATE_TIMEOUT" )
const ( ServiceNotAvailable = "SERVICE_TEMPORARY_UNAVAILABLE" InternalServerError = "INTERNAL_SERVER_ERROR" ReadTimedOut = "REQUEST_TIMED_OUT" ResourceNotFound = "OPERATION_FAILED_RESOURCE_NOT_FOUND" )
const ( ResourceTypeInstance = "instance" ResourceTypeEip = "eip" ResourceTypeDdosIp = "ddos_ip" ResourceTypeSubnet = "subnet" ResourceTypeCidrIPv4 = "cidr_ipv4" ResourceTypeCidrIPv6 = "cidr_ipv6" BmcChargeTypePostpaid = "POSTPAID" BmcChargeTypePrepaid = "PREPAID" BmcInternetChargeTypeBandwidth = "ByBandwidth" BmcInternetChargeTypeTrafficPackage = "ByTrafficPackage" BmcInternetChargeTypeInstanceBandwidth95 = "ByInstanceBandwidth95" BmcInternetChargeTypeClusterBandwidth95 = "ByClusterBandwidth95" BmcInstanceStatusPending = "PENDING" BmcInstanceStatusCreating = "CREATING" BmcInstanceStatusCreateFailed = "CREATE_FAILED" BmcInstanceStatusInstalling = "INSTALLING" BmcInstanceStatusInstallFailed = "INSTALL_FAILED" BmcInstanceStatusRunning = "RUNNING" BMC_INSTANCE_STATUS_STOPPED = "STOPPED" BmcInstanceStatusBooting = "BOOTING" BmcInstanceStatusStopping = "STOPPING" BmcInstanceStatusRecycle = "RECYCLE" BmcSubnetStatusAvailable = "AVAILABLE" BmcSubnetStatusCreating = "CREATING" BmcSubnetStatusPending = "PENDING" BmcSubnetStatusDeleting = "DELETING" BmcSubnetStatusCreateFailed = "CREATE_FAILED" BmcSubnetStatusAssociate = "ASSOCIATING" BmcSubnetInstanceStatusBinding = "BINDING" BmcSubnetInstanceStatusUnbinding = "UNBINDING" BmcSubnetInstanceStatusBound = "BOUND" BmcVpcStatusCreating = "CREATING" BmcVpcStatusCreateFailed = "CREATE_FAILED" BmcVpcStatusCreateAvailable = "AVAILABLE" BmcVpcStatusDeleting = "DELETING" BmcEipStatusCreating = "CREATING" BmcEipStatusCreateFailed = "CREATE_FAILED" BmcEipStatusAssociating = "ASSOCIATING" BmcEipStatusUnAssociating = "UNASSOCIATING" BmcEipStatusAssociated = "ASSOCIATED" BmcEipStatusAvailable = "AVAILABLE" BmcEipStatusReleasing = "RELEASING" BmcEipStatusRecycle = "RECYCLE" BmcEipStatusRecycling = "RECYCLING" ImageTypePublic = "PUBLIC_IMAGE" ImageTypeCustom = "CUSTOM_IMAGE" )
const ( VmChargeTypePostpaid = "POSTPAID" VmChargeTypePrepaid = "PREPAID" VmInternetChargeTypeBandwidth = "ByBandwidth" VmInternetChargeTypeTrafficPackage = "ByTrafficPackage" VmInternetChargeTypeInstanceBandwidth95 = "ByInstanceBandwidth95" VmInternetChargeTypeClusterBandwidth95 = "ByClusterBandwidth95" VmInstanceStatusPending = "PENDING" VmInstanceStatusDeloying = "DEPLOYING" VmInstanceStatusCreateFailed = "CREATE_FAILED" VmInstanceStatusRebuilding = "REBUILDING" VmInstanceStatusStopped = "STOPPED" VmInstanceStatusRunning = "RUNNING" VmInstanceStatusBooting = "BOOTING" VmInstanceStatusStopping = "STOPPING" VmInstanceStatusReleasing = "RELEASING" VmInstanceStatusRecycle = "RECYCLE" VmImageTypePublic = "PUBLIC_IMAGE" VmImageTypeCustom = "CUSTOM_IMAGE" ImageStatusAvailable = "AVAILABLE" VmImageStatusCreating = "CREATING" VmSubnetStatusCreating = "Creating" VmSubnetStatusAvailable = "Available" VmSubnetStatusFailed = "Failed" VmDiskStatusInUse = "IN_USE" VmDiskStatusAvailable = "AVAILABLE" VmDiskStatusAttaching = "ATTACHING" VmDiskStatusDetaching = "DETACHING" VmDiskStatusCreating = "CREATING" VmDiskStatusDeleting = "DELETING" VmDiskStatusRecycle = "RECYCLED" )
const ( PROVIDER_SECRET_KEY_ID = "ZENLAYERCLOUD_ACCESS_KEY_ID" PROVIDER_SECRET_KEY_PASSWORD = "ZENLAYERCLOUD_ACCESS_KEY_PASSWORD" PROVIDER_CLIENT_TIMEOUT = "ZENLAYERCLOUD_CLIENT_TIMEOUT" PROVIDER_SCHEME = "ZENLAYERCLOUD_SCHEME" PROVIDER_DOMAIN = "ZENLAYERCLOUD_DOMAIN" )
const InstanceSubnetStatusNotBind = "NotBind"
const NetworkStatusFail = "Fail"
const NetworkStatusOK = "OK"
const NetworkStatusPending = "Pending"
const VmNetworkStatusFail = "Fail"
const VmNetworkStatusOK = "OK"
const VmNetworkStatusPending = "Pending"
Variables ¶
var ( ImageTypes = []string{ ImageTypePublic, ImageTypeCustom, } ImageCatalogs = []string{ "centos", "windows", "ubuntu", "debian", "esxi", } OsTypes = []string{ "windows", "linux", } BmcChargeTypes = []string{ BmcChargeTypePostpaid, BmcChargeTypePrepaid, } BmcInternetChargeTypes = []string{ BmcInternetChargeTypeBandwidth, BmcInternetChargeTypeTrafficPackage, BmcInternetChargeTypeInstanceBandwidth95, BmcInternetChargeTypeClusterBandwidth95, } InstanceOperatingStatus = []string{ BmcInstanceStatusPending, BmcInstanceStatusStopping, BmcInstanceStatusBooting, BmcInstanceStatusInstalling, } SubnetOperatingStatus = []string{ BmcSubnetStatusCreating, BmcSubnetStatusPending, BmcSubnetStatusAssociate, } VpcOperatingStatus = []string{ BmcVpcStatusDeleting, BmcVpcStatusCreating, } EipOperatingStatus = []string{ BmcEipStatusCreating, BmcEipStatusAssociating, BmcEipStatusUnAssociating, BmcEipStatusReleasing, } )
var ( SecurityGroupRuleDirection = []string{ "ingress", "egress", } SecurityGroupRuleIpProtocol = []string{ "tcp", "udp", "icmp", "all", } SecurityGroupRulePolicy = []string{ "accept", } VmImageTypes = []string{ VmImageTypePublic, VmImageTypeCustom, } ImageCategories = []string{ "CentOS", "Windows", "Ubuntu", "Debian", } VmOsTypes = []string{ "windows", "linux", } VmChargeTypes = []string{ VmChargeTypePostpaid, VmChargeTypePrepaid, } VmInternetChargeTypes = []string{ VmInternetChargeTypeBandwidth, VmInternetChargeTypeTrafficPackage, VmInternetChargeTypeInstanceBandwidth95, VmInternetChargeTypeClusterBandwidth95, } VmInstanceOperatingStatus = []string{ VmInstanceStatusPending, VmInstanceStatusDeloying, VmInstanceStatusStopping, VmInstanceStatusBooting, VmInstanceStatusReleasing, VmInstanceStatusRebuilding, } )
Functions ¶
func BuildDdosIpState ¶
func BuildDdosIpState(bmcService BmcService, ddosIpId string, ctx context.Context, d *schema.ResourceData) *resource.StateChangeConf
func BuildDiskState ¶ added in v0.1.4
func BuildDiskState(vmService *VmService, diskId string, ctx context.Context, d *schema.ResourceData) *resource.StateChangeConf
func BuildEipState ¶
func BuildEipState(bmcService BmcService, eipId string, ctx context.Context, d *schema.ResourceData) *resource.StateChangeConf
func BuildImageState ¶ added in v0.1.4
func BuildImageState(vmService VmService, imageId string, ctx context.Context, d *schema.ResourceData) *resource.StateChangeConf
func IsContains ¶
func IsContains(array interface{}, value interface{}) bool
Types ¶
type BmcService ¶
type BmcService struct {
// contains filtered or unexported fields
}
func (*BmcService) AssociateSubnetInstance ¶
func (*BmcService) DeleteInstance ¶
func (s *BmcService) DeleteInstance(ctx context.Context, instanceId string) (err error)
func (*BmcService) DeleteSubnet ¶
func (s *BmcService) DeleteSubnet(ctx context.Context, subnetId string) (err error)
func (*BmcService) DeleteVpc ¶
func (s *BmcService) DeleteVpc(ctx context.Context, vpcId string) error
func (*BmcService) DescribeDdosIpAddressById ¶
func (s *BmcService) DescribeDdosIpAddressById(ctx context.Context, ddosIpId string) (eip *bmc.DdosIpAddress, err error)
func (*BmcService) DescribeDdosIpAddressesByFilter ¶
func (s *BmcService) DescribeDdosIpAddressesByFilter(filter *DDosIpFilter) (ddosIpAddress []*bmc.DdosIpAddress, err error)
func (*BmcService) DescribeEipAddressById ¶
func (s *BmcService) DescribeEipAddressById(ctx context.Context, eipId string) (eip *bmc.EipAddress, err error)
func (*BmcService) DescribeEipAddressesByFilter ¶
func (s *BmcService) DescribeEipAddressesByFilter(filter *EipFilter) (eipAddresses []*bmc.EipAddress, err error)
func (*BmcService) DescribeInstanceById ¶
func (s *BmcService) DescribeInstanceById(ctx context.Context, instanceId string) (instance *bmc.InstanceInfo, err error)
func (*BmcService) DescribeInstanceInternetStatus ¶
func (s *BmcService) DescribeInstanceInternetStatus(ctx context.Context, instanceId string) (*bmc.InstanceInternetStatus, error)
func (*BmcService) DescribeInstancesByFilter ¶
func (s *BmcService) DescribeInstancesByFilter(instanceFilter *InstancesFilter) (instances []*bmc.InstanceInfo, err error)
func (*BmcService) DescribeSubnetById ¶
func (*BmcService) DescribeSubnets ¶
func (s *BmcService) DescribeSubnets(ctx context.Context, filter *SubnetFilter) (subnets []*bmc.Subnet, err error)
func (*BmcService) DescribeVpcById ¶
func (*BmcService) DescribeVpcsByFilter ¶
func (*BmcService) DescribeZones ¶
func (*BmcService) DestroyInstance ¶
func (s *BmcService) DestroyInstance(ctx context.Context, instanceId string) (err error)
func (*BmcService) DisassociateSubnetInstance ¶
func (*BmcService) InstanceDdosIpStateRefreshFunc ¶
func (s *BmcService) InstanceDdosIpStateRefreshFunc(ctx context.Context, eipId string) resource.StateRefreshFunc
func (*BmcService) InstanceEipStateRefreshFunc ¶
func (s *BmcService) InstanceEipStateRefreshFunc(ctx context.Context, eipId string) resource.StateRefreshFunc
func (*BmcService) InstanceNetworkStateRefreshFunc ¶
func (s *BmcService) InstanceNetworkStateRefreshFunc(ctx context.Context, instanceId string, condition NetworkStateCondition) resource.StateRefreshFunc
func (*BmcService) InstanceStateRefreshFunc ¶
func (s *BmcService) InstanceStateRefreshFunc(ctx context.Context, instanceId string, failStates []string) resource.StateRefreshFunc
func (*BmcService) InstanceSubnetStateRefreshFunc ¶
func (s *BmcService) InstanceSubnetStateRefreshFunc(ctx context.Context, instanceId string, subnetId string) resource.StateRefreshFunc
func (*BmcService) ModifyDdosIpResourceGroup ¶
func (*BmcService) ModifyEipResourceGroup ¶
func (*BmcService) ModifyInstanceName ¶
func (*BmcService) ModifyInstanceResourceGroup ¶
func (*BmcService) ModifySubnetName ¶
func (*BmcService) ModifySubnetResourceGroupById ¶
func (*BmcService) ModifyVpcName ¶
func (*BmcService) ModifyVpcResourceGroup ¶
func (*BmcService) ReleaseDDoSIpAddressById ¶
func (s *BmcService) ReleaseDDoSIpAddressById(ctx context.Context, ddosIpId string) (err error)
func (*BmcService) ReleaseEipAddressById ¶
func (s *BmcService) ReleaseEipAddressById(ctx context.Context, eipId string) (err error)
func (*BmcService) SubnetStateRefreshFunc ¶
func (s *BmcService) SubnetStateRefreshFunc(ctx context.Context, subnetId string, failStates []string) resource.StateRefreshFunc
func (*BmcService) TerminateDDoSIpAddress ¶
func (s *BmcService) TerminateDDoSIpAddress(ctx context.Context, ddosIpId string) (err error)
func (*BmcService) TerminateEipAddress ¶
func (s *BmcService) TerminateEipAddress(ctx context.Context, eipId string) (err error)
func (*BmcService) VpcStateRefreshFunc ¶
func (s *BmcService) VpcStateRefreshFunc(ctx context.Context, vpcId string, failStates []string) resource.StateRefreshFunc
type DDosIpFilter ¶
type GoRoutineLimit ¶
type GoRoutineLimit struct {
Count int
Chan chan struct{}
}
func NewGoRoutine ¶
func NewGoRoutine(num int) *GoRoutineLimit
func (*GoRoutineLimit) Run ¶
func (g *GoRoutineLimit) Run(f func())
type InstancesFilter ¶
type NetworkStateCondition ¶
type NetworkStateCondition interface {
// contains filtered or unexported methods
}
type SecurityGroupFilter ¶ added in v0.1.4
type SubnetFilter ¶
type VmDiskFilter ¶ added in v0.1.4
type VmImageFilter ¶ added in v0.1.4
type VmImageFilter struct {
// contains filtered or unexported fields
}
type VmNetworkStateCondition ¶ added in v0.1.4
type VmNetworkStateCondition interface {
// contains filtered or unexported methods
}
type VmService ¶ added in v0.1.4
type VmService struct {
// contains filtered or unexported fields
}
func (*VmService) CreateSecurityGroupRule ¶ added in v0.1.4
func (*VmService) DeleteDisk ¶ added in v0.1.4
func (*VmService) DeleteImage ¶ added in v0.1.4
func (*VmService) DeleteInstance ¶ added in v0.1.4
func (*VmService) DeleteSecurityGroup ¶ added in v0.1.4
func (*VmService) DeleteSubnet ¶ added in v0.1.4
func (*VmService) DescribeDiskById ¶ added in v0.1.4
func (*VmService) DescribeDisks ¶ added in v0.1.4
func (*VmService) DescribeImageById ¶ added in v0.1.4
func (*VmService) DescribeImagesByFilter ¶ added in v0.1.4
func (s *VmService) DescribeImagesByFilter(filter *VmImageFilter) (images []*vm.ImageInfo, err error)
func (*VmService) DescribeInstanceById ¶ added in v0.1.4
func (*VmService) DescribeInstanceInternetStatus ¶ added in v0.1.4
func (*VmService) DescribeSecurityGroupById ¶ added in v0.1.4
func (*VmService) DescribeSecurityGroupRule ¶ added in v0.1.4
func (*VmService) DescribeSecurityGroupsByFilter ¶ added in v0.1.4
func (s *VmService) DescribeSecurityGroupsByFilter(filter *SecurityGroupFilter) (securityGroups []*vm.SecurityGroupInfo, err error)
func (*VmService) DescribeSubnetById ¶ added in v0.1.4
func (*VmService) DescribeSubnets ¶ added in v0.1.4
func (s *VmService) DescribeSubnets(ctx context.Context, filter *VmSubnetFilter) (subnets []*vm.SubnetInfo, err error)
func (*VmService) DescribeZones ¶ added in v0.1.4
func (*VmService) DestroyInstance ¶ added in v0.1.4
func (*VmService) DiskStateRefreshFunc ¶ added in v0.1.4
func (*VmService) ImageStateRefreshFunc ¶ added in v0.1.4
func (*VmService) InstanceNetworkStateRefreshFunc ¶ added in v0.1.4
func (s *VmService) InstanceNetworkStateRefreshFunc(ctx context.Context, instanceId string, condition VmNetworkStateCondition) resource.StateRefreshFunc
func (*VmService) InstanceStateRefreshFunc ¶ added in v0.1.4
func (*VmService) ModifyDiskName ¶ added in v0.1.4
func (*VmService) ModifyImage ¶ added in v0.1.4
func (*VmService) ModifyInstanceName ¶ added in v0.1.4
func (*VmService) ModifyInstanceResourceGroup ¶ added in v0.1.4
func (*VmService) ModifySecurityGroupAttribute ¶ added in v0.1.4
func (*VmService) ModifySubnetName ¶ added in v0.1.4
func (*VmService) ReleaseDisk ¶ added in v0.1.4
func (*VmService) SubnetStateRefreshFunc ¶ added in v0.1.4
type VmSubnetFilter ¶ added in v0.1.4
Source Files
¶
- common.go
- data_source_zc_bmc_Instance_types.go
- data_source_zc_bmc_ddos_ips.go
- data_source_zc_bmc_eips.go
- data_source_zc_bmc_images.go
- data_source_zc_bmc_instances.go
- data_source_zc_bmc_subnets.go
- data_source_zc_bmc_vpc_regions.go
- data_source_zc_bmc_vpcs.go
- data_source_zc_bmc_zones.go
- data_source_zc_disks.go
- data_source_zc_images.go
- data_source_zc_instance_types.go
- data_source_zc_security_groups.go
- data_source_zc_subnets.go
- data_source_zc_zones.go
- errors.go
- extension_bmc.go
- extension_vm.go
- provider.go
- resource_zc_bmc_ddos_ip.go
- resource_zc_bmc_ddos_ip_association.go
- resource_zc_bmc_eip.go
- resource_zc_bmc_eip_association.go
- resource_zc_bmc_instance.go
- resource_zc_bmc_subnet.go
- resource_zc_bmc_vpc.go
- resource_zc_disk.go
- resource_zc_disk_attachment.go
- resource_zc_image.go
- resource_zc_instance.go
- resource_zc_security_group.go
- resource_zc_security_group_attachment.go
- resource_zc_security_group_rule.go
- resource_zc_subnet.go
- service_zenlayer_bmc.go
- service_zenlayer_vm.go
- validators.go