fog-arubacloud 0.0.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 +7 -0
- data/.codeclimate.yml +26 -0
- data/.gitignore +15 -0
- data/.rubocop.yml +1168 -0
- data/.ruby-version +1 -0
- data/.travis.yml +18 -0
- data/CONTRIBUTING.md +28 -0
- data/CONTRIBUTORS.md +2 -0
- data/Gemfile +6 -0
- data/LICENSE.md +20 -0
- data/README.md +36 -0
- data/Rakefile +24 -0
- data/fog-arubacloud.gemspec +31 -0
- data/gemfiles/fog-arubacloud-0.0.1.gem +0 -0
- data/gemfiles/fog-arubacloud-0.0.2.gem +0 -0
- data/lib/fog/arubacloud.rb +31 -0
- data/lib/fog/arubacloud/compute.rb +96 -0
- data/lib/fog/arubacloud/error.rb +84 -0
- data/lib/fog/arubacloud/examples/create_pro_server.rb +53 -0
- data/lib/fog/arubacloud/examples/create_smart_server.rb +39 -0
- data/lib/fog/arubacloud/examples/get_objects.rb +44 -0
- data/lib/fog/arubacloud/examples/get_servers.rb +31 -0
- data/lib/fog/arubacloud/examples/vm_operations.rb +60 -0
- data/lib/fog/arubacloud/models/compute/disk.rb +47 -0
- data/lib/fog/arubacloud/models/compute/disks.rb +31 -0
- data/lib/fog/arubacloud/models/compute/ip.rb +45 -0
- data/lib/fog/arubacloud/models/compute/ips.rb +50 -0
- data/lib/fog/arubacloud/models/compute/network_adapter.rb +26 -0
- data/lib/fog/arubacloud/models/compute/network_adapters.rb +20 -0
- data/lib/fog/arubacloud/models/compute/server.rb +185 -0
- data/lib/fog/arubacloud/models/compute/servers.rb +43 -0
- data/lib/fog/arubacloud/models/compute/template.rb +33 -0
- data/lib/fog/arubacloud/models/compute/templates.rb +67 -0
- data/lib/fog/arubacloud/requests/compute/create_vm_pro.rb +88 -0
- data/lib/fog/arubacloud/requests/compute/create_vm_smart.rb +74 -0
- data/lib/fog/arubacloud/requests/compute/delete_vm.rb +50 -0
- data/lib/fog/arubacloud/requests/compute/get_hypervisors.rb +49 -0
- data/lib/fog/arubacloud/requests/compute/get_purchased_ip_addresses.rb +79 -0
- data/lib/fog/arubacloud/requests/compute/get_server_details.rb +51 -0
- data/lib/fog/arubacloud/requests/compute/get_servers.rb +86 -0
- data/lib/fog/arubacloud/requests/compute/power_off_vm.rb +51 -0
- data/lib/fog/arubacloud/requests/compute/power_on_vm.rb +49 -0
- data/lib/fog/arubacloud/requests/compute/purchase_ip.rb +62 -0
- data/lib/fog/arubacloud/requests/compute/reinitialize_vm.rb +56 -0
- data/lib/fog/arubacloud/requests/compute/remove_ip.rb +53 -0
- data/lib/fog/arubacloud/service.rb +54 -0
- data/lib/fog/arubacloud/version.rb +12 -0
- data/spec/fog/arubacloud/config_spec.rb +0 -0
- data/spec/fog/compute/arubacloud/server_spec.rb +26 -0
- data/spec/fog/compute/arubacloud/servers_spec.rb +11 -0
- data/spec/fog/compute/arubacloud_spec.rb +32 -0
- data/spec/model_setup.rb +16 -0
- data/spec/spec_helper.rb +6 -0
- data/tests/test_helper.rb +8 -0
- metadata +217 -0
@@ -0,0 +1,43 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/core/collection'
|
9
|
+
require 'fog/arubacloud/models/compute/server'
|
10
|
+
|
11
|
+
|
12
|
+
module Fog
|
13
|
+
module Compute
|
14
|
+
class ArubaCloud
|
15
|
+
class Servers < Fog::Collection
|
16
|
+
model Fog::Compute::ArubaCloud::Server
|
17
|
+
|
18
|
+
# Returns list of servers
|
19
|
+
# @return [Fog::Compute::ArubaCloud::Servers] Retrieves a list servers.
|
20
|
+
# @raise [Fog::Compute::ArubaCloud::NotFound]
|
21
|
+
# @note The filter parameter on the method is just to maintain compatibility with other providers that support
|
22
|
+
# filtering.
|
23
|
+
def all(filters = [])
|
24
|
+
data = service.get_servers
|
25
|
+
objects = data['Value']
|
26
|
+
load(objects)
|
27
|
+
end
|
28
|
+
|
29
|
+
# Retrieves server
|
30
|
+
# @param [String] server_id for server to be returned.
|
31
|
+
# @return [Fog::Compute::ArubaCloud::Server]
|
32
|
+
def get(server_id)
|
33
|
+
data = service.get_server_details(server_id)
|
34
|
+
objects = data['Value']
|
35
|
+
msg = "Fog::Compute::ArubaCloud::Servers.get 'objects' must be an hash, actually is: #{objects.class} #{objects.to_yaml}"
|
36
|
+
Fog::Logger.debug(msg)
|
37
|
+
raise Fog::ArubaCloud::Errors::BadObjectType.new("#{msg}") unless objects.instance_of? Hash
|
38
|
+
new(objects)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/core/model'
|
9
|
+
|
10
|
+
module Fog
|
11
|
+
module Compute
|
12
|
+
class ArubaCloud
|
13
|
+
|
14
|
+
class Template < Fog::Model
|
15
|
+
identity :id, :aliases => 'Id'
|
16
|
+
|
17
|
+
attribute :name, :aliases => 'Name'
|
18
|
+
attribute :description, :aliases => 'Description'
|
19
|
+
attribute :enabled, :aliases => 'Enabled'
|
20
|
+
attribute :export_enabled, :aliases => 'ExportEnabled'
|
21
|
+
attribute :identification_code, :aliases => 'IdentificationCode'
|
22
|
+
attribute :product_id, :aliases => 'ProductId'
|
23
|
+
attribute :hypervisor
|
24
|
+
|
25
|
+
ignore_attributes :ApplianceType, :ArchitectureType, :CompanyID, :CompatiblePreConfiguredPackages,
|
26
|
+
:FeatureTypes, :Icon, :OwnerUserId, :ParentTemplateID, :OSFamily, :OSVersion, :ResourceBounds,
|
27
|
+
:Revision, :TemplateExtendedDescription, :TemplateOwnershipType, :TemplatePassword,
|
28
|
+
:TemplateSellingStatus, :TemplateType, :TemplateUsername, :ToolsAvailable
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/core/collection'
|
9
|
+
require 'fog/arubacloud/models/compute/template'
|
10
|
+
|
11
|
+
|
12
|
+
module Fog
|
13
|
+
module Compute
|
14
|
+
class ArubaCloud
|
15
|
+
class Templates < Fog::Collection
|
16
|
+
model Fog::Compute::ArubaCloud::Template
|
17
|
+
|
18
|
+
# Returns list of Template
|
19
|
+
# @return [Fog::Compute::ArubaCloud::Template] Retrieves the complete Templates list.
|
20
|
+
# @raise [Fog::Compute::ArubaCloud::NotFound]
|
21
|
+
def all
|
22
|
+
data = service.get_hypervisors
|
23
|
+
objects = data['Value']
|
24
|
+
manipulated_objects = Array.new
|
25
|
+
objects.each do |h|
|
26
|
+
hv_type = h['HypervisorType']
|
27
|
+
h['Templates'].each do |t|
|
28
|
+
t.merge!({'hypervisor' => hv_type})
|
29
|
+
manipulated_objects << t
|
30
|
+
end
|
31
|
+
end
|
32
|
+
load(manipulated_objects)
|
33
|
+
end
|
34
|
+
|
35
|
+
# Return only templates assigned to a specific service, default is smart (4)
|
36
|
+
# @param hv [Int] The ID of the hypervisor
|
37
|
+
# @return [Fog::Compute::ArubaCloud::Template] List of templates
|
38
|
+
# @raise [Fog::Compute::ArubaCloud::NotFound]
|
39
|
+
def get_hypervisor(hv=4)
|
40
|
+
manipulated_objects = Array.new
|
41
|
+
data = service.get_hypervisors
|
42
|
+
objects = data['Value']
|
43
|
+
objects.each do |h|
|
44
|
+
hv_type = h['HypervisorType']
|
45
|
+
h['Templates'].each do |t|
|
46
|
+
# select{|f| f['HypervisorType'].eql?(hv)}
|
47
|
+
t.merge!({'hypervisor' => hv_type})
|
48
|
+
if t['hypervisor'].eql?(4)
|
49
|
+
Fog::Logger.debug("Fog::Compute::ArubaCloud::Templates.get_hypervisors: t: #{h.to_yaml}")
|
50
|
+
manipulated_objects << t
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
load(manipulated_objects)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Retrieves Single Template Item
|
58
|
+
# @param [String] template_id for server to be returned.
|
59
|
+
# @return [Fog::Compute::ArubaCloud::Template]
|
60
|
+
def get(template_id)
|
61
|
+
# TODO: Implement retrieve of a single template
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/arubacloud/service'
|
9
|
+
require 'benchmark'
|
10
|
+
|
11
|
+
module Fog
|
12
|
+
module Compute
|
13
|
+
class ArubaCloud
|
14
|
+
class Real
|
15
|
+
# Create a new VM: Pro.
|
16
|
+
# @param [String] name name of the server
|
17
|
+
# @param [String] admin_password server administrative password
|
18
|
+
# @param [Int] cpu amount of vcpu
|
19
|
+
# @param [Int] ram amount of ram in GB
|
20
|
+
# @param [String] template_id id of template to use
|
21
|
+
# @param [String] ipv4_id if present, the ID of the ip resource to associate
|
22
|
+
# @param [String] note Metadata for VM
|
23
|
+
# @return [Excon::Response]
|
24
|
+
def create_vm_pro(data)
|
25
|
+
body = self.body('SetEnqueueServerCreation').merge(
|
26
|
+
{
|
27
|
+
:Server => {
|
28
|
+
:AdministratorPassword => data[:admin_passwd],
|
29
|
+
:CPUQuantity => data[:cpu],
|
30
|
+
:Name => data[:name],
|
31
|
+
:NetworkAdaptersConfiguration => [],
|
32
|
+
:Note => 'Created by Fog Cloud.',
|
33
|
+
:OSTemplateId => data[:template_id],
|
34
|
+
:RAMQuantity => data[:memory],
|
35
|
+
:VirtualDisks => []
|
36
|
+
}
|
37
|
+
}
|
38
|
+
)
|
39
|
+
unless data[:ipv4_id].nil?
|
40
|
+
body[:Server][:NetworkAdaptersConfiguration] << {
|
41
|
+
:NetworkAdapterType => 0,
|
42
|
+
:PublicIpAddresses => [{
|
43
|
+
:PrimaryIPAddress => 'true',
|
44
|
+
:PublicIpAddressResourceId => data[:ipv4_id]
|
45
|
+
}]
|
46
|
+
}
|
47
|
+
end
|
48
|
+
unless data[:disks].nil? && data[:disks].instance_of?(Array)
|
49
|
+
data[:disks].each { |d| body[:Server][:VirtualDisks] << d}
|
50
|
+
end
|
51
|
+
|
52
|
+
options = {
|
53
|
+
:http_method => :post,
|
54
|
+
:method => 'SetEnqueueServerCreation',
|
55
|
+
:body => Fog::JSON.encode(body)
|
56
|
+
}
|
57
|
+
|
58
|
+
response = nil
|
59
|
+
time = Benchmark.realtime {
|
60
|
+
response = request(options)
|
61
|
+
}
|
62
|
+
Fog::Logger.debug("SetEnqueueServerCreation time: #{time}")
|
63
|
+
if response['Success']
|
64
|
+
response
|
65
|
+
else
|
66
|
+
raise Fog::ArubaCloud::Errors::RequestError.new("Error during the VM creation. Object: \n#{body}\nError: \n#{response}")
|
67
|
+
end
|
68
|
+
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
class Mock
|
73
|
+
def create_vm_pro(data)
|
74
|
+
response = Excon::Response.new
|
75
|
+
response.status = 201
|
76
|
+
response.body = {
|
77
|
+
'ExceptionInfo' => nil,
|
78
|
+
'ResultCode' => 0,
|
79
|
+
'ResultMessage' => nil,
|
80
|
+
'Success' => true
|
81
|
+
}
|
82
|
+
response.body
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
end # ArubaCloud
|
87
|
+
end # Compute
|
88
|
+
end # Fog
|
@@ -0,0 +1,74 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/arubacloud/service'
|
9
|
+
|
10
|
+
module Fog
|
11
|
+
module Compute
|
12
|
+
class ArubaCloud
|
13
|
+
class Real
|
14
|
+
# Create a new VM: Smart.
|
15
|
+
# @param [String] name name of the server
|
16
|
+
# @param [String] admin_password server administrative password
|
17
|
+
# @param [String] template_id id of template to use
|
18
|
+
# @param [Int] size
|
19
|
+
# * 1 => small
|
20
|
+
# * 2 => medium
|
21
|
+
# * 3 => large
|
22
|
+
# * 4 => extra-large
|
23
|
+
# @param [String] note Metadata for VM
|
24
|
+
# @return [Excon::Response]
|
25
|
+
def create_vm_smart(data)
|
26
|
+
body = self.body('SetEnqueueServerCreation').merge(
|
27
|
+
{
|
28
|
+
:Server => {
|
29
|
+
:AdministratorPassword => data[:admin_passwd],
|
30
|
+
:Name => data[:name],
|
31
|
+
:SmartVMWarePackageID => data[:size] || 1,
|
32
|
+
:Note => data[:note] || 'Created by Fog Cloud.',
|
33
|
+
:OSTemplateId => data[:template_id]
|
34
|
+
}
|
35
|
+
}
|
36
|
+
)
|
37
|
+
|
38
|
+
options = {
|
39
|
+
:http_method => :post,
|
40
|
+
:method => 'SetEnqueueServerCreation',
|
41
|
+
:body => Fog::JSON.encode(body),
|
42
|
+
}
|
43
|
+
|
44
|
+
response = nil
|
45
|
+
time = Benchmark.realtime {
|
46
|
+
response = request(options)
|
47
|
+
}
|
48
|
+
Fog::Logger.debug("SetEnqueueServerCreation time: #{time}")
|
49
|
+
if response['Success']
|
50
|
+
response
|
51
|
+
else
|
52
|
+
raise Fog::ArubaCloud::Errors::RequestError.new("Error during the VM creation. Object: \n#{body}",
|
53
|
+
response=response)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
class Mock
|
59
|
+
def create_vm_smart(data)
|
60
|
+
response = Excon::Response.new
|
61
|
+
response.status = 201
|
62
|
+
response.body = {
|
63
|
+
'ExceptionInfo' => nil,
|
64
|
+
'ResultCode' => 0,
|
65
|
+
'ResultMessage' => nil,
|
66
|
+
'Success' => true
|
67
|
+
}
|
68
|
+
response.body
|
69
|
+
end # create_vm_smart
|
70
|
+
end # Mock
|
71
|
+
|
72
|
+
end # ArubaCloud
|
73
|
+
end # Compute
|
74
|
+
end # Fog
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
module Fog
|
9
|
+
module Compute
|
10
|
+
class ArubaCloud
|
11
|
+
|
12
|
+
class Real
|
13
|
+
def delete_vm(id)
|
14
|
+
body = self.body('SetEnqueueServerDeletion').merge({:ServerId => "#{id}"})
|
15
|
+
options = {
|
16
|
+
:http_method => :post,
|
17
|
+
:method => 'SetEnqueueServerDeletion',
|
18
|
+
:body => Fog::JSON.encode(body)
|
19
|
+
}
|
20
|
+
response = nil
|
21
|
+
time = Benchmark.realtime {
|
22
|
+
response = request(options)
|
23
|
+
}
|
24
|
+
Fog::Logger.debug("SetEnqueueServerDeletion time: #{time}")
|
25
|
+
if response['Success']
|
26
|
+
response
|
27
|
+
else
|
28
|
+
raise Fog::ArubaCloud::Errors::RequestError.new("Error Powering off the VM. Error: #{response}")
|
29
|
+
end
|
30
|
+
end # delete_vm
|
31
|
+
end # Real
|
32
|
+
|
33
|
+
class Mock
|
34
|
+
def delete_vm(id)
|
35
|
+
self.servers.select!{|s| s.id.eql?(id)}
|
36
|
+
response = Excon::Response.new
|
37
|
+
response.status = 200
|
38
|
+
response.body = {
|
39
|
+
'ExceptionInfo' => nil,
|
40
|
+
'ResultCode' => 0,
|
41
|
+
'ResultMessage' => nil,
|
42
|
+
'Success' => true
|
43
|
+
}
|
44
|
+
response.body
|
45
|
+
end # delete_vm
|
46
|
+
end # Mock
|
47
|
+
|
48
|
+
end # ArubaCloud
|
49
|
+
end # Compute
|
50
|
+
end # Fog
|
@@ -0,0 +1,49 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/arubacloud/service'
|
9
|
+
require 'fog/arubacloud/error'
|
10
|
+
require 'benchmark'
|
11
|
+
|
12
|
+
module Fog
|
13
|
+
module Compute
|
14
|
+
class ArubaCloud
|
15
|
+
class Real
|
16
|
+
def get_hypervisors
|
17
|
+
body = self.body('GetHypervisors')
|
18
|
+
options = {
|
19
|
+
:http_method => :post,
|
20
|
+
:method => 'GetHypervisors',
|
21
|
+
:body => Fog::JSON.encode(body)
|
22
|
+
}
|
23
|
+
response = nil
|
24
|
+
time = Benchmark.realtime {
|
25
|
+
response = request(options)
|
26
|
+
}
|
27
|
+
Fog::Logger.debug("GetHypervisors time: #{time}")
|
28
|
+
if response['Success']
|
29
|
+
response
|
30
|
+
else
|
31
|
+
raise Fog::ArubaCloud::Errors::RequestError.new('Error in request.')
|
32
|
+
end
|
33
|
+
end # get_hypervisors
|
34
|
+
end # Real
|
35
|
+
|
36
|
+
class Mock
|
37
|
+
# Due to the length of the response body, I actually decided to not implement
|
38
|
+
# the mock method of the request. I will introduce it in the next version after structuring the mock
|
39
|
+
# objects in a more reasonable way.
|
40
|
+
def get_hypervisors
|
41
|
+
raise Fog::Errors::MockNotImplemented.new(
|
42
|
+
'Mock object for get_hypervisor not present, read code comments for details.'
|
43
|
+
)
|
44
|
+
end # get_hypervisors
|
45
|
+
end # Mock
|
46
|
+
|
47
|
+
end # ArubaCloud
|
48
|
+
end # Compute
|
49
|
+
end # Fog
|
@@ -0,0 +1,79 @@
|
|
1
|
+
#
|
2
|
+
# Author:: Alessio Rocchi (<alessio.rocchi@staff.aruba.it>)
|
3
|
+
# © Copyright ArubaCloud.
|
4
|
+
#
|
5
|
+
# LICENSE: MIT (http://opensource.org/licenses/MIT)
|
6
|
+
#
|
7
|
+
|
8
|
+
require 'fog/arubacloud/service'
|
9
|
+
require 'fog/arubacloud/error'
|
10
|
+
require 'benchmark'
|
11
|
+
|
12
|
+
module Fog
|
13
|
+
module Compute
|
14
|
+
class ArubaCloud
|
15
|
+
|
16
|
+
# noinspection RubyResolve
|
17
|
+
class Real
|
18
|
+
def get_purchased_ip_addresses
|
19
|
+
body = self.body('GetPurchasedIpAddresses')
|
20
|
+
get_servers_options = {
|
21
|
+
:http_method => :post,
|
22
|
+
:method => 'GetPurchasedIpAddresses',
|
23
|
+
:body => Fog::JSON.encode(body)
|
24
|
+
}
|
25
|
+
response = nil
|
26
|
+
time = Benchmark.realtime {
|
27
|
+
response = request(get_servers_options)
|
28
|
+
}
|
29
|
+
Fog::Logger.debug("GetPurchasedIpAddresses time: #{time}")
|
30
|
+
if response['Success']
|
31
|
+
response
|
32
|
+
else
|
33
|
+
raise Fog::ArubaCloud::Error::RequestError
|
34
|
+
end
|
35
|
+
end # get_purchased_ip_addresses
|
36
|
+
end # Real
|
37
|
+
|
38
|
+
class Mock
|
39
|
+
def get_purchased_ip_addresses
|
40
|
+
response = Excon::Response.new
|
41
|
+
response.status = 200
|
42
|
+
response.body = {
|
43
|
+
'ExceptionInfo' => nil,
|
44
|
+
'ResultCode' => 0,
|
45
|
+
'ResultMessage' => nil,
|
46
|
+
'Success' => true,
|
47
|
+
'Value' => [
|
48
|
+
{
|
49
|
+
'CompanyId' => 1,
|
50
|
+
'ProductId' => 20,
|
51
|
+
'ResourceId' => 96052,
|
52
|
+
'ResourceType' => 6,
|
53
|
+
'UserId' => 1856,
|
54
|
+
'Gateway' => '5.249.158.1',
|
55
|
+
'LoadBalancerID' => nil,
|
56
|
+
'ServerId' => nil,
|
57
|
+
'SubNetMask' => '255.255.255.0',
|
58
|
+
'Value' => '5.249.158.66'
|
59
|
+
}, {
|
60
|
+
'CompanyId' => 1,
|
61
|
+
'ProductId' => 20,
|
62
|
+
'ResourceId' => 96054,
|
63
|
+
'ResourceType' => 6,
|
64
|
+
'UserId' => 1856,
|
65
|
+
'Gateway' => '5.249.158.1',
|
66
|
+
'LoadBalancerID' => nil,
|
67
|
+
'ServerId' => nil,
|
68
|
+
'SubNetMask' => '255.255.255.0',
|
69
|
+
'Value' => '5.249.158.102'
|
70
|
+
}
|
71
|
+
]
|
72
|
+
}
|
73
|
+
response.body
|
74
|
+
end # get_purchased_ip_addresses
|
75
|
+
end # Mock
|
76
|
+
|
77
|
+
end # ArubaCloud
|
78
|
+
end # Compute
|
79
|
+
end # Fog
|