solusvm 1.2.1 → 1.3.0
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.
- data/.travis.yml +0 -5
- data/README.markdown +3 -3
- data/lib/solusvm.rb +0 -22
- data/lib/solusvm/base.rb +37 -8
- data/lib/solusvm/cli/base_cli.rb +10 -10
- data/lib/solusvm/cli/client_cli.rb +8 -9
- data/lib/solusvm/cli/general_cli.rb +2 -3
- data/lib/solusvm/cli/node_cli.rb +2 -3
- data/lib/solusvm/cli/reseller_cli.rb +37 -38
- data/lib/solusvm/cli/server_cli.rb +12 -13
- data/lib/solusvm/client.rb +6 -6
- data/lib/solusvm/general.rb +3 -3
- data/lib/solusvm/node.rb +16 -8
- data/lib/solusvm/reseller.rb +5 -5
- data/lib/solusvm/server.rb +44 -38
- data/lib/solusvm/version.rb +1 -1
- data/solusvm.gemspec +1 -0
- data/test/cli/test_client_cli.rb +13 -19
- data/test/cli/test_general_cli.rb +4 -7
- data/test/cli/test_node_cli.rb +7 -13
- data/test/cli/test_reseller_cli.rb +41 -46
- data/test/cli/test_server_cli.rb +35 -65
- data/test/solusvm/test_base.rb +18 -10
- data/test/solusvm/test_client.rb +11 -12
- data/test/solusvm/test_general.rb +2 -3
- data/test/solusvm/test_hash.rb +4 -4
- data/test/solusvm/test_node.rb +12 -7
- data/test/solusvm/test_reseller.rb +13 -14
- data/test/solusvm/test_server.rb +17 -9
- data/test/test_helper.rb +9 -5
- data/test/vcr_cassettes/base/successful.yml +24 -1
- data/test/vcr_cassettes/base/successful_instance_config.yml +28 -0
- data/test/vcr_cassettes/node/list_groups.yml +20 -0
- data/test/vcr_cassettes/server/add_ip.yml +15 -0
- data/test/vcr_cassettes/server/del_ip.yml +15 -0
- metadata +18 -5
- data/test/test_solusvm.rb +0 -12
data/test/solusvm/test_client.rb
CHANGED
@@ -3,12 +3,11 @@ require 'test_helper'
|
|
3
3
|
class TestClient < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
|
-
|
7
|
-
@client = Solusvm::Client.new
|
6
|
+
@client = Solusvm::Client.new(solusvm_params)
|
8
7
|
end
|
9
8
|
|
10
9
|
def test_create
|
11
|
-
options = {:
|
10
|
+
options = {username: 'vps123', password: '123456', email: 'email@address.com', firstname: 'phill', lastname: 'smith'}
|
12
11
|
VCR.use_cassette "client/create" do
|
13
12
|
@client.create(options)
|
14
13
|
end
|
@@ -28,14 +27,14 @@ class TestClient < Test::Unit::TestCase
|
|
28
27
|
end
|
29
28
|
assert_equal 'Empty username field', @client.statusmsg
|
30
29
|
end
|
31
|
-
|
30
|
+
|
32
31
|
def test_exists
|
33
32
|
VCR.use_cassette "client/exists" do
|
34
33
|
assert @client.exists?("vps123")
|
35
34
|
end
|
36
|
-
assert_equal 'Client exists', @client.statusmsg
|
35
|
+
assert_equal 'Client exists', @client.statusmsg
|
37
36
|
end
|
38
|
-
|
37
|
+
|
39
38
|
def test_change_password
|
40
39
|
VCR.use_cassette "client/change_password" do
|
41
40
|
assert @client.change_password("vps123","123456")
|
@@ -74,13 +73,13 @@ class TestClient < Test::Unit::TestCase
|
|
74
73
|
end
|
75
74
|
|
76
75
|
def test_list
|
77
|
-
Solusvm.
|
76
|
+
@client = Solusvm::Client.new(api_id: "api_id1", api_key: api_login[:key], url: 'http://www.example.com/api')
|
78
77
|
VCR.use_cassette "client/list" do
|
79
78
|
@client.list
|
80
79
|
end
|
81
80
|
|
82
81
|
client = @client.returned_parameters["clients"]["client"].first
|
83
|
-
|
82
|
+
|
84
83
|
assert_equal "1", client["id"]
|
85
84
|
assert_equal "vps123", client["username"]
|
86
85
|
assert_equal "vps123@email.com", client["email"]
|
@@ -94,16 +93,16 @@ class TestClient < Test::Unit::TestCase
|
|
94
93
|
end
|
95
94
|
|
96
95
|
def test_list_empty
|
97
|
-
Solusvm.
|
96
|
+
@client = Solusvm::Client.new(api_id: "api_id2", api_key: api_login[:key], url: 'http://www.example.com/api')
|
98
97
|
VCR.use_cassette "client/list" do
|
99
98
|
assert @client.list.empty?
|
100
99
|
end
|
101
100
|
end
|
102
101
|
|
103
102
|
def test_list_fail
|
104
|
-
Solusvm.
|
105
|
-
VCR.use_cassette "client/list" do
|
103
|
+
@client = Solusvm::Client.new(api_id: "api_id3", api_key: api_login[:key], url: 'http://www.example.com/api')
|
104
|
+
VCR.use_cassette "client/list" do
|
106
105
|
assert_nil @client.list
|
107
106
|
end
|
108
107
|
end
|
109
|
-
end
|
108
|
+
end
|
@@ -2,8 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class TestGeneral < Test::Unit::TestCase
|
4
4
|
def setup
|
5
|
-
|
6
|
-
@general = Solusvm::General.new
|
5
|
+
@general = Solusvm::General.new(solusvm_params)
|
7
6
|
end
|
8
7
|
|
9
8
|
def test_templates
|
@@ -54,4 +53,4 @@ class TestGeneral < Test::Unit::TestCase
|
|
54
53
|
def test_isos_with_invalid_type
|
55
54
|
assert !@general.isos('whatever')
|
56
55
|
end
|
57
|
-
end
|
56
|
+
end
|
data/test/solusvm/test_hash.rb
CHANGED
@@ -2,9 +2,9 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class TestHash < Test::Unit::TestCase
|
4
4
|
def test_reverse_merge
|
5
|
-
defaults = { :
|
6
|
-
options = { :
|
7
|
-
expected = { :
|
5
|
+
defaults = { a: "x", b: "y", c: 10 }.freeze
|
6
|
+
options = { a: 1, b: 2 }
|
7
|
+
expected = { a: 1, b: 2, c: 10 }
|
8
8
|
|
9
9
|
# Should merge defaults into options, creating a new hash.
|
10
10
|
assert_equal expected, options.reverse_merge(defaults)
|
@@ -17,7 +17,7 @@ class TestHash < Test::Unit::TestCase
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def test_to_query
|
20
|
-
defaults = { :
|
20
|
+
defaults = { a: "x", b: "y", c: 10 }
|
21
21
|
expected = "a=x&b=y&c=10".split('&').sort
|
22
22
|
actual = defaults.to_query.split('&').sort
|
23
23
|
|
data/test/solusvm/test_node.rb
CHANGED
@@ -2,8 +2,7 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class TestNode < Test::Unit::TestCase
|
4
4
|
def setup
|
5
|
-
|
6
|
-
@nodes = Solusvm::Node.new
|
5
|
+
@nodes = Solusvm::Node.new(solusvm_params)
|
7
6
|
end
|
8
7
|
|
9
8
|
def test_list
|
@@ -22,6 +21,12 @@ class TestNode < Test::Unit::TestCase
|
|
22
21
|
assert !@nodes.list('whatever')
|
23
22
|
end
|
24
23
|
|
24
|
+
def test_list_groups
|
25
|
+
VCR.use_cassette "node/list_groups" do
|
26
|
+
assert_equal ['--none--', 'nodegroup1', 'nodegroup2', 'nodegroup3'], @nodes.list_groups
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
25
30
|
def test_statistics
|
26
31
|
VCR.use_cassette "node/statistics" do
|
27
32
|
@nodes.statistics(1)
|
@@ -45,14 +50,14 @@ class TestNode < Test::Unit::TestCase
|
|
45
50
|
end
|
46
51
|
|
47
52
|
def test_list_all_ips_available
|
48
|
-
Solusvm.
|
53
|
+
@nodes = Solusvm::Node.new(solusvm_params.merge(api_id: "api_id1", url: 'http://www.example.com/api'))
|
49
54
|
VCR.use_cassette "node/available_ips" do
|
50
55
|
assert_equal %w(123.123.123.123 124.124.124.124 125.125.125.125).sort, @nodes.available_ips(1).sort
|
51
56
|
end
|
52
57
|
end
|
53
58
|
|
54
59
|
def test_list_all_ips_not_available
|
55
|
-
Solusvm.
|
60
|
+
@nodes = Solusvm::Node.new(solusvm_params.merge(api_id: "api_id2", url: 'http://www.example.com/api'))
|
56
61
|
VCR.use_cassette "node/available_ips" do
|
57
62
|
assert @nodes.available_ips(1).empty?
|
58
63
|
end
|
@@ -69,7 +74,7 @@ class TestNode < Test::Unit::TestCase
|
|
69
74
|
end
|
70
75
|
|
71
76
|
def test_virtualservers
|
72
|
-
Solusvm.
|
77
|
+
@nodes = Solusvm::Node.new(solusvm_params.merge(api_id: "api_id1", url: 'http://www.example.com/api'))
|
73
78
|
VCR.use_cassette "node/virtualservers" do
|
74
79
|
@nodes.virtualservers(1)
|
75
80
|
end
|
@@ -90,14 +95,14 @@ class TestNode < Test::Unit::TestCase
|
|
90
95
|
end
|
91
96
|
|
92
97
|
def test_virtualservers_empty
|
93
|
-
Solusvm.
|
98
|
+
@nodes = Solusvm::Node.new(solusvm_params.merge(api_id: "api_id2", url: 'http://www.example.com/api'))
|
94
99
|
VCR.use_cassette "node/virtualservers" do
|
95
100
|
assert @nodes.virtualservers(1).empty?
|
96
101
|
end
|
97
102
|
end
|
98
103
|
|
99
104
|
def test_virtualservers_fail
|
100
|
-
Solusvm.
|
105
|
+
@nodes = Solusvm::Node.new(solusvm_params.merge(api_id: "api_id3", url: 'http://www.example.com/api'))
|
101
106
|
VCR.use_cassette "node/virtualservers" do
|
102
107
|
assert_nil @nodes.virtualservers(1)
|
103
108
|
end
|
@@ -3,17 +3,16 @@ require 'test_helper'
|
|
3
3
|
class TestReseller < Test::Unit::TestCase
|
4
4
|
|
5
5
|
def setup
|
6
|
-
|
7
|
-
@reseller = Solusvm::Reseller.new
|
6
|
+
@reseller = Solusvm::Reseller.new(solusvm_params)
|
8
7
|
end
|
9
8
|
|
10
9
|
def test_create
|
11
|
-
options = {:
|
12
|
-
|
10
|
+
options = {username: 'reseller123', password: '123456', email: 'reseller3@email.com', firstname: 'Phill', lastname: 'Smith'}
|
11
|
+
|
13
12
|
VCR.use_cassette "reseller/create" do
|
14
|
-
@reseller.create(options)
|
13
|
+
@reseller.create(options)
|
15
14
|
end
|
16
|
-
|
15
|
+
|
17
16
|
params = @reseller.returned_parameters
|
18
17
|
|
19
18
|
assert params
|
@@ -32,13 +31,13 @@ class TestReseller < Test::Unit::TestCase
|
|
32
31
|
end
|
33
32
|
|
34
33
|
def test_change_resources
|
35
|
-
options = {:
|
34
|
+
options = {maxvps: 10}
|
36
35
|
VCR.use_cassette "reseller/change_resources" do
|
37
36
|
@reseller.change_resources("vps123", options)
|
38
37
|
end
|
39
|
-
|
38
|
+
|
40
39
|
params = @reseller.returned_parameters
|
41
|
-
|
40
|
+
|
42
41
|
assert params
|
43
42
|
assert "10", params['maxvps']
|
44
43
|
end
|
@@ -53,9 +52,9 @@ class TestReseller < Test::Unit::TestCase
|
|
53
52
|
VCR.use_cassette "reseller/info" do
|
54
53
|
@reseller.info("vps123")
|
55
54
|
end
|
56
|
-
|
55
|
+
|
57
56
|
params = @reseller.returned_parameters
|
58
|
-
|
57
|
+
|
59
58
|
assert params
|
60
59
|
assert_equal "reseller123", params['username']
|
61
60
|
assert_equal "Phill", params['firstname']
|
@@ -71,14 +70,14 @@ class TestReseller < Test::Unit::TestCase
|
|
71
70
|
end
|
72
71
|
|
73
72
|
def test_list
|
74
|
-
Solusvm.
|
73
|
+
@reseller = Solusvm::Reseller.new(solusvm_params.merge(api_id: 'api_id1', url: 'http://www.example.com/api'))
|
75
74
|
VCR.use_cassette "reseller/list" do
|
76
75
|
assert_equal %w(username1 username2 username3), @reseller.list
|
77
76
|
end
|
78
77
|
end
|
79
78
|
|
80
79
|
def test_list_empty
|
81
|
-
Solusvm.
|
80
|
+
@reseller = Solusvm::Reseller.new(solusvm_params.merge(api_id: 'api_id2', url: 'http://www.example.com/api'))
|
82
81
|
VCR.use_cassette "reseller/list" do
|
83
82
|
assert !@reseller.list
|
84
83
|
end
|
@@ -90,4 +89,4 @@ class TestReseller < Test::Unit::TestCase
|
|
90
89
|
end
|
91
90
|
end
|
92
91
|
|
93
|
-
end
|
92
|
+
end
|
data/test/solusvm/test_server.rb
CHANGED
@@ -2,13 +2,12 @@ require 'test_helper'
|
|
2
2
|
|
3
3
|
class TestServer < Test::Unit::TestCase
|
4
4
|
def setup
|
5
|
-
|
6
|
-
@server = Solusvm::Server.new
|
5
|
+
@server = Solusvm::Server.new(solusvm_params)
|
7
6
|
end
|
8
7
|
|
9
8
|
def test_create
|
10
|
-
options = {:
|
11
|
-
:
|
9
|
+
options = {hostname: 'server.hostname.com', type: 'xen', username: 'bob', password: '123456',
|
10
|
+
node: 'node1', plan: 'plan1', template: 'mytpl', ips: 1}
|
12
11
|
hostname = options.delete(:hostname)
|
13
12
|
password = options.delete(:password)
|
14
13
|
VCR.use_cassette "server/create" do
|
@@ -37,7 +36,7 @@ class TestServer < Test::Unit::TestCase
|
|
37
36
|
end
|
38
37
|
assert_equal 'Virtual server is being rebuilt', @server.statusmsg
|
39
38
|
end
|
40
|
-
|
39
|
+
|
41
40
|
def test_boot
|
42
41
|
VCR.use_cassette "server/boot" do
|
43
42
|
assert @server.boot(1)
|
@@ -133,7 +132,16 @@ class TestServer < Test::Unit::TestCase
|
|
133
132
|
end
|
134
133
|
|
135
134
|
def test_add_ip
|
136
|
-
|
135
|
+
VCR.use_cassette "server/add_ip" do
|
136
|
+
assert_equal '123.123.123.123', @server.add_ip(1)
|
137
|
+
end
|
138
|
+
assert_equal 'Ip address added', @server.statusmsg
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_del_ip
|
142
|
+
VCR.use_cassette "server/del_ip" do
|
143
|
+
assert @server.del_ip(1, '123.123.123.123')
|
144
|
+
end
|
137
145
|
end
|
138
146
|
|
139
147
|
def test_change_plan
|
@@ -221,7 +229,7 @@ class TestServer < Test::Unit::TestCase
|
|
221
229
|
assert_equal 'theconsolepassword', info['consolepassword']
|
222
230
|
assert_equal 'theconsoleusername', info['consoleusername']
|
223
231
|
end
|
224
|
-
|
232
|
+
|
225
233
|
def test_info_all
|
226
234
|
VCR.use_cassette "server/info_all" do
|
227
235
|
@server.info_all(1)
|
@@ -236,7 +244,7 @@ class TestServer < Test::Unit::TestCase
|
|
236
244
|
assert_equal "236223201280,103640707072,132582494208,44", info["hdd"]
|
237
245
|
assert_equal "/graphs/9/214/214-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["trafficgraph"]
|
238
246
|
assert_equal "/graphs/9/214/214-load-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["loadgraph"]
|
239
|
-
assert_equal "/graphs/9/214/214-mem-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["memorygraph"]
|
247
|
+
assert_equal "/graphs/9/214/214-mem-8f7daef90bc75037489af4217af674a67df545ba05c8a6bcd5341d5894f2f905bf23976f52c0104415c1694135d51f204ddfd7b11bbe87c195a5de4a-86400.png", info["memorygraph"]
|
240
248
|
end
|
241
249
|
|
242
250
|
def test_mountiso
|
@@ -250,4 +258,4 @@ class TestServer < Test::Unit::TestCase
|
|
250
258
|
assert @server.unmountiso(1)
|
251
259
|
end
|
252
260
|
end
|
253
|
-
end
|
261
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -15,7 +15,7 @@ VCR.configure do |c|
|
|
15
15
|
path2, params2 = request2.uri.split('?')
|
16
16
|
path1 == path2 && Set.new(params1.to_s.split('&')) == Set.new(params2.to_s.split('&'))
|
17
17
|
end
|
18
|
-
c.default_cassette_options = { :
|
18
|
+
c.default_cassette_options = { record: :none, match_requests_on: [:method, :uri_with_unordered_params] }
|
19
19
|
end
|
20
20
|
|
21
21
|
# Use TURN if available
|
@@ -35,15 +35,19 @@ class Test::Unit::TestCase
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def api_login
|
38
|
-
{:
|
38
|
+
{id: 'api_id', key: 'api_key'}
|
39
39
|
end
|
40
40
|
|
41
|
-
def
|
42
|
-
|
41
|
+
def solusvm_params
|
42
|
+
{
|
43
|
+
api_id: api_login[:id],
|
44
|
+
api_key: api_login[:key],
|
45
|
+
url: 'http://www.example.com/api'
|
46
|
+
}
|
43
47
|
end
|
44
48
|
|
45
49
|
def cli_expand_base_arguments(options)
|
46
|
-
arguments = ["--api-login", "
|
50
|
+
arguments = ["--api-login", "api_id", "--api-key", "api_key", "--api-url", "http://www.example.com/api"]
|
47
51
|
options + arguments
|
48
52
|
end
|
49
53
|
|
@@ -42,4 +42,27 @@ http_interactions:
|
|
42
42
|
<statusmsg>error message</statusmsg>
|
43
43
|
http_version: "1.1"
|
44
44
|
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
|
45
|
-
|
45
|
+
- request:
|
46
|
+
method: get
|
47
|
+
uri: http://www.example.com/api?action=testnostatus&vserverid=1&id=api_id&key=api_key
|
48
|
+
body:
|
49
|
+
encoding: UTF-8
|
50
|
+
string: ""
|
51
|
+
headers: {}
|
52
|
+
response:
|
53
|
+
status:
|
54
|
+
code: 200
|
55
|
+
message: OK
|
56
|
+
body:
|
57
|
+
encoding: UTF-8
|
58
|
+
string: <mainipaddress>123.123.123.123</mainipaddress>
|
59
|
+
<extraipaddress>122.122.122.122,111.111.111.111</extraipaddress>
|
60
|
+
<rootpassword>123456</rootpassword>
|
61
|
+
<vserverid>100</vserverid>
|
62
|
+
<consoleuser>console-123</consoleuser>
|
63
|
+
<consolepassword>123456</consolepassword>
|
64
|
+
<hostname>server.hostname.com</hostname>
|
65
|
+
<virtid>vm101|101</virtid>
|
66
|
+
http_version: "1.1"
|
67
|
+
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
|
68
|
+
recorded_with: VCR 2.0.0
|
@@ -0,0 +1,28 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://www.test.com/api?action=testconfig&vserverid=1&id=instance_id&key=instance_key
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ""
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
body:
|
15
|
+
encoding: UTF-8
|
16
|
+
string: <status>success</status>
|
17
|
+
<statusmsg>Virtual server created</statusmsg>
|
18
|
+
<mainipaddress>123.123.123.123</mainipaddress>
|
19
|
+
<extraipaddress>122.122.122.122,111.111.111.111</extraipaddress>
|
20
|
+
<rootpassword>123456</rootpassword>
|
21
|
+
<vserverid>100</vserverid>
|
22
|
+
<consoleuser>console-123</consoleuser>
|
23
|
+
<consolepassword>123456</consolepassword>
|
24
|
+
<hostname>server.hostname.com</hostname>
|
25
|
+
<virtid>vm101|101</virtid>
|
26
|
+
http_version: "1.1"
|
27
|
+
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
|
28
|
+
recorded_with: VCR 2.0.0
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://www.example.com/api?action=listnodegroups&id=api_id&key=api_key
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ""
|
9
|
+
headers: {}
|
10
|
+
response:
|
11
|
+
status:
|
12
|
+
code: 200
|
13
|
+
message: OK
|
14
|
+
body:
|
15
|
+
encoding: UTF-8
|
16
|
+
string: <status>success</status>
|
17
|
+
<statusmsg></statusmsg>
|
18
|
+
<nodegroups>0|--none--,1|nodegroup1,2|nodegroup2,3|nodegroup3</nodegroups>
|
19
|
+
http_version: "1.1"
|
20
|
+
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://www.example.com/api?action=vserver-addip&vserverid=1&id=api_id&key=api_key
|
6
|
+
body: ''
|
7
|
+
headers: {}
|
8
|
+
response:
|
9
|
+
status:
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
body: <status>success</status><statusmsg>Ip address added</statusmsg><ipaddress>123.123.123.123</ipaddress>
|
13
|
+
http_version: '1.1'
|
14
|
+
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
|
15
|
+
recorded_with: VCR 2.0.0
|
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://www.example.com/api?action=vserver-delip&vserverid=1&ipaddr=123.123.123.123&id=api_id&key=api_key
|
6
|
+
body: ''
|
7
|
+
headers: {}
|
8
|
+
response:
|
9
|
+
status:
|
10
|
+
code: 200
|
11
|
+
message: OK
|
12
|
+
body: <status>success</status><statusmsg>Ip address deleted</statusmsg>
|
13
|
+
http_version: '1.1'
|
14
|
+
recorded_at: Tue, 01 Nov 2011 04:58:44 GMT
|
15
|
+
recorded_with: VCR 2.0.0
|