cloudstrap 0.42.9.pre → 0.43.0.pre

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.
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