On 07/28/2017 04:53 PM, Davide Ferrari wrote:
On 28/07/17 16:14, Juan Hernández wrote:
> Ah, I see, in your command you are listing Gluster volumes, not
> storage domains. They are different kinds of objects inside oVirt, and
> thus they have different identifiers. That is completely normal. If
> you want to get the identifiers of the storage domains use "list
> storagedomains".
>
Oh, got it. Thanks for the tip!
>> Anyway, I've replaced the storage domain UUID with the one that works
>> with the REST API and something improved: now I don't get the 404
>> from ovirt and the machine is not deleted BUT: I've added 2 disks
>> (20GB and 30GB) plus the base template 8Gb disk, and I get a VM with
>> four (4) 8GB disks, and the bootable one is a random disk
>>
>> I've attached the engine.log with the (I hope) relevant messages
>>
>
> Are you adding those disks and template using the Foreman CLI? Can you
> share the commands that you are using?
>
Yes, I'm using Hammer CLI
hammer host create --architecture-id=1 --domain billy.preprod
--operatingsystem-id=7 --hostgroup-title Billy/Preprod --name foobar03
--partition-table-id=192 --provision-method image --root-password
billy12345 --compute-resource 'LeaseWeb VMs prod' --image CentOS_7.3
--compute-attributes
cluster=00000002-0002-0002-0002-000000000345,cores=2,memory=4294967296,start=1
--volume
'"size_gb=20,storage_domain=ba2bd397-9222-424d-aecc-eb652c0169d9,bootable=0"'
--volume
'"size_gb=30,storage_domain=ba2bd397-9222-424d-aecc-eb652c0169d9,bootable=0"'
> Also, can you share again the relevant part of the
> /var/log/ovirt-engine/ssl_access_log file? There we can see what
> requests are actually sent to the oVirt engine.
These are the requests arriving from Foreman:
192.168.10.158 - - [28/Jul/2017:14:19:42 +0000] "GET
/ovirt-engine/api/vms/24831007-97ad-4f6d-9009-e6fb68a585f9 HTTP/1.1" 200
2865
192.168.10.158 - - [28/Jul/2017:14:26:19 +0000] "GET
/ovirt-engine/api/datacenters?search= HTTP/1.1" 200 408
192.168.10.158 - - [28/Jul/2017:14:26:19 +0000] "GET
/ovirt-engine/api/operatingsystems HTTP/1.1" 200 2943
192.168.10.158 - - [28/Jul/2017:14:26:20 +0000] "GET
/ovirt-engine/api/datacenters?search= HTTP/1.1" 200 408
192.168.10.158 - - [28/Jul/2017:14:26:20 +0000] "GET
/ovirt-engine/api/operatingsystems HTTP/1.1" 200 2943
192.168.10.158 - - [28/Jul/2017:14:26:20 +0000] "GET
/ovirt-engine/api/datacenters?search= HTTP/1.1" 200 408
192.168.10.158 - - [28/Jul/2017:14:26:20 +0000] "GET
/ovirt-engine/api/clusters/ HTTP/1.1" 200 1091
192.168.10.158 - - [28/Jul/2017:14:26:20 +0000] "POST
/ovirt-engine/api/vms HTTP/1.1" 202 1612
192.168.10.158 - - [28/Jul/2017:14:26:22 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2256
192.168.10.158 - - [28/Jul/2017:14:26:22 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/nics
HTTP/1.1" 200 409
192.168.10.158 - - [28/Jul/2017:14:26:22 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2256
192.168.10.158 - - [28/Jul/2017:14:26:23 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2256
192.168.10.158 - - [28/Jul/2017:14:26:26 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2256
192.168.10.158 - - [28/Jul/2017:14:26:30 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2252
192.168.10.158 - - [28/Jul/2017:14:26:30 +0000] "DELETE
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/nics/bf0dabd2-796b-4b07-bd69-db3915409939
HTTP/1.1" 200 119
192.168.10.158 - - [28/Jul/2017:14:26:30 +0000] "POST
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/nics
HTTP/1.1" 201 430
192.168.10.158 - - [28/Jul/2017:14:26:31 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/nics
HTTP/1.1" 200 442
192.168.10.158 - - [28/Jul/2017:14:26:31 +0000] "GET /ovirt-engine/api/
HTTP/1.1" 200 873
192.168.10.158 - - [28/Jul/2017:14:26:31 +0000] "GET
/ovirt-engine/api/datacenters/00000001-0001-0001-0001-0000000003e3
HTTP/1.1" 200 396
192.168.10.158 - - [28/Jul/2017:14:26:31 +0000] "POST
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 201 674
192.168.10.158 - - [28/Jul/2017:14:26:32 +0000] "POST
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 201 676
192.168.10.158 - - [28/Jul/2017:14:26:33 +0000] "POST
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 201 677
192.168.10.158 - - [28/Jul/2017:14:26:33 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 200 1136
192.168.10.158 - - [28/Jul/2017:14:26:34 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2668
192.168.10.158 - - [28/Jul/2017:14:26:34 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2668
192.168.10.158 - - [28/Jul/2017:14:26:34 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 200 1136
192.168.10.158 - - [28/Jul/2017:14:26:36 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2668
192.168.10.158 - - [28/Jul/2017:14:26:36 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 200 1136
192.168.10.158 - - [28/Jul/2017:14:26:38 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2669
192.168.10.158 - - [28/Jul/2017:14:26:38 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 200 1138
192.168.10.158 - - [28/Jul/2017:14:26:42 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2660
192.168.10.158 - - [28/Jul/2017:14:26:43 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
HTTP/1.1" 200 1125
192.168.10.158 - - [28/Jul/2017:14:26:43 +0000] "POST
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/start
HTTP/1.1" 200 616
192.168.10.158 - - [28/Jul/2017:14:26:44 +0000] "GET
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7 HTTP/1.1" 200
2804
There are 3 POSTs to /disks so it seems that the culprit is indeed
Foreman, but looking at Foreman's production.log I cannot see much more
than this (even with logging level set to debug):
2017-07-28 16:26:20 [app] [I] Parameters:
{"host"=>{"name"=>"foobar03",
"architecture_id"=>1, "domain_id"=>9,
"operatingsystem_id"=>7, "ptable_id"=>192,
"compute_resource_id"=>5, "hos
tgroup_id"=>34, "image_id"=>6, "build"=>true,
"enabled"=>true,
"provision_method"=>"image", "managed"=>true,
"compute_attributes"=>{"cluster"=>"00000002-0002-0002-0002-000000000345",
"c
ores"=>"2", "memory"=>"4294967296",
"start"=>"1",
"volumes_attributes"=>{"0"=>{"\"size_gb"=>"20",
"storage_domain"=>"ba2bd397-9222-424d-aecc-eb652c0169d9",
"bootable"=>"0"}, "1"=>{"\"si
ze_gb"=>"30",
"storage_domain"=>"ba2bd397-9222-424d-aecc-eb652c0169d9",
"bootable"=>"0"}}}, "overwrite"=>true,
"host_parameters_attributes"=>[],
"interfaces_attributes"=>[], "root_pass"
=>"[FILTERED]"}, "apiv"=>"v2"}
The oVirt access log indeed shows that three disks are added to the
virtual machine. May it be that Foreman thinks that it has to explicitly
add a boot disk? Ohad, Ivan, any idea?
More over, looking at
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks it
throws a 404, the endpoint seems to be
/ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/diskattachments
while /ovirt-engine/api/vms/47f5035a-696c-4578-ace9-b23d865c6aa7/disks
seems to work only with API v3. Maybe I should change the base URL for
the ovirt's API in foreman config, shouldn't I?
I think you don't need to change anything there. Foreman uses 'rbovirt',
and 'rbovirt' explicitly requests version 3 of the API using the
'Version: 3' header.