hetzner-api 1.0.0.alpha.2 → 1.0.0.alpha.3

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hetzner-api (1.0.0.alpha.1)
4
+ hetzner-api (1.0.0.alpha.2)
5
5
  httparty
6
6
  thor
7
7
 
@@ -2,6 +2,26 @@ module Hetzner
2
2
  class API
3
3
  module Boot
4
4
  module Plesk
5
+ # queries the plesk boot status of one IP address/server
6
+ def boot_plesk?(ip)
7
+ path = "/boot/#{ip}/plesk"
8
+ perform_get path
9
+ end
10
+
11
+ # enables plesk boot option for one IP address/server
12
+ #
13
+ # see <em>Boot</em> to query the API for available options
14
+ def boot_plesk!(ip, dist, arch, lang, hostname)
15
+ path = "/boot/#{ip}/plesk"
16
+ perform_post path, :query => { :dist => dist, :arch => arch, :lang => lang, :hostname => hostname }
17
+ end
18
+
19
+ # disables the vnc boot status of one IP address/server
20
+ def disable_boot_plesk!(ip)
21
+ path = "/boot/#{ip}/plesk"
22
+ perform_delete path
23
+ end
24
+
5
25
  end
6
26
  end
7
27
  end
@@ -1,6 +1,23 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Server
4
+ # returns a list of all servers of the customer
5
+ def servers?
6
+ get_server_or_servers
7
+ end
8
+
9
+ # returns a list of all servers or just for a specific server ip
10
+ def server?(server_ip)
11
+ get_server_or_servers server_ip
12
+ end
13
+
14
+ private
15
+
16
+ def get_server_or_servers(server_ip = nil)
17
+ path = "/server"
18
+ path << "/#{server_ip}" if server_ip
19
+ perform_get path
20
+ end
4
21
  end
5
22
  end
6
23
  end
@@ -1,6 +1,35 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Subnet
4
+ # shows all IP subnets that belong to the main server IP
5
+ def subnets_for_server?(server_ip)
6
+ path = "/subnet"
7
+ perform_get path, :query => { :server_ip => server_ip }
8
+ end
9
+
10
+ # shows information of all IP subnets of the customer
11
+ def subnets?
12
+ get_subnet_or_subnets
13
+ end
14
+
15
+ # shows information of a given IP subnet of the customer
16
+ def subnet?(ip)
17
+ get_subnet_or_subnets ip
18
+ end
19
+
20
+ # sets or unsets traffic warning limits on a specific IP subnet address
21
+ def subnet!(ip, options = {})
22
+ path = "/subnet/#{ip}"
23
+ perform_post path, :query => options
24
+ end
25
+
26
+ private
27
+
28
+ def get_subnet_or_subnets(ip = nil)
29
+ path = "/subnet"
30
+ path << "/#{ip}" if ip
31
+ perform_get path
32
+ end
4
33
  end
5
34
  end
6
35
  end
@@ -1,6 +1,71 @@
1
1
  module Hetzner
2
2
  class API
3
3
  module Traffic
4
+ # returns the traffic information for an IP and/or subnet according to the selected time frame.
5
+ def traffic?(options = {})
6
+
7
+ ips = options[:ips]
8
+ subnets = options[:subnets]
9
+ from = options[:from]
10
+ to = options[:to]
11
+ type = options[:type].to_sym
12
+
13
+ from = DateTime.parse(from) unless from.is_a? Date
14
+ to = DateTime.parse(to) unless to.is_a? Date
15
+
16
+ case type
17
+ when :year
18
+ format = "%Y-%m" # 2010-01
19
+ from_date = from.strftime format
20
+ to_date = to.strftime format
21
+ when :month
22
+ format = "%Y-%m-%d" # 2010-12-30
23
+ from_date = from.strftime format
24
+ to_date = to.strftime format
25
+ when :day
26
+ format = "%Y-%m-%dT%H" # 2010-01-01T15
27
+ from_date = from.strftime format
28
+ to_date = to.strftime format
29
+ else
30
+ raise ArgumentError, 'Invalid time frame type. Must be one of: :year, :month, :day'
31
+ end
32
+
33
+ validate_dates_and_type from, to, type
34
+
35
+ perform_post "/traffic", :query => {
36
+ :ip => ips,
37
+ :subnet => subnets,
38
+ :from => from_date,
39
+ :to => to_date,
40
+ :type => type
41
+ }
42
+ end
43
+
44
+ private
45
+
46
+ def validate_dates_and_type(from, to, type)
47
+ today = DateTime.now
48
+
49
+ case type
50
+ when :month
51
+ #if (same_year_and_month?(today, from) || same_year_and_month?(today, to))
52
+ # raise ArgumentError, 'Invalid timeframe: Time frame :month for this date is available AFTER CURRENT MONTH ONLY! => try :day instead'
53
+ #end
54
+
55
+ when :day
56
+ unless same_day?(from, to)
57
+ raise ArgumentError, 'Invalid date for timeframe. for type == :day queries both dates have to be on the same *day*'
58
+ end
59
+ end
60
+ end
61
+
62
+ def same_year_and_month?(a,b)
63
+ a.strftime("%Y-%m") == b.strftime("%Y-%m")
64
+ end
65
+
66
+ def same_day?(a,b)
67
+ a.strftime("%Y-%m-%d") == b.strftime("%Y-%m-%d")
68
+ end
4
69
  end
5
70
  end
6
71
  end
@@ -1,5 +1,5 @@
1
1
  module Hetzner
2
2
  class API
3
- VERSION = "1.0.0.alpha.2"
3
+ VERSION = "1.0.0.alpha.3"
4
4
  end
5
5
  end
data/spec/api_stubs.rb CHANGED
@@ -68,6 +68,15 @@ FakeWeb.register_uri :post, uri("#{WORKING_IP}/vnc?arch=32&lang=en_US&dist=Fed
68
68
  FakeWeb.register_uri :delete, uri("#{WORKING_IP}/vnc"),
69
69
  :response => fixture('vnc/delete.raw')
70
70
 
71
+ FakeWeb.register_uri :get, uri("#{WORKING_IP}/plesk"),
72
+ :response => fixture('plesk/get.raw')
73
+
74
+ FakeWeb.register_uri :post, uri("#{WORKING_IP}/plesk?arch=32&lang=en_US&dist=Fedora-13&hostname=dr-gerner-aus-gzsz.confixx.de"),
75
+ :response => fixture('plesk/post.raw') # perl2exe insider
76
+
77
+ FakeWeb.register_uri :delete, uri("#{WORKING_IP}/plesk"),
78
+ :response => fixture('plesk/delete.raw')
79
+
71
80
 
72
81
  @resource = 'wol'
73
82
 
@@ -103,9 +112,47 @@ FakeWeb.register_uri :get, uri("#{WORKING_IP}"),
103
112
 
104
113
  FakeWeb.register_uri :post, uri("#{WORKING_IP}?traffic_warnings=true&traffic_monthly=2342"),
105
114
  :response => fixture('post_activate_with_data.raw')
106
-
115
+
107
116
  FakeWeb.register_uri :post, uri("#{WORKING_IP}?traffic_warnings=false"),
108
117
  :response => fixture('post_deactivate_with_data.raw')
109
118
 
110
119
 
120
+ @resource = 'subnet'
121
+
122
+ FakeWeb.register_uri :get, uri,
123
+ :response => fixture('get.raw')
124
+
125
+ FakeWeb.register_uri :get, uri(nil, "?server_ip=#{WORKING_IP}"),
126
+ :response => fixture('get_with_server_ip.raw')
127
+
128
+ FakeWeb.register_uri :get, uri("#{WORKING_SUBNET_IP}"),
129
+ :response => fixture('get_with_subnet_ip.raw')
130
+
131
+ FakeWeb.register_uri :post, uri("#{WORKING_SUBNET_IP}?traffic_warnings=true&traffic_monthly=2342"),
132
+ :response => fixture('post_activate_with_data.raw')
133
+
134
+ FakeWeb.register_uri :post, uri("#{WORKING_SUBNET_IP}?traffic_warnings=false"),
135
+ :response => fixture('post_deactivate_with_data.raw')
136
+
137
+
138
+ @resource = 'server'
139
+
140
+ FakeWeb.register_uri :get, uri,
141
+ :response => fixture('get.raw')
142
+
143
+ FakeWeb.register_uri :get, uri("#{WORKING_IP}"),
144
+ :response => fixture('get_with_server_ip.raw')
145
+
146
+
147
+ @resource = 'traffic'
148
+
149
+ FakeWeb.register_uri :post, uri(nil, "?from=2010-10-10T01&type=day&ip[]=#{WORKING_IP}&to=2010-10-10T10&subnet[]=#{WORKING_SUBNET_IP}"),
150
+ :response => fixture('post_with_one_ip_and_one_subnet_day.raw')
151
+
152
+ FakeWeb.register_uri :post, uri(nil, "?from=2010-09-01&type=month&ip[]=#{WORKING_IP}&to=2010-10-01&ip[]=#{WORKING_IP_2}"),
153
+ :response => fixture('post_with_two_ips_and_no_subnet_month.raw')
154
+
155
+ FakeWeb.register_uri :post, uri(nil, "?from=2010-01&to=2010-10&type=year&subnet[]=#{WORKING_SUBNET_IP}&subnet[]=#{WORKING_SUBNET_IP_2}"),
156
+ :response => fixture('post_with_two_subnets_and_no_ip_year.raw')
157
+
111
158
  #pp FakeWeb::Registry.instance.uri_map
@@ -0,0 +1,14 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "plesk": {
6
+ "server_ip": "11.11.11.111",
7
+ "dist": ["CentOS 5.4 minimal","Debian 5.0 minimal"],
8
+ "arch": [64,32],
9
+ "lang": ["en","de"],
10
+ "active": false,
11
+ "password": null,
12
+ "hostname": null
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "plesk": {
6
+ "server_ip": "11.11.11.111",
7
+ "dist": ["CentOS 5.4 minimal","Debian 5.0 minimal"],
8
+ "arch": [64,32],
9
+ "lang": ["en","de"],
10
+ "active": false,
11
+ "password": null,
12
+ "hostname": null
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "plesk": {
6
+ "server_ip": "11.11.11.111",
7
+ "dist": "CentOS 5.4 minimal",
8
+ "arch": 32,
9
+ "lang": "de",
10
+ "active": true,
11
+ "password": "ie8Nhz6R",
12
+ "hostname": "dr-gerner-aus-gzsz.confixx.de"
13
+ }
14
+ }
@@ -0,0 +1,29 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ [
5
+ {
6
+ "server": {
7
+ "server_ip": "11.11.11.111",
8
+ "product": "DS 3000",
9
+ "dc": 6,
10
+ "traffic": "5 TB",
11
+ "status": "ready",
12
+ "throttled": true,
13
+ "cancelled": false,
14
+ "paid_until": "2010-09-02"
15
+ }
16
+ },
17
+ {
18
+ "server": {
19
+ "server_ip": "11.11.11.112",
20
+ "product": "X5",
21
+ "dc": 5,
22
+ "traffic": "2 TB",
23
+ "status": "ready",
24
+ "throttled": false,
25
+ "cancelled": false,
26
+ "paid_until": "2010-06-11"
27
+ }
28
+ }
29
+ ]
@@ -0,0 +1,23 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "server": {
6
+ "server_ip": "11.11.11.111",
7
+ "product": "EQ 8",
8
+ "dc": 11,
9
+ "traffic": "5 TB",
10
+ "status": "ready",
11
+ "throttled": false,
12
+ "cancelled": false,
13
+ "paid_until": "2010-08-04",
14
+ "ip": ["11.11.11.111"],
15
+ "subnet": [{"ip": "2a01:4f8:111:4221::", "mask": "64"}],
16
+ "reset": true,
17
+ "rescue": true,
18
+ "vnc": true,
19
+ "windows": true,
20
+ "plesk": true,
21
+ "wol": true
22
+ }
23
+ }
@@ -0,0 +1,33 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ [
5
+ {
6
+ "subnet": {
7
+ "ip": "11.11.12.111",
8
+ "mask": 29,
9
+ "gateway": "123.123.123.123",
10
+ "server_ip": "88.198.123.123",
11
+ "failover": false,
12
+ "locked": false,
13
+ "traffic_warnings": false,
14
+ "traffic_hourly": 100,
15
+ "traffic_daily": 500,
16
+ "traffic_monthly": 2
17
+ }
18
+ },
19
+ {
20
+ "subnet":{
21
+ "ip": "11.11.13.111",
22
+ "mask": 25,
23
+ "gateway": "178.63.123.124",
24
+ "server_ip": null,
25
+ "failover": false,
26
+ "locked": false,
27
+ "traffic_warnings": false,
28
+ "traffic_hourly": 100,
29
+ "traffic_daily": 500,
30
+ "traffic_monthly": 2
31
+ }
32
+ }
33
+ ]
@@ -0,0 +1,19 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ [
5
+ {
6
+ "subnet": {
7
+ "ip": "11.11.12.111",
8
+ "mask": 29,
9
+ "gateway": "123.123.123.123",
10
+ "server_ip": "88.198.123.123",
11
+ "failover": false,
12
+ "locked": false,
13
+ "traffic_warnings": false,
14
+ "traffic_hourly": 100,
15
+ "traffic_daily": 500,
16
+ "traffic_monthly": 2
17
+ }
18
+ }
19
+ ]
@@ -0,0 +1,17 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "subnet": {
6
+ "ip": "11.11.12.111",
7
+ "mask": 29,
8
+ "gateway": "123.123.123.123",
9
+ "server_ip": "88.198.123.123",
10
+ "failover": false,
11
+ "locked": false,
12
+ "traffic_warnings": false,
13
+ "traffic_hourly": 100,
14
+ "traffic_daily": 500,
15
+ "traffic_monthly": 2
16
+ }
17
+ }
@@ -0,0 +1,37 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "traffic": {
6
+ "data": {
7
+ "11.11.11.111": {
8
+ "sum": 0.0107,
9
+ "out": 0.0078,
10
+ "in": 0.0029
11
+ },
12
+ "11.11.12.111": {
13
+ "sum": 0.1002,
14
+ "out": 0.0128,
15
+ "in": 0.0874
16
+ },
17
+ "11.11.12.112": {
18
+ "sum": 0.0095,
19
+ "out": 0.0066,
20
+ "in": 0.0029
21
+ },
22
+ "11.11.12.113": {
23
+ "sum": 0.0128,
24
+ "out": 0.0094,
25
+ "in": 0.0034
26
+ },
27
+ "11.11.12.114": {
28
+ "sum": 0.0109,
29
+ "out": 0.0079,
30
+ "in": 0.003
31
+ }
32
+ },
33
+ "from": "2010-10-108T01:00+0200",
34
+ "to": "2010-10-10T10:00+0200",
35
+ "type": "day"
36
+ }
37
+ }
@@ -0,0 +1,22 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "traffic": {
6
+ "data": {
7
+ "11.11.11.111": {
8
+ "sum": 0.0107,
9
+ "out": 0.0078,
10
+ "in": 0.0029
11
+ },
12
+ "11.11.11.112": {
13
+ "sum": 0.1002,
14
+ "out": 0.0128,
15
+ "in": 0.0874
16
+ }
17
+ },
18
+ "from": "2010-09-01",
19
+ "to": "2010-10-01",
20
+ "type": "month"
21
+ }
22
+ }
@@ -0,0 +1,52 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: application/json
3
+
4
+ {
5
+ "traffic": {
6
+ "data": {
7
+ "11.11.12.111": {
8
+ "sum": 0.1002,
9
+ "out": 0.0128,
10
+ "in": 0.0874
11
+ },
12
+ "11.11.12.112": {
13
+ "sum": 0.0095,
14
+ "out": 0.0066,
15
+ "in": 0.0029
16
+ },
17
+ "11.11.12.113": {
18
+ "sum": 0.0128,
19
+ "out": 0.0094,
20
+ "in": 0.0034
21
+ },
22
+ "11.11.12.114": {
23
+ "sum": 0.0109,
24
+ "out": 0.0079,
25
+ "in": 0.003
26
+ },
27
+ "11.11.13.111": {
28
+ "sum": 0.1002,
29
+ "out": 0.0128,
30
+ "in": 0.0874
31
+ },
32
+ "11.11.13.112": {
33
+ "sum": 0.0095,
34
+ "out": 0.0066,
35
+ "in": 0.0029
36
+ },
37
+ "11.11.13.113": {
38
+ "sum": 0.0128,
39
+ "out": 0.0094,
40
+ "in": 0.0034
41
+ },
42
+ "11.11.13.114": {
43
+ "sum": 0.0109,
44
+ "out": 0.0079,
45
+ "in": 0.003
46
+ }
47
+ },
48
+ "from": "2010-01",
49
+ "to": "2010-10",
50
+ "type": "year"
51
+ }
52
+ }
@@ -219,3 +219,144 @@ describe 'IP' do
219
219
  end
220
220
  end
221
221
 
222
+ describe 'Subnet' do
223
+ describe "information" do
224
+ before(:all) do
225
+ @h = Hetzner::API.new API_USERNAME, API_PASSWORD
226
+ end
227
+ it "should be able to display all IP subnets of the customer account" do
228
+ result = @h.subnets?
229
+ result.response.should be_an_instance_of Net::HTTPOK
230
+ result.parsed_response.should have_at_least(2).entries
231
+ end
232
+
233
+ it "should be able to display a IP subnet of the customer account" do
234
+ result = @h.subnet? WORKING_SUBNET_IP
235
+ result.response.should be_an_instance_of Net::HTTPOK
236
+ result.parsed_response.should have(1).entry
237
+ end
238
+
239
+ it "should be able to display all IP addresses for a given server IP address" do
240
+ result = @h.subnets_for_server? WORKING_IP
241
+ result.response.should be_an_instance_of Net::HTTPOK
242
+ result.parsed_response.should have(1).entry
243
+ end
244
+ end
245
+
246
+ describe "manage traffic warnings" do
247
+ before(:all) do
248
+ @h = Hetzner::API.new API_USERNAME, API_PASSWORD
249
+ end
250
+
251
+ it "should be able to activate and set traffic warning limits on a specific IP address" do
252
+ result = @h.ip! WORKING_IP, :traffic_warnings => 'true', :traffic_monthly => TRAFFIC_LIMIT_IN_GIGABYTE
253
+ result.response.should be_an_instance_of Net::HTTPOK
254
+ result.parsed_response.should have(1).entry
255
+ end
256
+
257
+ it "should be able to deactivate traffic warnings for a specific IP address" do
258
+ result = @h.ip! WORKING_IP, :traffic_warnings => 'false'
259
+ result.response.should be_an_instance_of Net::HTTPOK
260
+ result.parsed_response.should have(1).entry
261
+ end
262
+ end
263
+ end
264
+
265
+
266
+ describe "Server" do
267
+ describe "information" do
268
+ before(:all) do
269
+ @h = Hetzner::API.new API_USERNAME, API_PASSWORD
270
+ end
271
+
272
+ it "should be able to display all servers of the customer account" do
273
+ result = @h.servers?
274
+ result.response.should be_an_instance_of Net::HTTPOK
275
+ result.parsed_response.should have_at_least(2).entries
276
+ end
277
+
278
+ it "should be able to display a specific server by its IP address" do
279
+ result = @h.server? WORKING_IP
280
+ result.response.should be_an_instance_of Net::HTTPOK
281
+ result.parsed_response.should have_at_least(1).entry
282
+ end
283
+ end
284
+ end
285
+
286
+ describe "Plesk" do
287
+ before(:all) do
288
+ @h = Hetzner::API.new API_USERNAME, API_PASSWORD
289
+ end
290
+
291
+ it "should be able to query plesk boot option status" do
292
+ result = @h.boot_plesk? WORKING_IP
293
+ result.response.should be_an_instance_of Net::HTTPOK
294
+ result['plesk']['server_ip'].should == WORKING_IP
295
+ result['plesk']['active'].should be_false
296
+ result['plesk']['password'].should be_nil
297
+ end
298
+
299
+ it "should be able to activate plesk boot option" do
300
+ result = @h.boot_plesk! WORKING_IP, 'Fedora-13', '32', 'en_US', 'dr-gerner-aus-gzsz.confixx.de'
301
+ result.response.should be_an_instance_of Net::HTTPOK
302
+ result['plesk']['server_ip'].should == WORKING_IP
303
+ result['plesk']['active'].should be_true
304
+ result['plesk']['password'].should_not be_nil
305
+ end
306
+
307
+ it "should be able to disable plesk boot option" do
308
+ result = @h.disable_boot_plesk! WORKING_IP
309
+ result.response.should be_an_instance_of Net::HTTPOK
310
+ result['plesk']['server_ip'].should == WORKING_IP
311
+ result['plesk']['active'].should be_false
312
+ result['plesk']['password'].should be_nil
313
+ end
314
+ end
315
+
316
+ describe "Traffic" do
317
+ before(:all) do
318
+ @h = Hetzner::API.new API_USERNAME, API_PASSWORD
319
+ end
320
+
321
+ it "should display the traffic for a specific ip address and a subnet" do
322
+ options = {
323
+ :ips => [WORKING_IP],
324
+ :subnets => [WORKING_SUBNET_IP],
325
+ :from => DateTime.parse('10.10.2010 01:00'),
326
+ :to => DateTime.parse('10.10.2010 10:21'),
327
+ :type => :day
328
+ }
329
+
330
+ result = @h.traffic? options
331
+
332
+ result.response.should be_an_instance_of Net::HTTPOK
333
+ end
334
+
335
+ it "should display the traffic for serveral IP addresse and no subnet" do
336
+ options = {
337
+ :ips => [WORKING_IP, WORKING_IP_2],
338
+ :subnets => [],
339
+ :from => "01.09.2010",
340
+ :to => "01.10.2010",
341
+ :type => :month
342
+ }
343
+
344
+ result = @h.traffic? options
345
+
346
+ result.response.should be_an_instance_of Net::HTTPOK
347
+ end
348
+
349
+ it "should display the traffic for subnets and no ip address" do
350
+ options = {
351
+ :ips => [],
352
+ :subnets => [WORKING_SUBNET_IP, WORKING_SUBNET_IP_2],
353
+ :from => "01.01.2010",
354
+ :to => "01.10.2010",
355
+ :type => :year
356
+ }
357
+
358
+ result = @h.traffic? options
359
+
360
+ result.response.should be_an_instance_of Net::HTTPOK
361
+ end
362
+ end
@@ -1,4 +1,7 @@
1
1
  WORKING_IP = '11.11.11.111'
2
+ WORKING_IP_2 = '11.11.11.112'
3
+ WORKING_SUBNET_IP = '11.11.12.111'
4
+ WORKING_SUBNET_IP_2 = '11.11.13.111'
2
5
  UNKOWN_IP = '11.11.11.222'
3
6
 
4
7
  RESET_IP_NOT_AVAILABLE = '11.11.11.223'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hetzner-api
3
3
  version: !ruby/object:Gem::Version
4
- hash: -3702664328
4
+ hash: -3702664326
5
5
  prerelease: true
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 0
10
10
  - alpha
11
- - 2
12
- version: 1.0.0.alpha.2
11
+ - 3
12
+ version: 1.0.0.alpha.3
13
13
  platform: ruby
14
14
  authors:
15
15
  - Roland Moriz
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2010-10-08 00:00:00 +02:00
20
+ date: 2010-10-09 00:00:00 +02:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -190,6 +190,9 @@ files:
190
190
  - lib/hetzner/api/wol.rb
191
191
  - spec/api_stubs.rb
192
192
  - spec/fixtures/boot/get_with_ip.raw
193
+ - spec/fixtures/boot/plesk/delete.raw
194
+ - spec/fixtures/boot/plesk/get.raw
195
+ - spec/fixtures/boot/plesk/post.raw
193
196
  - spec/fixtures/boot/rescue/delete.raw
194
197
  - spec/fixtures/boot/rescue/post.raw
195
198
  - spec/fixtures/boot/vnc/delete.raw
@@ -212,6 +215,14 @@ files:
212
215
  - spec/fixtures/reset/post_with_ip_manual_active.raw
213
216
  - spec/fixtures/reset/post_with_ip_unavailable.raw
214
217
  - spec/fixtures/reset/post_with_ip_unknown.raw
218
+ - spec/fixtures/server/get.raw
219
+ - spec/fixtures/server/get_with_server_ip.raw
220
+ - spec/fixtures/subnet/get.raw
221
+ - spec/fixtures/subnet/get_with_server_ip.raw
222
+ - spec/fixtures/subnet/get_with_subnet_ip.raw
223
+ - spec/fixtures/traffic/post_with_one_ip_and_one_subnet_day.raw
224
+ - spec/fixtures/traffic/post_with_two_ips_and_no_subnet_month.raw
225
+ - spec/fixtures/traffic/post_with_two_subnets_and_no_ip_year.raw
215
226
  - spec/fixtures/wol/get.raw
216
227
  - spec/fixtures/wol/post.raw
217
228
  - spec/hetzner_api_spec.rb