fog-ifeel 2.2.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.
Files changed (1035) hide show
  1. checksums.yaml +7 -0
  2. data/.document +3 -0
  3. data/.github/stale.yml +17 -0
  4. data/.gitignore +30 -0
  5. data/.irbrc +82 -0
  6. data/.rubocop.yml +20 -0
  7. data/.rubocop_todo.yml +606 -0
  8. data/.travis.yml +41 -0
  9. data/.yardopts +1 -0
  10. data/CHANGELOG.md +10369 -0
  11. data/CONTRIBUTING.md +276 -0
  12. data/CONTRIBUTORS.md +898 -0
  13. data/Gemfile +10 -0
  14. data/LICENSE.md +20 -0
  15. data/README.md +187 -0
  16. data/RELEASE.md +40 -0
  17. data/Rakefile +228 -0
  18. data/benchs/each_provider.sh +6 -0
  19. data/benchs/each_service.sh +6 -0
  20. data/benchs/fog_vs.rb +106 -0
  21. data/benchs/load_times.rb +37 -0
  22. data/benchs/params.rb +43 -0
  23. data/benchs/parse_vs_push.rb +67 -0
  24. data/bin/fog +78 -0
  25. data/fog.gemspec +124 -0
  26. data/gemfiles/Gemfile-2.0 +11 -0
  27. data/gemfiles/Gemfile-edge +14 -0
  28. data/gemfiles/Gemfile-edge-2.0 +16 -0
  29. data/lib/fog.rb +63 -0
  30. data/lib/fog/aws/service_mapper.rb +129 -0
  31. data/lib/fog/bare_metal_cloud.rb +1 -0
  32. data/lib/fog/bare_metal_cloud/compute.rb +93 -0
  33. data/lib/fog/bare_metal_cloud/core.rb +10 -0
  34. data/lib/fog/bare_metal_cloud/requests/compute/add_server.rb +31 -0
  35. data/lib/fog/bare_metal_cloud/requests/compute/add_server_by_configuration.rb +31 -0
  36. data/lib/fog/bare_metal_cloud/requests/compute/cancel_server.rb +28 -0
  37. data/lib/fog/bare_metal_cloud/requests/compute/get_server.rb +39 -0
  38. data/lib/fog/bare_metal_cloud/requests/compute/list_configurations.rb +25 -0
  39. data/lib/fog/bare_metal_cloud/requests/compute/list_images.rb +25 -0
  40. data/lib/fog/bare_metal_cloud/requests/compute/list_plans.rb +28 -0
  41. data/lib/fog/bare_metal_cloud/requests/compute/list_servers.rb +34 -0
  42. data/lib/fog/bare_metal_cloud/requests/compute/reboot_server.rb +22 -0
  43. data/lib/fog/bin.rb +95 -0
  44. data/lib/fog/bin/aws.rb +15 -0
  45. data/lib/fog/bin/bare_metal_cloud.rb +29 -0
  46. data/lib/fog/bin/brightbox.rb +35 -0
  47. data/lib/fog/bin/clodo.rb +29 -0
  48. data/lib/fog/bin/cloudsigma.rb +28 -0
  49. data/lib/fog/bin/dnsmadeeasy.rb +29 -0
  50. data/lib/fog/bin/dreamhost.rb +29 -0
  51. data/lib/fog/bin/fogdocker.rb +28 -0
  52. data/lib/fog/bin/glesys.rb +29 -0
  53. data/lib/fog/bin/go_grid.rb +29 -0
  54. data/lib/fog/bin/ibm.rb +32 -0
  55. data/lib/fog/bin/linode.rb +34 -0
  56. data/lib/fog/bin/opennebula.rb +60 -0
  57. data/lib/fog/bin/openstack.rb +71 -0
  58. data/lib/fog/bin/openvz.rb +29 -0
  59. data/lib/fog/bin/rackspace.rb +89 -0
  60. data/lib/fog/bin/rage4.rb +29 -0
  61. data/lib/fog/bin/softlayer.rb +53 -0
  62. data/lib/fog/bin/vcloud.rb +28 -0
  63. data/lib/fog/bin/vcloud_director.rb +28 -0
  64. data/lib/fog/clodo.rb +1 -0
  65. data/lib/fog/clodo/compute.rb +147 -0
  66. data/lib/fog/clodo/core.rb +33 -0
  67. data/lib/fog/clodo/models/compute/image.rb +27 -0
  68. data/lib/fog/clodo/models/compute/images.rb +24 -0
  69. data/lib/fog/clodo/models/compute/server.rb +121 -0
  70. data/lib/fog/clodo/models/compute/servers.rb +32 -0
  71. data/lib/fog/clodo/requests/compute/add_ip_address.rb +47 -0
  72. data/lib/fog/clodo/requests/compute/create_server.rb +109 -0
  73. data/lib/fog/clodo/requests/compute/delete_ip_address.rb +45 -0
  74. data/lib/fog/clodo/requests/compute/delete_server.rb +40 -0
  75. data/lib/fog/clodo/requests/compute/get_image_details.rb +20 -0
  76. data/lib/fog/clodo/requests/compute/get_server_details.rb +45 -0
  77. data/lib/fog/clodo/requests/compute/list_images.rb +44 -0
  78. data/lib/fog/clodo/requests/compute/list_images_detail.rb +57 -0
  79. data/lib/fog/clodo/requests/compute/list_servers.rb +46 -0
  80. data/lib/fog/clodo/requests/compute/list_servers_detail.rb +47 -0
  81. data/lib/fog/clodo/requests/compute/move_ip_address.rb +33 -0
  82. data/lib/fog/clodo/requests/compute/reboot_server.rb +19 -0
  83. data/lib/fog/clodo/requests/compute/rebuild_server.rb +21 -0
  84. data/lib/fog/clodo/requests/compute/server_action.rb +24 -0
  85. data/lib/fog/clodo/requests/compute/start_server.rb +19 -0
  86. data/lib/fog/clodo/requests/compute/stop_server.rb +19 -0
  87. data/lib/fog/cloudsigma.rb +1 -0
  88. data/lib/fog/cloudsigma/compute.rb +228 -0
  89. data/lib/fog/cloudsigma/connection.rb +192 -0
  90. data/lib/fog/cloudsigma/core.rb +10 -0
  91. data/lib/fog/cloudsigma/docs/getting_started.md +59 -0
  92. data/lib/fog/cloudsigma/error.rb +39 -0
  93. data/lib/fog/cloudsigma/mock_data.rb +49 -0
  94. data/lib/fog/cloudsigma/models/balance.rb +12 -0
  95. data/lib/fog/cloudsigma/models/current_usage.rb +19 -0
  96. data/lib/fog/cloudsigma/models/fwpolicies.rb +18 -0
  97. data/lib/fog/cloudsigma/models/fwpolicy.rb +19 -0
  98. data/lib/fog/cloudsigma/models/ip.rb +20 -0
  99. data/lib/fog/cloudsigma/models/ipconf.rb +12 -0
  100. data/lib/fog/cloudsigma/models/ips.rb +26 -0
  101. data/lib/fog/cloudsigma/models/lib_volume.rb +48 -0
  102. data/lib/fog/cloudsigma/models/lib_volumes.rb +26 -0
  103. data/lib/fog/cloudsigma/models/mountpoint.rb +25 -0
  104. data/lib/fog/cloudsigma/models/nic.rb +19 -0
  105. data/lib/fog/cloudsigma/models/obj_ref.rb +12 -0
  106. data/lib/fog/cloudsigma/models/price_calculation.rb +13 -0
  107. data/lib/fog/cloudsigma/models/price_record.rb +37 -0
  108. data/lib/fog/cloudsigma/models/pricing.rb +19 -0
  109. data/lib/fog/cloudsigma/models/profile.rb +48 -0
  110. data/lib/fog/cloudsigma/models/rule.rb +18 -0
  111. data/lib/fog/cloudsigma/models/server.rb +212 -0
  112. data/lib/fog/cloudsigma/models/servers.rb +26 -0
  113. data/lib/fog/cloudsigma/models/snapshot.rb +77 -0
  114. data/lib/fog/cloudsigma/models/snapshots.rb +26 -0
  115. data/lib/fog/cloudsigma/models/subscription.rb +52 -0
  116. data/lib/fog/cloudsigma/models/subscriptions.rb +41 -0
  117. data/lib/fog/cloudsigma/models/usage_record.rb +13 -0
  118. data/lib/fog/cloudsigma/models/vlan.rb +29 -0
  119. data/lib/fog/cloudsigma/models/vlans.rb +26 -0
  120. data/lib/fog/cloudsigma/models/volume.rb +84 -0
  121. data/lib/fog/cloudsigma/models/volumes.rb +26 -0
  122. data/lib/fog/cloudsigma/nested_model.rb +60 -0
  123. data/lib/fog/cloudsigma/requests/calculate_subscription_price.rb +16 -0
  124. data/lib/fog/cloudsigma/requests/clone_libvolume.rb +31 -0
  125. data/lib/fog/cloudsigma/requests/clone_server.rb +31 -0
  126. data/lib/fog/cloudsigma/requests/clone_snapshot.rb +31 -0
  127. data/lib/fog/cloudsigma/requests/clone_volume.rb +31 -0
  128. data/lib/fog/cloudsigma/requests/close_vnc.rb +29 -0
  129. data/lib/fog/cloudsigma/requests/create_server.rb +31 -0
  130. data/lib/fog/cloudsigma/requests/create_snapshot.rb +27 -0
  131. data/lib/fog/cloudsigma/requests/create_subscription.rb +38 -0
  132. data/lib/fog/cloudsigma/requests/create_volume.rb +29 -0
  133. data/lib/fog/cloudsigma/requests/delete_server.rb +17 -0
  134. data/lib/fog/cloudsigma/requests/delete_snapshot.rb +17 -0
  135. data/lib/fog/cloudsigma/requests/delete_volume.rb +17 -0
  136. data/lib/fog/cloudsigma/requests/extend_subscription.rb +20 -0
  137. data/lib/fog/cloudsigma/requests/get_balance.rb +17 -0
  138. data/lib/fog/cloudsigma/requests/get_current_usage.rb +16 -0
  139. data/lib/fog/cloudsigma/requests/get_ip.rb +17 -0
  140. data/lib/fog/cloudsigma/requests/get_lib_volume.rb +17 -0
  141. data/lib/fog/cloudsigma/requests/get_pricing.rb +27 -0
  142. data/lib/fog/cloudsigma/requests/get_profile.rb +17 -0
  143. data/lib/fog/cloudsigma/requests/get_server.rb +17 -0
  144. data/lib/fog/cloudsigma/requests/get_snapshot.rb +17 -0
  145. data/lib/fog/cloudsigma/requests/get_subscription.rb +17 -0
  146. data/lib/fog/cloudsigma/requests/get_vlan.rb +17 -0
  147. data/lib/fog/cloudsigma/requests/get_volume.rb +17 -0
  148. data/lib/fog/cloudsigma/requests/list_fwpolicies.rb +17 -0
  149. data/lib/fog/cloudsigma/requests/list_ips.rb +17 -0
  150. data/lib/fog/cloudsigma/requests/list_lib_volumes.rb +17 -0
  151. data/lib/fog/cloudsigma/requests/list_servers.rb +17 -0
  152. data/lib/fog/cloudsigma/requests/list_snapshots.rb +17 -0
  153. data/lib/fog/cloudsigma/requests/list_subscriptions.rb +17 -0
  154. data/lib/fog/cloudsigma/requests/list_vlans.rb +17 -0
  155. data/lib/fog/cloudsigma/requests/list_volumes.rb +17 -0
  156. data/lib/fog/cloudsigma/requests/open_vnc.rb +33 -0
  157. data/lib/fog/cloudsigma/requests/start_server.rb +31 -0
  158. data/lib/fog/cloudsigma/requests/stop_server.rb +32 -0
  159. data/lib/fog/cloudsigma/requests/update_profile.rb +17 -0
  160. data/lib/fog/cloudsigma/requests/update_server.rb +39 -0
  161. data/lib/fog/cloudsigma/requests/update_snapshot.rb +17 -0
  162. data/lib/fog/cloudsigma/requests/update_vlan.rb +19 -0
  163. data/lib/fog/cloudsigma/requests/update_volume.rb +17 -0
  164. data/lib/fog/core/deprecated/connection.rb +24 -0
  165. data/lib/fog/core/parser.rb +2 -0
  166. data/lib/fog/dnsmadeeasy.rb +1 -0
  167. data/lib/fog/dnsmadeeasy/core.rb +10 -0
  168. data/lib/fog/dnsmadeeasy/dns.rb +130 -0
  169. data/lib/fog/dnsmadeeasy/models/dns/record.rb +77 -0
  170. data/lib/fog/dnsmadeeasy/models/dns/records.rb +32 -0
  171. data/lib/fog/dnsmadeeasy/models/dns/zone.rb +38 -0
  172. data/lib/fog/dnsmadeeasy/models/dns/zones.rb +26 -0
  173. data/lib/fog/dnsmadeeasy/requests/dns/create_domain.rb +27 -0
  174. data/lib/fog/dnsmadeeasy/requests/dns/create_record.rb +59 -0
  175. data/lib/fog/dnsmadeeasy/requests/dns/create_secondary.rb +33 -0
  176. data/lib/fog/dnsmadeeasy/requests/dns/delete_all_domains.rb +21 -0
  177. data/lib/fog/dnsmadeeasy/requests/dns/delete_all_secondary.rb +20 -0
  178. data/lib/fog/dnsmadeeasy/requests/dns/delete_domain.rb +23 -0
  179. data/lib/fog/dnsmadeeasy/requests/dns/delete_record.rb +24 -0
  180. data/lib/fog/dnsmadeeasy/requests/dns/delete_secondary.rb +23 -0
  181. data/lib/fog/dnsmadeeasy/requests/dns/get_domain.rb +27 -0
  182. data/lib/fog/dnsmadeeasy/requests/dns/get_record.rb +36 -0
  183. data/lib/fog/dnsmadeeasy/requests/dns/get_secondary.rb +27 -0
  184. data/lib/fog/dnsmadeeasy/requests/dns/list_domains.rb +22 -0
  185. data/lib/fog/dnsmadeeasy/requests/dns/list_records.rb +40 -0
  186. data/lib/fog/dnsmadeeasy/requests/dns/list_secondary.rb +22 -0
  187. data/lib/fog/dnsmadeeasy/requests/dns/update_record.rb +54 -0
  188. data/lib/fog/dnsmadeeasy/requests/dns/update_secondary.rb +33 -0
  189. data/lib/fog/dreamhost.rb +1 -0
  190. data/lib/fog/dreamhost/CHANGELOG.md +8 -0
  191. data/lib/fog/dreamhost/core.rb +10 -0
  192. data/lib/fog/dreamhost/dns.rb +79 -0
  193. data/lib/fog/dreamhost/examples/dns/getting_started.md +105 -0
  194. data/lib/fog/dreamhost/models/dns/record.rb +31 -0
  195. data/lib/fog/dreamhost/models/dns/records.rb +34 -0
  196. data/lib/fog/dreamhost/models/dns/zone.rb +55 -0
  197. data/lib/fog/dreamhost/models/dns/zones.rb +37 -0
  198. data/lib/fog/dreamhost/requests/dns/create_record.rb +27 -0
  199. data/lib/fog/dreamhost/requests/dns/delete_record.rb +26 -0
  200. data/lib/fog/dreamhost/requests/dns/list_records.rb +20 -0
  201. data/lib/fog/fogdocker.rb +1 -0
  202. data/lib/fog/fogdocker/compute.rb +61 -0
  203. data/lib/fog/fogdocker/core.rb +9 -0
  204. data/lib/fog/fogdocker/errors.rb +9 -0
  205. data/lib/fog/fogdocker/models/compute/image.rb +37 -0
  206. data/lib/fog/fogdocker/models/compute/images.rb +24 -0
  207. data/lib/fog/fogdocker/models/compute/server.rb +154 -0
  208. data/lib/fog/fogdocker/models/compute/servers.rb +25 -0
  209. data/lib/fog/fogdocker/requests/compute/api_version.rb +16 -0
  210. data/lib/fog/fogdocker/requests/compute/container_action.rb +72 -0
  211. data/lib/fog/fogdocker/requests/compute/container_all.rb +37 -0
  212. data/lib/fog/fogdocker/requests/compute/container_commit.rb +22 -0
  213. data/lib/fog/fogdocker/requests/compute/container_create.rb +52 -0
  214. data/lib/fog/fogdocker/requests/compute/container_delete.rb +21 -0
  215. data/lib/fog/fogdocker/requests/compute/container_get.rb +50 -0
  216. data/lib/fog/fogdocker/requests/compute/image_all.rb +27 -0
  217. data/lib/fog/fogdocker/requests/compute/image_create.rb +17 -0
  218. data/lib/fog/fogdocker/requests/compute/image_delete.rb +20 -0
  219. data/lib/fog/fogdocker/requests/compute/image_get.rb +19 -0
  220. data/lib/fog/fogdocker/requests/compute/image_search.rb +29 -0
  221. data/lib/fog/glesys.rb +1 -0
  222. data/lib/fog/glesys/compute.rb +136 -0
  223. data/lib/fog/glesys/core.rb +10 -0
  224. data/lib/fog/glesys/models/compute/ip.rb +73 -0
  225. data/lib/fog/glesys/models/compute/ips.rb +117 -0
  226. data/lib/fog/glesys/models/compute/server.rb +150 -0
  227. data/lib/fog/glesys/models/compute/servers.rb +42 -0
  228. data/lib/fog/glesys/models/compute/ssh_key.rb +28 -0
  229. data/lib/fog/glesys/models/compute/ssh_keys.rb +21 -0
  230. data/lib/fog/glesys/models/compute/template.rb +17 -0
  231. data/lib/fog/glesys/models/compute/templates.rb +38 -0
  232. data/lib/fog/glesys/requests/compute/create.rb +11 -0
  233. data/lib/fog/glesys/requests/compute/destroy.rb +15 -0
  234. data/lib/fog/glesys/requests/compute/edit.rb +11 -0
  235. data/lib/fog/glesys/requests/compute/ip_add.rb +11 -0
  236. data/lib/fog/glesys/requests/compute/ip_details.rb +11 -0
  237. data/lib/fog/glesys/requests/compute/ip_list_free.rb +11 -0
  238. data/lib/fog/glesys/requests/compute/ip_list_own.rb +11 -0
  239. data/lib/fog/glesys/requests/compute/ip_release.rb +11 -0
  240. data/lib/fog/glesys/requests/compute/ip_remove.rb +11 -0
  241. data/lib/fog/glesys/requests/compute/ip_take.rb +11 -0
  242. data/lib/fog/glesys/requests/compute/list_servers.rb +15 -0
  243. data/lib/fog/glesys/requests/compute/reboot.rb +11 -0
  244. data/lib/fog/glesys/requests/compute/server_details.rb +11 -0
  245. data/lib/fog/glesys/requests/compute/server_status.rb +11 -0
  246. data/lib/fog/glesys/requests/compute/ssh_key_add.rb +11 -0
  247. data/lib/fog/glesys/requests/compute/ssh_key_list.rb +11 -0
  248. data/lib/fog/glesys/requests/compute/ssh_key_remove.rb +11 -0
  249. data/lib/fog/glesys/requests/compute/start.rb +11 -0
  250. data/lib/fog/glesys/requests/compute/stop.rb +11 -0
  251. data/lib/fog/glesys/requests/compute/template_list.rb +11 -0
  252. data/lib/fog/go_grid.rb +1 -0
  253. data/lib/fog/go_grid/compute.rb +110 -0
  254. data/lib/fog/go_grid/core.rb +10 -0
  255. data/lib/fog/go_grid/models/compute/image.rb +55 -0
  256. data/lib/fog/go_grid/models/compute/images.rb +29 -0
  257. data/lib/fog/go_grid/models/compute/password.rb +45 -0
  258. data/lib/fog/go_grid/models/compute/passwords.rb +32 -0
  259. data/lib/fog/go_grid/models/compute/server.rb +94 -0
  260. data/lib/fog/go_grid/models/compute/servers.rb +32 -0
  261. data/lib/fog/go_grid/requests/compute/common_lookup_list.rb +26 -0
  262. data/lib/fog/go_grid/requests/compute/grid_image_get.rb +37 -0
  263. data/lib/fog/go_grid/requests/compute/grid_image_list.rb +40 -0
  264. data/lib/fog/go_grid/requests/compute/grid_ip_list.rb +28 -0
  265. data/lib/fog/go_grid/requests/compute/grid_loadbalancer_list.rb +26 -0
  266. data/lib/fog/go_grid/requests/compute/grid_server_add.rb +34 -0
  267. data/lib/fog/go_grid/requests/compute/grid_server_delete.rb +23 -0
  268. data/lib/fog/go_grid/requests/compute/grid_server_get.rb +23 -0
  269. data/lib/fog/go_grid/requests/compute/grid_server_list.rb +28 -0
  270. data/lib/fog/go_grid/requests/compute/grid_server_power.rb +24 -0
  271. data/lib/fog/go_grid/requests/compute/support_password_get.rb +26 -0
  272. data/lib/fog/go_grid/requests/compute/support_password_list.rb +28 -0
  273. data/lib/fog/ibm.rb +2 -0
  274. data/lib/fog/ibm/compute.rb +230 -0
  275. data/lib/fog/ibm/core.rb +172 -0
  276. data/lib/fog/ibm/models/compute/address.rb +61 -0
  277. data/lib/fog/ibm/models/compute/addresses.rb +25 -0
  278. data/lib/fog/ibm/models/compute/image.rb +68 -0
  279. data/lib/fog/ibm/models/compute/images.rb +24 -0
  280. data/lib/fog/ibm/models/compute/instance-type.rb +14 -0
  281. data/lib/fog/ibm/models/compute/instance-types.rb +12 -0
  282. data/lib/fog/ibm/models/compute/key.rb +35 -0
  283. data/lib/fog/ibm/models/compute/keys.rb +32 -0
  284. data/lib/fog/ibm/models/compute/location.rb +15 -0
  285. data/lib/fog/ibm/models/compute/locations.rb +24 -0
  286. data/lib/fog/ibm/models/compute/server.rb +189 -0
  287. data/lib/fog/ibm/models/compute/servers.rb +24 -0
  288. data/lib/fog/ibm/models/compute/vlan.rb +13 -0
  289. data/lib/fog/ibm/models/compute/vlans.rb +25 -0
  290. data/lib/fog/ibm/models/storage/offering.rb +18 -0
  291. data/lib/fog/ibm/models/storage/offerings.rb +16 -0
  292. data/lib/fog/ibm/models/storage/volume.rb +96 -0
  293. data/lib/fog/ibm/models/storage/volumes.rb +24 -0
  294. data/lib/fog/ibm/requests/compute/clone_image.rb +44 -0
  295. data/lib/fog/ibm/requests/compute/create_address.rb +46 -0
  296. data/lib/fog/ibm/requests/compute/create_image.rb +52 -0
  297. data/lib/fog/ibm/requests/compute/create_instance.rb +81 -0
  298. data/lib/fog/ibm/requests/compute/create_key.rb +57 -0
  299. data/lib/fog/ibm/requests/compute/delete_address.rb +42 -0
  300. data/lib/fog/ibm/requests/compute/delete_image.rb +39 -0
  301. data/lib/fog/ibm/requests/compute/delete_instance.rb +48 -0
  302. data/lib/fog/ibm/requests/compute/delete_key.rb +37 -0
  303. data/lib/fog/ibm/requests/compute/get_image.rb +63 -0
  304. data/lib/fog/ibm/requests/compute/get_image_agreement.rb +62 -0
  305. data/lib/fog/ibm/requests/compute/get_image_manifest.rb +35 -0
  306. data/lib/fog/ibm/requests/compute/get_instance.rb +72 -0
  307. data/lib/fog/ibm/requests/compute/get_instance_logs.rb +23 -0
  308. data/lib/fog/ibm/requests/compute/get_key.rb +45 -0
  309. data/lib/fog/ibm/requests/compute/get_location.rb +51 -0
  310. data/lib/fog/ibm/requests/compute/get_request.rb +74 -0
  311. data/lib/fog/ibm/requests/compute/list_address_offerings.rb +54 -0
  312. data/lib/fog/ibm/requests/compute/list_addresses.rb +49 -0
  313. data/lib/fog/ibm/requests/compute/list_images.rb +54 -0
  314. data/lib/fog/ibm/requests/compute/list_instances.rb +53 -0
  315. data/lib/fog/ibm/requests/compute/list_keys.rb +53 -0
  316. data/lib/fog/ibm/requests/compute/list_locations.rb +33 -0
  317. data/lib/fog/ibm/requests/compute/list_vlans.rb +43 -0
  318. data/lib/fog/ibm/requests/compute/modify_instance.rb +68 -0
  319. data/lib/fog/ibm/requests/compute/modify_key.rb +48 -0
  320. data/lib/fog/ibm/requests/storage/create_volume.rb +63 -0
  321. data/lib/fog/ibm/requests/storage/delete_volume.rb +38 -0
  322. data/lib/fog/ibm/requests/storage/get_volume.rb +68 -0
  323. data/lib/fog/ibm/requests/storage/list_offerings.rb +72 -0
  324. data/lib/fog/ibm/requests/storage/list_volumes.rb +43 -0
  325. data/lib/fog/ibm/storage.rb +76 -0
  326. data/lib/fog/linode.rb +2 -0
  327. data/lib/fog/linode/compute.rb +124 -0
  328. data/lib/fog/linode/core.rb +10 -0
  329. data/lib/fog/linode/dns.rb +87 -0
  330. data/lib/fog/linode/models/compute/data_center.rb +13 -0
  331. data/lib/fog/linode/models/compute/data_centers.rb +26 -0
  332. data/lib/fog/linode/models/compute/disk.rb +62 -0
  333. data/lib/fog/linode/models/compute/disks.rb +40 -0
  334. data/lib/fog/linode/models/compute/flavor.rb +23 -0
  335. data/lib/fog/linode/models/compute/flavors.rb +39 -0
  336. data/lib/fog/linode/models/compute/image.rb +16 -0
  337. data/lib/fog/linode/models/compute/images.rb +34 -0
  338. data/lib/fog/linode/models/compute/ip.rb +30 -0
  339. data/lib/fog/linode/models/compute/ips.rb +40 -0
  340. data/lib/fog/linode/models/compute/kernel.rb +15 -0
  341. data/lib/fog/linode/models/compute/kernels.rb +38 -0
  342. data/lib/fog/linode/models/compute/node_balancer_flavor.rb +13 -0
  343. data/lib/fog/linode/models/compute/node_balancer_flavors.rb +27 -0
  344. data/lib/fog/linode/models/compute/server.rb +101 -0
  345. data/lib/fog/linode/models/compute/servers.rb +32 -0
  346. data/lib/fog/linode/models/compute/stack_script.rb +13 -0
  347. data/lib/fog/linode/models/compute/stack_scripts.rb +32 -0
  348. data/lib/fog/linode/models/dns/record.rb +68 -0
  349. data/lib/fog/linode/models/dns/records.rb +33 -0
  350. data/lib/fog/linode/models/dns/zone.rb +79 -0
  351. data/lib/fog/linode/models/dns/zones.rb +25 -0
  352. data/lib/fog/linode/requests/compute/avail_datacenters.rb +44 -0
  353. data/lib/fog/linode/requests/compute/avail_distributions.rb +65 -0
  354. data/lib/fog/linode/requests/compute/avail_kernels.rb +62 -0
  355. data/lib/fog/linode/requests/compute/avail_linodeplans.rb +68 -0
  356. data/lib/fog/linode/requests/compute/avail_nodebalancers.rb +42 -0
  357. data/lib/fog/linode/requests/compute/avail_stackscripts.rb +56 -0
  358. data/lib/fog/linode/requests/compute/image_delete.rb +42 -0
  359. data/lib/fog/linode/requests/compute/image_list.rb +64 -0
  360. data/lib/fog/linode/requests/compute/linode_boot.rb +28 -0
  361. data/lib/fog/linode/requests/compute/linode_config_create.rb +34 -0
  362. data/lib/fog/linode/requests/compute/linode_config_delete.rb +32 -0
  363. data/lib/fog/linode/requests/compute/linode_config_list.rb +69 -0
  364. data/lib/fog/linode/requests/compute/linode_config_update.rb +33 -0
  365. data/lib/fog/linode/requests/compute/linode_create.rb +44 -0
  366. data/lib/fog/linode/requests/compute/linode_delete.rb +39 -0
  367. data/lib/fog/linode/requests/compute/linode_disk_create.rb +35 -0
  368. data/lib/fog/linode/requests/compute/linode_disk_createfromdistribution.rb +36 -0
  369. data/lib/fog/linode/requests/compute/linode_disk_createfromimage.rb +37 -0
  370. data/lib/fog/linode/requests/compute/linode_disk_createfromstackscript.rb +24 -0
  371. data/lib/fog/linode/requests/compute/linode_disk_delete.rb +33 -0
  372. data/lib/fog/linode/requests/compute/linode_disk_duplicate.rb +33 -0
  373. data/lib/fog/linode/requests/compute/linode_disk_imagize.rb +37 -0
  374. data/lib/fog/linode/requests/compute/linode_disk_list.rb +58 -0
  375. data/lib/fog/linode/requests/compute/linode_disk_resize.rb +36 -0
  376. data/lib/fog/linode/requests/compute/linode_disk_update.rb +34 -0
  377. data/lib/fog/linode/requests/compute/linode_ip_addprivate.rb +15 -0
  378. data/lib/fog/linode/requests/compute/linode_ip_list.rb +57 -0
  379. data/lib/fog/linode/requests/compute/linode_list.rb +81 -0
  380. data/lib/fog/linode/requests/compute/linode_reboot.rb +39 -0
  381. data/lib/fog/linode/requests/compute/linode_shutdown.rb +28 -0
  382. data/lib/fog/linode/requests/compute/linode_update.rb +28 -0
  383. data/lib/fog/linode/requests/compute/stackscript_list.rb +30 -0
  384. data/lib/fog/linode/requests/dns/domain_create.rb +41 -0
  385. data/lib/fog/linode/requests/dns/domain_delete.rb +25 -0
  386. data/lib/fog/linode/requests/dns/domain_list.rb +40 -0
  387. data/lib/fog/linode/requests/dns/domain_resource_create.rb +42 -0
  388. data/lib/fog/linode/requests/dns/domain_resource_delete.rb +26 -0
  389. data/lib/fog/linode/requests/dns/domain_resource_list.rb +41 -0
  390. data/lib/fog/linode/requests/dns/domain_resource_update.rb +43 -0
  391. data/lib/fog/linode/requests/dns/domain_update.rb +36 -0
  392. data/lib/fog/opennebula.rb +1 -0
  393. data/lib/fog/opennebula/README.md +113 -0
  394. data/lib/fog/opennebula/compute.rb +136 -0
  395. data/lib/fog/opennebula/core.rb +8 -0
  396. data/lib/fog/opennebula/models/compute/flavor.rb +175 -0
  397. data/lib/fog/opennebula/models/compute/flavors.rb +42 -0
  398. data/lib/fog/opennebula/models/compute/group.rb +22 -0
  399. data/lib/fog/opennebula/models/compute/groups.rb +34 -0
  400. data/lib/fog/opennebula/models/compute/interface.rb +33 -0
  401. data/lib/fog/opennebula/models/compute/interfaces.rb +12 -0
  402. data/lib/fog/opennebula/models/compute/network.rb +42 -0
  403. data/lib/fog/opennebula/models/compute/networks.rb +35 -0
  404. data/lib/fog/opennebula/models/compute/server.rb +100 -0
  405. data/lib/fog/opennebula/models/compute/servers.rb +30 -0
  406. data/lib/fog/opennebula/requests/compute/OpenNebulaVNC.rb +340 -0
  407. data/lib/fog/opennebula/requests/compute/get_vnc_console.rb +47 -0
  408. data/lib/fog/opennebula/requests/compute/image_pool.rb +26 -0
  409. data/lib/fog/opennebula/requests/compute/list_groups.rb +79 -0
  410. data/lib/fog/opennebula/requests/compute/list_networks.rb +72 -0
  411. data/lib/fog/opennebula/requests/compute/list_vms.rb +69 -0
  412. data/lib/fog/opennebula/requests/compute/template_pool.rb +136 -0
  413. data/lib/fog/opennebula/requests/compute/vm_allocate.rb +99 -0
  414. data/lib/fog/opennebula/requests/compute/vm_destroy.rb +31 -0
  415. data/lib/fog/opennebula/requests/compute/vm_disk_snapshot.rb +28 -0
  416. data/lib/fog/opennebula/requests/compute/vm_resume.rb +27 -0
  417. data/lib/fog/opennebula/requests/compute/vm_shutdown.rb +18 -0
  418. data/lib/fog/opennebula/requests/compute/vm_stop.rb +15 -0
  419. data/lib/fog/opennebula/requests/compute/vm_suspend.rb +31 -0
  420. data/lib/fog/openvz.rb +1 -0
  421. data/lib/fog/openvz/README.md +188 -0
  422. data/lib/fog/openvz/compute.rb +168 -0
  423. data/lib/fog/openvz/core.rb +8 -0
  424. data/lib/fog/openvz/models/compute/server.rb +189 -0
  425. data/lib/fog/openvz/models/compute/servers.rb +24 -0
  426. data/lib/fog/openvz/requests/compute/compact_server.rb +17 -0
  427. data/lib/fog/openvz/requests/compute/convert_server.rb +17 -0
  428. data/lib/fog/openvz/requests/compute/create_server.rb +19 -0
  429. data/lib/fog/openvz/requests/compute/destroy_server.rb +17 -0
  430. data/lib/fog/openvz/requests/compute/exec2_server.rb +17 -0
  431. data/lib/fog/openvz/requests/compute/exec_server.rb +17 -0
  432. data/lib/fog/openvz/requests/compute/get_server_details.rb +17 -0
  433. data/lib/fog/openvz/requests/compute/list_servers.rb +17 -0
  434. data/lib/fog/openvz/requests/compute/mount_server.rb +17 -0
  435. data/lib/fog/openvz/requests/compute/quotainit_server.rb +17 -0
  436. data/lib/fog/openvz/requests/compute/quotaoff_server.rb +17 -0
  437. data/lib/fog/openvz/requests/compute/quotaon_server.rb +17 -0
  438. data/lib/fog/openvz/requests/compute/restart_server.rb +20 -0
  439. data/lib/fog/openvz/requests/compute/resume_server.rb +17 -0
  440. data/lib/fog/openvz/requests/compute/runscript_server.rb +17 -0
  441. data/lib/fog/openvz/requests/compute/set_server.rb +22 -0
  442. data/lib/fog/openvz/requests/compute/snapshot_delete_server.rb +17 -0
  443. data/lib/fog/openvz/requests/compute/snapshot_list_server.rb +17 -0
  444. data/lib/fog/openvz/requests/compute/snapshot_mount_server.rb +17 -0
  445. data/lib/fog/openvz/requests/compute/snapshot_server.rb +17 -0
  446. data/lib/fog/openvz/requests/compute/snapshot_switch_server.rb +17 -0
  447. data/lib/fog/openvz/requests/compute/snapshot_umount_server.rb +17 -0
  448. data/lib/fog/openvz/requests/compute/start_server.rb +20 -0
  449. data/lib/fog/openvz/requests/compute/status_server.rb +17 -0
  450. data/lib/fog/openvz/requests/compute/stop_server.rb +20 -0
  451. data/lib/fog/openvz/requests/compute/suspend_server.rb +17 -0
  452. data/lib/fog/openvz/requests/compute/umount_server.rb +17 -0
  453. data/lib/fog/rage4.rb +1 -0
  454. data/lib/fog/rage4/core.rb +10 -0
  455. data/lib/fog/rage4/dns.rb +72 -0
  456. data/lib/fog/rage4/models/dns/record.rb +73 -0
  457. data/lib/fog/rage4/models/dns/records.rb +38 -0
  458. data/lib/fog/rage4/models/dns/zone.rb +42 -0
  459. data/lib/fog/rage4/models/dns/zones.rb +30 -0
  460. data/lib/fog/rage4/requests/dns/bulk_update_records.rb +38 -0
  461. data/lib/fog/rage4/requests/dns/create_domain.rb +29 -0
  462. data/lib/fog/rage4/requests/dns/create_domain_vanity.rb +30 -0
  463. data/lib/fog/rage4/requests/dns/create_record.rb +59 -0
  464. data/lib/fog/rage4/requests/dns/create_reverse_domain_4.rb +28 -0
  465. data/lib/fog/rage4/requests/dns/delete_domain.rb +24 -0
  466. data/lib/fog/rage4/requests/dns/delete_record.rb +24 -0
  467. data/lib/fog/rage4/requests/dns/get_domain.rb +26 -0
  468. data/lib/fog/rage4/requests/dns/get_domain_by_name.rb +26 -0
  469. data/lib/fog/rage4/requests/dns/list_domains.rb +36 -0
  470. data/lib/fog/rage4/requests/dns/list_geo_regions.rb +25 -0
  471. data/lib/fog/rage4/requests/dns/list_record_types.rb +24 -0
  472. data/lib/fog/rage4/requests/dns/list_records.rb +28 -0
  473. data/lib/fog/rage4/requests/dns/set_record_failover.rb +25 -0
  474. data/lib/fog/rage4/requests/dns/show_current_usage.rb +21 -0
  475. data/lib/fog/rage4/requests/dns/show_global_usage.rb +21 -0
  476. data/lib/fog/rage4/requests/dns/update_domain.rb +39 -0
  477. data/lib/fog/rage4/requests/dns/update_record.rb +59 -0
  478. data/lib/fog/vcloud.rb +1 -0
  479. data/lib/fog/vcloud/compute.rb +366 -0
  480. data/lib/fog/vcloud/core.rb +10 -0
  481. data/lib/fog/vcloud/examples/README.md +54 -0
  482. data/lib/fog/vcloud/examples/creating_a_connection.md +20 -0
  483. data/lib/fog/vcloud/examples/creating_a_vapp.md +17 -0
  484. data/lib/fog/vcloud/examples/get_network_information.md +10 -0
  485. data/lib/fog/vcloud/examples/get_vapp_information.md +10 -0
  486. data/lib/fog/vcloud/examples/more_on_vapps.md +23 -0
  487. data/lib/fog/vcloud/models/compute/catalog.rb +20 -0
  488. data/lib/fog/vcloud/models/compute/catalog_item.rb +36 -0
  489. data/lib/fog/vcloud/models/compute/catalog_items.rb +34 -0
  490. data/lib/fog/vcloud/models/compute/catalogs.rb +36 -0
  491. data/lib/fog/vcloud/models/compute/helpers/status.rb +37 -0
  492. data/lib/fog/vcloud/models/compute/ip.rb +40 -0
  493. data/lib/fog/vcloud/models/compute/ips.rb +31 -0
  494. data/lib/fog/vcloud/models/compute/network.rb +22 -0
  495. data/lib/fog/vcloud/models/compute/networks.rb +46 -0
  496. data/lib/fog/vcloud/models/compute/organization.rb +41 -0
  497. data/lib/fog/vcloud/models/compute/organizations.rb +29 -0
  498. data/lib/fog/vcloud/models/compute/server.rb +343 -0
  499. data/lib/fog/vcloud/models/compute/servers.rb +49 -0
  500. data/lib/fog/vcloud/models/compute/tag.rb +18 -0
  501. data/lib/fog/vcloud/models/compute/tags.rb +30 -0
  502. data/lib/fog/vcloud/models/compute/task.rb +19 -0
  503. data/lib/fog/vcloud/models/compute/tasks.rb +27 -0
  504. data/lib/fog/vcloud/models/compute/vapp.rb +53 -0
  505. data/lib/fog/vcloud/models/compute/vapps.rb +25 -0
  506. data/lib/fog/vcloud/models/compute/vdc.rb +39 -0
  507. data/lib/fog/vcloud/models/compute/vdcs.rb +33 -0
  508. data/lib/fog/vcloud/requests/compute/clone_vapp.rb +39 -0
  509. data/lib/fog/vcloud/requests/compute/configure_metadata.rb +34 -0
  510. data/lib/fog/vcloud/requests/compute/configure_network.rb +41 -0
  511. data/lib/fog/vcloud/requests/compute/configure_network_ip.rb +46 -0
  512. data/lib/fog/vcloud/requests/compute/configure_node.rb +36 -0
  513. data/lib/fog/vcloud/requests/compute/configure_org_network.rb +139 -0
  514. data/lib/fog/vcloud/requests/compute/configure_vapp.rb +111 -0
  515. data/lib/fog/vcloud/requests/compute/configure_vm.rb +106 -0
  516. data/lib/fog/vcloud/requests/compute/configure_vm_cpus.rb +35 -0
  517. data/lib/fog/vcloud/requests/compute/configure_vm_customization_script.rb +30 -0
  518. data/lib/fog/vcloud/requests/compute/configure_vm_disks.rb +93 -0
  519. data/lib/fog/vcloud/requests/compute/configure_vm_memory.rb +36 -0
  520. data/lib/fog/vcloud/requests/compute/configure_vm_name_description.rb +26 -0
  521. data/lib/fog/vcloud/requests/compute/configure_vm_network.rb +33 -0
  522. data/lib/fog/vcloud/requests/compute/configure_vm_password.rb +36 -0
  523. data/lib/fog/vcloud/requests/compute/delete_metadata.rb +9 -0
  524. data/lib/fog/vcloud/requests/compute/delete_node.rb +9 -0
  525. data/lib/fog/vcloud/requests/compute/delete_vapp.rb +9 -0
  526. data/lib/fog/vcloud/requests/compute/get_catalog.rb +9 -0
  527. data/lib/fog/vcloud/requests/compute/get_catalog_item.rb +9 -0
  528. data/lib/fog/vcloud/requests/compute/get_customization_options.rb +9 -0
  529. data/lib/fog/vcloud/requests/compute/get_metadata.rb +9 -0
  530. data/lib/fog/vcloud/requests/compute/get_network.rb +9 -0
  531. data/lib/fog/vcloud/requests/compute/get_network_extensions.rb +9 -0
  532. data/lib/fog/vcloud/requests/compute/get_network_ip.rb +13 -0
  533. data/lib/fog/vcloud/requests/compute/get_network_ips.rb +13 -0
  534. data/lib/fog/vcloud/requests/compute/get_organization.rb +9 -0
  535. data/lib/fog/vcloud/requests/compute/get_server.rb +9 -0
  536. data/lib/fog/vcloud/requests/compute/get_task.rb +9 -0
  537. data/lib/fog/vcloud/requests/compute/get_task_list.rb +9 -0
  538. data/lib/fog/vcloud/requests/compute/get_vapp.rb +9 -0
  539. data/lib/fog/vcloud/requests/compute/get_vapp_template.rb +9 -0
  540. data/lib/fog/vcloud/requests/compute/get_vdc.rb +9 -0
  541. data/lib/fog/vcloud/requests/compute/get_vm_disks.rb +15 -0
  542. data/lib/fog/vcloud/requests/compute/get_vm_memory.rb +15 -0
  543. data/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb +87 -0
  544. data/lib/fog/vcloud/requests/compute/login.rb +23 -0
  545. data/lib/fog/vcloud/requests/compute/power_off.rb +9 -0
  546. data/lib/fog/vcloud/requests/compute/power_on.rb +9 -0
  547. data/lib/fog/vcloud/requests/compute/power_reset.rb +9 -0
  548. data/lib/fog/vcloud/requests/compute/power_shutdown.rb +9 -0
  549. data/lib/fog/vcloud/requests/compute/undeploy.rb +31 -0
  550. data/lib/fog/vcloud_director.rb +1 -0
  551. data/lib/fog/vcloud_director/README.md +959 -0
  552. data/lib/fog/vcloud_director/compute.rb +917 -0
  553. data/lib/fog/vcloud_director/core.rb +69 -0
  554. data/lib/fog/vcloud_director/generators/compute/compose_common.rb +122 -0
  555. data/lib/fog/vcloud_director/generators/compute/compose_vapp.rb +25 -0
  556. data/lib/fog/vcloud_director/generators/compute/create_snapshot.rb +25 -0
  557. data/lib/fog/vcloud_director/generators/compute/customization.rb +105 -0
  558. data/lib/fog/vcloud_director/generators/compute/disks.rb +186 -0
  559. data/lib/fog/vcloud_director/generators/compute/edge_gateway_service_configuration.rb +243 -0
  560. data/lib/fog/vcloud_director/generators/compute/instantiate_vapp_template_params.rb +30 -0
  561. data/lib/fog/vcloud_director/generators/compute/metadata.rb +104 -0
  562. data/lib/fog/vcloud_director/generators/compute/network_config_section.rb +68 -0
  563. data/lib/fog/vcloud_director/generators/compute/org_vdc_network.rb +88 -0
  564. data/lib/fog/vcloud_director/generators/compute/recompose_vapp.rb +34 -0
  565. data/lib/fog/vcloud_director/generators/compute/vapp.rb +28 -0
  566. data/lib/fog/vcloud_director/generators/compute/vm.rb +32 -0
  567. data/lib/fog/vcloud_director/generators/compute/vm_network.rb +119 -0
  568. data/lib/fog/vcloud_director/models/compute/catalog.rb +22 -0
  569. data/lib/fog/vcloud_director/models/compute/catalog_item.rb +30 -0
  570. data/lib/fog/vcloud_director/models/compute/catalog_items.rb +33 -0
  571. data/lib/fog/vcloud_director/models/compute/catalogs.rb +30 -0
  572. data/lib/fog/vcloud_director/models/compute/custom_field.rb +18 -0
  573. data/lib/fog/vcloud_director/models/compute/custom_fields.rb +67 -0
  574. data/lib/fog/vcloud_director/models/compute/disk.rb +48 -0
  575. data/lib/fog/vcloud_director/models/compute/disks.rb +44 -0
  576. data/lib/fog/vcloud_director/models/compute/media.rb +26 -0
  577. data/lib/fog/vcloud_director/models/compute/medias.rb +75 -0
  578. data/lib/fog/vcloud_director/models/compute/network.rb +25 -0
  579. data/lib/fog/vcloud_director/models/compute/networks.rb +62 -0
  580. data/lib/fog/vcloud_director/models/compute/organization.rb +37 -0
  581. data/lib/fog/vcloud_director/models/compute/organizations.rb +28 -0
  582. data/lib/fog/vcloud_director/models/compute/tag.rb +31 -0
  583. data/lib/fog/vcloud_director/models/compute/tags.rb +41 -0
  584. data/lib/fog/vcloud_director/models/compute/task.rb +55 -0
  585. data/lib/fog/vcloud_director/models/compute/tasks.rb +36 -0
  586. data/lib/fog/vcloud_director/models/compute/template_vm.rb +52 -0
  587. data/lib/fog/vcloud_director/models/compute/template_vms.rb +41 -0
  588. data/lib/fog/vcloud_director/models/compute/vapp.rb +144 -0
  589. data/lib/fog/vcloud_director/models/compute/vapp_template.rb +26 -0
  590. data/lib/fog/vcloud_director/models/compute/vapp_templates.rb +40 -0
  591. data/lib/fog/vcloud_director/models/compute/vapps.rb +40 -0
  592. data/lib/fog/vcloud_director/models/compute/vdc.rb +45 -0
  593. data/lib/fog/vcloud_director/models/compute/vdcs.rb +37 -0
  594. data/lib/fog/vcloud_director/models/compute/vm.rb +197 -0
  595. data/lib/fog/vcloud_director/models/compute/vm_customization.rb +40 -0
  596. data/lib/fog/vcloud_director/models/compute/vm_customizations.rb +29 -0
  597. data/lib/fog/vcloud_director/models/compute/vm_network.rb +27 -0
  598. data/lib/fog/vcloud_director/models/compute/vm_networks.rb +19 -0
  599. data/lib/fog/vcloud_director/models/compute/vms.rb +46 -0
  600. data/lib/fog/vcloud_director/parsers/compute/disks.rb +53 -0
  601. data/lib/fog/vcloud_director/parsers/compute/metadata.rb +61 -0
  602. data/lib/fog/vcloud_director/parsers/compute/network.rb +104 -0
  603. data/lib/fog/vcloud_director/parsers/compute/vm.rb +86 -0
  604. data/lib/fog/vcloud_director/parsers/compute/vm_customization.rb +55 -0
  605. data/lib/fog/vcloud_director/parsers/compute/vm_network.rb +107 -0
  606. data/lib/fog/vcloud_director/parsers/compute/vm_parser_helper.rb +62 -0
  607. data/lib/fog/vcloud_director/parsers/compute/vms.rb +68 -0
  608. data/lib/fog/vcloud_director/parsers/compute/vms_by_metadata.rb +37 -0
  609. data/lib/fog/vcloud_director/query.rb +59 -0
  610. data/lib/fog/vcloud_director/requests/compute/delete_catalog_item.rb +22 -0
  611. data/lib/fog/vcloud_director/requests/compute/delete_catalog_item_metadata_item_metadata.rb +25 -0
  612. data/lib/fog/vcloud_director/requests/compute/delete_disk.rb +60 -0
  613. data/lib/fog/vcloud_director/requests/compute/delete_disk_metadata_item_metadata.rb +25 -0
  614. data/lib/fog/vcloud_director/requests/compute/delete_logout.rb +18 -0
  615. data/lib/fog/vcloud_director/requests/compute/delete_media.rb +122 -0
  616. data/lib/fog/vcloud_director/requests/compute/delete_media_metadata_item_metadata.rb +25 -0
  617. data/lib/fog/vcloud_director/requests/compute/delete_network.rb +62 -0
  618. data/lib/fog/vcloud_director/requests/compute/delete_shadow_vm.rb +30 -0
  619. data/lib/fog/vcloud_director/requests/compute/delete_vapp.rb +59 -0
  620. data/lib/fog/vcloud_director/requests/compute/delete_vapp_metadata_item_metadata.rb +30 -0
  621. data/lib/fog/vcloud_director/requests/compute/delete_vapp_template.rb +27 -0
  622. data/lib/fog/vcloud_director/requests/compute/delete_vapp_template_metadata_item_metadata.rb +26 -0
  623. data/lib/fog/vcloud_director/requests/compute/get_allocated_ip_addresses.rb +25 -0
  624. data/lib/fog/vcloud_director/requests/compute/get_catalog.rb +63 -0
  625. data/lib/fog/vcloud_director/requests/compute/get_catalog_item.rb +48 -0
  626. data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata.rb +25 -0
  627. data/lib/fog/vcloud_director/requests/compute/get_catalog_item_metadata_item_metadata.rb +26 -0
  628. data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata.rb +25 -0
  629. data/lib/fog/vcloud_director/requests/compute/get_catalog_metadata_item_metadata.rb +26 -0
  630. data/lib/fog/vcloud_director/requests/compute/get_catalogs_from_query.rb +94 -0
  631. data/lib/fog/vcloud_director/requests/compute/get_control_access_params_catalog.rb +26 -0
  632. data/lib/fog/vcloud_director/requests/compute/get_control_access_params_vapp.rb +25 -0
  633. data/lib/fog/vcloud_director/requests/compute/get_cpu_rasd_item.rb +65 -0
  634. data/lib/fog/vcloud_director/requests/compute/get_current_session.rb +83 -0
  635. data/lib/fog/vcloud_director/requests/compute/get_disk.rb +123 -0
  636. data/lib/fog/vcloud_director/requests/compute/get_disk_metadata.rb +25 -0
  637. data/lib/fog/vcloud_director/requests/compute/get_disk_metadata_item_metadata.rb +26 -0
  638. data/lib/fog/vcloud_director/requests/compute/get_disk_owner.rb +70 -0
  639. data/lib/fog/vcloud_director/requests/compute/get_disks_from_query.rb +94 -0
  640. data/lib/fog/vcloud_director/requests/compute/get_disks_rasd_items_list.rb +90 -0
  641. data/lib/fog/vcloud_director/requests/compute/get_edge_gateway.rb +109 -0
  642. data/lib/fog/vcloud_director/requests/compute/get_entity.rb +38 -0
  643. data/lib/fog/vcloud_director/requests/compute/get_execute_query.rb +736 -0
  644. data/lib/fog/vcloud_director/requests/compute/get_groups_from_query.rb +95 -0
  645. data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp.rb +69 -0
  646. data/lib/fog/vcloud_director/requests/compute/get_guest_customization_system_section_vapp_template.rb +25 -0
  647. data/lib/fog/vcloud_director/requests/compute/get_href.rb +21 -0
  648. data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp.rb +59 -0
  649. data/lib/fog/vcloud_director/requests/compute/get_lease_settings_section_vapp_template.rb +25 -0
  650. data/lib/fog/vcloud_director/requests/compute/get_media.rb +111 -0
  651. data/lib/fog/vcloud_director/requests/compute/get_media_drives_rasd_items_list.rb +92 -0
  652. data/lib/fog/vcloud_director/requests/compute/get_media_metadata.rb +25 -0
  653. data/lib/fog/vcloud_director/requests/compute/get_media_metadata_item_metadata.rb +26 -0
  654. data/lib/fog/vcloud_director/requests/compute/get_media_owner.rb +70 -0
  655. data/lib/fog/vcloud_director/requests/compute/get_medias_from_query.rb +94 -0
  656. data/lib/fog/vcloud_director/requests/compute/get_memory_rasd_item.rb +64 -0
  657. data/lib/fog/vcloud_director/requests/compute/get_metadata.rb +41 -0
  658. data/lib/fog/vcloud_director/requests/compute/get_network.rb +67 -0
  659. data/lib/fog/vcloud_director/requests/compute/get_network_cards_items_list.rb +70 -0
  660. data/lib/fog/vcloud_director/requests/compute/get_network_complete.rb +78 -0
  661. data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp.rb +61 -0
  662. data/lib/fog/vcloud_director/requests/compute/get_network_config_section_vapp_template.rb +25 -0
  663. data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp.rb +68 -0
  664. data/lib/fog/vcloud_director/requests/compute/get_network_connection_system_section_vapp_template.rb +25 -0
  665. data/lib/fog/vcloud_director/requests/compute/get_network_metadata.rb +25 -0
  666. data/lib/fog/vcloud_director/requests/compute/get_network_metadata_item_metadata.rb +26 -0
  667. data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp.rb +25 -0
  668. data/lib/fog/vcloud_director/requests/compute/get_network_section_vapp_template.rb +25 -0
  669. data/lib/fog/vcloud_director/requests/compute/get_operating_system_section.rb +59 -0
  670. data/lib/fog/vcloud_director/requests/compute/get_org_settings.rb +38 -0
  671. data/lib/fog/vcloud_director/requests/compute/get_org_vdc_gateways.rb +83 -0
  672. data/lib/fog/vcloud_director/requests/compute/get_organization.rb +100 -0
  673. data/lib/fog/vcloud_director/requests/compute/get_organization_metadata.rb +25 -0
  674. data/lib/fog/vcloud_director/requests/compute/get_organization_metadata_item_metadata.rb +28 -0
  675. data/lib/fog/vcloud_director/requests/compute/get_organizations.rb +52 -0
  676. data/lib/fog/vcloud_director/requests/compute/get_organizations_from_query.rb +95 -0
  677. data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp.rb +25 -0
  678. data/lib/fog/vcloud_director/requests/compute/get_product_sections_vapp_template.rb +26 -0
  679. data/lib/fog/vcloud_director/requests/compute/get_request.rb +19 -0
  680. data/lib/fog/vcloud_director/requests/compute/get_runtime_info_section_type.rb +57 -0
  681. data/lib/fog/vcloud_director/requests/compute/get_serial_ports_items_list.rb +25 -0
  682. data/lib/fog/vcloud_director/requests/compute/get_shadow_vm.rb +24 -0
  683. data/lib/fog/vcloud_director/requests/compute/get_snapshot_section.rb +55 -0
  684. data/lib/fog/vcloud_director/requests/compute/get_startup_section.rb +64 -0
  685. data/lib/fog/vcloud_director/requests/compute/get_supported_systems_info.rb +239 -0
  686. data/lib/fog/vcloud_director/requests/compute/get_supported_versions.rb +1159 -0
  687. data/lib/fog/vcloud_director/requests/compute/get_task.rb +168 -0
  688. data/lib/fog/vcloud_director/requests/compute/get_task_list.rb +130 -0
  689. data/lib/fog/vcloud_director/requests/compute/get_template_vm.rb +74 -0
  690. data/lib/fog/vcloud_director/requests/compute/get_template_vms.rb +41 -0
  691. data/lib/fog/vcloud_director/requests/compute/get_thumbnail.rb +28 -0
  692. data/lib/fog/vcloud_director/requests/compute/get_users_from_query.rb +95 -0
  693. data/lib/fog/vcloud_director/requests/compute/get_vapp.rb +172 -0
  694. data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata.rb +84 -0
  695. data/lib/fog/vcloud_director/requests/compute/get_vapp_metadata_item_metadata.rb +26 -0
  696. data/lib/fog/vcloud_director/requests/compute/get_vapp_ovf_descriptor.rb +24 -0
  697. data/lib/fog/vcloud_director/requests/compute/get_vapp_owner.rb +58 -0
  698. data/lib/fog/vcloud_director/requests/compute/get_vapp_template.rb +25 -0
  699. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_customization_system_section.rb +25 -0
  700. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata.rb +25 -0
  701. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_metadata_item_metadata.rb +27 -0
  702. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_ovf_descriptor.rb +24 -0
  703. data/lib/fog/vcloud_director/requests/compute/get_vapp_template_owner.rb +25 -0
  704. data/lib/fog/vcloud_director/requests/compute/get_vapp_templates_from_query.rb +95 -0
  705. data/lib/fog/vcloud_director/requests/compute/get_vapps_in_lease_from_query.rb +94 -0
  706. data/lib/fog/vcloud_director/requests/compute/get_vcloud.rb +76 -0
  707. data/lib/fog/vcloud_director/requests/compute/get_vdc.rb +174 -0
  708. data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata.rb +25 -0
  709. data/lib/fog/vcloud_director/requests/compute/get_vdc_metadata_item_metadata.rb +28 -0
  710. data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class.rb +83 -0
  711. data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata.rb +27 -0
  712. data/lib/fog/vcloud_director/requests/compute/get_vdc_storage_class_metadata_item_metadata.rb +25 -0
  713. data/lib/fog/vcloud_director/requests/compute/get_vdcs_from_query.rb +94 -0
  714. data/lib/fog/vcloud_director/requests/compute/get_virtual_hardware_section.rb +29 -0
  715. data/lib/fog/vcloud_director/requests/compute/get_vm.rb +74 -0
  716. data/lib/fog/vcloud_director/requests/compute/get_vm_capabilities.rb +61 -0
  717. data/lib/fog/vcloud_director/requests/compute/get_vm_compliance_results.rb +24 -0
  718. data/lib/fog/vcloud_director/requests/compute/get_vm_customization.rb +31 -0
  719. data/lib/fog/vcloud_director/requests/compute/get_vm_disks.rb +51 -0
  720. data/lib/fog/vcloud_director/requests/compute/get_vm_network.rb +56 -0
  721. data/lib/fog/vcloud_director/requests/compute/get_vm_pending_question.rb +34 -0
  722. data/lib/fog/vcloud_director/requests/compute/get_vms.rb +41 -0
  723. data/lib/fog/vcloud_director/requests/compute/get_vms_by_metadata.rb +20 -0
  724. data/lib/fog/vcloud_director/requests/compute/get_vms_disk_attached_to.rb +39 -0
  725. data/lib/fog/vcloud_director/requests/compute/get_vms_in_lease_from_query.rb +150 -0
  726. data/lib/fog/vcloud_director/requests/compute/instantiate_vapp_template.rb +173 -0
  727. data/lib/fog/vcloud_director/requests/compute/post_acquire_ticket.rb +27 -0
  728. data/lib/fog/vcloud_director/requests/compute/post_answer_vm_pending_question.rb +36 -0
  729. data/lib/fog/vcloud_director/requests/compute/post_attach_disk.rb +51 -0
  730. data/lib/fog/vcloud_director/requests/compute/post_cancel_task.rb +43 -0
  731. data/lib/fog/vcloud_director/requests/compute/post_capture_vapp.rb +70 -0
  732. data/lib/fog/vcloud_director/requests/compute/post_check_vm_compliance.rb +28 -0
  733. data/lib/fog/vcloud_director/requests/compute/post_clone_media.rb +102 -0
  734. data/lib/fog/vcloud_director/requests/compute/post_clone_vapp.rb +62 -0
  735. data/lib/fog/vcloud_director/requests/compute/post_clone_vapp_template.rb +52 -0
  736. data/lib/fog/vcloud_director/requests/compute/post_compose_vapp.rb +45 -0
  737. data/lib/fog/vcloud_director/requests/compute/post_configure_edge_gateway_services.rb +73 -0
  738. data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp.rb +27 -0
  739. data/lib/fog/vcloud_director/requests/compute/post_consolidate_vm_vapp_template.rb +27 -0
  740. data/lib/fog/vcloud_director/requests/compute/post_create_catalog_item.rb +56 -0
  741. data/lib/fog/vcloud_director/requests/compute/post_create_org_vdc_network.rb +171 -0
  742. data/lib/fog/vcloud_director/requests/compute/post_create_snapshot.rb +21 -0
  743. data/lib/fog/vcloud_director/requests/compute/post_deploy_vapp.rb +51 -0
  744. data/lib/fog/vcloud_director/requests/compute/post_detach_disk.rb +39 -0
  745. data/lib/fog/vcloud_director/requests/compute/post_disable_nested_hv.rb +27 -0
  746. data/lib/fog/vcloud_director/requests/compute/post_disable_vapp_template_download.rb +24 -0
  747. data/lib/fog/vcloud_director/requests/compute/post_discard_vapp_state.rb +30 -0
  748. data/lib/fog/vcloud_director/requests/compute/post_eject_cd_rom.rb +39 -0
  749. data/lib/fog/vcloud_director/requests/compute/post_enable_nested_hv.rb +27 -0
  750. data/lib/fog/vcloud_director/requests/compute/post_enable_vapp_template_download.rb +24 -0
  751. data/lib/fog/vcloud_director/requests/compute/post_enter_maintenance_mode.rb +26 -0
  752. data/lib/fog/vcloud_director/requests/compute/post_exit_maintenance_mode.rb +22 -0
  753. data/lib/fog/vcloud_director/requests/compute/post_insert_cd_rom.rb +39 -0
  754. data/lib/fog/vcloud_director/requests/compute/post_install_vmware_tools.rb +27 -0
  755. data/lib/fog/vcloud_director/requests/compute/post_instantiate_vapp_template.rb +196 -0
  756. data/lib/fog/vcloud_director/requests/compute/post_login_session.rb +39 -0
  757. data/lib/fog/vcloud_director/requests/compute/post_power_off_vapp.rb +36 -0
  758. data/lib/fog/vcloud_director/requests/compute/post_power_on_vapp.rb +71 -0
  759. data/lib/fog/vcloud_director/requests/compute/post_reboot_vapp.rb +33 -0
  760. data/lib/fog/vcloud_director/requests/compute/post_recompose_vapp.rb +21 -0
  761. data/lib/fog/vcloud_director/requests/compute/post_reconfigure_vm.rb +118 -0
  762. data/lib/fog/vcloud_director/requests/compute/post_remove_all_snapshots.rb +27 -0
  763. data/lib/fog/vcloud_director/requests/compute/post_reset_vapp.rb +33 -0
  764. data/lib/fog/vcloud_director/requests/compute/post_revert_snapshot.rb +27 -0
  765. data/lib/fog/vcloud_director/requests/compute/post_shutdown_vapp.rb +33 -0
  766. data/lib/fog/vcloud_director/requests/compute/post_suspend_vapp.rb +33 -0
  767. data/lib/fog/vcloud_director/requests/compute/post_undeploy_vapp.rb +66 -0
  768. data/lib/fog/vcloud_director/requests/compute/post_update_catalog_item_metadata.rb +52 -0
  769. data/lib/fog/vcloud_director/requests/compute/post_update_disk_metadata.rb +52 -0
  770. data/lib/fog/vcloud_director/requests/compute/post_update_media_metadata.rb +52 -0
  771. data/lib/fog/vcloud_director/requests/compute/post_update_vapp_metadata.rb +86 -0
  772. data/lib/fog/vcloud_director/requests/compute/post_update_vapp_template_metadata.rb +52 -0
  773. data/lib/fog/vcloud_director/requests/compute/post_upgrade_hw_version.rb +28 -0
  774. data/lib/fog/vcloud_director/requests/compute/post_upload_disk.rb +133 -0
  775. data/lib/fog/vcloud_director/requests/compute/post_upload_media.rb +120 -0
  776. data/lib/fog/vcloud_director/requests/compute/post_upload_vapp_template.rb +46 -0
  777. data/lib/fog/vcloud_director/requests/compute/put_catalog_item_metadata_item_metadata.rb +50 -0
  778. data/lib/fog/vcloud_director/requests/compute/put_config_network_section_vapp.rb +26 -0
  779. data/lib/fog/vcloud_director/requests/compute/put_cpu.rb +88 -0
  780. data/lib/fog/vcloud_director/requests/compute/put_disk_metadata_item_metadata.rb +46 -0
  781. data/lib/fog/vcloud_director/requests/compute/put_disks.rb +39 -0
  782. data/lib/fog/vcloud_director/requests/compute/put_guest_customization_section_vapp.rb +141 -0
  783. data/lib/fog/vcloud_director/requests/compute/put_media_metadata_item_metadata.rb +50 -0
  784. data/lib/fog/vcloud_director/requests/compute/put_memory.rb +89 -0
  785. data/lib/fog/vcloud_director/requests/compute/put_metadata_value.rb +26 -0
  786. data/lib/fog/vcloud_director/requests/compute/put_network.rb +162 -0
  787. data/lib/fog/vcloud_director/requests/compute/put_network_connection_system_section_vapp.rb +152 -0
  788. data/lib/fog/vcloud_director/requests/compute/put_product_sections.rb +46 -0
  789. data/lib/fog/vcloud_director/requests/compute/put_vapp_metadata_item_metadata.rb +85 -0
  790. data/lib/fog/vcloud_director/requests/compute/put_vapp_name_and_description.rb +36 -0
  791. data/lib/fog/vcloud_director/requests/compute/put_vapp_template_metadata_item_metadata.rb +50 -0
  792. data/lib/fog/vcloud_director/requests/compute/put_vm.rb +72 -0
  793. data/lib/fog/vcloud_director/requests/compute/put_vm_capabilities.rb +44 -0
  794. data/lib/fog/version.rb +3 -0
  795. data/lib/tasks/changelog_task.rb +231 -0
  796. data/lib/tasks/github_release_task.rb +66 -0
  797. data/spec/fog/account_spec.rb +14 -0
  798. data/spec/fog/billing_spec.rb +14 -0
  799. data/spec/fog/bin/atmos_spec.rb +23 -0
  800. data/spec/fog/bin/aws_spec.rb +80 -0
  801. data/spec/fog/bin/baremetalcloud_spec.rb +23 -0
  802. data/spec/fog/bin/brightbox_spec.rb +30 -0
  803. data/spec/fog/bin/clodo_spec.rb +9 -0
  804. data/spec/fog/bin/cloudsigma_spec.rb +9 -0
  805. data/spec/fog/bin/dnsimple_spec.rb +9 -0
  806. data/spec/fog/bin/dnsmadeeasy_spec.rb +9 -0
  807. data/spec/fog/bin/dreamhost_spec.rb +9 -0
  808. data/spec/fog/bin/dynect_spec.rb +9 -0
  809. data/spec/fog/bin/ecloud_spec.rb +10 -0
  810. data/spec/fog/bin/fogdocker_spec.rb +10 -0
  811. data/spec/fog/bin/glesys_spec.rb +10 -0
  812. data/spec/fog/bin/gogrid_spec.rb +10 -0
  813. data/spec/fog/bin/google_spec.rb +10 -0
  814. data/spec/fog/bin/ibm_spec.rb +10 -0
  815. data/spec/fog/bin/linode_spec.rb +10 -0
  816. data/spec/fog/bin/local_spec.rb +10 -0
  817. data/spec/fog/bin/opennebula_spec.rb +10 -0
  818. data/spec/fog/bin/openstack_spec.rb +10 -0
  819. data/spec/fog/bin/openvz_spec.rb +10 -0
  820. data/spec/fog/bin/powerdns_spec.rb +9 -0
  821. data/spec/fog/bin/profitbricks_spec.rb +10 -0
  822. data/spec/fog/bin/rackspace_spec.rb +10 -0
  823. data/spec/fog/bin/rage4_spec.rb +10 -0
  824. data/spec/fog/bin/riakcs_spec.rb +10 -0
  825. data/spec/fog/bin/sakuracloud_spec.rb +10 -0
  826. data/spec/fog/bin/serverlove_spec.rb +10 -0
  827. data/spec/fog/bin/softlayer_spec.rb +10 -0
  828. data/spec/fog/bin/stormondemand_spec.rb +10 -0
  829. data/spec/fog/bin/vcloud_spec.rb +10 -0
  830. data/spec/fog/bin/vclouddirector_spec.rb +10 -0
  831. data/spec/fog/bin/vmfusion_spec.rb +10 -0
  832. data/spec/fog/bin/voxel_spec.rb +10 -0
  833. data/spec/fog/bin/vsphere_spec.rb +10 -0
  834. data/spec/fog/bin/xenserver_spec.rb +10 -0
  835. data/spec/fog/bin_spec.rb +149 -0
  836. data/spec/fog/cdn_spec.rb +14 -0
  837. data/spec/fog/identity_spec.rb +14 -0
  838. data/spec/fog/image_spec.rb +14 -0
  839. data/spec/fog/metering_spec.rb +14 -0
  840. data/spec/fog/monitoring_spec.rb +14 -0
  841. data/spec/fog/network_spec.rb +14 -0
  842. data/spec/fog/orchestration_spec.rb +14 -0
  843. data/spec/fog/storage_spec.rb +14 -0
  844. data/spec/fog/support_spec.rb +14 -0
  845. data/spec/fog/volume_spec.rb +14 -0
  846. data/spec/fog/vpn_spec.rb +14 -0
  847. data/spec/fog/xml/connection_spec.rb +33 -0
  848. data/spec/helpers/bin.rb +34 -0
  849. data/spec/spec_helper.rb +15 -0
  850. data/spec/vcloud_director/generators/compute/instantiate_vapp_template_params_spec.rb +68 -0
  851. data/spec/vcloud_director/requests/compute/instantiate_vapp_template_spec.rb +78 -0
  852. data/spec/vcloud_director/spec_helper.rb +11 -0
  853. data/tests/clodo/requests/compute/image_tests.rb +36 -0
  854. data/tests/clodo/requests/compute/server_tests.rb +152 -0
  855. data/tests/cloudsigma/models/server_tests.rb +72 -0
  856. data/tests/cloudsigma/models/servers_tests.rb +9 -0
  857. data/tests/cloudsigma/models/snapshot_tests.rb +25 -0
  858. data/tests/cloudsigma/models/snapshots_tests.rb +16 -0
  859. data/tests/cloudsigma/models/volume_tests.rb +21 -0
  860. data/tests/cloudsigma/models/volumes_tests.rb +9 -0
  861. data/tests/cloudsigma/requests/server_tests.rb +77 -0
  862. data/tests/cloudsigma/requests/snapshots_tests.rb +84 -0
  863. data/tests/cloudsigma/requests/volumes_tests.rb +56 -0
  864. data/tests/compute/helper.rb +83 -0
  865. data/tests/compute/models/flavors_tests.rb +13 -0
  866. data/tests/compute/models/server_tests.rb +39 -0
  867. data/tests/compute/models/servers_tests.rb +10 -0
  868. data/tests/core/attribute_tests.rb +83 -0
  869. data/tests/core/credential_tests.rb +93 -0
  870. data/tests/core/current_machine_tests.rb +32 -0
  871. data/tests/core/mocking_tests.rb +75 -0
  872. data/tests/core/parser_tests.rb +92 -0
  873. data/tests/core/service_tests.rb +26 -0
  874. data/tests/core/timeout_tests.rb +10 -0
  875. data/tests/core/uuid_tests.rb +10 -0
  876. data/tests/core/wait_for_tests.rb +13 -0
  877. data/tests/dns/helper.rb +46 -0
  878. data/tests/dns/models/record_tests.rb +44 -0
  879. data/tests/dns/models/records_tests.rb +30 -0
  880. data/tests/dns/models/zone_tests.rb +18 -0
  881. data/tests/dns/models/zones_tests.rb +18 -0
  882. data/tests/dnsmadeeasy/requests/dns/dns_tests.rb +138 -0
  883. data/tests/dreamhost/README.md +56 -0
  884. data/tests/dreamhost/dns_tests.rb +19 -0
  885. data/tests/dreamhost/helper.rb +19 -0
  886. data/tests/dreamhost/models/dns/record_tests.rb +72 -0
  887. data/tests/dreamhost/models/dns/records_tests.rb +28 -0
  888. data/tests/dreamhost/models/dns/zone_tests.rb +61 -0
  889. data/tests/dreamhost/models/dns/zones_tests.rb +28 -0
  890. data/tests/dreamhost/requests/dns/create_record_tests.rb +39 -0
  891. data/tests/dreamhost/requests/dns/delete_record_tests.rb +26 -0
  892. data/tests/dreamhost/requests/dns/list_records_tests.rb +31 -0
  893. data/tests/fogdocker/compute_tests.rb +17 -0
  894. data/tests/fogdocker/models/compute/image_tests.rb +31 -0
  895. data/tests/fogdocker/models/compute/images_tests.rb +9 -0
  896. data/tests/fogdocker/models/compute/server_tests.rb +57 -0
  897. data/tests/fogdocker/models/compute/servers_tests.rb +14 -0
  898. data/tests/fogdocker/requests/compute/api_version_tests.rb +10 -0
  899. data/tests/fogdocker/requests/compute/container_action_tests.rb +35 -0
  900. data/tests/fogdocker/requests/compute/container_commit_tests.rb +18 -0
  901. data/tests/fogdocker/requests/compute/container_create_tests.rb +21 -0
  902. data/tests/fogdocker/requests/compute/container_delete_tests.rb +16 -0
  903. data/tests/fogdocker/requests/compute/image_create_tests.rb +21 -0
  904. data/tests/fogdocker/requests/compute/image_delete_tests.rb +20 -0
  905. data/tests/fogdocker/requests/compute/image_search_tests.rb +11 -0
  906. data/tests/glesys/requests/compute/helper.rb +326 -0
  907. data/tests/glesys/requests/compute/ip_tests.rb +66 -0
  908. data/tests/glesys/requests/compute/server_tests.rb +142 -0
  909. data/tests/glesys/requests/compute/ssh_key_tests.rb +47 -0
  910. data/tests/glesys/requests/compute/template_tests.rb +12 -0
  911. data/tests/go_grid/requests/compute/image_tests.rb +0 -0
  912. data/tests/helper.rb +52 -0
  913. data/tests/helpers/collection_helper.rb +91 -0
  914. data/tests/helpers/compute/flavors_helper.rb +32 -0
  915. data/tests/helpers/compute/server_helper.rb +25 -0
  916. data/tests/helpers/compute/servers_helper.rb +10 -0
  917. data/tests/helpers/formats_helper.rb +98 -0
  918. data/tests/helpers/formats_helper_tests.rb +110 -0
  919. data/tests/helpers/mock_helper.rb +82 -0
  920. data/tests/helpers/model_helper.rb +31 -0
  921. data/tests/helpers/responds_to_helper.rb +11 -0
  922. data/tests/helpers/schema_validator_tests.rb +107 -0
  923. data/tests/helpers/succeeds_helper.rb +9 -0
  924. data/tests/ibm/models/compute/image_tests.rb +25 -0
  925. data/tests/ibm/models/compute/key_tests.rb +23 -0
  926. data/tests/ibm/models/compute/keys_tests.rb +35 -0
  927. data/tests/ibm/models/compute/locations_tests.rb +18 -0
  928. data/tests/ibm/models/compute/server_tests.rb +88 -0
  929. data/tests/ibm/models/compute/servers_tests.rb +37 -0
  930. data/tests/ibm/models/storage/volume_tests.rb +60 -0
  931. data/tests/ibm/requests/compute/address_tests.rb +44 -0
  932. data/tests/ibm/requests/compute/image_tests.rb +110 -0
  933. data/tests/ibm/requests/compute/instance_tests.rb +102 -0
  934. data/tests/ibm/requests/compute/key_tests.rb +50 -0
  935. data/tests/ibm/requests/compute/location_tests.rb +28 -0
  936. data/tests/ibm/requests/compute/vlan_tests.rb +21 -0
  937. data/tests/ibm/requests/storage/volume_tests.rb +100 -0
  938. data/tests/linode/requests/compute/datacenter_tests.rb +20 -0
  939. data/tests/linode/requests/compute/distribution_tests.rb +32 -0
  940. data/tests/linode/requests/compute/helper.rb +10 -0
  941. data/tests/linode/requests/compute/kernel_tests.rb +19 -0
  942. data/tests/linode/requests/compute/linode_tests.rb +216 -0
  943. data/tests/linode/requests/compute/linodeplans_tests.rb +44 -0
  944. data/tests/linode/requests/compute/nodebalancers_tests.rb +20 -0
  945. data/tests/linode/requests/compute/stackscripts_tests.rb +36 -0
  946. data/tests/linode/requests/dns/dns_tests.rb +250 -0
  947. data/tests/lorem.txt +1 -0
  948. data/tests/opennebula/compute_tests.rb +19 -0
  949. data/tests/opennebula/models/compute/flavor_tests.rb +40 -0
  950. data/tests/opennebula/models/compute/flavors_tests.rb +19 -0
  951. data/tests/opennebula/models/compute/group_tests.rb +30 -0
  952. data/tests/opennebula/models/compute/groups_tests.rb +19 -0
  953. data/tests/opennebula/models/compute/network_tests.rb +30 -0
  954. data/tests/opennebula/models/compute/networks_tests.rb +19 -0
  955. data/tests/opennebula/requests/compute/vm_allocate_tests.rb +80 -0
  956. data/tests/opennebula/requests/compute/vm_disk_snapshot_test.rb +49 -0
  957. data/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb +55 -0
  958. data/tests/openvz/helper.rb +47 -0
  959. data/tests/openvz/models/compute/server_tests.rb +55 -0
  960. data/tests/openvz/models/compute/servers_tests.rb +35 -0
  961. data/tests/rage4/requests/dns/dns_tests.rb +282 -0
  962. data/tests/storage/helper.rb +13 -0
  963. data/tests/storage/models/directories_tests.rb +17 -0
  964. data/tests/storage/models/directory_test.rb +29 -0
  965. data/tests/storage/models/file_tests.rb +41 -0
  966. data/tests/storage/models/files_tests.rb +26 -0
  967. data/tests/vcloud/data/api_+_admin_+_network_+_2 +110 -0
  968. data/tests/vcloud/data/api_+_network_+_1 +44 -0
  969. data/tests/vcloud/data/api_+_org_+_ +5 -0
  970. data/tests/vcloud/data/api_+_org_+_1 +17 -0
  971. data/tests/vcloud/data/api_+_sessions +8 -0
  972. data/tests/vcloud/data/api_+_v1.0_+_admin_+_network_+_2 +110 -0
  973. data/tests/vcloud/data/api_+_v1.0_+_login +5 -0
  974. data/tests/vcloud/data/api_+_v1.0_+_network_+_1 +44 -0
  975. data/tests/vcloud/data/api_+_v1.0_+_network_+_2 +31 -0
  976. data/tests/vcloud/data/api_+_v1.0_+_org_+_1 +17 -0
  977. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vapp-1 +369 -0
  978. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-1 +139 -0
  979. data/tests/vcloud/data/api_+_v1.0_+_vApp_+_vm-2 +155 -0
  980. data/tests/vcloud/data/api_+_v1.0_+_vdc_+_1 +61 -0
  981. data/tests/vcloud/data/api_+_vApp_+_vapp-1 +369 -0
  982. data/tests/vcloud/data/api_+_vApp_+_vm-2 +155 -0
  983. data/tests/vcloud/data/api_+_vdc_+_1 +62 -0
  984. data/tests/vcloud/models/compute/helper.rb +22 -0
  985. data/tests/vcloud/models/compute/network_tests.rb +67 -0
  986. data/tests/vcloud/models/compute/networks_tests.rb +61 -0
  987. data/tests/vcloud/models/compute/organization_tests.rb +20 -0
  988. data/tests/vcloud/models/compute/organizations_tests.rb +16 -0
  989. data/tests/vcloud/models/compute/server_tests.rb +142 -0
  990. data/tests/vcloud/models/compute/servers_tests.rb +23 -0
  991. data/tests/vcloud/models/compute/vapp_tests.rb +32 -0
  992. data/tests/vcloud/models/compute/vapps_tests.rb +19 -0
  993. data/tests/vcloud/models/compute/vdc_tests.rb +48 -0
  994. data/tests/vcloud/models/compute/vdcs_tests.rb +24 -0
  995. data/tests/vcloud/requests/compute/disk_configure_tests.rb +111 -0
  996. data/tests/vcloud_director/ensure_list_tests.rb +84 -0
  997. data/tests/vcloud_director/fixtures/test.iso +1 -0
  998. data/tests/vcloud_director/fixtures/vapp.xml +532 -0
  999. data/tests/vcloud_director/fixtures/vm.xml +213 -0
  1000. data/tests/vcloud_director/generators/compute/compose_vapp_tests.rb +108 -0
  1001. data/tests/vcloud_director/models/compute/catalog_items_tests.rb +42 -0
  1002. data/tests/vcloud_director/models/compute/catalogs_tests.rb +40 -0
  1003. data/tests/vcloud_director/models/compute/helper.rb +60 -0
  1004. data/tests/vcloud_director/models/compute/media_tests.rb +58 -0
  1005. data/tests/vcloud_director/models/compute/network_tests.rb +108 -0
  1006. data/tests/vcloud_director/models/compute/organizations_tests.rb +18 -0
  1007. data/tests/vcloud_director/models/compute/tasks_tests.rb +56 -0
  1008. data/tests/vcloud_director/models/compute/vapp_life_cycle_tests.rb +93 -0
  1009. data/tests/vcloud_director/models/compute/vapp_template_tests.rb +29 -0
  1010. data/tests/vcloud_director/models/compute/vapp_tests.rb +61 -0
  1011. data/tests/vcloud_director/models/compute/vdcs_tests.rb +54 -0
  1012. data/tests/vcloud_director/models/compute/vms_tests.rb +101 -0
  1013. data/tests/vcloud_director/requests/compute/admin_tests.rb +16 -0
  1014. data/tests/vcloud_director/requests/compute/catalog_tests.rb +42 -0
  1015. data/tests/vcloud_director/requests/compute/disk_tests.rb +178 -0
  1016. data/tests/vcloud_director/requests/compute/edge_gateway_tests.rb +217 -0
  1017. data/tests/vcloud_director/requests/compute/groups_tests.rb +18 -0
  1018. data/tests/vcloud_director/requests/compute/helper.rb +32 -0
  1019. data/tests/vcloud_director/requests/compute/media_tests.rb +195 -0
  1020. data/tests/vcloud_director/requests/compute/network_tests.rb +186 -0
  1021. data/tests/vcloud_director/requests/compute/organization_tests.rb +37 -0
  1022. data/tests/vcloud_director/requests/compute/ovf_descriptor_tests.rb +36 -0
  1023. data/tests/vcloud_director/requests/compute/query_tests.rb +99 -0
  1024. data/tests/vcloud_director/requests/compute/schema_helper.rb +663 -0
  1025. data/tests/vcloud_director/requests/compute/session_tests.rb +14 -0
  1026. data/tests/vcloud_director/requests/compute/supported_systems_tests.rb +11 -0
  1027. data/tests/vcloud_director/requests/compute/task_tests.rb +35 -0
  1028. data/tests/vcloud_director/requests/compute/users_tests.rb +18 -0
  1029. data/tests/vcloud_director/requests/compute/vapp_tests.rb +123 -0
  1030. data/tests/vcloud_director/requests/compute/vdc_storage_profile_tests.rb +27 -0
  1031. data/tests/vcloud_director/requests/compute/vdc_tests.rb +36 -0
  1032. data/tests/vcloud_director/requests/compute/versions_tests.rb +13 -0
  1033. data/tests/vcloud_director/requests/compute/vm_tests.rb +185 -0
  1034. data/tests/watchr.rb +22 -0
  1035. metadata +1819 -0
@@ -0,0 +1,917 @@
1
+ require 'fog/vcloud_director/core'
2
+ require 'fog/vcloud_director/query'
3
+
4
+ class VcloudDirectorParser < Fog::Parsers::Base
5
+ def extract_attributes(attributes_xml)
6
+ attributes = {}
7
+ until attributes_xml.empty?
8
+ if attributes_xml.first.is_a?(Array)
9
+ until attributes_xml.first.empty?
10
+ attribute = attributes_xml.first.shift
11
+ attributes[attribute.localname.to_sym] = attribute.value
12
+ end
13
+ else
14
+ attribute = attributes_xml.shift
15
+ attributes[attribute.localname.to_sym] = attribute.value
16
+ end
17
+ end
18
+ attributes
19
+ end
20
+ end
21
+
22
+ class NonLoaded
23
+ end
24
+
25
+ module Fog
26
+ module Compute
27
+ class VcloudDirector < Fog::Service
28
+ module Defaults
29
+ PATH = '/api'
30
+ PORT = 443
31
+ SCHEME = 'https'
32
+ API_VERSION = '5.1'
33
+ OMIT_DEFAULT_PORT = true
34
+ end
35
+
36
+ class ServiceError < Fog::VcloudDirector::Errors::ServiceError; end
37
+
38
+ class BadRequest < Fog::VcloudDirector::Errors::BadRequest; end
39
+ class Unauthorized < Fog::VcloudDirector::Errors::Unauthorized; end
40
+ class Forbidden < Fog::VcloudDirector::Errors::Forbidden; end
41
+ class Conflict < Fog::VcloudDirector::Errors::Conflict; end
42
+ class MalformedResponse < Fog::VcloudDirector::Errors::MalformedResponse; end
43
+
44
+ class DuplicateName < Fog::VcloudDirector::Errors::DuplicateName; end
45
+ class TaskError < Fog::VcloudDirector::Errors::TaskError; end
46
+
47
+ requires :vcloud_director_username, :vcloud_director_password, :vcloud_director_host
48
+ recognizes :vcloud_director_api_version, :vcloud_director_show_progress, :path, :vcloud_token
49
+
50
+ secrets :vcloud_director_password
51
+
52
+ model_path 'fog/vcloud_director/models/compute'
53
+ model :catalog
54
+ collection :catalogs
55
+ model :organization
56
+ collection :organizations
57
+ model :catalog_item
58
+ collection :vapp_templates
59
+ model :vapp_template
60
+ collection :template_vms
61
+ model :template_vm
62
+ collection :catalog_items
63
+ model :custom_field
64
+ collection :custom_fields
65
+ model :vdc
66
+ collection :vdcs
67
+ model :vapp
68
+ collection :vapps
69
+ model :task
70
+ collection :tasks
71
+ model :vm
72
+ collection :vms
73
+ model :vm_customization
74
+ collection :vm_customizations
75
+ model :network
76
+ collection :networks
77
+ model :disk
78
+ collection :disks
79
+ model :vm_network
80
+ collection :vm_networks
81
+ model :tag # this is called metadata in vcloud
82
+ collection :tags
83
+ model :media
84
+ collection :medias # sic
85
+
86
+ request_path 'fog/vcloud_director/requests/compute'
87
+ request :delete_catalog_item
88
+ request :delete_catalog_item_metadata_item_metadata
89
+ request :delete_disk
90
+ request :delete_disk_metadata_item_metadata
91
+ request :delete_logout
92
+ request :delete_media
93
+ request :delete_media_metadata_item_metadata
94
+ request :delete_network
95
+ request :delete_shadow_vm
96
+ request :delete_vapp
97
+ request :delete_vapp_metadata_item_metadata
98
+ request :delete_vapp_template
99
+ request :delete_vapp_template_metadata_item_metadata
100
+ request :get_allocated_ip_addresses
101
+ request :get_catalog
102
+ request :get_catalog_item
103
+ request :get_catalog_item_metadata
104
+ request :get_catalog_item_metadata_item_metadata
105
+ request :get_catalog_metadata
106
+ request :get_catalog_metadata_item_metadata
107
+ request :get_catalogs_from_query
108
+ request :get_control_access_params_catalog
109
+ request :get_control_access_params_vapp
110
+ request :get_cpu_rasd_item
111
+ request :get_current_session
112
+ request :get_disk
113
+ request :get_disk_metadata
114
+ request :get_disk_metadata_item_metadata
115
+ request :get_disk_owner
116
+ request :get_disks_from_query
117
+ request :get_disks_rasd_items_list
118
+ request :get_edge_gateway
119
+ request :get_entity
120
+ request :get_execute_query
121
+ request :get_groups_from_query
122
+ request :get_guest_customization_system_section_vapp
123
+ request :get_guest_customization_system_section_vapp_template
124
+ request :get_href # this is used for manual testing
125
+ request :get_lease_settings_section_vapp
126
+ request :get_lease_settings_section_vapp_template
127
+ request :get_media
128
+ request :get_media_drives_rasd_items_list
129
+ request :get_media_metadata
130
+ request :get_media_metadata_item_metadata
131
+ request :get_media_owner
132
+ request :get_medias_from_query
133
+ request :get_memory_rasd_item
134
+ request :get_metadata
135
+ request :get_network
136
+ request :get_network_cards_items_list
137
+ request :get_network_complete
138
+ request :get_network_config_section_vapp
139
+ request :get_network_config_section_vapp_template
140
+ request :get_network_connection_system_section_vapp
141
+ request :get_network_connection_system_section_vapp_template
142
+ request :get_network_metadata
143
+ request :get_network_metadata_item_metadata
144
+ request :get_network_section_vapp
145
+ request :get_network_section_vapp_template
146
+ request :get_operating_system_section
147
+ request :get_org_settings
148
+ request :get_org_vdc_gateways
149
+ request :get_organization
150
+ request :get_organization_metadata
151
+ request :get_organization_metadata_item_metadata
152
+ request :get_organizations
153
+ request :get_organizations_from_query
154
+ request :get_product_sections_vapp
155
+ request :get_product_sections_vapp_template
156
+ request :get_request # this is used for manual testing
157
+ request :get_runtime_info_section_type
158
+ request :get_serial_ports_items_list
159
+ request :get_shadow_vm
160
+ request :get_snapshot_section
161
+ request :get_startup_section
162
+ request :get_supported_systems_info
163
+ request :get_supported_versions
164
+ request :get_task
165
+ request :get_task_list
166
+ request :get_template_vm
167
+ request :get_template_vms
168
+ request :get_thumbnail
169
+ request :get_users_from_query
170
+ request :get_vapp
171
+ request :get_vapp_metadata
172
+ request :get_vapp_metadata_item_metadata
173
+ request :get_vapp_ovf_descriptor
174
+ request :get_vapp_owner
175
+ request :get_vapp_template
176
+ request :get_vapp_template_customization_system_section
177
+ request :get_vapp_template_metadata
178
+ request :get_vapp_template_metadata_item_metadata
179
+ request :get_vapp_template_ovf_descriptor
180
+ request :get_vapp_template_owner
181
+ request :get_vapp_templates_from_query
182
+ request :get_vapps_in_lease_from_query
183
+ request :get_vcloud
184
+ request :get_vdc
185
+ request :get_vdc_metadata
186
+ request :get_vdc_metadata_item_metadata
187
+ request :get_vdc_storage_class
188
+ request :get_vdc_storage_class_metadata
189
+ request :get_vdc_storage_class_metadata_item_metadata
190
+ request :get_vdcs_from_query
191
+ request :get_virtual_hardware_section
192
+ request :get_vm
193
+ request :get_vm_capabilities
194
+ request :get_vm_compliance_results
195
+ request :get_vm_customization
196
+ request :get_vm_disks
197
+ request :get_vm_network
198
+ request :get_vm_pending_question
199
+ request :get_vms
200
+ request :get_vms_by_metadata
201
+ request :get_vms_disk_attached_to
202
+ request :get_vms_in_lease_from_query
203
+ request :instantiate_vapp_template # to be deprecated
204
+ request :post_acquire_ticket
205
+ request :post_answer_vm_pending_question
206
+ request :post_attach_disk
207
+ request :post_cancel_task
208
+ request :post_capture_vapp
209
+ request :post_check_vm_compliance
210
+ request :post_clone_media
211
+ request :post_clone_vapp
212
+ request :post_clone_vapp_template
213
+ request :post_configure_edge_gateway_services
214
+ request :post_consolidate_vm_vapp
215
+ request :post_consolidate_vm_vapp_template
216
+ request :post_create_catalog_item
217
+ request :post_create_org_vdc_network
218
+ request :post_deploy_vapp
219
+ request :post_compose_vapp
220
+ request :post_recompose_vapp
221
+ request :post_detach_disk
222
+ request :post_disable_nested_hv
223
+ request :post_disable_vapp_template_download
224
+ request :post_discard_vapp_state
225
+ request :post_eject_cd_rom
226
+ request :post_enable_nested_hv
227
+ request :post_enable_vapp_template_download
228
+ request :post_enter_maintenance_mode
229
+ request :post_exit_maintenance_mode
230
+ request :post_insert_cd_rom
231
+ request :post_install_vmware_tools
232
+ request :post_instantiate_vapp_template
233
+ request :post_login_session
234
+ request :post_power_off_vapp
235
+ request :post_power_on_vapp
236
+ request :post_reboot_vapp
237
+ request :post_reconfigure_vm
238
+ request :post_remove_all_snapshots
239
+ request :post_reset_vapp
240
+ request :post_revert_snapshot
241
+ request :post_shutdown_vapp
242
+ request :post_suspend_vapp
243
+ request :post_undeploy_vapp
244
+ request :post_update_catalog_item_metadata
245
+ request :post_update_disk_metadata
246
+ request :post_update_media_metadata
247
+ request :post_update_vapp_metadata
248
+ request :post_update_vapp_template_metadata
249
+ request :post_upgrade_hw_version
250
+ request :post_upload_disk
251
+ request :post_upload_media
252
+ request :post_upload_vapp_template
253
+ request :post_create_snapshot
254
+ request :put_catalog_item_metadata_item_metadata
255
+ request :put_cpu
256
+ request :put_disk_metadata_item_metadata
257
+ request :put_disks
258
+ request :put_guest_customization_section_vapp
259
+ request :put_media_metadata_item_metadata
260
+ request :put_memory
261
+ request :put_metadata_value # deprecated
262
+ request :put_network
263
+ request :put_network_connection_system_section_vapp
264
+ request :put_product_sections
265
+ request :put_vapp_metadata_item_metadata
266
+ request :put_vapp_name_and_description
267
+ request :put_vapp_template_metadata_item_metadata
268
+ request :put_vm
269
+ request :put_vm_capabilities
270
+ request :put_config_network_section_vapp
271
+
272
+ class Model < Fog::Model
273
+ def initialize(attrs={})
274
+ super(attrs)
275
+ lazy_load_attrs.each do |attr|
276
+ attributes[attr]= NonLoaded if attributes[attr].nil?
277
+ make_lazy_load_method(attr)
278
+ end
279
+ self.class.attributes.each {|attr| make_attr_loaded_method(attr)}
280
+ end
281
+
282
+ def lazy_load_attrs
283
+ @lazy_load_attrs ||= self.class.attributes - attributes.keys
284
+ end
285
+
286
+ def make_lazy_load_method(attr)
287
+ self.class.instance_eval do
288
+ define_method(attr) do
289
+ reload if attributes[attr] == NonLoaded and !@inspecting
290
+ attributes[attr]
291
+ end
292
+ end
293
+ end
294
+
295
+ # it adds an attr_loaded? method to know if the value has been loaded
296
+ # yet or not: ie description_loaded?
297
+ def make_attr_loaded_method(attr)
298
+ self.class.instance_eval do
299
+ define_method("#{attr}_loaded?") do
300
+ attributes[attr] != NonLoaded
301
+ end
302
+ end
303
+ end
304
+
305
+ def inspect
306
+ @inspecting = true
307
+ out = super
308
+ @inspecting = false
309
+ out
310
+ end
311
+ end
312
+
313
+ class Collection < Fog::Collection
314
+ def all(lazy_load=true)
315
+ lazy_load ? index : get_everyone
316
+ end
317
+
318
+ def get(item_id)
319
+ item = get_by_id(item_id)
320
+ return nil unless item
321
+ new(item)
322
+ end
323
+
324
+ def get_by_name(item_name)
325
+ item_found = item_list.find {|item| item[:name] == item_name}
326
+ return nil unless item_found
327
+ get(item_found[:id])
328
+ end
329
+
330
+ def index
331
+ load(item_list)
332
+ end
333
+
334
+ def get_everyone
335
+ items = item_list.map {|item| get_by_id(item[:id])}
336
+ load(items)
337
+ end
338
+ end
339
+
340
+ class Real
341
+ extend Fog::Deprecation
342
+ deprecate :auth_token, :vcloud_token
343
+
344
+ attr_reader :end_point, :api_version, :show_progress
345
+ alias_method :show_progress?, :show_progress
346
+
347
+ def initialize(options={})
348
+ @vcloud_director_password = options[:vcloud_director_password]
349
+ @vcloud_director_username = options[:vcloud_director_username]
350
+ @connection_options = options[:connection_options] || {}
351
+ @connection_options[:omit_default_port] = Fog::Compute::VcloudDirector::Defaults::OMIT_DEFAULT_PORT unless @connection_options[:omit_default_port]
352
+ @host = options[:vcloud_director_host]
353
+ @path = options[:path] || Fog::Compute::VcloudDirector::Defaults::PATH
354
+ @persistent = options[:persistent] || false
355
+ @port = options[:port] || Fog::Compute::VcloudDirector::Defaults::PORT
356
+ @scheme = options[:scheme] || Fog::Compute::VcloudDirector::Defaults::SCHEME
357
+ @connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
358
+ @end_point = "#{@scheme}://#{@host}#{@path}/"
359
+ @api_version = options[:vcloud_director_api_version] || Fog::Compute::VcloudDirector::Defaults::API_VERSION
360
+ @show_progress = options[:vcloud_director_show_progress]
361
+ @show_progress = $stdin.tty? if @show_progress.nil?
362
+ @vcloud_token = options[:vcloud_token]
363
+ end
364
+
365
+ def vcloud_token
366
+ login if @vcloud_token.nil?
367
+ @vcloud_token
368
+ end
369
+
370
+ def org_name
371
+ login if @org_name.nil?
372
+ @org_name
373
+ end
374
+
375
+ def user_name
376
+ login if @user_name.nil?
377
+ @user_name
378
+ end
379
+
380
+ def reload
381
+ @connection.reset
382
+ end
383
+
384
+ def request(params)
385
+ begin
386
+ do_request(params)
387
+ rescue EOFError
388
+ # This error can occur if Vcloud receives a request from a network
389
+ # it deems to be unauthorized; no HTTP response is sent, but the
390
+ # connection is sent a signal to terminate early.
391
+ raise(
392
+ MalformedResponse, "Connection unexpectedly terminated by vcloud"
393
+ )
394
+ # this is to know if Excon::Errors::Unauthorized really happens
395
+ #rescue Excon::Errors::Unauthorized
396
+ # login
397
+ # do_request(params)
398
+ end
399
+ end
400
+
401
+ # @api private
402
+ def do_request(params)
403
+ headers = {
404
+ 'Accept' => "application/*+xml;version=#{@api_version}",
405
+ 'x-vcloud-authorization' => vcloud_token
406
+ }
407
+ if params[:path]
408
+ if params[:override_path] == true
409
+ path = params[:path]
410
+ else
411
+ path = "#{@path}/#{params[:path]}"
412
+ end
413
+ else
414
+ path = "#{@path}"
415
+ end
416
+ @connection.request({
417
+ :body => params[:body],
418
+ :expects => params[:expects],
419
+ :headers => headers.merge!(params[:headers] || {}),
420
+ :idempotent => params[:idempotent],
421
+ :method => params[:method],
422
+ :parser => params[:parser],
423
+ :path => path,
424
+ :query => params[:query]
425
+ })
426
+ rescue Excon::Errors::HTTPStatusError => error
427
+ raise case error
428
+ when Excon::Errors::BadRequest then BadRequest.slurp(error);
429
+ when Excon::Errors::Unauthorized then Unauthorized.slurp(error);
430
+ when Excon::Errors::Forbidden then Forbidden.slurp(error);
431
+ when Excon::Errors::Conflict then Conflict.slurp(error);
432
+ else ServiceError.slurp(error)
433
+ end
434
+ end
435
+
436
+ def process_task(response_body)
437
+ task = make_task_object(response_body)
438
+ wait_and_raise_unless_success(task)
439
+ true
440
+ end
441
+
442
+ def make_task_object(task_response)
443
+ task_response[:id] = task_response[:href].split('/').last
444
+ tasks.new(task_response)
445
+ end
446
+
447
+ def wait_and_raise_unless_success(task)
448
+ task.wait_for { non_running? }
449
+ raise TaskError.new "status: #{task.status}, error: #{task.error}" unless task.success?
450
+ end
451
+
452
+ def add_id_from_href!(data={})
453
+ data[:id] = data[:href].split('/').last
454
+ end
455
+
456
+ # Compensate for Fog::ToHashDocument shortcomings.
457
+ # @api private
458
+ # @param [Hash] hash
459
+ # @param [String,Symbol] key1
460
+ # @param [String,Symbol] key2
461
+ # @return [Hash]
462
+ def ensure_list!(hash, key1, key2=nil)
463
+ if key2.nil?
464
+ hash[key1] ||= []
465
+ hash[key1] = [hash[key1]] if hash[key1].is_a?(Hash)
466
+ else
467
+ hash[key1] ||= {key2 => []}
468
+ hash[key1] = {key2 => []} if hash[key1].empty?
469
+ hash[key1][key2] = [hash[key1][key2]] if hash[key1][key2].is_a?(Hash)
470
+ end
471
+ hash
472
+ end
473
+
474
+ private
475
+
476
+ def login
477
+ @vcloud_token ||= ENV['FOG_VCLOUD_TOKEN']
478
+ if @vcloud_token
479
+ response = get_current_session
480
+ session_org = response.body[:org]
481
+ session_user = response.body[:user]
482
+
483
+ check_session_matches_credentials(session_org, session_user)
484
+ else
485
+ response = post_login_session
486
+ x_vcloud_authorization = response.headers.keys.find do |key|
487
+ key.downcase == 'x-vcloud-authorization'
488
+ end
489
+ @vcloud_token = response.headers[x_vcloud_authorization]
490
+ end
491
+
492
+ @org_name = response.body[:org]
493
+ @user_name = response.body[:user]
494
+ end
495
+
496
+ # @note This isn't needed.
497
+ def logout
498
+ delete_logout
499
+ @vcloud_token = nil
500
+ @org_name = nil
501
+ end
502
+
503
+ def check_session_matches_credentials(session_org, session_user)
504
+ fog_credential_org = @vcloud_director_username.split('@').last
505
+ fog_credential_user = @vcloud_director_username.split('@')[0...-1].join('@')
506
+
507
+ if session_org != fog_credential_org
508
+ raise Fog::Errors::Error.new "FOG_CREDENTIAL specified is for vCloud organisation '#{fog_credential_org}' but " +
509
+ "your current session is for '#{session_org}'. You should generate a new FOG_VCLOUD_TOKEN."
510
+ end
511
+
512
+ if session_user != fog_credential_user
513
+ raise Fog::Errors::Error.new "FOG_CREDENTIAL specified is for user '#{fog_credential_user}' but " +
514
+ "your current session is for '#{session_user}'. You should generate a new FOG_VCLOUD_TOKEN."
515
+ end
516
+ end
517
+ end
518
+
519
+ class Mock
520
+ attr_reader :end_point, :api_version
521
+
522
+ # This is used in some mocks so it's a method rather than a variable
523
+ def default_network_uuid
524
+ @default_network_uuid ||= uuid
525
+ end
526
+
527
+ def data
528
+ @@data ||= Hash.new do |hash, key|
529
+
530
+ vdc1_uuid = uuid
531
+ vdc2_uuid = uuid
532
+ uplink_network_uuid = uuid
533
+ isolated_vdc1_network_uuid = uuid
534
+ isolated_vdc2_network_uuid = uuid
535
+ vapp1_id = "vapp-#{uuid}"
536
+ vapp2_id = "vapp-#{uuid}"
537
+ vapp1vm1_id = "vm-#{uuid}"
538
+ vapp2vm1_id = "vm-#{uuid}"
539
+ vapp2vm2_id = "vm-#{uuid}"
540
+ catalog_uuid = uuid
541
+ template_uuid = uuid
542
+
543
+ hash[key] = {
544
+ :catalogs => {
545
+ catalog_uuid => {
546
+ :name => 'Default Catalog'
547
+ }
548
+ },
549
+ :catalog_items => {
550
+ uuid => {
551
+ :type => 'vAppTemplate',
552
+ :name => 'vAppTemplate 1',
553
+ :catalog => catalog_uuid,
554
+ :template_id => template_uuid
555
+ }
556
+ },
557
+ :disks => {
558
+ uuid => {
559
+ :name => 'Hard Disk 1',
560
+ :capacity => 10240,
561
+ :parent_vm => vapp1vm1_id
562
+ }
563
+ },
564
+ :edge_gateways => {
565
+ uuid => {
566
+ :name => 'MockEdgeGateway',
567
+ :networks => [uplink_network_uuid, default_network_uuid],
568
+ :vdc => vdc1_uuid,
569
+ :Configuration => {
570
+ :GatewayBackingConfig => "compact",
571
+ :GatewayInterfaces => {
572
+ :GatewayInterface => []},
573
+ :EdgeGatewayServiceConfiguration => {
574
+ :FirewallService => {
575
+ :IsEnabled => "true",
576
+ :DefaultAction => "drop",
577
+ :LogDefaultAction => "false",
578
+ :FirewallRule => []
579
+ },
580
+ :NatService => {:IsEnabled => "true"}},
581
+ :HaEnabled => "false",
582
+ :UseDefaultRouteForDnsRelay => "false"
583
+ }
584
+ }
585
+ },
586
+
587
+ :medias => {},
588
+
589
+ :networks => {
590
+
591
+ default_network_uuid => {
592
+ :IsShared => true,
593
+ :vdc => vdc1_uuid,
594
+ :FenceMode => 'natRouted',
595
+ :ApplyRateLimit => "false",
596
+ :Description => 'Org Network for mocking',
597
+ :Dns1 => '8.8.8.8',
598
+ :Dns2 => '8.8.4.4',
599
+ :DnsSuffix => 'example.com',
600
+ :Gateway => '192.168.1.1',
601
+ :InterfaceType => "internal",
602
+ :IpRanges => [{
603
+ :StartAddress=>'192.168.1.2',
604
+ :EndAddress=>'192.168.1.254'
605
+ }],
606
+ :IsInherited => false,
607
+ :Netmask => '255.255.255.0',
608
+ :name => 'vDC1 Default Network',
609
+ :SubnetParticipation => {
610
+ :Gateway => "192.168.1.0",
611
+ :Netmask => "255.255.0.0",
612
+ :IpAddress => "192.168.1.0"
613
+ },
614
+ :UseForDefaultRoute => "false"
615
+ },
616
+
617
+ isolated_vdc1_network_uuid => {
618
+ :IsShared => false,
619
+ :vdc => vdc1_uuid,
620
+ :ApplyRateLimit => "false",
621
+ :FenceMode => 'isolated',
622
+ :Description => 'Org Network for mocking',
623
+ :Dns1 => '8.8.8.8',
624
+ :Dns2 => '8.8.4.4',
625
+ :DnsSuffix => 'example.com',
626
+ :InterfaceType => "internal",
627
+ :IpRanges => [{
628
+ :StartAddress=>'10.1.0.100',
629
+ :EndAddress=>'10.1.0.200'
630
+ }],
631
+ :IsInherited => false,
632
+ :Netmask => '255.255.255.0',
633
+ :name => 'vDC1 backend network',
634
+ :SubnetParticipation => {
635
+ :Gateway => "192.168.1.0",
636
+ :Netmask => "255.255.0.0",
637
+ :IpAddress => "192.168.1.0"
638
+ },
639
+ :UseForDefaultRoute => "false"
640
+ },
641
+
642
+ isolated_vdc2_network_uuid => {
643
+ :IsShared => false,
644
+ :vdc => vdc2_uuid,
645
+ :ApplyRateLimit => "false",
646
+ :Description => 'Org Network for mocking',
647
+ :Dns1 => '8.8.8.8',
648
+ :Dns2 => '8.8.4.4',
649
+ :DnsSuffix => 'example.com',
650
+ :InterfaceType => "internal",
651
+ :IpRanges => [{
652
+ :StartAddress=>'10.2.0.100',
653
+ :EndAddress=>'10.2.0.200'
654
+ }],
655
+ :IsInherited => false,
656
+ :Netmask => '255.255.255.0',
657
+ :name => 'vDC2 backend network',
658
+ :SubnetParticipation => {
659
+ :Gateway => "192.168.1.0",
660
+ :Netmask => "255.255.0.0",
661
+ :IpAddress => "192.168.1.0"
662
+ },
663
+ :UseForDefaultRoute => "false"
664
+ },
665
+
666
+ uplink_network_uuid => {
667
+ :IsShared => false,
668
+ :vdc => vdc1_uuid,
669
+ :ApplyRateLimit => "false",
670
+ :FenceMode => 'bridged',
671
+ :Description => 'Uplink Network for mocking',
672
+ :Dns1 => '8.8.8.8',
673
+ :Dns2 => '8.8.4.4',
674
+ :DnsSuffix => 'example.com',
675
+ :Gateway => '198.51.100.1',
676
+ :InterfaceType => "uplink",
677
+ :IpRanges => [{
678
+ :StartAddress=>'198.51.100.2',
679
+ :EndAddress=>'198.51.100.254'
680
+ }],
681
+ :IsInherited => false,
682
+ :Netmask => '255.255.255.0',
683
+ :name => 'uplink Network',
684
+ :SubnetParticipation => {
685
+ :Gateway => "198.51.100.81",
686
+ :Netmask => "255.255.255.248",
687
+ :IpAddress => "198.51.100.83",
688
+ :IpRanges => {
689
+ :IpRange => {
690
+ :StartAddress => "198.51.100.84",
691
+ :EndAddress => "198.51.100.86"
692
+ }
693
+ }
694
+ },
695
+ :UseForDefaultRoute => "true"
696
+ }
697
+
698
+ },
699
+ :org => {
700
+ :description => 'Organization for mocking',
701
+ :full_name => 'Mock Organization',
702
+ :name => org_name,
703
+ :uuid => uuid
704
+ },
705
+
706
+ :tags => {},
707
+
708
+ :tasks => {},
709
+
710
+ :vapps => {
711
+ vapp1_id => {
712
+ :name => 'mock-vapp-1',
713
+ :vdc_id => vdc1_uuid,
714
+ :description => "Mock vApp 1",
715
+ :networks => [
716
+ { :parent_id => default_network_uuid, },
717
+ ],
718
+ },
719
+ vapp2_id => {
720
+ :name => 'mock-vapp-2',
721
+ :vdc_id => vdc2_uuid,
722
+ :description => "Mock vApp 2",
723
+ :networks => [
724
+ { :parent_id => default_network_uuid },
725
+ ]
726
+ },
727
+ },
728
+
729
+ :vdc_storage_classes => {
730
+ uuid => {
731
+ :default => true,
732
+ :enabled => true,
733
+ :limit => 2 * 1024 * 1024,
734
+ :name => 'DefaultMockStorageClass',
735
+ :units => 'MB',
736
+ :vdc => vdc1_uuid,
737
+ }
738
+ },
739
+
740
+ :vdcs => {
741
+ vdc1_uuid => {
742
+ :description => 'vDC1 for mocking',
743
+ :name => 'MockVDC 1'
744
+ },
745
+ vdc2_uuid => {
746
+ :description => 'vDC2 for mocking',
747
+ :name => 'MockVDC 2'
748
+ },
749
+ },
750
+
751
+ :vms => {
752
+ vapp1vm1_id => {
753
+ :name => 'mock-vm-1-1',
754
+ :parent_vapp => vapp1_id,
755
+ :nics => [
756
+ {
757
+ :network_name => 'Default Network',
758
+ :mac_address => "00:50:56:aa:bb:01",
759
+ :ip_address => "192.168.1.33",
760
+ },
761
+ ],
762
+ },
763
+ vapp2vm1_id => {
764
+ :name => 'mock-vm-2-1',
765
+ :parent_vapp => vapp2_id,
766
+ :nics => [
767
+ {
768
+ :network_name => 'Default Network',
769
+ :mac_address => "00:50:56:aa:bb:02",
770
+ :ip_address => "192.168.1.34",
771
+ },
772
+ ],
773
+ },
774
+ vapp2vm2_id => {
775
+ :name => 'mock-vm-2-2',
776
+ :parent_vapp => vapp2_id,
777
+ :nics => [
778
+ {
779
+ :network_name => 'Default Network',
780
+ :mac_address => "00:50:56:aa:bb:03",
781
+ :ip_address => "192.168.1.35",
782
+ },
783
+ ],
784
+ },
785
+ },
786
+
787
+ }
788
+ end[@vcloud_director_username]
789
+ end
790
+
791
+ def initialize(options={})
792
+ @vcloud_director_password = options[:vcloud_director_password]
793
+ @vcloud_director_username = options[:vcloud_director_username]
794
+ #@connection_options = options[:connection_options] || {}
795
+ @host = options[:vcloud_director_host]
796
+ @path = options[:path] || Fog::Compute::VcloudDirector::Defaults::PATH
797
+ @persistent = options[:persistent] || false
798
+ @port = options[:port] || Fog::Compute::VcloudDirector::Defaults::PORT
799
+ @scheme = options[:scheme] || Fog::Compute::VcloudDirector::Defaults::SCHEME
800
+ #@connection = Fog::XML::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options)
801
+ @end_point = "#{@scheme}://#{@host}#{@path}/"
802
+ @api_version = options[:vcloud_director_api_version] || Fog::Compute::VcloudDirector::Defaults::API_VERSION
803
+ @vcloud_token = options[:vcloud_token]
804
+ end
805
+
806
+ def vcloud_token
807
+ @vcloud_token || Fog::Mock.random_base64(32)
808
+ end
809
+
810
+ def org_name
811
+ @org_name ||=
812
+ begin
813
+ username = @vcloud_director_username.split('@')
814
+ if username.size >= 2 # may be 'email_address@org_name'
815
+ username.last
816
+ else
817
+ Fog::Logger.warning('vcloud_director_username should be in the form user@org_name')
818
+ 'vcd_org_name'
819
+ end
820
+ end
821
+ end
822
+
823
+ def user_name
824
+ @user_name ||= @vcloud_director_username.split('@').first
825
+ end
826
+
827
+ def user_uuid
828
+ @user_uuid ||= uuid
829
+ end
830
+
831
+ def uuid
832
+ [8,4,4,4,12].map {|i| Fog::Mock.random_hex(i)}.join('-')
833
+ end
834
+
835
+ # Create a task.
836
+ #
837
+ # @param [String] operation A message describing the operation that is
838
+ # tracked by this task.
839
+ # @param [String] operation_name The short name of the operation that
840
+ # is tracked by this task.
841
+ # @param [Hash] owner Reference to the owner of the task. This is
842
+ # typically the object that the task is creating or updating.
843
+ # * :href<~String> - Contains the URI to the entity.
844
+ # * :type<~String> - Contains the MIME type of the entity.
845
+ # @return [String] Object identifier of the task.
846
+ def enqueue_task(operation, operation_name, owner, options={})
847
+ task_id = uuid
848
+ now = DateTime.now
849
+
850
+ data[:tasks][task_id] = {
851
+ :cancel_requested => false,
852
+ :details => '',
853
+ :expiry_time => now + 86400, # in 24 hours
854
+ :name => 'task',
855
+ :progress => 1,
856
+ :service_namespace => 'com.vmware.vcloud',
857
+ :start_time => now,
858
+ :end_time => now + 86400,
859
+ :status => 'running',
860
+ }.merge(options).merge(
861
+ :operation => operation,
862
+ :operation_name => operation_name,
863
+ :owner => owner
864
+ )
865
+
866
+ task_id
867
+ end
868
+
869
+ # @note As far as this method is concerned, the only possible task
870
+ # states are 'running' and 'success'.
871
+ #
872
+ # @param [Hash] response_body
873
+ # @return [Boolean]
874
+ def process_task(response_body)
875
+ task_id = response_body[:href].split('/').last
876
+ task = data[:tasks][task_id]
877
+
878
+ if task[:status] == 'running'
879
+ task[:end_time] = DateTime.now
880
+ task[:progress] = 100
881
+ task[:status] = 'success'
882
+
883
+ if task[:on_success]
884
+ task[:on_success].call
885
+ task.delete(:on_success)
886
+ end
887
+ end
888
+
889
+ return true if task[:status] == 'success'
890
+ raise TaskError.new "status: #{task[:status]}, error: #{task[:Error]}"
891
+ end
892
+
893
+ def add_id_from_href!(data={})
894
+ data[:id] = data[:href].split('/').last
895
+ end
896
+
897
+ private
898
+
899
+ def make_href(path)
900
+ "#{@end_point}#{path}"
901
+ end
902
+
903
+ def xmlns
904
+ 'http://www.vmware.com/vcloud/v1.5'
905
+ end
906
+
907
+ def xmlns_xsi
908
+ 'http://www.w3.org/2001/XMLSchema-instance'
909
+ end
910
+
911
+ def xsi_schema_location
912
+ "http://www.vmware.com/vcloud/v1.5 http://#{@host}#{@path}/v1.5/schema/master.xsd"
913
+ end
914
+ end
915
+ end
916
+ end
917
+ end