Automate vCPE vBRG and vBNG build image process 77/60077/2
authorMariah Jacobs <mariah.jacobs@intel.com>
Fri, 10 Aug 2018 13:52:43 +0000 (06:52 -0700)
committerMariah Jacobs <mariah.jacobs@intel.com>
Fri, 10 Aug 2018 15:38:31 +0000 (08:38 -0700)
Build script is executed with its heat template.

script_status.txt in /opt folder will show the status of execution of build and install scripts.

Issue-ID: INT-620

Change-Id: Id798d7e320e5b7f7bf1846d4b9c377b7addb901c
Signed-off-by: Mariah Jacobs <mariah.jacobs@intel.com>
vnfs/vCPE/scripts/v_bng_build.sh
vnfs/vCPE/scripts/v_bng_install.sh
vnfs/vCPE/scripts/v_brgemu_build.sh
vnfs/vCPE/scripts/v_brgemu_install.sh

index 5ad0eb9..5ec533b 100644 (file)
@@ -6,7 +6,7 @@ VPP_SOURCE_REPO_URL=$(cat /opt/config/vpp_source_repo_url.txt)
 VPP_SOURCE_REPO_RELEASE_TAG=$(cat /opt/config/vpp_source_repo_release_tag.txt)
 VPP_PATCH_URL=$(cat /opt/config/vpp_patch_url.txt)
 CLOUD_ENV=$(cat /opt/config/cloud_env.txt)
-
+ERROR_MESSAGE='Execution of vBRG script failed.'
 
 # Convert Network CIDR to Netmask
 cdr2mask () {
@@ -41,6 +41,13 @@ cdr2mask () {
     patch -p1 < ../Vpp-Integrate-FreeRADIUS-Client-for-vBNG.patch
     UNATTENDED='y' make install-dep
 
+# Check VPP build status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: VPP build failed' > /opt/script_status.txt
+        exit
+    fi
+
 # Install the FreeRADIUS client since we need the lib
     cd /opt
     git clone https://github.com/FreeRADIUS/freeradius-client.git
@@ -54,12 +61,27 @@ cdr2mask () {
     ./bootstrap.sh
     make V=0 PLATFORM=vpp TAG=vpp install-deb
 
+# Check vpp/build-root status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: vpp/build-root build failed' > /opt/script_status.txt
+        exit
+    fi
+
 # Install additional dependencies for vpp
     apt-get install -y python-cffi python-ply python-pycparser
 
 # Install the VPP package
     cd /opt/vpp/build-root
     dpkg -i *.deb
+
+# Check VPP package installation status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: VPP package installation failed' > /opt/script_status.txt
+        exit
+    fi
+
     systemctl stop vpp
 
 # Disable automatic upgrades
@@ -68,3 +90,6 @@ cdr2mask () {
         echo "APT::Periodic::Unattended-Upgrade \"0\";" >> /etc/apt/apt.conf.d/10periodic
         sed -i 's/\(APT::Periodic::Unattended-Upgrade\) "1"/\1 "0"/' /etc/apt/apt.conf.d/20auto-upgrades
     fi
+
+# Indicate script has finished executing
+    echo 'Execution of vBNG build script completed' > /opt/script_status.txt
index 0ed020f..2105cec 100644 (file)
@@ -325,3 +325,6 @@ EOF
     fi
 
     ./v_bng_init.sh
+
+# Indicate script has finished executing
+    echo 'Execution of vBNG install script completed' > /opt/script_status.txt
index c936fae..072a550 100644 (file)
@@ -6,6 +6,7 @@ VPP_PATCH_URL=$(cat /opt/config/vpp_patch_url.txt)
 HC2VPP_SOURCE_REPO_URL=$(cat /opt/config/hc2vpp_source_repo_url.txt)
 HC2VPP_SOURCE_REPO_RELEASE_TAG=$(cat /opt/config/hc2vpp_source_repo_release_tag.txt)
 CLOUD_ENV=$(cat /opt/config/cloud_env.txt)
+ERROR_MESSAGE='Execution of vBRG build script failed.'
 
 # Convert Network CIDR to Netmask
 cdr2mask () {
@@ -24,27 +25,43 @@ cdr2mask () {
 
 # Install the tools required for download codes
     apt-get install -y expect git patch make linux-image-extra-`uname -r`
-#Download and build the VPP codes
+# Download and build the VPP codes
     cd /opt
     git clone ${VPP_SOURCE_REPO_URL} -b ${VPP_SOURCE_REPO_RELEASE_TAG} vpp
     wget -O VPP-Add-Option82-Nat-Filter-For-vBRG.patch ${VPP_PATCH_URL}
 
     cd vpp
     patch -p1 < ../VPP-Add-Option82-Nat-Filter-For-vBRG.patch
-    expect -c "
-            set timeout 60;
-            spawn make install-dep;
-            expect {
-                    \"Do you want to continue?*\" {send \"Y\r\"; interact}
-            }
-    "
+    yes y | make install-dep
+
+# Check vpp build status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: VPP build failed' > /opt/script_status.txt
+        exit
+    fi
 
     cd build-root
     ./bootstrap.sh
     make V=0 PLATFORM=vpp TAG=vpp install-deb
 
-    # Install the VPP package
+# Check vpp/build-root build status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: vpp/build-root build failed' > /opt/script_status.txt
+        exit
+    fi
+
+# Install the VPP package
     dpkg -i *.deb
+
+# Check vpp package installation status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: VPP package installation failed' > /opt/script_status.txt
+        exit
+    fi
+
     systemctl stop vpp
 
 # Download and install HC2VPP from source
@@ -164,6 +181,14 @@ EOF
 
     cd hc2vpp
     mvn clean install
+
+# Check hc2vpp build status
+    if [[$? -ne 0]]
+    then
+        echo $ERROR_MESSAGE 'Reason: hc2vpp build failed' > /opt/script_status.txt
+        exit
+    fi
+
     l_version=$(cat pom.xml | grep "<version>" | head -1)
     l_version=$(echo "${l_version%<*}")
     l_version=$(echo "${l_version#*>}")
@@ -176,3 +201,6 @@ EOF
         echo "APT::Periodic::Unattended-Upgrade \"0\";" >> /etc/apt/apt.conf.d/10periodic
         sed -i 's/\(APT::Periodic::Unattended-Upgrade\) "1"/\1 "0"/' /etc/apt/apt.conf.d/20auto-upgrades
     fi
+
+# Indicate script has finished executing
+    echo 'Execution of vBRG build script completed' > /opt/script_status.txt
index e8be086..7adda82 100755 (executable)
@@ -342,3 +342,6 @@ EOF
     fi
 
     ./v_brgemu_init.sh
+
+# Indicate script has finished executing
+    echo 'Execution of vBRG install script completed' > /opt/script_status.txt