Project

General

Profile

« Previous | Next » 

Revision bd696be7

Added by Marek Hulán about 5 years ago

Fixes #26306 - support also importing unmanaged hosts

View differences:

app/controllers/compute_resources_vms_controller.rb
def import
@host = ComputeResourceHostImporter.new(
:compute_resource => @compute_resource,
:vm => @vm
:vm => @vm,
:managed => (params[:type] != 'unmanaged')
).host
load_vars_for_ajax
end
app/helpers/compute_resources_vms_helper.rb
def vm_import_action(vm, html_options = {})
return unless Host.for_vm(@compute_resource, vm).empty?
display_link_if_authorized(
_("Import"),
import_managed_link = display_link_if_authorized(
_("Import as managed Host"),
hash_for_import_compute_resource_vm_path(
:compute_resource_id => @compute_resource,
:id => vm.identity,
:type => 'managed'),
html_options
)
import_unmanaged_link = display_link_if_authorized(
_("Import as unmanaged Host"),
hash_for_import_compute_resource_vm_path(
:compute_resource_id => @compute_resource,
:id => vm.identity),
html_options
:id => vm.identity,
:type => 'unmanaged'),
html_options
)
import_managed_link + import_unmanaged_link
end
def vm_associate_action(vm)
app/services/compute_resource_host_importer.rb
self.vm = compute_resource.find_vm_by_uuid(opts[:uuid]) if opts[:uuid]
self.vm ||= opts.fetch(:vm)
self.host = Host::Managed.new(
:managed => true,
:managed => opts.key?(:managed) ? opts[:managed] : true,
:build => false,
:compute_resource => compute_resource,
:vm => vm
test/unit/compute_resource_host_importer_test.rb
end
let(:uuid) { '5032c8a5-9c5e-ba7a-3804-832a03e16381' }
context 'can import unmanaged hosts' do
let(:importer) do
ComputeResourceHostImporter.new(
:compute_resource => compute_resource,
:vm => vm,
:managed => false
)
end
test 'imported host is unmanaged' do
refute host.managed
end
end
context 'with existing domain' do
setup do
@domain = FactoryBot.create(:domain, :name => 'virt.bos.redhat.com')
......
'type' => 'VirtualE1000'
}
assert host.managed
assert_equal 'dhcp75-197', host.name
assert_equal uuid, host.uuid
assert_equal @domain, host.domain

Also available in: Unified diff