gclouder 0.2.3 → 0.2.4

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: e8afce06d8590e9656529b41c631ce595e4c68a9
4
- data.tar.gz: 29fcf0a6bcd2a8cf23b729a24316794c48efff83
3
+ metadata.gz: d5fac046450304fa8776ed102e38e05adb98441a
4
+ data.tar.gz: 58d375a60028943c06e7bbb3383fbc6a7de1d076
5
5
  SHA512:
6
- metadata.gz: 222f60fdb53095997f47d16379bdf6195ca091194e6d6fce2b1a50d5020f11e3ecfbe7f39e1edcb35063492ec2a83e8de60e1ba7460552afb7e0e77279eb4409
7
- data.tar.gz: d2b4609672a00ad8c02e656097a48f127c356658c373aaf85ccceac05da04f83d4aad4f917e2a2782ee368e043887a2dfb5def874683c8b266858b1f1c96df25
6
+ metadata.gz: 81ac317bf67d099969b203bc6a46a6adc188078d181884f2c1e2538e5b3afd961abe78780aeac3dae19c3b244e264bf2d755d904fb98fe0905632f705904a33a
7
+ data.tar.gz: 12d85af734b3cf50621360237fe0c152c773456385a8372eb941b584716835b6850df482bd1e85ea90cc7b6b9369d3e9f47e891c04a996a807cd6e32d10fcc80
@@ -0,0 +1,10 @@
1
+ ---
2
+ name:
3
+ type: String
4
+ required: true
5
+ value:
6
+ type: String
7
+ required: true
8
+ config-name:
9
+ type: String
10
+ required: true
@@ -0,0 +1,6 @@
1
+ ---
2
+ name:
3
+ type: String
4
+ required: true
5
+ description:
6
+ type: String
@@ -29,3 +29,11 @@ beta::pubsub::subscriptions:
29
29
  beta::pubsub::topics:
30
30
  - pubsub
31
31
  - projects.topics
32
+
33
+ beta::runtime-config::configs:
34
+ - runtime-config
35
+ - projects.configs
36
+
37
+ beta::runtime-config::configs::variables:
38
+ - runtime-config
39
+ - projects.variables
@@ -0,0 +1,3 @@
1
+ ---
2
+ name: String
3
+ description: String
@@ -0,0 +1,3 @@
1
+ ---
2
+ name: String
3
+ description: String
@@ -51,6 +51,11 @@ module GClouder
51
51
  snake_case ? list.to_snake_keys : list
52
52
  end
53
53
 
54
+ def self.set(resource, name, value, args = nil, project_id: nil, extra_info: nil, silent: false, indent: 3)
55
+ feedback("good", resource, name, extra_info: "[#{value}]", indent: indent, silent: silent)
56
+ gcloud "#{resource} set #{name} #{value} #{args}", project_id: project_id, silent: silent
57
+ end
58
+
54
59
  module Find
55
60
  include GClouder::GCloud
56
61
 
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module GClouder
4
+ module Resources
5
+ module RuntimeConfig
6
+ module Configs
7
+ include GClouder::Config::CLIArgs
8
+ include GClouder::Config::Project
9
+ include GClouder::Logging
10
+ include GClouder::Resource::Cleaner
11
+
12
+ def self.header(stage = :ensure)
13
+ info "[#{stage}] runtime-config / configs", indent: 1, title: true
14
+ end
15
+
16
+ def self.ensure
17
+ return if Local.list.empty?
18
+ header
19
+
20
+ Local.list.each do |region, configs|
21
+ info region, indent: 2, heading: true
22
+ info
23
+ configs.each do |config|
24
+ ConfigObject.ensure(config["name"])
25
+ end
26
+ end
27
+ end
28
+
29
+ def self.validate
30
+ return if Local.list.empty?
31
+ header :validate
32
+ Local.validate
33
+ end
34
+
35
+ module Local
36
+ include GClouder::Config::CLIArgs
37
+ include GClouder::Config::Project
38
+ include GClouder::Logging
39
+
40
+ # FIXME: improve validation
41
+ def self.validate
42
+ Resources::Validate::Region.instances(
43
+ list,
44
+ required_keys: GClouder::Config::Arguments.required(%w(runtime-config configs)),
45
+ permitted_keys: GClouder::Config::Arguments.permitted(%w(runtime-config configs))
46
+ )
47
+ end
48
+
49
+ def self.list
50
+ GClouder::Resources::Global.instances(path: %w(runtime-config configs))
51
+ end
52
+ end
53
+
54
+ module Remote
55
+ def self.list
56
+ Resources::Remote.instances(
57
+ path: %w(beta runtime-config configs)
58
+ )
59
+ end
60
+ end
61
+
62
+ module ConfigObject
63
+ include GClouder::GCloud
64
+
65
+ def self.ensure(config)
66
+ Resource.ensure :"beta runtime-config configs", config
67
+ end
68
+
69
+ def self.purge(config)
70
+ Resource.purge :"beta runtime-config configs", config
71
+ end
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ module GClouder
4
+ module Resources
5
+ module RuntimeConfig
6
+ module Variables
7
+ include GClouder::Config::CLIArgs
8
+ include GClouder::Config::Project
9
+ include GClouder::Logging
10
+ include GClouder::Resource::Cleaner
11
+
12
+ def self.header(stage = :ensure)
13
+ info "[#{stage}] runtime-config / variables", indent: 1, title: true
14
+ end
15
+
16
+ def self.ensure
17
+ return if Local.list.empty?
18
+ header
19
+
20
+ Local.list.each do |region, variables|
21
+ info region, indent: 2, heading: true
22
+ info
23
+ variables.each do |variable|
24
+ Variable.ensure(variable)
25
+ end
26
+ end
27
+
28
+ puts "Ensure all done"
29
+ end
30
+
31
+ def self.validate
32
+ return if Local.list.empty?
33
+ header :validate
34
+ Local.validate
35
+ end
36
+
37
+ module Local
38
+ include GClouder::Config::CLIArgs
39
+ include GClouder::Config::Project
40
+ include GClouder::Logging
41
+
42
+ def self.validate
43
+ Resources::Validate::Region.instances(
44
+ list,
45
+ required_keys: GClouder::Config::Arguments.required(%w(runtime-config configs variables)),
46
+ permitted_keys: GClouder::Config::Arguments.permitted(%w(runtime-config configs variables))
47
+ )
48
+ end
49
+
50
+ def self.list
51
+ GClouder::Resources::Global.instances(path: %w(runtime-config variables))
52
+ end
53
+ end
54
+
55
+ module Variable
56
+ include GClouder::GCloud
57
+
58
+ def self.args(variable)
59
+ hash_to_args(variable.select{|k,v| k != "value"}) # Value is passed as an arg
60
+ end
61
+
62
+ def self.ensure(variable)
63
+ Resource.set :"beta runtime-config configs variables", variable["name"], variable["value"], args(variable)
64
+ end
65
+
66
+ def self.purge(config)
67
+ Resource.purge :"beta runtime-config configs variables", config
68
+ end
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  module GClouder
4
- VERSION = "0.2.3"
4
+ VERSION = "0.2.4"
5
5
  end
data/lib/gclouder.rb CHANGED
@@ -82,6 +82,9 @@ require "gclouder/resources/logging/sinks"
82
82
 
83
83
  require "gclouder/resources/functions/function"
84
84
 
85
+ require "gclouder/resources/runtime-config/configs"
86
+ require "gclouder/resources/runtime-config/variables"
87
+
85
88
  module GClouder
86
89
  include GClouder::Logging
87
90
  include GClouder::Config::CLIArgs
@@ -256,6 +259,18 @@ module GClouder
256
259
  skip: [ :check ],
257
260
  },
258
261
 
262
+ {
263
+ name: "runtime-configs",
264
+ module: Resources::RuntimeConfig::Configs,
265
+ skip: [ :check ],
266
+ },
267
+
268
+ {
269
+ name: "variables",
270
+ module: Resources::RuntimeConfig::Variables,
271
+ skip: [ :check, :clean ],
272
+ },
273
+
259
274
  {
260
275
  name: "functions",
261
276
  module: Resources::Functions::Function,
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gclouder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Wilson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-09-14 00:00:00.000000000 Z
12
+ date: 2017-09-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: trollop
@@ -188,6 +188,8 @@ files:
188
188
  - assets/arguments/dns/managed-zones.yml
189
189
  - assets/arguments/dns/record-sets/transaction.yml
190
190
  - assets/arguments/functions.yml
191
+ - assets/arguments/runtime-config/configs.yml
192
+ - assets/arguments/runtime-config/configs/variables.yml
191
193
  - assets/defaults/compute/disks.yml
192
194
  - assets/mappings/file.yml
193
195
  - assets/mappings/property.yml
@@ -204,6 +206,8 @@ files:
204
206
  - assets/resource_representations/logging/projects.sinks.yml
205
207
  - assets/resource_representations/pubsub/projects.subscriptions.yml
206
208
  - assets/resource_representations/pubsub/projects.topics.yml
209
+ - assets/resource_representations/runtime-config/projects.configs.yml
210
+ - assets/resource_representations/runtime-config/projects.variables.yml
207
211
  - bin/gclouder
208
212
  - lib/gclouder.rb
209
213
  - lib/gclouder/config/arguments.rb
@@ -253,6 +257,8 @@ files:
253
257
  - lib/gclouder/resources/project_id.rb
254
258
  - lib/gclouder/resources/pubsub/subscriptions.rb
255
259
  - lib/gclouder/resources/pubsub/topics.rb
260
+ - lib/gclouder/resources/runtime-config/configs.rb
261
+ - lib/gclouder/resources/runtime-config/variables.rb
256
262
  - lib/gclouder/resources/storage/buckets.rb
257
263
  - lib/gclouder/resources/storage/notifications.rb
258
264
  - lib/gclouder/resources/validate/global.rb