poise-service 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e78d99c983b8bbd140f02e127362f21d5016354b
4
- data.tar.gz: 35322dfdbc04cbeac6b81f3e8c7b2a73c23cf045
3
+ metadata.gz: 620447ed47a3030f8b4450f2c0ff5fec761a2188
4
+ data.tar.gz: 675005000178c19f5b7d4422857d67372fe3d50a
5
5
  SHA512:
6
- metadata.gz: 5e97a66effe71fc090420174f0bb3224866fc83ff6e42b49019db07bd7b82bcafd7605f592b1b023e7c2fbe9ad90232ad68a50ae73d743b70f5d2efe1a2a4774
7
- data.tar.gz: 84331025327a5ecfe30874991f13e918c93a05af914637d4c3214c6583123b1b943d43561eb5aed868debbc394ead51e31789099506df61cb5a327738329216f
6
+ metadata.gz: 61d7319f04b307c041e763ff157993957a627703bb22b32845f5cf8aae3e8f34acfc10dc955239d5258a1775a49c7a79d41b1c590e242601d1cbafa388166553
7
+ data.tar.gz: b908f0d756102441e6921f57ec639282b65f0d4f76546824d2e22f4e0d069bd72a062572ac89c54a43bf5661529b41a5fd2e76c8591d8cb430fa6caa8fd6feb1
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Poise-Service Changelog
2
2
 
3
+ ## v1.3.1
4
+
5
+ * [#25](https://github.com/poise/poise-service/pull/25) Cope with a service user
6
+ with an invalid home directory.
7
+ * Use the correct default cookbook for `service_template` when used with additional plugins.
8
+
3
9
  ## v1.3.0
4
10
 
5
11
  * Allow setting `pid_file_external false` as a provider option for the `sysvinit`
@@ -118,23 +118,26 @@ module PoiseService
118
118
  # @see #directory
119
119
  # @return [String]
120
120
  def default_directory
121
- # For root we always want the system root path.
122
- unless user == 'root'
123
- # Force a reload in case any users were created earlier in the run.
124
- Etc.endpwent
125
- home = begin
126
- Dir.home(user)
127
- rescue ArgumentError
128
- nil
129
- end
130
- end
131
- # Better than nothing
132
- home || case node['platform_family']
121
+ # Default fallback.
122
+ sysroot = case node['platform_family']
133
123
  when 'windows'
134
124
  ENV.fetch('SystemRoot', 'C:\\')
135
125
  else
136
126
  '/'
137
127
  end
128
+ # For root we always want the system root path.
129
+ return sysroot if user == 'root'
130
+ # Force a reload in case any users were created earlier in the run.
131
+ Etc.endpwent
132
+ # ArgumentError means we can't find the user, possibly nsswitch caching?
133
+ home = begin
134
+ Dir.home(user)
135
+ rescue ArgumentError
136
+ sysroot
137
+ end
138
+ # If the home doesn't exist or is empty, use sysroot.
139
+ home = sysroot if home.empty? || !::File.directory?(home)
140
+ home
138
141
  end
139
142
 
140
143
  # Clean up a signal string/integer. Ints are mapped to the signal name,
@@ -164,7 +164,7 @@ module PoiseService
164
164
  end
165
165
  else
166
166
  source default_source
167
- cookbook 'poise-service'
167
+ cookbook self.poise_defined_in_cookbook
168
168
  end
169
169
  variables(
170
170
  command: options['command'] || new_resource.command,
@@ -16,5 +16,5 @@
16
16
 
17
17
 
18
18
  module PoiseService
19
- VERSION = '1.3.0'
19
+ VERSION = '1.3.1'
20
20
  end
@@ -161,6 +161,8 @@ describe PoiseService::Resources::PoiseService::Resource do
161
161
  let(:user) { 'poise' }
162
162
  before do
163
163
  expect(Dir).to receive(:home).with('poise').and_return('/home/poise')
164
+ allow(File).to receive(:directory?).and_call_original
165
+ allow(File).to receive(:directory?).with('/home/poise').and_return(true)
164
166
  end
165
167
 
166
168
  it { is_expected.to eq '/home/poise' }
@@ -174,6 +176,26 @@ describe PoiseService::Resources::PoiseService::Resource do
174
176
 
175
177
  it { is_expected.to eq '/' }
176
178
  end # /context with an invalid user
179
+
180
+ context 'with a non-existent directory' do
181
+ let(:user) { 'poise' }
182
+ before do
183
+ expect(Dir).to receive(:home).with('poise').and_return('/home/poise')
184
+ allow(File).to receive(:directory?).and_call_original
185
+ allow(File).to receive(:directory?).with('/home/poise').and_return(false)
186
+ end
187
+
188
+ it { is_expected.to eq '/' }
189
+ end # /context with a non-existent directory
190
+
191
+ context 'with a blank directory' do
192
+ let(:user) { 'poise' }
193
+ before do
194
+ expect(Dir).to receive(:home).with('poise').and_return('')
195
+ end
196
+
197
+ it { is_expected.to eq '/' }
198
+ end # /context with a blank directory
177
199
  end # /describe #default_directory
178
200
 
179
201
  describe '#restart_on_update' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: poise-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Noah Kantrowitz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-03 00:00:00.000000000 Z
11
+ date: 2016-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: halite