diff options
Diffstat (limited to 'build/f_example_control_bond/puppet/modules/opnfv')
-rw-r--r-- | build/f_example_control_bond/puppet/modules/opnfv/files/control-bond | 90 | ||||
-rw-r--r-- | build/f_example_control_bond/puppet/modules/opnfv/manifests/control-bond.pp | 56 |
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', + } +} |