From aa0eae8eda55245ff3a04a53db67c68e0c9617da Mon Sep 17 00:00:00 2001 From: jmdelafe <13242860+jmdelafe@users.noreply.github.com> Date: Tue, 14 May 2019 11:47:49 -0400 Subject: [PATCH] B #3280: Check clusters (#3317) * fix bug-3280 * B #3280: Import vCenter cluster as host needs to check existing OpenNebula clusters * B #3280: Import vCenter cluster as host needs to check existing OpenNebula clusters * fix bug-3280 Signed-off-by: jmdelafe <13242860+jmdelafe@users.noreply.github.com> * B #3280: Import vCenter cluster as host needs to check existing OpenNebula clusters Signed-off-by: jmdelafe <13242860+jmdelafe@users.noreply.github.com> * B #3280: Import vCenter cluster as host needs to check existing OpenNebula clusters Signed-off-by: jmdelafe <13242860+jmdelafe@users.noreply.github.com> --- src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb | 13 ++++++++++++- .../remotes/lib/vcenter_driver/vcenter_importer.rb | 5 +++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb b/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb index 187392a9c1..d95351d134 100644 --- a/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb +++ b/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb @@ -26,7 +26,18 @@ module OpenNebulaJSON return cluster_hash end - self.allocate(cluster_hash['name']) + # Check if cluster exists + cluster_pool = OpenNebula::ClusterPool.new(@client) + cluster_pool.info + cluster_pool.each do |cluster| + if cluster.name == cluster_hash['name'] + # Use existing cluster + @pe_id = cluster.id + else + # Create cluster + self.allocate(cluster_hash['name']) + end + end end def perform_action(template_json) diff --git a/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb b/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb index 88607750e3..a507c22201 100644 --- a/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb +++ b/src/vmm_mad/remotes/lib/vcenter_driver/vcenter_importer.rb @@ -476,6 +476,11 @@ module VCenterDriver answer = STDIN.gets.strip if !answer.empty? one_cluster_id = answer + else + # Check if the Cluster exists + cluster_list.each do |key, value| + one_cluster_id = key if value == "#{cluster[:cluster_name]}" + end end end