Add client recipe for metering

Add an explicit recipe for installing client
only packages.
Tests are also included.
Bumped minor version for this new feature.
Added RHEL support and test

Change-Id: Ic4170f0df1a88839e97458ed5cb68237e61d0134
Addresses: blueprint add-client-recipes
This commit is contained in:
Mark Vanderwiel 2014-02-12 15:11:52 -06:00
parent 065f14b41f
commit 1c25bafc37
7 changed files with 80 additions and 1 deletions

View File

@ -2,6 +2,9 @@ openstack-metering Cookbook CHANGELOG
==============================
This file is used to list changes made in each version of the openstack-metering cookbook.
## 8.1.0
* Add client recipe
## 8.0.0
### New version
* Upgrade to upstream Havana release

View File

@ -28,6 +28,10 @@ api
----
- Installs API service.
client
----
- Install the client packages
collector
----
- Installs nova network service.

View File

@ -47,6 +47,7 @@ when 'suse' # :pragma-foodcritic: ~FC024 - won't fix this
'agent_compute_service' => 'openstack-ceilometer-agent-compute',
'api_packages' => ['openstack-ceilometer-api'],
'api_service' => 'openstack-ceilometer-api',
'client_packages' => ['python-ceilometerclient'],
'collector_packages' => ['openstack-ceilometer-collector'],
'collector_service' => 'openstack-ceilometer-collector'
}
@ -59,6 +60,7 @@ when 'fedora', 'redhat', 'centos'
'agent_compute_service' => 'openstack-ceilometer-compute',
'api_packages' => ['openstack-ceilometer-api'],
'api_service' => 'openstack-ceilometer-api',
'client_packages' => ['python-ceilometerclient'],
'collector_packages' => ['openstack-ceilometer-collector'],
'collector_service' => 'openstack-ceilometer-collector'
}
@ -72,6 +74,7 @@ when 'ubuntu'
'agent_compute_service' => 'ceilometer-agent-compute',
'api_packages' => ['ceilometer-api'],
'api_service' => 'ceilometer-api',
'client_packages' => ['python-ceilometerclient'],
'collector_packages' => ['ceilometer-collector', 'python-mysqldb'],
'collector_service' => 'ceilometer-collector'
}

View File

@ -4,11 +4,12 @@ maintainer_email 'cookbooks@lists.tfoundry.com'
license 'Apache 2.0'
description 'The OpenStack Metering service Ceilometer.'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '8.0.0'
version '8.1.0'
recipe 'openstack-metering::agent-central', 'Installs agent central service.'
recipe 'openstack-metering::agent-compute', 'Installs agent compute service.'
recipe 'openstack-metering::api', 'Installs API service.'
recipe 'openstack-metering::client', 'Installs client.'
recipe 'openstack-metering::collector', 'Installs nova network service.'
recipe 'openstack-metering::common', 'Common metering configuration.'
recipe 'openstack-metering::identity_registration', 'Registers the endpoints with Keystone'

32
recipes/client.rb Normal file
View File

@ -0,0 +1,32 @@
# encoding: UTF-8
#
# Cookbook Name:: openstack-metering
# Recipe:: client
#
# Copyright 2014, IBM Corp.
#
# 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.
#
class ::Chef::Recipe # rubocop:disable Documentation
include ::Openstack
end
platform_options = node['openstack']['metering']['platform']
platform_options['client_packages'].each do |pkg|
package pkg do
options platform_options['package_overrides']
action :upgrade
end
end

View File

@ -0,0 +1,18 @@
# encoding: UTF-8
require_relative 'spec_helper'
describe 'openstack-metering::client' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
runner.converge(described_recipe)
end
it 'installs packages' do
expect(chef_run).to upgrade_package('python-ceilometerclient')
end
end
end

18
spec/client_spec.rb Normal file
View File

@ -0,0 +1,18 @@
# encoding: UTF-8
require_relative 'spec_helper'
describe 'openstack-metering::client' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
runner.converge(described_recipe)
end
it 'installs packages' do
expect(chef_run).to upgrade_package('python-ceilometerclient')
end
end
end