fog-profitbricks 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/fog-profitbricks.gemspec +12 -11
  4. data/lib/fog/compute/profit_bricks.rb +217 -0
  5. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/datacenter.rb +0 -2
  6. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/datacenters.rb +1 -2
  7. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/flavor.rb +0 -6
  8. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/flavors.rb +1 -2
  9. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/image.rb +0 -6
  10. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/images.rb +1 -2
  11. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/interface.rb +0 -6
  12. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/interfaces.rb +1 -2
  13. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/region.rb +0 -6
  14. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/regions.rb +1 -2
  15. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/server.rb +0 -8
  16. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/servers.rb +1 -2
  17. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/volume.rb +0 -6
  18. data/lib/fog/{profitbricks/models/compute → compute/profit_bricks/models}/volumes.rb +1 -2
  19. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/clear_data_center.rb +0 -2
  20. data/lib/fog/compute/profit_bricks/requests/connect_storage_to_server.rb +83 -0
  21. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/create_data_center.rb +1 -3
  22. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/create_flavor.rb +2 -2
  23. data/lib/fog/compute/profit_bricks/requests/create_nic.rb +79 -0
  24. data/lib/fog/compute/profit_bricks/requests/create_server.rb +105 -0
  25. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/create_storage.rb +4 -6
  26. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/delete_data_center.rb +3 -5
  27. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/delete_nic.rb +3 -5
  28. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/delete_server.rb +2 -4
  29. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/delete_storage.rb +2 -4
  30. data/lib/fog/compute/profit_bricks/requests/disconnect_storage_from_server.rb +76 -0
  31. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_data_centers.rb +0 -1
  32. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_flavors.rb +0 -0
  33. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_images.rb +0 -2
  34. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_locations.rb +0 -0
  35. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_nic.rb +2 -4
  36. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_servers.rb +0 -1
  37. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_all_storages.rb +2 -4
  38. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_data_center.rb +0 -2
  39. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_data_center_state.rb +2 -3
  40. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_flavor.rb +0 -0
  41. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_image.rb +0 -2
  42. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_location.rb +0 -0
  43. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_nic.rb +0 -2
  44. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_server.rb +0 -2
  45. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/get_storage.rb +0 -2
  46. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/reset_server.rb +0 -2
  47. data/lib/fog/compute/profit_bricks/requests/set_internet_access.rb +59 -0
  48. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/start_server.rb +0 -1
  49. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/stop_server.rb +0 -1
  50. data/lib/fog/{profitbricks/requests/compute → compute/profit_bricks/requests}/update_data_center.rb +3 -4
  51. data/lib/fog/compute/profit_bricks/requests/update_nic.rb +74 -0
  52. data/lib/fog/compute/profit_bricks/requests/update_server.rb +79 -0
  53. data/lib/fog/compute/profit_bricks/requests/update_storage.rb +73 -0
  54. data/lib/fog/{profitbricks/models → models/profit_bricks}/base.rb +0 -0
  55. data/lib/fog/parsers/compute.rb +37 -0
  56. data/lib/fog/parsers/compute/profit_bricks/base.rb +51 -0
  57. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/clear_data_center.rb +1 -1
  58. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/connect_storage_to_server.rb +1 -1
  59. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/create_data_center.rb +1 -1
  60. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/create_nic.rb +1 -1
  61. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/create_server.rb +1 -1
  62. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/create_storage.rb +1 -1
  63. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/delete_data_center.rb +1 -1
  64. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/delete_nic.rb +1 -1
  65. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/delete_server.rb +1 -1
  66. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/delete_storage.rb +1 -1
  67. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/disconnect_storage_from_server.rb +1 -1
  68. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_all_data_centers.rb +1 -1
  69. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_all_images.rb +2 -2
  70. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_all_nic.rb +1 -1
  71. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_all_servers.rb +1 -1
  72. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_all_storages.rb +1 -1
  73. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_data_center.rb +1 -1
  74. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_data_center_state.rb +1 -1
  75. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_image.rb +1 -1
  76. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_nic.rb +1 -1
  77. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_server.rb +1 -1
  78. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/get_storage.rb +1 -1
  79. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/reset_server.rb +1 -1
  80. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/set_internet_access.rb +1 -1
  81. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/update_data_center.rb +1 -1
  82. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/update_nic.rb +1 -1
  83. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/update_server.rb +1 -1
  84. data/lib/fog/{profitbricks/parsers/compute → parsers/compute/profit_bricks}/update_storage.rb +1 -1
  85. data/lib/fog/profitbricks.rb +32 -4
  86. data/lib/fog/profitbricks/compute.rb +1 -215
  87. data/lib/fog/profitbricks/storage.rb +1 -0
  88. data/lib/fog/profitbricks/version.rb +1 -1
  89. metadata +107 -103
  90. data/lib/fog/profitbricks/core.rb +0 -18
  91. data/lib/fog/profitbricks/parsers/base.rb +0 -49
  92. data/lib/fog/profitbricks/requests/compute/connect_storage_to_server.rb +0 -85
  93. data/lib/fog/profitbricks/requests/compute/create_nic.rb +0 -81
  94. data/lib/fog/profitbricks/requests/compute/create_server.rb +0 -107
  95. data/lib/fog/profitbricks/requests/compute/disconnect_storage_from_server.rb +0 -78
  96. data/lib/fog/profitbricks/requests/compute/set_internet_access.rb +0 -61
  97. data/lib/fog/profitbricks/requests/compute/update_nic.rb +0 -76
  98. data/lib/fog/profitbricks/requests/compute/update_server.rb +0 -81
  99. data/lib/fog/profitbricks/requests/compute/update_storage.rb +0 -75
@@ -2,7 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_all_data_centers"
6
5
  def get_all_data_centers
7
6
  soap_envelope = Fog::ProfitBricks.construct_envelope do |xml|
8
7
  xml[:ws].getAllDataCenters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require 'fog/profitbricks/parsers/compute/get_all_images'
6
-
7
5
  # Displays a list of all available images.
8
6
  #
9
7
  # ==== Parameters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require 'fog/profitbricks/parsers/compute/get_all_nic'
6
-
7
5
  # Returns all virtual NICs
8
6
  #
9
7
  # ==== Parameters
@@ -36,8 +34,8 @@ module Fog
36
34
  :expects => [200],
37
35
  :method => 'POST',
38
36
  :body => soap_envelope.to_xml,
39
- :parser =>
40
- Fog::Parsers::Compute::ProfitBricks::GetAllNic.new
37
+ :parser =>
38
+ Fog::Parsers::Compute::ProfitBricks::GetAllNic.new
41
39
  )
42
40
  end
43
41
  end
@@ -2,7 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_all_servers"
6
5
  # Retrieve list of virtual servers
7
6
  #
8
7
  # ==== Parameters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require 'fog/profitbricks/parsers/compute/get_all_storages'
6
-
7
5
  # Returns all virtual storage information
8
6
  #
9
7
  # ==== Parameters
@@ -36,8 +34,8 @@ module Fog
36
34
  :expects => [200],
37
35
  :method => 'POST',
38
36
  :body => soap_envelope.to_xml,
39
- :parser =>
40
- Fog::Parsers::Compute::ProfitBricks::GetAllStorages.new
37
+ :parser =>
38
+ Fog::Parsers::Compute::ProfitBricks::GetAllStorages.new
41
39
  )
42
40
  end
43
41
  end
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_data_center"
6
-
7
5
  def get_data_center(data_center_id)
8
6
  soap_envelope = Fog::ProfitBricks.construct_envelope do |xml|
9
7
  xml[:ws].getDataCenter { xml.dataCenterId(data_center_id) }
@@ -2,7 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require 'fog/profitbricks/parsers/compute/get_data_center_state'
6
5
  def get_data_center_state(data_center_id)
7
6
  soap_envelope = Fog::ProfitBricks.construct_envelope {
8
7
  |xml| xml[:ws].getDataCenterState {
@@ -14,8 +13,8 @@ module Fog
14
13
  :expects => [200],
15
14
  :method => 'POST',
16
15
  :body => soap_envelope.to_xml,
17
- :parser =>
18
- Fog::Parsers::Compute::ProfitBricks::GetDataCenterState.new
16
+ :parser =>
17
+ Fog::Parsers::Compute::ProfitBricks::GetDataCenterState.new
19
18
  )
20
19
  end
21
20
  end
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_image"
6
-
7
5
  # Displays a list of all available images.
8
6
  #
9
7
  # ==== Parameters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_nic"
6
-
7
5
  # Return virtual NIC information
8
6
  #
9
7
  # ==== Parameters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_server"
6
-
7
5
  # Create new virtual server
8
6
  #
9
7
  # ==== Parameters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/get_storage"
6
-
7
5
  # Returns all virtual storage information
8
6
  #
9
7
  # ==== Parameters
@@ -2,8 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require "fog/profitbricks/parsers/compute/reset_server"
6
-
7
5
  # Reset specified virtual server
8
6
  #
9
7
  # ==== Parameters
@@ -0,0 +1,59 @@
1
+ module Fog
2
+ module Compute
3
+ class ProfitBricks
4
+ class Real
5
+ # Connect an existing NIC to a public LAN to get internet access
6
+ #
7
+ # ==== Parameters
8
+ # * dataCenterId<~String> -
9
+ # * lanId<~Integer> -
10
+ # * internetAccess<~Boolean> -
11
+ #
12
+ # ==== Returns
13
+ # * response<~Excon::Response>:
14
+ # * body<~Hash>:
15
+ # * setInternetAccessResponse<~Hash>:
16
+ # * requestId<~String> - ID of request
17
+ # * dataCenterId<~String> - UUID of virtual data center
18
+ # * dataCenterVersion<~Integer> - Version of the virtual data center
19
+ #
20
+ # {ProfitBricks API Documentation}[http://www.profitbricks.com/apidoc/SetInternetAccess.html]
21
+ def set_internet_access(data_center_id, lan_id, internet_access)
22
+ soap_envelope = Fog::ProfitBricks.construct_envelope {
23
+ |xml| xml[:ws].setInternetAccess {
24
+ xml.dataCenterId(data_center_id)
25
+ xml.lanId(lan_id)
26
+ xml.internetAccess(internet_access)
27
+ }
28
+ }
29
+
30
+ request(
31
+ :expects => [200],
32
+ :method => 'POST',
33
+ :body => soap_envelope.to_xml,
34
+ :parser =>
35
+ Fog::Parsers::Compute::ProfitBricks::SetInternetAccess.new
36
+ )
37
+ rescue Excon::Errors::InternalServerError => error
38
+ Fog::Errors::NotFound.new(error)
39
+ end
40
+ end
41
+
42
+ class Mock
43
+ def set_internet_access(data_center_id, lan_id, internet_access)
44
+ response = Excon::Response.new
45
+ response.status = 200
46
+ response.body = {
47
+ 'setInternetAccessResponse' =>
48
+ {
49
+ 'requestId' => Fog::Mock::random_numbers(7),
50
+ 'dataCenterId' => Fog::UUID.uuid,
51
+ 'dataCenterVersion' => 1
52
+ }
53
+ }
54
+ response
55
+ end
56
+ end
57
+ end
58
+ end
59
+ end
@@ -2,7 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
-
6
5
  # Start specified virtual server
7
6
  #
8
7
  # ==== Parameters
@@ -2,7 +2,6 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
-
6
5
  # Stop specified virtual server
7
6
  #
8
7
  # ==== Parameters
@@ -2,11 +2,10 @@ module Fog
2
2
  module Compute
3
3
  class ProfitBricks
4
4
  class Real
5
- require 'fog/profitbricks/parsers/compute/update_data_center'
6
5
  def update_data_center(data_center_id, options={})
7
6
  soap_envelope = Fog::ProfitBricks.construct_envelope {
8
7
  |xml| xml[:ws].updateDataCenter {
9
- xml.request {
8
+ xml.request {
10
9
  xml.dataCenterId(data_center_id)
11
10
  options.each { |key, value| xml.send(key, value) }
12
11
  }
@@ -17,8 +16,8 @@ module Fog
17
16
  :expects => [200],
18
17
  :method => 'POST',
19
18
  :body => soap_envelope.to_xml,
20
- :parser =>
21
- Fog::Parsers::Compute::ProfitBricks::UpdateDataCenter.new
19
+ :parser =>
20
+ Fog::Parsers::Compute::ProfitBricks::UpdateDataCenter.new
22
21
  )
23
22
  rescue Excon::Errors::InternalServerError => error
24
23
  Fog::Errors::NotFound.new(error)
@@ -0,0 +1,74 @@
1
+ module Fog
2
+ module Compute
3
+ class ProfitBricks
4
+ class Real
5
+ # Update a virtual NIC
6
+ #
7
+ # ==== Parameters
8
+ # * nicId<~String> - Required,
9
+ # * options<~Hash>:
10
+ # * lanId<~Integer> - Optional,
11
+ # * nicName<~String> - Optional, name of the new virtual network interface
12
+ # * ip<~String> - Optional,
13
+ # * dhcpActive<~Boolean> - Optional,
14
+ #
15
+ # ==== Returns
16
+ # * response<~Excon::Response>:
17
+ # * body<~Hash>:
18
+ # * updateNicResponse<~Hash>:
19
+ # * requestId<~String> - ID of request
20
+ # * dataCenterId<~String> - UUID of virtual data center
21
+ # * dataCenterVersion<~Integer> - Version of the virtual data center
22
+ #
23
+ # {ProfitBricks API Documentation}[http://www.profitbricks.com/apidoc/UpdateNIC.html]
24
+ def update_nic(nic_id, options={})
25
+ soap_envelope = Fog::ProfitBricks.construct_envelope {
26
+ |xml| xml[:ws].updateNic {
27
+ xml.request {
28
+ xml.nicId(nic_id)
29
+ options.each { |key, value| xml.send(key, value) }
30
+ }
31
+ }
32
+ }
33
+
34
+ request(
35
+ :expects => [200],
36
+ :method => 'POST',
37
+ :body => soap_envelope.to_xml,
38
+ :parser =>
39
+ Fog::Parsers::Compute::ProfitBricks::UpdateNic.new
40
+ )
41
+ rescue Excon::Errors::InternalServerError => error
42
+ Fog::Errors::NotFound.new(error)
43
+ end
44
+ end
45
+
46
+ class Mock
47
+ def update_nic(nic_id, options={})
48
+
49
+ if nic = self.data[:interfaces].find {
50
+ |attrib| attrib['nicId'] == nic_id
51
+ }
52
+ options.each do |key, value|
53
+ nic[key] = value
54
+ end
55
+ else
56
+ raise Fog::Errors::NotFound.new('The requested NIC could not be found')
57
+ end
58
+
59
+ response = Excon::Response.new
60
+ response.status = 200
61
+ response.body = {
62
+ 'updateNicResponse' =>
63
+ {
64
+ 'requestId' => Fog::Mock::random_numbers(7),
65
+ 'dataCenterId' => Fog::UUID.uuid,
66
+ 'dataCenterVersion' => 1
67
+ }
68
+ }
69
+ response
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,79 @@
1
+ module Fog
2
+ module Compute
3
+ class ProfitBricks
4
+ class Real
5
+ # Update a virtual server
6
+ #
7
+ # ==== Parameters
8
+ # * serverId<~String> - Required, UUID of virtual server
9
+ # * options<~Hash>:
10
+ # * serverName<~String> - Optional,
11
+ # * cores<~Integer> - Optional,
12
+ # * ram<~Integer> Optional, Memory in MB
13
+ # * bootFromStorageId<~String> - Optional, UUID of boot storage
14
+ # * bootFromImageId<~String> -
15
+ # * osType<~String> - Optional, UNKNOWN, WINDOWS, LINUX, OTHER
16
+ # * availabilityZone<~String> - Optional, AUTO, ZONE_1, ZONE_2
17
+ #
18
+ # ==== Returns
19
+ # * response<~Excon::Response>:
20
+ # * body<~Hash>:
21
+ # * updateServerResponse<~Hash>:
22
+ # * requestId<~String> - ID of request
23
+ # * dataCenterId<~String> - UUID of virtual data center
24
+ # * dataCenterVersion<~Integer> - Version of the virtual data center
25
+ #
26
+ # {ProfitBricks API Documentation}[http://www.profitbricks.com/apidoc/UpdateServer.html]
27
+ def update_server(server_id, options={})
28
+ soap_envelope = Fog::ProfitBricks.construct_envelope {
29
+ |xml| xml[:ws].updateServer {
30
+ xml.request {
31
+ xml.serverId(server_id)
32
+ options.each { |key, value| xml.send(key, value) }
33
+ }
34
+ }
35
+ }
36
+
37
+ request(
38
+ :expects => [200],
39
+ :method => 'POST',
40
+ :body => soap_envelope.to_xml,
41
+ :parser =>
42
+ Fog::Parsers::Compute::ProfitBricks::UpdateServer.new
43
+ )
44
+ rescue Excon::Errors::InternalServerError => error
45
+ Fog::Errors::NotFound.new(error)
46
+ end
47
+ end
48
+
49
+ class Mock
50
+ def update_server(server_id, options={})
51
+
52
+ if server = self.data[:servers].find {
53
+ |attrib| attrib['serverId'] == server_id
54
+ }
55
+ options.each do |key, value|
56
+ server[key] = value
57
+ end
58
+ else
59
+ raise Fog::Errors::NotFound.new(
60
+ 'The requested server resource could not be found'
61
+ )
62
+ end
63
+
64
+ response = Excon::Response.new
65
+ response.status = 200
66
+ response.body = {
67
+ 'updateServerResponse' =>
68
+ {
69
+ 'requestId' => Fog::Mock::random_numbers(7),
70
+ 'dataCenterId' => Fog::UUID.uuid,
71
+ 'dataCenterVersion' => 1
72
+ }
73
+ }
74
+ response
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,73 @@
1
+ module Fog
2
+ module Compute
3
+ class ProfitBricks
4
+ class Real
5
+ # Update a virtual storage
6
+ #
7
+ # ==== Parameters
8
+ # * storageId<~String> - Required, UUID of the virtual storage
9
+ # * options<~Hash>:
10
+ # * size<~Integer> - Optional, size of virtual storage in GB
11
+ # * storageName<~String> - Optional,
12
+ # * mountImageId<~String> - Optional,
13
+ #
14
+ # ==== Returns
15
+ # * response<~Excon::Response>:
16
+ # * body<~Hash>:
17
+ # * updateStorageResponse<~Hash>:
18
+ # * requestId<~String> - ID of request
19
+ # * dataCenterId<~String> - UUID of virtual data center
20
+ # * dataCenterVersion<~Integer> - Version of the virtual data center
21
+ #
22
+ # {ProfitBricks API Documentation}[http://www.profitbricks.com/apidoc/UpdateStorage.html]
23
+ def update_storage(storage_id, options={})
24
+ soap_envelope = Fog::ProfitBricks.construct_envelope {
25
+ |xml| xml[:ws].updateStorage {
26
+ xml.request {
27
+ xml.storageId(storage_id)
28
+ options.each { |key, value| xml.send(key, value) }
29
+ }
30
+ }
31
+ }
32
+
33
+ request(
34
+ :expects => [200],
35
+ :method => 'POST',
36
+ :body => soap_envelope.to_xml,
37
+ :parser =>
38
+ Fog::Parsers::Compute::ProfitBricks::UpdateStorage.new
39
+ )
40
+ rescue Excon::Errors::InternalServerError => error
41
+ Fog::Errors::NotFound.new(error)
42
+ end
43
+ end
44
+
45
+ class Mock
46
+ def update_storage(storage_id, options={})
47
+
48
+ if storage = self.data[:volumes].find {
49
+ |attrib| attrib['storageId'] == storage_id
50
+ }
51
+ options.each do |key, value|
52
+ storage[key] = value
53
+ end
54
+ else
55
+ raise Fog::Errors::NotFound.new('The requested resource could not be found')
56
+ end
57
+
58
+ response = Excon::Response.new
59
+ response.status = 200
60
+ response.body = {
61
+ 'updateStorageResponse' =>
62
+ {
63
+ 'requestId' => Fog::Mock::random_numbers(7),
64
+ 'dataCenterId' => Fog::UUID.uuid,
65
+ 'dataCenterVersion' => 1
66
+ }
67
+ }
68
+ response
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end