cloudstrap 0.42.9.pre → 0.43.0.pre

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: 566838b2117aeed7217fba23e9c2302974d64ac1
4
- data.tar.gz: 809041189de906bbdc2b1786ab7ccd273933d50f
3
+ metadata.gz: bc9419405b45fa2b6ce77e13a6214eea069b1cdb
4
+ data.tar.gz: 4a3b4d6cec099f2fd7f51cf530bb605664996214
5
5
  SHA512:
6
- metadata.gz: e9cb451185640133d5d67b5807d40148dd52676e1c45c3d68f7abb825b13d52a5286d4d4c8245e2227b834faa73beb4ae28d37c0055943b3e2a03c0cad263b03
7
- data.tar.gz: 2f2ca1c9a749e295f6c9ea7f33bf590d630769632884dd0e2d818edcf10fe7939f3daac68733ac2dbf8e5dd3ce0c9048b6e7ef2554cff51d300491812634e82c
6
+ metadata.gz: c75b853bce1ab62228e7cf76f1a22c85102fe4679e477480814587cbb3d6e369a82e6e6e07c6e03320c98afd6e5614ecb3edd9866cd48c03ab2f2eba5658fb85
7
+ data.tar.gz: bcc021f60f44c04ad9f2a5b4057d93fd25d5e395e1a969c54740aca873c7e9e418071bd258bd7bf0a4b962cf74ca1c78c0d99c4c2d1b23311b2a6e62129e73e4
@@ -0,0 +1,35 @@
1
+ require 'faraday'
2
+ require 'multi_json'
3
+
4
+ module Cloudstrap
5
+ class ComponentVersions
6
+ def initialize(config)
7
+ @config = config
8
+ self
9
+ end
10
+
11
+ def hcp
12
+ version_from https.get @config.hcp_metadata
13
+ end
14
+
15
+ def hce
16
+ version_from https.get @config.hce_metadata
17
+ end
18
+
19
+ def hsm
20
+ version_from https.get @config.hsm_metadata
21
+ end
22
+
23
+ private
24
+
25
+ def https
26
+ @https ||= Faraday.new "https://#{@config.artifact_origin}"
27
+ end
28
+
29
+ def version_from(response)
30
+ return unless response.success?
31
+
32
+ MultiJson.load(response.body).fetch('Version')
33
+ end
34
+ end
35
+ end
@@ -2,6 +2,8 @@ require 'contracts'
2
2
  require 'pastel'
3
3
  require 'yaml'
4
4
 
5
+ require_relative 'component_versions'
6
+
5
7
  module Cloudstrap
6
8
  class Config
7
9
  include ::Contracts::Core
@@ -113,6 +115,34 @@ module Cloudstrap
113
115
  lookup(:artifact_prefix) { '/downloads' }
114
116
  end
115
117
 
118
+ Contract None => String
119
+ def hce_prefix
120
+ lookup(:hce_prefix) do
121
+ "#{artifact_prefix}/hce"
122
+ end.squeeze('/')
123
+ end
124
+
125
+ Contract None => String
126
+ def hce_metadata
127
+ lookup(:hce_metadata) do
128
+ "#{hce_prefix}/dist/v2/linux-amd64.json"
129
+ end.squeeze('/')
130
+ end
131
+
132
+ Contract None => String
133
+ def hsm_prefix
134
+ lookup(:hsm_prefix) do
135
+ "#{artifact_prefix}/hsm"
136
+ end.squeeze('/')
137
+ end
138
+
139
+ Contract None => String
140
+ def hsm_metadata
141
+ lookup(:hsm_metadata) do
142
+ "#{hsm_prefix}/cli/update/linux-amd64.json"
143
+ end.squeeze('/')
144
+ end
145
+
116
146
  Contract None => String
117
147
  def hcp_prefix
118
148
  lookup(:hcp_prefix) do
@@ -134,7 +164,7 @@ module Cloudstrap
134
164
 
135
165
  Contract None => String
136
166
  def hcp_bootstrap_version
137
- lookup(:hcp_bootstrap_version) { '1.0.21-0-g77ce3d1' }
167
+ lookup(:hcp_bootstrap_version) { latest.hcp }
138
168
  end
139
169
 
140
170
  alias hcp_version hcp_bootstrap_version
@@ -234,6 +264,11 @@ EOS
234
264
  @path ||= File.expand_path [dir, file].join('/')
235
265
  end
236
266
 
267
+ Contract None => ComponentVersions
268
+ def latest
269
+ @latest ||= ComponentVersions.new self
270
+ end
271
+
237
272
  Contract None => Hash
238
273
  def config
239
274
  @settings ||= if File.exist?(path)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.42.9.pre
4
+ version: 0.43.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Olstrom
@@ -336,6 +336,7 @@ files:
336
336
  - lib/cloudstrap/amazon/service.rb
337
337
  - lib/cloudstrap/amazon/support/rate_limit_handler.rb
338
338
  - lib/cloudstrap/bootstrap_agent.rb
339
+ - lib/cloudstrap/component_versions.rb
339
340
  - lib/cloudstrap/config.rb
340
341
  - lib/cloudstrap/errors.rb
341
342
  - lib/cloudstrap/hcp/bootstrap_properties.rb