softlayer 0.0.4 → 0.0.5
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 +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
|