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

Markus Zoeller mzoeller at linux.vnet.ibm.com
Thu May 11 13:56:47 UTC 2017


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?


-- 
Regards, Markus Zoeller (markus_z)




More information about the OpenStack-dev mailing list