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 +4 -4
- data/lib/gclouder/resource.rb +6 -4
- data/lib/gclouder/resources/dns.rb +6 -1
- data/lib/gclouder/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c883949702bd5ebf5955dd329f1270ab98029010
|
4
|
+
data.tar.gz: aa2a1d13fb78f58ce04db2e2065a1c54319741c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2587dbcdb61c10507a2bd0613f13cce975752734acce1c72c046148bf2ae1b995ec04a211a32479f3cc02a0f1b485addf665a4096f8387e198ecd0b6442c0167
|
7
|
+
data.tar.gz: e7142be85907d2b90b6875cc08bab66c0169a1bab8c1084ba6caf39ebf3039be09015feb56bbbe14a2a065d3f3230845aaec6ed231353b3bb94ad29442d3ff4f
|
data/lib/gclouder/resource.rb
CHANGED
@@ -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,
|
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
|
19
|
-
|
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
|
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)
|
data/lib/gclouder/version.rb
CHANGED