gclouder 0.1.6 → 0.1.7

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: 29116b388c07abbba630ea7457469e940e4c8053
4
- data.tar.gz: 8000b318ef323a161dc1da3f4ca9ade2764a386b
3
+ metadata.gz: c883949702bd5ebf5955dd329f1270ab98029010
4
+ data.tar.gz: aa2a1d13fb78f58ce04db2e2065a1c54319741c7
5
5
  SHA512:
6
- metadata.gz: be2079d49483b0d3468865a3dde9c58cfccda9da1456f75d7d81964a9f3260e5ad44efa1745f728627fc3347d2fee83c854dbda91c59d7319598a75f5cdb8347
7
- data.tar.gz: 41adda690f93e17af09d8316635609d2e8875da41035ce5bddec1a16de8114879a1aaf6dfd61f32f1b73ab9603f28e06fba12437363c446ac155385df9b7358f
6
+ metadata.gz: 2587dbcdb61c10507a2bd0613f13cce975752734acce1c72c046148bf2ae1b995ec04a211a32479f3cc02a0f1b485addf665a4096f8387e198ecd0b6442c0167
7
+ data.tar.gz: e7142be85907d2b90b6875cc08bab66c0169a1bab8c1084ba6caf39ebf3039be09015feb56bbbe14a2a065d3f3230845aaec6ed231353b3bb94ad29442d3ff4f
@@ -13,13 +13,15 @@ module GClouder
13
13
 
14
14
  def self.resource?(resource, name, args = nil, filter_key: "name", filter: "#{filter_key} ~ ^#{name}$", project_id: nil, silent: false, extra_info: nil, indent: 3)
15
15
  exists = \
16
- gcloud("#{resource} list --filter '#{filter}' #{args} | jq '. | length'", force: true, silent: silent, project_id: project_id)
16
+ gcloud("#{resource} list --filter '#{filter}' #{args} | jq '. | length'", force: true, project_id: project_id) > 0
17
17
 
18
- # if silent is specified then shell call returns truthy, otherwise integer
19
- exists = exists > 0 ? true : false if !silent
18
+ # if silent is specified then shell call returns boolean, otherwise integer
19
+ if exists.is_a?(Integer)
20
+ exists = exists > 0 ? true : false
21
+ end
20
22
 
21
23
  if exists
22
- feedback("good", resource, name, extra_info: extra_info, indent: indent, silent: silent)
24
+ feedback("good", resource, name, extra_info: extra_info, indent: indent, silent: silent) unless silent
23
25
  return true
24
26
  end
25
27
 
@@ -269,8 +269,9 @@ module GClouder
269
269
  true
270
270
  end
271
271
 
272
+ # FIXME: if a record exists but ttl or ip are different, an update should be performed
272
273
  def self.add_record_set(name, value, zone, type, ttl, project_id)
273
- if Resource.resource?("dns record-sets", name, "--zone=#{zone}", filter: "name = #{name} AND type = #{type}", project_id: project_id, silent: true)
274
+ if record_exists?(project_id, zone, name, type)
274
275
  good "#{name} IN #{type} #{value} #{ttl}", indent: 4
275
276
  return
276
277
  end
@@ -280,6 +281,10 @@ module GClouder
280
281
  gcloud "dns record-sets transaction add --name=#{name} --zone=#{zone} --type=#{type} --ttl=#{ttl} #{value}", project_id: project_id
281
282
  end
282
283
 
284
+ def self.record_exists?(project_id, zone, name, type)
285
+ Resource.resource?("dns record-sets", name, "--zone=#{zone}", filter: "name = #{name} AND type = #{type}", project_id: project_id, silent: true)
286
+ end
287
+
283
288
  def self.lookup_ip(name, context)
284
289
  args = context == "global" ? "--global" : "--regions #{context}"
285
290
  ip = gcloud("compute addresses list #{name} #{args}", force: true)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
  module GClouder
4
- VERSION = "0.1.6"
4
+ VERSION = "0.1.7"
5
5
  end
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.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rob Wilson