Bug #1012418 - quantum agent for OVS does not install properly on Xen XCP
This change added the feature to package and install the ovs-quantum-agent inside XS and XCP, added an option on Makefile to gen and install using python2.6 ( by default it will use 2.4 ) Change-Id: I8860d7dcb7e7b74125784cb0f33c6ca03b37702b
This commit is contained in:
parent
163d15b383
commit
8a5c0bbda5
@ -1,18 +1,48 @@
|
|||||||
QUANTUM_PATH=../../../
|
|
||||||
|
|
||||||
# TODO(bgh): DIST_DIR and target for plugin
|
# TODO(bgh): DIST_DIR and target for plugin
|
||||||
|
PHONY: help
|
||||||
|
|
||||||
AGENT_DIST_DIR=ovs_quantum_agent
|
AGENT_DIST_DIR=ovs_quantum_agent
|
||||||
AGENT_DIST_TARBALL=ovs_quantum_agent.tgz
|
AGENT_DIST_TARBALL=ovs_quantum_agent.tgz
|
||||||
|
VERSION=$(shell python -c "import sys ; sys.path.append('../../../quantum/') ; import version ; print version.canonical_version_string()")
|
||||||
|
XAPI_PLUGINS_DIR=$(AGENT_DIST_DIR)/build/ovs-quantum-agent-$(VERSION)/etc/xapi.d/plugins
|
||||||
|
RPM_BUILD_ROOT=$(AGENT_DIST_DIR)/build/rpm
|
||||||
|
|
||||||
agent-dist: distclean
|
help:
|
||||||
mkdir $(AGENT_DIST_DIR)
|
@echo "make agent-dist-xen - to create the ovs-quantum-agent-${VERSION}-1.noarch.rpm"
|
||||||
cp agent/*.py $(AGENT_DIST_DIR)
|
@echo "make agent-dist-xen-python26 - to create ovs-quantum-agent-${VERSION}-1.noarch.rpm and use python2.6"
|
||||||
|
|
||||||
|
agent-dist-xen:QUANTUM_LIBS=$(AGENT_DIST_DIR)/build/ovs-quantum-agent-$(VERSION)/usr/lib/python2.4/site-packages
|
||||||
|
agent-dist-xen-python26:QUANTUM_LIBS=$(AGENT_DIST_DIR)/build/ovs-quantum-agent-$(VERSION)/usr/lib/python2.6/site-packages
|
||||||
|
|
||||||
|
agent-dist-xen agent-dist-xen-python26: distclean
|
||||||
|
yum --enablerepo=base install rpm-build
|
||||||
|
mkdir -p $(XAPI_PLUGINS_DIR)
|
||||||
|
mkdir -p $(QUANTUM_LIBS)/{quantum/plugins/openvswitch/common,quantum/openstack/common}
|
||||||
|
mkdir -p $(QUANTUM_LIBS)/quantum/agent/linux
|
||||||
|
mkdir -p $(RPM_BUILD_ROOT)/BUILD $(RPM_BUILD_ROOT)/SOURCES
|
||||||
|
mkdir -p $(RPM_BUILD_ROOT)/SRPMS $(RPM_BUILD_ROOT)/RPMS $(RPM_BUILD_ROOT)/SPECS
|
||||||
|
cp agent/*.py $(XAPI_PLUGINS_DIR)
|
||||||
cp agent/*.sh $(AGENT_DIST_DIR)
|
cp agent/*.sh $(AGENT_DIST_DIR)
|
||||||
|
cp agent/ovs-quantum-agent-xs_xcp.spec $(AGENT_DIST_DIR)
|
||||||
|
sed -i "s/VERSION/$(VERSION)/" $(AGENT_DIST_DIR)/ovs-quantum-agent-xs_xcp.spec
|
||||||
cp README $(AGENT_DIST_DIR)
|
cp README $(AGENT_DIST_DIR)
|
||||||
cp ../../../etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini $(AGENT_DIST_DIR)
|
cp ../../../etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini $(XAPI_PLUGINS_DIR)
|
||||||
tar -zcvf $(AGENT_DIST_TARBALL) $(AGENT_DIST_DIR)/
|
cp ../../agent/linux/{ovs_lib.py,utils.py,__init__.py} $(QUANTUM_LIBS)/quantum/agent/linux
|
||||||
@echo "Agent tarball created: $(AGENT_DIST_TARBALL)"
|
test -d $(AGENT_DIST_DIR)/build/ovs-quantum-agent-$(VERSION)/usr/lib/python2.6/site-packages && \
|
||||||
|
sed -i 's/Requires:.*/Requires: python26 python26-sqlalchemy python26-mysqldb/' \
|
||||||
|
$(AGENT_DIST_DIR)/ovs-quantum-agent-xs_xcp.spec || true
|
||||||
|
test -d $(AGENT_DIST_DIR)/build/ovs-quantum-agent-$(VERSION)/usr/lib/python2.6/site-packages && \
|
||||||
|
sed -i 's/env python/env python2.6/' $(XAPI_PLUGINS_DIR)/ovs_quantum_agent.py || true
|
||||||
|
cp ../../__init__.py $(QUANTUM_LIBS)/quantum/
|
||||||
|
cp ../../agent/__init__.py $(QUANTUM_LIBS)/quantum/agent/
|
||||||
|
cp ../__init__.py $(QUANTUM_LIBS)/quantum/plugins/
|
||||||
|
cp __init__.py $(QUANTUM_LIBS)/quantum/plugins/openvswitch/
|
||||||
|
cp common/{config.py,__init__.py} $(QUANTUM_LIBS)/quantum/plugins/openvswitch/common/
|
||||||
|
cp ../../openstack/__init__.py $(QUANTUM_LIBS)/quantum/openstack/
|
||||||
|
cp ../../openstack/common/{cfg.py,iniparser.py,__init__.py} $(QUANTUM_LIBS)/quantum/openstack/common/
|
||||||
|
tar -czvpf ${RPM_BUILD_ROOT}/SOURCES/ovs-quantum-agent-${VERSION}.tgz -C $(AGENT_DIST_DIR)/build ovs-quantum-agent-${VERSION}
|
||||||
|
rpmbuild -ba --define "_topdir $(shell pwd)/$(RPM_BUILD_ROOT)" --clean $(AGENT_DIST_DIR)/ovs-quantum-agent-xs_xcp.spec
|
||||||
|
@echo "Agent package created: ovs_quantum_agent/build/rpm/RPMS/noarch/ovs-quantum-agent-${VERSION}-1.noarch.rpm"
|
||||||
@echo "See README for installation details"
|
@echo "See README for installation details"
|
||||||
|
|
||||||
all:
|
all:
|
||||||
@ -23,5 +53,3 @@ clean:
|
|||||||
distclean:
|
distclean:
|
||||||
-rm -rf $(AGENT_DIST_DIR)
|
-rm -rf $(AGENT_DIST_DIR)
|
||||||
-rm -f $(AGENT_DIST_TARBALL)
|
-rm -f $(AGENT_DIST_TARBALL)
|
||||||
|
|
||||||
PHONY: agent-dist clean distclean
|
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
Name: ovs-quantum-agent
|
||||||
|
Version: VERSION
|
||||||
|
Release: 1
|
||||||
|
License: Apache2
|
||||||
|
Group: System Environment/Base
|
||||||
|
Summary: Ovs Quantum Agent
|
||||||
|
Source: %{name}-%{version}.tgz
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
|
BuildArch: noarch
|
||||||
|
Requires: python python-sqlalchemy
|
||||||
|
|
||||||
|
%description
|
||||||
|
OVS Quantum Agent
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf --preserve-root %{buildroot}
|
||||||
|
install -d -m 755 %{buildroot}
|
||||||
|
cp -af * %{buildroot}
|
||||||
|
pushd %{buildroot}
|
||||||
|
find ./usr ./etc -type f -o -type l | sed "s/\.//" > %{_builddir}/%{name}-%{version}/%{name}-%{version}-%{release}-filelist
|
||||||
|
popd
|
||||||
|
|
||||||
|
%clean
|
||||||
|
[ %{buildroot} != / ] && rm -rf %{buildroot}
|
||||||
|
|
||||||
|
%files -f %{_builddir}/%{name}-%{version}/%{name}-%{version}-%{release}-filelist
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Thu Jun 14 2012 Juliano Martinez <juliano.martinez@locaweb.com.br> - VERSION
|
||||||
|
- Creating quantum ovs agent package
|
@ -1,33 +1,38 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
CONF_FILE=/etc/xapi.d/plugins/ovs_quantum_plugin.ini
|
CONF_FILE=/etc/xapi.d/plugins/ovs_quantum_plugin.ini
|
||||||
|
VERSION=$(python -c "import sys ; sys.path.append('../../../../quantum/') ; import version ; print version.canonical_version_string()")
|
||||||
|
|
||||||
if [ ! -d /etc/xapi.d/plugins ]; then
|
if [ ! -d /etc/xapi.d/plugins ]; then
|
||||||
echo "Am I on a xenserver? I can't find the plugins directory!"
|
echo "Am I on a xenserver? I can't find the plugins directory!"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
|
rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
|
||||||
|
|
||||||
yum --enablerepo=epel -y install python-sqlalchemy0.5
|
if [ "$1" == "with_python_2.6" ] ; then
|
||||||
yum --enablerepo=base -y install MySQL-python
|
yum --enablerepo=base -y install mx
|
||||||
|
yum --enablerepo=epel -y install python26 python26-sqlalchemy python26-mysqldb
|
||||||
|
else
|
||||||
|
yum --enablerepo=epel -y install python-sqlalchemy
|
||||||
|
yum --enablerepo=base -y install MySQL-python
|
||||||
|
fi
|
||||||
|
|
||||||
sed -i 's/enabled=1/enabled=0' /etc/yum.repos.d/epel.repo
|
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/epel.repo
|
||||||
|
|
||||||
cp ovs_quantum_agent.py /etc/xapi.d/plugins
|
rpm -Uvh $PWD/build/rpm/RPMS/noarch/ovs-quantum-agent-$VERSION-1.noarch.rpm
|
||||||
cp ovs_quantum_plugin.ini /etc/xapi.d/plugins
|
|
||||||
|
|
||||||
xe network-list name-label="integration-bridge" | grep xapi >/dev/null 2>&1
|
xe network-list name-label="integration-bridge" | grep xapi >/dev/null 2>&1
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
echo "No integration bridge found. Creating."
|
echo "No integration bridge found. Creating."
|
||||||
xe network-create name-label="integration-bridge"
|
xe network-create name-label="integration-bridge"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
BR=$(xe network-list name-label="integration-bridge" | grep "bridge.*:" | awk '{print $4}')
|
BR=$(xe network-list name-label="integration-bridge" | grep "bridge.*:" | awk '{print $4}')
|
||||||
CONF_BR=$(grep integration-bridge ${CONF_FILE} | cut -d= -f2)
|
CONF_BR=$(grep integration-bridge ${CONF_FILE} | cut -d= -f2)
|
||||||
if [ "X$BR" != "X$CONF_BR" ]; then
|
if [ "X$BR" != "X$CONF_BR" ]; then
|
||||||
echo "Integration bridge doesn't match configuration file; fixing."
|
echo "Integration bridge doesn't match configuration file; fixing."
|
||||||
sed -i -e "s/^integration-bridge =.*$/integration-bridge = ${BR}/g" $CONF_FILE
|
sed -i -e "s/^integration-bridge =.*$/integration-bridge = ${BR}/g" $CONF_FILE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Using integration bridge: $BR (make sure this is set in the nova configuration)"
|
echo "Using integration bridge: $BR (make sure this is set in the nova configuration)"
|
||||||
|
Loading…
Reference in New Issue
Block a user