profitbricks 1.0.1 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,7 @@
1
+ === 1.0.3 / 2013-08-23
2
+
3
+ * Bugfix: The 'arg0' argument got renamed to 'request'
4
+
1
5
  === 1.0.1 / 2013-07-09
2
6
 
3
7
  * Raise an Profitbricks::AuthenticationError when the authentication failed
@@ -112,10 +112,6 @@ spec/fixtures/get_storage/mount_image.json
112
112
  spec/fixtures/get_storage/mount_image.xml
113
113
  spec/fixtures/get_storage/success.json
114
114
  spec/fixtures/get_storage/success.xml
115
- spec/fixtures/power_off_server/success.json
116
- spec/fixtures/power_off_server/success.xml
117
- spec/fixtures/reboot_server/success.json
118
- spec/fixtures/reboot_server/success.xml
119
115
  spec/fixtures/register_servers_on_load_balancer/success.json
120
116
  spec/fixtures/register_servers_on_load_balancer/success.xml
121
117
  spec/fixtures/release_public_ip_block/success.json
@@ -132,10 +128,10 @@ spec/fixtures/set_image_os_type/success.json
132
128
  spec/fixtures/set_image_os_type/success.xml
133
129
  spec/fixtures/set_internet_access/success.json
134
130
  spec/fixtures/set_internet_access/success.xml
135
- spec/fixtures/shutdown_server/success.json
136
- spec/fixtures/shutdown_server/success.xml
137
131
  spec/fixtures/start_server/success.json
138
132
  spec/fixtures/start_server/success.xml
133
+ spec/fixtures/stop_server/success.json
134
+ spec/fixtures/stop_server/success.xml
139
135
  spec/fixtures/update_data_center/success.json
140
136
  spec/fixtures/update_data_center/success.xml
141
137
  spec/fixtures/update_load_balancer/success.json
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
- # Profitbricks [![Build Status](https://secure.travis-ci.org/dsander/profitbricks.png?branch=master)](http://travis-ci.org/dsander/profitbricks) [![Coverage Status](https://coveralls.io/repos/dsander/profitbricks/badge.png?branch=master)](https://coveralls.io/r/dsander/profitbricks) [![Code Climate](https://codeclimate.com/github/dsander/profitbricks.png)](https://codeclimate.com/github/dsander/profitbricks)
1
+ # Profitbricks [![Build Status](https://secure.travis-ci.org/profitbricks/profitbricks-rb.png?branch=master)](http://travis-ci.org/profitbricks/profitbricks-rb) [![Coverage Status](https://coveralls.io/repos/profitbricks/profitbricks-rb/badge.png?branch=master)](https://coveralls.io/r/profitbricks/profitbricks-rb) [![Code Climate](https://codeclimate.com/github/profitbricks/profitbricks-rb.png)](https://codeclimate.com/github/dsander/profitbricks-rb)
2
2
 
3
- * http://github.com/dsander/profitbricks
4
- * http://rubydoc.info/github/dsander/profitbricks/master/frames
3
+ * https://github.com/profitbricks/profitbricks-rb
4
+ * http://rubydoc.info/github/profitbricks/profitbricks-rb/master/frames
5
5
 
6
6
 
7
7
  ## DESCRIPTION
@@ -50,17 +50,17 @@ Check out the examples directory for more detailed usage information, or have a
50
50
  ## CLI
51
51
 
52
52
  To use the profitbricks binary you first have to store your username and password in environment variables
53
-
53
+
54
54
  export PROFITBRICKS_USER=yourusername
55
55
  export PROFITBRICKS_PASSWORD=yourpassword
56
56
 
57
57
  The binary always takes at least two arguments. The first represents a class name (in snake- or camel-case) and the second a method name of this class.
58
58
  Get a list of all your datacenters:
59
-
59
+
60
60
  profitbricks data_center all
61
61
 
62
62
  The following arguments are coverted into a Hash and passed to the method, if you want to call instance methods you _have_ to provide the id of the Server/DataCenter, etc:
63
-
63
+
64
64
  profitbricks server update id=03h17g46-3040-d1af-bb01-9579fe0300e7 cores=2 ram=1024
65
65
 
66
66
  ## License
@@ -15,7 +15,7 @@ require 'profitbricks/ip_block'
15
15
  require 'profitbricks/rule'
16
16
 
17
17
  module Profitbricks
18
- VERSION = '1.0.1'
18
+ VERSION = '1.0.3'
19
19
  end
20
20
 
21
21
  PB = Profitbricks
@@ -4,7 +4,6 @@ module Profitbricks
4
4
  NEED_PREFIX = [:create_nic, :create_load_balancer, :update_storage, :create_storage,
5
5
  :update_data_center, :rom_drive, :update_nic, :create_server,
6
6
  :update_load_balancer, :connect_storage_to_server, :update_server]
7
-
8
7
  # Configure the Profitbricks API client
9
8
  #
10
9
  # @see Profitbricks::Config
@@ -19,13 +18,13 @@ module Profitbricks
19
18
 
20
19
  @client = Savon::Client.new do |globals|
21
20
  # FIXME the WSDL currently returns a wrong endpoint
22
- #globals.wsdl "https://api.profitbricks.com/1.2/wsdl"
23
- globals.namespace "http://ws.api.profitbricks.com/"
24
- globals.endpoint "https://api.profitbricks.com/1.2"
21
+ globals.wsdl "https://api.profitbricks.com/1.2/wsdl"
25
22
  globals.convert_request_keys_to :lower_camelcase
26
23
  globals.raise_errors true
27
24
  globals.log Profitbricks::Config.log
28
25
  globals.pretty_print_xml true
26
+ globals.open_timeout 5
27
+ globals.read_timeout 5
29
28
 
30
29
  # Looks like ssl verifycation works with current jruby
31
30
  #if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby' && !ENV['SSL_CERT_DIR']
@@ -50,7 +49,7 @@ module Profitbricks
50
49
  def self.request(method, options={})
51
50
  begin
52
51
  message = if NEED_PREFIX.include? method
53
- { arg0: options }
52
+ { request: options }
54
53
  else
55
54
  options
56
55
  end
@@ -3,20 +3,12 @@ module Profitbricks
3
3
  has_many :nics
4
4
  has_many :connected_storages, :class_name => :storage
5
5
 
6
- # Deletes the virtual Server.
6
+ # Deletes the virtual Server.
7
7
  # @return [Boolean] true on success, false otherwise
8
8
  def delete
9
9
  Profitbricks.request :delete_server, server_id: self.id
10
10
  return true
11
11
  end
12
-
13
- # Reboots an existing virtual server (SOFT REBOOT).
14
- # @return [Boolean] true on success, false otherwise
15
- def reboot
16
- @virtual_machine_state = 'NOSTATE'
17
- Profitbricks.request :reboot_server, server_id: self.id
18
- return true
19
- end
20
12
 
21
13
  # Resets an existing virtual server (POWER CYCLE).
22
14
  # @return [Boolean] true on success, false otherwise
@@ -34,23 +26,15 @@ module Profitbricks
34
26
  return true
35
27
  end
36
28
 
37
- # Stops an existing virtual server (HARD power off)
29
+ # Stops an existing virtual server (HARD power off)
38
30
  # @return [Boolean] true on success, false otherwise
39
- def power_off
31
+ def stop
40
32
  @virtual_machine_state = 'SHUTOFF'
41
- Profitbricks.request :power_off_server, server_id: self.id
33
+ Profitbricks.request :stop_server, server_id: self.id
42
34
  return true
43
35
  end
44
36
 
45
- # Stops an existing virtual server gracefully (SOFT stop)
46
- # @return [Boolean] true on success, false otherwise
47
- def shutdown
48
- @virtual_machine_state = 'SHUTDOWN'
49
- Profitbricks.request :shutdown_server, server_id: self.id
50
- return true
51
- end
52
-
53
- # Updates parameters of an existing virtual Server device.
37
+ # Updates parameters of an existing virtual Server device.
54
38
  # @param [Hash] options parameters for the new server
55
39
  # @option options [Fixnum] :cores Number of cores to be assigned to the specified server.
56
40
  # @option options [Fixnum] :ram Number of RAM memory (in MiB) to be assigned to the server. Must be at least 256 and a multiple of it.
@@ -129,15 +113,15 @@ module Profitbricks
129
113
 
130
114
  class << self
131
115
  # Returns a list of all Servers created by the user.
132
- #
116
+ #
133
117
  # @return [Array <Server>] Array of all available Servers
134
118
  def all
135
119
  DataCenter.all.collect(&:servers).flatten.compact
136
120
  end
137
121
 
138
- # Creates a Virtual Server within an existing data center. Parameters can be specified to set up a
122
+ # Creates a Virtual Server within an existing data center. Parameters can be specified to set up a
139
123
  # boot device and connect the server to an existing LAN or the Internet.
140
- #
124
+ #
141
125
  # @param [Hash] options parameters for the new server
142
126
  # @option options [Fixnum] :cores Number of cores to be assigned to the specified server (required)
143
127
  # @option options [Fixnum] :ram Number of RAM memory (in MiB) to be assigned to the server. Must be at least 256 and a multiple of it. (required)
@@ -180,6 +164,6 @@ module Profitbricks
180
164
  def filter_nics_and_return_ips(&block)
181
165
  return [] if self.nics.nil?
182
166
  self.nics.select { |nic| yield nic }.collect(&:ips).flatten
183
- end
167
+ end
184
168
  end
185
169
  end
@@ -0,0 +1 @@
1
+ <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:stopServerResponse xmlns:ns2="http://ws.api.profitbricks.com/"><return><requestId>50055</requestId></return></ns2:stopServerResponse></S:Body></S:Envelope>
@@ -21,11 +21,11 @@ describe Profitbricks::DataCenter do
21
21
  end
22
22
 
23
23
  it "should return all DataCenters" do
24
- DataCenter.all.length.should == 1
24
+ DataCenter.all.length.should >= 1
25
25
  end
26
26
 
27
27
  it "should be found by name" do
28
- DataCenter.find(name: 'PB_live_test_DC').id.should == $dc.id
28
+ DataCenter.find(name: 'PB_live_test_DC').id.should_not be_nil
29
29
  end
30
30
 
31
31
  it "should be renamed" do
@@ -67,7 +67,7 @@ describe Profitbricks::CLI do
67
67
 
68
68
  it "should update a server" do
69
69
  savon.expects(:get_server).with(message: {server_id: '1234-123'}).returns(f :get_server, :after_create)
70
- savon.expects(:update_server).with(message: {arg0: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f', server_name: 'meme', ram: 256, cores: 1}}).returns(f :update_server, :basic)
70
+ savon.expects(:update_server).with(message: {request: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f', server_name: 'meme', ram: 256, cores: 1}}).returns(f :update_server, :basic)
71
71
  cli.run(%w(server update id=1234-123 name=meme ram=256 cores=1)).should == 0
72
72
  end
73
73
  end
@@ -73,7 +73,7 @@ describe Profitbricks::DataCenter do
73
73
  dc.wait_for_provisioning
74
74
  end
75
75
 
76
- let(:rename_message) { {arg0: {data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602', data_center_name: 'Test2'}} }
76
+ let(:rename_message) { {request: {data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602', data_center_name: 'Test2'}} }
77
77
  it "should rename a datacenter" do
78
78
  savon.expects(:get_data_center).with(message: {data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_data_center, :two_servers_with_storage)
79
79
  savon.expects(:update_data_center).with(message: rename_message).returns(f :update_data_center, :success)
@@ -9,7 +9,7 @@ describe Profitbricks::LoadBalancer do
9
9
  let(:servers) { [Server.new(:id => "206d10f2-035f-4ef2-8d24-3022653e9706")]}
10
10
 
11
11
  it "create a new LoadBalancer" do
12
- create_msg = {arg0: {data_center_id: "1111", name: "Test", server_ids: servers.collect(&:id), algorithm: 'ROUND_ROBIN'}}
12
+ create_msg = {request: {data_center_id: "1111", name: "Test", server_ids: servers.collect(&:id), algorithm: 'ROUND_ROBIN'}}
13
13
  savon.expects(:create_load_balancer).with(message: create_msg).returns(f :create_load_balancer, :success)
14
14
  savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success)
15
15
  lb = LoadBalancer.create(:data_center_id => "1111", :name => "Test", :servers => servers, :algorithm => 'ROUND_ROBIN')
@@ -20,7 +20,7 @@ describe Profitbricks::LoadBalancer do
20
20
 
21
21
  it "should update an existing LoadBalancer" do
22
22
  savon.expects(:get_load_balancer).with(message: {load_balancer_id: '5dadd2b2-3405-4ec5-a450-0df497bebab0'}).returns(f :get_load_balancer, :success)
23
- savon.expects(:update_load_balancer).with(message: {arg0: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428', load_balancer_name: 'Wee'}}).returns(f :update_load_balancer, :success)
23
+ savon.expects(:update_load_balancer).with(message: {request: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428', load_balancer_name: 'Wee'}}).returns(f :update_load_balancer, :success)
24
24
  savon.expects(:get_load_balancer).with(message: {load_balancer_id: '3e3cb642-4d50-4371-980a-65959b2fa428'}).returns(f :get_load_balancer, :success)
25
25
  lb = LoadBalancer.find(:id => "5dadd2b2-3405-4ec5-a450-0df497bebab0")
26
26
  lb.update(:name => "Wee").should == true
@@ -7,7 +7,7 @@ describe Profitbricks::Nic do
7
7
  after(:all) { savon.unmock! }
8
8
 
9
9
  it "create a new Nic" do
10
- savon.expects(:create_nic).with(message: {arg0: {lan_id: 1, ip: '192.168.0.11', nic_name: 'Internal', server_id: '4cb6550f-3777-4818-8f4c-51233162a980'}}).returns(f :create_nic, :success)
10
+ savon.expects(:create_nic).with(message: {request: {lan_id: 1, ip: '192.168.0.11', nic_name: 'Internal', server_id: '4cb6550f-3777-4818-8f4c-51233162a980'}}).returns(f :create_nic, :success)
11
11
  savon.expects(:get_nic).with(message: {nic_id: 'cba8af39-b5de-477b-9795-2f02ea9cf04f'}).returns(f :get_nic, :success)
12
12
  nic = Nic.create(:lan_id => 1, :ip => "192.168.0.11", :name => "Internal", :server_id => "4cb6550f-3777-4818-8f4c-51233162a980")
13
13
  nic.name.should == "Internal"
@@ -17,7 +17,7 @@ describe Profitbricks::Nic do
17
17
 
18
18
  it "should update an existing Nic" do
19
19
  savon.expects(:get_nic).with(message: {nic_id: 'cba8af39-b5de-477b-9795-2f02ea9cf04f'}).returns(f :get_nic, :success)
20
- savon.expects(:update_nic).with(message: {arg0: {nic_id: 'cba8af39-b5de-477b-9795-2f02ea9cf04f', nic_name: 'External'}}).returns(f :update_nic, :success)
20
+ savon.expects(:update_nic).with(message: {request: {nic_id: 'cba8af39-b5de-477b-9795-2f02ea9cf04f', nic_name: 'External'}}).returns(f :update_nic, :success)
21
21
  nic = Nic.find(:id => "cba8af39-b5de-477b-9795-2f02ea9cf04f")
22
22
  nic.update(:name => "External").should == true
23
23
  nic.name.should == "External"
@@ -5,8 +5,8 @@ describe Profitbricks::Server do
5
5
 
6
6
  before(:all) { savon.mock! }
7
7
  after(:all) { savon.unmock! }
8
-
9
- describe "enforcing required arguments" do
8
+
9
+ describe "enforcing required arguments" do
10
10
  describe "on create" do
11
11
  it "should require :cores and :ram" do
12
12
  expect { Server.create(:cores => 1) }.to raise_error(ArgumentError, "You must provide :cores and :ram")
@@ -25,7 +25,7 @@ describe Profitbricks::Server do
25
25
  raise_error(ArgumentError, ":availability_zone has to be either 'AUTO', 'ZONE_1', or 'ZONE_2'")
26
26
 
27
27
  ['AUTO', 'ZONE_1', 'ZONE_2'].each do |zone|
28
- expect { Server.create(:ram => 256, :cores => 1, :availability_zone => zone) }.not_to
28
+ expect { Server.create(:ram => 256, :cores => 1, :availability_zone => zone) }.not_to
29
29
  raise_error(ArgumentError, ":availability_zone has to be either 'AUTO', 'ZONE_1', or 'ZONE_2'")
30
30
  end
31
31
  end
@@ -35,14 +35,14 @@ describe Profitbricks::Server do
35
35
  raise_error(ArgumentError, ":os_type has to be either 'WINDOWS' or 'OTHER'")
36
36
 
37
37
  ['WINDOWS', 'OTHER'].each do |type|
38
- expect { Server.create(:ram => 256, :cores => 1, :os_type => type) }.not_to
38
+ expect { Server.create(:ram => 256, :cores => 1, :os_type => type) }.not_to
39
39
  raise_error(ArgumentError, ":os_type has to be either 'WINDOWS' or 'OTHER'")
40
40
  end
41
41
  end
42
42
  end
43
43
  describe "on update" do
44
44
  before(:each) do
45
- savon.expects(:create_server).with(message: {arg0: {ram: 256, cores: 1}}).returns(f :create_server, :minimal)
45
+ savon.expects(:create_server).with(message: {request: {ram: 256, cores: 1}}).returns(f :create_server, :minimal)
46
46
  savon.expects(:get_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :get_server, :after_create)
47
47
  @server = Server.create(:ram => 256, :cores => 1)
48
48
  end
@@ -58,7 +58,7 @@ describe Profitbricks::Server do
58
58
  raise_error(ArgumentError, ":availability_zone has to be either 'AUTO', 'ZONE_1', or 'ZONE_2'")
59
59
 
60
60
  ['AUTO', 'ZONE_1', 'ZONE_2'].each do |zone|
61
- expect { @server.update(:ram => 256, :cores => 1, :availability_zone => zone) }.not_to
61
+ expect { @server.update(:ram => 256, :cores => 1, :availability_zone => zone) }.not_to
62
62
  raise_error(ArgumentError, ":availability_zone has to be either 'AUTO', 'ZONE_1', or 'ZONE_2'")
63
63
  end
64
64
  end
@@ -68,7 +68,7 @@ describe Profitbricks::Server do
68
68
  raise_error(ArgumentError, ":os_type has to be either 'WINDOWS' or 'OTHER'")
69
69
 
70
70
  ['WINDOWS', 'OTHER'].each do |type|
71
- expect { @server.update(:ram => 256, :cores => 1, :os_type => type) }.not_to
71
+ expect { @server.update(:ram => 256, :cores => 1, :os_type => type) }.not_to
72
72
  raise_error(ArgumentError, ":os_type has to be either 'WINDOWS' or 'OTHER'")
73
73
  end
74
74
  end
@@ -77,7 +77,7 @@ describe Profitbricks::Server do
77
77
 
78
78
 
79
79
  it "should create a new server with minimal arguments" do
80
- savon.expects(:create_server).with(message: {arg0: {ram: 256, cores: 1, server_name: 'Test Server', data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}}).returns(f :create_server, :minimal)
80
+ savon.expects(:create_server).with(message: {request: {ram: 256, cores: 1, server_name: 'Test Server', data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}}).returns(f :create_server, :minimal)
81
81
  savon.expects(:get_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :get_server, :after_create)
82
82
  s = Server.create(:cores => 1, :ram => 256, :name => 'Test Server', :data_center_id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
83
83
  s.cores.should == 1
@@ -86,13 +86,6 @@ describe Profitbricks::Server do
86
86
  s.data_center_id.should == "b3eebede-5c78-417c-b1bc-ff5de01a0602"
87
87
  end
88
88
 
89
- it "should reboot on request" do
90
- savon.expects(:get_server).with(message: {server_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_server, :after_create)
91
- savon.expects(:reboot_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :reboot_server, :success)
92
- s = Server.find(:id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
93
- s.reboot.should == true
94
- end
95
-
96
89
  it "should reset on request" do
97
90
  savon.expects(:get_server).with(message: {server_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_server, :after_create)
98
91
  savon.expects(:reset_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :reset_server, :success)
@@ -109,16 +102,9 @@ describe Profitbricks::Server do
109
102
 
110
103
  it "should power off on request" do
111
104
  savon.expects(:get_server).with(message: {server_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_server, :after_create)
112
- savon.expects(:power_off_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :power_off_server, :success)
105
+ savon.expects(:stop_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :stop_server, :success)
113
106
  s = Server.find(:id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
114
- s.power_off.should == true
115
- end
116
-
117
- it "should shutdown on request" do
118
- savon.expects(:get_server).with(message: {server_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_server, :after_create)
119
- savon.expects(:shutdown_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :shutdown_server, :success)
120
- s = Server.find(:id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
121
- s.shutdown.should == true
107
+ s.stop.should == true
122
108
  end
123
109
 
124
110
  it "should check if its running" do
@@ -141,7 +127,7 @@ describe Profitbricks::Server do
141
127
  savon.expects(:get_server).with(message: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f'}).returns(f :get_server, :after_create)
142
128
  s.provisioned?.should == false
143
129
  end
144
-
130
+
145
131
  it "should return true on provisioned?" do
146
132
  savon.expects(:get_server).with(message: {server_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_server, :after_create)
147
133
  s = Server.find(:id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
@@ -203,9 +189,9 @@ describe Profitbricks::Server do
203
189
  end
204
190
 
205
191
  describe "updating" do
206
- it "should update basic attributes correctly" do
192
+ it "should update basic attributes correctly" do
207
193
  savon.expects(:get_server).with(message: {server_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602'}).returns(f :get_server, :after_create)
208
- savon.expects(:update_server).with(message: {arg0: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f', server_name: 'Power of two', os_type: 'WINDOWS', cores: 2, ram: 512}}).returns(f :update_server, :basic)
194
+ savon.expects(:update_server).with(message: {request: {server_id: 'b7a5f3d1-324a-4490-aa8e-56cdec436e3f', server_name: 'Power of two', os_type: 'WINDOWS', cores: 2, ram: 512}}).returns(f :update_server, :basic)
209
195
  s = Server.find(:id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
210
196
  s.update(:cores => 2, :ram => 512, :name => "Power of two", :os_type => 'WINDOWS')
211
197
  s.cores.should == 2
@@ -7,7 +7,7 @@ describe Profitbricks::Storage do
7
7
  after(:all) { savon.unmock! }
8
8
 
9
9
  it "should create a new server with minimal arguments" do
10
- savon.expects(:create_storage).with(message: {arg0: {data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602', size: 5, storage_name: 'Test Storage'}}).returns(f :create_storage, :success)
10
+ savon.expects(:create_storage).with(message: {request: {data_center_id: 'b3eebede-5c78-417c-b1bc-ff5de01a0602', size: 5, storage_name: 'Test Storage'}}).returns(f :create_storage, :success)
11
11
  savon.expects(:get_storage).with(message: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11'}).returns(f :get_storage, :success)
12
12
  storage = Storage.create(:size => 5, :name => "Test Storage", :data_center_id => "b3eebede-5c78-417c-b1bc-ff5de01a0602")
13
13
  storage.name.should == "Test Storage"
@@ -16,7 +16,7 @@ describe Profitbricks::Storage do
16
16
 
17
17
  it "should be connectable to a server" do
18
18
  savon.expects(:get_storage).with(message: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11'}).returns(f :get_storage, :success)
19
- savon.expects(:connect_storage_to_server).with(message: {arg0: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11', server_id: '4cb6550f-3777-4818-8f4c-51233162a980', bus_type: 'VIRTIO'}}).returns(f :connect_storage_to_server, :success)
19
+ savon.expects(:connect_storage_to_server).with(message: {request: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11', server_id: '4cb6550f-3777-4818-8f4c-51233162a980', bus_type: 'VIRTIO'}}).returns(f :connect_storage_to_server, :success)
20
20
  savon.expects(:get_server).with(message: {server_id: '4cb6550f-3777-4818-8f4c-51233162a980'}).returns(f :get_server, :connected_storage)
21
21
  storage = Storage.find(:id => "f55952bc-da27-4e29-af89-ed212ea28e11")
22
22
  storage.connect(:server_id => "4cb6550f-3777-4818-8f4c-51233162a980", :bus_type => "VIRTIO").should == true
@@ -34,7 +34,7 @@ describe Profitbricks::Storage do
34
34
 
35
35
  it "should be updated" do
36
36
  savon.expects(:get_storage).with(message: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11'}).returns(f :get_storage, :success)
37
- savon.expects(:update_storage).with(message: {arg0: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11', size: 10, storage_name: 'Updated'}}).returns(f :update_storage, :success)
37
+ savon.expects(:update_storage).with(message: {request: {storage_id: 'f55952bc-da27-4e29-af89-ed212ea28e11', size: 10, storage_name: 'Updated'}}).returns(f :update_storage, :success)
38
38
  storage = Storage.find(:id => "f55952bc-da27-4e29-af89-ed212ea28e11")
39
39
  storage.update(:name => "Updated", :size => 10).should == true
40
40
  storage.name.should == "Updated"
@@ -37,3 +37,16 @@ Profitbricks.configure do |config|
37
37
  config.password = "none"
38
38
  config.polling_interval = 0.1
39
39
  end
40
+
41
+ client = Savon::Client.new do |globals|
42
+ globals.namespace "http://ws.api.profitbricks.com/"
43
+ globals.endpoint "https://api.profitbricks.com/1.2"
44
+ globals.convert_request_keys_to :lower_camelcase
45
+ globals.raise_errors true
46
+ globals.log Profitbricks::Config.log
47
+ globals.pretty_print_xml true
48
+ globals.open_timeout 5
49
+ globals.read_timeout 5
50
+ globals.basic_auth [Profitbricks::Config.username, Profitbricks::Config.password]
51
+ end
52
+ Profitbricks.client = client
metadata CHANGED
@@ -1,18 +1,20 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: profitbricks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.3
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Dominik Sander
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2013-07-09 00:00:00.000000000 Z
12
+ date: 2013-08-23 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: savon
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
19
  - - '='
18
20
  - !ruby/object:Gem::Version
@@ -20,6 +22,7 @@ dependencies:
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
27
  - - '='
25
28
  - !ruby/object:Gem::Version
@@ -27,6 +30,7 @@ dependencies:
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rdoc
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
35
  - - ~>
32
36
  - !ruby/object:Gem::Version
@@ -34,6 +38,7 @@ dependencies:
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
43
  - - ~>
39
44
  - !ruby/object:Gem::Version
@@ -41,6 +46,7 @@ dependencies:
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: hoe
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
51
  - - ~>
46
52
  - !ruby/object:Gem::Version
@@ -48,6 +54,7 @@ dependencies:
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
59
  - - ~>
53
60
  - !ruby/object:Gem::Version
@@ -175,10 +182,6 @@ files:
175
182
  - spec/fixtures/get_storage/mount_image.xml
176
183
  - spec/fixtures/get_storage/success.json
177
184
  - spec/fixtures/get_storage/success.xml
178
- - spec/fixtures/power_off_server/success.json
179
- - spec/fixtures/power_off_server/success.xml
180
- - spec/fixtures/reboot_server/success.json
181
- - spec/fixtures/reboot_server/success.xml
182
185
  - spec/fixtures/register_servers_on_load_balancer/success.json
183
186
  - spec/fixtures/register_servers_on_load_balancer/success.xml
184
187
  - spec/fixtures/release_public_ip_block/success.json
@@ -195,10 +198,10 @@ files:
195
198
  - spec/fixtures/set_image_os_type/success.xml
196
199
  - spec/fixtures/set_internet_access/success.json
197
200
  - spec/fixtures/set_internet_access/success.xml
198
- - spec/fixtures/shutdown_server/success.json
199
- - spec/fixtures/shutdown_server/success.xml
200
201
  - spec/fixtures/start_server/success.json
201
202
  - spec/fixtures/start_server/success.xml
203
+ - spec/fixtures/stop_server/success.json
204
+ - spec/fixtures/stop_server/success.xml
202
205
  - spec/fixtures/update_data_center/success.json
203
206
  - spec/fixtures/update_data_center/success.xml
204
207
  - spec/fixtures/update_load_balancer/success.json
@@ -222,9 +225,8 @@ files:
222
225
  - spec/profitbricks/server_spec.rb
223
226
  - spec/profitbricks/storage_spec.rb
224
227
  - spec/spec_helper.rb
225
- homepage: http://github.com/dsander/profitbricks
228
+ homepage: https://github.com/profitbricks/profitbricks-rb
226
229
  licenses: []
227
- metadata: {}
228
230
  post_install_message:
229
231
  rdoc_options:
230
232
  - --main
@@ -232,19 +234,27 @@ rdoc_options:
232
234
  require_paths:
233
235
  - lib
234
236
  required_ruby_version: !ruby/object:Gem::Requirement
237
+ none: false
235
238
  requirements:
236
- - - '>='
239
+ - - ! '>='
237
240
  - !ruby/object:Gem::Version
238
241
  version: '0'
242
+ segments:
243
+ - 0
244
+ hash: 748897856804736441
239
245
  required_rubygems_version: !ruby/object:Gem::Requirement
246
+ none: false
240
247
  requirements:
241
- - - '>='
248
+ - - ! '>='
242
249
  - !ruby/object:Gem::Version
243
250
  version: '0'
251
+ segments:
252
+ - 0
253
+ hash: 748897856804736441
244
254
  requirements: []
245
255
  rubyforge_project: profitbricks
246
- rubygems_version: 2.0.3
256
+ rubygems_version: 1.8.23
247
257
  signing_key:
248
- specification_version: 4
258
+ specification_version: 3
249
259
  summary: A Ruby client for the ProfitBricks API.
250
260
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: c7b4d1eb20600d65ab78c002755ac2869426785a
4
- data.tar.gz: c7280d386007c4a9b9889455a38f6ded432a539b
5
- SHA512:
6
- metadata.gz: fecca29515ddaae5fe833b29e402eec0f4c2a37d3a70895ead1ae1876b3b7e9717d4741297ea0a20d4215915ee6f919b860a82714e539b9dffa58aeb72abbc3a
7
- data.tar.gz: 92bae68c2d6399c18d9d32888c5a725545f21ae49b910ff2adc38fdb6dd584aa8927ed1539442d58e5fa066cd2a171f995c2435d1c359bad2065db132dc7b4ce
@@ -1 +0,0 @@
1
- <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:powerOffServerResponse xmlns:ns2="http://ws.api.profitbricks.com/"><return><requestId>50055</requestId></return></ns2:powerOffServerResponse></S:Body></S:Envelope>
@@ -1 +0,0 @@
1
- {"reboot_server_response":{"return":{"request_id":"1187"},"@xmlns:ns2":"http://ws.api.profitbricks.com/"}}
@@ -1 +0,0 @@
1
- <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:rebootServerResponse xmlns:ns2="http://ws.api.profitbricks.com/"><return><requestId>1187</requestId></return></ns2:rebootServerResponse></S:Body></S:Envelope>
@@ -1 +0,0 @@
1
- {"shutdown_server_response":{"return":{"request_id":"50056"},"@xmlns:ns2":"http://ws.api.profitbricks.com/"}}
@@ -1 +0,0 @@
1
- <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><ns2:shutdownServerResponse xmlns:ns2="http://ws.api.profitbricks.com/"><return><requestId>50056</requestId></return></ns2:shutdownServerResponse></S:Body></S:Envelope>