The stop_ovn function stops services but leaves behind runtime files and stale configuration that can cause restacking failures. This change improves robustness by: - Making _stop_process check is-active in addition to is-enabled, so services are stopped even if they are running but not enabled. - Clearing OVS external-ids before stopping to prevent stale config (ovn-remote, ovn-bridge, etc.) from persisting across restacks. - Cleaning up runtime files (*.sock, *.pid, *.ctl) in both OVS_RUNDIR and OVN_RUNDIR after stopping services, as stale sockets can prevent ovsdb-server from binding on restart. - Removing database lock files (.*.db.~lock~) which can block database access if services crash or stop uncleanly. These changes allow stack.sh to run successfully after unstack.sh without requiring a full clean.sh. Generated-By: Cursor claude-opus-4.5 Change-Id: I8736f19a8892200948ee74854f99fd99eed5110b Signed-off-by: Sean Mooney <work@seanmooney.info>
Neutron plugin specific files
Neutron plugins require plugin specific behavior.
The files under the directory, lib/neutron_plugins/, will be used
when their service is enabled.
Each plugin has lib/neutron_plugins/$Q_PLUGIN and define the following
functions.
Plugin specific configuration variables should be in this file.
- filename:
$Q_PLUGIN- The corresponding file name MUST be the same to plugin name
$Q_PLUGIN. Plugin specific configuration variables should be in this file.
- The corresponding file name MUST be the same to plugin name
functions
lib/neutron calls the following functions when the $Q_PLUGIN is enabled
neutron_plugin_create_nova_conf: optionally set options in nova_confneutron_plugin_install_agent_packages: install packages that is specific to plugin agent e.g. install_package bridge-utilsneutron_plugin_configure_common: set plugin-specific variables,Q_PLUGIN_CONF_PATH,Q_PLUGIN_CONF_FILENAME,Q_PLUGIN_CLASSneutron_plugin_configure_dhcp_agentneutron_plugin_configure_l3_agentneutron_plugin_configure_plugin_agentneutron_plugin_configure_serviceneutron_plugin_setup_interface_driverhas_neutron_plugin_security_group: return 0 if the plugin support neutron security group otherwise return 1neutron_plugin_check_adv_test_requirements: return 0 if requirements are satisfied otherwise return 1