ultrasoap 0.1.2 → 0.1.3
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 +4 -4
- data/README.md +41 -0
- data/lib/client.rb +48 -8
- data/ultrasoap-ruby.gemspec +2 -2
- metadata +4 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7d01f25bb8ce7753f612d44fa748e1d5fd75f955
|
4
|
+
data.tar.gz: f711d478f5ea642f86f83e7959960494d32e4765
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cb63cf681c0aa40fb5a48132646672545776e099fe911527c483ba74152ce527b3074f114776d7423dd0a463819efb92a4e85e4e5f4b69289b97ff2aa4655bd
|
7
|
+
data.tar.gz: 4b10f30d44b8a34ffd0922d0278b09d404e403afb29c00076ef86575f800cc725b744d374a6cffaca79edb5f4da99ae6bebe18d478998e3b23279f2a24c10e3b
|
data/README.md
CHANGED
@@ -91,3 +91,44 @@ probes_response.xpath("//ProbeData").each |probe|
|
|
91
91
|
...
|
92
92
|
end
|
93
93
|
```
|
94
|
+
|
95
|
+
There is also a rudimentary and experimental support for transactions.
|
96
|
+
Once you have instantiated the client, you can invoke the following methods:
|
97
|
+
|
98
|
+
```ruby
|
99
|
+
dl.start_transaction
|
100
|
+
|
101
|
+
dl.commit_transaction
|
102
|
+
|
103
|
+
dl.rollback_transaction
|
104
|
+
```
|
105
|
+
|
106
|
+
As soon as the transactions support will be thoroughly tested and will reach a stable status, I'll update the documentation with some example.
|
107
|
+
|
108
|
+
Wrapper functions
|
109
|
+
-----------------
|
110
|
+
|
111
|
+
Although is possible to call all functions via the generic *send_request* method, I've started to implement some builtin function, which wraps the API functions themselves and should facilitate their invoking.
|
112
|
+
|
113
|
+
These functions require less writing and can be used without having to pre-form a message hash. They just need a couple of parameters.
|
114
|
+
|
115
|
+
All functions return a Nokogiri::Nodeset, just like send_request.
|
116
|
+
|
117
|
+
The current version supports the following functions:
|
118
|
+
|
119
|
+
```ruby
|
120
|
+
# Enumerate all Load Balancing pools for the required zone
|
121
|
+
# Parameters:
|
122
|
+
# - zone => the name of the zone, *including* the trailing dot
|
123
|
+
# - pool_type => the type of the pool. Defaults to SB => SiteBacker . See the reference manual to learn more.
|
124
|
+
|
125
|
+
get_lb_pools(zone, pool_type='SB')
|
126
|
+
|
127
|
+
# Returns all the records for a certain load balancing pool
|
128
|
+
# Parameters:
|
129
|
+
# - pool_id => the ID of the pool
|
130
|
+
get_pool_records(pool_id)
|
131
|
+
|
132
|
+
```
|
133
|
+
|
134
|
+
More functions are on the way (lookup functions and other stuff).
|
data/lib/client.rb
CHANGED
@@ -7,6 +7,7 @@ module UltraSOAP
|
|
7
7
|
|
8
8
|
@logger
|
9
9
|
|
10
|
+
# Would like to find a better place for defaults, rather than here
|
10
11
|
@logdest = './ultrasoap.log'
|
11
12
|
@logging = false
|
12
13
|
@log_level = 'error'
|
@@ -54,12 +55,9 @@ module UltraSOAP
|
|
54
55
|
@logger = Logger.new(@logdest)
|
55
56
|
|
56
57
|
logging = Settings['logging'] || Client.logging
|
57
|
-
|
58
58
|
log_lev = Settings['log_level'] || Client.log_level
|
59
59
|
|
60
60
|
begin
|
61
|
-
# For some reason, if I use the instance variable, Savon.client doesn't work properly
|
62
|
-
|
63
61
|
@client = Savon.client do
|
64
62
|
wsdl ultra_wsdl
|
65
63
|
env_namespace 'soapenv'
|
@@ -92,6 +90,8 @@ module UltraSOAP
|
|
92
90
|
return Nokogiri::XML(@response.to_xml).remove_namespaces!
|
93
91
|
rescue Exception => e
|
94
92
|
@logger.error("Error in ultrasoap.send_request: " + e.message)
|
93
|
+
# Rollback current transaction, if any
|
94
|
+
transaction_rollback unless @transaction_id == nil
|
95
95
|
return nil
|
96
96
|
end
|
97
97
|
end
|
@@ -140,10 +140,10 @@ module UltraSOAP
|
|
140
140
|
# Helper method to retrieve load balancing pools data
|
141
141
|
# Parameters:
|
142
142
|
# - zone (don't forget the trailing dot)
|
143
|
-
def get_lb_pools(zone)
|
143
|
+
def get_lb_pools(zone, pool_type='SB')
|
144
144
|
message = {
|
145
145
|
:zone_name => zone,
|
146
|
-
:lb_pool_type =>
|
146
|
+
:lb_pool_type => pool_type
|
147
147
|
}
|
148
148
|
|
149
149
|
begin
|
@@ -157,7 +157,7 @@ module UltraSOAP
|
|
157
157
|
|
158
158
|
# Helper method to retrieve Pool's records
|
159
159
|
# Parameters:
|
160
|
-
# -
|
160
|
+
# - pool_id
|
161
161
|
def get_pool_records(pool_id)
|
162
162
|
message = {
|
163
163
|
:pool_id => pool_id.to_s
|
@@ -170,9 +170,49 @@ module UltraSOAP
|
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
173
|
+
# Returns a list of probes for the given pool record
|
174
|
+
# Parameters:
|
175
|
+
# - poolRecordID
|
176
|
+
# - SortBy, possible values are:
|
177
|
+
# PROBEID
|
178
|
+
# PROBEDATA
|
179
|
+
# PROBEFAILSPECS
|
180
|
+
# ACTIVE
|
181
|
+
# POOLID
|
182
|
+
# AGENTFAILSPECS
|
183
|
+
# PROBEWEIGHT
|
184
|
+
# BLEID
|
185
|
+
def get_probes_of_pool_record(pool_record_id, sort_by="PROBEDATA")
|
186
|
+
message = {
|
187
|
+
:pool_record_ID => pool_record_id.to_s,
|
188
|
+
:sort_by => sort_by
|
189
|
+
}
|
190
|
+
|
191
|
+
begin
|
192
|
+
return self.send_request :get_probes_of_pool_record, message
|
193
|
+
rescue Exception => e
|
194
|
+
@logger.error("Error while retrieving probes for pool record ID #{pool_record_id.to_s}: #{e.message}")
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
# Returns notifications for a pool
|
199
|
+
# Parameters:
|
200
|
+
# - poolID: string
|
201
|
+
def get_notifications_of_pool(pool_id)
|
202
|
+
message = {
|
203
|
+
:pool_id => pool_id
|
204
|
+
}
|
205
|
+
|
206
|
+
begin
|
207
|
+
return self.send_request :get_notifications_of_pool, message
|
208
|
+
rescue Exception => e
|
209
|
+
@logger.error("Error while retrieving notifications for pool ID #{pool_id}: #{e.message}")
|
210
|
+
end
|
211
|
+
end
|
212
|
+
|
173
213
|
# LOOKUP methods
|
174
214
|
|
175
|
-
def lookup_pool_type(pt_code)
|
215
|
+
def lookup_pool_type(pt_code='SB')
|
176
216
|
case pt_code.to_s
|
177
217
|
when 'SB'
|
178
218
|
'SiteBacker'
|
@@ -185,7 +225,7 @@ module UltraSOAP
|
|
185
225
|
end
|
186
226
|
end
|
187
227
|
|
188
|
-
def lookup_response_method(rm_code)
|
228
|
+
def lookup_response_method(rm_code='FX')
|
189
229
|
case rm_code.to_s
|
190
230
|
when 'FX'
|
191
231
|
'Fixed'
|
data/ultrasoap-ruby.gemspec
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'ultrasoap'
|
3
|
-
s.version = '0.1.
|
3
|
+
s.version = '0.1.3'
|
4
4
|
s.summary = "Simple Ruby client library for UltraDNS SOAP API"
|
5
|
-
s.description = "Connect to Neustar's UltraDNS SOAP API
|
5
|
+
s.description = "Connect to Neustar's UltraDNS SOAP API. FKA ultrasoap-ruby. Any feedback or contribution is appreciated."
|
6
6
|
s.authors = ["Gabriel Sambarino"]
|
7
7
|
s.email = 'gabriel.sambarino@gmail.com'
|
8
8
|
s.files = `git ls-files`.split("\n")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ultrasoap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gabriel Sambarino
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: savon
|
@@ -52,10 +52,8 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '2.10'
|
55
|
-
description:
|
56
|
-
|
57
|
-
FKA ultrasoap-ruby.
|
58
|
-
Any feedback or contribution is appreciated.
|
55
|
+
description: Connect to Neustar's UltraDNS SOAP API. FKA ultrasoap-ruby. Any feedback
|
56
|
+
or contribution is appreciated.
|
59
57
|
email: gabriel.sambarino@gmail.com
|
60
58
|
executables: []
|
61
59
|
extensions: []
|