ManageIQ/manageiq-providers-ibm_cloud

View on GitHub
app/models/manageiq/providers/ibm_cloud/vpc/network_manager/cloud_network.rb

Summary

Maintainability
A
0 mins
Test Coverage
C
76%
class ManageIQ::Providers::IbmCloud::VPC::NetworkManager::CloudNetwork < ::CloudNetwork
  include ProviderObjectMixin

  supports :create
  supports :delete do
    if ext_management_system.nil?
      _("The Cloud Network is not connected to an active %{table}") % {
        :table => ui_lookup(:table => "ext_management_systems")
      }
    end
  end

  def self.raw_create_cloud_network(ext_management_system, options)
    ext_management_system.with_provider_connection do |connection|
      connection.vpc(:region => ext_management_system.parent_manager.provider_region)
                .request(:create_vpc, :name => options[:name])
    end
  rescue => err
    _log.error("cloud_network=[#{options[:name]}], error: #{err}")
    raise
  end

  def raw_delete_cloud_network(_options = {})
    with_provider_connection do |connection|
      connection.vpc(:region => ext_management_system.parent_manager.provider_region)
                .request(:delete_vpc, :id => ems_ref)
    end
  rescue => err
    notification_options = {
      :subject       => "[#{name}]",
      :error_message => err.to_s
    }
    Notification.create(:type => :cloud_network_delete_error, :options => notification_options)
    raise
  end
end