app/models/manageiq/providers/nuage/network_manager.rb
class ManageIQ::Providers::Nuage::NetworkManager < ManageIQ::Providers::NetworkManager
include SupportsFeatureMixin
supports :cloud_subnet_create
supports :create
supports :update
include Vmdb::Logging
include ManageIQ::Providers::Nuage::ManagerMixin
def self.ems_type
@ems_type ||= "nuage_network".freeze
end
def self.description
@description ||= "Nuage Network Manager".freeze
end
def queue_name_for_ems_refresh
queue_name
end
def authentications_to_validate
at = [:default]
at << :amqp if has_authentication_type?(:amqp)
at
end
def supported_auth_types
%w(default amqp)
end
class << self
def event_monitor_class
ManageIQ::Providers::Nuage::NetworkManager::EventCatcher
end
def l2_cloud_subnet_type
'ManageIQ::Providers::Nuage::NetworkManager::CloudSubnet::L2'
end
def l3_cloud_subnet_type
'ManageIQ::Providers::Nuage::NetworkManager::CloudSubnet::L3'
end
def floating_cloud_network_type
'ManageIQ::Providers::Nuage::NetworkManager::CloudNetwork::Floating'
end
def bridge_network_port_type
'ManageIQ::Providers::Nuage::NetworkManager::NetworkPort::Bridge'
end
def container_network_port_type
'ManageIQ::Providers::Nuage::NetworkManager::NetworkPort::Container'
end
def host_network_port_type
'ManageIQ::Providers::Nuage::NetworkManager::NetworkPort::Host'
end
def vm_network_port_type
'ManageIQ::Providers::Nuage::NetworkManager::NetworkPort::Vm'
end
end
def name
self[:name]
end
def cloud_tenants
::CloudTenant.where(:ems_id => id)
end
def l3_cloud_subnets
cloud_subnets.where(:type => self.class.l3_cloud_subnet_type)
end
def l2_cloud_subnets
cloud_subnets.where(:type => self.class.l2_cloud_subnet_type)
end
def cloud_subnets_by_extra_attr(key, value)
cloud_subnets.where('extra_attributes ~* ?', "#{key}: #{value}\n")
end
def ansible_env_vars
{}
end
def ansible_extra_vars(extra = {})
{
:nuage_auth => {
:api_username => default_authentication.userid,
:api_password => default_authentication.password,
:api_enterprise => 'csp', # TODO(miha-plesko): can this really be hard-coded?
:api_version => api_version.to_s.sub('.', '_'),
:api_url => self.class.base_url(
default_endpoint.security_protocol,
default_endpoint.hostname,
default_endpoint.port
)
}
}.merge(extra)
end
def ansible_root
ManageIQ::Providers::Nuage::Engine.root.join("content/ansible_runner")
end
def playbook(name)
ansible_root.join(name)
end
def create_cloud_subnet(options)
self.class::CloudSubnet.raw_create_cloud_subnet(self, options)
end
end