Ovirt provision fails with 'Value “1” isn’t a valid boolean, it should be “true” or “false”'

Problem:
oVirt provisioning fails with

Fog::Ovirt::Errors::OvirtEngineError: Ovirt client returned an error: Value “1” isn’t a valid boolean, it should be “true” or “false”

Expected outcome:

VM created

Foreman and Proxy versions:

1.22.1 (F+Proxy

Foreman and Proxy plugin versions:

|foreman-tasks|0.15.11|
|foreman_discovery|15.0.1|
|foreman_setup|6.0.0|
|foreman_templates|6.0.3|

Distribution and version:

oVirt: 3.5.4.2-1.el7.centos
Foreman: CentOS 7.4

Other relevant data:

I know oVirt is quite old and I rarely use the feature these days. This was last working in Foreman 1.18 (I did upgrade from 1.18 all the way to 1.22 on Oct 23rd last year)

2020-01-20T15:16:09 [W|app|e7e6ca90] Failed to create a compute oVirt (oVirt) instance <...>: Ovirt client returned an error: Value "1" isn't a valid boolean, it should be "true" or "false"
Fog::Ovirt::Errors::OvirtEngineError: Ovirt client returned an error: Value "1" isn't a valid boolean, it should be "true" or "false"
/opt/theforeman/tfm/root/usr/share/gems/gems/fog-ovirt-1.1.5/lib/fog/ovirt/compute.rb:45:in `rescue in method_missing'
/opt/theforeman/tfm/root/usr/share/gems/gems/fog-ovirt-1.1.5/lib/fog/ovirt/compute.rb:34:in `method_missing'
/opt/theforeman/tfm/root/usr/share/gems/gems/fog-ovirt-1.1.5/lib/fog/ovirt/requests/compute/v3/create_vm.rb:7:in `create_vm'
/opt/theforeman/tfm/root/usr/share/gems/gems/fog-ovirt-1.1.5/lib/fog/ovirt/models/compute/server.rb:179:in `save'
/opt/theforeman/tfm/root/usr/share/gems/gems/fog-core-2.1.0/lib/fog/core/collection.rb:50:in `create'
/usr/share/foreman/app/models/compute_resource.rb:195:in `create_vm'
/usr/share/foreman/app/models/compute_resources/foreman/model/ovirt.rb:282:in `create_vm'
/usr/share/foreman/app/models/concerns/orchestration/compute.rb:91:in `setCompute'
/usr/share/foreman/app/models/concerns/orchestration.rb:222:in `execute'
/usr/share/foreman/app/models/concerns/orchestration.rb:145:in `block in process'
/usr/share/foreman/app/models/concerns/orchestration.rb:137:in `each'
/usr/share/foreman/app/models/concerns/orchestration.rb:137:in `process'
/usr/share/foreman/app/models/concerns/orchestration.rb:44:in `around_save_orchestration'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:118:in `block in run_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:136:in `run_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activesupport-5.2.1/lib/active_support/callbacks.rb:816:in `_run_save_callbacks'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/callbacks.rb:342:in `create_or_update'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/persistence.rb:275:in `save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/validations.rb:46:in `save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:310:in `block (2 levels) in save'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/transactions.rb:387:in `block in with_transaction_returning_status'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:254:in `block in transaction'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/activerecord-5.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:239:in `block in within_new_transaction'
[...]
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/urlmap.rb:53:in `each'
/opt/theforeman/tfm-ror52/root/usr/share/gems/gems/rack-2.0.6/lib/rack/urlmap.rb:53:in `call'
/usr/share/passenger/phusion_passenger/rack/thread_handler_extension.rb:74:in `process_request'
/usr/share/passenger/phusion_passenger/request_handler/thread_handler.rb:141:in `accept_and_process_next_request'
/usr/share/passenger/phusion_passenger/request_handler/thread_handler.rb:109:in `main_loop'
/usr/share/passenger/phusion_passenger/request_handler.rb:455:in `block (3 levels) in start_threads'
/opt/theforeman/tfm/root/usr/share/gems/gems/logging-2.2.2/lib/logging/diagnostic_context.rb:474:in `block in create_with_logging_context'
2020-01-20T15:16:09 [W|app|e7e6ca90] Rolling back due to a problem: [#<Orchestration::Task:0x00007f8197368808 @name="Set up compute instance <...>",
 @id="Set up compute instance <...>", 
 @status="failed", @priority=3, 
 @action=[
 #<Host::Managed id: nil, name: "<...>", last_compile: nil, last_report: nil, updated_at: nil, created_at: nil, root_pass: "<...>", 
architecture_id: 1, operatingsystem_id: 22, environment_id: 1, ptable_id: 64, medium_id: 15, build: true, comment: "",
disk: "", installed_at: nil, model_id: nil, hostgroup_id: 18, owner_id: 7, owner_type: "User", enabled: true, puppet_ca_proxy_id: 1, 
managed: true, use_image: nil, image_file: nil, uuid: nil, compute_resource_id: 1, puppet_proxy_id: 1, certname: nil, 
image_id: nil, organization_id: 2, location_id: 1, type: "Host::Managed", otp: nil, realm_id: nil, compute_profile_id: 1, 
provision_method: "build", grub_pass: "<...>", discovery_rule_id: nil, global_status: 0, lookup_value_matcher: "fqdn=<...>", 
pxe_loader: "PXELinux BIOS", openscap_proxy_id: nil, initiated_at: nil, build_errors: nil>, :setCompute
], 
@created=1579529769.137918, @timestamp=2020-01-20 14:16:09 UTC>]

Hi :slight_smile:
Can you share the steps for creating the host? did you do it from hammer CLI? or the UI? if it’s from hammer, can you share the command line? if not, can you share all the parameters you used the create the host and their values?
thanks.

I use the UI; so just ‘create host’.

As for the parameters, sorry I seem to have forgotten them:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"<...>", "host"=>{"name"=>"vpn", "organization_id"=>"2", "location_id"=>"1", "hostgroup_id"=>"18", "compute_resource_id"=>"1", "compute_profile_id"=>"1", "config_group_ids"=>[""], "puppetclass_ids"=>[""], "managed"=>"true", "progress_report_id"=>"[FILTERED]", "type"=>"Host::Managed", "interfaces_attributes"=>{"0"=>{"_destroy"=>"0", "type"=>"Nic::Managed", "mac"=>"", "identifier"=>"", "name"=>"<...>", "domain_id"=>"1", "subnet_id"=>"1", "subnet6_id"=>"", "ip"=>"<....>", "ip6"=>"", "managed"=>"1", "primary"=>"1", "provision"=>"1", "virtual"=>"0", "tag"=>"", "attached_to"=>"", "compute_attributes"=>{"name"=>"", "network"=>"c8450c61-dddf-4f9c-9a12-52afc6974b95", "interface"=>"e1000"}}}, "compute_attributes"=>{"cluster"=>"00000001-0001-0001-0001-00000000032f", "template"=>"", "instance_type"=>"", "cores"=>"1", "sockets"=>"1", "memory"=>"2147483648", "ha"=>"1", "start"=>"1", "volumes_attributes"=>{"0"=>{"_delete"=>"", "size_gb"=>"50", "storage_domain"=>"39e368e5-6983-460f-8aed-a2f67122a2ca", "id"=>"", "preallocate"=>"0", "wipe_after_delete"=>"0", "interface"=>"", "bootable"=>"true"}}}, "architecture_id"=>"1", "operatingsystem_id"=>"22", "provision_method"=>"build", "build"=>"1", "medium_id"=>"15", "ptable_id"=>"64", "pxe_loader"=>"PXELinux BIOS", "disk"=>"", "root_pass"=>"[FILTERED]", "is_owned_by"=>"7-Users", "enabled"=>"1", "comment"=>"", "overwrite"=>"true"}}