New APIC mechanism and extension drivers

This is a very preliminary version of a new APIC mechanism driver
utilizing the ACI Integration Module (AIM) library concurrently being
developed. A corresponding extension driver exposes details regarding
the mapping of the Neutron resources to APIC. These drivers require
the Ml2Plus extended driver APIs.

See the apic-aim-ml2-driver devref for implementation details and for
devstack configuration instructions.

Conflicts:
	devstack/settings

Change-Id: I82df32f0880d6a0d53b305f6c6391fcbea049d1b
(cherry picked from commit 6e307e0a38)
This commit is contained in:
Robert Kukura
2016-03-23 13:21:49 -04:00
parent c750b30142
commit 3915874920
21 changed files with 1471 additions and 19 deletions

49
devstack/lib/apic_aim Normal file
View File

@@ -0,0 +1,49 @@
function install_apic_aim {
echo_summary "Installing apic_aim"
install_apic_ml2
install_aim
install_opflex
}
function configure_apic_aim {
echo_summary "Configuring apic_aim"
# devstack/lib/neutron_plugins/ml2 does not allow overriding
# Q_PLUGIN_CLASS in override_defaults, so do it here instread
iniset $NEUTRON_CONF DEFAULT core_plugin ml2plus
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth auth_plugin v3password
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth auth_url $KEYSTONE_SERVICE_URI_V3
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth username admin
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth password $ADMIN_PASSWORD
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth user_domain_name default
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth project_domain_name default
iniset /$Q_PLUGIN_CONF_FILE apic_aim_auth project_name admin
init_aim
}
function install_aim {
git_clone $AIM_REPO $AIM_DIR $AIM_BRANCH
mv $AIM_DIR/test-requirements.txt $AIM_DIR/_test-requirements.txt
setup_develop $AIM_DIR
mv $AIM_DIR/_test-requirements.txt $AIM_DIR/test-requirements.txt
}
function init_aim {
aim -c $NEUTRON_CONF db-migration upgrade
}
function install_opflex {
git_clone $OPFLEX_REPO $OPFLEX_DIR $OPFLEX_BRANCH
mv $OPFLEX_DIR/test-requirements.txt $OPFLEX_DIR/_test-requirements.txt
touch $OPFLEX_DIR/setup.cfg
setup_develop $OPFLEX_DIR
mv $OPFLEX_DIR/_test-requirements.txt $OPFLEX_DIR/test-requirements.txt
}
# Tell emacs to use shell-script-mode
## Local variables:
## mode: shell-script
## End:

View File

@@ -26,6 +26,8 @@ AIM_REPO=http://github.com/noironetworks/aci-integration-module.git
AIM_DIR=$DEST/aim
APICML2_REPO=http://github.com/noironetworks/apic-ml2-driver.git
APICML2_DIR=$DEST/apic_ml2
OPFLEX_REPO=http://github.com/noironetworks/python-opflex-agent.git
OPFLEX_DIR=$DEST/opflexagent
# Save trace setting
XTRACE=$(set +o | grep xtrace)
@@ -81,17 +83,6 @@ function install_gbpui {
mv $GBPUI_DIR/_test-requirements.txt $GBPUI_DIR/test-requirements.txt
}
function install_aim {
git_clone $AIM_REPO $AIM_DIR $AIM_BRANCH
mv $AIM_DIR/test-requirements.txt $AIM_DIR/_test-requirements.txt
setup_develop $AIM_DIR
mv $AIM_DIR/_test-requirements.txt $AIM_DIR/test-requirements.txt
}
function init_aim {
aim -c $NEUTRON_CONF db-migration upgrade
}
function install_apic_ml2 {
git_clone $APICML2_REPO $APICML2_DIR $APICML2_BRANCH
mv $APICML2_DIR/test-requirements.txt $APICML2_DIR/_test-requirements.txt