infoblox 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/infoblox.rb +2 -0
- data/lib/infoblox/client.rb +11 -0
- data/lib/infoblox/host.rb +10 -1
- data/lib/infoblox/ipv4addr.rb +8 -0
- data/lib/infoblox/network.rb +12 -0
- data/lib/infoblox/resource.rb +6 -2
- data/lib/infoblox/version.rb +1 -1
- data/spec/host_spec.rb +2 -1
- metadata +4 -2
data/lib/infoblox.rb
CHANGED
data/lib/infoblox/client.rb
CHANGED
@@ -12,10 +12,21 @@ module Infoblox
|
|
12
12
|
Host.all
|
13
13
|
end
|
14
14
|
|
15
|
+
##
|
16
|
+
# Find all host records by wildcard name.
|
17
|
+
#
|
15
18
|
def find_host_by_name(name)
|
16
19
|
Host.find(:"name~" => name)
|
17
20
|
end
|
18
21
|
|
22
|
+
##
|
23
|
+
# Find all ipv4addr records by ip address fragment.
|
24
|
+
# ex: find_ips('10.10.2') => [#<Infoblox::Ipv4addr>...]
|
25
|
+
#
|
26
|
+
def find_ips(ip_fragment)
|
27
|
+
Ipv4addr.find(:"ipv4addr~" => ip_fragment)
|
28
|
+
end
|
29
|
+
|
19
30
|
##
|
20
31
|
# hostname : string
|
21
32
|
# ip : ipv4 string, i.e. "10.40.20.3"
|
data/lib/infoblox/host.rb
CHANGED
@@ -5,9 +5,18 @@ module Infoblox
|
|
5
5
|
|
6
6
|
wapi_object "record:host"
|
7
7
|
|
8
|
+
def ipv4addrs=(attrs=[])
|
9
|
+
attrs.each do |att|
|
10
|
+
ipv4addrs << Ipv4addr.new(att)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
8
14
|
def add_ipv4addr(address)
|
15
|
+
ipv4addrs << Ipv4addr.new(:ipv4addr => address)
|
16
|
+
end
|
17
|
+
|
18
|
+
def ipv4addrs
|
9
19
|
@ipv4addrs ||= []
|
10
|
-
@ipv4addrs << {:ipv4addr => address}
|
11
20
|
end
|
12
21
|
end
|
13
22
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Infoblox
|
2
|
+
class Network < Resource
|
3
|
+
remote_attr_accessor :network
|
4
|
+
attr_accessor :network_view
|
5
|
+
|
6
|
+
wapi_object "network"
|
7
|
+
|
8
|
+
def next_available_ip(num=1)
|
9
|
+
JSON.parse(connection.post(resource_uri + "?_function=next_available_ip&num=#{num}", {}).body)["ips"]
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
data/lib/infoblox/resource.rb
CHANGED
@@ -56,12 +56,14 @@ module Infoblox
|
|
56
56
|
connection.delete(resource_uri).status == 200
|
57
57
|
end
|
58
58
|
|
59
|
+
def get
|
60
|
+
connection.get(resource_uri)
|
61
|
+
end
|
62
|
+
|
59
63
|
def resource_uri
|
60
64
|
self._ref.nil? ? self.class.resource_uri : (BASE_PATH + self._ref)
|
61
65
|
end
|
62
66
|
|
63
|
-
private
|
64
|
-
|
65
67
|
def remote_attribute_hash
|
66
68
|
{}.tap do |hsh|
|
67
69
|
self.class.remote_attrs.each do |k|
|
@@ -70,6 +72,8 @@ module Infoblox
|
|
70
72
|
end
|
71
73
|
end
|
72
74
|
|
75
|
+
private
|
76
|
+
|
73
77
|
def connection
|
74
78
|
self.class.connection
|
75
79
|
end
|
data/lib/infoblox/version.rb
CHANGED
data/spec/host_spec.rb
CHANGED
@@ -4,7 +4,8 @@ describe Infoblox::Host, "#add_ipv4addr" do
|
|
4
4
|
host = Infoblox::Host.new
|
5
5
|
host.add_ipv4addr("10.10.10.10")
|
6
6
|
host.add_ipv4addr("10.10.10.12")
|
7
|
-
host.ipv4addrs.should
|
7
|
+
host.ipv4addrs[0].should be_a(Infoblox::Ipv4addr)
|
8
|
+
host.ipv4addrs[0].ipv4addr.should eq("10.10.10.10")
|
8
9
|
end
|
9
10
|
end
|
10
11
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: infoblox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -127,6 +127,8 @@ files:
|
|
127
127
|
- lib/infoblox/client.rb
|
128
128
|
- lib/infoblox/connection.rb
|
129
129
|
- lib/infoblox/host.rb
|
130
|
+
- lib/infoblox/ipv4addr.rb
|
131
|
+
- lib/infoblox/network.rb
|
130
132
|
- lib/infoblox/resource.rb
|
131
133
|
- lib/infoblox/version.rb
|
132
134
|
- spec/host_spec.rb
|