diff --git a/Berksfile.lock b/Berksfile.lock index e0df7bb..89f7478 100644 --- a/Berksfile.lock +++ b/Berksfile.lock @@ -60,6 +60,9 @@ }, "xfs": { "locked_version": "1.1.0" + }, + "python": { + "locked_version": "1.3.4" } } } diff --git a/Gemfile b/Gemfile index 04ef97e..8702618 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "chef", "~> 11.4.4" gem "json", "<= 1.7.7" # chef 11 dependency gem "berkshelf", "~> 2.0.3" -gem "chefspec", "~> 1.3.0" +gem "chefspec", "~> 2.0.0" gem "foodcritic" gem "strainer" gem "tailor" diff --git a/metadata.rb b/metadata.rb index c9c9766..b4ef529 100644 --- a/metadata.rb +++ b/metadata.rb @@ -21,3 +21,4 @@ depends "openstack-common", "~> 0.4.0" depends "openstack-identity", "~> 7.0.0" depends "openstack-image", "~> 7.0.0" depends "selinux" +depends "python" diff --git a/recipes/scheduler.rb b/recipes/scheduler.rb index 27292ad..e1f6419 100644 --- a/recipes/scheduler.rb +++ b/recipes/scheduler.rb @@ -32,6 +32,13 @@ platform_options["cinder_scheduler_packages"].each do |pkg| end end +# FIXME this can be removed if/when 1:2013.1-0ubuntu2 makes it into precise +if platform?("ubuntu") && (node["platform_version"].to_f == 12.04) + python_pip "stevedore" do + action :upgrade + end +end + db_type = node['openstack']['db']['volume']['db_type'] platform_options["#{db_type}_python_packages"].each do |pkg| package pkg do diff --git a/spec/scheduler-opensuse_spec.rb b/spec/scheduler-opensuse_spec.rb index ebe40ab..42de173 100644 --- a/spec/scheduler-opensuse_spec.rb +++ b/spec/scheduler-opensuse_spec.rb @@ -12,6 +12,13 @@ describe "openstack-block-storage::scheduler" do expect(@chef_run).to upgrade_package "openstack-cinder-scheduler" end + it "does not upgrade stevedore" do + chef_run = ::ChefSpec::ChefRunner.new ::OPENSUSE_OPTS + chef_run.converge "openstack-block-storage::scheduler" + + expect(chef_run).not_to upgrade_python_pip "stevedore" + end + it "installs mysql python packages by default" do expect(@chef_run).to upgrade_package "python-mysql" end diff --git a/spec/scheduler-redhat_spec.rb b/spec/scheduler-redhat_spec.rb index ab104ec..e72d9f7 100644 --- a/spec/scheduler-redhat_spec.rb +++ b/spec/scheduler-redhat_spec.rb @@ -8,6 +8,17 @@ describe "openstack-block-storage::scheduler" do @chef_run.converge "openstack-block-storage::scheduler" end + it "installs cinder api packages" do + expect(@chef_run).to upgrade_package "openstack-cinder" + end + + it "does not upgrade stevedore" do + chef_run = ::ChefSpec::ChefRunner.new ::REDHAT_OPTS + chef_run.converge "openstack-block-storage::scheduler" + + expect(chef_run).not_to upgrade_python_pip "stevedore" + end + it "installs mysql python packages by default" do expect(@chef_run).to upgrade_package "MySQL-python" end diff --git a/spec/scheduler_spec.rb b/spec/scheduler_spec.rb index 3192193..bb4ceea 100644 --- a/spec/scheduler_spec.rb +++ b/spec/scheduler_spec.rb @@ -23,6 +23,18 @@ describe "openstack-block-storage::scheduler" do expect(@chef_run).to upgrade_package "cinder-scheduler" end + it "upgrades stevedore" do + expect(@chef_run).to upgrade_python_pip "stevedore" + end + + it "does not upgrade stevedore" do + opts = ::UBUNTU_OPTS.merge(:version => "10.04") + chef_run = ::ChefSpec::ChefRunner.new opts + chef_run.converge "openstack-block-storage::scheduler" + + expect(chef_run).not_to upgrade_python_pip "stevedore" + end + it "installs mysql python packages by default" do expect(@chef_run).to upgrade_package "python-mysqldb" end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 75275e0..f24c71b 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,8 +2,8 @@ require "chefspec" ::LOG_LEVEL = :fatal ::OPENSUSE_OPTS = { - :platform => "opensuse", - :version => "12.3", + :platform => "opensuse", + :version => "12.3", :log_level => ::LOG_LEVEL } ::REDHAT_OPTS = {