move from bundler to chefdk

- deprecated Gemfile
- updated TESTING and README
- updated Rakefile to use chef exec instead of bundle exec
- replaced Runner by SoloRunner in specs

Change-Id: Ic99092a33eeaa57dc7083c892bca729735bebdf7
This commit is contained in:
Jan Klare 2015-04-29 10:21:23 +02:00
parent 2a1a38b542
commit ae7a80fcd4
31 changed files with 47 additions and 55 deletions

View File

@ -1,3 +1,7 @@
## THIS GEMFILE IS DEPRECATED AND WILL BE REMOVED AFTER THE NEXT RELEASE
## THERE WON'T BE ANY UPDATES TO THIS FILE DURING THIS RELEASE CYCLE
## WE SWITCHED TO CHEFDK AS THE BUNDLE FOR THE NEEDED GEMS
source 'https://rubygems.org'
gem 'chef', '~> 11.18.6'

View File

@ -199,6 +199,7 @@ License and Author
| | Chen Zhiwei (<zhiwchen@cn.ibm.com>) |
| | Mark Vanderwiel(<vanderwl@us.ibm.com>) |
| | Eric Zhou(<zyouzhou@cn.ibm.com>) |
| | Jan Klare (<j.klare@x-ion.de>) |
| | |
| **Copyright** | Copyright (c) 2013, AT&T Services, Inc. |
| | Copyright (c) 2013-2014, SUSE Linux GmbH |

View File

@ -2,38 +2,25 @@ task default: ["test"]
task :test => [:lint, :style, :unit]
desc "Bundler preparation"
task :bundler_prep do
mkdir_p '.bundle'
sh %{bundle install --path=.bundle --jobs 1 --retry 3 --verbose}
task :berks_prep do
sh %{chef exec berks vendor}
end
desc "Bershelf preparation"
task :berks_prep => :bundler_prep do
sh %{bundle exec berks vendor}
task :lint do
sh %{chef exec foodcritic --epic-fail any --tags ~FC003 --tags ~FC023 .}
end
desc "Foodcritic linting"
task :lint => :bundler_prep do
sh %{bundle exec foodcritic --epic-fail any --tags ~FC003 --tags ~FC023 .}
task :style do
sh %{chef exec rubocop}
end
desc "Rubocop style checking"
task :style => :bundler_prep do
sh %{bundle exec rubocop}
end
desc "Unit testing"
task :unit => :berks_prep do
sh %{bundle exec rspec --format documentation}
sh %{chef exec rspec --format documentation}
end
desc "Clean up working directory"
task :clean do
rm_rf [
'.bundle',
'berks-cookbooks',
'Gemfile.lock',
'Berksfile.lock'
]
end

View File

@ -1,18 +1,18 @@
# Testing the Cookbook #
This cookbook uses [bundler](http://gembundler.com/) and [berkshelf](http://berkshelf.com/) to isolate dependencies. Make sure you have `ruby 1.9.x`, `bundler`, `rake`, build essentials and the header files for `gecode` installed before continuing. Make sure that you're using gecode version 3. More info [here](https://github.com/opscode/dep-selector-libgecode/tree/0bad63fea305ede624c58506423ced697dd2545e#using-a-system-gecode-instead).
This cookbook uses [chefdk](https://downloads.chef.io/chef-dk/) and [berkshelf](http://berkshelf.com/) to isolate dependencies. Make sure you have chefdk and the header files for `gecode` installed before continuing. Make sure that you're using gecode version 3. More info [here](https://github.com/opscode/dep-selector-libgecode/tree/0bad63fea305ede624c58506423ced697dd2545e#using-a-system-gecode-instead). For more detailed information on what needs to be installed, you can have a quick look into the bootstrap.sh file in this repository, which does install all the needed things to get going on ubuntu trusty. The tests defined in the Rakefile include lint, style and unit. For integration testing please refere to the [openstack-chef-repo](https://github.com/stackforge/openstack-chef-repo).
We have three test suites which you can run individually (there are three rake tasks):
We have three test suites which you can run either, individually (there are three rake tasks):
$ rake lint
$ rake style
$ rake unit
$ chef exec rake lint
$ chef exec rake style
$ chef exec rake unit
or altogether:
$ rake test
$ chef exec rake
The `rake` tasks will take care of installing the needed gem dependencies and cookbooks with `berkshelf`.
The `rake` tasks will take care of installing the needed cookbooks with `berkshelf`.
## Rubocop ##
@ -27,4 +27,4 @@ The `rake` tasks will take care of installing the needed gem dependencies and co
## Chefspec
[ChefSpec](https://github.com/sethvargo/chefspec/) is a unit testing framework for testing Chef cookbooks. ChefSpec makes it easy to write examples and get fast feedback on cookbook changes without the need for virtual machines or cloud servers.
[ChefSpec](https://github.com/sethvargo/chefspec) is a unit testing framework for testing Chef cookbooks. ChefSpec makes it easy to write examples and get fast feedback on cookbook changes without the need for virtual machines or cloud servers.

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::balancer' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::balancer' do
describe 'suse' do
let(:runner) { ChefSpec::Runner.new(SUSE_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(SUSE_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::balancer' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::build_openvswitch_source' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::client' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
runner.converge(described_recipe)

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::client' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
runner.converge(described_recipe)

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::db_migration' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -38,7 +38,7 @@ end
describe 'openstack-network' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::dhcp_agent' do
describe 'centos' do
let(:runner) { ChefSpec::Runner.new(CENTOS_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(CENTOS_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::dhcp_agent' do
describe 'suse' do
let(:runner) { ChefSpec::Runner.new(SUSE_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(SUSE_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::dhcp_agent' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::identity_registration' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::l3_agent' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::l3_agent' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::linuxbridge' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::linuxbridge' do
describe 'suse' do
let(:runner) { ChefSpec::Runner.new(SUSE_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(SUSE_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::linuxbridge' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::metadata_agent' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::openvswitch' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::openvswitch' do
describe 'suse' do
let(:runner) { ChefSpec::Runner.new(SUSE_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(SUSE_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::openvswitch' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:kmod_command) { '/usr/share/openvswitch/scripts/ovs-ctl force-reload-kmod' }
let(:chef_run) do

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::server' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::server' do
describe 'suse' do
let(:runner) { ChefSpec::Runner.new(SUSE_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(SUSE_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -3,7 +3,7 @@ require_relative 'spec_helper'
describe 'openstack-network::server' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::vpn_agent' do
describe 'redhat' do
let(:runner) { ChefSpec::Runner.new(REDHAT_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'

View File

@ -4,7 +4,7 @@ require_relative 'spec_helper'
describe 'openstack-network::vpn_agent' do
describe 'ubuntu' do
let(:runner) { ChefSpec::Runner.new(UBUNTU_OPTS) }
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
let(:node) { runner.node }
let(:chef_run) do
node.set['openstack']['compute']['network']['service_type'] = 'neutron'