SignalFlare 1.0.2 → 1.0.3
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/SignalFlare.rb +22 -14
- 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: 50d252d8243db61dc1cbfcb54fbdd0043093fbd6
|
4
|
+
data.tar.gz: abf888564d8165b34b5727dd923d20337c1a0990
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 79c823071d2616d1a1351b8335bb9a7cb09b58a384f61189df0a19829f965f117c632b5414fb3dfaed3323966f9bcf4524ce73c087345ef18dafca4bae9c7e94
|
7
|
+
data.tar.gz: 6103b33e3430224878d99f9189143eae73a61b05fd6c598e9aa40a69b17e9debb1634b6d31a806a69eecf29b65ab98ca6e0e5cdf4237168e23c1849ad4b76fa7
|
data/lib/SignalFlare.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
-
require
|
2
|
-
require
|
1
|
+
require "open-uri"
|
2
|
+
require "cloudflare"
|
3
|
+
|
4
|
+
class RecordNotFound < Exception
|
5
|
+
end
|
6
|
+
|
7
|
+
class RecordUnchanged < Exception
|
8
|
+
end
|
3
9
|
|
4
10
|
class SignalFlare
|
5
11
|
def initialize(api_key, email)
|
@@ -9,7 +15,7 @@ class SignalFlare
|
|
9
15
|
end
|
10
16
|
|
11
17
|
def update_ip(hostname)
|
12
|
-
split = hostname.partition(
|
18
|
+
split = hostname.partition(".")
|
13
19
|
@host, @domain = split[0], split[2]
|
14
20
|
|
15
21
|
begin
|
@@ -17,31 +23,33 @@ class SignalFlare
|
|
17
23
|
dns_ip = nil
|
18
24
|
external_ip = fetch_ip()
|
19
25
|
|
20
|
-
@api.rec_load_all(@domain)[
|
21
|
-
if record[
|
22
|
-
record_id = record[
|
23
|
-
dns_ip = record[
|
26
|
+
@api.rec_load_all(@domain)["response"]["recs"]["objs"].each do |record|
|
27
|
+
if record["name"] == hostname
|
28
|
+
record_id = record["rec_id"]
|
29
|
+
dns_ip = record["content"]
|
24
30
|
break
|
25
31
|
end
|
26
32
|
end
|
27
33
|
|
28
34
|
if record_id == nil
|
29
|
-
|
35
|
+
raise RecordNotFound
|
30
36
|
end
|
31
37
|
|
32
38
|
if dns_ip == external_ip
|
33
|
-
|
39
|
+
raise RecordUnchanged
|
34
40
|
end
|
35
41
|
|
36
|
-
@api.rec_edit(@domain,
|
42
|
+
@api.rec_edit(@domain, "A", record_id, hostname, external_ip, 1)
|
37
43
|
|
38
|
-
puts
|
39
|
-
rescue
|
40
|
-
puts
|
44
|
+
puts "IP for #{hostname} has been updated from #{dns_ip} to #{external_ip}"
|
45
|
+
rescue RecordNotFound
|
46
|
+
puts "Suitable record for #{hostname} not found."
|
47
|
+
rescue RecordUnchanged
|
48
|
+
puts "IP for #{hostname} has not changed."
|
41
49
|
end
|
42
50
|
end
|
43
51
|
|
44
52
|
def fetch_ip
|
45
|
-
open(
|
53
|
+
open("http://api.ipify.org").read
|
46
54
|
end
|
47
55
|
end
|