Skip to content

Commit 395713d

Browse files
committed
Fix resource scanning issue
1 parent 682b059 commit 395713d

21 files changed

+371
-21
lines changed

tencentcloud/common/cloud_common.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ func GetResourceCreatorAccountInfo(client *connectivity.TencentCloudClient, reso
5858
response, err := client.UseClsClient().SearchLog(request)
5959
if err != nil {
6060
log.Printf("[CRITAL] search resource[%v] log data error: %v", r.Id, err.Error())
61-
return resourceIdToSubAccountInfoMap
61+
continue
6262
}
6363
if response == nil || response.Response == nil {
6464
log.Printf("[CRITAL] search resource[%v] log data response is nil", r.Id)
65-
return resourceIdToSubAccountInfoMap
65+
continue
6666
}
6767
if len(response.Response.Results) == 0 {
6868
log.Printf("[CRITAL] search resource[%v] log data response results is empty", r.Id)
69-
return resourceIdToSubAccountInfoMap
69+
continue
7070
}
7171

7272
result := response.Response.Results[0]

tencentcloud/common/resource_scan.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import (
1313
const (
1414
KeepResource = "keep"
1515
NonKeepResource = "non-keep"
16+
17+
SystemUserName = "system"
1618
)
1719

1820
// TimeFormats add all possible time formats
@@ -59,6 +61,11 @@ func ProcessResources(client *connectivity.TencentCloudClient, resources []*Reso
5961
resourceName = creatorAccountInfo.ResourceName
6062
principalId = creatorAccountInfo.PrincipalId
6163
userName = creatorAccountInfo.UserName
64+
} else {
65+
parsedTime, _ := ParsedTime(r.CreatTime)
66+
if IsDefaultSearchLogStartTimestampAfter(*parsedTime) {
67+
userName = SystemUserName
68+
}
6269
}
6370

6471
data[i] = []string{
@@ -139,6 +146,9 @@ func DaysSinceCreation(createTime string) (string, error) {
139146
if err != nil {
140147
return "", err
141148
}
149+
if parsedTime == nil {
150+
return "", nil
151+
}
142152

143153
duration := time.Since(*parsedTime)
144154
days := duration.Hours() / 24
@@ -174,3 +184,12 @@ func ParsedTime(createTime string) (*time.Time, error) {
174184
}
175185
return &parsedTime, nil
176186
}
187+
188+
// IsDefaultSearchLogStartTimestampAfter check whether the resource creation time is after the default search log start time
189+
func IsDefaultSearchLogStartTimestampAfter(parsedTime time.Time) bool {
190+
// 将 DefaultSearchLogStartTimestamp 转换为 time.Time 类型
191+
startTime := time.Unix(DefaultSearchLogStartTimestamp/1000, 0)
192+
193+
// 判断 parsedTime 是否在 startTime 之后
194+
return parsedTime.After(startTime)
195+
}

tencentcloud/services/as/resource_tc_as_scaling_config_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,24 @@ func init() {
3333
if err != nil {
3434
return err
3535
}
36+
37+
// add scanning resources
38+
var resources, nonKeepResources []*tccommon.ResourceInstance
39+
for _, v := range configs {
40+
if !tccommon.CheckResourcePersist(*v.LaunchConfigurationName, *v.CreatedTime) {
41+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
42+
Id: *v.LaunchConfigurationId,
43+
Name: *v.LaunchConfigurationName,
44+
})
45+
}
46+
resources = append(resources, &tccommon.ResourceInstance{
47+
Id: *v.LaunchConfigurationId,
48+
Name: *v.LaunchConfigurationName,
49+
CreatTime: *v.CreatedTime,
50+
})
51+
}
52+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateLaunchConfiguration")
53+
3654
for _, config := range configs {
3755
instanceName := *config.LaunchConfigurationName
3856
now := time.Now()

tencentcloud/services/as/resource_tc_as_scaling_group_test.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,31 @@ func testSweepAsScalingGroups(region string) error {
3030
if err != nil {
3131
return fmt.Errorf("getting tencentcloud client error: %s", err.Error())
3232
}
33-
client := sharedClient.(tccommon.ProviderMeta)
33+
client := sharedClient.(tccommon.ProviderMeta).GetAPIV3Conn()
3434

35-
asService := svcas.NewAsService(client.GetAPIV3Conn())
35+
asService := svcas.NewAsService(client)
3636
scalingGroups, err := asService.DescribeAutoScalingGroupByFilter(ctx, "", "", "", nil)
3737
if err != nil {
3838
return fmt.Errorf("list scaling group error: %s", err.Error())
3939
}
4040

41+
// add scanning resources
42+
var resources, nonKeepResources []*tccommon.ResourceInstance
43+
for _, v := range scalingGroups {
44+
if !tccommon.CheckResourcePersist(*v.AutoScalingGroupName, *v.CreatedTime) {
45+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
46+
Id: *v.AutoScalingGroupId,
47+
Name: *v.AutoScalingGroupName,
48+
})
49+
}
50+
resources = append(resources, &tccommon.ResourceInstance{
51+
Id: *v.AutoScalingGroupId,
52+
Name: *v.AutoScalingGroupName,
53+
CreatTime: *v.CreatedTime,
54+
})
55+
}
56+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateAutoScalingGroup")
57+
4158
for _, v := range scalingGroups {
4259
scalingGroupId := *v.AutoScalingGroupId
4360
scalingGroupName := *v.AutoScalingGroupName

tencentcloud/services/cam/resource_tc_cam_role_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,24 @@ func init() {
3333
if err != nil {
3434
return err
3535
}
36+
37+
// add scanning resources
38+
var resources, nonKeepResources []*tccommon.ResourceInstance
39+
for _, v := range groups {
40+
if !tccommon.CheckResourcePersist(*v.RoleName, *v.AddTime) {
41+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
42+
Id: *v.RoleId,
43+
Name: *v.RoleName,
44+
})
45+
}
46+
resources = append(resources, &tccommon.ResourceInstance{
47+
Id: *v.RoleId,
48+
Name: *v.RoleName,
49+
CreatTime: *v.AddTime,
50+
})
51+
}
52+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateRole")
53+
3654
for _, v := range groups {
3755
name := *v.RoleName
3856

tencentcloud/services/cam/resource_tc_cam_user_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"fmt"
66
"log"
7+
"strconv"
78
"strings"
89
"testing"
910

@@ -36,6 +37,23 @@ func init() {
3637
return err
3738
}
3839

40+
// add scanning resources
41+
var resources, nonKeepResources []*tccommon.ResourceInstance
42+
for _, v := range users {
43+
if !tccommon.CheckResourcePersist(*v.Name, *v.CreateTime) {
44+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
45+
Id: strconv.FormatUint(*v.Uin, 10),
46+
Name: *v.Name,
47+
})
48+
}
49+
resources = append(resources, &tccommon.ResourceInstance{
50+
Id: strconv.FormatUint(*v.Uin, 10),
51+
Name: *v.Name,
52+
CreatTime: *v.CreateTime,
53+
})
54+
}
55+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "AddUser")
56+
3957
for _, v := range users {
4058
if tcacctest.PersistResource.MatchString(*v.Name) {
4159
continue

tencentcloud/services/cfs/resource_tc_cfs_access_group_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,23 @@ func init() {
3333
return err
3434
}
3535

36+
// add scanning resources
37+
var resources, nonKeepResources []*tccommon.ResourceInstance
38+
for _, v := range groups {
39+
if !tccommon.CheckResourcePersist(*v.Name, *v.CDate) {
40+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
41+
Id: *v.PGroupId,
42+
Name: *v.Name,
43+
})
44+
}
45+
resources = append(resources, &tccommon.ResourceInstance{
46+
Id: *v.PGroupId,
47+
Name: *v.Name,
48+
CreatTime: *v.CDate,
49+
})
50+
}
51+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateCfsPGroup")
52+
3653
for i := range groups {
3754
id := *groups[i].PGroupId
3855
name := *groups[i].Name

tencentcloud/services/cfs/resource_tc_cfs_file_system_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,24 @@ func init() {
3131
if err != nil {
3232
return err
3333
}
34+
35+
// add scanning resources
36+
var resources, nonKeepResources []*tccommon.ResourceInstance
37+
for _, v := range fsList {
38+
if !tccommon.CheckResourcePersist(*v.FileSystemId, *v.CreationTime) {
39+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
40+
Id: *v.FileSystemId,
41+
Name: *v.FsName,
42+
})
43+
}
44+
resources = append(resources, &tccommon.ResourceInstance{
45+
Id: *v.FileSystemId,
46+
Name: *v.FsName,
47+
CreatTime: *v.CreationTime,
48+
})
49+
}
50+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateCfsFileSystem")
51+
3452
for i := range fsList {
3553
item := fsList[i]
3654
id := *item.FileSystemId

tencentcloud/services/clb/resource_tc_clb_target_group_test.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,23 @@ func init() {
3131
return err
3232
}
3333

34+
// add scanning resources
35+
var resources, nonKeepResources []*tccommon.ResourceInstance
36+
for _, v := range tgs {
37+
if !tccommon.CheckResourcePersist(*v.TargetGroupName, *v.CreatedTime) {
38+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
39+
Id: *v.TargetGroupId,
40+
Name: *v.TargetGroupName,
41+
})
42+
}
43+
resources = append(resources, &tccommon.ResourceInstance{
44+
Id: *v.TargetGroupId,
45+
Name: *v.TargetGroupName,
46+
CreatTime: *v.CreatedTime,
47+
})
48+
}
49+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateTargetGroup")
50+
3451
for i := range tgs {
3552
tg := tgs[i]
3653
created := tccommon.ParseTimeFromCommonLayout(tg.CreatedTime)

tencentcloud/services/cls/resource_tc_cls_logset_test.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,32 @@ func testSweepClsLogset(region string) error {
3131
if err != nil {
3232
return fmt.Errorf("getting tencentcloud client error: %s", err.Error())
3333
}
34-
client := sharedClient.(tccommon.ProviderMeta)
34+
client := sharedClient.(tccommon.ProviderMeta).GetAPIV3Conn()
3535

36-
clsService := localcls.NewClsService(client.GetAPIV3Conn())
36+
clsService := localcls.NewClsService(client)
3737

3838
instances, err := clsService.DescribeClsLogsetByFilter(ctx, nil)
3939
if err != nil {
4040
return fmt.Errorf("get instance list error: %s", err.Error())
4141
}
4242

43+
// add scanning resources
44+
var resources, nonKeepResources []*tccommon.ResourceInstance
45+
for _, v := range instances {
46+
if !tccommon.CheckResourcePersist(*v.LogsetName, *v.CreateTime) {
47+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
48+
Id: *v.LogsetId,
49+
Name: *v.LogsetName,
50+
})
51+
}
52+
resources = append(resources, &tccommon.ResourceInstance{
53+
Id: *v.LogsetId,
54+
Name: *v.LogsetName,
55+
CreatTime: *v.CreateTime,
56+
})
57+
}
58+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateLogset")
59+
4360
for _, v := range instances {
4461
instanceId := v.LogsetId
4562
instanceName := v.LogsetName

tencentcloud/services/cls/resource_tc_cls_machine_group_test.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,32 @@ func testSweepMachineGroup(region string) error {
3131
if err != nil {
3232
return fmt.Errorf("getting tencentcloud client error: %s", err.Error())
3333
}
34-
client := sharedClient.(tccommon.ProviderMeta)
34+
client := sharedClient.(tccommon.ProviderMeta).GetAPIV3Conn()
3535

36-
clsService := localcls.NewClsService(client.GetAPIV3Conn())
36+
clsService := localcls.NewClsService(client)
3737

3838
instances, err := clsService.DescribeClsMachineGroupByFilter(ctx, nil)
3939
if err != nil {
4040
return fmt.Errorf("get instance list error: %s", err.Error())
4141
}
4242

43+
// add scanning resources
44+
var resources, nonKeepResources []*tccommon.ResourceInstance
45+
for _, v := range instances {
46+
if !tccommon.CheckResourcePersist(*v.GroupName, *v.CreateTime) {
47+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
48+
Id: *v.GroupId,
49+
Name: *v.GroupName,
50+
})
51+
}
52+
resources = append(resources, &tccommon.ResourceInstance{
53+
Id: *v.GroupId,
54+
Name: *v.GroupName,
55+
CreatTime: *v.CreateTime,
56+
})
57+
}
58+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateMachineGroup")
59+
4360
for _, v := range instances {
4461
instanceId := v.GroupId
4562
instanceName := v.GroupName

tencentcloud/services/cvm/resource_tc_eip_test.go

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,32 @@ func testSweepEipInstance(region string) error {
3333
if err != nil {
3434
return fmt.Errorf("getting tencentcloud client error: %s", err.Error())
3535
}
36-
client := sharedClient.(tccommon.ProviderMeta)
36+
client := sharedClient.(tccommon.ProviderMeta).GetAPIV3Conn()
3737

38-
vpcService := svcvpc.NewVpcService(client.GetAPIV3Conn())
38+
vpcService := svcvpc.NewVpcService(client)
3939

4040
instances, err := vpcService.DescribeEipByFilter(ctx, nil)
4141
if err != nil {
4242
return fmt.Errorf("get instance list error: %s", err.Error())
4343
}
4444

45+
// add scanning resources
46+
var resources, nonKeepResources []*tccommon.ResourceInstance
47+
for _, v := range instances {
48+
if !tccommon.CheckResourcePersist(*v.AddressName, *v.CreatedTime) {
49+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
50+
Id: *v.AddressId,
51+
Name: *v.AddressName,
52+
})
53+
}
54+
resources = append(resources, &tccommon.ResourceInstance{
55+
Id: *v.AddressId,
56+
Name: *v.AddressName,
57+
CreatTime: *v.CreatedTime,
58+
})
59+
}
60+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "AllocateAddresses")
61+
4562
for _, v := range instances {
4663
instanceId := *v.AddressId
4764
print(instanceId)

tencentcloud/services/cvm/resource_tc_key_pair_test.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,31 @@ func init() {
2727
if err != nil {
2828
return fmt.Errorf("getting tencentcloud client error: %s", err.Error())
2929
}
30-
client := sharedClient.(tccommon.ProviderMeta)
30+
client := sharedClient.(tccommon.ProviderMeta).GetAPIV3Conn()
3131

32-
cvmService := svccvm.NewCvmService(client.GetAPIV3Conn())
32+
cvmService := svccvm.NewCvmService(client)
3333
keyPairs, err := cvmService.DescribeKeyPairByFilter(ctx, "", "", nil)
3434
if err != nil {
3535
return fmt.Errorf("get instance list error: %s", err.Error())
3636
}
37+
38+
// add scanning resources
39+
var resources, nonKeepResources []*tccommon.ResourceInstance
40+
for _, v := range keyPairs {
41+
if !tccommon.CheckResourcePersist(*v.KeyName, *v.CreatedTime) {
42+
nonKeepResources = append(nonKeepResources, &tccommon.ResourceInstance{
43+
Id: *v.KeyId,
44+
Name: *v.KeyName,
45+
})
46+
}
47+
resources = append(resources, &tccommon.ResourceInstance{
48+
Id: *v.KeyId,
49+
Name: *v.KeyName,
50+
CreatTime: *v.CreatedTime,
51+
})
52+
}
53+
tccommon.ProcessScanCloudResources(client, resources, nonKeepResources, "CreateKeyPair")
54+
3755
for _, keyPair := range keyPairs {
3856
instanceId := *keyPair.KeyId
3957
instanceName := *keyPair.KeyName

0 commit comments

Comments
 (0)