1and1 1.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 (290) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/1and1-1.0.gem +0 -0
  4. data/1and1.gemspec +20 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +201 -0
  7. data/README.md +499 -0
  8. data/docs/reference.md +2447 -0
  9. data/examples/dvd_examples.rb +15 -0
  10. data/examples/example_app.rb +100 -0
  11. data/examples/firewall_examples.rb +137 -0
  12. data/examples/image_examples.rb +48 -0
  13. data/examples/load_balancer_examples.rb +145 -0
  14. data/examples/log_examples.rb +15 -0
  15. data/examples/monitoring_center_examples.rb +15 -0
  16. data/examples/monitoring_policy_examples.rb +343 -0
  17. data/examples/private_network_examples.rb +86 -0
  18. data/examples/public_ip_examples.rb +42 -0
  19. data/examples/role_examples.rb +113 -0
  20. data/examples/server_appliance_examples.rb +15 -0
  21. data/examples/server_examples.rb +438 -0
  22. data/examples/shared_storage_examples.rb +108 -0
  23. data/examples/usage_examples.rb +6 -0
  24. data/examples/user_examples.rb +113 -0
  25. data/examples/vpn_examples.rb +56 -0
  26. data/lib/1and1/datacenter.rb +73 -0
  27. data/lib/1and1/dvd.rb +73 -0
  28. data/lib/1and1/firewall.rb +427 -0
  29. data/lib/1and1/image.rb +231 -0
  30. data/lib/1and1/load_balancer.rb +448 -0
  31. data/lib/1and1/log.rb +77 -0
  32. data/lib/1and1/monitoring_center.rb +84 -0
  33. data/lib/1and1/monitoring_policy.rb +598 -0
  34. data/lib/1and1/oneandone.rb +57 -0
  35. data/lib/1and1/ping.rb +41 -0
  36. data/lib/1and1/ping_auth.rb +41 -0
  37. data/lib/1and1/pricing.rb +41 -0
  38. data/lib/1and1/private_network.rb +333 -0
  39. data/lib/1and1/public_ip.rb +192 -0
  40. data/lib/1and1/role.rb +381 -0
  41. data/lib/1and1/server.rb +1208 -0
  42. data/lib/1and1/server_appliance.rb +73 -0
  43. data/lib/1and1/shared_storage.rb +379 -0
  44. data/lib/1and1/usage.rb +58 -0
  45. data/lib/1and1/user.rb +374 -0
  46. data/lib/1and1/vpn.rb +249 -0
  47. data/lib/oneandone.rb +27 -0
  48. data/sphinx/Makefile +192 -0
  49. data/sphinx/_build/doctrees/dvds.doctree +0 -0
  50. data/sphinx/_build/doctrees/environment.pickle +0 -0
  51. data/sphinx/_build/doctrees/firewalls.doctree +0 -0
  52. data/sphinx/_build/doctrees/images.doctree +0 -0
  53. data/sphinx/_build/doctrees/index.doctree +0 -0
  54. data/sphinx/_build/doctrees/load_balancers.doctree +0 -0
  55. data/sphinx/_build/doctrees/logs.doctree +0 -0
  56. data/sphinx/_build/doctrees/monitoring_center.doctree +0 -0
  57. data/sphinx/_build/doctrees/monitoring_policies.doctree +0 -0
  58. data/sphinx/_build/doctrees/private_networks.doctree +0 -0
  59. data/sphinx/_build/doctrees/public_ips.doctree +0 -0
  60. data/sphinx/_build/doctrees/server_appliances.doctree +0 -0
  61. data/sphinx/_build/doctrees/servers.doctree +0 -0
  62. data/sphinx/_build/doctrees/shared_storages.doctree +0 -0
  63. data/sphinx/_build/doctrees/usages.doctree +0 -0
  64. data/sphinx/_build/doctrees/users.doctree +0 -0
  65. data/sphinx/_build/html/.buildinfo +4 -0
  66. data/sphinx/_build/html/_sources/dvds.txt +42 -0
  67. data/sphinx/_build/html/_sources/firewalls.txt +189 -0
  68. data/sphinx/_build/html/_sources/images.txt +101 -0
  69. data/sphinx/_build/html/_sources/index.txt +499 -0
  70. data/sphinx/_build/html/_sources/load_balancers.txt +231 -0
  71. data/sphinx/_build/html/_sources/logs.txt +55 -0
  72. data/sphinx/_build/html/_sources/monitoring_center.txt +55 -0
  73. data/sphinx/_build/html/_sources/monitoring_policies.txt +288 -0
  74. data/sphinx/_build/html/_sources/private_networks.txt +146 -0
  75. data/sphinx/_build/html/_sources/public_ips.txt +78 -0
  76. data/sphinx/_build/html/_sources/server_appliances.txt +42 -0
  77. data/sphinx/_build/html/_sources/servers.txt +630 -0
  78. data/sphinx/_build/html/_sources/shared_storages.txt +160 -0
  79. data/sphinx/_build/html/_sources/usages.txt +45 -0
  80. data/sphinx/_build/html/_sources/users.txt +172 -0
  81. data/sphinx/_build/html/_static/ajax-loader.gif +0 -0
  82. data/sphinx/_build/html/_static/alabaster.css +585 -0
  83. data/sphinx/_build/html/_static/basic.css +599 -0
  84. data/sphinx/_build/html/_static/comment-bright.png +0 -0
  85. data/sphinx/_build/html/_static/comment-close.png +0 -0
  86. data/sphinx/_build/html/_static/comment.png +0 -0
  87. data/sphinx/_build/html/_static/doctools.js +263 -0
  88. data/sphinx/_build/html/_static/down-pressed.png +0 -0
  89. data/sphinx/_build/html/_static/down.png +0 -0
  90. data/sphinx/_build/html/_static/file.png +0 -0
  91. data/sphinx/_build/html/_static/jquery-1.11.1.js +10308 -0
  92. data/sphinx/_build/html/_static/jquery.js +4 -0
  93. data/sphinx/_build/html/_static/minus.png +0 -0
  94. data/sphinx/_build/html/_static/plus.png +0 -0
  95. data/sphinx/_build/html/_static/pygments.css +63 -0
  96. data/sphinx/_build/html/_static/searchtools.js +651 -0
  97. data/sphinx/_build/html/_static/underscore-1.3.1.js +999 -0
  98. data/sphinx/_build/html/_static/underscore.js +31 -0
  99. data/sphinx/_build/html/_static/up-pressed.png +0 -0
  100. data/sphinx/_build/html/_static/up.png +0 -0
  101. data/sphinx/_build/html/_static/websupport.js +808 -0
  102. data/sphinx/_build/html/dvds.html +151 -0
  103. data/sphinx/_build/html/firewalls.html +397 -0
  104. data/sphinx/_build/html/genindex.html +114 -0
  105. data/sphinx/_build/html/images.html +236 -0
  106. data/sphinx/_build/html/index.html +571 -0
  107. data/sphinx/_build/html/load_balancers.html +409 -0
  108. data/sphinx/_build/html/logs.html +160 -0
  109. data/sphinx/_build/html/monitoring_center.html +160 -0
  110. data/sphinx/_build/html/monitoring_policies.html +530 -0
  111. data/sphinx/_build/html/objects.inv +0 -0
  112. data/sphinx/_build/html/private_networks.html +316 -0
  113. data/sphinx/_build/html/public_ips.html +215 -0
  114. data/sphinx/_build/html/rb-modindex.html +106 -0
  115. data/sphinx/_build/html/search.html +99 -0
  116. data/sphinx/_build/html/searchindex.js +1 -0
  117. data/sphinx/_build/html/server_appliances.html +153 -0
  118. data/sphinx/_build/html/servers.html +994 -0
  119. data/sphinx/_build/html/shared_storages.html +349 -0
  120. data/sphinx/_build/html/usages.html +140 -0
  121. data/sphinx/_build/html/users.html +363 -0
  122. data/sphinx/conf.py +287 -0
  123. data/sphinx/dvds.rst +42 -0
  124. data/sphinx/firewalls.rst +189 -0
  125. data/sphinx/images.rst +101 -0
  126. data/sphinx/index.rst +499 -0
  127. data/sphinx/load_balancers.rst +231 -0
  128. data/sphinx/logs.rst +55 -0
  129. data/sphinx/make.bat +263 -0
  130. data/sphinx/monitoring_center.rst +55 -0
  131. data/sphinx/monitoring_policies.rst +288 -0
  132. data/sphinx/private_networks.rst +146 -0
  133. data/sphinx/public_ips.rst +78 -0
  134. data/sphinx/server_appliances.rst +42 -0
  135. data/sphinx/servers.rst +630 -0
  136. data/sphinx/shared_storages.rst +160 -0
  137. data/sphinx/usages.rst +45 -0
  138. data/sphinx/users.rst +172 -0
  139. data/test/mock-api/add-firewall.json +66 -0
  140. data/test/mock-api/add-hdd.json +49 -0
  141. data/test/mock-api/add-lb.json +71 -0
  142. data/test/mock-api/add-new-ip.json +18 -0
  143. data/test/mock-api/add-pn.json +66 -0
  144. data/test/mock-api/add-port-mp.json +81 -0
  145. data/test/mock-api/add-process-mp.json +20 -0
  146. data/test/mock-api/add-rule-fp.json +33 -0
  147. data/test/mock-api/add-rule-lb.json +40 -0
  148. data/test/mock-api/add-server-ip.json +66 -0
  149. data/test/mock-api/add-server-mp.json +66 -0
  150. data/test/mock-api/assign-ip-fp.json +32 -0
  151. data/test/mock-api/assign-server-lb.json +39 -0
  152. data/test/mock-api/attach-server-pn.json +14 -0
  153. data/test/mock-api/attach-server-storage.json +24 -0
  154. data/test/mock-api/change-api-key.json +15 -0
  155. data/test/mock-api/change-password.json +5 -0
  156. data/test/mock-api/change-server-status.json +70 -0
  157. data/test/mock-api/clone-server.json +29 -0
  158. data/test/mock-api/create-fp.json +26 -0
  159. data/test/mock-api/create-image.json +30 -0
  160. data/test/mock-api/create-lb.json +33 -0
  161. data/test/mock-api/create-mp.json +81 -0
  162. data/test/mock-api/create-pn.json +11 -0
  163. data/test/mock-api/create-public-ip.json +10 -0
  164. data/test/mock-api/create-server.json +34 -0
  165. data/test/mock-api/create-snapshot.json +74 -0
  166. data/test/mock-api/create-storage.json +13 -0
  167. data/test/mock-api/create-user.json +14 -0
  168. data/test/mock-api/delete-fp.json +26 -0
  169. data/test/mock-api/delete-image.json +26 -0
  170. data/test/mock-api/delete-ip.json +15 -0
  171. data/test/mock-api/delete-lb.json +33 -0
  172. data/test/mock-api/delete-mp.json +71 -0
  173. data/test/mock-api/delete-pn.json +11 -0
  174. data/test/mock-api/delete-public-ip.json +10 -0
  175. data/test/mock-api/delete-rule-fp.json +26 -0
  176. data/test/mock-api/delete-server.json +50 -0
  177. data/test/mock-api/delete-snapshot.json +74 -0
  178. data/test/mock-api/delete-storage.json +24 -0
  179. data/test/mock-api/delete-user.json +15 -0
  180. data/test/mock-api/detach-server-lb.json +33 -0
  181. data/test/mock-api/detach-server-mp.json +65 -0
  182. data/test/mock-api/detach-server-storage.json +19 -0
  183. data/test/mock-api/edit-image.json +26 -0
  184. data/test/mock-api/eject-dvd.json +66 -0
  185. data/test/mock-api/fixed-server-flavors.json +70 -0
  186. data/test/mock-api/get-appliance.json +16 -0
  187. data/test/mock-api/get-dvd.json +9 -0
  188. data/test/mock-api/get-firewall.json +26 -0
  189. data/test/mock-api/get-fixed-server.json +17 -0
  190. data/test/mock-api/get-fp-rule.json +7 -0
  191. data/test/mock-api/get-hardware.json +13 -0
  192. data/test/mock-api/get-hdd.json +5 -0
  193. data/test/mock-api/get-image.json +26 -0
  194. data/test/mock-api/get-lb-rule.json +7 -0
  195. data/test/mock-api/get-lb-server.json +5 -0
  196. data/test/mock-api/get-load-balancer.json +33 -0
  197. data/test/mock-api/get-log.json +23 -0
  198. data/test/mock-api/get-monitoring-center.json +161 -0
  199. data/test/mock-api/get-mp-port.json +7 -0
  200. data/test/mock-api/get-mp-process.json +6 -0
  201. data/test/mock-api/get-mp-server.json +4 -0
  202. data/test/mock-api/get-mp.json +65 -0
  203. data/test/mock-api/get-pn-server.json +4 -0
  204. data/test/mock-api/get-private-network.json +20 -0
  205. data/test/mock-api/get-public-ip.json +10 -0
  206. data/test/mock-api/get-server-dvd.json +4 -0
  207. data/test/mock-api/get-server-image.json +4 -0
  208. data/test/mock-api/get-server-ip-fp.json +4 -0
  209. data/test/mock-api/get-server-ip.json +8 -0
  210. data/test/mock-api/get-server-pn.json +16 -0
  211. data/test/mock-api/get-server-status.json +4 -0
  212. data/test/mock-api/get-server-storage.json +5 -0
  213. data/test/mock-api/get-server.json +44 -0
  214. data/test/mock-api/get-storage.json +19 -0
  215. data/test/mock-api/get-usage.json +161 -0
  216. data/test/mock-api/get-user-api-key.json +3 -0
  217. data/test/mock-api/get-user-api.json +7 -0
  218. data/test/mock-api/get-user.json +15 -0
  219. data/test/mock-api/list-appliances.json +66 -0
  220. data/test/mock-api/list-credentials.json +5 -0
  221. data/test/mock-api/list-dvds.json +128 -0
  222. data/test/mock-api/list-firewalls.json +54 -0
  223. data/test/mock-api/list-fp-rules.json +16 -0
  224. data/test/mock-api/list-hdds.json +7 -0
  225. data/test/mock-api/list-images.json +54 -0
  226. data/test/mock-api/list-lb-rules.json +16 -0
  227. data/test/mock-api/list-lb-servers.json +12 -0
  228. data/test/mock-api/list-load-balancers.json +68 -0
  229. data/test/mock-api/list-logs.json +49 -0
  230. data/test/mock-api/list-monitoring-center-usages.json +90 -0
  231. data/test/mock-api/list-mp-ports.json +16 -0
  232. data/test/mock-api/list-mp-processes.json +14 -0
  233. data/test/mock-api/list-mp-servers.json +10 -0
  234. data/test/mock-api/list-mps.json +152 -0
  235. data/test/mock-api/list-pn-servers.json +10 -0
  236. data/test/mock-api/list-private-networks.json +24 -0
  237. data/test/mock-api/list-public-ips.json +44 -0
  238. data/test/mock-api/list-server-fps.json +4 -0
  239. data/test/mock-api/list-server-ips-fp.json +7 -0
  240. data/test/mock-api/list-server-ips.json +10 -0
  241. data/test/mock-api/list-server-lbs.json +6 -0
  242. data/test/mock-api/list-server-pns.json +6 -0
  243. data/test/mock-api/list-servers.json +66 -0
  244. data/test/mock-api/list-snapshots.json +7 -0
  245. data/test/mock-api/list-storages.json +47 -0
  246. data/test/mock-api/list-usages.json +144 -0
  247. data/test/mock-api/list-user-ips.json +5 -0
  248. data/test/mock-api/list-users.json +31 -0
  249. data/test/mock-api/load-dvd.json +63 -0
  250. data/test/mock-api/modify-fp.json +26 -0
  251. data/test/mock-api/modify-lb.json +33 -0
  252. data/test/mock-api/modify-mp.json +81 -0
  253. data/test/mock-api/modify-pn.json +20 -0
  254. data/test/mock-api/modify-port-mp.json +81 -0
  255. data/test/mock-api/modify-process-mp.json +73 -0
  256. data/test/mock-api/modify-public-ip.json +10 -0
  257. data/test/mock-api/modify-server-hardware.json +44 -0
  258. data/test/mock-api/modify-server-hdd.json +54 -0
  259. data/test/mock-api/modify-server.json +44 -0
  260. data/test/mock-api/modify-storage.json +19 -0
  261. data/test/mock-api/modify-user-api.json +15 -0
  262. data/test/mock-api/modify-user.json +15 -0
  263. data/test/mock-api/reinstall-image.json +52 -0
  264. data/test/mock-api/remove-firewall-policy.json +26 -0
  265. data/test/mock-api/remove-hdd.json +54 -0
  266. data/test/mock-api/remove-ip-fp.json +26 -0
  267. data/test/mock-api/remove-lb.json +66 -0
  268. data/test/mock-api/remove-pn.json +71 -0
  269. data/test/mock-api/remove-port-mp.json +73 -0
  270. data/test/mock-api/remove-process-mp.json +66 -0
  271. data/test/mock-api/remove-rule-lb.json +33 -0
  272. data/test/mock-api/remove-server-ip.json +58 -0
  273. data/test/mock-api/remove-server-pn.json +16 -0
  274. data/test/mock-api/restore-snapshot.json +55 -0
  275. data/test/mock-api/storage-servers.json +12 -0
  276. data/test/test_mock_dvd.rb +55 -0
  277. data/test/test_mock_firewall.rb +309 -0
  278. data/test/test_mock_image.rb +123 -0
  279. data/test/test_mock_load_balancer.rb +312 -0
  280. data/test/test_mock_log.rb +55 -0
  281. data/test/test_mock_monitoring_center.rb +55 -0
  282. data/test/test_mock_monitoring_policy.rb +587 -0
  283. data/test/test_mock_private_network.rb +206 -0
  284. data/test/test_mock_public_ip.rb +118 -0
  285. data/test/test_mock_server.rb +929 -0
  286. data/test/test_mock_server_appliance.rb +55 -0
  287. data/test/test_mock_shared_storage.rb +256 -0
  288. data/test/test_mock_usage.rb +34 -0
  289. data/test/test_mock_user.rb +270 -0
  290. metadata +360 -0
@@ -0,0 +1,55 @@
1
+ require_relative '../lib/oneandone'
2
+ require 'minitest/autorun'
3
+
4
+ class TestServerAppliance < Minitest::Test
5
+ def setup
6
+
7
+ OneAndOne.start('TEST-API-KEY')
8
+ @appliance = OneAndOne::ServerAppliance.new(test: true)
9
+
10
+ end
11
+
12
+
13
+ def test_list
14
+
15
+ # Read in mock JSON
16
+ file = File.read('mock-api/list-appliances.json')
17
+ data = JSON.parse(file)
18
+
19
+ # Create stub and perform call
20
+ Excon.stub({:method => :get, :path => '/v1/server_appliances'},
21
+ {:body => JSON.generate(data), :status => 200})
22
+
23
+ response = @appliance.list
24
+
25
+ # Assertions
26
+ assert_equal response[0]['id'], data[0]['id']
27
+
28
+ # Clear out stubs
29
+ Excon.stubs.clear
30
+
31
+ end
32
+
33
+
34
+ def test_get
35
+
36
+ # Read in mock JSON
37
+ file = File.read('mock-api/get-appliance.json')
38
+ data = JSON.parse(file)
39
+
40
+ # Create stub and perform call
41
+ Excon.stub({:method => :get, :path => "/v1/server_appliances/#{data['id']}"},
42
+ {:body => JSON.generate(data), :status => 200})
43
+
44
+ response = @appliance.get(appliance_id: data['id'])
45
+
46
+ # Assertions
47
+ assert_equal response['id'], data['id']
48
+
49
+ # Clear out stubs
50
+ Excon.stubs.clear
51
+
52
+ end
53
+
54
+
55
+ end
@@ -0,0 +1,256 @@
1
+ require_relative '../lib/oneandone'
2
+ require 'minitest/autorun'
3
+
4
+ class TestSharedStorage < Minitest::Test
5
+ def setup
6
+
7
+ OneAndOne.start('TEST-API-KEY')
8
+ @shared_storage = OneAndOne::SharedStorage.new(test: true)
9
+
10
+ end
11
+
12
+
13
+ def test_list
14
+
15
+ # Read in mock JSON
16
+ file = File.read('mock-api/list-storages.json')
17
+ data = JSON.parse(file)
18
+
19
+ # Create stub and perform call
20
+ Excon.stub({:method => :get, :path => '/v1/shared_storages'},
21
+ {:body => JSON.generate(data), :status => 200})
22
+
23
+ response = @shared_storage.list
24
+
25
+ # Assertions
26
+ assert_equal response[0]['id'], data[0]['id']
27
+
28
+ # Clear out stubs
29
+ Excon.stubs.clear
30
+
31
+ end
32
+
33
+
34
+ def test_create
35
+
36
+ # Read in mock JSON
37
+ file = File.read('mock-api/create-storage.json')
38
+ data = JSON.parse(file)
39
+
40
+ # Create stub and perform call
41
+ Excon.stub({:method => :post, :path => '/v1/shared_storages'},
42
+ {:body => JSON.generate(data), :status => 202})
43
+
44
+ response = @shared_storage.create(name: data['name'],
45
+ description: data['description'], size: 200)
46
+
47
+ # Assertions
48
+ assert_equal response['size'], 200
49
+
50
+ # Clear out stubs
51
+ Excon.stubs.clear
52
+
53
+ end
54
+
55
+
56
+ def test_get
57
+
58
+ # Read in mock JSON
59
+ file = File.read('mock-api/get-storage.json')
60
+ data = JSON.parse(file)
61
+
62
+ # Create stub and perform call
63
+ Excon.stub({:method => :get, :path => "/v1/shared_storages/#{data['id']}"},
64
+ {:body => JSON.generate(data), :status => 200})
65
+
66
+ response = @shared_storage.get(shared_storage_id: data['id'])
67
+
68
+ # Assertions
69
+ assert_equal response['id'], data['id']
70
+
71
+ # Clear out stubs
72
+ Excon.stubs.clear
73
+
74
+ end
75
+
76
+
77
+ def test_modify
78
+
79
+ # Read in mock JSON
80
+ file = File.read('mock-api/modify-storage.json')
81
+ data = JSON.parse(file)
82
+
83
+ # Create stub and perform call
84
+ Excon.stub({:method => :put, :path => "/v1/shared_storages/#{data['id']}"},
85
+ {:body => JSON.generate(data), :status => 202})
86
+
87
+ response = @shared_storage.modify(shared_storage_id: data['id'],
88
+ name: data['name'], size: 250)
89
+
90
+ # Assertions
91
+ assert_equal response['name'], 'My shared storage test rename'
92
+
93
+ # Clear out stubs
94
+ Excon.stubs.clear
95
+
96
+ end
97
+
98
+
99
+ def test_delete
100
+
101
+ # Read in mock JSON
102
+ file = File.read('mock-api/delete-storage.json')
103
+ data = JSON.parse(file)
104
+
105
+ # Create stub and perform call
106
+ Excon.stub({:method => :delete, :path => "/v1/shared_storages/#{data['id']}"},
107
+ {:body => JSON.generate(data), :status => 202})
108
+
109
+ response = @shared_storage.delete(shared_storage_id: data['id'])
110
+
111
+ # Assertions
112
+ assert_equal response['state'], 'REMOVING'
113
+
114
+ # Clear out stubs
115
+ Excon.stubs.clear
116
+
117
+ end
118
+
119
+
120
+ def test_add_servers
121
+
122
+ # Read in mock JSON
123
+ file = File.read('mock-api/attach-server-storage.json')
124
+ data = JSON.parse(file)
125
+
126
+ # Create stub and perform call
127
+ Excon.stub({:method => :post, :path => "/v1/shared_storages/#{data['id']}/servers"},
128
+ {:body => JSON.generate(data), :status => 202})
129
+
130
+ server1 = {
131
+ 'id' => '<SERVER-ID>',
132
+ 'rights' => 'RW'
133
+ }
134
+
135
+ servers = [server1]
136
+
137
+ response = @shared_storage.add_servers(shared_storage_id: data['id'],
138
+ servers: servers)
139
+
140
+ # Assertions
141
+ assert_equal response['servers'][0]['id'], '638ED28205B1AFD7ADEF569C725DD85F'
142
+
143
+ # Clear out stubs
144
+ Excon.stubs.clear
145
+
146
+ end
147
+
148
+
149
+ def test_servers
150
+
151
+ # Read in mock JSON
152
+ file = File.read('mock-api/storage-servers.json')
153
+ data = JSON.parse(file)
154
+
155
+ # Create stub and perform call
156
+ Excon.stub({:method => :get, :path => "/v1/shared_storages/SHARED-STORAGE-ID/servers"},
157
+ {:body => JSON.generate(data), :status => 200})
158
+
159
+ response = @shared_storage.servers(shared_storage_id: 'SHARED-STORAGE-ID')
160
+
161
+ # Assertions
162
+ assert_equal response[0]['id'], data[0]['id']
163
+
164
+ # Clear out stubs
165
+ Excon.stubs.clear
166
+
167
+ end
168
+
169
+
170
+ def test_server
171
+
172
+ # Read in mock JSON
173
+ file = File.read('mock-api/get-server-storage.json')
174
+ data = JSON.parse(file)
175
+
176
+ # Create stub and perform call
177
+ Excon.stub({:method => :get, :path => "/v1/shared_storages/SHARED-STORAGE-ID/servers/#{data['id']}"},
178
+ {:body => JSON.generate(data), :status => 200})
179
+
180
+ response = @shared_storage.server(shared_storage_id: 'SHARED-STORAGE-ID',
181
+ server_id: data['id'])
182
+
183
+ # Assertions
184
+ assert_equal response['id'], data['id']
185
+
186
+ # Clear out stubs
187
+ Excon.stubs.clear
188
+
189
+ end
190
+
191
+
192
+ def test_remove_server
193
+
194
+ # Read in mock JSON
195
+ file = File.read('mock-api/detach-server-storage.json')
196
+ data = JSON.parse(file)
197
+
198
+ # Create stub and perform call
199
+ Excon.stub({:method => :delete, :path => "/v1/shared_storages/#{data['id']}/servers/#{data['servers'][0]['id']}"},
200
+ {:body => JSON.generate(data), :status => 202})
201
+
202
+ response = @shared_storage.remove_server(shared_storage_id: data['id'],
203
+ server_id: data['servers'][0]['id'])
204
+
205
+ # Assertions
206
+ assert_equal response['servers'].length, 1
207
+
208
+ # Clear out stubs
209
+ Excon.stubs.clear
210
+
211
+ end
212
+
213
+
214
+ def test_access
215
+
216
+ # Read in mock JSON
217
+ file = File.read('mock-api/list-credentials.json')
218
+ data = JSON.parse(file)
219
+
220
+ # Create stub and perform call
221
+ Excon.stub({:method => :get, :path => "/v1/shared_storages/access"},
222
+ {:body => JSON.generate(data), :status => 200})
223
+
224
+ response = @shared_storage.access
225
+
226
+ # Assertions
227
+ assert_equal response['user_domain'], data['user_domain']
228
+
229
+ # Clear out stubs
230
+ Excon.stubs.clear
231
+
232
+ end
233
+
234
+
235
+ def test_change_password
236
+
237
+ # Read in mock JSON
238
+ file = File.read('mock-api/change-password.json')
239
+ data = JSON.parse(file)
240
+
241
+ # Create stub and perform call
242
+ Excon.stub({:method => :put, :path => "/v1/shared_storages/access"},
243
+ {:body => JSON.generate(data), :status => 202})
244
+
245
+ response = @shared_storage.change_password(password: 'asdasdfgagsw32')
246
+
247
+ # Assertions
248
+ assert_equal response['state'], 'CONFIGURING'
249
+
250
+ # Clear out stubs
251
+ Excon.stubs.clear
252
+
253
+ end
254
+
255
+
256
+ end
@@ -0,0 +1,34 @@
1
+ require_relative '../lib/oneandone'
2
+ require 'minitest/autorun'
3
+
4
+ class TestUsage < Minitest::Test
5
+ def setup
6
+
7
+ OneAndOne.start('TEST-API-KEY')
8
+ @usage = OneAndOne::Usage.new(test: true)
9
+
10
+ end
11
+
12
+
13
+ def test_list
14
+
15
+ # Read in mock JSON
16
+ file = File.read('mock-api/list-usages.json')
17
+ data = JSON.parse(file)
18
+
19
+ # Create stub and perform call
20
+ Excon.stub({:method => :get, :path => '/v1/usages'},
21
+ {:body => JSON.generate(data), :status => 200})
22
+
23
+ response = @usage.list
24
+
25
+ # Assertions
26
+ assert_equal response['SERVERS'][0]['id'], data['SERVERS'][0]['id']
27
+
28
+ # Clear out stubs
29
+ Excon.stubs.clear
30
+
31
+ end
32
+
33
+
34
+ end
@@ -0,0 +1,270 @@
1
+ require_relative '../lib/oneandone'
2
+ require 'minitest/autorun'
3
+
4
+ class TestUser < Minitest::Test
5
+ def setup
6
+
7
+ OneAndOne.start('TEST-API-KEY')
8
+ @user = OneAndOne::User.new(test: true)
9
+
10
+ end
11
+
12
+
13
+ def test_list
14
+
15
+ # Read in mock JSON
16
+ file = File.read('mock-api/list-users.json')
17
+ data = JSON.parse(file)
18
+
19
+ # Create stub and perform call
20
+ Excon.stub({:method => :get, :path => '/v1/users'},
21
+ {:body => JSON.generate(data), :status => 200})
22
+
23
+ response = @user.list
24
+
25
+ # Assertions
26
+ assert_equal response[0]['id'], data[0]['id']
27
+
28
+ # Clear out stubs
29
+ Excon.stubs.clear
30
+
31
+ end
32
+
33
+
34
+ def test_create
35
+
36
+ # Read in mock JSON
37
+ file = File.read('mock-api/create-user.json')
38
+ data = JSON.parse(file)
39
+
40
+ # Create stub and perform call
41
+ Excon.stub({:method => :post, :path => '/v1/users'},
42
+ {:body => JSON.generate(data), :status => 202})
43
+
44
+ response = @user.create(name: 'Test', email: 'test@example.com',
45
+ password: 'testpass')
46
+
47
+ # Assertions
48
+ assert_equal response['id'], data['id']
49
+
50
+ # Clear out stubs
51
+ Excon.stubs.clear
52
+
53
+ end
54
+
55
+
56
+ def test_get
57
+
58
+ # Read in mock JSON
59
+ file = File.read('mock-api/get-user.json')
60
+ data = JSON.parse(file)
61
+
62
+ # Create stub and perform call
63
+ Excon.stub({:method => :get, :path => "/v1/users/#{data['id']}"},
64
+ {:body => JSON.generate(data), :status => 200})
65
+
66
+ response = @user.get(user_id: data['id'])
67
+
68
+ # Assertions
69
+ assert_equal response['id'], data['id']
70
+
71
+ # Clear out stubs
72
+ Excon.stubs.clear
73
+
74
+ end
75
+
76
+
77
+ def test_modify
78
+
79
+ # Read in mock JSON
80
+ file = File.read('mock-api/modify-user.json')
81
+ data = JSON.parse(file)
82
+
83
+ # Create stub and perform call
84
+ Excon.stub({:method => :put, :path => "/v1/users/#{data['id']}"},
85
+ {:body => JSON.generate(data), :status => 202})
86
+
87
+ response = @user.modify(user_id: data['id'], description: 'New Desc')
88
+
89
+ # Assertions
90
+ assert_equal response['id'], data['id']
91
+
92
+ # Clear out stubs
93
+ Excon.stubs.clear
94
+
95
+ end
96
+
97
+
98
+ def test_delete
99
+
100
+ # Read in mock JSON
101
+ file = File.read('mock-api/delete-user.json')
102
+ data = JSON.parse(file)
103
+
104
+ # Create stub and perform call
105
+ Excon.stub({:method => :delete, :path => "/v1/users/#{data['id']}"},
106
+ {:body => JSON.generate(data), :status => 202})
107
+
108
+ response = @user.delete(user_id: data['id'])
109
+
110
+ # Assertions
111
+ assert_equal response['state'], 'REMOVING'
112
+
113
+ # Clear out stubs
114
+ Excon.stubs.clear
115
+
116
+ end
117
+
118
+
119
+ def test_api
120
+
121
+ # Read in mock JSON
122
+ file = File.read('mock-api/get-user-api.json')
123
+ data = JSON.parse(file)
124
+
125
+ # Create stub and perform call
126
+ Excon.stub({:method => :get, :path => "/v1/users/USER-ID/api"},
127
+ {:body => JSON.generate(data), :status => 200})
128
+
129
+ response = @user.api(user_id: 'USER-ID')
130
+
131
+ # Assertions
132
+ assert_equal response['key'], data['key']
133
+
134
+ # Clear out stubs
135
+ Excon.stubs.clear
136
+
137
+ end
138
+
139
+
140
+ def test_enable_api
141
+
142
+ # Read in mock JSON
143
+ file = File.read('mock-api/modify-user-api.json')
144
+ data = JSON.parse(file)
145
+
146
+ # Create stub and perform call
147
+ Excon.stub({:method => :put, :path => "/v1/users/#{data['id']}/api"},
148
+ {:body => JSON.generate(data), :status => 202})
149
+
150
+ response = @user.enable_api(user_id: data['id'], active: true)
151
+
152
+ # Assertions
153
+ assert_equal response['api']['active'], true
154
+
155
+ # Clear out stubs
156
+ Excon.stubs.clear
157
+
158
+ end
159
+
160
+
161
+ def test_api_key
162
+
163
+ # Read in mock JSON
164
+ file = File.read('mock-api/get-user-api-key.json')
165
+ data = JSON.parse(file)
166
+
167
+ # Create stub and perform call
168
+ Excon.stub({:method => :get, :path => "/v1/users/USER-ID/api/key"},
169
+ {:body => JSON.generate(data), :status => 200})
170
+
171
+ response = @user.api_key(user_id: 'USER-ID')
172
+
173
+ # Assertions
174
+ assert_equal response['key'], data['key']
175
+
176
+ # Clear out stubs
177
+ Excon.stubs.clear
178
+
179
+ end
180
+
181
+
182
+ def test_change_key
183
+
184
+ # Read in mock JSON
185
+ file = File.read('mock-api/change-api-key.json')
186
+ data = JSON.parse(file)
187
+
188
+ # Create stub and perform call
189
+ Excon.stub({:method => :put, :path => "/v1/users/#{data['id']}/api/key"},
190
+ {:body => JSON.generate(data), :status => 202})
191
+
192
+ response = @user.change_key(user_id: data['id'])
193
+
194
+ # Assertions
195
+ assert_equal response['state'], 'CONFIGURING'
196
+
197
+ # Clear out stubs
198
+ Excon.stubs.clear
199
+
200
+ end
201
+
202
+
203
+ def test_ips
204
+
205
+ # Read in mock JSON
206
+ file = File.read('mock-api/list-user-ips.json')
207
+ data = JSON.parse(file)
208
+
209
+ # Create stub and perform call
210
+ Excon.stub({:method => :get, :path => "/v1/users/USER-ID/api/ips"},
211
+ {:body => JSON.generate(data), :status => 200})
212
+
213
+ response = @user.ips(user_id: 'USER-ID')
214
+
215
+ # Assertions
216
+ assert_equal response[0], '214.4.143.138'
217
+
218
+ # Clear out stubs
219
+ Excon.stubs.clear
220
+
221
+ end
222
+
223
+
224
+ def test_add_ips
225
+
226
+ # Read in mock JSON
227
+ file = File.read('mock-api/add-new-ip.json')
228
+ data = JSON.parse(file)
229
+
230
+ # Create stub and perform call
231
+ Excon.stub({:method => :post, :path => "/v1/users/#{data['id']}/api/ips"},
232
+ {:body => JSON.generate(data), :status => 202})
233
+
234
+ ip1 = '1.2.3.4'
235
+
236
+ ips = [ip1]
237
+
238
+ response = @user.add_ips(user_id: data['id'], ips: ips)
239
+
240
+ # Assertions
241
+ assert_equal response['api']['allowed_ips'][0], '214.4.143.138'
242
+
243
+ # Clear out stubs
244
+ Excon.stubs.clear
245
+
246
+ end
247
+
248
+
249
+ def test_remove_ip
250
+
251
+ # Read in mock JSON
252
+ file = File.read('mock-api/delete-ip.json')
253
+ data = JSON.parse(file)
254
+
255
+ # Create stub and perform call
256
+ Excon.stub({:method => :delete, :path => "/v1/users/#{data['id']}/api/ips/IP"},
257
+ {:body => JSON.generate(data), :status => 202})
258
+
259
+ response = @user.remove_ip(user_id: data['id'], ip: 'IP')
260
+
261
+ # Assertions
262
+ assert_equal response['api']['allowed_ips'], []
263
+
264
+ # Clear out stubs
265
+ Excon.stubs.clear
266
+
267
+ end
268
+
269
+
270
+ end