Skip to content
Snippets Groups Projects
Commit cc3de69b authored by Rob Adams's avatar Rob Adams
Browse files

Add target to generate floodlight package

parent 0efa3d47
No related branches found
No related tags found
No related merge requests found
Showing
with 265 additions and 1 deletion
......@@ -26,7 +26,7 @@
generated code.
-->
<project default="dist" name="Floodlight">
<project default="dist" name="floodlight">
<property name="target" location="target"/>
<property name="build" location="${target}/bin"/>
<property name="build-test" location="${target}/bin-test"/>
......@@ -82,6 +82,15 @@
</fileset>
</path>
<patternset id="lib-package">
<include name="jdeb-1.0.1.jar"/>
</patternset>
<path id="package-classpath">
<fileset dir="${lib}">
<patternset refid="lib-package"/>
</fileset>
</path>
<patternset id="lib-cobertura">
<include name="cobertura-1.9.4.1.jar"/>
<include name="asm-3.0.jar"/>
......@@ -268,6 +277,46 @@
</jar>
</target>
<target name="package"> <!-- depends="dist" //-->
<taskdef name="deb"
classname="org.vafer.jdeb.ant.DebAntTask"
classpathref="package-classpath"/>
<copy todir="${target}/debian">
<fileset dir="debian"/>
<filterset begintoken="[[" endtoken="]]">
<filter token="version" value="1.9.0"/>
<filter token="name" value="${ant.project.name}"/>
</filterset>
</copy>
<deb destfile="${target}/floodlight-1.9.0.deb"
control="${target}/debian/control">
<data src="${floodlight-jar}" type="file">
<mapper type="perm" prefix="/usr/share/floodlight/java"/>
</data>
<tarfileset dir="debian/misc/bin" prefix="/usr/bin" filemode="755"/>
<data src="debian/misc/logrotate/floodlight" type="file">
<mapper type="perm" prefix="/etc/logrotate.d"/>
</data>
<data src="debian/misc/init/floodlight.conf" type="file">
<mapper type="perm" prefix="/etc/init"/>
</data>
<data src="debian/misc/logback.xml" type="file">
<mapper type="perm" prefix="/etc/floodlight"/>
</data>
<data src="debian/misc/rsyslog/10-floodlight.conf" type="file">
<mapper type="perm" prefix="/etc/rsyslog.d"/>
</data>
<data src="debian/misc/default/floodlight" type="file">
<mapper type="perm" prefix="/etc/default"/>
</data>
<data src="src/main/resources/floodlightdefault.properties" type="file">
<mapper type="perm" prefix="/etc/floodlight"/>
</data>
</deb>
</target>
<target name="javadoc">
<javadoc access="protected"
author="true"
......
Package: [[name]]
Version: [[version]]
Section: net
Priority: low
Maintainer: rob.adams@bigswitch.com
Architecture: all
Depends: adduser,
default-jre-headless | java6-runtime-headless
Description: Floodlight is a high performance Java based OpenFlow controller originally
written by David Erickson at Stanford University.
.
Floodlight supports a broad range of virtual and physical OpenFlow switches
and has rich support for mixed OpenFlow and non-OpenFlow networks supporting
management of multiple islands of OpenFlow switches.
/var/log/floodlight
/var/lib/floodlight
.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH FLOODLIGHT 1 "May 14, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
floodlight \- An Apache licensed, Java based OpenFlow controller
.SH SYNOPSIS
.B floodlight
.RI [ options ]
.SH DESCRIPTION
This manual page documents briefly the
.B floodlight
command.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBfloodlight\fP is an Apache licensed, Java based OpenFlow controller.
.SH OPTIONS
.TP
.B \-cf, \-\-configFile FILE
Floodlight configuration file.
.SH AUTHOR
floodlight was written by David Erickson and Big Switch Networks.
.PP
This manual page was written by Rich Lane <rlane@bigswitch.com>,
for the Debian project (and may be used by others).
# floodlight - A Java-based OpenFlow controller
#
# The Floodlight program configures network switches using the OpenFlow protocol.
# vim: set filetype=upstart :
description "Floodlight controller"
start on filesystem or runlevel [2345]
stop on runlevel [!2345]
setuid floodlight
setgid floodlight
respawn
pre-start script
[ -f /usr/share/floodlight/java/floodlight.jar ] || exit 0
end script
script
. /etc/default/floodlight
exec java ${JVM_OPTS} -Dpython.home=/usr/share/jython \
-Dlogback.configurationFile=/etc/floodlight/logback.xml \
-jar /usr/share/floodlight/java/floodlight.jar \
$DAEMON_OPTS 2>&1 >> /var/log/floodlight/floodlight.log
end script
debian/floodlight.1
#!/bin/sh -e
NAME=floodlight
case "$1" in
configure)
if ! id $NAME > /dev/null 2>&1 ; then
adduser --quiet --group --system --disabled-password \
--no-create-home --home /dev/null $NAME
fi
mkdir -p /var/log/floodlight
mkdir -p /var/lib/floodlight
chown -R $NAME:$NAME /var/log/floodlight
chown -R $NAME:$NAME /var/lib/floodlight
if [ ! -f /etc/floodlight/auth_credentials.jceks ]; then
authtool -a CHALLENGE_RESPONSE \
-ks /etc/floodlight/auth_credentials.jceks \
-kp dcbc178a0a3a8674f048ac86372ac456
fi
;;
abort-upgrade|abort-remove|abort-deconfigure)
;;
*)
echo "postinst called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0
#!/bin/sh -e
NAME=floodlight
case "$1" in
purge)
deluser --quiet --system $NAME || true
delgroup --quiet --system $NAME || true
rm -f /etc/floodlight/auth_credentials.jceks
rm -rf /var/lib/floodlight/SyncDB
;;
remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "postrm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0
#!/bin/sh
exec java -cp /usr/share/floodlight/java/floodlight.jar org.sdnplatform.sync.client.AuthTool "$@"
#!/bin/sh
exec java -cp /usr/share/floodlight/java/floodlight.jar org.sdnplatform.sync.client.BootstrapTool "$@"
#!/bin/sh
exec java -cp /usr/share/floodlight/java/floodlight.jar net.floodlightcontroller.core.Main "$@"
#!/bin/sh
exec java -cp /usr/share/floodlight/java/floodlight.jar org.sdnplatform.sync.client.SyncClient "$@"
# Options to pass to Floodlight.
DAEMON_OPTS="-cf /etc/floodlight/floodlightdefault.properties"
# Additional options to pass to the JVM
JVM_OPTS=""
# Sample performance options taken from upstream
JVM_OPTS="-server"
JVM_OPTS="$JVM_OPTS -ea"
JVM_OPTS="$JVM_OPTS -XX:MaxDirectMemorySize=128M"
JVM_OPTS="$JVM_OPTS -XX:+UseParNewGC"
JVM_OPTS="$JVM_OPTS -XX:+UseConcMarkSweepGC"
JVM_OPTS="$JVM_OPTS -XX:+CMSParallelRemarkEnabled"
JVM_OPTS="$JVM_OPTS -XX:OnError='kill -9 %p'"
JVM_OPTS="$JVM_OPTS -XX:OnOutOfMemoryError='kill -9 %p'"
JVM_OPTS="$JVM_OPTS -Dpython.security.respectJavaAccessibility=false"
JVM_OPTS="$JVM_OPTS -Dnet.floodlightcontroller.packetstreamer.port=9090"
JVM_OPTS="$JVM_OPTS -Dlogback.configurationFile=/etc/floodlight/logback.xml"
JVM_OPTS="$JVM_OPTS -Dnet.floodlightcontroller.core.PTWarningThresholdInMilli=0"
JVM_OPTS="$JVM_OPTS -Dcom.bigswitch.floodlight.addressspace.EnableNetworkService=0"
start on runlevel [2345]
stop on runlevel [!2345]
respawn
kill timeout 30
setuid floodlight
setgid floodlight
script
if [ -f /etc/default/floodlight ]; then
. /etc/default/floodlight
fi
COMMAND="java ${JVM_OPTS} -cp /usr/share/floodlight/java/floodlight.jar net.floodlightcontroller.core.Main ${DAEMON_OPTS}"
exec /bin/bash -c "${COMMAND} 2>&1 | /usr/bin/logger -t floodlight -p user.info"
end script
<?xml version="1.0"?>
<configuration scan="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%level [%logger{20}:%thread] %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
</root>
<logger name="org" level="WARN"/>
<logger name="LogService" level="WARN"/> <!-- Restlet access logging -->
<logger name="net.floodlightcontroller" level="INFO"/>
<logger name="org.sdnplatform" level="INFO"/>
</configuration>
/var/log/floodlight/floodlight.log {
daily
copytruncate
missingok
rotate 7
compress
delaycompress
notifempty
}
!floodlight
*.* /var/log/floodlight.log
!*
File added
......@@ -22,3 +22,7 @@ net.floodlightcontroller.core.internal.FloodlightProvider.openflowport = 6633
net.floodlightcontroller.jython.JythonDebugInterface.port = 6655
net.floodlightcontroller.forwarding.Forwarding.idletimeout = 5
net.floodlightcontroller.forwarding.Forwarding.hardtimeout = 0
org.sdnplatform.sync.internal.SyncManager.dbPath=/var/lib/floodlight/
org.sdnplatform.sync.internal.SyncManager.authScheme=CHALLENGE_RESPONSE
org.sdnplatform.sync.internal.SyncManager.keyStorePath=/etc/floodlight/auth_credentials.jceks
org.sdnplatform.sync.internal.SyncManager.keyStorePassword=dcbc178a0a3a8674f048ac86372ac456
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment