@@ -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