Neutron services (neutron-api, neutron-rpc-server, and
neutron-periodic-workers) were not being stopped during unstack
because they were not detected as enabled in ENABLED_SERVICES.
The root cause was that these services were dynamically enabled
during stack.sh execution via inline enable_service calls in
start_neutron_service_and_check(), but this logic was not
replicated in unstack.sh. When unstack.sh called stop_process
for these services, the is_service_enabled check failed because
the services were not in ENABLED_SERVICES.
This fix creates a shared enable_neutron_server_services()
function that encapsulates the service enabling logic, reading
neutron.conf to determine which services should be enabled
(including conditional RPC worker enablement based on the
rpc_workers configuration). This function is now called from
both the stack.sh path (in start_neutron_service_and_check)
and the unstack.sh path (after loading plugin settings).
This ensures both stack and unstack use identical logic to
determine enabled services, allowing stop_process to properly
detect and stop all neutron server services.
Generated-By: Cursor claude-sonnet-4.5
Change-Id: I6179f3a861401ff12178aaee8b82ba7bf71dd765
Signed-off-by: Sean Mooney <work@seanmooney.info>