puppet-vswitch/manifests/params.pp

79 lines
3.0 KiB
Puppet

# vswitch params
#
class vswitch::params {
include ::openstacklib::defaults
if versioncmp($::puppetversion, '4.0.0') < 0 and versioncmp($::puppetversion, '3.6.1') >= 0 {
Package<| tag == 'openvswitch' |> {
allow_virtual => true,
}
}
case $::osfamily {
'Redhat': {
$ovs_package_name = 'openvswitch'
# OVS2.5 in Red Hat family is unified package which will support plain
# OVS and also DPDK (if enabled at runtime).
$ovs_dpdk_package_name = 'openvswitch'
$ovs_dkms_package_name = undef
$ovs_service_name = 'openvswitch'
$ovsdb_service_name = undef
$ovs_service_hasstatus = undef
$ovs_status = undef
$provider = 'ovs_redhat'
}
'Debian': {
$ovs_package_name = 'openvswitch-switch'
$ovs_dpdk_package_name = 'openvswitch-switch-dpdk'
$ovs_dkms_package_name = 'openvswitch-datapath-dkms'
$ovs_service_name = 'openvswitch-switch'
$ovsdb_service_name = undef
$provider = 'ovs'
case $::operatingsystem {
'ubuntu': {
# ubuntu 16.04 doesn't have upstart
# this workaround should be removed when https://bugs.launchpad.net/ubuntu/+source/openvswitch/+bug/1585201
# will be resolved
if versioncmp($::operatingsystemmajrelease, '16') >= 0 {
$ovs_status = '/etc/init.d/openvswitch-switch status | fgrep -q "not running"; if [ $? -eq 0 ]; then exit 1; else exit 0; fi'
} else {
$ovs_status = '/sbin/status openvswitch-switch | fgrep "start/running"'
}
$ovs_service_hasstatus = false
}
'debian': {
if ($::lsbdistcodename == 'wheezy') {
$ovs_service_hasstatus = false
$ovs_status = '/etc/init.d/openvswitch-switch status | fgrep -q "not running"; if [ $? -eq 0 ]; then exit 1; else exit 0; fi' # lint:ignore:140chars
} else {
$ovs_service_hasstatus = true
$ovs_status = undef
}
}
default: {
fail('Unsupported Debian based system')
}
}
}
'FreeBSD': {
$ovs_package_name = 'openvswitch'
$ovs_pkg_provider = 'pkgng'
$provider = 'ovs'
$ovs_service_name = 'ovs-vswitchd'
$ovsdb_service_name = 'ovsdb-server'
$ovs_status = "/usr/sbin/service ${ovs_service_name} onestatus"
$ovsdb_status = "/usr/sbin/service ${ovsdb_service_name} onestatus"
}
'Solaris': {
$ovs_package_name = 'service/network/openvswitch'
$ovs_service_name = 'application/openvswitch/vswitch-server:default'
$ovsdb_service_name = 'application/openvswitch/ovsdb-server:default'
$ovs_status = "/usr/bin/svcs -H -o state ${ovs_service_name} | grep online"
$ovsdb_status = "/usr/bin/svcs -H -o state ${ovsdb_service_name} | grep online"
}
default: {
fail " Osfamily ${::osfamily} not supported yet"
}
} # Case $::osfamily
}