Merge "Add ironic::drivers::staging to install ironic-staging-drivers"

This commit is contained in:
Zuul 2017-11-29 06:13:26 +00:00 committed by Gerrit Code Review
commit 6446d6363d
4 changed files with 91 additions and 0 deletions

View File

@ -0,0 +1,24 @@
# Class ironic::drivers::staging
#
# Manages the ironic-staging-drivers package on systems
#
# === Parameters:
#
# [*package_ensure*]
# (optional) The state of the package
# Defaults to present
#
class ironic::drivers::staging (
$package_ensure = present
) {
include ::ironic::deps
include ::ironic::params
package { 'ironic-staging-drivers':
ensure => $package_ensure,
name => $::ironic::params::staging_drivers_package,
tag => ['openstack', 'ironic-support-package'],
}
}

View File

@ -40,6 +40,7 @@ class ironic::params {
$inspector_package = 'openstack-ironic-inspector'
$inspector_service = 'openstack-ironic-inspector'
$inspector_dnsmasq_service = 'openstack-ironic-inspector-dnsmasq'
$staging_drivers_package = 'openstack-ironic-staging-drivers'
$ipxe_rom_dir = '/usr/share/ipxe'
$ironic_wsgi_script_path = '/var/www/cgi-bin/ironic'
$ironic_wsgi_script_source = '/usr/lib/python2.7/site-packages/ironic/api/app.wsgi'
@ -61,6 +62,8 @@ class ironic::params {
# https://packages.debian.org/source/experimental/ironic-inspector
# this should be changed to whatever debian will use for dnsmasq
$inspector_dnsmasq_service = 'ironic-inspector-dnsmasq'
# guessing the name, ironic-staging-drivers is not packaged in debian yet
$staging_drivers_package = 'ironic-staging-drivers'
$ipxe_rom_dir = '/usr/lib/ipxe'
$ironic_wsgi_script_path = '/usr/lib/cgi-bin/ironic'
$ironic_wsgi_script_source = '/usr/lib/python2.7/dist-packages/ironic/api/app.wsgi'

View File

@ -0,0 +1,5 @@
---
features:
- |
Add support for installing the ``ironic-staging-drivers`` package via
the new ``ironic::drivers::staging`` manifest.

View File

@ -0,0 +1,59 @@
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Unit tests for ironic::drivers::staging
#
require 'spec_helper'
describe 'ironic::drivers::staging' do
let :params do
{}
end
let :default_params do
{ :package_ensure => 'present' }
end
shared_examples_for 'ironic-staging-drivers' do
let :p do
default_params.merge(params)
end
it { is_expected.to contain_class('ironic::deps') }
it { is_expected.to contain_class('ironic::params') }
it 'installs ironic-staging-drivers package' do
is_expected.to contain_package('ironic-staging-drivers').with(
:ensure => 'present',
:name => 'openstack-ironic-staging-drivers',
:tag => ['openstack', 'ironic-support-package'],
)
end
end
# TODO: use OSDefaults.get_supported_os when ironic-staging-drivers is
# packaged for Debian and Ubuntu
on_supported_os({
:supported_os => [ { 'operatingsystem' => 'CentOS',
'operatingsystemrelease' => [ '7' ] } ]
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_configures 'ironic-staging-drivers'
end
end
end