Skip to content

Commit 80d0615

Browse files
author
mikatong
committed
update read
1 parent 60bcc45 commit 80d0615

File tree

2 files changed

+68
-119
lines changed

2 files changed

+68
-119
lines changed

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: 56 additions & 110 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,81 @@ 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["mem_size"] = int(*v.MemSize / 1024 / 1024)
665+
masterResourceSpec["cpu"] = v.CpuNum
666+
if instance.Config.MasterResource != nil {
667+
masterResource := instance.Config.MasterResource
664668
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 {
679669
masterResourceSpec["multi_disks"] = fetchMultiDisks(v, masterResource)
670+
680671
}
672+
masterResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
673+
masterResourceSpec["spec"] = v.Spec
674+
masterResourceSpec["storage_type"] = v.RootStorageType
675+
masterResourceSpec["root_size"] = v.RootSize
681676
resourceSpec["master_resource_spec"] = []interface{}{masterResourceSpec}
682677
}
683678

684-
var coreCount int64
685-
if instance.Config.CoreNodeSize != nil {
686-
coreCount = *instance.Config.CoreNodeSize
687-
resourceSpec["core_count"] = coreCount
679+
if v, ok := clusterNodeNum["2"]; ok {
680+
resourceSpec["core_count"] = v
688681
}
689-
if coreCount != 0 && instance.Config.CoreResource != nil {
690-
coreResource := instance.Config.CoreResource
682+
if v, ok := clusterNodeMap["2"]; ok && v != nil {
691683
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 {
684+
coreResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
685+
coreResourceSpec["cpu"] = v.CpuNum
686+
if instance.Config.CoreResource != nil {
687+
coreResource := instance.Config.CoreResource
699688
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 {
714689
coreResourceSpec["multi_disks"] = fetchMultiDisks(v, coreResource)
715690
}
716-
691+
coreResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
692+
coreResourceSpec["spec"] = v.Spec
693+
coreResourceSpec["storage_type"] = v.RootStorageType
694+
coreResourceSpec["root_size"] = v.RootSize
717695
resourceSpec["core_resource_spec"] = []interface{}{coreResourceSpec}
718696
}
719697

720-
var taskCount int64
721-
if instance.Config.TaskNodeSize != nil {
722-
taskCount = *instance.Config.TaskNodeSize
723-
resourceSpec["task_count"] = taskCount
698+
if v, ok := clusterNodeNum["3"]; ok {
699+
resourceSpec["task_count"] = v
724700
}
725-
if taskCount != 0 && instance.Config.TaskResource != nil {
726-
taskResource := instance.Config.TaskResource
701+
if v, ok := clusterNodeMap["3"]; ok && v != nil {
727702
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 {
703+
taskResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
704+
taskResourceSpec["cpu"] = v.CpuNum
705+
if instance.Config.TaskResource != nil {
706+
taskResource := instance.Config.TaskResource
735707
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 {
750708
taskResourceSpec["multi_disks"] = fetchMultiDisks(v, taskResource)
751709
}
710+
taskResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
711+
taskResourceSpec["spec"] = v.Spec
712+
taskResourceSpec["storage_type"] = v.RootStorageType
713+
taskResourceSpec["root_size"] = v.RootSize
752714
resourceSpec["task_resource_spec"] = []interface{}{taskResourceSpec}
753715
}
754716

755-
var commonCount int64
756-
if instance.Config.ComNodeSize != nil {
757-
commonCount = *instance.Config.ComNodeSize
758-
resourceSpec["common_count"] = commonCount
717+
if v, ok := clusterNodeNum["0"]; ok {
718+
resourceSpec["common_count"] = v
759719
}
760-
if commonCount != 0 && instance.Config.ComResource != nil {
761-
comResource := instance.Config.ComResource
720+
if v, ok := clusterNodeMap["0"]; ok && v != nil {
762721
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 {
722+
comResourceSpec["mem_size"] = int(*v.MemSize / 1024 / 1024)
723+
comResourceSpec["cpu"] = v.CpuNum
724+
if instance.Config.ComResource != nil {
725+
comResource := instance.Config.ComResource
770726
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 {
785727
comResourceSpec["multi_disks"] = fetchMultiDisks(v, comResource)
786728
}
729+
comResourceSpec["disk_type"] = translateDiskType(*v.StorageType)
730+
comResourceSpec["spec"] = v.Spec
731+
comResourceSpec["storage_type"] = v.RootStorageType
732+
comResourceSpec["root_size"] = v.RootSize
787733
resourceSpec["common_resource_spec"] = []interface{}{comResourceSpec}
788734
}
789735

0 commit comments

Comments
 (0)