From 709b28006b8c09276c15f13152e4fcd8027271d0 Mon Sep 17 00:00:00 2001 From: Tobias Urdin Date: Mon, 23 Apr 2018 23:28:43 +0200 Subject: [PATCH] openstacklib::openstackclient Debian python3 This change adds support for installing the python3-openstackclient package on Debian. On Ubuntu and RedHat based the package name is still python-openstackclient. Change-Id: I8a0c5dfa9274dca167ad3bb33ab151fb693f5d4d --- manifests/openstackclient.pp | 15 +++++-- .../openstacklib_openstackclient_spec.rb | 39 +++++++++++++++++++ 2 files changed, 51 insertions(+), 3 deletions(-) create mode 100644 spec/classes/openstacklib_openstackclient_spec.rb diff --git a/manifests/openstackclient.pp b/manifests/openstackclient.pp index 25e23adc..47ba1148 100644 --- a/manifests/openstackclient.pp +++ b/manifests/openstackclient.pp @@ -5,11 +5,20 @@ # == Parameters # # [*package_ensure*] -# Ensure state of the openstackclient package. -# Optional. Defaults to 'present'. +# (Optional) Ensure state of the openstackclient package. +# Defaults to 'present' # class openstacklib::openstackclient( $package_ensure = 'present', ){ - ensure_packages('python-openstackclient', {'ensure' => $package_ensure, tag => 'openstack'}) + + $openstackclient_package_name = $::os_package_type ? { + 'debian' => 'python3-openstackclient', + default => 'python-openstackclient', + } + + ensure_packages($openstackclient_package_name, { + 'ensure' => $package_ensure, + 'tag' => 'openstack' + }) } diff --git a/spec/classes/openstacklib_openstackclient_spec.rb b/spec/classes/openstacklib_openstackclient_spec.rb new file mode 100644 index 00000000..cfcfdde0 --- /dev/null +++ b/spec/classes/openstacklib_openstackclient_spec.rb @@ -0,0 +1,39 @@ +require 'spec_helper' + +describe 'openstacklib::openstackclient' do + + shared_examples_for 'openstacklib::openstackclient' do + context 'with default params' do + it 'installs openstackclient' do + is_expected.to contain_package(platform_params[:openstackclient_package_name]).with( + :ensure => 'present', + :tag => 'openstack' + ) + end + 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 + if facts[:os_package_type] == 'debian' then + openstackclient_package_name = 'python3-openstackclient' + else + openstackclient_package_name = 'python-openstackclient' + end + { + :openstackclient_package_name => openstackclient_package_name + } + end + + it_behaves_like 'openstacklib::openstackclient' + end + end + +end