itamae 1.2.19 → 1.2.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5a63438ba5d5a7df745b43c27d982046e5a00f12
4
- data.tar.gz: 5cf2cd03190449e6dd7a9b8b2bd8dbd9d664fe6e
3
+ metadata.gz: ebe55a32ee69f26e86a9b90f98d09c2962eaae96
4
+ data.tar.gz: 12681aa3d8e0883562ef20f025f745bc1a00df71
5
5
  SHA512:
6
- metadata.gz: c5a195641261be7d1f1c6626c7b36f4aaa457034ae856d894ad0a7df4dc9ad6a5445e0aadd2f98da8dcfeca18c4aba67127124617b50d1fcace00412274d17fb
7
- data.tar.gz: 8ae0da5d2367aa6ea25e54cc497a52c4da35c42a64421f8889c12773f85b45b48447c82a50b8f25a6bd9928d17f99d5dddd899db235de17caa5fcac51fe900df
6
+ metadata.gz: a825854a1ab504152f6052ddafa9774bdb3a465924202d4025116757723e929b5c9cdde536c8eee3e3241da302905d71ba135d4f0c4ce000c5baec04fdcc8041
7
+ data.tar.gz: f6afc1d44a0606695bd373d586194d7e9fe64bba44a7cc8f8a594ad27cf7ff8c7e5117d6bc62853a9ead300c1888e8829a83000fb210439768e43ce7a1768006
@@ -1,3 +1,16 @@
1
+ ## v1.2.21
2
+
3
+ Improvements
4
+
5
+ - [Show error message when specified action is unavailable in dry_run mode (by @eagletmt)](https://github.com/itamae-kitchen/itamae/pull/137)
6
+ - [Fix deprecation warnings in unit tests (by @eagletmt)](https://github.com/itamae-kitchen/itamae/pull/138)
7
+
8
+ ## v1.2.20
9
+
10
+ Improvements
11
+
12
+ - [Wrap host inventory value with Hashie::Mash to access it by a method call](https://github.com/itamae-kitchen/itamae/pull/135)
13
+
1
14
  ## v1.2.19
2
15
 
3
16
  Features
@@ -61,7 +61,12 @@ module Itamae
61
61
  end
62
62
 
63
63
  def fetch_inventory_value(key)
64
- @backend.host_inventory[key]
64
+ value = @backend.host_inventory[key]
65
+ if value.is_a?(Hash)
66
+ value = Hashie::Mash.new(value)
67
+ end
68
+
69
+ value
65
70
  rescue NotImplementedError, NameError
66
71
  nil
67
72
  end
@@ -184,8 +184,13 @@ module Itamae
184
184
  Logger.debug "(in show_differences)"
185
185
  show_differences
186
186
 
187
- unless options[:dry_run]
188
- public_send("action_#{action}".to_sym, options)
187
+ method_name = "action_#{action}"
188
+ if options[:dry_run]
189
+ unless respond_to?(method_name)
190
+ Logger.error "action #{action.inspect} is unavailable"
191
+ end
192
+ else
193
+ public_send(method_name, options)
189
194
  end
190
195
 
191
196
  updated! if different?
@@ -1 +1 @@
1
- 1.2.19
1
+ 1.2.21
@@ -335,3 +335,13 @@ local_ruby_block 'execute run_command' do
335
335
  end
336
336
  end
337
337
  end
338
+
339
+ ###
340
+
341
+ v1 = node.memory.total
342
+ v2 = node[:memory][:total]
343
+ v3 = node['memory']['total']
344
+
345
+ unless v1 == v2 && v2 == v3 && v1 =~ /\A\d+kB\z/
346
+ raise "failed to fetch host inventory value (#{v1}, #{v2}, #{v3})"
347
+ end
@@ -7,47 +7,48 @@ module Itamae
7
7
  include FakeFS::SpecHelpers
8
8
 
9
9
  class Klass < Itamae::Backend::Base
10
- def initialize(_)
11
- @backend = Object.new
12
- @backend.stub(:send_file)
13
- @backend.stub(:send_directory)
10
+ def initialize(_, backend)
11
+ @backend = backend
14
12
  end
15
13
  end
16
14
 
15
+ let(:backend) { double('backend', send_file: nil, send_directory: nil) }
16
+ let(:itamae_backend) { Klass.new('dummy', backend) }
17
+
17
18
  describe ".send_file" do
18
19
  context "the source file doesn't exist" do
19
- subject { -> { Klass.new("dummy").send_file("src", "dst") } }
20
+ subject { -> { itamae_backend.send_file("src", "dst") } }
20
21
  it { expect(subject).to raise_error(Itamae::Backend::SourceNotExistError, "The file 'src' doesn't exist.") }
21
22
  end
22
23
 
23
24
  context "the source file exist, but it is not a regular file" do
24
25
  before { Dir.mkdir("src") }
25
- subject { -> { Klass.new("dummy").send_file("src", "dst") } }
26
+ subject { -> { itamae_backend.send_file("src", "dst") } }
26
27
  it { expect(subject).to raise_error(Itamae::Backend::SourceNotExistError, "'src' is not a file.") }
27
28
  end
28
29
 
29
30
  context "the source file is a regular file" do
30
31
  before { FileUtils.touch("src") }
31
- subject { -> { Klass.new("dummy").send_file("src", "dst") } }
32
+ subject { -> { itamae_backend.send_file("src", "dst") } }
32
33
  it { expect { subject }.not_to raise_error }
33
34
  end
34
35
  end
35
36
 
36
37
  describe ".send_directory" do
37
38
  context "the source directory doesn't exist" do
38
- subject { -> { Klass.new("dummy").send_directory("src", "dst") } }
39
+ subject { -> { itamae_backend.send_directory("src", "dst") } }
39
40
  it { expect(subject).to raise_error(Itamae::Backend::SourceNotExistError, "The directory 'src' doesn't exist.") }
40
41
  end
41
42
 
42
43
  context "the source directory exist, but it is not a directory" do
43
44
  before { FileUtils.touch("src") }
44
- subject { -> { Klass.new("dummy").send_directory("src", "dst") } }
45
+ subject { -> { itamae_backend.send_directory("src", "dst") } }
45
46
  it { expect(subject).to raise_error(Itamae::Backend::SourceNotExistError, "'src' is not a directory.") }
46
47
  end
47
48
 
48
49
  context "the source directory is a directory" do
49
50
  before { Dir.mkdir("src") }
50
- subject { -> { Klass.new("dummy").send_directory("src", "dst") } }
51
+ subject { -> { itamae_backend.send_directory("src", "dst") } }
51
52
  it { expect { subject }.not_to raise_error }
52
53
  end
53
54
  end
@@ -106,17 +106,28 @@ describe TestResource do
106
106
  end
107
107
  let(:recipe) do
108
108
  double(:recipe).tap do |r|
109
- r.stub(:runner).and_return(runner)
109
+ allow(r).to receive(:runner).and_return(runner)
110
110
  end
111
111
  end
112
112
 
113
113
  describe "#run" do
114
114
  before do
115
115
  subject.attributes.action = :name
116
+ allow(Itamae::Logger).to receive(:debug) # suppress logger output
116
117
  end
118
+
117
119
  it "executes <ACTION_NAME>_action method" do
118
120
  expect(subject).to receive(:action_name)
119
121
  subject.run
120
122
  end
123
+
124
+ context 'with dry_run' do
125
+ context 'when specified action is unavailable' do
126
+ it 'logs error' do
127
+ expect(Itamae::Logger).to receive(:error).with(/action :name is unavailable/)
128
+ subject.run(nil, dry_run: true)
129
+ end
130
+ end
131
+ end
121
132
  end
122
133
  end
@@ -19,7 +19,7 @@ module Itamae
19
19
  pending "Rewrite later"
20
20
  recipes.each do |r|
21
21
  recipe = double(:recipe)
22
- Recipe.stub(:new).with(
22
+ allow(Recipe).to receive(:new).with(
23
23
  an_instance_of(Itamae::Runner),
24
24
  File.expand_path(r)
25
25
  ).and_return(recipe)
@@ -7,7 +7,6 @@ require 'itamae'
7
7
  #
8
8
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
9
9
  RSpec.configure do |config|
10
- config.treat_symbols_as_metadata_keys_with_true_values = true
11
10
  config.run_all_when_everything_filtered = true
12
11
  config.filter_run :focus
13
12
 
@@ -16,6 +15,8 @@ RSpec.configure do |config|
16
15
  # the seed, which is printed after each run.
17
16
  # --seed 1234
18
17
  config.order = 'random'
18
+
19
+ config.raise_errors_for_deprecations!
19
20
  end
20
21
 
21
22
  Itamae::Logger.log_device = StringIO.new
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: itamae
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.19
4
+ version: 1.2.21
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-25 00:00:00.000000000 Z
11
+ date: 2015-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor