From 9ef62597c88476a4634f32fc2084f84edf2e084c Mon Sep 17 00:00:00 2001 From: Dan Bode <bodepd@gmail.com> Date: Fri, 19 Apr 2013 14:32:56 -0700 Subject: [PATCH] refactor of ovs module - remove the port and bridge defines b/c they created useless abstraction layers. - add redhat support --- manifests/bridge.pp | 15 --------------- manifests/ovs.pp | 39 ++++++++++++++++++++++++--------------- manifests/params.pp | 11 +++++++++++ manifests/port.pp | 9 --------- 4 files changed, 35 insertions(+), 39 deletions(-) delete mode 100644 manifests/bridge.pp create mode 100644 manifests/params.pp delete mode 100644 manifests/port.pp diff --git a/manifests/bridge.pp b/manifests/bridge.pp deleted file mode 100644 index bd78de42..00000000 --- a/manifests/bridge.pp +++ /dev/null @@ -1,15 +0,0 @@ -define vswitch::bridge ( - $external_ids = "", - $ensure = "present" -) { - if $external_ids == "" { - vs_bridge { $name: - ensure => $ensure - } - } else { - vs_bridge { $name: - external_ids => $external_ids, - ensure => $ensure - } - } -} diff --git a/manifests/ovs.pp b/manifests/ovs.pp index 94923077..7f5a6f91 100644 --- a/manifests/ovs.pp +++ b/manifests/ovs.pp @@ -2,34 +2,43 @@ class vswitch::ovs( $package_ensure = 'present' ) { case $::osfamily { - Debian: { + 'Debian': { # OVS doesn't build unless the kernel headers are present. - $kernelheaders_pkg = "linux-headers-$::kernelrelease" + $kernelheaders_pkg = "linux-headers-$::kernelrelease" if ! defined(Package[$kernelheaders_pkg]) { package { $kernelheaders_pkg: ensure => $package_ensure } } - package {["openvswitch-switch", "openvswitch-datapath-dkms"]: - ensure => $package_ensure, - before => Service['openvswitch-switch'], + service {'openvswitch': + ensure => true, + enable => true, + name => $::vswitch::params::ovs_service_name, + hasstatus => false, # the supplied command returns true even if it's not running + # Not perfect - should spot if either service is not running - but it'll do + status => "/etc/init.d/openvswitch-switch status | fgrep 'is running'", } exec { 'rebuild-ovsmod': command => "/usr/sbin/dpkg-reconfigure openvswitch-datapath-dkms > /tmp/reconf-log", - creates => "/lib/modules/$::kernelrelease/updates/dkms/openvswitch_mod.ko", - require => [Package['openvswitch-datapath-dkms', $kernelheaders_pkg]], + creates => "/lib/modules/$::kernelrelease/updates/dkms/openvswitch_mod.ko", + require => [Package['openvswitch-datapath-dkms', $kernelheaders_pkg]], before => Package['openvswitch-switch'], refreshonly => true } } + 'Redhat': { + service {'openvswitch': + ensure => true, + enable => true, + name => $::vswitch::params::ovs_service_name, + } + } } - service {"openvswitch-switch": - ensure => true, - enable => true, - hasstatus => false, # the supplied command returns true even if it's not running - # Not perfect - should spot if either service is not running - but it'll do - status => "/etc/init.d/openvswitch-switch status | fgrep 'is running'", + package { 'openvswitch': + name => $vswitch::params::ovs_package_name, + ensure => $package_ensure, + before => Service['openvswitch'], } - Service['openvswitch-switch'] -> Vs_port<||> - Service['openvswitch-switch'] -> Vs_bridge<||> + Service['openvswitch'] -> Vs_port<||> + Service['openvswitch'] -> Vs_bridge<||> } diff --git a/manifests/params.pp b/manifests/params.pp new file mode 100644 index 00000000..96e20782 --- /dev/null +++ b/manifests/params.pp @@ -0,0 +1,11 @@ +class vswitch::params { + if $::osfamily == 'Redhat' { + $ovs_package_name = 'openvswitch' + $ovs_service_name = 'openvswitch' + } elsif $::osfamily == 'Debian' { + $ovs_package_name = ['openvswitch-switch', 'openvswitch-datapath-dkms'] + $ovs_service_name = 'openvswitch-switch' + } else { + fail("Unsupported osfamily ${$::osfamily}") + } +} diff --git a/manifests/port.pp b/manifests/port.pp deleted file mode 100644 index 89857230..00000000 --- a/manifests/port.pp +++ /dev/null @@ -1,9 +0,0 @@ -define vswitch::port ( - $bridge, - $ensure = present -) { - vs_port { $name: - bridge => $bridge, - ensure => $ensure - } -}