From d94219404d0da4cf50926d9dfb3c1a61a2fdfcb6 Mon Sep 17 00:00:00 2001 From: dev4unet Date: Tue, 20 Aug 2024 09:29:41 +0000 Subject: [PATCH] Bugfix for TagList missing in list() result value of KeyPair --- .../drivers/aws/main/Test_Resources.go | 11 ++++++----- .../drivers/aws/resources/KeyPairHandler.go | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/cloud-control-manager/cloud-driver/drivers/aws/main/Test_Resources.go b/cloud-control-manager/cloud-driver/drivers/aws/main/Test_Resources.go index d38de34fe..715cb7e31 100644 --- a/cloud-control-manager/cloud-driver/drivers/aws/main/Test_Resources.go +++ b/cloud-control-manager/cloud-driver/drivers/aws/main/Test_Resources.go @@ -505,8 +505,8 @@ func handleKeyPair() { keyPairReqInfo := irs.KeyPairReqInfo{ IId: irs.IID{NameId: keyPairName}, //Name: keyPairName, - //TagList: []irs.KeyValue{{Key: "Name1", Value: "Tag Name Value1"}, {Key: "Name2", Value: "Tag Name Value2"}, {Key: "Name", Value: keyPairName + "123"}}, - TagList: []irs.KeyValue{{Key: "Name1", Value: "Tag Name Value1"}, {Key: "Name2", Value: "Tag Name Value2"}}, + TagList: []irs.KeyValue{{Key: "Name1", Value: "Tag Name Value1"}, {Key: "Name2", Value: "Tag Name Value2"}, {Key: "Name", Value: keyPairName + "123"}}, + //TagList: []irs.KeyValue{{Key: "Name1", Value: "Tag Name Value1"}, {Key: "Name2", Value: "Tag Name Value2"}}, } result, err := KeyPairHandler.CreateKey(keyPairReqInfo) if err != nil { @@ -522,6 +522,7 @@ func handleKeyPair() { cblogger.Infof(keyPairName, " KeyPair Lookup Failed : ", err) } else { cblogger.Infof("[%s] KeyPair Lookup Result : [%s]", keyPairName, result) + spew.Dump(result) } case 4: cblogger.Infof("[%s] KeyPair Delete Test", keyPairName) @@ -2257,13 +2258,13 @@ func readConfigFile() Config { } func main() { - handleMyImage() + //handleMyImage() // myimage //handleTag() // handlePublicIP() // PublicIP 생성 후 conf // handleDisk() - //handleKeyPair() + handleKeyPair() //handleVPC() //handleSecurity() //handleVM() @@ -2274,5 +2275,5 @@ func main() { //handleCluster() //handleRegionZone() //handlePriceInfo() - handleTag() + //handleTag() } diff --git a/cloud-control-manager/cloud-driver/drivers/aws/resources/KeyPairHandler.go b/cloud-control-manager/cloud-driver/drivers/aws/resources/KeyPairHandler.go index e2eea40c8..4b23f90f8 100644 --- a/cloud-control-manager/cloud-driver/drivers/aws/resources/KeyPairHandler.go +++ b/cloud-control-manager/cloud-driver/drivers/aws/resources/KeyPairHandler.go @@ -78,6 +78,15 @@ func (keyPairHandler *AwsKeyPairHandler) ListKey() ([]*irs.KeyPairInfo, error) { keyPairInfo.Fingerprint = *pair.KeyFingerprint */ keyPairInfo, errKeyPair := ExtractKeyPairDescribeInfo(pair) + //keyPairInfo.TagList, _ = keyPairHandler.TagHandler.ListTag(irs.KEY, keyPairInfo.IId) + // Implemented direct logic instead of keyPairHandler.TagHandler.ListTag for speed. + for _, tag := range pair.Tags { + keyPairInfo.TagList = append(keyPairInfo.TagList, irs.KeyValue{ + Key: aws.StringValue(tag.Key), + Value: aws.StringValue(tag.Value), + }) + } + if errKeyPair != nil { //cblogger.Infof("[%s] KeyPair는 Local에서 관리하는 대상이 아니기 때문에 Skip합니다.", *pair.KeyName) cblogger.Error(errKeyPair.Error()) @@ -133,7 +142,7 @@ func (keyPairHandler *AwsKeyPairHandler) CreateKey(keyPairReqInfo irs.KeyPairReq } // Creates a new key pair with the given name result, err := keyPairHandler.Client.CreateKeyPair(input) - // spew.Dump(result) + //spew.Dump(result) callLogInfo.ElapsedTime = call.Elapsed(callLogStart) @@ -252,7 +261,7 @@ func (keyPairHandler *AwsKeyPairHandler) GetKey(keyIID irs.IID) (irs.KeyPairInfo callLogStart := call.Start() result, err := keyPairHandler.Client.DescribeKeyPairs(input) - // spew.Dump(result) + //spew.Dump(result) callLogInfo.ElapsedTime = call.Elapsed(callLogStart) cblogger.Debug("result : ", result) cblogger.Debug("err : ", err) @@ -287,7 +296,7 @@ func (keyPairHandler *AwsKeyPairHandler) GetKey(keyIID irs.IID) (irs.KeyPairInfo } keyPairInfo.TagList, _ = keyPairHandler.TagHandler.ListTag(irs.KEY, keyPairInfo.IId) - // spew.Dump(keyPairInfo.TagList) + //spew.Dump(keyPairInfo.TagList) cblogger.Debug(keyPairInfo) return keyPairInfo, nil