Skip to content
Open
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
44 changes: 31 additions & 13 deletions pkg/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"github.com/tencentyun/tencentcloud-exporter/pkg/constant"
"github.com/tencentyun/tencentcloud-exporter/pkg/util"
"gopkg.in/yaml.v2"
"github.com/kobyt2/common-services/utils/aes"
)

const (
Expand Down Expand Up @@ -85,6 +86,7 @@ var QcloudNamespace = []string{"COS", "CDN", "QAAP", "WAF"}
type TencentCredential struct {
AccessKey string `yaml:"access_key"`
SecretKey string `yaml:"secret_key"`
EncryptionKey string `yaml:"encryption_key"`
Role string `yaml:"role"`
Region string `yaml:"region"`
Token string `yaml:"token"`
Expand Down Expand Up @@ -156,21 +158,37 @@ func NewConfig() *TencentConfig {
}

func (c *TencentConfig) LoadFile(filename string) error {
c.Filename = filename
content, err := ioutil.ReadFile(c.Filename)
if err != nil {
return err
}
if err = yaml.UnmarshalStrict(content, c); err != nil {
return err
}
if err = c.check(); err != nil {
return err
}
c.fillDefault()
return nil
c.Filename = filename
content, err := ioutil.ReadFile(c.Filename)
if err != nil {
return err
}

// 解析 YAML 文件
if err = yaml.UnmarshalStrict(content, c); err != nil {
return err
}

// 假设加密密钥存储在 YAML 中
crypto := aes.NewCryptoDB(c.Credential.EncryptionKey) // 直接读取配置中的密钥

// 解密 access_key 和 secret_key
decryptedAccessKey := crypto.Decrypt(c.Credential.AccessKey)
decryptedSecretKey := crypto.Decrypt(c.Credential.SecretKey)

c.Credential.AccessKey = decryptedAccessKey
c.Credential.SecretKey = decryptedSecretKey

// 检查配置文件是否合法
if err = c.check(); err != nil {
return err
}

c.fillDefault()
return nil
}


func (c *TencentConfig) check() (err error) {
if c.Credential.AccessKey == "" {
c.Credential.AccessKey = os.Getenv(EnvAccessKey)
Expand Down
8 changes: 7 additions & 1 deletion pkg/instance/repository_redis.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,13 @@ func (repo *RedisTcInstanceRepository) ListByFilters(filters map[string]string)
var total int64 = -1
req.Offset = &offset
req.Limit = &limit
req.Status = []*int64{common.Int64Ptr(2)}
req.Status = []*int64{
common.Int64Ptr(0), // 待初始化
common.Int64Ptr(1), // 初始化中
common.Int64Ptr(2), // 运行中
}

// req.Status = []*int64{common.Int64Ptr(2)}

getMoreInstances:
resp, err := repo.client.DescribeInstances(req)
Expand Down