diff --git a/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb b/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb index 187392a9c1d..d95351d1347 100644 --- a/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb +++ b/src/sunstone/models/OpenNebulaJSON/ClusterJSON.rb @@ -26,7 +26,18 @@ def create(template_json) 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 88607750e38..a507c22201e 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 @@ def self.import_clusters(con_ops, options) 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