Local Build Script
[osm/devops.git] / jenkins / SO / install
index 1f44210..9cad24a 100755 (executable)
 # install launchpad SO and all of its dependencies
 #
 
+HERE=$(realpath $(dirname $0))
+OSM_JENKINS=$(dirname $HERE)
+. $OSM_JENKINS/common/install_common
+
 # Defensive bash programming flags
 set -o errexit    # Exit on any error
 trap 'echo ERROR: Command failed: \"$BASH_COMMAND\"' ERR
 set -o nounset    # Expanding an unset variable is an error.  Variables must be
                   # set before they can be used.
 
-if [ $# -gt 0 ]; then
-    case "$1" in
-       -h|--help)
-           echo
-           echo "NAME:"
-           echo "  $0"
-           echo
-           echo "SYNOPSIS:"
-           echo "  $0 -h|--help"
-           echo "  $0 [PLATFORM_REPOSITORY] [PLATFORM_VERSION]"
-           echo
-           echo "DESCRIPTION:"
-           echo "  Prepare current system to run SO and UI."
-           echo
-           echo "  PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository."
-           echo "  PLATFORM_VERSION (optional): version of the platform packages to be installed."
-           echo
-           exit 0;;
-    esac
-fi
-
-
 ###############################################################################
 # Set up repo and version
+PLATFORM_REPOSITORY=OSM3
+PLATFORM_VERSION=5.2.0.2.72254
+
+while getopts ":P:V:h" o; do
+    case "${o}" in
+        P)
+            PLATFORM_REPOSITORY=${OPTARG}
+            ;;
+        V)
+            PLATFORM_VERSION=${OPTARG}
+            ;;
+        h)
+            usage
+            exit 0
+            ;;
+        *)
+            usage
+            exit 1
+            ;;
+    esac
+done
+
+function usage() {
+    echo
+    echo "NAME:"
+    echo "  $0"
+    echo
+    echo "SYNOPSIS:"
+    echo "  $0 -h|--help"
+    echo "  $0 -P <PLATFORM_REPOSITORY> -V <PLATFORM_VERSION>"
+    echo
+    echo "DESCRIPTION:"
+    echo "  Prepare current system to run SO and UI."
+    echo
+    echo "  PLATFORM_REPOSITORY (optional): name of the RIFT.ware repository."
+    echo "  PLATFORM_VERSION (optional): version of the platform packages to be installed."
+    echo
+}
 
-PLATFORM_REPOSITORY=${1:-OSM}
-PLATFORM_VERSION=${2:-4.4.2.1.61839}
 
 ###############################################################################
 # Main block
 
 # enable the right repos
+echo "### INSTALLING RIFT platform ${PLATFORM_VERSION} from repository ${PLATFORM_REPOSITORY}"
+
 curl http://repos.riftio.com/public/xenial-riftware-public-key | apt-key add -
-curl -o /etc/apt/sources.list.d/RIFT.list http://buildtracker.riftio.com/repo_file/ub16/${PLATFORM_REPOSITORY}/
+curl -o /etc/apt/sources.list.d/rift.list http://buildtracker.riftio.com/repo_file/ub16/${PLATFORM_REPOSITORY}/
 
 # Make the Rift repo a higher priority to work around version conflicts.
 cat <<EOF > /etc/apt/preferences.d/rift
@@ -71,47 +91,53 @@ Pin: origin repos.riftio.com
 Pin-Priority: 600
 EOF
 
+
+
+#######################
+# temp fix
+# this is normally done by mkcontainer, but the last line is missing
+# we can take this out when we update the RIFT platform
+
+cat <<EOF >>/etc/systemd/user.conf
+DefaultLimitNOFILE=65536
+DefaultLimitMSGQUEUE=8192000
+DefaultLimitNPROC=65536
+DefaultTasksMax=65536
+EOF
+cat <<EOF >>/etc/systemd/system.conf
+DefaultLimitNOFILE=65536
+DefaultLimitMSGQUEUE=8192000
+DefaultLimitNPROC=65536
+DefaultTasksMax=65536
+EOF
+systemctl daemon-reload
+
+##################################
+
+
 apt-get update
 
 # and install the tools
-apt remove -y rw.toolchain-rwbase tcpdump
+apt remove -y tcpdump
 apt-get install -y --allow-downgrades rw.tools-container-tools=${PLATFORM_VERSION} rw.tools-scripts=${PLATFORM_VERSION} python
-/usr/rift/container_tools/mkcontainer --modes ext --modes platform --rw-version ${PLATFORM_VERSION}
-pip3 install lxml==3.4.0
-
-
-chmod 777 /usr/rift /usr/rift/usr/share
+/usr/rift/container_tools/mkcontainer --modes MANO-base,rw-platform --rw-version ${PLATFORM_VERSION}
 
 # now disable the RIFT OSM repo so that we'll get MANO from
 # the OSM repos
-rm -f /etc/apt/sources.list.d/RIFT.list
-curl https://osm-download.etsi.org/repository/osm/debian/ReleaseTWO/OSM%20ETSI%20Release%20Key.gpg |apt-key add -
-add-apt-repository -y "deb https://osm-download.etsi.org/repository/osm/debian/ReleaseTWO stable SO UI RO openvim"
+rm -f /etc/apt/sources.list.d/rift.list
+
 apt-get update
 
 apt-get install -y \
-            rw.core.mano-rwcal_yang_ylib-1.0 \
-            rw.core.mano-rwconfig_agent_yang_ylib-1.0 \
-            rw.core.mano-rwlaunchpad_yang_ylib-1.0 \
-            rw.core.mano-mano_yang_ylib-1.0 \
-            rw.core.mano-common-1.0 \
-            rw.core.mano-rwsdn_yang_ylib-1.0 \
-            rw.core.mano-rwsdnal_yang_ylib-1.0 \
-            rw.core.mano-mano-types_yang_ylib-1.0 \
-            rw.core.mano-rwcal-cloudsim-1.0 \
-            rw.core.mano-rwcal-1.0 \
-            rw.core.mano-rw_conman_yang_ylib-1.0 \
-            rw.core.mano-rwcalproxytasklet-1.0 \
-            rw.core.mano-rwlaunchpad-1.0 \
-            rw.core.mano-rwcal-openmano-vimconnector-1.0 \
-            rw.core.mano-lpmocklet_yang_ylib-1.0 \
-            rw.core.mano-rwmon-1.0 \
-            rw.core.mano-rwcloud_yang_ylib-1.0 \
-            rw.core.mano-rwcal-openstack-1.0 \
-            rw.core.mano-rw.core.mano_foss \
-            rw.core.mano-rwmon_yang_ylib-1.0 \
-            rw.core.mano-rwcm-1.0 \
-            rw.core.mano-rwcal-mock-1.0 \
-            rw.core.mano-rwcal-cloudsimproxy-1.0 \
-            rw.core.mano-models-1.0 \
-            rw.core.mano-rwcal-aws-1.0
+    rw.core.mano-mano \
+    rw.core.mano-rwcal-plugin-aws \
+    rw.core.mano-rwcal-plugin-cloudsim \
+    rw.core.mano-rwcal-plugin-cloudsimproxy \
+    rw.core.mano-rwcal-plugin-openmano-vimconnector \
+    rw.core.mano-rwcal-plugin-openstack \
+    rw.core.mano-rwcal-plugin-mock
+
+# Install libjuju
+apt-get install -y python3-pip python3-setuptools
+
+pip3 install juju==0.6.1