puppet-openstack-cloud/spec/defines/cloud_clustering_pacemaker_service_spec.rb
Javier Pena 763fc61aef Add Pacemaker service wrapper
This patch adds a service wrapper based on the existing support
from stackforge/puppet-openstack_extras. It allows wrapping an
OpenStack service as a Pacemaker resource, including options for
cloned resources, resource colocation and resource start ordering.

Change-Id: Iccfebb758874f53d8e6a0d1aaf4c0368dda74dce
2015-01-29 14:56:30 +01:00

93 lines
2.5 KiB
Ruby

#
# Copyright (C) 2015 Red Hat Inc.
#
# 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.
#
# Spec tests for cloud::clustering::pacemaker_service
require 'spec_helper'
describe 'cloud::clustering::pacemaker_service', :type => :define do
let :pre_condition do
"service { ['foo-api','bar-api']:
ensure => running
}"
end
let (:title) { 'foo-api' }
let :params do
{
:service_name => 'foo-api',
:primitive_class => 'systemd',
:primitive_provider => false,
:primitive_type => 'foo-api',
:clone => false,
:colocated_services => [],
:start_after => [],
:requires => []
}
end
context 'with default parameters' do
it 'should create a Pacemaker service' do
should contain_openstack_extras__pacemaker__service('foo-api').with(
{
'ensure' => :present,
'primitive_class' => params[:primitive_class],
'primitive_provider' => params[:primitive_provider],
'primitive_type' => params[:primitive_type],
'clone' => params[:clone],
'require' => params[:requires]
}
)
end
end
context 'with colocated services and start ordering' do
before :each do
params.merge!(
:colocated_services => ["bar-api"],
:start_after => ["foo-api"],
)
end
it 'creates a colocation constraint' do
is_expected.to contain_cloud__clustering__pacemaker_colocation('foo-api')
end
it 'creates an order constraint' do
is_expected.to contain_cloud__clustering__pacemaker_order('foo-api')
end
end
context 'with clone=true' do
before :each do
params.merge!(
:clone => true,
)
end
it 'creates a cloned resource' do
is_expected.to contain_openstack_extras__pacemaker__service('foo-api').with(
{
'clone' => :true
}
)
end
end
end