Skip to content

Commit e41b59d

Browse files
tongyimingmikatong
andauthored
fix(emr): [120666588] update read (#3054)
* update read * add changelog * update --------- Co-authored-by: mikatong <[email protected]>
1 parent 28a96e1 commit e41b59d

File tree

3 files changed

+83
-123
lines changed

3 files changed

+83
-123
lines changed

.changelog/3054.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:enhancement
2+
resource/tencentcloud_emr_cluster: update read
3+
```

tencentcloud/services/emr/extension_emr.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,17 @@ func validateMultiDisks(r map[string]interface{}) error {
228228
return nil
229229
}
230230

231+
func translateDiskType(diskType int64) (diskTypeStr string) {
232+
switch diskType {
233+
case 4:
234+
diskTypeStr = "CLOUD_SSD"
235+
case 5:
236+
diskTypeStr = "CLOUD_PREMIUM"
237+
case 6:
238+
diskTypeStr = "CLOUD_HSSD"
239+
}
240+
return
241+
}
231242
func fetchMultiDisks(v *emr.NodeHardwareInfo, r *emr.OutterResource) (multiDisks []interface{}) {
232243
var inputDataDiskTag string
233244
if r.DiskType != nil && r.DiskSize != nil {
@@ -238,15 +249,7 @@ func fetchMultiDisks(v *emr.NodeHardwareInfo, r *emr.OutterResource) (multiDisks
238249
multiDisk := make(map[string]interface{})
239250
if item.Type != nil {
240251
var diskType string
241-
if *item.Type == 4 {
242-
diskType = "CLOUD_SSD"
243-
}
244-
if *item.Type == 5 {
245-
diskType = "CLOUD_PREMIUM"
246-
}
247-
if *item.Type == 6 {
248-
diskType = "CLOUD_HSSD"
249-
}
252+
diskType = translateDiskType(*item.Type)
250253
multiDisk["disk_type"] = diskType
251254
outputDataDiskTag = diskType
252255
}

tencentcloud/services/emr/resource_tc_emr_cluster.go

Lines changed: 68 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -598,6 +598,7 @@ func resourceTencentCloudEmrClusterRead(d *schema.ResourceData, meta interface{}
598598

599599
_ = d.Set("instance_id", instanceId)
600600
clusterNodeMap := make(map[string]*emr.NodeHardwareInfo)
601+
clusterNodeNum := make(map[string]int)
601602
err = resource.Retry(tccommon.ReadRetryTimeout, func() *resource.RetryError {
602603
result, err := emrService.DescribeClusterNodes(ctx, instanceId, "all", "all", 0, 10)
603604

@@ -611,8 +612,16 @@ func resourceTencentCloudEmrClusterRead(d *schema.ResourceData, meta interface{}
611612
node := item
612613
// 节点类型 0:common节点;1:master节点;2:core节点;3:task节点
613614
if node.Flag != nil {
614-
clusterNodeMap[strconv.FormatInt(*node.Flag, 10)] = node
615+
nodeFlag := strconv.FormatInt(*node.Flag, 10)
616+
clusterNodeMap[nodeFlag] = node
617+
if v, ok := clusterNodeNum[nodeFlag]; ok {
618+
clusterNodeNum[nodeFlag] = v + 1
619+
} else {
620+
clusterNodeNum[nodeFlag] = 1
621+
}
622+
615623
}
624+
616625
}
617626
}
618627

@@ -646,144 +655,89 @@ func resourceTencentCloudEmrClusterRead(d *schema.ResourceData, meta interface{}
646655
}
647656
resourceSpec := make(map[string]interface{})
648657

649-
var masterCount int64
650-
if instance.Config.MasterNodeSize != nil {
651-
masterCount = *instance.Config.MasterNodeSize
652-
resourceSpec["master_count"] = masterCount
658+
if v, ok := clusterNodeNum["1"]; ok {
659+
resourceSpec["master_count"] = v
653660
}
654-
if masterCount != 0 && instance.Config.MasterResource != nil {
655-
masterResource := instance.Config.MasterResource
661+
662+
if v, ok := clusterNodeMap["1"]; ok && v != nil {
656663
masterResourceSpec := make(map[string]interface{})
657-
if masterResource.MemSize != nil {
658-
masterResourceSpec["mem_size"] = *masterResource.MemSize
659-
}
660-
if masterResource.Cpu != nil {
661-
masterResourceSpec["cpu"] = *masterResource.Cpu
662-
}
663-
if masterResource.DiskSize != nil {
664-
masterResourceSpec["disk_size"] = *masterResource.DiskSize
665-
}
666-
if masterResource.DiskType != nil {
667-
masterResourceSpec["disk_type"] = *masterResource.DiskType
668-
}
669-
if masterResource.Spec != nil {
670-
masterResourceSpec["spec"] = *masterResource.Spec
671-
}
672-
if masterResource.StorageType != nil {
673-
masterResourceSpec["storage_type"] = *masterResource.StorageType
674-
}
675-
if masterResource.RootSize != nil {
676-
masterResourceSpec["root_size"] = *masterResource.RootSize
677-
}
678-
if v, ok := clusterNodeMap["1"]; ok {
664+
masterResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
665+
masterResourceSpec["cpu"] = v.CpuNum
666+
if instance.Config.MasterResource != nil {
667+
masterResource := instance.Config.MasterResource
668+
masterResourceSpec["disk_size"] = masterResource.DiskSize
679669
masterResourceSpec["multi_disks"] = fetchMultiDisks(v, masterResource)
670+
671+
}
672+
if v.StorageType != nil {
673+
masterResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
680674
}
675+
masterResourceSpec["spec"] = v.Spec
676+
masterResourceSpec["storage_type"] = v.RootStorageType
677+
masterResourceSpec["root_size"] = v.RootSize
681678
resourceSpec["master_resource_spec"] = []interface{}{masterResourceSpec}
682679
}
683680

684-
var coreCount int64
685-
if instance.Config.CoreNodeSize != nil {
686-
coreCount = *instance.Config.CoreNodeSize
687-
resourceSpec["core_count"] = coreCount
681+
if v, ok := clusterNodeNum["2"]; ok {
682+
resourceSpec["core_count"] = v
688683
}
689-
if coreCount != 0 && instance.Config.CoreResource != nil {
690-
coreResource := instance.Config.CoreResource
684+
if v, ok := clusterNodeMap["2"]; ok && v != nil {
691685
coreResourceSpec := make(map[string]interface{})
692-
if coreResource.MemSize != nil {
693-
coreResourceSpec["mem_size"] = *coreResource.MemSize
694-
}
695-
if coreResource.Cpu != nil {
696-
coreResourceSpec["cpu"] = *coreResource.Cpu
697-
}
698-
if coreResource.DiskSize != nil {
699-
coreResourceSpec["disk_size"] = *coreResource.DiskSize
700-
}
701-
if coreResource.DiskType != nil {
702-
coreResourceSpec["disk_type"] = *coreResource.DiskType
703-
}
704-
if coreResource.Spec != nil {
705-
coreResourceSpec["spec"] = *coreResource.Spec
706-
}
707-
if coreResource.StorageType != nil {
708-
coreResourceSpec["storage_type"] = *coreResource.StorageType
709-
}
710-
if coreResource.RootSize != nil {
711-
coreResourceSpec["root_size"] = *coreResource.RootSize
712-
}
713-
if v, ok := clusterNodeMap["2"]; ok {
686+
coreResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
687+
coreResourceSpec["cpu"] = v.CpuNum
688+
if instance.Config.CoreResource != nil {
689+
coreResource := instance.Config.CoreResource
690+
coreResourceSpec["disk_size"] = coreResource.DiskSize
714691
coreResourceSpec["multi_disks"] = fetchMultiDisks(v, coreResource)
715692
}
716-
693+
if v.StorageType != nil {
694+
coreResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
695+
}
696+
coreResourceSpec["spec"] = v.Spec
697+
coreResourceSpec["storage_type"] = v.RootStorageType
698+
coreResourceSpec["root_size"] = v.RootSize
717699
resourceSpec["core_resource_spec"] = []interface{}{coreResourceSpec}
718700
}
719701

720-
var taskCount int64
721-
if instance.Config.TaskNodeSize != nil {
722-
taskCount = *instance.Config.TaskNodeSize
723-
resourceSpec["task_count"] = taskCount
702+
if v, ok := clusterNodeNum["3"]; ok {
703+
resourceSpec["task_count"] = v
724704
}
725-
if taskCount != 0 && instance.Config.TaskResource != nil {
726-
taskResource := instance.Config.TaskResource
705+
if v, ok := clusterNodeMap["3"]; ok && v != nil {
727706
taskResourceSpec := make(map[string]interface{})
728-
if taskResource.MemSize != nil {
729-
taskResourceSpec["mem_size"] = *taskResource.MemSize
730-
}
731-
if taskResource.Cpu != nil {
732-
taskResourceSpec["cpu"] = *taskResource.Cpu
733-
}
734-
if taskResource.DiskSize != nil {
735-
taskResourceSpec["disk_size"] = *taskResource.DiskSize
736-
}
737-
if taskResource.DiskType != nil {
738-
taskResourceSpec["disk_type"] = *taskResource.DiskType
739-
}
740-
if taskResource.Spec != nil {
741-
taskResourceSpec["spec"] = *taskResource.Spec
742-
}
743-
if taskResource.StorageType != nil {
744-
taskResourceSpec["storage_type"] = *taskResource.StorageType
745-
}
746-
if taskResource.RootSize != nil {
747-
taskResourceSpec["root_size"] = *taskResource.RootSize
748-
}
749-
if v, ok := clusterNodeMap["3"]; ok {
707+
taskResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
708+
taskResourceSpec["cpu"] = v.CpuNum
709+
if instance.Config.TaskResource != nil {
710+
taskResource := instance.Config.TaskResource
711+
taskResourceSpec["disk_size"] = taskResource.DiskSize
750712
taskResourceSpec["multi_disks"] = fetchMultiDisks(v, taskResource)
751713
}
714+
if v.StorageType != nil {
715+
taskResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
716+
}
717+
taskResourceSpec["spec"] = v.Spec
718+
taskResourceSpec["storage_type"] = v.RootStorageType
719+
taskResourceSpec["root_size"] = v.RootSize
752720
resourceSpec["task_resource_spec"] = []interface{}{taskResourceSpec}
753721
}
754722

755-
var commonCount int64
756-
if instance.Config.ComNodeSize != nil {
757-
commonCount = *instance.Config.ComNodeSize
758-
resourceSpec["common_count"] = commonCount
723+
if v, ok := clusterNodeNum["0"]; ok {
724+
resourceSpec["common_count"] = v
759725
}
760-
if commonCount != 0 && instance.Config.ComResource != nil {
761-
comResource := instance.Config.ComResource
726+
if v, ok := clusterNodeMap["0"]; ok && v != nil {
762727
comResourceSpec := make(map[string]interface{})
763-
if comResource.MemSize != nil {
764-
comResourceSpec["mem_size"] = *comResource.MemSize
765-
}
766-
if comResource.Cpu != nil {
767-
comResourceSpec["cpu"] = *comResource.Cpu
768-
}
769-
if comResource.DiskSize != nil {
770-
comResourceSpec["disk_size"] = *comResource.DiskSize
771-
}
772-
if comResource.DiskType != nil {
773-
comResourceSpec["disk_type"] = *comResource.DiskType
774-
}
775-
if comResource.Spec != nil {
776-
comResourceSpec["spec"] = *comResource.Spec
777-
}
778-
if comResource.StorageType != nil {
779-
comResourceSpec["storage_type"] = *comResource.StorageType
780-
}
781-
if comResource.RootSize != nil {
782-
comResourceSpec["root_size"] = *comResource.RootSize
783-
}
784-
if v, ok := clusterNodeMap["0"]; ok {
728+
comResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
729+
comResourceSpec["cpu"] = v.CpuNum
730+
if instance.Config.ComResource != nil {
731+
comResource := instance.Config.ComResource
732+
comResourceSpec["disk_size"] = comResource.DiskSize
785733
comResourceSpec["multi_disks"] = fetchMultiDisks(v, comResource)
786734
}
735+
if v.StorageType != nil {
736+
comResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
737+
}
738+
comResourceSpec["spec"] = v.Spec
739+
comResourceSpec["storage_type"] = v.RootStorageType
740+
comResourceSpec["root_size"] = v.RootSize
787741
resourceSpec["common_resource_spec"] = []interface{}{comResourceSpec}
788742
}
789743

0 commit comments

Comments
 (0)