From 4fe53e18ca8fed747d0e106223e2b6091e385b6f Mon Sep 17 00:00:00 2001 From: Chen Zhiwei Date: Wed, 4 Dec 2013 22:38:02 -0500 Subject: [PATCH] Add DB2 support to cinder on redhat platform Add a new attribute default["openstack"]["block-storage"]["platform"]["db2_python_packages"] Change-Id: Ibfaef276788322867a9461235eeac8d5c706c3f5 Implements: blueprint db2-support --- README.md | 4 +++- attributes/default.rb | 1 + spec/api-redhat_spec.rb | 11 +++++++++++ spec/scheduler-redhat_spec.rb | 11 +++++++++++ spec/volume-redhat_spec.rb | 11 +++++++++++ 5 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f0cd48f..d20b129 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,8 @@ Attributes ========== * `openstack["block-storage"]["db"]["username"]` - cinder username for database +TODO: Add DB2 support on other platforms +* `openstack["block-storage"]["platform"]["db2_python_packages"]` - Array of DB2 python packages, only available on redhat platform MQ attributes ------------- @@ -139,7 +141,7 @@ License and Author | **Copyright** | Copyright (c) 2012-2013, AT&T Services, Inc. | | **Copyright** | Copyright (c) 2013, Opscode, Inc. | | **Copyright** | Copyright (c) 2013, SUSE Linux GmbH | -| **Copyright** | Copyright (c) 2013, IBM, Corp | +| **Copyright** | Copyright (c) 2013, IBM, Corp. | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/attributes/default.rb b/attributes/default.rb index 92cab33..225c93e 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -164,6 +164,7 @@ when 'fedora', 'redhat', 'centos' # :pragma-foodcritic: ~FC024 - won't fix this default['openstack']['block-storage']['platform'] = { 'mysql_python_packages' => ['MySQL-python'], + 'db2_python_packages' => ['db2-odbc', 'python-ibm-db', 'python-ibm-db-sa'], 'postgresql_python_packages' => ['python-psycopg2'], 'cinder_common_packages' => ['openstack-cinder'], 'cinder_api_packages' => ['python-cinderclient'], diff --git a/spec/api-redhat_spec.rb b/spec/api-redhat_spec.rb index 1b7bbcc..1e4f514 100644 --- a/spec/api-redhat_spec.rb +++ b/spec/api-redhat_spec.rb @@ -16,6 +16,17 @@ describe "openstack-block-storage::api" do expect(@chef_run).to upgrade_package "MySQL-python" end + it "installs db2 python packages if explicitly told" do + chef_run = ::ChefSpec::Runner.new ::REDHAT_OPTS + node = chef_run.node + node.set["openstack"]["db"]["volume"]["db_type"] = "db2" + chef_run.converge "openstack-block-storage::api" + + ["db2-odbc", "python-ibm-db", "python-ibm-db-sa"].each do |pkg| + expect(chef_run).to upgrade_package pkg + end + end + it "installs postgresql python packages if explicitly told" do chef_run = ::ChefSpec::Runner.new ::REDHAT_OPTS node = chef_run.node diff --git a/spec/scheduler-redhat_spec.rb b/spec/scheduler-redhat_spec.rb index d2bde3a..da6bb26 100644 --- a/spec/scheduler-redhat_spec.rb +++ b/spec/scheduler-redhat_spec.rb @@ -23,6 +23,17 @@ describe "openstack-block-storage::scheduler" do expect(@chef_run).to upgrade_package "MySQL-python" end + it "installs db2 python packages if explicitly told" do + chef_run = ::ChefSpec::Runner.new ::REDHAT_OPTS + node = chef_run.node + node.set["openstack"]["db"]["volume"]["db_type"] = "db2" + chef_run.converge "openstack-block-storage::scheduler" + + ["db2-odbc", "python-ibm-db", "python-ibm-db-sa"].each do |pkg| + expect(chef_run).to upgrade_package pkg + end + end + it "installs postgresql python packages if explicitly told" do chef_run = ::ChefSpec::Runner.new ::REDHAT_OPTS node = chef_run.node diff --git a/spec/volume-redhat_spec.rb b/spec/volume-redhat_spec.rb index 2aea295..8065f1f 100644 --- a/spec/volume-redhat_spec.rb +++ b/spec/volume-redhat_spec.rb @@ -12,6 +12,17 @@ describe "openstack-block-storage::volume" do expect(@chef_run).to upgrade_package "MySQL-python" end + it "installs db2 python packages if explicitly told" do + chef_run = ::ChefSpec::Runner.new ::REDHAT_OPTS + node = chef_run.node + node.set["openstack"]["db"]["volume"]["db_type"] = "db2" + chef_run.converge "openstack-block-storage::volume" + + ["db2-odbc", "python-ibm-db", "python-ibm-db-sa"].each do |pkg| + expect(chef_run).to upgrade_package pkg + end + end + it "installs postgresql python packages if explicitly told" do chef_run = ::ChefSpec::Runner.new ::REDHAT_OPTS node = chef_run.node