Add client recipe for identity

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

Change-Id: Ib6ffb3e4f27d60c82feb81386427edeaf0336866
Addresses: blueprint add-client-recipes
This commit is contained in:
Mark Vanderwiel 2014-02-12 11:31:38 -06:00
parent a219a7ef52
commit 11a6c247c1
7 changed files with 82 additions and 1 deletions

View File

@ -2,6 +2,9 @@
This file is used to list changes made in each version of cookbook-openstack-identity.
## 8.1.0
* Add client recipe
## 8.0.0
* Updating to Havana
* Updating cookbook-openstack-common dep from 0.3.0 to 0.4.7

View File

@ -20,6 +20,12 @@ The following cookbooks are dependencies:
Usage
=====
client
------
Installs the keystone client packages
server
------

View File

@ -165,6 +165,7 @@ when 'fedora', 'redhat', 'centos' # :pragma-foodcritic: ~FC024 - won't fix this
'postgresql_python_packages' => ['python-psycopg2'],
'memcache_python_packages' => ['python-memcached'],
'keystone_packages' => ['openstack-keystone'],
'keystone_client_packages' => ['python-keystoneclient'],
'keystone_service' => 'openstack-keystone',
'keystone_process_name' => 'keystone-all',
'package_options' => ''
@ -177,6 +178,7 @@ when 'suse'
'postgresql_python_packages' => ['python-psycopg2'],
'memcache_python_packages' => ['python-python-memcached'],
'keystone_packages' => ['openstack-keystone'],
'keystone_client_packages' => ['python-keystoneclient'],
'keystone_service' => 'openstack-keystone',
'keystone_process_name' => 'keystone-all',
'package_options' => ''
@ -189,6 +191,7 @@ when 'ubuntu'
'postgresql_python_packages' => ['python-psycopg2'],
'memcache_python_packages' => ['python-memcache'],
'keystone_packages' => ['keystone'],
'keystone_client_packages' => ['python-keystoneclient'],
'keystone_service' => 'keystone',
'keystone_process_name' => 'keystone-all',
'package_options' => "-o Dpkg::Options::='--force-confold' -o Dpkg::Options::='--force-confdef'"

View File

@ -4,8 +4,9 @@ maintainer_email 'matt@opscode.com'
license 'Apache 2.0'
description 'The OpenStack Identity service Keystone.'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '8.0.0'
version '8.1.0'
recipe 'openstack-identity::client', 'Install packages required for keystone client'
recipe 'openstack-identity::server', 'Installs and Configures Keystone Service'
recipe 'openstack-identity::registration', 'Adds user, tenant, role and endpoint records to Keystone'

32
recipes/client.rb Normal file
View File

@ -0,0 +1,32 @@
# encoding: UTF-8
#
# Cookbook Name:: openstack-identity
# 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']['identity']['platform']
platform_options['keystone_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-identity::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-keystoneclient')
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-identity::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-keystoneclient')
end
end
end