Revision bd696be7
Added by Marek Hulán about 5 years ago
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
Fixes #26306 - support also importing unmanaged hosts