79 lines
3.0 KiB
Puppet
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
|
|
}
|