diff --git a/Strainerfile b/Strainerfile index 6c4f15e..bc1e0bb 100644 --- a/Strainerfile +++ b/Strainerfile @@ -1,8 +1,9 @@ # Strainerfile -rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/Gemfile -rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/attributes/ -rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/metadata.rb -rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/recipes/ +rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/Gemfile --config $SANDBOX/$COOKBOOK/.rubocop.yml +rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/metadata.rb --config $SANDBOX/$COOKBOOK/.rubocop.yml +rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/attributes/ --config $SANDBOX/$COOKBOOK/attributes/.rubocop.yml +rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/recipes/ --config $SANDBOX/$COOKBOOK/recipes/.rubocop.yml +rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK/spec/ --config $SANDBOX/$COOKBOOK/spec/.rubocop.yml # rubocop: bundle exec rubocop $SANDBOX/$COOKBOOK # may want to add rubocop check for Berksfile and Gemfile knife test: bundle exec knife cookbook test $COOKBOOK diff --git a/TESTING.md b/TESTING.md index 03f1744..f4d5119 100644 --- a/TESTING.md +++ b/TESTING.md @@ -21,6 +21,7 @@ Since there are slight style differences between the coding of attributes, recip [Gemfile and metadata.rb](.rubocop.yml) [attributes/*.rb](attributes/.rubocop.yml) [recipes/.rubocop.yml](recipes/.rubocop.yml) + [spec/.rubocop.yml](spec/.rubocop.yml) ## Knife ## diff --git a/spec/.rubocop-todo.yml b/spec/.rubocop-todo.yml new file mode 100644 index 0000000..f6ad301 --- /dev/null +++ b/spec/.rubocop-todo.yml @@ -0,0 +1,17 @@ +# This configuration was generated by `rubocop --auto-gen-config`. +# The point is for the user to remove these configuration records +# one by one as the offences are removed from the code base. + +HashSyntax: + Enabled: false + +MethodLength: + Enabled: false + +StringLiterals: + Enabled: false + +### in the .rubocop.yml +# embedded attributes make for long lines +LineLength: + Enabled: false diff --git a/spec/.rubocop.yml b/spec/.rubocop.yml new file mode 100644 index 0000000..446ebc4 --- /dev/null +++ b/spec/.rubocop.yml @@ -0,0 +1,3 @@ +# embedded attributes make for long lines +LineLength: + Enabled: false diff --git a/spec/api-opensuse_spec.rb b/spec/api-opensuse_spec.rb index ac3f8cd..daa81c3 100644 --- a/spec/api-opensuse_spec.rb +++ b/spec/api-opensuse_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::api" do diff --git a/spec/api-redhat_spec.rb b/spec/api-redhat_spec.rb index 1b7bbcc..cfc0a5a 100644 --- a/spec/api-redhat_spec.rb +++ b/spec/api-redhat_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::api" do diff --git a/spec/api_spec.rb b/spec/api_spec.rb index c8f6d1b..73b7ac2 100644 --- a/spec/api_spec.rb +++ b/spec/api_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::api" do diff --git a/spec/cinder_common-opensuse_spec.rb b/spec/cinder_common-opensuse_spec.rb index f3d2062..9bf16c2 100644 --- a/spec/cinder_common-opensuse_spec.rb +++ b/spec/cinder_common-opensuse_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::cinder-common" do diff --git a/spec/cinder_common-redhat_spec.rb b/spec/cinder_common-redhat_spec.rb index 587c201..313945a 100644 --- a/spec/cinder_common-redhat_spec.rb +++ b/spec/cinder_common-redhat_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::cinder-common" do diff --git a/spec/cinder_common_spec.rb b/spec/cinder_common_spec.rb index 8ab0b71..29fba99 100644 --- a/spec/cinder_common_spec.rb +++ b/spec/cinder_common_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::cinder-common" do @@ -18,7 +22,7 @@ describe "openstack-block-storage::cinder-common" do describe "/etc/cinder" do before do - @dir = @chef_run.directory "/etc/cinder" + @dir = @chef_run.directory "/etc/cinder" end it "has proper owner" do @@ -27,13 +31,13 @@ describe "openstack-block-storage::cinder-common" do end it "has proper modes" do - expect(sprintf("%o", @dir.mode)).to eq "750" + expect(sprintf("%o", @dir.mode)).to eq "750" end end describe "cinder.conf" do before do - @file = @chef_run.template "/etc/cinder/cinder.conf" + @file = @chef_run.template "/etc/cinder/cinder.conf" end it "has proper owner" do @@ -42,7 +46,7 @@ describe "openstack-block-storage::cinder-common" do end it "has proper modes" do - expect(sprintf("%o", @file.mode)).to eq "644" + expect(sprintf("%o", @file.mode)).to eq "644" end it "has rpc_thread_pool_size" do @@ -189,7 +193,7 @@ describe "openstack-block-storage::cinder-common" do describe "/var/lock/cinder" do before do - @dir = @chef_run.directory "/var/lock/cinder" + @dir = @chef_run.directory "/var/lock/cinder" end it "has proper owner" do @@ -198,7 +202,7 @@ describe "openstack-block-storage::cinder-common" do end it "has proper modes" do - expect(sprintf("%o", @dir.mode)).to eq "700" + expect(sprintf("%o", @dir.mode)).to eq "700" end end diff --git a/spec/default_spec.rb b/spec/default_spec.rb index 3a77cb4..85d361f 100644 --- a/spec/default_spec.rb +++ b/spec/default_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::default" do diff --git a/spec/identity_registration_spec.rb b/spec/identity_registration_spec.rb index 00523f9..979dacc 100644 --- a/spec/identity_registration_spec.rb +++ b/spec/identity_registration_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::identity_registration" do diff --git a/spec/scheduler-opensuse_spec.rb b/spec/scheduler-opensuse_spec.rb index 7025f4d..241002d 100644 --- a/spec/scheduler-opensuse_spec.rb +++ b/spec/scheduler-opensuse_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::scheduler" do diff --git a/spec/scheduler-redhat_spec.rb b/spec/scheduler-redhat_spec.rb index d2bde3a..de8889c 100644 --- a/spec/scheduler-redhat_spec.rb +++ b/spec/scheduler-redhat_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::scheduler" do diff --git a/spec/scheduler_spec.rb b/spec/scheduler_spec.rb index 9cad23b..93fdba0 100644 --- a/spec/scheduler_spec.rb +++ b/spec/scheduler_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::scheduler" do @@ -54,40 +58,40 @@ describe "openstack-block-storage::scheduler" do end it "creates cron metering default" do - ::Chef::Recipe.any_instance.stub(:search). - with(:node, "roles:os-block-storage-scheduler"). - and_return([OpenStruct.new(:name => "fauxhai.local")]) + ::Chef::Recipe.any_instance.stub(:search) + .with(:node, "roles:os-block-storage-scheduler") + .and_return([OpenStruct.new(:name => "fauxhai.local")]) chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n| n.set["openstack"]["metering"] = true end chef_run.converge "openstack-block-storage::scheduler" cron = chef_run.cron "cinder-volume-usage-audit" - bin_str="/usr/bin/cinder-volume-usage-audit > /var/log/cinder/audit.log" + bin_str = "/usr/bin/cinder-volume-usage-audit > /var/log/cinder/audit.log" expect(cron.command).to match(/#{bin_str}/) - crontests = [ [:minute, '00'], [:hour, '*'], [:day, '*'], - [:weekday, '*'], [:month, '*'], [:user, 'cinder'] ] - crontests.each do |k,v| + crontests = [[:minute, '00'], [:hour, '*'], [:day, '*'], + [:weekday, '*'], [:month, '*'], [:user, 'cinder']] + crontests.each do |k, v| expect(cron.send(k)).to eq v end expect(cron.action).to include :create end it "creates cron metering custom" do - crontests = [ [:minute, '50'], [:hour, '23'], [:day, '6'], - [:weekday, '5'], [:month, '11'], [:user, 'foobar'] ] - ::Chef::Recipe.any_instance.stub(:search). - with(:node, "roles:os-block-storage-scheduler"). - and_return([OpenStruct.new(:name => "foobar")]) + crontests = [[:minute, '50'], [:hour, '23'], [:day, '6'], + [:weekday, '5'], [:month, '11'], [:user, 'foobar']] + ::Chef::Recipe.any_instance.stub(:search) + .with(:node, "roles:os-block-storage-scheduler") + .and_return([OpenStruct.new(:name => "foobar")]) chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n| n.set["openstack"]["metering"] = true - crontests.each do |k,v| + crontests.each do |k, v| n.set["openstack"]["block-storage"]["cron"][k.to_s] = v end n.set["openstack"]["block-storage"]["user"] = "foobar" end chef_run.converge "openstack-block-storage::scheduler" cron = chef_run.cron "cinder-volume-usage-audit" - crontests.each do |k,v| + crontests.each do |k, v| expect(cron.send(k)).to eq v end expect(cron.action).to include :delete diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index f60d171..09c7938 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require "chefspec" require "chef/application" require_relative "support/matcher" @@ -20,20 +24,20 @@ require_relative "support/matcher" } def block_storage_stubs - ::Chef::Recipe.any_instance.stub(:rabbit_servers). - and_return "1.1.1.1:5672,2.2.2.2:5672" - ::Chef::Recipe.any_instance.stub(:secret). - with("secrets", "openstack_identity_bootstrap_token"). - and_return "bootstrap-token" - ::Chef::Recipe.any_instance.stub(:db_password).and_return String.new - ::Chef::Recipe.any_instance.stub(:user_password).and_return String.new - ::Chef::Recipe.any_instance.stub(:user_password). - with("guest"). - and_return "rabbit-pass" - ::Chef::Recipe.any_instance.stub(:service_password).and_return String.new - ::Chef::Recipe.any_instance.stub(:service_password). - with("openstack-block-storage"). - and_return "cinder-pass" + ::Chef::Recipe.any_instance.stub(:rabbit_servers) + .and_return "1.1.1.1:5672,2.2.2.2:5672" + ::Chef::Recipe.any_instance.stub(:secret) + .with("secrets", "openstack_identity_bootstrap_token") + .and_return "bootstrap-token" + ::Chef::Recipe.any_instance.stub(:db_password).and_return '' + ::Chef::Recipe.any_instance.stub(:user_password).and_return '' + ::Chef::Recipe.any_instance.stub(:user_password) + .with("guest") + .and_return "rabbit-pass" + ::Chef::Recipe.any_instance.stub(:service_password).and_return '' + ::Chef::Recipe.any_instance.stub(:service_password) + .with("openstack-block-storage") + .and_return "cinder-pass" ::Chef::Application.stub(:fatal!) end @@ -43,7 +47,7 @@ def expect_runs_openstack_common_logging_recipe end end -def expect_creates_cinder_conf service, user, group, action=:restart +def expect_creates_cinder_conf(service, user, group, action = :restart) describe "cinder.conf" do before do @file = @chef_run.template "/etc/cinder/cinder.conf" @@ -64,7 +68,7 @@ def expect_creates_cinder_conf service, user, group, action=:restart end end -def expect_creates_policy_json service, user, group, action=:restart +def expect_creates_policy_json(service, user, group, action = :restart) describe "policy.json" do before do @file = @chef_run.template "/etc/cinder/policy.json" diff --git a/spec/support/matcher.rb b/spec/support/matcher.rb index 91025da..4ed781a 100644 --- a/spec/support/matcher.rb +++ b/spec/support/matcher.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + def upgrade_python_pip(pkgname) ChefSpec::Matchers::ResourceMatcher.new(:python_pip, :upgrade, pkgname) end diff --git a/spec/volume-opensuse_spec.rb b/spec/volume-opensuse_spec.rb index e971866..a08c9cc 100644 --- a/spec/volume-opensuse_spec.rb +++ b/spec/volume-opensuse_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::volume" do diff --git a/spec/volume-redhat_spec.rb b/spec/volume-redhat_spec.rb index 2aea295..1187432 100644 --- a/spec/volume-redhat_spec.rb +++ b/spec/volume-redhat_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::volume" do diff --git a/spec/volume_spec.rb b/spec/volume_spec.rb index 48a6d6b..e95d46e 100644 --- a/spec/volume_spec.rb +++ b/spec/volume_spec.rb @@ -1,3 +1,7 @@ +# encoding: UTF-8 +# +# Cookbook Name:: openstack-block-storage + require_relative "spec_helper" describe "openstack-block-storage::volume" do @@ -60,8 +64,8 @@ describe "openstack-block-storage::volume" do end it "configures netapp dfm password" do - ::Chef::Recipe.any_instance.stub(:service_password).with("netapp"). - and_return "netapp-pass" + ::Chef::Recipe.any_instance.stub(:service_password).with("netapp") + .and_return "netapp-pass" chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n| n.set["openstack"]["block-storage"]["volume"]["driver"] = "cinder.volume.drivers.netapp.iscsi.NetAppISCSIDriver" end @@ -72,8 +76,8 @@ describe "openstack-block-storage::volume" do end it "configures rbd password" do - ::Chef::Recipe.any_instance.stub(:service_password).with("rbd"). - and_return "rbd-pass" + ::Chef::Recipe.any_instance.stub(:service_password).with("rbd") + .and_return "rbd-pass" chef_run = ::ChefSpec::Runner.new ::UBUNTU_OPTS do |n| n.set["openstack"]["block-storage"]["volume"]["driver"] = "cinder.volume.drivers.RBDDriver" end