itamae 1.0.0.beta5 → 1.0.0.beta6

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: 16430941743e871422f34e8a84999bfdd676261c
4
- data.tar.gz: 8b937db3cfbd6baa310f0086576f46bffee03b6b
3
+ metadata.gz: 32cd433377eae0ebf109bcb64076577f38e72d7c
4
+ data.tar.gz: a83208334949e56c3597828e681d91a4050fb4ff
5
5
  SHA512:
6
- metadata.gz: e74644471245614750aff1fc8c11a9f7a5b8afff95bac06f053a2ddecbe269fb0b1b57c2d105956f62358df4530b5b0e6f0cc9a08db737ce4366b92572d3af80
7
- data.tar.gz: 821c7cbcad69cfbb44f1d0d9d8d0c17d8241cf2332fc79693f76e48beb66e9ef2f95c0514bf5e49c1e5ab9e1f84423280e0c08447015263af673b5d5c7bd8faa
6
+ metadata.gz: 6aaabb06cdcc15ac3fa157f9a3aa7196218fa689e481d8ffe1aa095e865cee4b96328e30024168db08adf1888f9562f69f8439ac4036433584e81b7442d5044d
7
+ data.tar.gz: 095bcc26d0f2dd25320241f4ff651980a2beb212e0e4188da3b91cfa2e32052fb3a66671d651b5d3fe2c240f30fadf7fe50ceb90431869bd43f3bf4c9bfff680
data/itamae.gemspec CHANGED
@@ -18,13 +18,10 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_runtime_dependency "thor"
21
- spec.add_runtime_dependency "specinfra", "2.0.0.beta35"
21
+ spec.add_runtime_dependency "specinfra", "2.0.0.beta36"
22
22
  spec.add_runtime_dependency "hashie"
23
23
  spec.add_runtime_dependency "ansi"
24
24
 
25
- # TODO: move to specinfra
26
- spec.add_runtime_dependency "net-scp"
27
-
28
25
  spec.add_development_dependency "bundler", "~> 1.3"
29
26
  spec.add_development_dependency "rake"
30
27
  spec.add_development_dependency "rspec", "~> 3.0"
@@ -23,7 +23,7 @@ module Itamae
23
23
  end
24
24
  end
25
25
 
26
- define_attribute :action, type: Symbol, required: true
26
+ define_attribute :action, type: [Symbol, Array], required: true
27
27
 
28
28
  attr_reader :resource_name
29
29
  attr_reader :attributes
@@ -60,7 +60,9 @@ module Itamae
60
60
  show_differences
61
61
 
62
62
  unless options[:dry_run]
63
- public_send("#{specific_action || action}_action".to_sym)
63
+ [action].flatten.each do |action|
64
+ public_send("#{specific_action || action}_action".to_sym)
65
+ end
64
66
  end
65
67
 
66
68
  updated! if different?
@@ -149,8 +151,13 @@ module Itamae
149
151
  raise Resource::AttributeMissingError, "'#{key}' attribute is required but it is not set."
150
152
  end
151
153
 
152
- if @attributes[key] && details[:type] && !@attributes[key].is_a?(details[:type])
153
- raise Resource::InvalidTypeError, "#{key} attribute should be #{details[:type]}."
154
+ if @attributes[key] && details[:type]
155
+ valid_type = [details[:type]].flatten.any? do |type|
156
+ @attributes[key].is_a?(type)
157
+ end
158
+ unless valid_type
159
+ raise Resource::InvalidTypeError, "#{key} attribute should be #{details[:type]}."
160
+ end
154
161
  end
155
162
  end
156
163
  end
@@ -7,29 +7,27 @@ module Itamae
7
7
  define_attribute :name, type: String, default_name: true
8
8
 
9
9
  def start_action
10
- run_init_script("start")
10
+ run_specinfra(:start_service, name)
11
11
  end
12
12
 
13
13
  def stop_action
14
- run_init_script("stop")
14
+ run_specinfra(:stop_service, name)
15
15
  end
16
16
 
17
17
  def restart_action
18
- run_init_script("restart")
18
+ run_specinfra(:restart_service, name)
19
19
  end
20
20
 
21
21
  def reload_action
22
- run_init_script("reload")
22
+ run_specinfra(:reload_service, name)
23
23
  end
24
24
 
25
- private
26
- def run_init_script(command)
27
- # TODO: Delegate to Specinfra
28
- run_command([init_script_path, command])
25
+ def enable_action
26
+ run_specinfra(:enable_service, name)
29
27
  end
30
28
 
31
- def init_script_path
32
- "/etc/init.d/#{name}"
29
+ def disable_action
30
+ run_specinfra(:disable_service, name)
33
31
  end
34
32
  end
35
33
  end
@@ -1,3 +1,3 @@
1
1
  module Itamae
2
- VERSION = "1.0.0.beta5"
2
+ VERSION = "1.0.0.beta6"
3
3
  end
@@ -89,6 +89,24 @@ execute "ps -C cron > /tmp/cron_running; true"
89
89
 
90
90
  ######
91
91
 
92
+ package "nginx"
93
+
94
+ service "nginx" do
95
+ action [:enable, :start]
96
+ end
97
+
98
+ execute "test -f /etc/rc3.d/S20nginx" # test
99
+ execute "test $(ps h -C nginx | wc -l) -gt 0" # test
100
+
101
+ service "nginx" do
102
+ action [:disable, :stop]
103
+ end
104
+
105
+ execute "test ! -f /etc/rc3.d/S20nginx" # test
106
+ execute "test $(ps h -C nginx | wc -l) -eq 0" # test
107
+
108
+ ######
109
+
92
110
  link "/tmp-link" do
93
111
  to "/tmp"
94
112
  end
@@ -27,6 +27,7 @@ module Itamae
27
27
  expect(subject).to receive(:run_specinfra).with(:check_file_is_file, "/path/to/dst").and_return(true)
28
28
  expect(subject).to receive(:run_command).with(["cp", "/path/to/dst", "/path/to/dst.bak"])
29
29
  expect(subject).to receive(:run_command).with(["mv", %r{/tmp/itamae/[\d\.]+}, "/path/to/dst"])
30
+ subject.pre_action
30
31
  subject.create_action
31
32
  end
32
33
  end
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.0.0.beta5
4
+ version: 1.0.0.beta6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryota Arai
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-19 00:00:00.000000000 Z
11
+ date: 2014-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.0.0.beta35
33
+ version: 2.0.0.beta36
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.0.0.beta35
40
+ version: 2.0.0.beta36
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: hashie
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,20 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: net-scp
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
69
  - !ruby/object:Gem::Dependency
84
70
  name: bundler
85
71
  requirement: !ruby/object:Gem::Requirement