Fix build process; add clearwater-live-test 27/51427/1
authorBryan Sullivan <bryan.sullivan@att.com>
Thu, 1 Feb 2018 03:21:04 +0000 (19:21 -0800)
committerBryan Sullivan <bryan.sullivan@att.com>
Thu, 1 Feb 2018 03:21:04 +0000 (19:21 -0800)
JIRA: MODELS-2

Change-Id: I8d8e6300959d788aeae2caef632c505265bae9c4
Signed-off-by: Bryan Sullivan <bryan.sullivan@att.com>
build/clearwater-docker.sh
build/clearwater-live-test.sh [new file with mode: 0644]
tests/k8s-cloudify-clearwater.sh [moved from tools/cloudify/k8s-cloudify-clearwater.sh with 87% similarity]

index 9fa4bde..8e84618 100644 (file)
@@ -42,36 +42,6 @@ function log() {
   echo "$f:$l ($(date)) $1"
 }
 
-function build() {
-  log "Starting clearwater-docker build process"
-  if [[ -d /tmp/clearwater-docker ]]; then rm -rf /tmp/clearwater-docker; fi
-
-  log "Cloning clearwater-docker repo to /tmp/clearwater-docker"
-    git clone https://github.com/Metaswitch/clearwater-docker.git \
-     /tmp/clearwater-docker
-
-  log "Building the images"
-  cd /tmp/clearwater-docker
-  vnfc="base astaire cassandra chronos bono ellis homer homestead homestead-prov ralf sprout"
-  for i in $vnfc ; do 
-    log "Building $i"
-    sudo docker build $cache -t clearwater/$i $i
-  done
-}
-
-function push() {
-  log "push images to docker hub"
-  for i in $vnfc ; do
-    log "Tagging the image as $hub_user/clearwater-$i:$tag"
-    id=$(sudo docker images | grep clearwater/$i | awk '{print $3}')
-    id=$(echo $id | cut -d ' ' -f 1)
-    sudo docker tag $id $hub_user/clearwater-$i:$tag
-
-    log "Pushing the image to dockerhub as $hub_user/clearwater-$i"
-    sudo docker push $hub_user/clearwater-$i
-  done
-}
-
 hub_user=$1
 tag=$2
 cache="$3"
@@ -85,7 +55,36 @@ else
   sudo yum update -y
 fi
 
-build
-push
+if [[ "$cache" == "--no-cache" ]]; then
+  log "Purge old images"
+  images=$(sudo docker images clearwater-* | awk '/clearwater/ {print $1}')
+  for image in $images ; do sudo docker image rm $image; done
+fi
+
+log "Starting clearwater-docker build process"
+if [[ -d /tmp/clearwater-docker ]]; then rm -rf /tmp/clearwater-docker; fi
+
+log "Cloning clearwater-docker repo to /tmp/clearwater-docker"
+git clone --recursive https://github.com/Metaswitch/clearwater-docker.git \
+  /tmp/clearwater-docker
+
+log "Building the images"
+cd /tmp/clearwater-docker
+vnfc="base astaire cassandra chronos bono ellis homer homestead homestead-prov ralf sprout"
+for i in $vnfc ; do 
+  log "Building $i"
+  if [[ "$i" != "base" ]]; then
+    log "Reference $hub_user/clearwater-base:$tag"
+    sed -i -- "s~FROM clearwater/base~FROM $hub_user/clearwater-base:$tag~" \
+      $i/Dockerfile
+  fi
+  sudo docker build $cache -t clearwater-$i $i
+  log "Tagging the image as $hub_user/clearwater-$i:$tag"
+  id=$(sudo docker images | grep "clearwater-$i " | awk '{print $3}')
+  id=$(echo $id | cut -d ' ' -f 1)
+  sudo docker tag $id $hub_user/clearwater-$i:$tag
+  log "Pushing the image to dockerhub as $hub_user/clearwater-$i"
+  sudo docker push $hub_user/clearwater-$i
+done
 
 cd $WORK_DIR
diff --git a/build/clearwater-live-test.sh b/build/clearwater-live-test.sh
new file mode 100644 (file)
index 0000000..a4db776
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/bash
+# Copyright 2018 AT&T Intellectual Property, Inc
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+#. What this is: Build script for the github clearwater-live-test project
+#.   https://github.com/Metaswitch/clearwater-live-test
+#.
+#. Prerequisites:
+#.   Docker hub user logged on so images can be pushed to docker hub, i.e. via
+#.   $ docker login -u <hub_user>
+#.
+#. Usage:
+#.   bash clearwater-live-test.sh <hub_user> <tag> [--no-cache]
+#.     hub_user: username for dockerhub
+#.     tag: tag to apply to the built images
+#.     --no-cache: build clean
+#.
+#. Status: this is a work in progress, under test.
+
+trap 'fail' ERR
+
+fail() {
+  log "Build Failed!"
+  exit 1
+}
+
+function log() {
+  f=$(caller 0 | awk '{print $2}')
+  l=$(caller 0 | awk '{print $1}')
+  echo ""
+  echo "$f:$l ($(date)) $1"
+}
+
+hub_user=$1
+tag=$2
+cache="$3"
+dist=`grep DISTRIB_ID /etc/*-release | awk -F '=' '{print $2}'`
+export WORK_DIR=$(pwd)
+
+log "Update package repos"
+if [ "$dist" == "Ubuntu" ]; then
+  sudo apt-get update
+else
+  sudo yum update -y
+fi
+
+log "Starting clearwater-live-test build process"
+if [[ -d /tmp/clearwater-live-test ]]; then rm -rf /tmp/clearwater-live-test; fi
+
+log "Cloning clearwater-live-test repo to /tmp/clearwater-live-test"
+git clone --recursive https://github.com/Metaswitch/clearwater-live-test.git \
+  /tmp/clearwater-live-test
+cd /tmp/clearwater-live-test
+
+log "Building the image"
+sudo docker build $cache -t clearwater/clearwater-live-test .
+
+log "Tagging the image as $hub_user/clearwater-live-test:$tag"
+id=$(sudo docker images | grep "clearwater-live-test " | awk '{print $3}')
+id=$(echo $id | cut -d ' ' -f 1)
+sudo docker tag $id $hub_user/clearwater-live-test:$tag
+
+log "Pushing the image to dockerhub as $hub_user/clearwater-live-test"
+sudo docker push $hub_user/clearwater-live-test
+
similarity index 87%
rename from tools/cloudify/k8s-cloudify-clearwater.sh
rename to tests/k8s-cloudify-clearwater.sh
index 5ed19a3..ce7176e 100644 (file)
@@ -145,9 +145,18 @@ EOF
 kubectl create -f ~/callsip.yaml
 kubectl exec -d --namespace default callsip <<EOF
 apt-get update
-apt-get install -y git netcat
-apt-get install dnsutils -y
+apt-get install -y git netcat dnsutils jq curl
 nslookup bono.default.svc.cluster.local
+
+curl -o /tmp/json -v -H "NGV-Signup-Code: secret" -H "Content-Type: application/json" -d "{\"email\": \"bob@example.com\", \"password\": \"example\", \"full_name\": \"Bob\"}" -X POST "http://ellis.default.svc.cluster.local:80/accounts"
+
+curl -o /tmp/json -v -H "NGV-API-Key: secret" -X POST http://ellis.default.svc.cluster.local:80/accounts/bob@example.com/numbers/
+
+curl -o /tmp/json -v -H "Content-Type: application/json" -d "{\"email\": \"bob@example.com\", \"password\": \"example\"}" -X POST "http://ellis.default.svc.cluster.local:80/session"
+
+
+curl -H "NGV-API-Key: secret" -H "Content-Type: application/json" -d "{\"private_id\": \"sip:bob@example.com\", \"new_private_id\": \"true\"}" -X POST http://ellis.default.svc.cluster.local:80/accounts/bob@example.com/numbers/sip:1@example.com
+
 git clone https://github.com/rundekugel/callSip.sh.git
 while true ; do
   bash /callSip.sh/src/callSip.sh -v 4 -p 5060 -d 10 -s bono.default.svc.cluster.local -c bob@example.com alice@example.com