[ovirt-users] Python-SDK4: How to list VM user sessions?

Giorgio Biacchi giorgio at di.unimi.it
Mon Apr 10 15:38:47 UTC 2017


Hi,
I'm taking over Giulio because he's not at work now. I'm starting to understand 
what's happening because we have not that users (and many others) in the users 
tab in the admin portal.

We have heavily modified the paradigm of ovirt, VM are bound to thin clients and 
not to users, this because we want to reproduce a lab/classroom environment and 
we don't use the user portal. We wrote an alternative administration portal 
where we define classrooms, thin clients and associations between clients and VMs.

Windows VMs are joined to a AD domain and linux VMs are joined to IPA, home dirs 
are remotely mounted upon user login.

So there's no need to have all that users (over 31000) in the admin portal 
because they have no permission on any VM, they can login from any client to the 
VM bound to that client.

In the admin portal, if I go to a VM with a logged in user in the "Guest info" 
tab I can see which user is logged in because, I think, the guest agents are 
aware of the logged in username, but there's no "user object" in the engine when 
I try to get that information via API.

Thanks for your time and patience..

Regards,
Giorgio

On 04/10/2017 01:18 PM, Juan Hernández wrote:
> On 04/10/2017 11:10 AM, Giulio Casella wrote:
>> On 07/04/2017 16:00, Juan Hernández wrote:
>>> I have been trying to reproduce this and I wasn't able. In theory the
>>> 404 error that you get should only happen if the virtual machine doesn't
>>> exist, but that isn't the case.
>>>
>>> Can you check the server.log file and share the complete stack traces
>>> that should appear after the "HTTP 404 Not Found" message?
>>>
>>
>> No problem, find attached a snippet of server.log.
>>
>> Bye,
>> Giulio
>>
>
> Thanks, that helps. What the engine isn't finding is the user, not the
> virtual machine. Can you provide more information about that user? I
> mean, take the virtual machine and find via the GUI which user is using
> it. Then go to https://.../ovirt-engine/api/users and find that user.
> Share the definition of that user that you get there, if possible.
>
>>> On 03/31/2017 10:25 AM, Giulio Casella wrote:
>>>> On 30/03/2017 20:05, Juan Hernández wrote:
>>>>> On 03/30/2017 01:01 PM, Giulio Casella wrote:
>>>>>> Hi,
>>>>>> I'm trying to obtain a list of users connected to a VM, using
>>>>>> python SDK
>>>>>> v4.
>>>>>> Here's what I'm doing:
>>>>>>
>>>>>> vm = vms_service.list(search="name=vmname")[0]
>>>>>> vm_service = vms_service.vm_service(vm.id)
>>>>>> sessions = vm_service.sessions_service().list()
>>>>>>
>>>>>> But "sessions" is None.
>>>>>>
>>>>>> Same result using:
>>>>>>
>>>>>> s = connection.follow_link(vm.sessions)
>>>>>>
>>>>>> "s" is None.
>>>>>>
>>>>>> I tried also using curl, and if I connect to:
>>>>>>
>>>>>> https://my.ovirt.host/ovirt-engine/api/v4/vms/<vmid>/sessions
>>>>>>
>>>>>> I get a beautiful 404.
>>>>>>
>>>>>> Also using v3 of python SDK I obtain the same behaviour.
>>>>>>
>>>>>> So I suspect that retrieving user sessions via API is not implemented,
>>>>>> is it? If not, what I'm doing wrong?
>>>>>>
>>>>>> I'm using RHV 4.0.6.3-0.1.el7ev
>>>>>>
>>>>>> Thanks in advance,
>>>>>> Giulio
>>>>>>
>>>>>
>>>>> Giulio, you should never get a 404 error from that URL, unless the
>>>>> virtual doesn't exist or isn't visible for you. What user name are you
>>>>> to create the SDK connection? An administrator or a regular user?
>>>>>
>>>>
>>>> I tried with a regular domain user (with superuser role assigned) and
>>>> admin at internal, with same result.
>>>>
>>>>> Also, please check the /var/log/ovirt-engine/server.log and
>>>>> /var/log/ovirt-engine/engine.log when you send that request. Do you see
>>>>> there something relevant?
>>>>
>>>> server.log reports:
>>>>
>>>> 2017-03-31 10:03:11,346 ERROR [org.jboss.resteasy.resteasy_jaxrs.i18n]
>>>> (default task-33) RESTEASY002010: Failed to execute:
>>>> javax.ws.rs.WebApplicationException: HTTP 404 Not Found
>>>>
>>>> (no surprise here, same message obtained by curl).
>>>>
>>>> engine.log is full of:
>>>>
>>>> ERROR [org.ovirt.engine.core.aaa.filters.SsoRestApiAuthFilter] (default
>>>> task-7) [] Cannot authenticate using authentication Headers:
>>>> invalid_grant: The provided authorization grant for the auth code has
>>>> expired
>>>>
>>>> (indipendently of my request)
>>>>
>>>> It's quite strange I can perform almost every other operation (e.g.
>>>> getting other VM parameters, running methods, etc.)
>>>>
>>>>
>>>>>
>>>>> Finally, please run your script with the 'debug=True' option in the
>>>>> connection, and with a log file, like here:
>>>>>
>>>>>
>>>>> https://github.com/oVirt/ovirt-engine-sdk/blob/master/sdk/examples/list_vms.py#L20-L37
>>>>>
>>>>>
>>>>>
>>>>> Then share that log file so that we can check what the server is
>>>>> returning exactly. Make sure to remove your password from that log file
>>>>> before sharing it.
>>>>>
>>>> Find attached produced log (passwords purged).
>>>>
>>>> BTW: VM is a Fedora 24, with guest agents correctly installed (I can see
>>>> user sessions in admin portal and in postgresql DB).
>>>>
>>>> Thanks,
>>>> Giulio
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at ovirt.org
>>>> http://lists.ovirt.org/mailman/listinfo/users
>>>>
>>>
>>
>
> _______________________________________________
> Users mailing list
> Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
>

-- 
gb

PGP Key: http://pgp.mit.edu/
Primary key fingerprint: C510 0765 943E EBED A4F2 69D3 16CC DC90 B9CB 0F34


More information about the Users mailing list