[openstack-dev] [devstack] systemd + ENABLED_SERVICES + user_init_file

Markus Zoeller mzoeller at linux.vnet.ibm.com
Wed May 31 09:24:57 UTC 2017

On 11.05.2017 15:56, Markus Zoeller wrote:
> I'm working on a nova live-migration hook which configures and starts
> the nova-serialproxy service, runs a subset of tempest tests, and tears
> down the previously started service.
>    https://review.openstack.org/#/c/347471/47
> After the change to "systemd", I thought all I have to do was to start
> the service with:
>    systemctl enable devstack at n-sproxy
>    systemctl restart devstack at n-sproxy
> But this results in the error "Failed to execute operation: No such file
> or directory". The reason is, that there is no systemd "user unit file".
> This file gets written in Devstack at:
> https://github.com/openstack-dev/devstack/blob/37a6b0b2d7d9615b9e89bbc8e8848cffc3bddd6d/functions-common#L1512-L1529
> For that to happen, a service must be in the list "ENABLED_SERVICES":
> https://github.com/openstack-dev/devstack/blob/37a6b0b2d7d9615b9e89bbc8e8848cffc3bddd6d/functions-common#L1572-L1574
> Which is *not* the case for the "n-sproxy" service:
> https://github.com/openstack-dev/devstack/blob/8b8441f3becbae2e704932569bff384dcc5c6713/stackrc#L55-L56
> I'm not sure how to approach this problem. I could:
> 1) add "n-sproxy" to the default ENABLED_SERVICES list for Nova in
>    Devstack
> 2) always write the systemd user unit file in Devstack
>    (despite being an enabled service)
> 3) Write the "user unit file" on the fly in the hook (in Nova).
> 4) ?
> Right now I tend to option 2, as I think it brings more flexibility (for
> other services too) with less change in the set of default enabled
> services in the gate.
> Is this the right direction? Any other thoughts?

FWIW, here's my attempt to implement 2):

Regards, Markus Zoeller (markus_z)

More information about the OpenStack-dev mailing list