[ovirt-users] Re: Inconsistencies beteween WebUI, API read verbs and API write verbs

2019-04-17 Thread Baptiste Agasse
Hello,

- On 16 Apr, 2019, at 20:24, Ondra Machacek omach...@redhat.com wrote:

> Hello,
> 
> instance type module was merged into Ansible 2.8:
> 
>  https://github.com/ansible/ansible/pull/54782

Nice ! Thanks for your responsiveness and for working on this ! Sadly, I think 
there is some bugs, I found at least two [6] [7] when reading the code few 
minutes to see if attributes we wanted to manage are present. I will test it 
and report what I will found when I will test it. I've a long flight at the end 
of the week it's a good candidate to pass the time faster ;)

> 
> You can try it, if all is working fine for you.
> 
> But the issue you had is just missing header 'All-content: true', which
> enable listing all attributes.
> 
> $ curl -H 'All-content: true' -u user@profile:password -k
> https://fqdn/ovirt-engine/api/instancetypes

I made my tests with the python SDK, I didn't see any references to this header 
in docs that I had read, thank you for the pointer. Just after your mail the 
only references I found about it for the python sdk is just what returns this 
github search [8], so I tried the following:

[...]
>>> instance_types_service.list(search='name=C1-Large-BIOS', all_content=True)  
>>> 
>>>   
[]
>>> instance_types_service.list(search='name=C1-Large-UEFI', all_content=True)  
>>>  
[]
>>> instance_types_service.list(search='name=C1-Large-BIOS', 
>>> all_content=True)[0].virtio_scsi
>>> instance_types_service.list(search='name=C1-Large-UEFI', 
>>> all_content=True)[0].bios
>>> instance_types_service.list(search='name=C1-Large-BIOS', 
>>> all_content=True)[0].virtio_scsi
>>> instance_types_service.list(search='name=C1-Large-UEFI', 
>>> all_content=True)[0].bios
>>>

But it returns nothing. So I tried the curl command that you provided above, I 
can see the virtio_scsi attribute (that is not present if 'All-content: true' 
header is not set), but I cannot see any bios reference for an instance type 
where I defined a different bios type than the default via WebUI. So for me, 
two conclusion now:

* The ovirt python sdk don't pass the 'All-content: true' header on instance 
type read operations
* There is some inconsistencies between WebUI and API (at least for bios 
attribute)

I forgot to mention that I make my tests on the last ovirt-orb 4.3 version 
(4.3.0.4-1.el7)

Have a nice day.

Cheers.

> Ondra
> 
> On 16/04/2019 16:26, Baptiste Agasse wrote:
>> Hi All,
>> 
>> As I stated in a previous thread, we use instances types and wanted to 
>> automate
>> some parts to manage it [1]. Thansk to ovirt-orb/lago and pointers given in 
>> the
>> last thread, I'm working on ansible an module to manage ovirt instance types,
>> but I'm facing some troubles for some of instance type attributes. From the
>> API, I don't have access to all fields provided via WebUI (eg: Custom 
>> Emulated
>> Machine), and it seems that some fields can be added/updated via the API but
>> are not part of the response when you read an instance type (eg: VirtIO-SCSI
>> Enabled). Provided examples are not exhaustive. I tried to find my way in the
>> oVirt engine code-base to see if the fix will be easy for a non java 
>> developer
>> like me. I find, I think, that it seems to be some API definitions for 
>> instance
>> type [2] that define, if I understand it well, all verbs that can be applied 
>> to
>> each resource and what field can be put when adding an instance type, but
>> nothing about fields to be included when you read a resource (and I'm not 
>> sure
>> if its related to v4 API). I find also some java code [3] [4] that seems
>> related to this but As I'm not a java developer, its a little bit difficult 
>> for
>> me to find my path in it. For me this inconsistencies are a bug, but as you
>> stated that instance types are in deep maintenance mode, do you think that 
>> bug
>> will get some attention ?
>> 
>> My objective is to have a ansible module that manage the hardware/bios 
>> related
>> stuff (memory, boot sequence, scsi controller, bios type, almost all the
>> things) and HA for instance type.
>> 
>> Have a nice day.
>> 
>> Cheers.
>> 
>> [1]:
>> https://lists.ovirt.org/archives/list/users@ovirt.org/message/TJAXYBMSIAAAYLAYCSLOTONY54WT7K3O/
>> [2]:
>> https://github.com/oVirt/ovirt-engine/blob/master/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml#L3990
>> [3]:
>> https://github.com/oVirt/ovirt-engine/blob/ede62008318d924556bc9dfc5710d90e9519670d/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendInstanceTypesResource.java
>> [4]:
>> https://github.com/oVirt/ovirt-engine/blob/ede62008318d924556bc9dfc5710d90e9519670d/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/InstanceTypeMapper.java
>> [5]:
>> 

[ovirt-users] Re: Inconsistencies beteween WebUI, API read verbs and API write verbs

2019-04-16 Thread Ondra Machacek

Hello,

instance type module was merged into Ansible 2.8:

 https://github.com/ansible/ansible/pull/54782

You can try it, if all is working fine for you.

But the issue you had is just missing header 'All-content: true', which 
enable listing all attributes.


$ curl -H 'All-content: true' -u user@profile:password -k 
https://fqdn/ovirt-engine/api/instancetypes


Ondra

On 16/04/2019 16:26, Baptiste Agasse wrote:

Hi All,

As I stated in a previous thread, we use instances types and wanted to automate 
some parts to manage it [1]. Thansk to ovirt-orb/lago and pointers given in the 
last thread, I'm working on ansible an module to manage ovirt instance types, 
but I'm facing some troubles for some of instance type attributes. From the 
API, I don't have access to all fields provided via WebUI (eg: Custom Emulated 
Machine), and it seems that some fields can be added/updated via the API but 
are not part of the response when you read an instance type (eg: VirtIO-SCSI 
Enabled). Provided examples are not exhaustive. I tried to find my way in the 
oVirt engine code-base to see if the fix will be easy for a non java developer 
like me. I find, I think, that it seems to be some API definitions for instance 
type [2] that define, if I understand it well, all verbs that can be applied to 
each resource and what field can be put when adding an instance type, but 
nothing about fields to be included when you read a resource (and I'm not sure 
if its related to v4 API). I find also some java code [3] [4] that seems 
related to this but As I'm not a java developer, its a little bit difficult for 
me to find my path in it. For me this inconsistencies are a bug, but as you 
stated that instance types are in deep maintenance mode, do you think that bug 
will get some attention ?

My objective is to have a ansible module that manage the hardware/bios related 
stuff (memory, boot sequence, scsi controller, bios type, almost all the 
things) and HA for instance type.

Have a nice day.

Cheers.

[1]: 
https://lists.ovirt.org/archives/list/users@ovirt.org/message/TJAXYBMSIAAAYLAYCSLOTONY54WT7K3O/
[2]: 
https://github.com/oVirt/ovirt-engine/blob/master/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml#L3990
[3]: 
https://github.com/oVirt/ovirt-engine/blob/ede62008318d924556bc9dfc5710d90e9519670d/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendInstanceTypesResource.java
[4]: 
https://github.com/oVirt/ovirt-engine/blob/ede62008318d924556bc9dfc5710d90e9519670d/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/InstanceTypeMapper.java
[5]: 
https://ovirt.github.io/ovirt-engine-sdk/4.1/types.m.html#ovirtsdk4.types.InstanceType


___
Users mailing list -- users@ovirt.org
To unsubscribe send an email to users-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/site/privacy-policy/
oVirt Code of Conduct: 
https://www.ovirt.org/community/about/community-guidelines/
List Archives: 
https://lists.ovirt.org/archives/list/users@ovirt.org/message/QV6Y4MSGTW3UOYXFKEDM4SKM5HUWGEMN/