[CORD-1305] PPPoE Client
Change-Id: Id5ae5ba0ce0cbb89d434fb34d4c42796c61c059e
diff --git a/extensions/pppoe/scripts/nova_pppoe_cleanup.sh b/extensions/pppoe/scripts/nova_pppoe_cleanup.sh
new file mode 100755
index 0000000..6532ecf
--- /dev/null
+++ b/extensions/pppoe/scripts/nova_pppoe_cleanup.sh
@@ -0,0 +1,129 @@
+#!/bin/bash
+#************************************************************/
+#** File: nova_pppoe_cleanup.sh */
+#** Contents: Contains shell script to clean up */
+#** nova-compute VM */
+#************************************************************/
+
+date
+echo "nova_pppoe_cleanup.sh: Begin"
+
+HOME_DIR=`pwd`; export HOME_DIR
+vsg_monitor_script="nova_vsg_monitor.sh"
+vsg_cleanup_script="vsg_pppoe_cleanup.sh"
+vsg_gwbr_name=vsg_gwbr
+vsg_home_dir=/home/ubuntu
+vsg_env_file=vsg_env.txt
+# Read the temp_id.txt file and fill the array named "array"
+
+getArray() {
+ array=() # Create array
+ while IFS= read -r line # Read a line
+ do
+ array+=("$line") # Append line to the array
+ done < "$1"
+}
+
+get_vsg_gwbr_ifaces() {
+ ifacesArray=() # Create array
+ while IFS= read -r line # Read a line
+ do
+ ifacesArray+=("$line") # Append line to the array
+ done < "$1"
+}
+
+function cleanup_vsg_dockers() {
+
+ source ${HOME_DIR}/admin-openrc.sh
+
+ echo "Checking for active VSG..."
+
+ file_temp="${HOME_DIR}/temp_id.txt"
+
+ nova list --all-tenants|grep mysite_vsg|grep ACTIVE|awk '{print $2}' > $file_temp
+
+ getArray $file_temp
+
+ for id in "${array[@]}"
+ do
+ echo "VSG ID=$id"
+ vsgIp=$( nova interface-list $id|grep 172.27|awk '{print $8}' )
+ echo "Cleaning up VSG: vsgIp: $vsgIp"
+ scp $HOME_DIR/$vsg_cleanup_script "ubuntu@$vsgIp:/tmp"
+ scp $HOME_DIR/$vsg_env_file "ubuntu@$vsgIp:/tmp"
+ ssh ubuntu@$vsgIp "chmod +x /tmp/$vsg_cleanup_script"
+ ssh ubuntu@$vsgIp "/tmp/$vsg_cleanup_script $vsgIp $vsg_home_dir"
+ echo "VSG Instance $vsgIp cleanup is complete"
+ done
+}
+
+function cleanup_vsg_gwbr() {
+
+ echo "Entering function_cleanup_vsg_gwbridge "
+ source ${HOME_DIR}/admin-openrc.sh
+
+ file_temp="${HOME_DIR}/vsg_id.txt"
+ file_ifaces="${HOME_DIR}/gwbr_ifaces.txt"
+
+ sudo virsh list|awk '{print $1}' > $file_temp
+
+ getArray $file_temp
+
+ for id in "${array[@]}"
+ do
+ len=${#id}
+ if [ $len -eq 0 ] || echo $id|grep [^0-9]; then
+ echo "Not a valid virsh ID: $id"
+ else
+ echo "Cleaning up VSG instance: $id"
+ sudo virsh domiflist $id|grep $vsg_gwbr_name|awk '{print $NF}' > $file_ifaces
+ get_vsg_gwbr_ifaces $file_ifaces
+ for mac in "${ifacesArray[@]}"
+ do
+ echo "Detaching interface $mac in VSG instance: $id"
+ sudo virsh detach-interface $id bridge $mac
+ done
+ echo "VSG Instance $id cleanup is complete"
+ fi
+ done
+ if ifconfig -a |grep $vsg_gwbr_name; then
+ sudo ifconfig $vsg_gwbr_name down
+ sudo brctl delbr $vsg_gwbr_name
+ fi
+}
+
+function remove_temp_files () {
+ sudo rm -f $HOME_DIR/*.txt
+}
+
+function remove_apps() {
+ echo "Removing Apps"
+ sudo rm -rf /usr/local/pppoe/utils/
+ sudo rm -rf /usr/local/pppoe
+}
+
+function stop_vsg_monitor() {
+ echo "Stopping pppoe_check_vsg_status.sh script"
+ pid=`ps -ef | grep $vsg_monitor_script| grep -v grep | awk '{print $2}'`
+ if [ -n $pid ]; then
+ sudo kill -9 $pid
+ fi
+ rm -rf $HOME_DIR/nova_vsg_monitor.log
+}
+
+function stop_nova_consolidator() {
+ echo "Stopping nova consolidation app"
+ $HOME_DIR/nova_consolidator_stop.sh
+ sudo rm -f /usr/local/lib/node_modules/*.json
+}
+
+#remove_vsg_entry_from_proxy_file
+#delete_vsg_id
+stop_vsg_monitor
+remove_apps
+cleanup_vsg_dockers
+cleanup_vsg_gwbr
+stop_nova_consolidator
+remove_temp_files
+echo "nova_pppoe_cleanup.sh: End"
+date