Use integration-packaging project to build ODL Deb

Use docker container from integration-packaging project to build
OpenDaylight deb packages. This change introduce support for systemd
and is a part of uplifting plugin to Fuel 10.

Notice: to build plugin with more than one version of ODL
fuel-plugin-builder needs to be installed from sources, this change is
required: https://review.openstack.org/#/c/311031/

Change-Id: Ib6204c1fa71a844fe42b878352bd987c192ee9dd
Signed-off-by: Michal Skalski <mskalski@mirantis.com>
This commit is contained in:
Michal Skalski 2016-11-20 22:21:00 +01:00
parent 5db5332708
commit 28eb9cd5f2
15 changed files with 92 additions and 546 deletions

View File

@ -1,15 +0,0 @@
module Puppet::Parser::Functions
newfunction(:odl_package_name, :arity => 1, :type => :rvalue, :doc => <<-EOS
@desc Check if feature which require experimental odl is enabled.
@return String with odl deb package name.
EOS
) do |args|
odl_settings = args[0]
experimental_odl = odl_settings['metadata']['use_experimental_odl']
if experimental_odl.is_a?(Array) and experimental_odl.any? { |feature| odl_settings[feature] }
odl_settings['metadata']['experimental_odl_deb']
else
odl_settings['metadata']['odl_deb']
end
end
end

View File

@ -6,20 +6,33 @@ class opendaylight::install (
$management_vip = hiera('management_vip')
$conf_dir = '/opt/opendaylight/etc'
$jetty_port = $opendaylight::jetty_port
$odl_package = odl_package_name($opendaylight::odl_settings)
$odl_package = $opendaylight::odl_settings['deb_version']
$java_min_mem = $opendaylight::odl_settings['java_min_mem']
$java_max_mem = $opendaylight::odl_settings['java_max_mem']
$java_extra_opts = $opendaylight::odl_settings['java_extra_opts']
$manage_l3_traffic = $opendaylight::odl_settings['enable_l3_odl'] ? {
true => 'yes',
default => 'no',
}
package { $odl_package:
ensure => installed,
package { 'opendaylight':
ensure => $odl_package,
}
# quagga
class { 'opendaylight::quagga':
before => Service['opendaylight']
#Temporary solution until number of allowed open files
#will be fixed in main systemd service file
file {'/etc/systemd/system/opendaylight.service.d':
ensure => directory,
} ->
file {'/etc/systemd/system/opendaylight.service.d/override.conf':
ensure => file,
content => template('opendaylight/override.conf.erb'),
} ~>
exec {'systemctl-daemon-reload':
refreshonly => true,
command => 'systemctl daemon-reload',
path => ['/bin', '/user/bin'],
}
firewall {'215 odl':
@ -40,6 +53,12 @@ class opendaylight::install (
owner => 'odl',
content => template('opendaylight/jetty.xml.erb')
}
file { '/opt/opendaylight/bin/setenv':
ensure => file,
owner => 'odl',
mode => '0755',
content => template('opendaylight/setenv.erb')
}
$karaf_custom_properties_file = {
'path' => "${conf_dir}/custom.properties",
@ -48,8 +67,6 @@ class opendaylight::install (
}
$karaf_custom_properties = {
'' => {
'of.address' => $bind_address,
'of.listenPort' => '6653',
'ovsdb.of.version' => '1.3',
'ovsdb.l3.fwd.enabled' => $manage_l3_traffic,
}
@ -68,9 +85,9 @@ class opendaylight::install (
value => $enabled_features,
}
Package[$odl_package] ->
Package['opendaylight'] ->
Ini_setting <||> ->
Firewall <||> ->
File <||> ->
File <||> ~>
Service['opendaylight']
}

View File

@ -0,0 +1,2 @@
[Service]
LimitNOFILE=102400

View File

@ -0,0 +1,3 @@
export JAVA_MIN_MEM=<%= @java_min_mem %>
export JAVA_MAX_MEM=<%= @java_max_mem %>
export EXTRA_JAVA_OPTS=<%= @java_extra_opts %>

View File

@ -79,6 +79,30 @@ attributes:
regex:
source: ^([1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$
error: 'Invalid port number'
java_min_mem:
value: '1g'
label: 'Java -Xms option'
description: 'Initial memory allocation pool.'
weight: 80
type: "text"
java_max_mem:
value: '2g'
label: 'Java -Xmx option'
description: 'Maximum memory allocation pool.'
weight: 81
type: "text"
java_extra_opts:
value: '-XX:+UseG1GC'
label: 'Java extra options'
description: 'Additional options.'
weight: 82
type: "text"
deb_version:
value: '5.1.0-1'
label: 'OpenDaylight package version'
description: 'Plugin can be build with more than one version of ODL.'
weight: 90
type: "text"
metadata:
restrictions:
- "cluster:net_provider != 'neutron'": "Only neutron is supported by OpenDaylight"
@ -110,10 +134,6 @@ attributes:
- odl-sfc-openflow-renderer
vpn:
- odl-vpnservice-openstack
odl_deb: opendaylight
experimental_odl_deb: opendaylight-experimental
use_experimental_odl:
- enable_bgpvpn
default_credentials:
user: admin
password: admin

View File

@ -1,13 +0,0 @@
http://mirror.centos.org/centos/6/os/x86_64/Packages/java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/gdk-pixbuf2-2.24.1-5.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/sgml-common-0.6.3-33.el6.noarch.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/GConf2-2.28.0-6.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/ORBit2-2.14.17-5.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/ttmkfdir-3.0.9-32.1.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/libIDL-0.8.13-2.1.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/jpackage-utils-1.7.5-3.14.el6.noarch.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/tzdata-java-2015e-1.el6.noarch.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/xorg-x11-fonts-Type1-7.2-11.el6.noarch.rpm
http://mirror.centos.org/centos/6/os/x86_64/Packages/giflib-4.1.6-3.1.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64//Packages/gtk2-2.24.23-6.el6.x86_64.rpm
http://mirror.centos.org/centos/6/os/x86_64//Packages/glib2-2.28.8-4.el6.x86_64.rpm

View File

@ -1,31 +0,0 @@
#!/bin/bash
# chkconfig: 345 98 2
# description: ODL controller
# OpenDaylight service controller script
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
USER=odl
cd /opt/opendaylight
case "$1" in
start)
/bin/su -m $USER -s /bin/bash -c ./bin/start
;;
stop)
/bin/su -m $USER -s /bin/bash -c ./bin/stop
;;
status)
PID=`ps aux | grep java | grep karaf | awk '{print $2}'`
if test -z $PID
then
echo "ODL is down..."
exit 1
else
echo "ODL is running... PID $PID"
exit 0
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
;;
esac

View File

@ -1,6 +0,0 @@
#!/bin/sh
set -e
adduser --system --home /opt/opendaylight --shell /sbin/nologin odl
/sbin/chkconfig --add opendaylight
chown -R odl:odl /opt/opendaylight

View File

@ -1,47 +0,0 @@
# vim:set ft=upstart ts=2 et:
description "OpenDaylight controller"
author "mskalski@miranits.com"
start on runlevel [2345]
stop on runlevel [!2345]
setgid odl
setuid odl
env KARAF_HOME="/opt/opendaylight"
env JAVA_OPTS="-server -Xms1g -Xmx2g -XX:+UseG1GC -XX:+UnlockDiagnosticVMOptions -XX:+UnsyncloadClass -Dcom.sun.management.jmxremote"
env OPTS="-Dkaraf.startLocalConsole=false -Dkaraf.startRemoteShell=true"
env MAIN="org.apache.karaf.main.Main"
env DEBUG="false"
limit nofile 102400 112640
chdir /opt/opendaylight
script
# Try to find lang used in system
test -f /etc/default/locale && . /etc/default/locale || true
export LANG=$LANG
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/jre/bin/java::")
export KARAF_BASE="$KARAF_HOME"
export KARAF_DATA="$KARAF_BASE/data"
export KARAF_ETC="$KARAF_BASE/etc"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$KARAF_BASE/lib"
export JAVA_ENDORSED_DIRS="${JAVA_HOME}/jre/lib/endorsed:${JAVA_HOME}/lib/endorsed:${KARAF_HOME}/lib/endorsed"
export JAVA_EXT_DIRS="${JAVA_HOME}/jre/lib/ext:${JAVA_HOME}/lib/ext:${KARAF_HOME}/lib/ext"
if [ "$DEBUG" = true ]; then
JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7586 ${JAVA_OPTS}"
fi
for file in "$KARAF_HOME"/lib/karaf*.jar
do
if [ -z "$CLASSPATH" ]; then
CLASSPATH="$file"
else
CLASSPATH="$CLASSPATH:$file"
fi
done
exec ${JAVA_HOME}/bin/java $JAVA_OPTS -Djava.endorsed.dirs="${JAVA_ENDORSED_DIRS}" -Djava.ext.dirs="${JAVA_EXT_DIRS}" -Dkaraf.instances="${KARAF_HOME}/instances" -Dkaraf.home="$KARAF_HOME" -Dkaraf.base="$KARAF_BASE" -Dkaraf.data="$KARAF_DATA" -Dkaraf.etc="$KARAF_ETC" -Djava.io.tmpdir="$KARAF_DATA/tmp" -Djava.util.logging.config.file="$KARAF_BASE/etc/java.util.logging.properties" $KARAF_OPTS $OPTS -classpath "$CLASSPATH" $MAIN
end script

View File

@ -1,6 +0,0 @@
#!/bin/sh
set -e
adduser --quiet --system --group --no-create-home --home /opt/opendaylight odl
chown -R odl:odl /opt/opendaylight
chown odl:odl /etc/init/opendaylight.conf

View File

@ -1,19 +0,0 @@
FROM ubuntu:16.04
RUN apt-get update
RUN apt-get install -y apt-utils build-essential git libmaven-jar-plugin-java libmaven-javadoc-plugin-java\
libxml-xpath-perl maven openjdk-8-jdk python-software-properties software-properties-common\
sudo wget
RUN echo "ALL ALL=NOPASSWD: ALL" > /etc/sudoers.d/open-sudo
RUN chmod 0440 /etc/sudoers.d/open-sudo
ENV HOME=/root
ADD ./patches /root/patches
ADD settings.xml /root/.m2/settings.xml
ADD ./env.sh /root/env.sh
ADD ./buildPatchedOpenflowjavaJarball.sh /root/buildPatchedOpenflowjavaJarball.sh
RUN chmod +x /root/buildPatchedOpenflowjavaJarball.sh
RUN /root/buildPatchedOpenflowjavaJarball.sh

View File

@ -1,24 +0,0 @@
#!/bin/bash
source /root/env.sh
REPO=${REPO:-openflowplugin}
REPOURL="https://github.com/opendaylight/${REPO}.git"
ODLTAG=${ODLTAG:-'stable/beryllium'}
MVNREM="/tmp/r"
PDIR="${HOME}/patches"
PFIL="openflowplugin_modify_nsh_subtype.patch"
echo "env:"
echo "HOME: ${HOME}"
echo "REPOURL: ${REPOURL}"
echo "REPO: ${REPO}"
echo "ODLTAG: ${ODLTAG}"
echo "-----------------"
cd $HOME
git clone -b $ODLTAG "$REPOURL" $REPO
cd $REPO
patch -p1 < ${PDIR}/${PFIL}
rm -rf $MVNREM
mvn clean install -Dmaven.repo.local=$MVNREM -Dorg.ops4j.pax.url.mvn.localRepository=$MVNREM source:jar javadoc:jar -nsu -DskipTests

View File

@ -1,144 +0,0 @@
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc1Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc1Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc1Codec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc1Codec.java 2015-09-30 10:52:57.218939666 +0800
@@ -29,7 +29,7 @@
private static final Logger LOG = LoggerFactory.getLogger(SetNshc1Codec.class);
public static final int LENGTH = 16;
- public static final byte NXAST_SET_NSC_SUBTYPE = 34;
+ public static final byte NXAST_SET_NSC_SUBTYPE = 107;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNshc1.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc2Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc2Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc2Codec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc2Codec.java 2015-09-30 10:53:04.550939549 +0800
@@ -24,7 +24,7 @@
*/
public class SetNshc2Codec extends AbstractActionCodec {
public static final int LENGTH = 16;
- public static final byte NXAST_SET_NSC_SUBTYPE = 35;
+ public static final byte NXAST_SET_NSC_SUBTYPE = 108;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNshc2.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc3Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc3Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc3Codec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc3Codec.java 2015-09-30 10:53:11.622939436 +0800
@@ -24,7 +24,7 @@
*/
public class SetNshc3Codec extends AbstractActionCodec {
public static final int LENGTH = 16;
- public static final byte NXAST_SET_NSC_SUBTYPE = 36;
+ public static final byte NXAST_SET_NSC_SUBTYPE = 109;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNshc3.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc4Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc4Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc4Codec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNshc4Codec.java 2015-09-30 10:53:18.511939325 +0800
@@ -24,7 +24,7 @@
*/
public class SetNshc4Codec extends AbstractActionCodec {
public static final int LENGTH = 16;
- public static final byte NXAST_SET_NSC_SUBTYPE = 37;
+ public static final byte NXAST_SET_NSC_SUBTYPE = 110;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNshc4.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNsiCodec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNsiCodec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNsiCodec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNsiCodec.java 2015-09-30 10:52:47.236939825 +0800
@@ -25,7 +25,7 @@
*/
public class SetNsiCodec extends AbstractActionCodec {
public static final int LENGTH = 16;
- public static final byte NXAST_SET_NSI_SUBTYPE = 33;
+ public static final byte NXAST_SET_NSI_SUBTYPE = 106;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNsi.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNspCodec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNspCodec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNspCodec.java 2015-09-30 10:48:23.541944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/action/SetNspCodec.java 2015-09-30 10:52:39.654939947 +0800
@@ -25,7 +25,7 @@
*/
public class SetNspCodec extends AbstractActionCodec {
public static final int LENGTH = 16;
- public static final byte NXAST_SET_NSP_SUBTYPE = 32;
+ public static final byte NXAST_SET_NSP_SUBTYPE = 105;
public static final NiciraActionSerializerKey SERIALIZER_KEY =
new NiciraActionSerializerKey(EncodeConstants.OF13_VERSION_ID, ActionSetNsp.class);
public static final NiciraActionDeserializerKey DESERIALIZER_KEY =
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc1Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc1Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc1Codec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc1Codec.java 2015-09-30 10:52:05.113940499 +0800
@@ -27,7 +27,7 @@
public class Nshc1Codec extends AbstractMatchCodec {
private static final int VALUE_LENGTH = 4;
- private static final int NXM_FIELD_CODE = 39;
+ private static final int NXM_FIELD_CODE = 107;
public static final MatchEntrySerializerKey<Nxm1Class, NxmNxNshc1> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxNshc1.class);
public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc2Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc2Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc2Codec.java 2015-09-30 10:48:23.542944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc2Codec.java 2015-09-30 10:52:03.282940528 +0800
@@ -27,7 +27,7 @@
public class Nshc2Codec extends AbstractMatchCodec {
private static final int VALUE_LENGTH = 4;
- private static final int NXM_FIELD_CODE = 40;
+ private static final int NXM_FIELD_CODE = 108;
public static final MatchEntrySerializerKey<Nxm1Class, NxmNxNshc2> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxNshc2.class);
public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc3Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc3Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc3Codec.java 2015-09-30 10:48:23.543944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc3Codec.java 2015-09-30 10:52:14.114940355 +0800
@@ -27,7 +27,7 @@
public class Nshc3Codec extends AbstractMatchCodec {
private static final int VALUE_LENGTH = 4;
- private static final int NXM_FIELD_CODE = 41;
+ private static final int NXM_FIELD_CODE = 109;
public static final MatchEntrySerializerKey<Nxm1Class, NxmNxNshc3> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxNshc3.class);
public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc4Codec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc4Codec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc4Codec.java 2015-09-30 10:48:23.543944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/Nshc4Codec.java 2015-09-30 10:52:22.790940216 +0800
@@ -27,7 +27,7 @@
public class Nshc4Codec extends AbstractMatchCodec {
private static final int VALUE_LENGTH = 4;
- private static final int NXM_FIELD_CODE = 42;
+ private static final int NXM_FIELD_CODE = 110;
public static final MatchEntrySerializerKey<Nxm1Class, NxmNxNshc4> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxNshc4.class);
public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NsiCodec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NsiCodec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NsiCodec.java 2015-09-30 10:48:23.543944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NsiCodec.java 2015-09-30 10:51:49.440940749 +0800
@@ -28,7 +28,7 @@
public class NsiCodec extends AbstractMatchCodec {
private static final int VALUE_LENGTH = 1;
- private static final int NXM_FIELD_CODE = 38;
+ private static final int NXM_FIELD_CODE = 106;
public static final MatchEntrySerializerKey<Nxm1Class, NxmNxNsi> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxNsi.class);
public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(
diff -ruN a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NspCodec.java b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NspCodec.java
--- a/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NspCodec.java 2015-09-30 10:48:23.543944040 +0800
+++ b/extension/openflowjava-extension-nicira/src/main/java/org/opendaylight/openflowjava/nx/codec/match/NspCodec.java 2015-09-30 10:51:41.146940882 +0800
@@ -28,7 +28,7 @@
public class NspCodec extends AbstractMatchCodec {
private static final int VALUE_LENGTH = 4;
- private static final int NXM_FIELD_CODE = 37;
+ private static final int NXM_FIELD_CODE = 105;
public static final MatchEntrySerializerKey<Nxm1Class, NxmNxNsp> SERIALIZER_KEY = new MatchEntrySerializerKey<>(
EncodeConstants.OF13_VERSION_ID, Nxm1Class.class, NxmNxNsp.class);
public static final MatchEntryDeserializerKey DESERIALIZER_KEY = new MatchEntryDeserializerKey(

View File

@ -1,250 +1,59 @@
#!/bin/bash
# Add here any the actions which are required before plugin build
# like packages building, packages downloading from mirrors and so on.
# The script should return 0 if there were no errors.
set -eux
CACHE=${CACHE:-false}
RENEW=${RENEW:-false}
DIR="$(dirname `readlink -f $0`)"
USE_CACHE=${USE_CACHE:-true}
ODL_INTEGRATION_PACKAGING=${ODL_INTEGRATION_PACKAGING:-https://github.com/opendaylight/integration-packaging}
if [ "$CACHE" == true ];then
export cache_dir=$DIR/.cache/;
if [ -e $cache_dir ] && [[ "$RENEW" == false ]];then
export OPNFV_QUAGGE_PACKAGING_REPO=$cache_dir/opnfv-quagga/;
export NETWORKING_ODL_REPO=$cache_dir/networking_odl/;
export ODL_TARBALL_LOCATION=$cache_dir/karaf-odl.tar.gz;
fi
fi
# Where we can find odl karaf distribution tarball
# can be http(s) url or absolute path
ODL_TARBALL_LOCATION=${ODL_TARBALL_LOCATION:-https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.5.0-Boron/distribution-karaf-0.5.0-Boron.tar.gz}
ODL_EXPERIMENTAL_TARBALL_LOCATION=${ODL_EXPERIMENTAL_TARBALL_LOCATION:-https://nexus.opendaylight.org/content/repositories/public/org/opendaylight/integration/distribution-karaf/0.4.3-Beryllium-SR3/distribution-karaf-0.4.3-Beryllium-SR3.tar.gz}
ODL_EXPERIMENTAL_DEB_NAME=${ODL_EXPERIMENTAL_DEB_NAME:-opendaylight-experimental}
#ODL openflowjava NSH subtype patch related
# The patch's TAG should mach with ODL release being patched
# Normally it is release/beryllium-sr1 for ditribution-karaf-0.4.1-Beryllium-SR1.tar.gz
# release/beryllium-sr2 for ditribution-karaf-0.4.2-Beryllium-SR2.tar.gz
# stable/beryllium for ditribution-karaf-0.4.x-SNAPSHOT.tar.gz
# The patch should be explicitly enabled, since its build time is 1 hour and only applies
# while the openvswitch in fuel-plugin-ovs is not compatible with the actual openflow
# implementation of OpenDayLight. There is a possibility to build the patch separately
# and put into folder odl_package/nsh-pritesh-patch. Remember checking the file's naming
# in this case. If the plugin encounters the supplied jarball it wont build itself but
# will try using the supplied one.
ENA_NSH_SUB_PATCH=${ENA_NSH_SUB_PATCH:-false}
REPO=${REPO:-'openflowplugin'}
ODLTAG=${ODLTAG:-'release/beryllium-sr2'}
JARBALL=${JARBALL:-'openflowjava-extension-nicira'}
bdart=''
#Verion number used in deb/rpm package
ODL_VERSION_NUMBER=${ODL_VERSION_NUMBER:-0.5.0}
ODL_EXPERIMENTAL_VERSION_NUMBER=${ODL_EXPERIMENTAL_VERSION_NUMBER:-0.4.3}
ODL_DESCRIPTION="OpenDaylight SDN Controller"
TMP_NAME="karaf-odl.tar.gz"
#ODL versions to build, separated by space
#Taken from https://github.com/opendaylight/integration-packaging/blob/master/deb/build_vars.yaml
ODL_VERSIONS=${ODL_VERSIONS:-5.1.0.1 5.0.0.1}
#Networking odl
NETWORKING_ODL_REPO=${NETWORKING_ODL_REPO:-https://github.com/openstack/networking-odl.git}
NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/mitaka}
#Opnfv-quagga-packaging
OPNFV_QUAGGE_PACKAGING_REPO=${OPNFV_QUAGGE_PACKAGING_REPO:-https://github.com/nikolas-hermanns/opnfv-quagga-packaging}
OPNFV_QUAGGE_PACKAGING_BRANCH=stable/colorado
# For which systems odl package should be build
BUILD_FOR=${BUILD_FOR:-ubuntu}
NETWORKING_ODL_REPO=${NETWORKING_ODL_REPO:-http://ubuntu-cloud.archive.canonical.com/ubuntu/pool/main/n/networking-odl/}
NETWORKING_ODL_DEB=${NETWORKING_ODL_DEB:-python-networking-odl_2.0.1~git20160926.416a5c7-0ubuntu1~cloud0_all.deb}
DIR="$(dirname `readlink -f $0`)"
TMP_DIR="${DIR}/tmp"
MODULES="${DIR}/deployment_scripts/puppet/modules"
CACHE_DIR="${DIR}/.cache"
CACHE_DEB_DIR="${CACHE_DIR}/integration-packaging/deb/cache"
#Remove temporary files
CLEANUP=${CLEANUP:-true}
function cleanup {
rm -rf "${TMP_DIR}"
}
function download {
wget "$1" -qO $2
}
function unpack {
mkdir "${TMP_DIR}/${2}"
tar xzf $1 --strip-components=1 -C "${TMP_DIR}/${2}"
}
function add_opnfv_quagga {
path=$1
pushd ${TMP_DIR}
git clone $OPNFV_QUAGGE_PACKAGING_REPO opnfv-quagga
pushd opnfv-quagga
git checkout $OPNFV_QUAGGE_PACKAGING_BRANCH
if [ ! -e debian_package/ ];then
sudo apt-get -y install `cat requirements.txt`
make -j6
fi
cp debian_package/* $path
popd
popd
}
#
#ODL patch related
function putbldenv() {
cat >env.sh <<EOF
#!bin/bash
REPO=${REPO}
ODLTAG=${ODLTAG}
EOF
}
function compute_ver() {
local ret=''
local rel=''
local amm=''
local tag=$(echo $1 | cut -d '/' -f 2)
if [ "$tag" != "${tag/-/}" ]; then
rel=$(echo $tag | cut -d '-' -f 1 | sed 's/.*/\u&/')
amm=$(echo $tag | cut -d '-' -f 2 | tr '[:lower:]' '[:upper:]')
ret="${rel}-${amm}"
else
rel=$(echo $tag | sed 's/.*/\u&/')
ret="${rel}"
function prep_build_env {
docker_build_opts="-t odl_deb"
if [ "$USE_CACHE" != true ] || [ ! -d "${CACHE_DIR}/integration-packaging" ] ;then
rm -rf ${CACHE_DIR}/integration-packaging
git clone ${ODL_INTEGRATION_PACKAGING} ${CACHE_DIR}/integration-packaging
docker_build_opts+=" --no-cache"
fi
echo $ret
docker build ${docker_build_opts} ${CACHE_DIR}/integration-packaging/deb
}
function build_jarball() {
local reporoot="/root/${REPO}"
local niciart="extension/${JARBALL}/target"
local artexp="odl_package/nsh-pritesh-patch"
local bld=''
local ver=''
case $1 in
ubuntu)
pushd ${DIR}/ofjavansh
putbldenv
wget -N https://raw.githubusercontent.com/opendaylight/odlparent/stable/beryllium/settings.xml
sudo docker build -t ofjavansh .
container_id=$(sudo docker run -d ofjavansh)
bld=$(echo $ODLTAG | cut -d '/' -f 1)
if [ "$bld" == "release" ] ; then
ver=$(compute_ver $ODLTAG)
else
ver='SNAPSHOT'
fi
mkdir -p ${DIR}/d
sudo docker cp $container_id:${reporoot}/${niciart}/. ${DIR}/d
pushd ${DIR}/d
bdart=$(echo ${JARBALL}-[0-9].[0-9].[0-9]-${ver}.jar)
cp $bdart ${DIR}/${artexp}/
popd
sudo rm -rf ${DIR}/d
popd
;;
*)
echo "Not supported system"
exit 1
;;
esac
function build_odl_deb {
docker run -u $(id -u) --rm -v ${CACHE_DIR}/integration-packaging/deb:/build odl_deb -v ${1//./ }
rm -rf ${CACHE_DIR}/integration-packaging/deb/opendaylight
}
function patch_odl {
local artexp="odl_package/nsh-pritesh-patch"
local TARBASE="opendaylight_src/system/org/opendaylight/openflowplugin/openflowjava-extension-nicira"
local SRC="${DIR}/${artexp}/${bdart}"
echo "patching..."
TARGET=$(echo ${TMP_DIR}/${TARBASE}/*/${bdart})
cp $SRC $TARGET
function in_cache {
[ -f "${CACHE_DEB_DIR}/${1}" ]
}
function patch_networking_odl_deb {
if grep -q "neutron-lib>=0.1.0" $1
then
sed -i -e "s/neutron-lib>=0.1.0/neutron-lib>=0.0.1/" $1
fi
function copy_from_cache {
cp ${CACHE_DEB_DIR}/${1} ${DIR}/repositories/ubuntu/${1}
}
function get_karaf {
if [[ "$1" =~ ^http.* ]]
then
download $1 $2
unpack $2 $3
else
unpack $1 $3
fi
}
command -v docker >/dev/null 2>&1 || { echo >&2 "Docker is required but it's not installed. Aborting."; exit 1; }
function build_pkg {
# clean up
rm -rf ${DIR}/repositories/${1}/*
case $1 in
centos)
pushd "${DIR}/repositories/${1}/"
fpm --force -s dir -t rpm --version "${ODL_VERSION_NUMBER}" --description "${ODL_DESCRIPTION}" --prefix /opt/opendaylight --rpm-init "${DIR}/odl_package/${1}/opendaylight" --after-install "${DIR}/odl_package/${1}/opendaylight-post" --name opendaylight -d "java-1.7.0-openjdk" -C "${TMP_DIR}/opendaylight_src"
popd
;;
ubuntu)
pushd "${DIR}/repositories/${1}/"
fpm --architecture all --force -s dir -t deb -m 'mskalski@mirantis.com' --version "${ODL_VERSION_NUMBER}" --description "${ODL_DESCRIPTION}" --prefix /opt/opendaylight --deb-upstart "${DIR}/odl_package/${1}/opendaylight" --after-install "${DIR}/odl_package/${1}/opendaylight-post" --name opendaylight -d openjdk-8-jre-headless -C "${TMP_DIR}/opendaylight_src"
if [ "$ODL_EXPERIMENTAL_TARBALL_LOCATION" != false ] ; then
fpm --architecture all --force -s dir -t deb -m 'mskalski@mirantis.com' --version "${ODL_EXPERIMENTAL_VERSION_NUMBER}" --description "${ODL_DESCRIPTION}" --prefix /opt/opendaylight --deb-upstart "${DIR}/odl_package/${1}/opendaylight" --after-install "${DIR}/odl_package/${1}/opendaylight-post" --name "${ODL_EXPERIMENTAL_DEB_NAME}" -d openjdk-8-jre-headless -C "${TMP_DIR}/${ODL_EXPERIMENTAL_DEB_NAME}_src"
fi
patch_networking_odl_deb ${TMP_DIR}/networking_odl/requirements.txt
fpm --architecture all --force -s python -t deb -m 'mskalski@mirantis.com' --python-install-lib /usr/lib/python2.7/dist-packages ${TMP_DIR}/networking_odl/setup.py
popd
add_opnfv_quagga "${DIR}/repositories/${1}/"
;;
*) echo "Not supported system"; exit 1;;
esac
}
mkdir -p "${CACHE_DIR}"
prep_build_env
rm -f ${DIR}/repositories/ubuntu/*.deb
command -v fpm >/dev/null 2>&1 || { echo >&2 "fpm ruby gem required but it's not installed. Aborting."; exit 1; }
cleanup
mkdir -p "${TMP_DIR}"
pushd $TMP_DIR
get_karaf $ODL_TARBALL_LOCATION "karaf-odl.tar.gz" "opendaylight_src"
if [ "$ODL_EXPERIMENTAL_TARBALL_LOCATION" != false ] ; then
get_karaf $ODL_EXPERIMENTAL_TARBALL_LOCATION "karaf-experimental-odl.tar.gz" "${ODL_EXPERIMENTAL_DEB_NAME}_src"
fi
if [ "$ENA_NSH_SUB_PATCH" = true ] ; then
jarpatch=$(echo ${DIR}/odl_package/nsh-pritesh-patch/${JARBALL}-*.jar)
if [ ! -f "$jarpatch" ] ; then
build_jarball $BUILD_FOR
fi
patch_odl
fi
git clone $NETWORKING_ODL_REPO networking_odl
pushd networking_odl
git checkout $NETWORKING_ODL_BRANCH
popd
for system in $BUILD_FOR
for v in $ODL_VERSIONS
do
build_pkg $system
deb_name="opendaylight_${v%.*}-${v##*.}_all.deb"
if ! in_cache $deb_name ;then
build_odl_deb $v
fi
copy_from_cache $deb_name
done
if [ "$CACHE" == true ];then
if [ ! -e $cache_dir ] || [[ "$RENEW" == true ]];then
rm -rf $cache_dir
mkdir -p $cache_dir
cp -r ${DIR}/tmp/* $cache_dir/
fi
fi
if [ "$CLEANUP" != false ];then
cleanup
if ! in_cache $NETWORKING_ODL_DEB ;then
wget -O ${CACHE_DEB_DIR}/${NETWORKING_ODL_DEB} ${NETWORKING_ODL_REPO}/${NETWORKING_ODL_DEB}
fi
copy_from_cache $NETWORKING_ODL_DEB