[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