Fix ONOS-4503 - allow ONOS to run in offline mode with no internet connection
Change-Id: I7122800e2c485743313c5d963bc75f8dd0292452
diff --git a/tools/package/bin/build-offline-karaf b/tools/package/bin/build-offline-karaf
new file mode 100755
index 0000000..ea0f7ed
--- /dev/null
+++ b/tools/package/bin/build-offline-karaf
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+KARAF_VERSION="3.0.5"
+KARAF_TARFILE_NAME="apache-karaf-${KARAF_VERSION}.tar"
+BOOT_FEATURES="standard,ssh,scr,war,webconsole"
+
+# fetch the standard karaf bits
+rm -f /tmp/${KARAF_TARFILE_NAME}
+curl -o /tmp/${KARAF_TARFILE_NAME}.gz http://onlab.vicci.org/onos/third-party/${KARAF_TARFILE_NAME}.gz
+
+# get a small cell
+source ${ONOS_ROOT}/tools/dev/bash_profile
+cell borrow 60 1+0
+scp /tmp/${KARAF_TARFILE_NAME}.gz sdn@${OC1}:/tmp/${KARAF_TARFILE_NAME}.gz
+
+ssh sdn@${OC1} "
+
+ # unroll the base karaf
+ rm -rf karaf
+ mkdir karaf
+ cd karaf
+ tar xf /tmp/${KARAF_TARFILE_NAME}.gz
+
+ # set the ONOS default boot features
+ perl -pi.old -e 's|^(featuresBoot=).*|\1${BOOT_FEATURES}|' apache-karaf-${KARAF_VERSION}/etc/org.apache.karaf.features.cfg
+
+ # run karaf to fill the maven repo with required artifacts
+ apache-karaf-${KARAF_VERSION}/bin/karaf server 1>/tmp/onos.out 2>/tmp/onos.err &
+
+ sleep 15
+
+ # stop karaf and capture the artifacts that were downloaded into the maven repo
+ apache-karaf-${KARAF_VERSION}/bin/karaf stop 1>/tmp/onos.out 2>/tmp/onos.err &
+ cd ~/.m2/repository
+ tar cvf ~/repo.tar *
+
+ # start with a fresh karaf and overlay the downloaded artifacts
+ cd
+ rm -rf karaf-offline
+ mkdir karaf-offline
+ cd karaf-offline
+ tar xf /tmp/${KARAF_TARFILE_NAME}.gz
+
+ # load the downloaded artifacts into the karaf system directory
+ cd apache-karaf-${KARAF_VERSION}/system
+ tar xf ~/repo.tar
+
+ # create a zipped tar ball of the updated karaf tree
+ cd ~/karaf-offline
+ tar czf ~/karaf-offline.tar.gz apache-karaf-${KARAF_VERSION}
+"
+
+# fetch the new offline karaf tar ball
+BUILD_NUMBER="apache-karaf-${KARAF_VERSION}-offline-$(date +'%Y%m%d')"
+scp sdn@${OC1}:karaf-offline.tar.gz /tmp/${BUILD_NUMBER}.tar.gz
+
+cell return
+
+
+
+
+
+