Merge "Add support for iscsid configuration"
This commit is contained in:
commit
de68e1eace
|
@ -0,0 +1,58 @@
|
|||
# == Class: openstacklib::iscsid
|
||||
#
|
||||
# Installs and configures the iscsid daemon
|
||||
#
|
||||
# == Parameters
|
||||
#
|
||||
# [*enabled*]
|
||||
# (optional) Should the service be enabled.
|
||||
# Defaults to true.
|
||||
#
|
||||
# [*manage_service*]
|
||||
# (optional) Whether the service should be managed by Puppet.
|
||||
# Defaults to true.
|
||||
#
|
||||
# [*package_ensure*]
|
||||
# (optional) ensure state for package.
|
||||
# Defaults to 'present'
|
||||
#
|
||||
class openstacklib::iscsid(
|
||||
$enabled = true,
|
||||
$manage_service = true,
|
||||
$package_ensure = 'present'
|
||||
) {
|
||||
|
||||
include openstacklib::params
|
||||
|
||||
package { 'open-iscsi':
|
||||
ensure => $package_ensure,
|
||||
name => $::openstacklib::params::open_iscsi_package_name,
|
||||
tag => 'openstack',
|
||||
}
|
||||
|
||||
# In CentOS9/RHEL9 initiatorname.iscsi is not created automatically
|
||||
# so should be created
|
||||
exec { 'create-initiatorname-file':
|
||||
command => 'echo "InitiatorName=`/usr/sbin/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi',
|
||||
path => ['/usr/bin','/usr/sbin','/bin','/usr/bin'],
|
||||
unless => 'test -e /etc/iscsi/initiatorname.iscsi',
|
||||
require => Package['open-iscsi'],
|
||||
}
|
||||
|
||||
if $manage_service {
|
||||
if $enabled {
|
||||
$service_ensure = 'running'
|
||||
} else {
|
||||
$service_ensure = 'stopped'
|
||||
}
|
||||
|
||||
# iscsid service is started automatically when iscsiadm command is
|
||||
# executed but there is no harm even if the service is already started.
|
||||
service { 'iscsid':
|
||||
ensure => $service_ensure,
|
||||
enable => $enabled,
|
||||
}
|
||||
Package['open-iscsi'] ~> Service['iscsid']
|
||||
Exec['create-initiatorname-file'] ~> Service['iscsid']
|
||||
}
|
||||
}
|
|
@ -9,4 +9,17 @@ class openstacklib::params {
|
|||
$pyvers = $::openstacklib::defaults::pyvers
|
||||
|
||||
$openstackclient_package_name = "python${pyvers}-openstackclient"
|
||||
|
||||
case $::osfamily {
|
||||
'RedHat': {
|
||||
$open_iscsi_package_name = 'iscsi-initiator-utils'
|
||||
}
|
||||
'Debian': {
|
||||
$open_iscsi_package_name = 'open-iscsi'
|
||||
}
|
||||
default:{
|
||||
fail("Unsupported osfamily: ${::osfamily} operatingsystem: ${::operatingsystem}, \
|
||||
module ${module_name} only support osfamily RedHat and Debian")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
The new ``openstacklib::iscsid`` class has been added. This class can be
|
||||
used to set up basic configurations for the iscsid service.
|
|
@ -0,0 +1,47 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'openstacklib::iscsid' do
|
||||
shared_examples_for 'openstacklib::iscsid' do
|
||||
context 'with default params' do
|
||||
it { is_expected.to contain_package('open-iscsi').with(
|
||||
:name => platform_params[:open_iscsi_package_name],
|
||||
:ensure => 'present',
|
||||
:tag => 'openstack',
|
||||
)}
|
||||
|
||||
it { is_expected.to contain_exec('create-initiatorname-file').with({
|
||||
:command => 'echo "InitiatorName=`/usr/sbin/iscsi-iname`" > /etc/iscsi/initiatorname.iscsi',
|
||||
:path => ['/usr/bin','/usr/sbin','/bin','/usr/bin'],
|
||||
:unless => 'test -e /etc/iscsi/initiatorname.iscsi',
|
||||
}).that_requires('Package[open-iscsi]')}
|
||||
|
||||
it { is_expected.to contain_service('iscsid').with(
|
||||
:ensure => 'running',
|
||||
:enable => true,
|
||||
) }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
on_supported_os({
|
||||
:supported_os => OSDefaults.get_supported_os
|
||||
}).each do |os,facts|
|
||||
context "on #{os}" do
|
||||
let (:facts) do
|
||||
facts.merge!(OSDefaults.get_facts())
|
||||
end
|
||||
|
||||
let(:platform_params) do
|
||||
case facts[:osfamily]
|
||||
when 'Debian'
|
||||
{ :open_iscsi_package_name => 'open-iscsi' }
|
||||
when 'RedHat'
|
||||
{ :open_iscsi_package_name => 'iscsi-initiator-utils' }
|
||||
end
|
||||
end
|
||||
|
||||
it_behaves_like 'openstacklib::iscsid'
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in New Issue