knife-essentials 1.0.0.beta1 → 1.0.0.beta2
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.
@@ -35,6 +35,12 @@ class Chef
|
|
35
35
|
:default => false,
|
36
36
|
:description => "Don't take action, only print what would happen"
|
37
37
|
|
38
|
+
option :diff,
|
39
|
+
:long => '--[no-]diff',
|
40
|
+
:boolean => true,
|
41
|
+
:default => true,
|
42
|
+
:description => 'Turn off to avoid uploading existing files; only new (and possibly deleted) files with --no-diff'
|
43
|
+
|
38
44
|
def run
|
39
45
|
if name_args.length == 0
|
40
46
|
show_usage
|
@@ -35,6 +35,12 @@ class Chef
|
|
35
35
|
:default => false,
|
36
36
|
:description => "Don't take action, only print what would happen"
|
37
37
|
|
38
|
+
option :diff,
|
39
|
+
:long => '--[no-]diff',
|
40
|
+
:boolean => true,
|
41
|
+
:default => true,
|
42
|
+
:description => 'Turn off to avoid uploading existing files; only new (and possibly deleted) files with --no-diff'
|
43
|
+
|
38
44
|
def run
|
39
45
|
if name_args.length == 0
|
40
46
|
show_usage
|
data/lib/chef_fs/file_system.rb
CHANGED
@@ -368,8 +368,10 @@ module ChefFS
|
|
368
368
|
return
|
369
369
|
else
|
370
370
|
|
371
|
-
# Both are files! Copy them unless we're sure they are the same.
|
372
|
-
if options[:
|
371
|
+
# Both are files! Copy them unless we're sure they are the same.'
|
372
|
+
if options[:diff] == false
|
373
|
+
should_copy = false
|
374
|
+
elsif options[:force]
|
373
375
|
should_copy = true
|
374
376
|
src_value = nil
|
375
377
|
else
|
data/lib/chef_fs/version.rb
CHANGED
@@ -90,6 +90,11 @@ EOM
|
|
90
90
|
knife('download /').should_succeed "Updated /roles/x.json\n"
|
91
91
|
knife('diff --name-status /').should_succeed ''
|
92
92
|
end
|
93
|
+
|
94
|
+
it 'knife download --no-diff does not change the role' do
|
95
|
+
knife('download --no-diff /').should_succeed ''
|
96
|
+
knife('diff --name-status /').should_succeed "M\t/roles/x.json\n"
|
97
|
+
end
|
93
98
|
end
|
94
99
|
|
95
100
|
context 'except the role file is textually different, but not ACTUALLY different' do
|
@@ -186,6 +191,32 @@ EOM
|
|
186
191
|
knife('diff --name-status /').should_succeed ''
|
187
192
|
end
|
188
193
|
|
194
|
+
it 'knife download --no-diff creates the extra files' do
|
195
|
+
knife('download /').should_succeed <<EOM
|
196
|
+
Created /clients
|
197
|
+
Created /clients/chef-validator.json
|
198
|
+
Created /clients/chef-webui.json
|
199
|
+
Created /clients/x.json
|
200
|
+
Created /cookbooks
|
201
|
+
Created /cookbooks/x
|
202
|
+
Created /cookbooks/x/metadata.rb
|
203
|
+
Created /data_bags
|
204
|
+
Created /data_bags/x
|
205
|
+
Created /data_bags/x/y.json
|
206
|
+
Created /environments
|
207
|
+
Created /environments/_default.json
|
208
|
+
Created /environments/x.json
|
209
|
+
Created /nodes
|
210
|
+
Created /nodes/x.json
|
211
|
+
Created /roles
|
212
|
+
Created /roles/x.json
|
213
|
+
Created /users
|
214
|
+
Created /users/admin.json
|
215
|
+
Created /users/x.json
|
216
|
+
EOM
|
217
|
+
knife('diff --name-status /').should_succeed ''
|
218
|
+
end
|
219
|
+
|
189
220
|
context 'when current directory is top level' do
|
190
221
|
cwd '.'
|
191
222
|
it 'knife download with no parameters reports an error' do
|
@@ -90,6 +90,10 @@ EOM
|
|
90
90
|
knife('upload /').should_succeed "Updated /roles/x.json\n"
|
91
91
|
knife('diff --name-status /').should_succeed ''
|
92
92
|
end
|
93
|
+
it 'knife upload --no-diff does not change the role' do
|
94
|
+
knife('upload /').should_succeed ''
|
95
|
+
knife('diff --name-status /').should_succeed "M\t/roles/x.json\n"
|
96
|
+
end
|
93
97
|
end
|
94
98
|
|
95
99
|
context 'except the role file is textually different, but not ACTUALLY different' do
|
@@ -139,6 +143,22 @@ Created /environments/y.json
|
|
139
143
|
Created /nodes/y.json
|
140
144
|
Created /roles/y.json
|
141
145
|
Created /users/y.json
|
146
|
+
EOM
|
147
|
+
knife('diff --name-status /').should_succeed ''
|
148
|
+
end
|
149
|
+
|
150
|
+
it 'knife upload --no-diff adds the new files' do
|
151
|
+
knife('upload /').should_succeed <<EOM
|
152
|
+
Created /clients/y.json
|
153
|
+
Updated /cookbooks/x
|
154
|
+
Created /cookbooks/y
|
155
|
+
Created /data_bags/x/z.json
|
156
|
+
Created /data_bags/y
|
157
|
+
Created /data_bags/y/zz.json
|
158
|
+
Created /environments/y.json
|
159
|
+
Created /nodes/y.json
|
160
|
+
Created /roles/y.json
|
161
|
+
Created /users/y.json
|
142
162
|
EOM
|
143
163
|
knife('diff --name-status /').should_succeed ''
|
144
164
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-essentials
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.beta2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef-zero
|