summaryrefslogtreecommitdiffstats
path: root/build/f_example_control_bond/puppet/modules
diff options
context:
space:
mode:
Diffstat (limited to 'build/f_example_control_bond/puppet/modules')
-rw-r--r--build/f_example_control_bond/puppet/modules/opnfv/files/control-bond90
-rw-r--r--build/f_example_control_bond/puppet/modules/opnfv/manifests/control-bond.pp56
2 files changed, 146 insertions, 0 deletions
diff --git a/build/f_example_control_bond/puppet/modules/opnfv/files/control-bond b/build/f_example_control_bond/puppet/modules/opnfv/files/control-bond
new file mode 100644
index 000000000..bf2930d73
--- /dev/null
+++ b/build/f_example_control_bond/puppet/modules/opnfv/files/control-bond
@@ -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
diff --git a/build/f_example_control_bond/puppet/modules/opnfv/manifests/control-bond.pp b/build/f_example_control_bond/puppet/modules/opnfv/manifests/control-bond.pp
new file mode 100644
index 000000000..22fe78171
--- /dev/null
+++ b/build/f_example_control_bond/puppet/modules/opnfv/manifests/control-bond.pp
@@ -0,0 +1,56 @@
+##############################################################################
+# 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
+##############################################################################
+
+# Class: opnfv::control-bond
+#
+# Bridge control and management networks together using OVS.
+#
+#
+
+class opnfv::control-bond {
+ notify { '*** In Opnfv::control-bond-start ***': }
+
+ file { "/etc/init.d/control-bond":
+ source => "puppet:///modules/opnfv/control-bond",
+ owner => 'root',
+ group => 'root',
+ mode => '0755',
+ notify => Service["control-bond"]
+ }
+
+
+ service { "control-bond":
+ ensure => running,
+ require => [ File["/etc/init.d/control-bond"], Service["openvswitch-service"] ],
+ }
+
+ # Only start scripts - we don't want to bring down
+ # bridge during shutdown
+
+ file { "/etc/rc2.d/S18control-bond":
+ ensure => 'link',
+ target => '/etc/init.d/control-bond',
+ }
+
+ file { "/etc/rc3.d/S18control-bond":
+ ensure => 'link',
+ target => '/etc/init.d/control-bond',
+ }
+
+ file { "/etc/rc4.d/S18control-bond":
+ ensure => 'link',
+ target => '/etc/init.d/control-bond',
+ }
+
+ file { "/etc/rc5.d/S18control-bond":
+ ensure => 'link',
+ target => '/etc/init.d/control-bond',
+ }
+}