dozens_jp_cli 0.0.3 → 0.0.5

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: e3a02ac6a0f7e66c183f060bba792824ae72b36f
4
- data.tar.gz: 7ec85f3f94fddf7b381d6f8915426d0851175998
3
+ metadata.gz: 99f0c0c5aad12ccd35fdff8e9bfecea720b5b594
4
+ data.tar.gz: 145014e8730f80fb9842eda68de513b155942848
5
5
  SHA512:
6
- metadata.gz: e311f2a8435a3d249a566d8307952f3773f7bd872c956abdf17b0017d8bb1c2c08c58c6f6e115edaa4e8dfdb78b216e462f0ba82865c01e6a4431075368575f0
7
- data.tar.gz: d51724733432a9ac984727bb5e71c890207458fd52dfcd2289f0aa121ad762d0c2487405018b6ce340c11688971291c3997038bc2865d3744d3a0ca519cf9f08
6
+ metadata.gz: e3e4910bd1604daa766f1c32ba74e95e26a36ee723c0df8f15737ba1940d107ba30533646ef4ef36bcbd1bae37112d92ccc540ee309940ebaebb268bdf2ffa4e
7
+ data.tar.gz: c870ed56cd71122836143f36e5b3cc2596ef11891ea2da350a40186e9fb217fd5ac531d3931751d724e68b6e39891c6a1cb8d5d80557bf8185fad02f87a0fd28
data/README.md CHANGED
@@ -12,7 +12,7 @@ gem 'dozens_jp_cli'
12
12
 
13
13
  And then execute:
14
14
 
15
- $ bundle
15
+ $ bundle install
16
16
 
17
17
  Or install it yourself as:
18
18
 
@@ -20,7 +20,30 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- TODO: Write usage instructions here
23
+
24
+ ```ruby
25
+ require 'dozens_jp_cli'
26
+
27
+
28
+ dozens_user_id = "youname"
29
+ dozens_user_token = "xxxxxxxxxxxxxxxxxx"
30
+
31
+ d = Dozens.new(dozens_user_id,dozens_user_token)
32
+
33
+ ## create new zone
34
+ ret = d.zone_create_new("dns.example.com", "webmaster@dns.example.com")
35
+ ## delete a zone
36
+ ret = d.zone_delete("dns.example.com")
37
+ ## add a record into zone
38
+ ret = d.record_create("www.dns.example.com","dns.example.com")
39
+ ## or
40
+ ret = d.record_create("www","dns.example.com")
41
+ ## delete a record
42
+ ret = d.record_delete("www.dns.example.com")
43
+
44
+ ```
45
+
46
+
24
47
 
25
48
  ## Contributing
26
49
 
data/lib/dozens_jp_cli.rb CHANGED
@@ -1,8 +1,9 @@
1
1
  require 'mechanize'
2
+ require 'resolv'
2
3
 
3
4
  require "dozens_jp_cli/version"
4
5
 
5
-
6
+ ## TODO: DozensJP DNS round robin is supported, but this script dose not support dns round robin
6
7
  class Dozens
7
8
  attr_accessor :ua
8
9
  API_BASE_URI = "http://dozens.jp/api"
@@ -85,8 +86,18 @@ class Dozens
85
86
  def zone_exists?(name)
86
87
  self.find_zone_id(name)!=nil
87
88
  end
89
+ def record_name(id)
90
+ ## TODO dns round robin
91
+ zone = self.zone_list.each{|zone|
92
+ record = self.record_list(zone["name"]).each{|record|
93
+ return record["name"] if record['id'] == id
94
+ }
95
+ }
96
+ return nil
97
+ end
88
98
 
89
99
  def find_record_id(name)
100
+ ## TODO dns round robin
90
101
  zone = self.zone_list.find{|e|
91
102
  name =~/#{e["name"]}/
92
103
  }
@@ -127,14 +138,26 @@ class Dozens
127
138
 
128
139
 
129
140
  end
130
- def record_update(record_id,prio=10,content=nil,ttl=7200)
141
+ def record_update(record_id_or_name,prio=10,content=nil,ttl=7200,force=false)
142
+ ## TODO dns round robin
143
+ record_id = ( record_id_or_name =~ /\d+/ ) ? record_id_or_name : self.find_record_id(record_id_or_name)
131
144
  content = self.current_global_ip unless content
132
145
  params = {"prio"=>prio,"content"=>content,"ttl"=>ttl}.to_json
133
146
  url = API_BASE_URI+"/record/update/#{record_id}.json"
134
147
  ret = self.post(url,nil,params)
135
148
  JSON.parse(ret)["record"]
136
149
  end
137
-
150
+ def address_is_changed?(record_id_or_name,content=nil)
151
+ ## TODO dns round robin
152
+ record_name = ( record_id_or_name =~ /\d+/ ) ? self.record_name(record_id_or_name): record_id_or_name
153
+ current_dns_result = Resolv.getaddresses(record_name)
154
+ if current_dns_result
155
+ current_dns_result = current_dns_result.first
156
+ end
157
+ replace_content = (content) ? content : self.current_global_ip
158
+ return current_dns_result != replace_content
159
+ end
160
+ alias :address_is_changed :address_is_changed?
138
161
  def current_global_ip
139
162
  url = "http://myexternalip.com/json"
140
163
  ret = self.get(url,{},[])
@@ -1,3 +1,3 @@
1
1
  module DozensJpCli
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dozens_jp_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - takuya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-31 00:00:00.000000000 Z
11
+ date: 2015-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler