[openstack-quantum] Update to folsom rc1 snapshot
Robert A. Kukura
rkukura at fedoraproject.org
Wed Sep 12 04:46:18 UTC 2012
commit 3eea4b13a69fe880b3945601ed47a4b256dcfaae
Author: Bob Kukura <rkukura at redhat.com>
Date: Wed Sep 12 00:44:16 2012 -0400
Update to folsom rc1 snapshot
- Add support for new agents, plugins and rootwrap
.gitignore | 2 +-
openstack-quantum.spec | 174 +++++++++++++++++++++++++++++++++++++-------
quantum-dhcp-agent.service | 12 +++
quantum-dhcp-setup | 128 ++++++++++++++++++++++++++++++++
quantum-l3-agent.service | 12 +++
quantum-l3-setup | 111 ++++++++++++++++++++++++++++
quantum-nec-agent.service | 12 +++
quantum-node-setup | 129 ++++++++++----------------------
quantum-server-setup | 96 ++++++++++--------------
sources | 2 +-
10 files changed, 504 insertions(+), 174 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 16a44a7..1263187 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/quantum-2012.2~f2.tar.gz
+/quantum-2012.2~rc1~20120911.1224.tar.gz
diff --git a/openstack-quantum.spec b/openstack-quantum.spec
index 438c1a6..305ff2d 100644
--- a/openstack-quantum.spec
+++ b/openstack-quantum.spec
@@ -1,26 +1,31 @@
#
-# This is 2012.2 folsom milestone 2
+# This is 2012.2 folsom pre-rc1 snapshot
#
Name: openstack-quantum
Version: 2012.2
-Release: 0.3.f2%{?dist}
+Release: 0.4.rc1.20120911.1224%{?dist}
Summary: Virtual network service for OpenStack (quantum)
Group: Applications/System
License: ASL 2.0
URL: http://launchpad.net/quantum/
-Source0: https://launchpad.net/quantum/folsom/folsom-2/+download/quantum-2012.2~f2.tar.gz
+Source0: http://tarballs.openstack.org/quantum/quantum-2012.2~rc1~20120911.1224.tar.gz
Source1: quantum.logrotate
Source2: quantum-sudoers
Source4: quantum-server-setup
Source5: quantum-node-setup
+Source6: quantum-dhcp-setup
+Source7: quantum-l3-setup
Source10: quantum-server.service
Source11: quantum-linuxbridge-agent.service
Source12: quantum-openvswitch-agent.service
Source13: quantum-ryu-agent.service
+Source14: quantum-nec-agent.service
+Source15: quantum-dhcp-agent.service
+Source16: quantum-l3-agent.service
BuildArch: noarch
@@ -28,7 +33,6 @@ BuildArch: noarch
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: systemd-units
-BuildRequires: dos2unix
Requires: python-quantum = %{version}-%{release}
Requires: openstack-utils
@@ -54,14 +58,23 @@ Summary: Quantum Python libraries
Group: Applications/System
Requires: MySQL-python
+Requires: python-amqplib
+Requires: python-anyjson
Requires: python-eventlet
+Requires: python-greenlet
+Requires: python-httplib2
+Requires: python-iso8601
+Requires: python-kombu
Requires: python-lxml
-Requires: python-gflags
-Requires: python-anyjson
+Requires: python-netaddr
Requires: python-paste-deploy
+Requires: python-qpid
+Requires: python-quantumclient >= 2.0.21
Requires: python-routes
Requires: python-sqlalchemy
Requires: python-webob
+Requires: sudo
+
%description -n python-quantum
@@ -91,9 +104,9 @@ networks using Cisco UCS and Nexus.
Summary: Quantum linuxbridge plugin
Group: Applications/System
-Requires: openstack-quantum = %{version}-%{release}
Requires: bridge-utils
-Requires: sudo
+Requires: openstack-quantum = %{version}-%{release}
+Requires: python-pyudev
%description -n openstack-quantum-linuxbridge
@@ -125,7 +138,6 @@ Group: Applications/System
Requires: openstack-quantum = %{version}-%{release}
Requires: openvswitch
-Requires: sudo
%description -n openstack-quantum-openvswitch
@@ -137,11 +149,10 @@ networks using Open vSwitch.
%package -n openstack-quantum-ryu
-Summary: Quantum ryu plugin
+Summary: Quantum Ryu plugin
Group: Applications/System
Requires: openstack-quantum = %{version}-%{release}
-Requires: sudo
%description -n openstack-quantum-ryu
@@ -152,20 +163,51 @@ This package contains the quantum plugin that implements virtual
networks using the Ryu Network Operating System.
+%package -n openstack-quantum-nec
+Summary: Quantum NEC plugin
+Group: Applications/System
+
+Requires: openstack-quantum = %{version}-%{release}
+
+
+%description -n openstack-quantum-nec
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the quantum plugin that implements virtual
+networks using the NEC OpenFlow controller.
+
+
+%package -n openstack-quantum-metaplugin
+Summary: Quantum meta plugin
+Group: Applications/System
+
+Requires: openstack-quantum = %{version}-%{release}
+
+
+%description -n openstack-quantum-metaplugin
+Quantum provides an API to dynamically request and configure virtual
+networks.
+
+This package contains the quantum plugin that implements virtual
+networks using multiple other quantum plugins.
+
+
%prep
%setup -q -n quantum-%{version}
find quantum -name \*.py -exec sed -i '/\/usr\/bin\/env python/d' {} \;
+find quantum/debug -name \*.py -exec sed -i '/\/bin\/python/d' {} \;
+
chmod 644 quantum/plugins/cisco/README
-dos2unix quantum/plugins/cisco/README
# Remove unneeded dependency
sed -i '/setuptools_git/d' setup.py
-# Remove broken files (REVISIT)
-rm quantum/plugins/nicira/nicira_nvp_plugin/cli.py
-
+# Create missing executable
+cp bin/quantum-ryu-agent bin/quantum-nec-agent
+sed -i 's/ryu/nec/g' bin/quantum-nec-agent
%build
%{__python} setup.py build
@@ -181,23 +223,35 @@ rm -rf %{buildroot}%{python_sitelib}/tools
rm -rf %{buildroot}%{python_sitelib}/quantum/tests
rm -rf %{buildroot}%{python_sitelib}/quantum/plugins/*/tests
rm -f %{buildroot}%{python_sitelib}/quantum/plugins/*/run_tests.*
-#rm %%{buildroot}/usr/etc/quantum/quantum.conf.test
rm %{buildroot}/usr/etc/init.d/quantum-server
# Install execs (using hand-coded rather than generated versions)
-install -p -D -m 755 bin/quantum-server %{buildroot}%{_bindir}/quantum-server
+install -p -D -m 755 bin/quantum-debug %{buildroot}%{_bindir}/quantum-debug
+install -p -D -m 755 bin/quantum-dhcp-agent %{buildroot}%{_bindir}/quantum-dhcp-agent
+install -p -D -m 755 bin/quantum-dhcp-agent-dnsmasq-lease-update %{buildroot}%{_bindir}/quantum-dhcp-agent-dnsmasq-lease-update
+install -p -D -m 755 bin/quantum-l3-agent %{buildroot}%{_bindir}/quantum-l3-agent
install -p -D -m 755 bin/quantum-linuxbridge-agent %{buildroot}%{_bindir}/quantum-linuxbridge-agent
+install -p -D -m 755 bin/quantum-nec-agent %{buildroot}%{_bindir}/quantum-nec-agent
+install -p -D -m 755 bin/quantum-netns-cleanup %{buildroot}%{_bindir}/quantum-netns-cleanup
install -p -D -m 755 bin/quantum-openvswitch-agent %{buildroot}%{_bindir}/quantum-openvswitch-agent
-install -p -D -m 755 bin/quantum-ryu-agent %{buildroot}%{_bindir}/quantum-ryu-agent
install -p -D -m 755 bin/quantum-rootwrap %{buildroot}%{_bindir}/quantum-rootwrap
+install -p -D -m 755 bin/quantum-ryu-agent %{buildroot}%{_bindir}/quantum-ryu-agent
+install -p -D -m 755 bin/quantum-server %{buildroot}%{_bindir}/quantum-server
+
+# Install rootwrap files in /usr/share/quantum/filters
+mkdir -p %{buildroot}%{_datarootdir}/quantum/filters/
+install -p -D -m 644 etc/quantum/rootwrap.d/*.filters %{buildroot}%{_datarootdir}/quantum/filters/
# Move config files to proper location
install -d -m 755 %{buildroot}%{_sysconfdir}/quantum
mv %{buildroot}/usr/etc/quantum/* %{buildroot}%{_sysconfdir}/quantum
chmod 640 %{buildroot}%{_sysconfdir}/quantum/plugins/*/*.ini
-# Configure plugin agents to use quantum-rootwrap
-for f in %{buildroot}%{_sysconfdir}/quantum/plugins/*/*.ini; do
+# Install files missing from setup.py
+install -p -D -m 640 etc/l3_agent.ini %{buildroot}%{_sysconfdir}/quantum/l3_agent.ini
+
+# Configure agents to use quantum-rootwrap
+for f in %{buildroot}%{_sysconfdir}/quantum/plugins/*/*.ini %{buildroot}%{_sysconfdir}/quantum/*_agent.ini; do
sed -i 's/root_helper = sudo/root_helper = sudo quantum-rootwrap/g' $f
done
@@ -212,6 +266,9 @@ install -p -D -m 644 %{SOURCE10} %{buildroot}%{_unitdir}/quantum-server.service
install -p -D -m 644 %{SOURCE11} %{buildroot}%{_unitdir}/quantum-linuxbridge-agent.service
install -p -D -m 644 %{SOURCE12} %{buildroot}%{_unitdir}/quantum-openvswitch-agent.service
install -p -D -m 644 %{SOURCE13} %{buildroot}%{_unitdir}/quantum-ryu-agent.service
+install -p -D -m 644 %{SOURCE14} %{buildroot}%{_unitdir}/quantum-nec-agent.service
+install -p -D -m 644 %{SOURCE15} %{buildroot}%{_unitdir}/quantum-dhcp-agent.service
+install -p -D -m 644 %{SOURCE16} %{buildroot}%{_unitdir}/quantum-l3-agent.service
# Setup directories
install -d -m 755 %{buildroot}%{_sharedstatedir}/quantum
@@ -220,6 +277,8 @@ install -d -m 755 %{buildroot}%{_localstatedir}/log/quantum
# Install setup helper scripts
install -p -D -m 755 %{SOURCE4} %{buildroot}%{_bindir}/quantum-server-setup
install -p -D -m 755 %{SOURCE5} %{buildroot}%{_bindir}/quantum-node-setup
+install -p -D -m 755 %{SOURCE6} %{buildroot}%{_bindir}/quantum-dhcp-setup
+install -p -D -m 755 %{SOURCE7} %{buildroot}%{_bindir}/quantum-l3-setup
%pre
@@ -242,6 +301,10 @@ if [ $1 -eq 0 ] ; then
# Package removal, not upgrade
/bin/systemctl --no-reload disable quantum-server.service > /dev/null 2>&1 || :
/bin/systemctl stop quantum-server.service > /dev/null 2>&1 || :
+ /bin/systemctl --no-reload disable quantum-dhcp-agent.service > /dev/null 2>&1 || :
+ /bin/systemctl stop quantum-dhcp-agent.service > /dev/null 2>&1 || :
+ /bin/systemctl --no-reload disable quantum-l3-agent.service > /dev/null 2>&1 || :
+ /bin/systemctl stop quantum-l3-agent.service > /dev/null 2>&1 || :
fi
@@ -250,6 +313,8 @@ fi
if [ $1 -ge 1 ] ; then
# Package upgrade, not uninstall
/bin/systemctl try-restart quantum-server.service >/dev/null 2>&1 || :
+ /bin/systemctl try-restart quantum-dhcp-agent.service >/dev/null 2>&1 || :
+ /bin/systemctl try-restart quantum-l3-agent.service >/dev/null 2>&1 || :
fi
@@ -301,23 +366,54 @@ if [ $1 -ge 1 ] ; then
fi
+%preun -n openstack-quantum-nec
+if [ $1 -eq 0 ] ; then
+ # Package removal, not upgrade
+ /bin/systemctl --no-reload disable quantum-nec-agent.service > /dev/null 2>&1 || :
+ /bin/systemctl stop quantum-nec-agent.service > /dev/null 2>&1 || :
+fi
+
+
+%postun -n openstack-quantum-nec
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+if [ $1 -ge 1 ] ; then
+ # Package upgrade, not uninstall
+ /bin/systemctl try-restart quantum-nec-agent.service >/dev/null 2>&1 || :
+fi
+
+
%files
%doc LICENSE
%doc README
-%{_bindir}/quantum-server
+%{_bindir}/quantum-debug
+%{_bindir}/quantum-dhcp-agent
+%{_bindir}/quantum-dhcp-agent-dnsmasq-lease-update
+%{_bindir}/quantum-dhcp-setup
+%{_bindir}/quantum-l3-agent
+%{_bindir}/quantum-l3-setup
+%{_bindir}/quantum-netns-cleanup
+%{_bindir}/quantum-node-setup
%{_bindir}/quantum-rootwrap
+%{_bindir}/quantum-server
%{_bindir}/quantum-server-setup
-%{_bindir}/quantum-node-setup
+%{_unitdir}/quantum-dhcp-agent.service
+%{_unitdir}/quantum-l3-agent.service
%{_unitdir}/quantum-server.service
%dir %{_sysconfdir}/quantum
-%config(noreplace) %{_sysconfdir}/quantum/quantum.conf
%config(noreplace) %{_sysconfdir}/quantum/api-paste.ini
+%config(noreplace) %{_sysconfdir}/quantum/dhcp_agent.ini
+%config(noreplace) %{_sysconfdir}/quantum/l3_agent.ini
%config(noreplace) %{_sysconfdir}/quantum/policy.json
+%config(noreplace) %{_sysconfdir}/quantum/quantum.conf
+%config(noreplace) %{_sysconfdir}/quantum/rootwrap.conf
%dir %{_sysconfdir}/quantum/plugins
%config(noreplace) %{_sysconfdir}/logrotate.d/*
%config(noreplace) %{_sysconfdir}/sudoers.d/quantum
%dir %attr(0755, quantum, quantum) %{_sharedstatedir}/quantum
%dir %attr(0755, quantum, quantum) %{_localstatedir}/log/quantum
+%{_datarootdir}/quantum/filters/dhcp.filters
+%{_datarootdir}/quantum/filters/iptables-firewall.filters
+%{_datarootdir}/quantum/filters/l3.filters
%files -n python-quantum
@@ -335,10 +431,11 @@ fi
%exclude %{python_sitelib}/quantum/extensions/_qos_view.py*
%exclude %{python_sitelib}/quantum/plugins/cisco
%exclude %{python_sitelib}/quantum/plugins/linuxbridge
+%exclude %{python_sitelib}/quantum/plugins/metaplugin
+%exclude %{python_sitelib}/quantum/plugins/nec
%exclude %{python_sitelib}/quantum/plugins/nicira
%exclude %{python_sitelib}/quantum/plugins/openvswitch
%exclude %{python_sitelib}/quantum/plugins/ryu
-%exclude %{python_sitelib}/quantum/rootwrap/*-agent.py*
%{python_sitelib}/quantum-%%{version}-*.egg-info
@@ -365,7 +462,7 @@ fi
%{_bindir}/quantum-linuxbridge-agent
%{_unitdir}/quantum-linuxbridge-agent.service
%{python_sitelib}/quantum/plugins/linuxbridge
-%{python_sitelib}/quantum/rootwrap/linuxbridge-agent.py*
+%{_datarootdir}/quantum/filters/linuxbridge-plugin.filters
%dir %{_sysconfdir}/quantum/plugins/linuxbridge
%config(noreplace) %attr(-, root, quantum) %{_sysconfdir}/quantum/plugins/linuxbridge/*.ini
@@ -384,7 +481,7 @@ fi
%{_bindir}/quantum-openvswitch-agent
%{_unitdir}/quantum-openvswitch-agent.service
%{python_sitelib}/quantum/plugins/openvswitch
-%{python_sitelib}/quantum/rootwrap/openvswitch-agent.py*
+%{_datarootdir}/quantum/filters/openvswitch-plugin.filters
%dir %{_sysconfdir}/quantum/plugins/openvswitch
%config(noreplace) %attr(-, root, quantum) %{_sysconfdir}/quantum/plugins/openvswitch/*.ini
@@ -395,12 +492,35 @@ fi
%{_bindir}/quantum-ryu-agent
%{_unitdir}/quantum-ryu-agent.service
%{python_sitelib}/quantum/plugins/ryu
-%{python_sitelib}/quantum/rootwrap/ryu-agent.py*
+%{_datarootdir}/quantum/filters/ryu-plugin.filters
%dir %{_sysconfdir}/quantum/plugins/ryu
%config(noreplace) %attr(-, root, quantum) %{_sysconfdir}/quantum/plugins/ryu/*.ini
+%files -n openstack-quantum-nec
+%doc LICENSE
+%doc quantum/plugins/nec/README
+%{_bindir}/quantum-nec-agent
+%{_unitdir}/quantum-nec-agent.service
+%{python_sitelib}/quantum/plugins/nec
+%{_datarootdir}/quantum/filters/nec-plugin.filters
+%dir %{_sysconfdir}/quantum/plugins/nec
+%config(noreplace) %attr(-, root, quantum) %{_sysconfdir}/quantum/plugins/nec/*.ini
+
+
+%files -n openstack-quantum-metaplugin
+%doc LICENSE
+%doc quantum/plugins/metaplugin/README
+%{python_sitelib}/quantum/plugins/metaplugin
+%dir %{_sysconfdir}/quantum/plugins/metaplugin
+%config(noreplace) %attr(-, root, quantum) %{_sysconfdir}/quantum/plugins/metaplugin/*.ini
+
+
%changelog
+* Tue Sep 11 2012 Robert Kukura <rkukura at redhat.com> - 2012.2-0.4.rc1.20120911.1224
+- Update to folsom rc1 snapshot
+- Add support for new agents, plugins and rootwrap
+
* Wed Aug 22 2012 Pádraig Brady <P at draigBrady.com> - 2012.2-0.3.f2
- Fix helper scripts to setup the database config correctly (#847785)
diff --git a/quantum-dhcp-agent.service b/quantum-dhcp-agent.service
new file mode 100644
index 0000000..1b98fcf
--- /dev/null
+++ b/quantum-dhcp-agent.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Quantum DHCP Agent
+After=syslog.target network.target
+
+[Service]
+Type=simple
+User=quantum
+ExecStart=/usr/bin/quantum-dhcp-agent /etc/quantum/dhcp_agent.ini
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quantum-dhcp-setup b/quantum-dhcp-setup
new file mode 100755
index 0000000..9073094
--- /dev/null
+++ b/quantum-dhcp-setup
@@ -0,0 +1,128 @@
+#!/bin/bash
+#
+# Copyright (C) 2012, Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+# The script supports the plugins below
+declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
+
+#
+# Print --help output and exit.
+#
+usage() {
+
+cat << EOF
+The helper script will install the necessary support for the DHCP agent.
+
+Usage: quantum-dhcp-setup [options]
+Options:
+ --help | -h
+ Print usage information.
+ --plugin | -p
+ The quantum plugin. Supported plugins:-
+ ${SUPPORTED_PLUGINS[*]}
+ --qhost | -q
+ The Quantum hostname (assumes that this is also the QPID host).
+EOF
+
+ exit 0
+}
+
+is_valid_plugin() {
+ local i=
+ for i in "${SUPPORTED_PLUGINS[@]}"; do
+ if [ "$i" == "$1" ]; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+DHCP_CONF=/etc/quantum/dhcp_agent.ini
+
+while [ $# -gt 0 ]
+do
+ case "$1" in
+ -h|--help)
+ usage
+ ;;
+ -p|--plugin)
+ shift
+ QUANTUM_PLUGIN=${1}
+ ;;
+ -q|--qhost)
+ shift
+ Q_HOST=${1}
+ ;;
+ *)
+ # ignore
+ shift
+ ;;
+ esac
+ shift
+done
+
+# if the plugin is not defined
+if [ -z ${QUANTUM_PLUGIN} ] ; then
+ echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
+ echo "Choice:"
+ read QUANTUM_PLUGIN
+fi
+
+# check that the plugin is valid
+is_valid_plugin ${QUANTUM_PLUGIN}
+if [ $? -ne 0 ]; then
+ echo "Plugin '${QUANTUM_PLUGIN}' not supported. Supported plugins:-"
+ echo " ${SUPPORTED_PLUGINS[*]}"
+ exit 0
+fi
+
+echo "Quantum plugin: ${QUANTUM_PLUGIN}"
+
+if [ -z ${Q_HOST} ] ; then
+ echo "Please enter the Quantum hostname:"
+ read Q_HOST
+fi
+
+Q_PORT=9696
+Q_CONF=/etc/quantum/quantum.conf
+# QPID
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT qpid_hostname ${Q_HOST}
+
+case "${QUANTUM_PLUGIN}" in
+"linuxbridge")
+ LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.BridgeInterfaceDriver
+;;
+
+"openvswitch")
+ if ! rpm -q openvswitch > /dev/null
+ then
+ echo "Please install openvswitch"
+ exit 0
+ fi
+ LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.OVSInterfaceDriver
+;;
+
+esac
+
+OS_AUTH_URL=${OS_AUTH_URL:-http://127.0.0.1:35357/v2.0/}
+
+# Update Keystone
+openstack-config --set ${DHCP_CONF} DEFAULT auth_url ${OS_AUTH_URL}
+# Update interface driver
+openstack-config --set ${DHCP_CONF} DEFAULT interface_driver ${LINUX_INTERFACE_DRIVER}
+
+echo "Configuration updates complete!"
diff --git a/quantum-l3-agent.service b/quantum-l3-agent.service
new file mode 100644
index 0000000..b4e4cd0
--- /dev/null
+++ b/quantum-l3-agent.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Quantum Layer 3 Agent
+After=syslog.target network.target
+
+[Service]
+Type=simple
+User=quantum
+ExecStart=/usr/bin/quantum-l3-agent /etc/quantum/l3_agent.ini
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quantum-l3-setup b/quantum-l3-setup
new file mode 100755
index 0000000..cc76310
--- /dev/null
+++ b/quantum-l3-setup
@@ -0,0 +1,111 @@
+#!/bin/bash
+#
+# Copyright (C) 2012, Red Hat, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may
+# not use this file except in compliance with the License. You may obtain
+# a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations
+# under the License.
+#
+
+# The script supports the plugins below
+declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
+
+#
+# Print --help output and exit.
+#
+usage() {
+
+cat << EOF
+The helper script will install the necessary support for the L3 agent.
+
+Usage: quantum-l3-setup [options]
+Options:
+ --help | -h
+ Print usage information.
+ --plugin | -p
+ The quantum plugin. Supported plugins:-
+ ${SUPPORTED_PLUGINS[*]}
+EOF
+
+ exit 0
+}
+
+is_valid_plugin() {
+ local i=
+ for i in "${SUPPORTED_PLUGINS[@]}"; do
+ if [ "$i" == "$1" ]; then
+ return 0
+ fi
+ done
+ return 1
+}
+
+L3_CONF=/etc/quantum/l3_agent.ini
+
+while [ $# -gt 0 ]
+do
+ case "$1" in
+ -h|--help)
+ usage
+ ;;
+ -p|--plugin)
+ shift
+ QUANTUM_PLUGIN=${1}
+ ;;
+ *)
+ # ignore
+ shift
+ ;;
+ esac
+ shift
+done
+
+# if the plugin is not defined
+if [ -z ${QUANTUM_PLUGIN} ] ; then
+ echo "Please select a plugin from: ${SUPPORTED_PLUGINS[*]}"
+ echo "Choice:"
+ read QUANTUM_PLUGIN
+fi
+
+# check that the plugin is valid
+is_valid_plugin ${QUANTUM_PLUGIN}
+if [ $? -ne 0 ]; then
+ echo "Plugin '${QUANTUM_PLUGIN}' not supported. Supported plugins:-"
+ echo " ${SUPPORTED_PLUGINS[*]}"
+ exit 0
+fi
+
+echo "Quantum plugin: ${QUANTUM_PLUGIN}"
+
+case "${QUANTUM_PLUGIN}" in
+"linuxbridge")
+ LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.BridgeInterfaceDriver
+;;
+
+"openvswitch")
+ if ! rpm -q openvswitch > /dev/null
+ then
+ echo "Please install openvswitch"
+ exit 0
+ fi
+ LINUX_INTERFACE_DRIVER=quantum.agent.linux.interface.OVSInterfaceDriver
+;;
+
+esac
+
+OS_AUTH_URL=${OS_AUTH_URL:-http://127.0.0.1:35357/v2.0/}
+
+# Update Keystone
+openstack-config --set ${L3_CONF} DEFAULT auth_url ${OS_AUTH_URL}
+# Update interface driver
+openstack-config --set ${L3_CONF} DEFAULT interface_driver ${LINUX_INTERFACE_DRIVER}
+
+echo "Configuration updates complete!"
diff --git a/quantum-nec-agent.service b/quantum-nec-agent.service
new file mode 100644
index 0000000..735db4f
--- /dev/null
+++ b/quantum-nec-agent.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=OpenStack Quantum NEC OpenFlow Agent
+After=syslog.target network.target
+
+[Service]
+Type=simple
+User=quantum
+ExecStart=/usr/bin/quantum-nec-agent /etc/quantum/plugins/nec/nec.ini
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/quantum-node-setup b/quantum-node-setup
old mode 100644
new mode 100755
index e0389cc..620aead
--- a/quantum-node-setup
+++ b/quantum-node-setup
@@ -16,7 +16,7 @@
#
# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(cisco linuxbridge nicira openvswitch ryu)
+declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
#
# Print --help output and exit.
@@ -30,22 +30,11 @@ Usage: quantum-node-setup [options]
Options:
--help | -h
Print usage information.
- --qpw <pw> | -q <pw>
- Specify the password for the 'quantum' MySQL user that quantum will
- use to connect to the 'quantum' MySQL database. By default,
- the password 'quantum' will be used.
- --yes | -y
- In cases where the script would normally ask for confirmation
- before doing something, such as installing mysql-server,
- just assume yes. This is useful if you want to run the script
- non-interactively.
- --user | -u
- The quantum user.
--plugin | -p
The quantum plugin. Supported plugins:-
${SUPPORTED_PLUGINS[*]}
- --dbhost | -d
- The quantum database host.
+ --qhost | -q
+ The Quantum hostname (assumes that this is also the QPID host).
EOF
exit 0
@@ -62,10 +51,9 @@ is_valid_plugin() {
}
QUANTUM_USER=quantum
-MYSQL_Q_PW=quantum
-CISCO_CONF=/etc/quantum/plugins/cisco/db_conn.ini
LB_CONF=/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini
OVS_CONF=/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
+
# Nova specific
NOVA_CONF=/etc/nova/nova.conf
@@ -75,24 +63,13 @@ do
-h|--help)
usage
;;
- -q|--qpw)
- shift
- MYSQL_Q_PW==${1}
- ;;
- -y|--yes)
- ASSUME_YES="yes"
- ;;
- -u|--user)
- shift
- QUANTUM_USER=${1}
- ;;
-p|--plugin)
shift
QUANTUM_PLUGIN=${1}
;;
- -d|--dbhost)
+ -q|--qhost)
shift
- QUANTUM_HOST=${1}
+ Q_HOST=${1}
;;
*)
# ignore
@@ -125,39 +102,21 @@ if ! [ -e "/etc/quantum/plugins/${QUANTUM_PLUGIN}" ]; then
fi
#if the database hostname and is not defined and is required
-if [ -z ${QUANTUM_HOST} ] ; then
- case "${QUANTUM_PLUGIN}" in
- "cisco"|"linuxbridge"|"openvswitch")
- echo "Please enter the Quantum database hostname:"
- read QUANTUM_HOST
- ;;
- esac
+if [ -z ${Q_HOST} ] ; then
+ echo "Please enter the Quantum hostname:"
+ read Q_HOST
fi
-case "${QUANTUM_PLUGIN}" in
-"cisco")
- openstack-config --set ${CISCO_CONF} DATABASE user ${QUANTUM_USER}
- openstack-config --set ${CISCO_CONF} DATABASE pass ${MYSQL_Q_PW}
- openstack-config --set ${CISCO_CONF} DATABASE host ${QUANTUM_HOST}
- SCHEDULER_DRIVER=quantum.plugins.cisco.nova.quantum_port_aware_scheduler.QuantumPortAwareScheduler
- LIBVIRT_VIF_DRIVER=quantum.plugins.cisco.nova.vifdirect.Libvirt802dot1QbhDriver
- LIBVIRT_VIF_TYPE=802.1Qbh
-;;
+Q_PORT=9696
+Q_CONF=/etc/quantum/quantum.conf
+# QPID
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT qpid_hostname ${Q_HOST}
+case "${QUANTUM_PLUGIN}" in
"linuxbridge")
- openstack-config --set ${LB_CONF} DATABASE sql_connection mysql://${QUANTUM_USER}:${MYSQL_Q_PW}@${QUANTUM_HOST}/quantum_linux_bridge
- LIBVIRT_VIF_TYPE=ethernet
LIBVIRT_VIF_DRIVER=nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver
LINUX_INTERFACE_DRIVER=nova.network.linux_net.QuantumLinuxBridgeInterfaceDriver
-
- echo "Please enter network device for VLAN trunking:"
- read NETWORK_DEVICE
- openstack-config --set ${LB_CONF} LINUX_BRIDGE physical_interface ${NETWORK_DEVICE}
-;;
-
-"nicira")
- echo "Complete!"
- exit 0;
;;
"openvswitch")
@@ -166,17 +125,10 @@ case "${QUANTUM_PLUGIN}" in
echo "Please install openvswitch"
exit 0
fi
- openstack-config --set ${OVS_CONF} DATABASE sql_connection mysql://${QUANTUM_USER}:${MYSQL_Q_PW}@${QUANTUM_HOST}/ovs_quantum
- LIBVIRT_VIF_TYPE=ethernet
LIBVIRT_VIF_DRIVER=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver
LINUX_INTERFACE_DRIVER=nova.network.linux_net.LinuxOVSInterfaceDriver
;;
-"ryu")
- echo "Complete!"
- exit 0;
-;;
-
esac
echo "Would you like to update the nova configuration files? (y/n): "
@@ -189,34 +141,35 @@ y|Y)
exit 0
esac
+# Keystone specific
+OS_USERNAME=${OS_USERNAME:-admin}
+OS_PASSWORD=${OS_PASSWORD:-verybadpass}
+OS_AUTH_URL=${OS_AUTH_URL:-http://127.0.0.1:35357/v2.0/}
+OS_TENANT_NAME=${OS_TENANT_NAME:-admin}
+
# If OpenStack is installed then configure nova.conf
if ! [ -e "${NOVA_CONF}" ]; then
- echo "Please install OpenStack compute and then set the value in /etc/nova/nova.conf DEFAULT section"
- echo "network_manager=nova.network.quantum.manager.QuantumManager"
- echo "quantum_connection_host=${QUANTUM_HOST}"
- echo "quantum_connection_port 9696"
- echo "quantum_use_dhcp True"
- echo "scheduler_driver ${SCHEDULER_DRIVER}"
- echo "libvirt_vif_driver ${LIBVIRT_VIF_DRIVER}"
- echo "libvirt_vif_type ${LIBVIRT_VIF_TYPE}"
- echo "linuxnet_interface_driver ${LINUX_INTERFACE_DRIVER}"
+ echo "Please install OpenStack compute and then set the values"
+ echo "in /etc/nova/nova.conf DEFAULT section"
+ echo " network_api_class=nova.network.quantumv2.api.API"
+ echo " quantum_admin_username=${OS_USERNAME}"
+ echo " quantum_admin_password=${OS_PASSWORD}"
+ echo " quantum_admin_auth_url=${OS_AUTH_URL}"
+ echo " quantum_auth_strategy=keystone"
+ echo " quantum_admin_tenant_name=${OS_TENANT_NAME}"
+ echo " quantum_url=http://${Q_HOST}:${Q_PORT}"
+ echo " libvirt_vif_type=ethernet"
+ echo " libvirt_vif_driver=${LIBVIRT_VIF_DRIVER}"
else
- openstack-config --set ${NOVA_CONF} DEFAULT network_manager nova.network.quantum.manager.QuantumManager
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_connection_host ${QUANTUM_HOST}
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_connection_port 9696
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_use_dhcp True
- if [ ${SCHEDULER_DRIVER} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT scheduler_driver ${SCHEDULER_DRIVER}
- fi
- if [ ${LIBVIRT_VIF_DRIVER} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_driver ${LIBVIRT_VIF_DRIVER}
- fi
- if [ ${LIBVIRT_VIF_TYPE} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_type ${LIBVIRT_VIF_TYPE}
- fi
- if [ ${LINUX_INTERFACE_DRIVER} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT linuxnet_interface_driver ${LINUX_INTERFACE_DRIVER}
- fi
+ openstack-config --set ${NOVA_CONF} DEFAULT network_api_class nova.network.quantumv2.api.API
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_username ${OS_USERNAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_password ${OS_PASSWORD}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_auth_url ${OS_AUTH_URL}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_auth_strategy keystone
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_tenant_name ${OS_TENANT_NAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_url=http://${Q_HOST}:${Q_PORT}
+ openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_type ethernet
+ openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_driver ${LIBVIRT_VIF_DRIVER}
fi
echo "Configuration updates complete!"
diff --git a/quantum-server-setup b/quantum-server-setup
old mode 100644
new mode 100755
index 1a02a8f..ceff08c
--- a/quantum-server-setup
+++ b/quantum-server-setup
@@ -16,7 +16,7 @@
#
# The script supports the plugins below
-declare -a SUPPORTED_PLUGINS=(cisco linuxbridge nicira openvswitch ryu)
+declare -a SUPPORTED_PLUGINS=(linuxbridge openvswitch)
#
# Print --help output and exit.
@@ -84,10 +84,17 @@ is_valid_plugin() {
ASSUME_YES=""
QUANTUM_USER=quantum
MYSQL_Q_PW=quantum
-CISCO_CONF=/etc/quantum/plugins/cisco/db_conn.ini
-Q_CONF=/etc/quantum/plugins.ini
+Q_CONF=/etc/quantum/quantum.conf
LB_CONF=/etc/quantum/plugins/linuxbridge/linuxbridge_conf.ini
OVS_CONF=/etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini
+Q_HOST='hostname'
+Q_PORT=9696
+
+# Keystone specific
+OS_USERNAME=${OS_USERNAME:-admin}
+OS_PASSWORD=${OS_PASSWORD:-verybadpass}
+OS_AUTH_URL=${OS_AUTH_URL:-http://127.0.0.1:35357/v2.0/}
+OS_TENANT_NAME=${OS_TENANT_NAME:-admin}
# Nova specific
NOVA_CONF=/etc/nova/nova.conf
@@ -157,20 +164,9 @@ if ! [ -e "/etc/quantum/plugins/${QUANTUM_PLUGIN}" ]; then
fi
case "${QUANTUM_PLUGIN}" in
-"cisco")
- DB_NAME="quantum_l2network"
- openstack-config --set ${Q_CONF} PLUGIN provider quantum.plugins.cisco.l2network_plugin.L2Network
-;;
-
"linuxbridge")
DB_NAME="quantum_linux_bridge"
- openstack-config --set ${Q_CONF} PLUGIN provider quantum.plugins.linuxbridge.LinuxBridgePlugin.LinuxBridgePlugin
-;;
-
-"nicira")
- openstack-config --set ${Q_CONF} PLUGIN provider quantum.plugins.nicira.nicira_nvp_plugin.QuantumPlugin.NvpPlugin
- echo "No database support"
- exit 0;
+ Q_PLUGIN_CLASS="quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2"
;;
"openvswitch")
@@ -180,16 +176,17 @@ case "${QUANTUM_PLUGIN}" in
exit 0
fi
DB_NAME="ovs_quantum"
- openstack-config --set ${Q_CONF} PLUGIN provider quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPlugin
+ Q_PLUGIN_CLASS="quantum.plugins.linuxbridge.lb_quantum_plugin.LinuxBridgePluginV2"
;;
+esac
-"ryu")
- openstack-config --set ${Q_CONF} PLUGIN provider quantum.plugins.ryu.ryu_quantum_plugin.RyuQuantumPlugin
- echo "No database support required"
- exit 0;
-;;
+# Update quantum.conf
+# Plugin
+openstack-config --set ${Q_CONF} DEFAULT core_plugin $Q_PLUGIN_CLASS
+# QPID
+openstack-config --set ${Q_CONF} DEFAULT rpc_backend quantum.openstack.common.rpc.impl_qpid
+openstack-config --set ${Q_CONF} DEFAULT qpid_hostname localhost
-esac
echo "Plugin: ${QUANTUM_PLUGIN} => Database: ${DB_NAME}"
# Make sure MySQL is installed.
@@ -311,15 +308,6 @@ mysql -u root ${MYSQL_ROOT_PW_ARG} -e "create database ${DB_NAME}"
# Configure database specifics
case "${QUANTUM_PLUGIN}" in
-"cisco")
- openstack-config --set ${CISCO_CONF} DATABASE user ${QUANTUM_USER}
- openstack-config --set ${CISCO_CONF} DATABASE pass ${MYSQL_Q_PW}
- openstack-config --set ${CISCO_CONF} DATABASE host `hostname`
- SCHEDULER_DRIVER=quantum.plugins.cisco.nova.quantum_port_aware_scheduler.QuantumPortAwareScheduler
- LIBVIRT_VIF_DRIVER=quantum.plugins.cisco.nova.vifdirect.Libvirt802dot1QbhDriver
- LIBVIRT_VIF_TYPE=802.1Qbh
-;;
-
"linuxbridge")
mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on quantum_linux_bridge.* to '${QUANTUM_USER}'@'%'"
mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on quantum_linux_bridge.* to '${QUANTUM_USER}'@'localhost'"
@@ -329,7 +317,6 @@ case "${QUANTUM_PLUGIN}" in
read NETWORK_DEVICE
openstack-config --set ${LB_CONF} LINUX_BRIDGE physical_interface ${NETWORK_DEVICE}
- LIBVIRT_VIF_TYPE=ethernet
LIBVIRT_VIF_DRIVER=nova.virt.libvirt.vif.QuantumLinuxBridgeVIFDriver
LINUX_INTERFACE_DRIVER=nova.network.linux_net.QuantumLinuxBridgeInterfaceDriver
;;
@@ -338,7 +325,6 @@ case "${QUANTUM_PLUGIN}" in
mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on ovs_quantum.* to '${QUANTUM_USER}'@'%'"
mysql -u root ${MYSQL_ROOT_PW_ARG} -e "grant all on ovs_quantum.* to '${QUANTUM_USER}'@'localhost'"
openstack-config --set ${OVS_CONF} DATABASE sql_connection mysql://${QUANTUM_USER}:${MYSQL_Q_PW}@`hostname`/ovs_quantum
- LIBVIRT_VIF_TYPE=ethernet
LIBVIRT_VIF_DRIVER=nova.virt.libvirt.vif.LibvirtOpenVswitchDriver
LINUX_INTERFACE_DRIVER=nova.network.linux_net.LinuxOVSInterfaceDriver
;;
@@ -358,31 +344,27 @@ esac
if ! [ -e "${NOVA_CONF}" ]; then
echo "Please install OpenStack compute and then set the values"
echo "in /etc/nova/nova.conf DEFAULT section"
- echo " network_manager=nova.network.quantum.manager.QuantumManager"
- echo " quantum_connection_host=`hostname`"
- echo " quantum_connection_port=9696"
- echo " quantum_use_dhcp=True"
- echo " scheduler_driver=${SCHEDULER_DRIVER}"
- echo " libvirt_vif_driver=${LIBVIRT_VIF_DRIVER}"
- echo " libvirt_vif_type=${LIBVIRT_VIF_TYPE}"
- echo " linuxnet_interface_driver=${LINUX_INTERFACE_DRIVER}"
+ echo " network_api_class nova.network.quantumv2.api.API"
+ echo " quantum_admin_username ${OS_USERNAME}"
+ echo " quantum_admin_password ${OS_PASSWORD}"
+ echo " quantum_admin_auth_url ${OS_AUTH_URL}"
+ echo " quantum_auth_strategy keystone"
+ echo " quantum_admin_tenant_name ${OS_TENANT_NAME}"
+ echo " quantum_url=http://${Q_HOST}:${Q_PORT}"
+ echo " libvirt_vif_type ethernet"
+ echo " libvirt_vif_driver ${LIBVIRT_VIF_DRIVER}"
+ echo " libvirt_vif_type ${LIBVIRT_VIF_TYPE}"
else
- openstack-config --set ${NOVA_CONF} DEFAULT network_manager nova.network.quantum.manager.QuantumManager
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_connection_host `hostname`
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_connection_port 9696
- openstack-config --set ${NOVA_CONF} DEFAULT quantum_use_dhcp True
- if [ ${SCHEDULER_DRIVER} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT scheduler_driver ${SCHEDULER_DRIVER}
- fi
- if [ ${LIBVIRT_VIF_DRIVER} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_driver ${LIBVIRT_VIF_DRIVER}
- fi
- if [ ${LIBVIRT_VIF_TYPE} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_type ${LIBVIRT_VIF_TYPE}
- fi
- if [ ${LINUX_INTERFACE_DRIVER} ]; then
- openstack-config --set ${NOVA_CONF} DEFAULT linuxnet_interface_driver ${LINUX_INTERFACE_DRIVER}
- fi
+ openstack-config --set ${NOVA_CONF} DEFAULT network_api_class nova.network.quantumv2.api.API
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_username ${OS_USERNAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_password ${OS_PASSWORD}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_auth_url ${OS_AUTH_URL}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_auth_strategy keystone
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_admin_tenant_name ${OS_TENANT_NAME}
+ openstack-config --set ${NOVA_CONF} DEFAULT quantum_url=http://${Q_HOST}:${Q_PORT}
+ openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_type ethernet
+ openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_driver ${LIBVIRT_VIF_DRIVER}
+ openstack-config --set ${NOVA_CONF} DEFAULT libvirt_vif_type ${LIBVIRT_VIF_TYPE}
fi
echo "Configuration updates complete!"
diff --git a/sources b/sources
index e841524..8475089 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-f5dd47556fcfc7621d21d64db74a5903 quantum-2012.2~f2.tar.gz
+8cd5cb28456cd9c5362edff0254e198e quantum-2012.2~rc1~20120911.1224.tar.gz
More information about the scm-commits
mailing list