Skip to content
Snippets Groups Projects
Commit c7dbf2cd authored by Gregor Maier's avatar Gregor Maier
Browse files

Merge remote-tracking branch 'bigswitch/master' into bigsync

parents b541d29d e33c6e9f
No related branches found
No related tags found
No related merge requests found
Showing
with 315 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,48 @@
</jar>
</target>
<target name="deb" 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="debian/misc/floodlight.properties" type="file">
<mapper type="perm" prefix="/etc/floodlight"/>
</data>
<tarfileset dir="src/main/resources/apps" prefix="/etc/floodlight/apps.d"/>
</deb>
</target>
<target name="package" depends="deb"/>
<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
/etc/floodlight/apps.d
/etc/floodlight/conf.d
.\" 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
KEYSTORE=/etc/floodlight/auth_credentials.jceks
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
mkdir -p /etc/floodlight/conf.d
chown -R syslog:adm /var/log/floodlight
chown -R $NAME:$NAME /var/lib/floodlight
if [ ! -f /etc/floodlight/auth_credentials.jceks ]; then
KSPASS=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev`
echo "org.sdnplatform.sync.internal.SyncManager.keyStorePassword=$KSPASS" > \
/etc/floodlight/conf.d/01-keystorepass.properties
authtool -a CHALLENGE_RESPONSE \
-ks $KEYSTORE \
-kp $KSPASS
chown $NAME:$NAME $KEYSTORE
fi
service rsyslog reload
service floodlight restart
;;
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 -f /etc/floodlight/conf.d/01-keystorepass.properties
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 -e
NAME=floodlight
case "$1" in
purge)
rm -f /etc/floodlight/auth_credentials.jceks
rm -f /etc/floodlight/conf.d/01-keystorepass.properties
rm -rf /var/lib/floodlight/SyncDB
;;
remove)
service floodlight stop
;;
upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0
#!/bin/sh
exec java -cp '/usr/share/floodlight/java/*' org.sdnplatform.sync.client.AuthTool "$@"
#!/bin/sh
exec java -cp '/usr/share/floodlight/java/*' org.sdnplatform.sync.client.BootstrapTool "$@"
#!/bin/sh
exec java -cp '/usr/share/floodlight/java/*' net.floodlightcontroller.core.Main "$@"
#!/bin/sh
exec java -cp '/usr/share/floodlight/java/*' org.sdnplatform.sync.client.SyncClient "$@"
# Options to pass to Floodlight.
DAEMON_OPTS="-cf /etc/floodlight/floodlight.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"
floodlight.confd = /etc/floodlight/conf.d
floodlight.modules = \
net.floodlightcontroller.jython.JythonDebugInterface,\
net.floodlightcontroller.core.module.ApplicationLoader
net.floodlightcontroller.core.module.ApplicationLoader.appsd=/etc/floodlight/apps.d
net.floodlightcontroller.core.module.ApplicationLoader.application=simpleforwarding
net.floodlightcontroller.core.FloodlightProvider.rolepath=/var/lib/floodlight/current_role
org.sdnplatform.sync.internal.SyncManager.authScheme=CHALLENGE_RESPONSE
org.sdnplatform.sync.internal.SyncManager.keyStorePath=/etc/floodlight/auth_credentials.jceks
org.sdnplatform.sync.internal.SyncManager.dbPath=/var/lib/floodlight/
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/*' 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/floodlight.log
!*
File added
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