Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions tencentcloud/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ const logIdKey = contextLogId("logId")
const (
PROVIDER_READ_RETRY_TIMEOUT = "TENCENTCLOUD_READ_RETRY_TIMEOUT"
PROVIDER_WRITE_RETRY_TIMEOUT = "TENCENTCLOUD_WRITE_RETRY_TIMEOUT"
PROVIDER_WAIT_READ_TIMEOUT = "TENCENTCLOUD_WAIT_READ_TIMEOUT"

SWEEPER_NEED_PROTECT = "SWEEPER_NEED_PROTECT"
TENCENTCLOUD_COMMON_TIME_LAYOUT = "2006-01-02 15:04:05"
Expand All @@ -51,6 +52,11 @@ var readRetryTimeout = time.Duration(readRetry) * time.Minute
var writeRetry = getEnvDefault(PROVIDER_WRITE_RETRY_TIMEOUT, 5)
var writeRetryTimeout = time.Duration(writeRetry) * time.Minute

// writeRetryTimeout is write retry timeout
//const writeRetryTimeout = 5 * time.Minute
var waitRead = getEnvDefault(PROVIDER_WAIT_READ_TIMEOUT, 1)
var waitReadTimeout = time.Duration(waitRead) * time.Second

//const writeRetryTimeout = 5 * time.Minute
var needProtect = getEnvDefault(SWEEPER_NEED_PROTECT, 0)

Expand Down
16 changes: 16 additions & 0 deletions tencentcloud/resource_tc_instance.go
Original file line number Diff line number Diff line change
Expand Up @@ -708,6 +708,22 @@ func resourceTencentCloudInstanceCreate(d *schema.ResourceData, meta interface{}
request.UserData = &userData
}

if v := helper.GetTags(d, "tags"); len(v) > 0 {
tags := make([]*cvm.Tag, 0)
for tagKey, tagValue := range v {
tag := cvm.Tag{
Key: helper.String(tagKey),
Value: helper.String(tagValue),
}
tags = append(tags, &tag)
}
tagSpecification := cvm.TagSpecification{
ResourceType: helper.String("instance"),
Tags: tags,
}
request.TagSpecification = append(request.TagSpecification, &tagSpecification)
}

instanceId := ""

err := resource.Retry(writeRetryTimeout, func() *resource.RetryError {
Expand Down
20 changes: 8 additions & 12 deletions tencentcloud/resource_tc_vpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import (
"context"
"fmt"
"log"
"time"

vpc "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/vpc/v20170312"

Expand Down Expand Up @@ -142,6 +143,7 @@ func resourceTencentCloudVpcInstanceCreate(d *schema.ResourceData, meta interfac
cidrBlock string
dnsServers = make([]string, 0, 4)
isMulticast bool
tags map[string]string
)
if temp, ok := d.GetOk("name"); ok {
name = temp.(string)
Expand All @@ -166,7 +168,10 @@ func resourceTencentCloudVpcInstanceCreate(d *schema.ResourceData, meta interfac
}
isMulticast = d.Get("is_multicast").(bool)

vpcId, _, err := vpcService.CreateVpc(ctx, name, cidrBlock, isMulticast, dnsServers)
if temp := helper.GetTags(d, "tags"); len(temp) > 0 {
tags = temp
}
vpcId, _, err := vpcService.CreateVpc(ctx, name, cidrBlock, isMulticast, dnsServers, tags)
if err != nil {
return err
}
Expand All @@ -183,17 +188,8 @@ func resourceTencentCloudVpcInstanceCreate(d *schema.ResourceData, meta interfac
return err
}
}

if tags := helper.GetTags(d, "tags"); len(tags) > 0 {
tagService := TagService{client: meta.(*TencentCloudClient).apiV3Conn}

region := meta.(*TencentCloudClient).apiV3Conn.Region
resourceName := fmt.Sprintf("qcs::vpc:%s:uin/:vpc/%s", region, vpcId)

if err := tagService.ModifyTags(ctx, resourceName, tags, nil); err != nil {
return err
}
}
// protected while tag is not ready, default is 1s
time.Sleep(waitReadTimeout)

return resourceTencentCloudVpcInstanceRead(d, meta)
}
Expand Down
13 changes: 12 additions & 1 deletion tencentcloud/service_tencentcloud_vpc.go
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ func (me *VpcService) fillFilter(ins []*vpc.Filter, key, value string) (outs []*

// ////////api
func (me *VpcService) CreateVpc(ctx context.Context, name, cidr string,
isMulticast bool, dnsServers []string) (vpcId string, isDefault bool, errRet error) {
isMulticast bool, dnsServers []string, tags map[string]string) (vpcId string, isDefault bool, errRet error) {

logId := getLogId(ctx)
request := vpc.NewCreateVpcRequest()
Expand All @@ -197,6 +197,17 @@ func (me *VpcService) CreateVpc(ctx context.Context, name, cidr string,
request.DnsServers = append(request.DnsServers, &dnsServers[index])
}
}

if len(tags) > 0 {
for tagKey, tagValue := range tags {
tag := vpc.Tag{
Key: helper.String(tagKey),
Value: helper.String(tagValue),
}
request.Tags = append(request.Tags, &tag)
}
}

var response *vpc.CreateVpcResponse
if err := resource.Retry(readRetryTimeout, func() *resource.RetryError {
ratelimit.Check(request.GetAction())
Expand Down