infoblox 0.4.0 → 0.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/infoblox/connection.rb +7 -0
- data/lib/infoblox/resource.rb +15 -5
- data/lib/infoblox/resource/aaaa_record.rb +4 -3
- data/lib/infoblox/resource/arecord.rb +3 -2
- data/lib/infoblox/resource/cname.rb +3 -2
- data/lib/infoblox/resource/host.rb +3 -2
- data/lib/infoblox/resource/network.rb +4 -4
- data/lib/infoblox/resource/network_container.rb +3 -2
- data/lib/infoblox/resource/ptr.rb +3 -2
- data/lib/infoblox/resource/zone_auth.rb +5 -4
- data/lib/infoblox/version.rb +1 -1
- data/spec/host_spec.rb +10 -0
- data/spec/integration/arecord_spec.rb +12 -0
- data/spec/integration/cname_spec.rb +12 -0
- data/spec/integration/host_spec.rb +23 -2
- metadata +122 -77
- checksums.yaml +0 -7
data/lib/infoblox/connection.rb
CHANGED
data/lib/infoblox/resource.rb
CHANGED
@@ -49,7 +49,7 @@ module Infoblox
|
|
49
49
|
def self.remote_attr_reader(*args)
|
50
50
|
args.each do |a|
|
51
51
|
attr_reader a
|
52
|
-
|
52
|
+
remote_read_only_attrs << a
|
53
53
|
end
|
54
54
|
end
|
55
55
|
|
@@ -61,13 +61,17 @@ module Infoblox
|
|
61
61
|
@remote_write_only_attrs ||= []
|
62
62
|
end
|
63
63
|
|
64
|
+
def self.remote_read_only_attrs
|
65
|
+
@remote_read_only_attrs ||= []
|
66
|
+
end
|
67
|
+
|
64
68
|
def self.remote_post_attrs
|
65
69
|
@remote_post_attrs ||= []
|
66
70
|
end
|
67
71
|
|
68
72
|
def self._return_fields
|
69
73
|
remove = Infoblox.wapi_version < '1.2' ? :extattrs : :extensible_attributes
|
70
|
-
(self.remote_attrs - [remove]).join(",")
|
74
|
+
((self.remote_attrs + self.remote_read_only_attrs) - [remove]).join(",")
|
71
75
|
end
|
72
76
|
|
73
77
|
def self.default_params
|
@@ -122,9 +126,15 @@ module Infoblox
|
|
122
126
|
|
123
127
|
def initialize(attrs={})
|
124
128
|
attrs.each do |k,v|
|
125
|
-
#
|
126
|
-
#
|
127
|
-
|
129
|
+
# Some things have specialized writers,
|
130
|
+
# like Host
|
131
|
+
if respond_to?("#{k}=")
|
132
|
+
send("#{k}=", v)
|
133
|
+
|
134
|
+
# Some things don't have writers (i.e. remote_attr_reader fields)
|
135
|
+
else
|
136
|
+
instance_variable_set("@#{k}", v)
|
137
|
+
end
|
128
138
|
end
|
129
139
|
end
|
130
140
|
|
@@ -3,15 +3,16 @@ module Infoblox
|
|
3
3
|
class AAAArecord < Resource
|
4
4
|
remote_attr_accessor :comment,
|
5
5
|
:disable,
|
6
|
-
:dns_name,
|
7
6
|
:extattrs,
|
8
7
|
:extensible_attributes,
|
9
8
|
:ipv6addr,
|
10
9
|
:name,
|
11
10
|
:ttl,
|
12
11
|
:use_ttl,
|
13
|
-
:view
|
14
|
-
|
12
|
+
:view
|
13
|
+
|
14
|
+
remote_attr_reader :dns_name,
|
15
|
+
:zone
|
15
16
|
|
16
17
|
wapi_object "record:aaaa"
|
17
18
|
end
|
@@ -3,12 +3,12 @@ module Infoblox
|
|
3
3
|
remote_attr_accessor :comment,
|
4
4
|
:extattrs,
|
5
5
|
:extensible_attributes,
|
6
|
-
:network
|
7
|
-
|
6
|
+
:network,
|
7
|
+
:network_view
|
8
|
+
|
9
|
+
remote_attr_reader :network_container
|
8
10
|
|
9
11
|
remote_post_accessor :auto_create_reversezone
|
10
|
-
|
11
|
-
attr_accessor :network_view, :network_container
|
12
12
|
|
13
13
|
wapi_object "network"
|
14
14
|
|
@@ -2,11 +2,12 @@ module Infoblox
|
|
2
2
|
class NetworkContainer < Resource
|
3
3
|
remote_attr_accessor :extattrs,
|
4
4
|
:extensible_attributes,
|
5
|
-
:network
|
5
|
+
:network,
|
6
|
+
:network_view
|
6
7
|
|
7
8
|
remote_post_accessor :auto_create_reversezone
|
8
9
|
|
9
|
-
|
10
|
+
remote_attr_reader :network_container
|
10
11
|
|
11
12
|
wapi_object "networkcontainer"
|
12
13
|
end
|
@@ -2,12 +2,13 @@ module Infoblox
|
|
2
2
|
class ZoneAuth < Resource
|
3
3
|
attr_accessor :fqdn
|
4
4
|
|
5
|
-
remote_attr_accessor :
|
6
|
-
:comment,
|
5
|
+
remote_attr_accessor :comment,
|
7
6
|
:disable,
|
8
|
-
:extattrs
|
9
|
-
:network_view
|
7
|
+
:extattrs
|
10
8
|
|
9
|
+
remote_attr_reader :address,
|
10
|
+
:network_view
|
11
|
+
|
11
12
|
wapi_object "zone_auth"
|
12
13
|
end
|
13
14
|
end
|
data/lib/infoblox/version.rb
CHANGED
data/spec/host_spec.rb
CHANGED
@@ -9,6 +9,16 @@ describe Infoblox::Host, "#add_ipv4addr" do
|
|
9
9
|
expect(host.ipv4addrs[0].ipv4addr).to eq("10.10.10.10")
|
10
10
|
end
|
11
11
|
|
12
|
+
it "initializes correctly" do
|
13
|
+
data = {
|
14
|
+
:name => 'silly-little-host',
|
15
|
+
:ipv4addrs => [{:ipv4addr => '10.10.10.10'}]
|
16
|
+
}
|
17
|
+
host = Infoblox::Host.new(data)
|
18
|
+
expect(host.ipv4addrs[0]).to be_a(Infoblox::HostIpv4addr)
|
19
|
+
expect(host.name).to eq('silly-little-host')
|
20
|
+
end
|
21
|
+
|
12
22
|
it "posts correctly" do
|
13
23
|
conn = double
|
14
24
|
uri = Infoblox.base_path + Infoblox::Host.wapi_object
|
@@ -0,0 +1,12 @@
|
|
1
|
+
if ENV['INTEGRATION']
|
2
|
+
describe 'Infoblox::Arecord' do
|
3
|
+
describe '.find' do
|
4
|
+
it 'should work' do
|
5
|
+
each_version do
|
6
|
+
# the empty result will be [], so nil is bad.
|
7
|
+
expect(Infoblox::Arecord.find(connection, :_max_results => 1)).to_not be_nil
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
if ENV['INTEGRATION']
|
2
|
+
describe 'Infoblox::Cname' do
|
3
|
+
describe '.find' do
|
4
|
+
it 'should work' do
|
5
|
+
each_version do
|
6
|
+
# the empty result will be [], so nil is bad.
|
7
|
+
expect(Infoblox::Cname.find(connection, :_max_results => 1)).to_not be_nil
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -1,12 +1,33 @@
|
|
1
1
|
if ENV['INTEGRATION']
|
2
2
|
describe 'Infoblox::Host' do
|
3
3
|
describe '.find' do
|
4
|
-
it 'should
|
4
|
+
it 'should find' do
|
5
5
|
each_version do
|
6
6
|
# the empty result will be [], so nil is bad.
|
7
|
-
expect(Infoblox::Host.find(connection, :
|
7
|
+
expect(Infoblox::Host.find(connection, :_max_results => 1)).to_not be_nil
|
8
8
|
end
|
9
9
|
end
|
10
|
+
it 'should create, update, and destroy' do
|
11
|
+
failure = false
|
12
|
+
each_version do
|
13
|
+
@host = Infoblox::Host.new(connection: connection)
|
14
|
+
begin
|
15
|
+
@host.add_ipv4addr('10.30.30.30')
|
16
|
+
@host.name = "poc-infobloxgem-test1.ep.gdi"
|
17
|
+
@host.post
|
18
|
+
|
19
|
+
@host = Infoblox::Host.find(connection, {"ipv4addr" => "10.30.30.30"}).first
|
20
|
+
@host.name = "poc-infobloxgem-test2.ep.gdi"
|
21
|
+
@host.put
|
22
|
+
rescue Exception => e
|
23
|
+
puts e
|
24
|
+
failure = true
|
25
|
+
ensure
|
26
|
+
@host.delete
|
27
|
+
end
|
28
|
+
end
|
29
|
+
fail if failure
|
30
|
+
end
|
10
31
|
end
|
11
32
|
end
|
12
33
|
end
|
metadata
CHANGED
@@ -1,87 +1,119 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: infoblox
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.4.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Billy Reisinger
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
prerelease: false
|
16
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
17
|
-
requirements:
|
18
|
-
- &id002
|
19
|
-
- ">="
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: "0"
|
22
|
-
type: :runtime
|
23
|
-
name: json
|
24
|
-
version_requirements: *id001
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
prerelease: false
|
27
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
28
|
-
requirements:
|
29
|
-
- *id002
|
30
|
-
type: :runtime
|
12
|
+
date: 2015-06-18 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
31
15
|
name: faraday
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
38
22
|
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
39
31
|
name: faraday_middleware
|
40
|
-
|
41
|
-
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
42
39
|
prerelease: false
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
47
|
name: rspec
|
48
|
-
|
49
|
-
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
50
55
|
prerelease: false
|
51
|
-
|
52
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: bundler
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
53
67
|
- - ~>
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version:
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '1.3'
|
56
70
|
type: :development
|
57
|
-
name: bundler
|
58
|
-
version_requirements: *id006
|
59
|
-
- !ruby/object:Gem::Dependency
|
60
71
|
prerelease: false
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.3'
|
78
|
+
- !ruby/object:Gem::Dependency
|
65
79
|
name: rake
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
72
86
|
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
73
95
|
name: pry
|
74
|
-
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
75
110
|
description: A Ruby wrapper to the Infoblox WAPI
|
76
|
-
email:
|
111
|
+
email:
|
77
112
|
- billy.reisinger@govdelivery.com
|
78
113
|
executables: []
|
79
|
-
|
80
114
|
extensions: []
|
81
|
-
|
82
115
|
extra_rdoc_files: []
|
83
|
-
|
84
|
-
files:
|
116
|
+
files:
|
85
117
|
- .gitignore
|
86
118
|
- .rspec
|
87
119
|
- .travis.yml
|
@@ -113,6 +145,8 @@ files:
|
|
113
145
|
- spec/connection_spec.rb
|
114
146
|
- spec/host_ipv4addr_spec.rb
|
115
147
|
- spec/host_spec.rb
|
148
|
+
- spec/integration/arecord_spec.rb
|
149
|
+
- spec/integration/cname_spec.rb
|
116
150
|
- spec/integration/host_ipv4addr_spec.rb
|
117
151
|
- spec/integration/host_spec.rb
|
118
152
|
- spec/range_spec.rb
|
@@ -120,32 +154,43 @@ files:
|
|
120
154
|
- spec/search_spec.rb
|
121
155
|
- spec/spec_helper.rb
|
122
156
|
homepage: https://github.com/govdelivery/infoblox
|
123
|
-
licenses:
|
157
|
+
licenses:
|
124
158
|
- MIT
|
125
|
-
metadata: {}
|
126
|
-
|
127
159
|
post_install_message:
|
128
160
|
rdoc_options: []
|
129
|
-
|
130
|
-
require_paths:
|
161
|
+
require_paths:
|
131
162
|
- lib
|
132
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
163
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
none: false
|
165
|
+
requirements:
|
166
|
+
- - ! '>='
|
167
|
+
- !ruby/object:Gem::Version
|
168
|
+
version: '0'
|
169
|
+
segments:
|
170
|
+
- 0
|
171
|
+
hash: 1017556541912433420
|
172
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
|
+
none: false
|
174
|
+
requirements:
|
175
|
+
- - ! '>='
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
segments:
|
179
|
+
- 0
|
180
|
+
hash: 1017556541912433420
|
138
181
|
requirements: []
|
139
|
-
|
140
182
|
rubyforge_project:
|
141
|
-
rubygems_version:
|
183
|
+
rubygems_version: 1.8.25
|
142
184
|
signing_key:
|
143
|
-
specification_version:
|
144
|
-
summary: This gem is a Ruby interface to the Infoblox WAPI. Using the gem, you can
|
145
|
-
|
185
|
+
specification_version: 3
|
186
|
+
summary: This gem is a Ruby interface to the Infoblox WAPI. Using the gem, you can
|
187
|
+
query, create, update, and delete DNS records in your Infoblox instance.
|
188
|
+
test_files:
|
146
189
|
- spec/connection_spec.rb
|
147
190
|
- spec/host_ipv4addr_spec.rb
|
148
191
|
- spec/host_spec.rb
|
192
|
+
- spec/integration/arecord_spec.rb
|
193
|
+
- spec/integration/cname_spec.rb
|
149
194
|
- spec/integration/host_ipv4addr_spec.rb
|
150
195
|
- spec/integration/host_spec.rb
|
151
196
|
- spec/range_spec.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA512:
|
3
|
-
data.tar.gz: 9523aef2db73841cfd832f7016585e21877560c0b6c6acf68d9dac97c376010b38159fbed244477cd6c702382df308030e8276e0aad6eb6913fa4fa060a3109c
|
4
|
-
metadata.gz: 9a743acf2e90903b18966884fa5d8f1acb82d78b97f9b5a992cc77fbb28faa6de95f10b4378480902323ad4d3426ca35fe534cdb9e1ac6b0bbab299096a9f85c
|
5
|
-
SHA1:
|
6
|
-
data.tar.gz: 5e8cfd4c91bf44aa902f0f4fd7157d8e3a34290b
|
7
|
-
metadata.gz: 87e376a6a12e29d85500d9302cec32b7b2d19104
|