knife-spork 0.1.7 → 0.1.8

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.
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'knife-spork'
16
- s.version = '0.1.7'
16
+ s.version = '0.1.8'
17
17
  s.date = '2012-02-21'
18
18
  s.rubyforge_project = 'knife-spork'
19
19
 
@@ -117,11 +117,12 @@ module KnifeSpork
117
117
  @cookbook = @name_args[0]
118
118
  end
119
119
 
120
+ check_cookbook_uploaded(@cookbook)
121
+
120
122
  environments.each do |e|
121
123
  ui.msg ""
122
124
  ui.msg "Environment: #{e}"
123
125
 
124
-
125
126
  cookbook_path = config[:cookbook_path]
126
127
  if cookbook_path.size > 1
127
128
  @environment = loader.load_from("environments", "#{e}.json")
@@ -129,7 +130,7 @@ module KnifeSpork
129
130
  path = cookbook_path[0].gsub("cookbooks","environments") + "/#{e}.json"
130
131
  @environment = loader.object_from_file("#{path}")
131
132
  end
132
-
133
+
133
134
  if @cookbook == "all"
134
135
  ui.msg "Promoting ALL cookbooks to environment #{@environment}"
135
136
  cookbook_names = get_all_cookbooks
@@ -293,7 +294,7 @@ module KnifeSpork
293
294
  else
294
295
  @version = get_version(config[:cookbook_path], cookbook)
295
296
  end
296
-
297
+
297
298
  ui.msg "Adding version constraint #{cookbook} = #{@version}"
298
299
  return update_version_constraints(environment,cookbook,@version)
299
300
  end
@@ -306,6 +307,24 @@ module KnifeSpork
306
307
  end
307
308
  return results
308
309
  end
310
+
311
+ def check_cookbook_uploaded(cookbook)
312
+ if config[:version]
313
+ if !valid_version(config[:version])
314
+ ui.error("#{config[:version]} isn't a valid version number.")
315
+ return 1
316
+ else
317
+ @version = config[:version]
318
+ end
319
+ else
320
+ @version = get_version(config[:cookbook_path], cookbook)
321
+ end
322
+ ui.msg "Checking that #{cookbook} version #{@version} exists on the server before promoting (any error means it hasn't been uploaded yet)...\n\n"
323
+ env = config[:environment]
324
+ api_endpoint = env ? "environments/#{env}/cookbooks/#{cookbook}/#{@version}" : "cookbooks/#{cookbook}/#{@version}"
325
+ cookbooks = rest.get_rest(api_endpoint)
326
+ ui.msg "#{cookbook} version #{@version } found on server!"
327
+ end
309
328
 
310
329
  def pretty_print(environment)
311
330
  return JSON.pretty_generate(JSON.parse(environment.to_json))
@@ -1,3 +1,3 @@
1
1
  module KnifeSpork
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 7
9
- version: 0.1.7
8
+ - 8
9
+ version: 0.1.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Jon Cowie