@@ -598,6 +598,7 @@ func resourceTencentCloudEmrClusterRead(d *schema.ResourceData, meta interface{}
598
598
599
599
_ = d .Set ("instance_id" , instanceId )
600
600
clusterNodeMap := make (map [string ]* emr.NodeHardwareInfo )
601
+ clusterNodeNum := make (map [string ]int )
601
602
err = resource .Retry (tccommon .ReadRetryTimeout , func () * resource.RetryError {
602
603
result , err := emrService .DescribeClusterNodes (ctx , instanceId , "all" , "all" , 0 , 10 )
603
604
@@ -611,8 +612,16 @@ func resourceTencentCloudEmrClusterRead(d *schema.ResourceData, meta interface{}
611
612
node := item
612
613
// 节点类型 0:common节点;1:master节点;2:core节点;3:task节点
613
614
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
+
615
623
}
624
+
616
625
}
617
626
}
618
627
@@ -646,144 +655,89 @@ func resourceTencentCloudEmrClusterRead(d *schema.ResourceData, meta interface{}
646
655
}
647
656
resourceSpec := make (map [string ]interface {})
648
657
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
653
660
}
654
- if masterCount != 0 && instance . Config . MasterResource != nil {
655
- masterResource := instance . Config . MasterResource
661
+
662
+ if v , ok := clusterNodeMap [ "1" ]; ok && v != nil {
656
663
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
679
669
masterResourceSpec ["multi_disks" ] = fetchMultiDisks (v , masterResource )
670
+
671
+ }
672
+ if v .StorageType != nil {
673
+ masterResourceSpec ["disk_type" ] = translateDiskType (* v .StorageType )
680
674
}
675
+ masterResourceSpec ["spec" ] = v .Spec
676
+ masterResourceSpec ["storage_type" ] = v .RootStorageType
677
+ masterResourceSpec ["root_size" ] = v .RootSize
681
678
resourceSpec ["master_resource_spec" ] = []interface {}{masterResourceSpec }
682
679
}
683
680
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
688
683
}
689
- if coreCount != 0 && instance .Config .CoreResource != nil {
690
- coreResource := instance .Config .CoreResource
684
+ if v , ok := clusterNodeMap ["2" ]; ok && v != nil {
691
685
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
714
691
coreResourceSpec ["multi_disks" ] = fetchMultiDisks (v , coreResource )
715
692
}
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
717
699
resourceSpec ["core_resource_spec" ] = []interface {}{coreResourceSpec }
718
700
}
719
701
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
724
704
}
725
- if taskCount != 0 && instance .Config .TaskResource != nil {
726
- taskResource := instance .Config .TaskResource
705
+ if v , ok := clusterNodeMap ["3" ]; ok && v != nil {
727
706
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
750
712
taskResourceSpec ["multi_disks" ] = fetchMultiDisks (v , taskResource )
751
713
}
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
752
720
resourceSpec ["task_resource_spec" ] = []interface {}{taskResourceSpec }
753
721
}
754
722
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
759
725
}
760
- if commonCount != 0 && instance .Config .ComResource != nil {
761
- comResource := instance .Config .ComResource
726
+ if v , ok := clusterNodeMap ["0" ]; ok && v != nil {
762
727
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
785
733
comResourceSpec ["multi_disks" ] = fetchMultiDisks (v , comResource )
786
734
}
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
787
741
resourceSpec ["common_resource_spec" ] = []interface {}{comResourceSpec }
788
742
}
789
743
0 commit comments