Le 22/12/2021 à 15:49, Nathanaël Blanchet a écrit :
Le 22/12/2021 à 14:56, John Taylor a écrit :
> Maybe use the events api and search for the shutdown and reason in there?
>
> api/events;from={event_id}?search={query}" rel="events/search"/>
>
> -John
Exact! that's precisely the workaround I already tested this morning
as well :)
and it works because the event contains the stop_reason in the
description field before vm is in the stopped status!
Unfortunately, after some additionnal tests, I am in the same situation
as initially with stop_reason element in api/vm, i.e. the new event
containing the stop reason is writed to the API only after the hook
script has exited.
So I am never able to test this variable to determine the action to do...
P.S: For those who are interested: to make that case work, I proceeded
at the opposite: rather than testing the variable condition in the hook
itsself, I only use the hook to curl a job_template in AWX. By this way,
the hook exits, and the ovirt_vm_info returns the expected stop_reason
value and so on for following actions...
>
> On Tue, Dec 21, 2021 at 9:00 AM Nathanaël Blanchet <blanchet(a)abes.fr
> <mailto:blanchet@abes.fr>> wrote:
>
> Thanks for responding,
>
> Le 20/12/2021 à 21:42, Nir Soffer a écrit :
>> On Mon, Dec 20, 2021 at 9:59 PM Nathanaël Blanchet<blanchet(a)abes.fr>
<mailto:blanchet@abes.fr> wrote:
>>
>> Adding the devel list since question is more about extending oVirt
>> ...
>>> The idea is to use the stop_reason element into the vm xml definition.
But after hours, I realized that this element is writed to the vm definition file only
after the VM has been destroyed.
>> So you want to run the clean hook only if stop reason == "clean"?
>>
>> I think the way to integrate hooks is to define a custom property
>> in the vm, and check if the property was defined in the hook.
>>
>> For example how the localdisk hook is triggered:
>>
>> def main():
>> backend = os.environ.get('localdisk')
>> if backend is None:
>> return
>> if backend not in [BACKEND_LVM, BACKEND_LVM_THIN]:
>> hooking.log("localdisk-hook: unsupported backend: %r" %
backend)
>> return
>> ...
>>
>> The hook runs only if the environment variable "localdisk" is
defined
>> and configured properly.
>>
>> vdsm defines the custom properties as environment variables.
>>
>> On the engine side, you need to add a user defined property:
>>
>> engine-config -s
UserDefinedVMProperties='localdisk=^(lvm|lvmthin)$'
>>
>> And configure a custom property with one of the allowed values, like:
>>
>> localdisk=lvm
>>
>> See vdsm_hooks/localdisk/README for more info.
>>
>> If you want to control the cleanup, by adding a "clean" stop reason
only when
>> needed, this will not help, and vdsm hook is probably not the right way
>> to integrate this.
> Sure
>> If your intent is to clean a vm in some special events, but you want
>> to integrate
>> this in engine, maybe you should write an engine ui plugin?
>>
>> The plugin can show the running vms, and provide a clean button that will
>> shut down the vm and run your custom code.
> too complex for doing what I want
>> But maybe you don't need to integrate this in engine, and having a
simple
>> script using ovirt engine API/SDK to shutdown the vm and run the cleanup
>> code.
> My playbook/scripts work already fine, but this is not my goal.
>> Nir
>>
> I will sum up my initial question: *Is there any way to get the
> value of "stop_reason" (value of the field in the UI) so as to
> reuse this variable into a vdsm hook?*
>
> Thank you
>
>
> --
> Nathanaël Blanchet
>
> Supervision réseau
> SIRE
> 227 avenue Professeur-Jean-Louis-Viala
> 34193 MONTPELLIER CEDEX 5
> Tél. 33 (0)4 67 54 84 55
> Fax 33 (0)4 67 54 84 14
> blanchet(a)abes.fr <mailto:blanchet@abes.fr>
>
> _______________________________________________
> Users mailing list -- users(a)ovirt.org <mailto:users@ovirt.org>
> To unsubscribe send an email to users-leave(a)ovirt.org
> <mailto:users-leave@ovirt.org>
> Privacy Statement:
https://www.ovirt.org/privacy-policy.html
> <
https://www.ovirt.org/privacy-policy.html>
> oVirt Code of Conduct:
>
https://www.ovirt.org/community/about/community-guidelines/
> <
https://www.ovirt.org/community/about/community-guidelines/>
> List Archives:
>
https://lists.ovirt.org/archives/list/users@ovirt.org/message/OSM572SLKKA...
>
<
https://lists.ovirt.org/archives/list/users@ovirt.org/message/OSM572SLKKA...
>
--
Nathanaël Blanchet
Supervision réseau
SIRE
227 avenue Professeur-Jean-Louis-Viala
34193 MONTPELLIER CEDEX 5
Tél. 33 (0)4 67 54 84 55
Fax 33 (0)4 67 54 84 14
blanchet(a)abes.fr
_______________________________________________
Users mailing list -- users(a)ovirt.org
To unsubscribe send an email to users-leave(a)ovirt.org
Privacy Statement:
https://www.ovirt.org/privacy-policy.html
oVirt Code of Conduct:
https://www.ovirt.org/community/about/community-guidelines/
List Archives:
https://lists.ovirt.org/archives/list/users@ovirt.org/message/3O3BKLSJ5PT...
--
Nathanaël Blanchet
Supervision réseau
SIRE
227 avenue Professeur-Jean-Louis-Viala
34193 MONTPELLIER CEDEX 5
Tél. 33 (0)4 67 54 84 55
Fax 33 (0)4 67 54 84 14
blanchet(a)abes.fr