forked from hashicorp/terraform-provider-jdcloud
/
subnet.go
36 lines (28 loc) · 950 Bytes
/
subnet.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package main
import (
"fmt"
"github.com/jdcloud-api/jdcloud-sdk-go/services/vpc/apis"
"github.com/jdcloud-api/jdcloud-sdk-go/services/vpc/client"
)
const subnetTemplate = `
resource "jdcloud_subnet" "%s" {
vpc_id = "${jdcloud_vpc.%s.id}"
cidr_block = "%s"
subnet_name = "%s"
description = "%s"
}
`
func generateSubnet(resourceName, vpcName, cidr, subnetName, description string) string {
return fmt.Sprintf(subnetTemplate, resourceName, vpcName, cidr, subnetName, description)
}
func copySubnet() {
vpcClient := client.NewVpcClient(config.Credential)
req := apis.NewDescribeSubnetsRequest(region)
resp, _ := vpcClient.DescribeSubnets(req)
for count, sn := range resp.Result.Subnets {
resourceName := fmt.Sprintf("subnet-%d", count)
subnetResource := generateSubnet(resourceName, resourceMap[sn.VpcId], sn.AddressPrefix, sn.SubnetName, sn.Description)
tracefile(subnetResource)
resourceMap[sn.SubnetId] = resourceName
}
}