Starting point for ODL Integration
[genesis.git] / fuel / build / f_example_control_bond / puppet / modules / opnfv / files / control-bond
diff --git a/fuel/build/f_example_control_bond/puppet/modules/opnfv/files/control-bond b/fuel/build/f_example_control_bond/puppet/modules/opnfv/files/control-bond
new file mode 100644 (file)
index 0000000..bf2930d
--- /dev/null
@@ -0,0 +1,90 @@
+##############################################################################
+# Copyright (c) 2015 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+#!/bin/sh
+### BEGIN INIT INFO
+# Provides:          control-bond
+# Required-Start:    $remote_fs $all
+# Required-Stop:
+# Default-Start:     2 3 4 5
+# Default-Stop:     0 1 6
+# Short-Description: Bonds eth0 and eth1 and changes bridge configuration.
+### END INIT INFO
+
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+VSCTL=/usr/bin/ovs-vsctl
+APPCTL=/usr/bin/ovs-appctl
+
+
+add_control_bond() {
+        logger "Starting addition of control-bond"
+        $VSCTL --may-exist br-fw-admin
+        $VSCTL --may-exist br-mgmt
+        $VSCTL add-bond br-fw-admin bond-control eth0 eth1
+
+        $VSCTL set port br-mgmt tag=66
+        $APPCTL bond/set-active-slave bond-control eth0
+
+        $VSCTL add-port br-fw-admin admin-to-mgmt
+        $VSCTL add-port br-mgmt mgmt-to-admin
+        $VSCTL set interface admin-to-mgmt type=patch
+        $VSCTL set interface mgmt-to-admin type=patch
+
+        $VSCTL set interface admin-to-mgmt options:peer=mgmt-to-admin
+        $VSCTL set interface mgmt-to-admin options:peer=admin-to-mgmt
+
+        $VSCTL set port admin-to-mgmt trunk=66
+        $VSCTL set port mgmt-to-admin trunk=66
+        logger "Finished addition of control-bond"
+}
+
+status_control_bond() {
+       if [ ! -f $VSCTL ]; then
+         return 1
+       else
+         $VSCTL show | grep -q "admin-to-mgmt"
+         return $?
+       fi
+}
+
+case "$1" in
+    start)
+        status_control_bond
+        if [ $? -eq 0 ]; then
+            exit 0
+        else
+            add_control_bond
+        fi
+        ;;
+    restart|reload|force-reload)
+        echo "Error: argument '$1' not supported" >&2
+        exit 3
+        ;;
+    status)
+        status_control_bond
+        if [ $? -eq 0 ]; then
+           echo "The control-bond is enabled"
+           exit 0
+        else
+           echo "The control-bond is disabled"
+           exit 1
+        fi
+
+        ;;
+    stop)
+        echo "Stop is not supported"
+        exit 0
+        ;;
+    *)
+        echo "Usage: $0 start|status" >&2
+        exit 3
+        ;;
+esac