fog-softlayer 0.2.1 → 0.3.1

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.
Files changed (79) hide show
  1. checksums.yaml +8 -8
  2. data/.travis.yml +0 -1
  3. data/CHANGELOG.md +25 -9
  4. data/CONTRIBUTING.md +13 -25
  5. data/CONTRIBUTORS.md +1 -1
  6. data/Rakefile +3 -3
  7. data/examples/compute.md +114 -3
  8. data/examples/network.md +285 -0
  9. data/examples/tags.md +76 -1
  10. data/fog-softlayer.gemspec +2 -3
  11. data/lib/fog/softlayer.rb +2 -0
  12. data/lib/fog/softlayer/compute.rb +16 -73
  13. data/lib/fog/softlayer/core.rb +105 -1
  14. data/lib/fog/softlayer/models/compute/flavor.rb +1 -0
  15. data/lib/fog/softlayer/models/compute/flavors.rb +1 -0
  16. data/lib/fog/softlayer/models/compute/image.rb +1 -0
  17. data/lib/fog/softlayer/models/compute/images.rb +1 -0
  18. data/lib/fog/softlayer/models/compute/server.rb +71 -12
  19. data/lib/fog/softlayer/models/compute/servers.rb +9 -5
  20. data/lib/fog/softlayer/models/compute/tag.rb +5 -6
  21. data/lib/fog/softlayer/models/compute/tags.rb +1 -0
  22. data/lib/fog/softlayer/models/network/datacenter.rb +52 -0
  23. data/lib/fog/softlayer/models/network/datacenters.rb +42 -0
  24. data/lib/fog/softlayer/models/network/ip.rb +67 -0
  25. data/lib/fog/softlayer/models/network/ips.rb +39 -0
  26. data/lib/fog/softlayer/models/network/network.rb +121 -0
  27. data/lib/fog/softlayer/models/network/networks.rb +47 -0
  28. data/lib/fog/softlayer/models/network/subnet.rb +62 -0
  29. data/lib/fog/softlayer/models/network/subnets.rb +33 -0
  30. data/lib/fog/softlayer/models/network/tag.rb +54 -0
  31. data/lib/fog/softlayer/models/network/tags.rb +40 -0
  32. data/lib/fog/softlayer/models/storage/directories.rb +7 -0
  33. data/lib/fog/softlayer/models/storage/directory.rb +7 -0
  34. data/lib/fog/softlayer/models/storage/file.rb +7 -0
  35. data/lib/fog/softlayer/models/storage/files.rb +7 -0
  36. data/lib/fog/softlayer/network.rb +139 -0
  37. data/lib/fog/softlayer/requests/compute/create_bare_metal_server.rb +1 -1
  38. data/lib/fog/softlayer/requests/compute/get_vms.rb +1 -1
  39. data/lib/fog/softlayer/requests/network/create_network.rb +488 -0
  40. data/lib/fog/softlayer/requests/network/create_network_tags.rb +50 -0
  41. data/lib/fog/softlayer/requests/network/delete_network.rb +37 -0
  42. data/lib/fog/softlayer/requests/network/delete_network_tags.rb +46 -0
  43. data/lib/fog/softlayer/requests/network/get_datacenter_routers.rb +41 -0
  44. data/lib/fog/softlayer/requests/network/get_datacenters.rb +30 -0
  45. data/lib/fog/softlayer/requests/network/get_ip_address.rb +28 -0
  46. data/lib/fog/softlayer/requests/network/get_network.rb +34 -0
  47. data/lib/fog/softlayer/requests/network/get_network_tags.rb +47 -0
  48. data/lib/fog/softlayer/requests/network/get_private_vlan_price_code.rb +27 -0
  49. data/lib/fog/softlayer/requests/network/get_public_vlan_price_code.rb +27 -0
  50. data/lib/fog/softlayer/requests/network/get_references_by_tag_name.rb +42 -0
  51. data/lib/fog/softlayer/requests/network/get_subnet.rb +28 -0
  52. data/lib/fog/softlayer/requests/network/get_subnet_package_id.rb +29 -0
  53. data/lib/fog/softlayer/requests/network/get_subnet_price_code.rb +30 -0
  54. data/lib/fog/softlayer/requests/network/list_networks.rb +30 -0
  55. data/lib/fog/softlayer/requests/network/list_subnets.rb +28 -0
  56. data/lib/fog/softlayer/storage.rb +7 -0
  57. data/lib/fog/softlayer/version.rb +2 -1
  58. data/tests/compute/flavors_helper.rb +1 -0
  59. data/tests/compute/server_helper.rb +1 -0
  60. data/tests/compute/servers_helper.rb +1 -0
  61. data/tests/helper.rb +7 -0
  62. data/tests/helpers/collection_helper.rb +7 -0
  63. data/tests/helpers/compute/flavors_helper.rb +7 -0
  64. data/tests/helpers/compute/server_helper.rb +7 -0
  65. data/tests/helpers/compute/servers_helper.rb +7 -0
  66. data/tests/helpers/formats_helper.rb +7 -0
  67. data/tests/helpers/formats_helper_tests.rb +7 -0
  68. data/tests/helpers/mock_helper.rb +7 -0
  69. data/tests/helpers/model_helper.rb +7 -0
  70. data/tests/helpers/responds_to_helper.rb +7 -0
  71. data/tests/helpers/schema_validator_tests.rb +7 -0
  72. data/tests/helpers/succeeds_helper.rb +7 -0
  73. data/tests/softlayer/compute/helper.rb +1 -0
  74. data/tests/softlayer/compute/schema.rb +1 -0
  75. data/tests/softlayer/models/compute/server_tests.rb +31 -4
  76. data/tests/softlayer/requests/compute/bmc_tests.rb +4 -3
  77. data/tests/softlayer/requests/compute/tag_tests.rb +1 -1
  78. data/tests/softlayer/requests/network/network_tests.rb +129 -0
  79. metadata +35 -25
@@ -0,0 +1,29 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
8
+ module Fog
9
+ module Network
10
+ class Softlayer
11
+
12
+ class Mock
13
+
14
+ def get_subnet_package_id
15
+ 42
16
+ end
17
+
18
+ end
19
+
20
+ class Real
21
+ def get_subnet_package_id
22
+ request(:product_package, '0/get_configuration', :query => 'objectMask=mask[isRequired,itemCategory]').body.map do |item|
23
+ item['itemCategory']['id'] if item['itemCategory']['categoryCode'] == 'static_sec_ip_addresses'
24
+ end.compact.first
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,30 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
8
+ module Fog
9
+ module Network
10
+ class Softlayer
11
+
12
+ class Mock
13
+
14
+ def get_subnet_price_code
15
+ 42
16
+ end
17
+
18
+ end
19
+
20
+ class Real
21
+ def get_subnet_price_code
22
+ subnet_package_id = get_subnet_package_id
23
+ request(:product_package, '0/get_item_prices', :query => 'objectMask=mask[id,categories.id,item.description]').body.map do |item|
24
+ item['id'] if item['categories'][0]['id'] == subnet_package_id
25
+ end.compact.first
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
8
+ module Fog
9
+ module Network
10
+ class Softlayer
11
+
12
+ class Mock
13
+
14
+ def list_networks
15
+ response = Excon::Response.new
16
+ response.body = @networks
17
+ response.status = 200
18
+ response
19
+ end
20
+
21
+ end
22
+
23
+ class Real
24
+ def list_networks
25
+ self.request(:account, :get_network_vlans, :query => 'objectMask=mask[subnets.id,subnets.note,subnets.subnetType,type,primaryRouter.datacenter,tagReferences,networkSpace]')
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,28 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
8
+ module Fog
9
+ module Network
10
+ class Softlayer
11
+
12
+ class Mock
13
+
14
+ def list_subnets
15
+ # TODO: Implement.
16
+ raise Fog::Errors::MockNotImplemented
17
+ end
18
+
19
+ end
20
+
21
+ class Real
22
+ def list_subnets
23
+ self.request(:account, :get_subnets, :query => 'objectMask=mask[networkVlan,ipAddresses.id,datacenter,hardware,virtualGuests.id,virtualGuests.fullyQualifiedDomainName]')
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  require 'fog/softlayer/core'
2
9
 
3
10
  module Fog
@@ -4,8 +4,9 @@
4
4
  #
5
5
  # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
6
  #
7
+
7
8
  module Fog
8
9
  module Softlayer
9
- VERSION = "0.2.1"
10
+ VERSION = "0.3.1"
10
11
  end
11
12
  end
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
6
  #
7
+
7
8
  def flavors_tests(connection, params = {}, mocks_implemented = true)
8
9
 
9
10
  tests('success') do
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
6
  #
7
+
7
8
  def server_tests(connection, params = {}, mocks_implemented = true)
8
9
 
9
10
  model_tests(connection.servers, params, mocks_implemented) do
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
6
  #
7
+
7
8
  def servers_tests(connection, params = {}, mocks_implemented = true)
8
9
 
9
10
  collection_tests(connection.servers, params, mocks_implemented) do
data/tests/helper.rb CHANGED
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  require 'simplecov'
2
9
  require 'securerandom'
3
10
 
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  def collection_tests(collection, params = {}, mocks_implemented = true)
2
9
 
3
10
  tests('success') do
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  def flavors_tests(connection, params = {}, mocks_implemented = true)
2
9
 
3
10
  tests('success') do
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  def server_tests(connection, params = {}, mocks_implemented = true)
2
9
 
3
10
  model_tests(connection.servers, params, mocks_implemented) do
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  def servers_tests(connection, params = {}, mocks_implemented = true)
2
9
 
3
10
  collection_tests(connection.servers, params, mocks_implemented) do
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  require "fog/schema/data_validator"
2
9
 
3
10
  # format related hackery
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  Shindo.tests('test_helper', 'meta') do
2
9
 
3
10
  tests('comparing welcome data against schema') do
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  # Use so you can run in mock mode from the command line
2
9
  #
3
10
  # FOG_MOCK=true fog
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  def model_tests(collection, params = {}, mocks_implemented = true)
2
9
 
3
10
  tests('success') do
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  module Shindo
2
9
  class Tests
3
10
 
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  Shindo.tests('Fog::Schema::DataValidator', 'meta') do
2
9
 
3
10
  validator = Fog::Schema::DataValidator.new
@@ -1,3 +1,10 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
1
8
  module Shindo
2
9
  class Tests
3
10
 
@@ -4,4 +4,5 @@
4
4
  #
5
5
  # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
6
  #
7
+
7
8
  require File.expand_path("schema", File.dirname(__FILE__))
@@ -4,6 +4,7 @@
4
4
  #
5
5
  # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
6
  #
7
+
7
8
  module Fog
8
9
  module Softlayer
9
10
  module Nullable
@@ -14,7 +14,8 @@ Shindo.tests("Fog::Compute[:softlayer] | Server model", ["softlayer"]) do
14
14
  :image_id => '23f7f05f-3657-4330-8772-329ed2e816bc',
15
15
  :name => 'test-vm',
16
16
  :domain => 'example.com',
17
- :datacenter => 'dal05'
17
+ :datacenter => 'dal05',
18
+ :bare_metal => false
18
19
  }
19
20
 
20
21
  bmc_opts = {
@@ -22,8 +23,8 @@ Shindo.tests("Fog::Compute[:softlayer] | Server model", ["softlayer"]) do
22
23
  :os_code => 'UBUNTU_LATEST',
23
24
  :name => 'test-bmc',
24
25
  :domain => 'bare-metal-server.com',
25
- :bare_metal => true,
26
- :datecenter => 'dal05'
26
+ :datecenter => 'dal05',
27
+ :bare_metal => true
27
28
  }
28
29
 
29
30
  @vm = Fog::Compute[:softlayer].servers.new(vm_opts)
@@ -66,7 +67,33 @@ Shindo.tests("Fog::Compute[:softlayer] | Server model", ["softlayer"]) do
66
67
  end
67
68
 
68
69
  tests ("failure") do
69
-
70
+
71
+ # should not allow Virtual Guests creation without bare_metal flag
72
+ tests(".new").raises(Exception) do
73
+ # As we don't have fixture I don't touch original vm_opts
74
+ nobm_vm_opts = vm_opts.clone
75
+ nobm_vm_opts.delete(:bare_metal)
76
+ Fog::Compute[:softlayer].servers.new(nobm_vm_opts)
77
+ end
78
+
79
+ # should not allow Bare Metal creation without bare_metal flag
80
+ tests(".new").raises(Exception) do
81
+ # As we don't have fixture I don't touch original bmc_opts
82
+ nobm_bmc_opts = bmc_opts.clone
83
+ nobm_bmc_opts.delete(:bare_metal)
84
+ Fog::Compute[:softlayer].servers.new(nobm_bmc_opts)
85
+ end
86
+
87
+ # should not allow a set bare_metal flag manually on Virtual Guests
88
+ tests("#bare_metal=").raises(NoMethodError) do
89
+ @vm.bare_metal = true
90
+ end
91
+
92
+ # should not allow a set bare_metal flag manually on Bare Metal Servers
93
+ tests("#bare_metal=").raises(NoMethodError) do
94
+ @vm.bare_metal = false
95
+ end
96
+
70
97
  # should not allow a second save
71
98
  tests("#save").raises(Fog::Errors::Error) do
72
99
  @vm.save
@@ -12,18 +12,19 @@ Shindo.tests("Fog::Compute[:softlayer] | server requests", ["softlayer"]) do
12
12
 
13
13
  @bmc = {
14
14
  :operatingSystemReferenceCode => 'UBUNTU_LATEST',
15
- :processorCoreAmount => 1,
16
- :memoryCapacity => 1,
15
+ :processorCoreAmount => 2,
16
+ :memoryCapacity => 2,
17
17
  :hourlyBillingFlag => true,
18
18
  :domain => 'example.com',
19
19
  :hostname => 'test',
20
+ :datacenter => { :name => 'wdc01' }
20
21
  }
21
22
 
22
23
  tests("#create_bare_metal_server('#{@bmc}')") do
23
24
  response = @sl_connection.create_bare_metal_server(@bmc)
24
25
  @server_id = response.body['id']
25
26
  data_matches_schema(Softlayer::Compute::Formats::BareMetal::SERVER, {:allow_extra_keys => true}) { response.body }
26
- data_matches_schema(200) { response.status }
27
+ data_matches_schema(201) { response.status }
27
28
  end
28
29
 
29
30
  tests("#get_bare_metal_servers()") do
@@ -9,7 +9,7 @@ Shindo.tests("Fog::Compute[:softlayer] | tag requests", ["softlayer"]) do
9
9
 
10
10
  @sl_connection = Fog::Compute[:softlayer]
11
11
 
12
- opts = { :flavor_id => 'm1.small', :os_code => 'UBUNTU_LATEST', :name => 'matt', :datacenter => 'dal05'}
12
+ opts = { :flavor_id => 'm1.small', :os_code => 'UBUNTU_LATEST', :name => 'matt', :datacenter => 'dal05', :bare_metal => false}
13
13
  @vm = @sl_connection.servers.create(opts)
14
14
 
15
15
  opts[:bare_metal] = true
@@ -0,0 +1,129 @@
1
+ #
2
+ # Author:: Matt Eldridge (<matt.eldridge@us.ibm.com>)
3
+ # © Copyright IBM Corporation 2014.
4
+ #
5
+ # LICENSE: MIT (http://opensource.org/licenses/MIT)
6
+ #
7
+
8
+ Shindo.tests("Fog::Network[:softlayer] | network requests", ["softlayer"]) do
9
+
10
+ @sl = Fog::Network[:softlayer]
11
+
12
+ @order = {
13
+ 'complexType' => 'SoftLayer_Container_Product_Order_Network_Vlan',
14
+ 'name' => 'test-vlan',
15
+ 'routerId' => 1234,
16
+ 'router' => 'fcr01a.xxx01',
17
+ 'location' => 1234,
18
+ 'quantity' =>1,
19
+ 'packageId' =>0,
20
+ 'prices' =>[
21
+ {'id' => 42 },
22
+ {'id' => 42 },
23
+ ]
24
+ }
25
+
26
+
27
+ tests('success') do
28
+
29
+ tests("#get_private_vlan_price_code") do
30
+ data_matches_schema(Integer) { @sl.get_private_vlan_price_code }
31
+ end
32
+
33
+ tests("#get_public_vlan_price_code") do
34
+ data_matches_schema(Integer) { @sl.get_public_vlan_price_code }
35
+ end
36
+
37
+ tests("#get_subnet_package_id") do
38
+ data_matches_schema(Integer) { @sl.get_subnet_package_id }
39
+ end
40
+
41
+ tests("#get_subnet_price_code") do
42
+ data_matches_schema(Integer) { @sl.get_subnet_price_code }
43
+ end
44
+
45
+ tests("#create_network(#{@order})") do
46
+ returns(@order['router']) { @sl.create_network(@order).body['orderDetails']['router']['hostname'] }
47
+ returns(200) { @sl.create_network(@order).status }
48
+ end
49
+
50
+ tests("#list_networks") do
51
+ @network_ids = @sl.list_networks.body.map { |vlan| vlan['id'] }
52
+ returns(2) { @network_ids.count }
53
+ end
54
+
55
+ tests("#get_network(#{@network_ids[0]})") do
56
+ returns(200) { @sl.get_network(@network_ids[0]).status}
57
+ returns(200) { @sl.get_network(@network_ids[1]).status}
58
+ end
59
+
60
+ tests("#create_network_tags(#{@network_ids[0]}, ['sparkle', 'motion'])") do
61
+ returns(200) { @sl.create_network_tags(@network_ids[0], ['sparkle', 'motion']).status }
62
+ end
63
+
64
+ tests("#get_network_tags(#{@network_ids[0]})") do
65
+ tags = @sl.get_network_tags(@network_ids[0]).body['tagReferences'].map { |ref| ref['tag']['name'] }
66
+ returns(2) { tags.count }
67
+ returns(true) { ['sparkle', 'motion'].include?(tags[0]) }
68
+ returns(true) { ['sparkle', 'motion'].include?(tags[1]) }
69
+ end
70
+
71
+ tests("#delete_network_tags(#{@network_ids[0]}, ['sparkle'])") do
72
+ returns(200) { @sl.delete_network_tags(@network_ids[0], ['sparkle']).status }
73
+ tags = @sl.get_network_tags(@network_ids[0]).body['tagReferences'].map { |ref| ref['tag']['name'] }
74
+ returns(1) { tags.count }
75
+ returns(false) { ['sparkle'].include?( tags[0]) }
76
+ returns(true) { ['motion'].include?( tags[0]) }
77
+ end
78
+
79
+ tests("#delete_network(#{@network_ids[1]})") do
80
+ response = @sl.delete_network(@network_ids[1])
81
+ returns(200) { response.status }
82
+ returns(true) { response.body }
83
+ end
84
+
85
+
86
+
87
+
88
+ end
89
+
90
+ tests('failure') do
91
+ tests("#create_network").raises(ArgumentError) do
92
+ @sl.create_network
93
+ end
94
+
95
+ tests("#get_network").raises(ArgumentError) do
96
+ @sl.get_network
97
+ end
98
+
99
+ tests("#get_network(#{@network_ids[1]})") do
100
+ returns(404) { @sl.get_network(@network_ids[1]).status }
101
+ end
102
+
103
+ tests("#create_network_tags(#{@network_ids[1]}, ['sparkle', 'motion'])") do
104
+ returns(404) { @sl.create_network_tags(@network_ids[1], ['sparkle', 'motion']).status }
105
+ end
106
+
107
+ tests("#create_network_tags(#{@network_ids[0]}, 'sparkle,motion')").raises(ArgumentError) do
108
+ @sl.create_network_tags(@network_ids[0], 'sparkle,motion').status
109
+ end
110
+
111
+ tests("#get_network_tags(#{@network_ids[1]})") do
112
+ returns(404) { @sl.get_network_tags(@network_ids[1]).status }
113
+ end
114
+
115
+ tests("#delete_network_tags(#{@network_ids[1]}, ['sparkle'])") do
116
+ returns(404) { @sl.delete_network_tags(@network_ids[1], ['sparkle']).status }
117
+ end
118
+
119
+ tests("#delete_network_tags(#{@network_ids[0]}, 'sparkle')").raises(ArgumentError) do
120
+ @sl.delete_network_tags(@network_ids[0], 'sparkle').status
121
+ end
122
+
123
+ tests("#delete_network(#{@network_ids[1]})") do
124
+ returns(404) { @sl.delete_network(@network_ids[1]).status }
125
+ end
126
+
127
+
128
+ end
129
+ end