infoblox 0.2.1 → 0.2.2
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/lib/infoblox/connection.rb +24 -3
- data/lib/infoblox/version.rb +1 -1
- data/spec/connection_spec.rb +27 -0
- metadata +10 -3
data/lib/infoblox/connection.rb
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
module Infoblox
|
2
2
|
class Connection
|
3
|
-
attr_accessor :
|
3
|
+
attr_accessor :adapter,
|
4
|
+
:adapter_block,
|
5
|
+
:connection,
|
6
|
+
:host,
|
7
|
+
:logger,
|
8
|
+
:password,
|
9
|
+
:ssl_opts,
|
10
|
+
:username
|
4
11
|
|
5
12
|
def get(href, params={})
|
6
13
|
wrap do
|
@@ -43,11 +50,25 @@ module Infoblox
|
|
43
50
|
def connection
|
44
51
|
@connection ||= Faraday.new(:url => self.host, :ssl => {:verify => false}) do |faraday|
|
45
52
|
faraday.use Faraday::Response::Logger, logger if logger
|
46
|
-
|
47
53
|
faraday.request :json
|
48
54
|
faraday.basic_auth(self.username, self.password)
|
49
|
-
faraday.adapter
|
55
|
+
faraday.adapter(self.adapter, &self.adapter_block)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
##
|
60
|
+
# The host variable is expected to be a protocol with a host name.
|
61
|
+
# If the host has no protocol, https:// is added before it.
|
62
|
+
#
|
63
|
+
def host=(new_host)
|
64
|
+
unless new_host =~ /^http(s)?:\/\//
|
65
|
+
new_host = "https://#{new_host}"
|
50
66
|
end
|
67
|
+
@host = new_host
|
68
|
+
end
|
69
|
+
|
70
|
+
def adapter
|
71
|
+
@adapter ||= :net_http
|
51
72
|
end
|
52
73
|
|
53
74
|
private
|
data/lib/infoblox/version.rb
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
describe Infoblox::Connection do
|
3
|
+
|
4
|
+
["localhost", "127.0.0.1", "http://localhost:3000", "https://localhost", "http://localhost:3000/"].each do |host|
|
5
|
+
it "should build URL without failure" do
|
6
|
+
conn_params = {
|
7
|
+
username: "billy",
|
8
|
+
password: "boi",
|
9
|
+
host: host
|
10
|
+
}
|
11
|
+
uri = "/wapi/v1.0/record:host"
|
12
|
+
|
13
|
+
ic = Infoblox::Connection.new(conn_params)
|
14
|
+
ic.adapter = :test
|
15
|
+
ic.adapter_block = stub_get(uri)
|
16
|
+
|
17
|
+
# execute the request. There should be no "URI::BadURIError: both URI are relative" error
|
18
|
+
ic.get(uri)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def stub_get(uri)
|
23
|
+
Proc.new do |stub|
|
24
|
+
stub.get(uri) { [ 200, {}, 'Yay!'] }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
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.2.
|
4
|
+
version: 0.2.2
|
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:
|
12
|
+
date: 2014-01-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/infoblox/resource/network_container.rb
|
133
133
|
- lib/infoblox/resource/ptr.rb
|
134
134
|
- lib/infoblox/version.rb
|
135
|
+
- spec/connection_spec.rb
|
135
136
|
- spec/host_spec.rb
|
136
137
|
- spec/resource_spec.rb
|
137
138
|
- spec/spec_helper.rb
|
@@ -148,12 +149,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
149
|
- - ! '>='
|
149
150
|
- !ruby/object:Gem::Version
|
150
151
|
version: '0'
|
152
|
+
segments:
|
153
|
+
- 0
|
154
|
+
hash: 4416688330478250235
|
151
155
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
156
|
none: false
|
153
157
|
requirements:
|
154
158
|
- - ! '>='
|
155
159
|
- !ruby/object:Gem::Version
|
156
160
|
version: '0'
|
161
|
+
segments:
|
162
|
+
- 0
|
163
|
+
hash: 4416688330478250235
|
157
164
|
requirements: []
|
158
165
|
rubyforge_project:
|
159
166
|
rubygems_version: 1.8.25
|
@@ -162,7 +169,7 @@ specification_version: 3
|
|
162
169
|
summary: This gem is a Ruby interface to the Infoblox WAPI. Resources supported for
|
163
170
|
REST operations include CNAME, Host, HostIpv4addr, Ipv4addr, Network, and NewtorkContainer.
|
164
171
|
test_files:
|
172
|
+
- spec/connection_spec.rb
|
165
173
|
- spec/host_spec.rb
|
166
174
|
- spec/resource_spec.rb
|
167
175
|
- spec/spec_helper.rb
|
168
|
-
has_rdoc:
|