From 1c25bafc3792462a7881a758701ea5800d27ab15 Mon Sep 17 00:00:00 2001 From: Mark Vanderwiel Date: Wed, 12 Feb 2014 15:11:52 -0600 Subject: [PATCH] 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 --- CHANGELOG.md | 3 +++ README.md | 4 ++++ attributes/default.rb | 3 +++ metadata.rb | 3 ++- recipes/client.rb | 32 ++++++++++++++++++++++++++++++++ spec/client-redhat_spec.rb | 18 ++++++++++++++++++ spec/client_spec.rb | 18 ++++++++++++++++++ 7 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 recipes/client.rb create mode 100644 spec/client-redhat_spec.rb create mode 100644 spec/client_spec.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index c0d1e03..b457a5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/README.md b/README.md index 79fd586..aef6cc0 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,10 @@ api ---- - Installs API service. +client +---- +- Install the client packages + collector ---- - Installs nova network service. diff --git a/attributes/default.rb b/attributes/default.rb index 1e3e55f..5cbe0b0 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -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' } diff --git a/metadata.rb b/metadata.rb index e2fb837..14c19ab 100644 --- a/metadata.rb +++ b/metadata.rb @@ -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' diff --git a/recipes/client.rb b/recipes/client.rb new file mode 100644 index 0000000..e9741af --- /dev/null +++ b/recipes/client.rb @@ -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 diff --git a/spec/client-redhat_spec.rb b/spec/client-redhat_spec.rb new file mode 100644 index 0000000..2ee2ebe --- /dev/null +++ b/spec/client-redhat_spec.rb @@ -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 diff --git a/spec/client_spec.rb b/spec/client_spec.rb new file mode 100644 index 0000000..d7f82be --- /dev/null +++ b/spec/client_spec.rb @@ -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