softlayer 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/lib/softlayer/client.rb +3 -10
- data/lib/softlayer/model/filter.rb +16 -0
- data/lib/softlayer/model/limit.rb +19 -0
- data/lib/softlayer/model/mask.rb +18 -0
- data/lib/softlayer/model/operations.rb +44 -0
- data/lib/softlayer/model.rb +33 -15
- data/lib/softlayer/network/bandwidth/version1.rb +1 -1
- data/lib/softlayer/network/bandwidth.rb +1 -1
- data/lib/softlayer/version.rb +1 -1
- data/lib/softlayer.rb +4 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a16ca70dcbda31e591758d296bbaf4f7d21a0cb
|
4
|
+
data.tar.gz: 2aa960fbd9fb2794cfed46fadac95dc2ef52a509
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f8db194bb0b5c0478f7f92b37e28a04e3dbab6fce200817b1b43d9a8b117c7433d3edae495592dac724c95fac9d942386dba7bebcd6e66f10ab640d9b5ce6c64
|
7
|
+
data.tar.gz: 0d6b13032ba198aa15010c4e95c62d77602f25056e37986e3716c0a05b47a4538b1ecd0f2ea76c5b8833f240b6d2ca11897364650c18940220d7ce17c4f37d66
|
data/README.md
CHANGED
@@ -41,11 +41,11 @@ Softlayer::Account.get_virtual_guests
|
|
41
41
|
|
42
42
|
## README Driven Development
|
43
43
|
|
44
|
-
*
|
45
|
-
* Add support for Object Filters
|
44
|
+
* Improve support for masks and filters (parse a better format instead of using ruby hash)
|
46
45
|
|
47
46
|
## Known Issues
|
48
47
|
|
48
|
+
* Mask and Filter not working correctly with `SoftLayer_Account` calls
|
49
49
|
* Using Savon master until a version is released containing the commit to support rpc/encoded XML
|
50
50
|
* Actually arrays are being wrongly mapped, so when we pass an argument containing **one** array, we need to pass inside another array, like this:
|
51
51
|
|
data/lib/softlayer/client.rb
CHANGED
@@ -1,15 +1,6 @@
|
|
1
1
|
module Softlayer
|
2
2
|
class Client < Savon::Client
|
3
|
-
class << self
|
4
|
-
def call(method, message = {})
|
5
|
-
safe do
|
6
|
-
resp = super method, message: message
|
7
|
-
resp.to_hash["#{method}_response".to_sym]["#{method}_return".to_sym]
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
3
|
|
12
|
-
# Create a new client.
|
13
4
|
def initialize(service)
|
14
5
|
@service = service
|
15
6
|
super client_params
|
@@ -48,7 +39,9 @@ module Softlayer
|
|
48
39
|
end
|
49
40
|
|
50
41
|
def client_params
|
51
|
-
|
42
|
+
# Use the already downloaded wsdl files, this speeds up A LOT!
|
43
|
+
wsdl_file = File.join(File.dirname(Softlayer.root), 'data', @service.sub('SoftLayer_', '') + '.wsdl')
|
44
|
+
{ wsdl: wsdl_file }.tap do |params|
|
52
45
|
params[:open_timeout] = Softlayer.configuration.open_timeout if Softlayer.configuration.open_timeout
|
53
46
|
params[:read_timeout] = Softlayer.configuration.read_timeout if Softlayer.configuration.read_timeout
|
54
47
|
params[:soap_header] = auth_params
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Softlayer
|
2
|
+
class Model
|
3
|
+
class Limit
|
4
|
+
def initialize(limit, offset = 0)
|
5
|
+
@limit = limit
|
6
|
+
@offset = offset
|
7
|
+
end
|
8
|
+
|
9
|
+
def to_header
|
10
|
+
{
|
11
|
+
'resultLimit' => {
|
12
|
+
'limit' => @limit,
|
13
|
+
'offset' => @offset
|
14
|
+
}
|
15
|
+
}
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Softlayer
|
2
|
+
class Model
|
3
|
+
class Mask
|
4
|
+
def initialize(service_name, mask)
|
5
|
+
@service_name = service_name
|
6
|
+
@mask = mask
|
7
|
+
end
|
8
|
+
|
9
|
+
def to_header
|
10
|
+
{
|
11
|
+
"#{@service_name}ObjectMask" => {
|
12
|
+
'mask' => @mask
|
13
|
+
}
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Softlayer
|
2
|
+
class Model
|
3
|
+
module Operations
|
4
|
+
def self.included(base)
|
5
|
+
base.send(:attr_accessor, :headers)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.extended(klass)
|
9
|
+
klass.define_singleton_method("headers=") { |headers| @headers = headers }
|
10
|
+
klass.define_singleton_method("headers") { @headers }
|
11
|
+
end
|
12
|
+
|
13
|
+
def filter(filter)
|
14
|
+
@filter = Filter.new(service_name, filter) if filter.is_a? Hash
|
15
|
+
@filter = filter if filter.is_a? Filter
|
16
|
+
self
|
17
|
+
end
|
18
|
+
|
19
|
+
def limit(limit, offset = 0)
|
20
|
+
@limit = Limit.new(limit, offset)
|
21
|
+
self
|
22
|
+
end
|
23
|
+
|
24
|
+
def mask(mask)
|
25
|
+
@mask = Mask.new(service_name, mask) if mask.is_a? Hash
|
26
|
+
@mask = mask if mask.is_a? Mask
|
27
|
+
self
|
28
|
+
end
|
29
|
+
|
30
|
+
def request_headers
|
31
|
+
headers = {}
|
32
|
+
headers.merge!(@headers) if @headers
|
33
|
+
@headers = nil
|
34
|
+
%w(filter limit mask).each do |header|
|
35
|
+
if instance_variable_get("@#{header}")
|
36
|
+
headers.merge!(instance_variable_get("@#{header}").to_header)
|
37
|
+
instance_variable_set("@#{header}", nil)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
headers
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/lib/softlayer/model.rb
CHANGED
@@ -2,7 +2,14 @@ require 'softlayer/generator/converter'
|
|
2
2
|
|
3
3
|
module Softlayer #:nodoc:
|
4
4
|
class Model
|
5
|
-
autoload :
|
5
|
+
autoload :Filter, 'softlayer/model/filter'
|
6
|
+
autoload :Limit, 'softlayer/model/limit'
|
7
|
+
autoload :Mask, 'softlayer/model/mask'
|
8
|
+
autoload :Operations, 'softlayer/model/operations'
|
9
|
+
autoload :Response, 'softlayer/model/response'
|
10
|
+
|
11
|
+
include Operations
|
12
|
+
extend Operations
|
6
13
|
|
7
14
|
class << self
|
8
15
|
# user friendly methods
|
@@ -10,6 +17,7 @@ module Softlayer #:nodoc:
|
|
10
17
|
object = self.new.tap do |obj|
|
11
18
|
obj.id = id.to_s
|
12
19
|
end
|
20
|
+
object.headers = request_headers
|
13
21
|
object.get_object
|
14
22
|
end
|
15
23
|
|
@@ -20,20 +28,27 @@ module Softlayer #:nodoc:
|
|
20
28
|
def all
|
21
29
|
request = all_request_for(self)
|
22
30
|
return nil if request.nil?
|
31
|
+
Softlayer::Account.headers = request_headers
|
23
32
|
Softlayer::Account.send(request)
|
24
33
|
end
|
25
34
|
|
26
|
-
def request(method, return_object, message = {})
|
27
|
-
|
28
|
-
|
29
|
-
return Softlayer::Mock.request(service_name, method, return_object, message) if Softlayer.mock?
|
30
|
-
parse(Softlayer::Client.new(service_name).call(method, message), return_object, method)
|
35
|
+
def request(method, return_object, message = {}, headers = {})
|
36
|
+
headers.merge! request_headers
|
37
|
+
|
38
|
+
return Softlayer::Mock.request(service_name, method, return_object, message, headers) if Softlayer.mock?
|
39
|
+
parse(Softlayer::Client.new(service_name).call(method, message, headers), return_object, method)
|
31
40
|
end
|
32
41
|
|
33
42
|
def parse(hash, return_object, method)
|
34
43
|
Response.new(hash).process(return_object)
|
35
44
|
end
|
36
45
|
|
46
|
+
def service_name
|
47
|
+
name = Generator::Converter.to_softlayer_name(self.to_s)
|
48
|
+
name = self::SERVICE if defined?(self::SERVICE)
|
49
|
+
name
|
50
|
+
end
|
51
|
+
|
37
52
|
def all_request_for(klass)
|
38
53
|
klass = klass.to_s
|
39
54
|
requests = {
|
@@ -105,19 +120,22 @@ module Softlayer #:nodoc:
|
|
105
120
|
end
|
106
121
|
|
107
122
|
def request(method, return_object, message = {})
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
"#{service_name}InitParameters" => {
|
112
|
-
"id" => self.id.to_i
|
113
|
-
}
|
114
|
-
}
|
115
|
-
return Softlayer::Mock.request(service_name, method, return_object, message, init_headers) if Softlayer.mock?
|
116
|
-
self.class.parse(Softlayer::Client.new(service_name).call(method, message, init_headers), return_object, method)
|
123
|
+
headers = request_headers.merge(init_headers)
|
124
|
+
|
125
|
+
self.class.request(method, return_object, message, headers)
|
117
126
|
end
|
118
127
|
|
119
128
|
def to_hash
|
120
129
|
(self.class.to_s+"::Representer").constantize.new(self).to_hash
|
121
130
|
end
|
131
|
+
|
132
|
+
def init_headers
|
133
|
+
raise Exception.new('You need to set the ID on object') if id.nil?
|
134
|
+
{
|
135
|
+
"#{self.class.service_name}InitParameters" => {
|
136
|
+
"id" => self.id.to_i
|
137
|
+
}
|
138
|
+
}
|
139
|
+
end
|
122
140
|
end
|
123
141
|
end
|
data/lib/softlayer/version.rb
CHANGED
data/lib/softlayer.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: softlayer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Celso Fernandes
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -1434,6 +1434,10 @@ files:
|
|
1434
1434
|
- lib/softlayer/mock/ticket.rb
|
1435
1435
|
- lib/softlayer/mock/virtual/guest.rb
|
1436
1436
|
- lib/softlayer/model.rb
|
1437
|
+
- lib/softlayer/model/filter.rb
|
1438
|
+
- lib/softlayer/model/limit.rb
|
1439
|
+
- lib/softlayer/model/mask.rb
|
1440
|
+
- lib/softlayer/model/operations.rb
|
1437
1441
|
- lib/softlayer/model/response.rb
|
1438
1442
|
- lib/softlayer/monitoring.rb
|
1439
1443
|
- lib/softlayer/monitoring/agent.rb
|