bbc-cosmos-tools 0.7.0 → 0.8.0

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: 65cd0367e530b4c48f9c1cbec21d0832fb249849
4
- data.tar.gz: 5255edaba086f47db45c227ff3ed2868cd7c51f0
3
+ metadata.gz: 204d2769528dc7478f8989d2a95838703b341c1e
4
+ data.tar.gz: edc6e26631b88bb768c7fb9e1bb317e8c7995748
5
5
  SHA512:
6
- metadata.gz: 05faaf59a12f88c2a52774c1e9faf36795acc2da85138ebfe9cc79889ff93d2491304edf76acdac0808be2fc0c291c7585b53f5ff28408cc0dd3324605602e1d
7
- data.tar.gz: 6fe251bf659206f15e033529729d0021854c90e21cb1a62392c1175de44c4af1b9da6831a3f85634a793054f2ad0a4aa93f896c3c04fe356bb7f5caac5eb75db
6
+ metadata.gz: fff3c9de80096d918b73051529ced1a1bf116712b1130a5262ebbf440d3fa862beb99f7ff7dbeb449205259a58989b785b12322133139e0a758bda6bd1319063
7
+ data.tar.gz: b1dc7fc87cc39170975caef9cae71ed5bff5c3864d6e7833e0ca5cc31a705676c8da7a213442bae6c4686296d16d63a3e30c816ac8918df750d661155a334fdb
@@ -4,6 +4,21 @@ require "bbc/cosmos/tools/commands/base"
4
4
  require "bbc/cosmos/tools/cosmos_configuration"
5
5
  require "bbc/cosmos/tools/api"
6
6
 
7
+ class IncorrectUrlException < StandardError
8
+ def initialize(msg)
9
+ super
10
+ end
11
+ end
12
+
13
+ class NullResponse
14
+ def success?
15
+ false
16
+ end
17
+ def body
18
+ JSON.generate({})
19
+ end
20
+ end
21
+
7
22
  module BBC
8
23
  module Cosmos
9
24
  module Tools
@@ -84,7 +99,13 @@ module BBC
84
99
  end
85
100
  end
86
101
 
87
- response = api.post sprintf(endpoint, options[:env], id), JSON.generate(post_data)
102
+ response = begin
103
+ check_config
104
+ api.post sprintf(endpoint, options[:env], id), JSON.generate(post_data)
105
+ rescue IncorrectUrlException => e
106
+ say "\nWarning: #{e.message}\n", :red
107
+ NullResponse.new
108
+ end
88
109
 
89
110
  if response.success?
90
111
 
@@ -92,7 +113,7 @@ module BBC
92
113
  say get_key_value("Version", post_data["snapshot_id"] ? post_data["snapshot_id"] : post_data["release_version"])
93
114
 
94
115
  data = JSON.parse(response.body)
95
- say "\nDeployment started successfully: #{config.app['api']}#{data['url']}\n", :green
116
+ say "\nDeployment started successfully: #{config.app['admin']}/cosmos#{data['url']}\n", :green
96
117
 
97
118
  else
98
119
  api_error response
@@ -155,6 +176,10 @@ module BBC
155
176
 
156
177
  private
157
178
 
179
+ def check_config
180
+ raise IncorrectUrlException.new("Your configs/app.yaml is missing -> admin: 'https://admin.live.bbc.co.uk'") unless config.app.has_key? "admin"
181
+ end
182
+
158
183
  def start_redeploy(component, id)
159
184
  post_data = { "deployment_id" => id }
160
185
  endpoint = "/cosmos/env/#{options[:env]}/component/#{component}/redeploy"
@@ -15,7 +15,9 @@ module BBC
15
15
  def generate_data(to_json = false)
16
16
  if valid_component_and_stack
17
17
  get_parameters.each do |key, value|
18
- data["Parameters"][key]["Default"] = value if data["Parameters"][key]
18
+ if data.has_key?("Parameters") && data["Parameters"][key]
19
+ data["Parameters"][key]["Default"] = value
20
+ end
19
21
  end
20
22
  to_json ? JSON.pretty_generate(data) : data
21
23
  end
@@ -39,7 +41,7 @@ module BBC
39
41
  end
40
42
 
41
43
  def get_parameters
42
- @config.resources["cloudformation"]["components"][@id][@options[:stack]]["variants"][@options[:variant]]
44
+ @config.resources["cloudformation"]["components"][@id][@options[:stack]]["variants"][@options[:variant]] || []
43
45
  end
44
46
  end
45
47
  end
@@ -9,7 +9,7 @@ module BBC
9
9
  protected
10
10
 
11
11
  def data
12
- JSON.parse(IO.read(construct_file_path "json"))
12
+ @json ||= JSON.parse(IO.read(construct_file_path "json"))
13
13
  end
14
14
  end
15
15
  end
@@ -1,7 +1,7 @@
1
1
  module BBC
2
2
  module Cosmos
3
3
  module Tools
4
- VERSION = "0.7.0"
4
+ VERSION = "0.8.0"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bbc-cosmos-tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Jack
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-09 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: bundler