ManageIQ/manageiq-providers-nuage

View on GitHub
app/models/manageiq/providers/nuage/network_manager/floating_ip.rb

Summary

Maintainability
A
1 hr
Test Coverage
A
100%
class ManageIQ::Providers::Nuage::NetworkManager::FloatingIp < ::FloatingIp
  include ManageIQ::Providers::Nuage::AnsibleCrudMixin

  supports :delete

  def delete_floating_ip_queue(userid)
    task_opts = {
      :action => "deleting Floating Ip for user #{userid}",
      :userid => userid
    }
    queue_opts = {
      :class_name  => self.class.name,
      :method_name => 'delete_floating_ip',
      :instance_id => id,
      :priority    => MiqQueue::NORMAL_PRIORITY,
      :role        => 'ems_operations',
      :zone        => ext_management_system.my_zone,
      :args        => []
    }
    MiqTask.generic_action_with_callback(task_opts, queue_opts)
  end

  # TODO: Move to core
  def delete_floating_ip
    raw_delete_floating_ip
  end

  def raw_delete_floating_ip
    $nuage_log.info("Deleting Floating Ip (ems_ref = #{ems_ref})")

    response = Ansible::Runner.run(
      ext_management_system.ansible_env_vars,
      ext_management_system.ansible_extra_vars(:id => ems_ref),
      ext_management_system.playbook('remove-floating-ip.yml')
    )
    self.class.ansible_raise_for_status(response)

    $nuage_log.info("Done deleting Floating Ip (ems_ref = #{ems_ref})")
  rescue StandardError => e
    $nuage_log.error("Error deleting Floating Ip: #{e}")
    raise MiqException::MiqCloudSubnetDeleteError
  end
end