aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/tools/test/bin/onos-config
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/tools/test/bin/onos-config')
-rwxr-xr-xframework/src/onos/tools/test/bin/onos-config57
1 files changed, 57 insertions, 0 deletions
diff --git a/framework/src/onos/tools/test/bin/onos-config b/framework/src/onos/tools/test/bin/onos-config
new file mode 100755
index 00000000..5c3ab024
--- /dev/null
+++ b/framework/src/onos/tools/test/bin/onos-config
@@ -0,0 +1,57 @@
+#!/bin/bash
+# -----------------------------------------------------------------------------
+# Remotely configures & starts ONOS for the first time.
+# -----------------------------------------------------------------------------
+
+[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
+. $ONOS_ROOT/tools/build/envDefaults
+
+node=${1:-$OCI}
+remote=$ONOS_USER@$node
+
+# ONOS boot features
+export ONOS_BOOT_FEATURES="${ONOS_BOOT_FEATURES:-webconsole,onos-api,onos-core,onos-incubator,onos-cli,onos-rest,onos-gui}"
+
+# ONOS builtin apps and providers ignited by default
+export ONOS_APPS="${ONOS_APPS:-drivers,openflow}"
+
+# Generate a cluster.json from the ON* environment variables
+CDEF_FILE=/tmp/${remote}.cluster.json
+echo "{ \"ipPrefix\": \"$ONOS_NIC\"," > $CDEF_FILE
+echo " \"nodes\":[" >> $CDEF_FILE
+for node in $(env | sort | egrep "OC[2-9]+" | cut -d= -f2); do
+ echo " { \"id\": \"$node\", \"ip\": \"$node\", \"tcpPort\": 9876 }," >> $CDEF_FILE
+done
+echo " { \"id\": \"$OC1\", \"ip\": \"$OC1\", \"tcpPort\": 9876 }" >> $CDEF_FILE
+echo "]}" >> $CDEF_FILE
+scp -q $CDEF_FILE $remote:$ONOS_INSTALL_DIR/config/cluster.json
+
+ssh $remote "
+ echo \"onos.ip = \$(sudo ifconfig | grep $ONOS_NIC | cut -d: -f2 | cut -d\\ -f1)\" \
+ >> $ONOS_INSTALL_DIR/$KARAF_DIST/etc/system.properties
+
+ # Drop copycat related log level for the console
+ echo "log4j.logger.net.kuujo.copycat= INFO" \
+ >> $ONOS_INSTALL_DIR/$KARAF_DIST/etc/org.ops4j.pax.logging.cfg
+
+ # Patch the Apache Karaf distribution file to load ONOS boot features
+ perl -pi.old -e \"s|^(featuresBoot=.*,management)(,webconsole,.*)|\1,$ONOS_BOOT_FEATURES|\" \
+ $ONOS_INSTALL_DIR/$KARAF_DIST/etc/org.apache.karaf.features.cfg
+
+ # Customize which builtin apps should be ignited
+ for app in $(echo $ONOS_APPS | tr ',' ' '); do
+ touch $ONOS_INSTALL_DIR/apps/org.onosproject.\$app/active
+ done
+"
+
+# Generate a default tablets.json from the ON* environment variables
+TDEF_FILE=/tmp/${remote}.tablets.json
+onos-gen-partitions $TDEF_FILE
+scp -q $TDEF_FILE $remote:$ONOS_INSTALL_DIR/config/tablets.json
+
+# Copy tools/package/config/ to remote
+scp -qr ${ONOS_ROOT}/tools/package/config/ $remote:$ONOS_INSTALL_DIR/
+
+# Copy the desired initial network configuration to remote if needed
+[ -n "$ONOS_CFG" -a -f "$ONOS_CFG" -a "${1:-$OCI}" = "$OC1" ] && \
+ scp $ONOS_CFG $remote:$ONOS_INSTALL_DIR/config/network-cfg.json