b8e250232e
Add two end-of-file checks to bash8. Firstly, alert if heredoc hasn't finished. Some heredocs were done like: --- sudo bash -c "cat <<EOF > foo ... EOF" --- (A better way to do this is "cat <<EOF | sudo tee ..." as it retains the usual heredoc layout in the code). The trailing quote was throwing the matching in bash8 off and it kept appending the next file as if it was still part of the heredoc. To avoid this, we check if we're still in a heredoc when we start a new file; if so raise an error and reset the heredoc status fresh. We track the state of the previous file, line and lineno so we can give a good error. --- E012: heredoc did not end before EOF: 'cat <<EOF' - lib/trove: L221 --- This includes fixes for the existing problem heredocs. A similar EOF check is to ensure the previous file ended with a newline. --- E004: file did not end with a newline: '$MY_XTRACE' - lib/neutron_plugins/embrane: L40 --- This requires only one fix Change-Id: I5e547d87b3921fc7ce6588c28f074e5c9f489c1f
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
: setNOVA_VIF_DRIVER
and optionally set options in nova_conf e.g. NOVA_VIF_DRIVER=${NOVA_VIF_DRIVER:-"nova.virt.libvirt.vif.LibvirtGenericVIFDriver"}neutron_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_DB_NAME
,Q_PLUGIN_CLASS
neutron_plugin_configure_debug_command
neutron_plugin_configure_dhcp_agent
neutron_plugin_configure_l3_agent
neutron_plugin_configure_plugin_agent
neutron_plugin_configure_service
neutron_plugin_setup_interface_driver
has_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