@@ -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,81 @@ 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 ["mem_size" ] = int (* v .MemSize / 1024 / 1024 )
665
+ masterResourceSpec ["cpu" ] = v .CpuNum
666
+ if instance .Config .MasterResource != nil {
667
+ masterResource := instance .Config .MasterResource
664
668
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 {
679
669
masterResourceSpec ["multi_disks" ] = fetchMultiDisks (v , masterResource )
670
+
680
671
}
672
+ masterResourceSpec ["disk_type" ] = translateDiskType (* v .StorageType )
673
+ masterResourceSpec ["spec" ] = v .Spec
674
+ masterResourceSpec ["storage_type" ] = v .RootStorageType
675
+ masterResourceSpec ["root_size" ] = v .RootSize
681
676
resourceSpec ["master_resource_spec" ] = []interface {}{masterResourceSpec }
682
677
}
683
678
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
688
681
}
689
- if coreCount != 0 && instance .Config .CoreResource != nil {
690
- coreResource := instance .Config .CoreResource
682
+ if v , ok := clusterNodeMap ["2" ]; ok && v != nil {
691
683
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
699
688
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 {
714
689
coreResourceSpec ["multi_disks" ] = fetchMultiDisks (v , coreResource )
715
690
}
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
717
695
resourceSpec ["core_resource_spec" ] = []interface {}{coreResourceSpec }
718
696
}
719
697
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
724
700
}
725
- if taskCount != 0 && instance .Config .TaskResource != nil {
726
- taskResource := instance .Config .TaskResource
701
+ if v , ok := clusterNodeMap ["3" ]; ok && v != nil {
727
702
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
735
707
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 {
750
708
taskResourceSpec ["multi_disks" ] = fetchMultiDisks (v , taskResource )
751
709
}
710
+ taskResourceSpec ["disk_type" ] = translateDiskType (* v .StorageType )
711
+ taskResourceSpec ["spec" ] = v .Spec
712
+ taskResourceSpec ["storage_type" ] = v .RootStorageType
713
+ taskResourceSpec ["root_size" ] = v .RootSize
752
714
resourceSpec ["task_resource_spec" ] = []interface {}{taskResourceSpec }
753
715
}
754
716
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
759
719
}
760
- if commonCount != 0 && instance .Config .ComResource != nil {
761
- comResource := instance .Config .ComResource
720
+ if v , ok := clusterNodeMap ["0" ]; ok && v != nil {
762
721
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
770
726
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 {
785
727
comResourceSpec ["multi_disks" ] = fetchMultiDisks (v , comResource )
786
728
}
729
+ comResourceSpec ["disk_type" ] = translateDiskType (* v .StorageType )
730
+ comResourceSpec ["spec" ] = v .Spec
731
+ comResourceSpec ["storage_type" ] = v .RootStorageType
732
+ comResourceSpec ["root_size" ] = v .RootSize
787
733
resourceSpec ["common_resource_spec" ] = []interface {}{comResourceSpec }
788
734
}
789
735
0 commit comments