fog 0.3.33 → 0.3.34
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.
- data/.gitignore +1 -0
- data/Gemfile.lock +4 -4
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -1
- data/lib/fog/aws.rb +1 -1
- data/lib/fog/aws/compute.rb +1 -0
- data/lib/fog/aws/elb.rb +1 -0
- data/lib/fog/aws/iam.rb +1 -0
- data/lib/fog/aws/simpledb.rb +1 -0
- data/lib/fog/zerigo/dns.rb +13 -11
- data/lib/fog/zerigo/models/dns/record.rb +54 -0
- data/lib/fog/zerigo/models/dns/records.rb +41 -0
- data/lib/fog/zerigo/models/dns/zone.rb +82 -0
- data/lib/fog/zerigo/models/dns/zones.rb +30 -0
- data/lib/fog/zerigo/requests/dns/create_host.rb +1 -1
- metadata +11 -7
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fog (0.3.
|
4
|
+
fog (0.3.34)
|
5
5
|
builder
|
6
|
-
excon (>= 0.3.
|
6
|
+
excon (>= 0.3.6)
|
7
7
|
formatador (>= 0.0.16)
|
8
8
|
json
|
9
9
|
mime-types
|
@@ -15,7 +15,7 @@ GEM
|
|
15
15
|
remote: http://rubygems.org/
|
16
16
|
specs:
|
17
17
|
builder (3.0.0)
|
18
|
-
excon (0.3.
|
18
|
+
excon (0.3.6)
|
19
19
|
formatador (0.0.16)
|
20
20
|
gestalt (0.0.11)
|
21
21
|
formatador (>= 0.0.12)
|
@@ -35,7 +35,7 @@ PLATFORMS
|
|
35
35
|
|
36
36
|
DEPENDENCIES
|
37
37
|
builder
|
38
|
-
excon (>= 0.3.
|
38
|
+
excon (>= 0.3.6)
|
39
39
|
fog!
|
40
40
|
formatador (>= 0.0.16)
|
41
41
|
json
|
data/fog.gemspec
CHANGED
@@ -7,8 +7,8 @@ Gem::Specification.new do |s|
|
|
7
7
|
## If your rubyforge_project name is different, then edit it and comment out
|
8
8
|
## the sub! line in the Rakefile
|
9
9
|
s.name = 'fog'
|
10
|
-
s.version = '0.3.
|
11
|
-
s.date = '2010-12-
|
10
|
+
s.version = '0.3.34'
|
11
|
+
s.date = '2010-12-23'
|
12
12
|
s.rubyforge_project = 'fog'
|
13
13
|
|
14
14
|
## Make sure your summary is short. The description may be as long
|
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
## List your runtime dependencies here. Runtime dependencies are those
|
44
44
|
## that are needed for an end user to actually USE your code.
|
45
45
|
s.add_dependency('builder')
|
46
|
-
s.add_dependency('excon', '>=0.3.
|
46
|
+
s.add_dependency('excon', '>=0.3.6')
|
47
47
|
s.add_dependency('formatador', '>=0.0.16')
|
48
48
|
s.add_dependency('json')
|
49
49
|
s.add_dependency('mime-types')
|
data/lib/fog.rb
CHANGED
data/lib/fog/aws.rb
CHANGED
@@ -58,7 +58,7 @@ module Fog
|
|
58
58
|
body << "#{key}=#{CGI.escape(value.to_s).gsub(/\+/, '%20')}&"
|
59
59
|
end
|
60
60
|
end
|
61
|
-
string_to_sign = "POST\n#{options[:host]}\n#{options[:path]}\n" << body.chop
|
61
|
+
string_to_sign = "POST\n#{options[:host]}:#{options[:port]}\n#{options[:path]}\n" << body.chop
|
62
62
|
signed_string = options[:hmac].sign(string_to_sign)
|
63
63
|
body << "Signature=#{CGI.escape(Base64.encode64(signed_string).chomp!).gsub(/\+/, '%20')}"
|
64
64
|
|
data/lib/fog/aws/compute.rb
CHANGED
data/lib/fog/aws/elb.rb
CHANGED
data/lib/fog/aws/iam.rb
CHANGED
data/lib/fog/aws/simpledb.rb
CHANGED
data/lib/fog/zerigo/dns.rb
CHANGED
@@ -5,25 +5,27 @@ module Fog
|
|
5
5
|
requires :zerigo_email, :zerigo_token
|
6
6
|
recognizes :timeout, :persistent
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
model_path 'fog/zerigo/models/dns'
|
9
|
+
model :record
|
10
|
+
collection :records
|
11
|
+
model :zone
|
12
|
+
collection :zones
|
11
13
|
|
12
14
|
request_path 'fog/zerigo/requests/dns'
|
13
|
-
request :
|
15
|
+
request :count_hosts
|
14
16
|
request :count_zones
|
15
|
-
request :
|
16
|
-
request :get_zone_stats
|
17
|
+
request :create_host
|
17
18
|
request :create_zone
|
18
|
-
request :
|
19
|
+
request :delete_host
|
19
20
|
request :delete_zone
|
20
|
-
request :list_hosts
|
21
21
|
request :find_hosts
|
22
|
-
request :count_hosts
|
23
22
|
request :get_host
|
24
|
-
request :
|
23
|
+
request :get_zone
|
24
|
+
request :get_zone_stats
|
25
|
+
request :list_zones
|
26
|
+
request :list_hosts
|
25
27
|
request :update_host
|
26
|
-
request :
|
28
|
+
request :update_zone
|
27
29
|
|
28
30
|
class Mock
|
29
31
|
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
|
3
|
+
module Fog
|
4
|
+
module Zerigo
|
5
|
+
class DNS
|
6
|
+
|
7
|
+
class Record < Fog::Model
|
8
|
+
|
9
|
+
identity :id
|
10
|
+
|
11
|
+
attribute :created_at, :aliases => 'created-at'
|
12
|
+
attribute :ip, :aliases => 'data'
|
13
|
+
attribute :domain, :aliases => 'fqdn'
|
14
|
+
attribute :name, :aliases => 'hostname'
|
15
|
+
attribute :notes
|
16
|
+
attribute :priority
|
17
|
+
attribute :ttl
|
18
|
+
attribute :type, :aliases => 'host-type'
|
19
|
+
attribute :updated_at, :aliases => 'updated-at'
|
20
|
+
attribute :zone_id, :aliases => 'zone-id'
|
21
|
+
|
22
|
+
def destroy
|
23
|
+
requires :identity
|
24
|
+
connection.delete_host(identity)
|
25
|
+
true
|
26
|
+
end
|
27
|
+
|
28
|
+
def zone
|
29
|
+
@zone
|
30
|
+
end
|
31
|
+
|
32
|
+
def save
|
33
|
+
requires :zone, :type, :ip
|
34
|
+
options = {}
|
35
|
+
options[:hostname] = name if name
|
36
|
+
options[:notes] = notes if notes
|
37
|
+
options[:priority] = priority if priority
|
38
|
+
options[:ttl] = ttl if ttl
|
39
|
+
data = connection.create_host(@zone.id, type, ip, options)
|
40
|
+
merge_attributes(data.body)
|
41
|
+
true
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def zone=(new_zone)
|
47
|
+
@zone = new_zone
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/zerigo/models/dns/record'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Zerigo
|
6
|
+
class DNS
|
7
|
+
|
8
|
+
class Records < Fog::Collection
|
9
|
+
|
10
|
+
attribute :zone
|
11
|
+
|
12
|
+
model Fog::Zerigo::DNS::Record
|
13
|
+
|
14
|
+
def all
|
15
|
+
requires :zone
|
16
|
+
parent = zone.collection.get(zone.identity)
|
17
|
+
if parent
|
18
|
+
merge_attributes(parent.records.attributes)
|
19
|
+
load(parent.records.map {|record| record.attributes})
|
20
|
+
else
|
21
|
+
nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def get(record_id)
|
26
|
+
data = connection.get_host(record_id).body
|
27
|
+
new(data)
|
28
|
+
rescue Excon::Errors::NotFound
|
29
|
+
nil
|
30
|
+
end
|
31
|
+
|
32
|
+
def new(attributes = {})
|
33
|
+
requires :zone
|
34
|
+
super({ :zone => zone }.merge!(attributes))
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'fog/core/model'
|
2
|
+
require 'fog/zerigo/models/dns/records'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Zerigo
|
6
|
+
class DNS
|
7
|
+
|
8
|
+
class Zone < Fog::Model
|
9
|
+
|
10
|
+
identity :id
|
11
|
+
|
12
|
+
attribute :created_at, :aliases => 'created-at'
|
13
|
+
attribute :domain
|
14
|
+
attribute :ttl, :aliases => 'default-ttl'
|
15
|
+
attribute :type, :aliases => 'ns-type'
|
16
|
+
attribute :updated_at, :aliases => 'updated-at'
|
17
|
+
|
18
|
+
# <custom-nameservers>ns1.example.com,ns2.example.com</custom-nameservers>
|
19
|
+
# <custom-ns type="boolean">true</custom-ns>
|
20
|
+
# <hostmaster>dnsadmin@example.com</hostmaster>
|
21
|
+
# <notes nil="true"/>
|
22
|
+
# <ns1 nil="true"/>
|
23
|
+
# <nx-ttl nil="true"></nx-ttl>
|
24
|
+
# <slave-nameservers nil="true"/>
|
25
|
+
# <tag-list>one two</tag-list>
|
26
|
+
# <hosts-count>1</hosts-count>
|
27
|
+
|
28
|
+
def initialize(attributes={})
|
29
|
+
self.type ||= 'pri_sec'
|
30
|
+
self.ttl ||= 3600
|
31
|
+
super
|
32
|
+
end
|
33
|
+
|
34
|
+
def destroy
|
35
|
+
requires :identity
|
36
|
+
connection.delete_zone(identity)
|
37
|
+
true
|
38
|
+
end
|
39
|
+
|
40
|
+
def records
|
41
|
+
@records ||= begin
|
42
|
+
Fog::Zerigo::DNS::Records.new(
|
43
|
+
:zone => self,
|
44
|
+
:connection => connection
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def nameservers
|
50
|
+
[
|
51
|
+
'a.ns.zerigo.net',
|
52
|
+
'b.ns.zerigo.net',
|
53
|
+
'c.ns.zerigo.net',
|
54
|
+
'd.ns.zerigo.net',
|
55
|
+
'e.ns.zerigo.net'
|
56
|
+
]
|
57
|
+
end
|
58
|
+
|
59
|
+
def save
|
60
|
+
requires :domain, :type, :ttl
|
61
|
+
options = {}
|
62
|
+
# * options<~Hash> - optional paramaters
|
63
|
+
# * ns1<~String> - required if ns_type == sec
|
64
|
+
# * nx_ttl<~Integer> -
|
65
|
+
# * slave_nameservers<~String> - required if ns_type == pri
|
66
|
+
# * axfr_ips<~String> - comma-separated list of IPs or IP blocks allowed to perform AXFRs
|
67
|
+
# * custom_nameservers<~String> - comma-separated list of custom nameservers
|
68
|
+
# * custom_ns<~String> - indicates if vanity (custom) nameservers are enabled for this domain
|
69
|
+
# * hostmaster<~String> - email of the DNS administrator or hostmaster
|
70
|
+
# * notes<~String> - notes about the domain
|
71
|
+
# * restrict_axfr<~String> - indicates if AXFR transfers should be restricted to IPs in axfr-ips
|
72
|
+
# * tag_list<~String> - List of all tags associated with this domain
|
73
|
+
data = connection.create_zone(domain, ttl, type, options)
|
74
|
+
merge_attributes(data.body)
|
75
|
+
true
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'fog/core/collection'
|
2
|
+
require 'fog/zerigo/models/dns/zone'
|
3
|
+
|
4
|
+
module Fog
|
5
|
+
module Zerigo
|
6
|
+
class DNS
|
7
|
+
|
8
|
+
class Zones < Fog::Collection
|
9
|
+
|
10
|
+
model Fog::Zerigo::DNS::Zone
|
11
|
+
|
12
|
+
def all
|
13
|
+
data = connection.list_zones.body['zones']
|
14
|
+
load(data)
|
15
|
+
end
|
16
|
+
|
17
|
+
def get(zone_id)
|
18
|
+
data = connection.get_zone(zone_id).body
|
19
|
+
zone = new(data)
|
20
|
+
zone.records.load(data['hosts'])
|
21
|
+
zone
|
22
|
+
rescue Excon::Errors::Forbidden
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -31,7 +31,7 @@ module Fog
|
|
31
31
|
# * 'updated-at'<~String>
|
32
32
|
# * 'zone-id'<~String>
|
33
33
|
# * 'status'<~Integer> - 201 if successful
|
34
|
-
def create_host(
|
34
|
+
def create_host(zone_id, host_type, data, options = {})
|
35
35
|
|
36
36
|
optional_tags= ''
|
37
37
|
options.each { |option, value|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 87
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 34
|
10
|
+
version: 0.3.34
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- geemus (Wesley Beary)
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-12-
|
18
|
+
date: 2010-12-23 00:00:00 -08:00
|
19
19
|
default_executable: fog
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -38,12 +38,12 @@ dependencies:
|
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
hash:
|
41
|
+
hash: 31
|
42
42
|
segments:
|
43
43
|
- 0
|
44
44
|
- 3
|
45
|
-
-
|
46
|
-
version: 0.3.
|
45
|
+
- 6
|
46
|
+
version: 0.3.6
|
47
47
|
type: :runtime
|
48
48
|
name: excon
|
49
49
|
prerelease: false
|
@@ -842,6 +842,10 @@ files:
|
|
842
842
|
- lib/fog/zerigo.rb
|
843
843
|
- lib/fog/zerigo/bin.rb
|
844
844
|
- lib/fog/zerigo/dns.rb
|
845
|
+
- lib/fog/zerigo/models/dns/record.rb
|
846
|
+
- lib/fog/zerigo/models/dns/records.rb
|
847
|
+
- lib/fog/zerigo/models/dns/zone.rb
|
848
|
+
- lib/fog/zerigo/models/dns/zones.rb
|
845
849
|
- lib/fog/zerigo/parsers/dns/count_hosts.rb
|
846
850
|
- lib/fog/zerigo/parsers/dns/count_zones.rb
|
847
851
|
- lib/fog/zerigo/parsers/dns/create_host.rb
|