gclouder 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
- 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