fog 1.38.0 → 1.39.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (323) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +13 -3
  3. data/CHANGELOG.md +66 -0
  4. data/Gemfile +1 -1
  5. data/LICENSE.md +1 -1
  6. data/README.md +13 -0
  7. data/fog.gemspec +27 -6
  8. data/gemfiles/Gemfile-1.9 +16 -0
  9. data/gemfiles/Gemfile-2.0 +11 -0
  10. data/gemfiles/Gemfile-edge +1 -1
  11. data/gemfiles/Gemfile-edge-1.9 +20 -0
  12. data/gemfiles/Gemfile-edge-2.0 +16 -0
  13. data/lib/fog.rb +0 -1
  14. data/lib/fog/bin.rb +0 -1
  15. data/lib/fog/cloudsigma/compute.rb +9 -0
  16. data/lib/fog/cloudsigma/models/server.rb +5 -0
  17. data/lib/fog/cloudsigma/models/snapshot.rb +77 -0
  18. data/lib/fog/cloudsigma/models/snapshots.rb +26 -0
  19. data/lib/fog/cloudsigma/models/volume.rb +15 -0
  20. data/lib/fog/cloudsigma/requests/clone_snapshot.rb +31 -0
  21. data/lib/fog/cloudsigma/requests/create_snapshot.rb +27 -0
  22. data/lib/fog/cloudsigma/requests/delete_snapshot.rb +17 -0
  23. data/lib/fog/cloudsigma/requests/get_snapshot.rb +17 -0
  24. data/lib/fog/cloudsigma/requests/list_snapshots.rb +17 -0
  25. data/lib/fog/cloudsigma/requests/stop_server.rb +5 -4
  26. data/lib/fog/cloudsigma/requests/update_snapshot.rb +17 -0
  27. data/lib/fog/cloudstack/core.rb +2 -0
  28. data/lib/fog/joyent/compute.rb +4 -16
  29. data/lib/fog/opennebula/README.md +0 -0
  30. data/lib/fog/opennebula/compute.rb +90 -19
  31. data/lib/fog/opennebula/models/compute/server.rb +9 -1
  32. data/lib/fog/opennebula/requests/compute/image_pool.rb +0 -1
  33. data/lib/fog/opennebula/requests/compute/list_vms.rb +8 -26
  34. data/lib/fog/opennebula/requests/compute/template_pool.rb +8 -29
  35. data/lib/fog/opennebula/requests/compute/vm_allocate.rb +24 -15
  36. data/lib/fog/opennebula/requests/compute/vm_destroy.rb +13 -4
  37. data/lib/fog/opennebula/requests/compute/vm_disk_snapshot.rb +8 -2
  38. data/lib/fog/opennebula/requests/compute/vm_resume.rb +13 -23
  39. data/lib/fog/opennebula/requests/compute/vm_shutdown.rb +1 -1
  40. data/lib/fog/opennebula/requests/compute/vm_stop.rb +3 -10
  41. data/lib/fog/opennebula/requests/compute/vm_suspend.rb +31 -0
  42. data/lib/fog/ovirt/compute.rb +4 -0
  43. data/lib/fog/ovirt/models/compute/instance_type.rb +39 -0
  44. data/lib/fog/ovirt/models/compute/instance_types.rb +20 -0
  45. data/lib/fog/ovirt/models/compute/server.rb +1 -0
  46. data/lib/fog/ovirt/requests/compute/get_instance_type.rb +17 -0
  47. data/lib/fog/ovirt/requests/compute/list_instance_types.rb +19 -0
  48. data/lib/fog/ovirt/requests/compute/mock_files/instance_type.xml +42 -0
  49. data/lib/fog/ovirt/requests/compute/mock_files/instance_types.xml +197 -0
  50. data/lib/fog/rage4/dns.rb +1 -0
  51. data/lib/fog/rage4/requests/dns/bulk_update_records.rb +38 -0
  52. data/lib/fog/vcloud_director/compute.rb +1 -0
  53. data/lib/fog/vcloud_director/generators/compute/compose_common.rb +17 -16
  54. data/lib/fog/vcloud_director/generators/compute/create_snapshot.rb +25 -0
  55. data/lib/fog/vcloud_director/requests/compute/post_create_snapshot.rb +21 -0
  56. data/lib/fog/version.rb +1 -1
  57. data/lib/tasks/changelog_task.rb +4 -4
  58. data/spec/fog/bin/dnsimple_spec.rb +2 -2
  59. data/spec/fog/bin_spec.rb +3 -6
  60. data/tests/cloudsigma/models/snapshot_tests.rb +23 -0
  61. data/tests/cloudsigma/models/snapshots_tests.rb +15 -0
  62. data/tests/cloudsigma/models/volume_tests.rb +3 -3
  63. data/tests/cloudsigma/requests/server_tests.rb +10 -10
  64. data/tests/cloudsigma/requests/snapshots_tests.rb +83 -0
  65. data/tests/cloudsigma/requests/volumes_tests.rb +12 -11
  66. data/tests/compute/helper.rb +0 -19
  67. data/tests/helpers/mock_helper.rb +0 -4
  68. data/tests/opennebula/models/compute/flavor_tests.rb +2 -2
  69. data/tests/opennebula/models/compute/network_tests.rb +1 -2
  70. data/tests/opennebula/requests/compute/vm_allocate_tests.rb +20 -3
  71. data/tests/opennebula/requests/compute/vm_suspend_resume_tests.rb +52 -0
  72. data/tests/rage4/requests/dns/dns_tests.rb +12 -0
  73. data/tests/storage/helper.rb +0 -6
  74. metadata +101 -389
  75. data/lib/fog/bin/digitalocean.rb +0 -29
  76. data/lib/fog/bin/dnsimple.rb +0 -29
  77. data/lib/fog/bin/ninefold.rb +0 -34
  78. data/lib/fog/digitalocean.rb +0 -1
  79. data/lib/fog/digitalocean/CHANGELOG.md +0 -6
  80. data/lib/fog/digitalocean/compute_v2.rb +0 -109
  81. data/lib/fog/digitalocean/core.rb +0 -9
  82. data/lib/fog/digitalocean/examples/getting_started.md +0 -124
  83. data/lib/fog/digitalocean/models/compute_v2/flavor.rb +0 -17
  84. data/lib/fog/digitalocean/models/compute_v2/flavors.rb +0 -21
  85. data/lib/fog/digitalocean/models/compute_v2/image.rb +0 -25
  86. data/lib/fog/digitalocean/models/compute_v2/images.rb +0 -42
  87. data/lib/fog/digitalocean/models/compute_v2/region.rb +0 -13
  88. data/lib/fog/digitalocean/models/compute_v2/regions.rb +0 -21
  89. data/lib/fog/digitalocean/models/compute_v2/server.rb +0 -170
  90. data/lib/fog/digitalocean/models/compute_v2/servers.rb +0 -43
  91. data/lib/fog/digitalocean/models/compute_v2/ssh_key.rb +0 -31
  92. data/lib/fog/digitalocean/models/compute_v2/ssh_keys.rb +0 -40
  93. data/lib/fog/digitalocean/models/paging_collection.rb +0 -41
  94. data/lib/fog/digitalocean/requests/compute_v2/change_kernel.rb +0 -44
  95. data/lib/fog/digitalocean/requests/compute_v2/convert_to_snapshot.rb +0 -44
  96. data/lib/fog/digitalocean/requests/compute_v2/create_server.rb +0 -93
  97. data/lib/fog/digitalocean/requests/compute_v2/create_ssh_key.rb +0 -49
  98. data/lib/fog/digitalocean/requests/compute_v2/delete_ssh_key.rb +0 -32
  99. data/lib/fog/digitalocean/requests/compute_v2/destroy_server.rb +0 -35
  100. data/lib/fog/digitalocean/requests/compute_v2/disable_backups.rb +0 -45
  101. data/lib/fog/digitalocean/requests/compute_v2/enable_ipv6.rb +0 -44
  102. data/lib/fog/digitalocean/requests/compute_v2/enable_private_networking.rb +0 -44
  103. data/lib/fog/digitalocean/requests/compute_v2/get_droplet_action.rb +0 -36
  104. data/lib/fog/digitalocean/requests/compute_v2/get_image_details.rb +0 -42
  105. data/lib/fog/digitalocean/requests/compute_v2/get_server_details.rb +0 -84
  106. data/lib/fog/digitalocean/requests/compute_v2/get_ssh_key.rb +0 -34
  107. data/lib/fog/digitalocean/requests/compute_v2/list_droplet_actions.rb +0 -38
  108. data/lib/fog/digitalocean/requests/compute_v2/list_flavors.rb +0 -131
  109. data/lib/fog/digitalocean/requests/compute_v2/list_images.rb +0 -50
  110. data/lib/fog/digitalocean/requests/compute_v2/list_regions.rb +0 -94
  111. data/lib/fog/digitalocean/requests/compute_v2/list_servers.rb +0 -28
  112. data/lib/fog/digitalocean/requests/compute_v2/list_ssh_keys.rb +0 -31
  113. data/lib/fog/digitalocean/requests/compute_v2/password_reset.rb +0 -44
  114. data/lib/fog/digitalocean/requests/compute_v2/power_cycle.rb +0 -44
  115. data/lib/fog/digitalocean/requests/compute_v2/power_off.rb +0 -44
  116. data/lib/fog/digitalocean/requests/compute_v2/power_on.rb +0 -44
  117. data/lib/fog/digitalocean/requests/compute_v2/reboot_server.rb +0 -44
  118. data/lib/fog/digitalocean/requests/compute_v2/rebuild.rb +0 -44
  119. data/lib/fog/digitalocean/requests/compute_v2/rename.rb +0 -44
  120. data/lib/fog/digitalocean/requests/compute_v2/resize.rb +0 -48
  121. data/lib/fog/digitalocean/requests/compute_v2/restore.rb +0 -44
  122. data/lib/fog/digitalocean/requests/compute_v2/shutdown.rb +0 -44
  123. data/lib/fog/digitalocean/requests/compute_v2/snapshot.rb +0 -44
  124. data/lib/fog/digitalocean/requests/compute_v2/transfer_image.rb +0 -44
  125. data/lib/fog/digitalocean/requests/compute_v2/update_ssh_key.rb +0 -46
  126. data/lib/fog/digitalocean/requests/compute_v2/upgrade.rb +0 -44
  127. data/lib/fog/digitalocean/service.rb +0 -51
  128. data/lib/fog/dnsimple.rb +0 -1
  129. data/lib/fog/dnsimple/core.rb +0 -10
  130. data/lib/fog/dnsimple/dns.rb +0 -112
  131. data/lib/fog/dnsimple/models/dns/record.rb +0 -63
  132. data/lib/fog/dnsimple/models/dns/records.rb +0 -34
  133. data/lib/fog/dnsimple/models/dns/zone.rb +0 -46
  134. data/lib/fog/dnsimple/models/dns/zones.rb +0 -25
  135. data/lib/fog/dnsimple/requests/dns/create_domain.rb +0 -62
  136. data/lib/fog/dnsimple/requests/dns/create_record.rb +0 -67
  137. data/lib/fog/dnsimple/requests/dns/delete_domain.rb +0 -35
  138. data/lib/fog/dnsimple/requests/dns/delete_record.rb +0 -30
  139. data/lib/fog/dnsimple/requests/dns/get_domain.rb +0 -39
  140. data/lib/fog/dnsimple/requests/dns/get_record.rb +0 -49
  141. data/lib/fog/dnsimple/requests/dns/list_domains.rb +0 -34
  142. data/lib/fog/dnsimple/requests/dns/list_records.rb +0 -34
  143. data/lib/fog/dnsimple/requests/dns/update_record.rb +0 -53
  144. data/lib/fog/ninefold.rb +0 -1
  145. data/lib/fog/ninefold/compute.rb +0 -144
  146. data/lib/fog/ninefold/core.rb +0 -11
  147. data/lib/fog/ninefold/models/compute/address.rb +0 -100
  148. data/lib/fog/ninefold/models/compute/addresses.rb +0 -27
  149. data/lib/fog/ninefold/models/compute/flavor.rb +0 -24
  150. data/lib/fog/ninefold/models/compute/flavors.rb +0 -26
  151. data/lib/fog/ninefold/models/compute/image.rb +0 -38
  152. data/lib/fog/ninefold/models/compute/images.rb +0 -26
  153. data/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb +0 -76
  154. data/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb +0 -27
  155. data/lib/fog/ninefold/models/compute/server.rb +0 -182
  156. data/lib/fog/ninefold/models/compute/servers.rb +0 -27
  157. data/lib/fog/ninefold/requests/compute/assign_to_load_balancer_rule.rb +0 -11
  158. data/lib/fog/ninefold/requests/compute/associate_ip_address.rb +0 -12
  159. data/lib/fog/ninefold/requests/compute/change_service_for_virtual_machine.rb +0 -12
  160. data/lib/fog/ninefold/requests/compute/create_ip_forwarding_rule.rb +0 -12
  161. data/lib/fog/ninefold/requests/compute/create_load_balancer_rule.rb +0 -11
  162. data/lib/fog/ninefold/requests/compute/delete_ip_forwarding_rule.rb +0 -12
  163. data/lib/fog/ninefold/requests/compute/delete_load_balancer_rule.rb +0 -11
  164. data/lib/fog/ninefold/requests/compute/deploy_virtual_machine.rb +0 -12
  165. data/lib/fog/ninefold/requests/compute/destroy_virtual_machine.rb +0 -12
  166. data/lib/fog/ninefold/requests/compute/disable_static_nat.rb +0 -12
  167. data/lib/fog/ninefold/requests/compute/disassociate_ip_address.rb +0 -12
  168. data/lib/fog/ninefold/requests/compute/enable_static_nat.rb +0 -12
  169. data/lib/fog/ninefold/requests/compute/list_accounts.rb +0 -12
  170. data/lib/fog/ninefold/requests/compute/list_async_jobs.rb +0 -12
  171. data/lib/fog/ninefold/requests/compute/list_capabilities.rb +0 -12
  172. data/lib/fog/ninefold/requests/compute/list_disk_offerings.rb +0 -12
  173. data/lib/fog/ninefold/requests/compute/list_events.rb +0 -12
  174. data/lib/fog/ninefold/requests/compute/list_hypervisors.rb +0 -12
  175. data/lib/fog/ninefold/requests/compute/list_ip_forwarding_rules.rb +0 -12
  176. data/lib/fog/ninefold/requests/compute/list_load_balancer_rule_instances.rb +0 -11
  177. data/lib/fog/ninefold/requests/compute/list_load_balancer_rules.rb +0 -11
  178. data/lib/fog/ninefold/requests/compute/list_network_offerings.rb +0 -12
  179. data/lib/fog/ninefold/requests/compute/list_networks.rb +0 -12
  180. data/lib/fog/ninefold/requests/compute/list_public_ip_addresses.rb +0 -12
  181. data/lib/fog/ninefold/requests/compute/list_resource_limits.rb +0 -12
  182. data/lib/fog/ninefold/requests/compute/list_service_offerings.rb +0 -12
  183. data/lib/fog/ninefold/requests/compute/list_templates.rb +0 -12
  184. data/lib/fog/ninefold/requests/compute/list_virtual_machines.rb +0 -12
  185. data/lib/fog/ninefold/requests/compute/list_zones.rb +0 -12
  186. data/lib/fog/ninefold/requests/compute/query_async_job_result.rb +0 -12
  187. data/lib/fog/ninefold/requests/compute/reboot_virtual_machine.rb +0 -12
  188. data/lib/fog/ninefold/requests/compute/remove_from_load_balancer_rule.rb +0 -11
  189. data/lib/fog/ninefold/requests/compute/reset_password_for_virtual_machine.rb +0 -12
  190. data/lib/fog/ninefold/requests/compute/start_virtual_machine.rb +0 -12
  191. data/lib/fog/ninefold/requests/compute/stop_virtual_machine.rb +0 -12
  192. data/lib/fog/ninefold/requests/compute/update_load_balancer_rule.rb +0 -11
  193. data/lib/fog/ninefold/requests/compute/update_virtual_machine.rb +0 -12
  194. data/lib/fog/ninefold/storage.rb +0 -53
  195. data/spec/fog/bin/digitalocean_spec.rb +0 -9
  196. data/spec/fog/bin/ninefold_spec.rb +0 -10
  197. data/tests/digitalocean/helper.rb +0 -56
  198. data/tests/digitalocean/requests/compute_v2/list_flavors_tests.rb +0 -25
  199. data/tests/digitalocean/requests/compute_v2/list_images_tests.rb +0 -25
  200. data/tests/digitalocean/requests/compute_v2/list_regions_tests.rb +0 -21
  201. data/tests/digitalocean/requests/compute_v2/server_tests.rb +0 -77
  202. data/tests/dnsimple/requests/dns/dns_tests.rb +0 -122
  203. data/tests/hp/block_storage_tests.rb +0 -47
  204. data/tests/hp/cdn_tests.rb +0 -23
  205. data/tests/hp/compute_tests.rb +0 -22
  206. data/tests/hp/models/block_storage/bootable_volume_tests.rb +0 -23
  207. data/tests/hp/models/block_storage/snapshot_tests.rb +0 -23
  208. data/tests/hp/models/block_storage/volume_tests.rb +0 -21
  209. data/tests/hp/models/block_storage_v2/snapshot_tests.rb +0 -22
  210. data/tests/hp/models/block_storage_v2/snapshots_tests.rb +0 -10
  211. data/tests/hp/models/block_storage_v2/volume_backup_tests.rb +0 -22
  212. data/tests/hp/models/block_storage_v2/volume_backups_tests.rb +0 -9
  213. data/tests/hp/models/block_storage_v2/volume_tests.rb +0 -22
  214. data/tests/hp/models/block_storage_v2/volumes_tests.rb +0 -5
  215. data/tests/hp/models/compute/address_tests.rb +0 -18
  216. data/tests/hp/models/compute/addresses_tests.rb +0 -5
  217. data/tests/hp/models/compute/key_pair_tests.rb +0 -26
  218. data/tests/hp/models/compute/key_pairs_tests.rb +0 -5
  219. data/tests/hp/models/compute/metadata_image_tests.rb +0 -60
  220. data/tests/hp/models/compute/metadata_server_tests.rb +0 -54
  221. data/tests/hp/models/compute/security_group_tests.rb +0 -38
  222. data/tests/hp/models/compute/security_groups_tests.rb +0 -5
  223. data/tests/hp/models/compute_v2/address_tests.rb +0 -23
  224. data/tests/hp/models/compute_v2/addresses_tests.rb +0 -7
  225. data/tests/hp/models/compute_v2/availability_zone_tests.rb +0 -11
  226. data/tests/hp/models/compute_v2/availability_zones_tests.rb +0 -13
  227. data/tests/hp/models/compute_v2/key_pair_tests.rb +0 -28
  228. data/tests/hp/models/compute_v2/key_pairs_tests.rb +0 -7
  229. data/tests/hp/models/compute_v2/metadata_image_tests.rb +0 -60
  230. data/tests/hp/models/compute_v2/metadata_server_tests.rb +0 -56
  231. data/tests/hp/models/compute_v2/server_tests.rb +0 -45
  232. data/tests/hp/models/compute_v2/servers_tests.rb +0 -9
  233. data/tests/hp/models/compute_v2/volume_attachment_tests.rb +0 -40
  234. data/tests/hp/models/compute_v2/volume_attachments_tests.rb +0 -17
  235. data/tests/hp/models/dns/domain_tests.rb +0 -25
  236. data/tests/hp/models/dns/domains_tests.rb +0 -14
  237. data/tests/hp/models/dns/record_tests.rb +0 -29
  238. data/tests/hp/models/dns/records_tests.rb +0 -9
  239. data/tests/hp/models/lb/algorithms_tests.rb +0 -15
  240. data/tests/hp/models/lb/load_balancer_node_tests.rb +0 -9
  241. data/tests/hp/models/lb/load_balancer_nodes_tests.rb +0 -27
  242. data/tests/hp/models/lb/load_balancer_tests.rb +0 -6
  243. data/tests/hp/models/lb/load_balancer_virtual_ips_tests.rb +0 -22
  244. data/tests/hp/models/lb/load_balancers_tests.rb +0 -22
  245. data/tests/hp/models/lb/protocols_tests.rb +0 -15
  246. data/tests/hp/models/network/floating_ip_tests.rb +0 -37
  247. data/tests/hp/models/network/floating_ips_tests.rb +0 -8
  248. data/tests/hp/models/network/network_tests.rb +0 -25
  249. data/tests/hp/models/network/networks_tests.rb +0 -15
  250. data/tests/hp/models/network/port_tests.rb +0 -30
  251. data/tests/hp/models/network/ports_tests.rb +0 -21
  252. data/tests/hp/models/network/router_tests.rb +0 -55
  253. data/tests/hp/models/network/routers_tests.rb +0 -19
  254. data/tests/hp/models/network/security_group_rule_tests.rb +0 -25
  255. data/tests/hp/models/network/security_group_rules_tests.rb +0 -23
  256. data/tests/hp/models/network/security_group_tests.rb +0 -20
  257. data/tests/hp/models/network/security_groups_tests.rb +0 -20
  258. data/tests/hp/models/network/subnet_tests.rb +0 -30
  259. data/tests/hp/models/network/subnets_tests.rb +0 -22
  260. data/tests/hp/models/storage/directories_tests.rb +0 -23
  261. data/tests/hp/models/storage/directory_tests.rb +0 -131
  262. data/tests/hp/models/storage/file_tests.rb +0 -44
  263. data/tests/hp/models/storage/files_tests.rb +0 -38
  264. data/tests/hp/requests/block_storage/bootable_volume_tests.rb +0 -78
  265. data/tests/hp/requests/block_storage/snapshot_tests.rb +0 -56
  266. data/tests/hp/requests/block_storage/volume_tests.rb +0 -94
  267. data/tests/hp/requests/block_storage_v2/snapshot_tests.rb +0 -69
  268. data/tests/hp/requests/block_storage_v2/volume_backup_tests.rb +0 -117
  269. data/tests/hp/requests/block_storage_v2/volume_tests.rb +0 -106
  270. data/tests/hp/requests/cdn/container_tests.rb +0 -56
  271. data/tests/hp/requests/compute/address_tests.rb +0 -72
  272. data/tests/hp/requests/compute/flavor_tests.rb +0 -45
  273. data/tests/hp/requests/compute/image_tests.rb +0 -79
  274. data/tests/hp/requests/compute/key_pair_tests.rb +0 -65
  275. data/tests/hp/requests/compute/metadata_tests.rb +0 -70
  276. data/tests/hp/requests/compute/persistent_server_tests.rb +0 -66
  277. data/tests/hp/requests/compute/security_group_rule_tests.rb +0 -54
  278. data/tests/hp/requests/compute/security_group_tests.rb +0 -63
  279. data/tests/hp/requests/compute/server_address_tests.rb +0 -45
  280. data/tests/hp/requests/compute/server_tests.rb +0 -126
  281. data/tests/hp/requests/compute/server_volume_tests.rb +0 -75
  282. data/tests/hp/requests/compute_v2/address_tests.rb +0 -80
  283. data/tests/hp/requests/compute_v2/availability_zone_tests.rb +0 -19
  284. data/tests/hp/requests/compute_v2/flavor_tests.rb +0 -45
  285. data/tests/hp/requests/compute_v2/image_tests.rb +0 -86
  286. data/tests/hp/requests/compute_v2/key_pair_tests.rb +0 -66
  287. data/tests/hp/requests/compute_v2/metadata_tests.rb +0 -101
  288. data/tests/hp/requests/compute_v2/persistent_server_tests.rb +0 -67
  289. data/tests/hp/requests/compute_v2/server_address_tests.rb +0 -46
  290. data/tests/hp/requests/compute_v2/server_security_group_tests.rb +0 -42
  291. data/tests/hp/requests/compute_v2/server_tests.rb +0 -113
  292. data/tests/hp/requests/compute_v2/server_volume_tests.rb +0 -84
  293. data/tests/hp/requests/dns/domain_tests.rb +0 -72
  294. data/tests/hp/requests/dns/records_tests.rb +0 -64
  295. data/tests/hp/requests/lb/algorithms_tests.rb +0 -14
  296. data/tests/hp/requests/lb/limits_tests.rb +0 -16
  297. data/tests/hp/requests/lb/load_balancer_nodes_tests.rb +0 -46
  298. data/tests/hp/requests/lb/load_balancer_tests.rb +0 -56
  299. data/tests/hp/requests/lb/protocols_tests.rb +0 -14
  300. data/tests/hp/requests/lb/versions_tests.rb +0 -16
  301. data/tests/hp/requests/lb/virtual_ips_tests.rb +0 -34
  302. data/tests/hp/requests/network/floating_ip_tests.rb +0 -70
  303. data/tests/hp/requests/network/network_tests.rb +0 -57
  304. data/tests/hp/requests/network/port_tests.rb +0 -71
  305. data/tests/hp/requests/network/router_tests.rb +0 -108
  306. data/tests/hp/requests/network/security_group_rule_tests.rb +0 -58
  307. data/tests/hp/requests/network/security_group_tests.rb +0 -48
  308. data/tests/hp/requests/network/subnet_tests.rb +0 -71
  309. data/tests/hp/requests/storage/container_tests.rb +0 -86
  310. data/tests/hp/requests/storage/object_tests.rb +0 -121
  311. data/tests/hp/storage_tests.rb +0 -28
  312. data/tests/hp/user_agent_tests.rb +0 -13
  313. data/tests/ninefold/models/storage/file_update_tests.rb +0 -19
  314. data/tests/ninefold/models/storage/nested_directories_tests.rb +0 -23
  315. data/tests/ninefold/requests/compute/address_tests.rb +0 -42
  316. data/tests/ninefold/requests/compute/async_job_tests.rb +0 -33
  317. data/tests/ninefold/requests/compute/helper.rb +0 -369
  318. data/tests/ninefold/requests/compute/list_tests.rb +0 -56
  319. data/tests/ninefold/requests/compute/load_balancer_tests.rb +0 -66
  320. data/tests/ninefold/requests/compute/nat_tests.rb +0 -91
  321. data/tests/ninefold/requests/compute/network_tests.rb +0 -21
  322. data/tests/ninefold/requests/compute/template_tests.rb +0 -21
  323. data/tests/ninefold/requests/compute/virtual_machine_tests.rb +0 -68
@@ -1,4 +1,5 @@
1
1
  require 'fog/cloudsigma/nested_model'
2
+ require 'fog/cloudsigma/models/snapshot'
2
3
 
3
4
  module Fog
4
5
  module Compute
@@ -19,6 +20,7 @@ module Fog
19
20
  attribute :affinities, :type => :array
20
21
  attribute :size, :type => :integer
21
22
  attribute :resource_uri, :type => :string
23
+ model_attribute_array :snapshots, Snapshot
22
24
 
23
25
  def save
24
26
  if persisted?
@@ -63,6 +65,19 @@ module Fog
63
65
 
64
66
  self.class.new(response.body['objects'].first)
65
67
  end
68
+
69
+ def create_snapshot(snapshot_params={})
70
+ requires :identity
71
+ snapshot_params[:drive] = identity
72
+ response = service.create_snapshot(snapshot_params)
73
+
74
+ Snapshot.new(response.body['objects'].first)
75
+ end
76
+
77
+ def available?
78
+ status == 'unmounted'
79
+ end
80
+
66
81
  end
67
82
  end
68
83
  end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Compute
3
+ class CloudSigma
4
+ class Real
5
+ def clone_snapshot(snap_id, clone_params={})
6
+ request(:path => "snapshots/#{snap_id}/action/",
7
+ :method => 'POST',
8
+ :query => {:do => :clone},
9
+ :body => clone_params,
10
+ :expects => [200, 202])
11
+ end
12
+ end
13
+
14
+ class Mock
15
+ def clone_snapshot(snap_id, clone_params={})
16
+ snapshot = self.data[:snapshots][snap_id].dup
17
+ uuid = self.class.random_uuid
18
+ snapshot['uuid'] = uuid
19
+
20
+ self.data[:snapshots][uuid] = snapshot
21
+
22
+ response = Excon::Response.new
23
+ response.status = 200
24
+ response.body = snapshot
25
+
26
+ response
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Compute
3
+ class CloudSigma
4
+ class Real
5
+ def create_snapshot(data)
6
+ create_request("snapshots/", data)
7
+ end
8
+ end
9
+
10
+ class Mock
11
+ def create_snapshot(data)
12
+ uuid = self.class.random_uuid
13
+
14
+ defaults = {'uuid' => uuid,
15
+ 'timestamp' => Time.now.strftime("%Y-%m-%d %H:%M:%S.%6N%z"),
16
+ 'status' => 'creating',
17
+ 'tags' => [],
18
+ 'grantees' => [],
19
+ 'allocated_size' => 0
20
+ }
21
+
22
+ mock_create(:snapshots, 201, data, uuid, defaults)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,17 @@
1
+ module Fog
2
+ module Compute
3
+ class CloudSigma
4
+ class Real
5
+ def delete_snapshot(snap_id)
6
+ delete_request("snapshots/#{snap_id}/")
7
+ end
8
+ end
9
+
10
+ class Mock
11
+ def delete_snapshot(snap_id)
12
+ mock_delete(:snapshots, 204, snap_id)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Fog
2
+ module Compute
3
+ class CloudSigma
4
+ class Real
5
+ def get_snapshot(snap_id)
6
+ get_request("snapshots/#{snap_id}/")
7
+ end
8
+ end
9
+
10
+ class Mock
11
+ def get_snapshot(snap_id)
12
+ mock_get(:snapshots, 200, snap_id)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Fog
2
+ module Compute
3
+ class CloudSigma
4
+ class Real
5
+ def list_snapshots
6
+ list_request('snapshots/detail/')
7
+ end
8
+ end
9
+
10
+ class Mock
11
+ def list_snapshots
12
+ mock_list(:snapshots, 200)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -2,23 +2,24 @@ module Fog
2
2
  module Compute
3
3
  class CloudSigma
4
4
  class Real
5
- def stop_server(server_id)
5
+ def stop_server(server_id, graceful_acpi = false)
6
+ action = graceful_acpi ? :shutdown : :stop
6
7
  request(:path => "servers/#{server_id}/action/",
7
8
  :method => 'POST',
8
- :query => {:do => :stop},
9
+ :query => {:do => action},
9
10
  :expects => [200, 202])
10
11
  end
11
12
  end
12
13
 
13
14
  class Mock
14
- def stop_server(server_id)
15
+ def stop_server(server_id, graceful_acpi = false)
15
16
  server = self.data[:servers][server_id]
16
17
  server['status'] = 'stopped'
17
18
 
18
19
  response = Excon::Response.new
19
20
  response.status = 200
20
21
  response.body = {
21
- 'action' => 'stop',
22
+ 'action' => graceful_acpi ? 'shutdown' : 'stop',
22
23
  'result' => 'success',
23
24
  'uuid' => server_id
24
25
  }
@@ -0,0 +1,17 @@
1
+ module Fog
2
+ module Compute
3
+ class CloudSigma
4
+ class Real
5
+ def update_snapshot(snap_id, data)
6
+ update_request("snapshots/#{snap_id}/", data)
7
+ end
8
+ end
9
+
10
+ class Mock
11
+ def update_snapshot(snap_id, data)
12
+ mock_update(data, :snapshots, 200, snap_id)
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -13,6 +13,8 @@ module Fog
13
13
  def self.escape(string)
14
14
  string = CGI::escape(string)
15
15
  string = string.gsub("+","%20")
16
+ # Escaped asterisk will cause malformed request
17
+ string = string.gsub("%2A","*")
16
18
  string
17
19
  end
18
20
 
@@ -6,7 +6,6 @@ module Fog
6
6
  class Joyent < Fog::Service
7
7
  requires :joyent_username
8
8
 
9
- recognizes :joyent_password
10
9
  recognizes :joyent_url
11
10
 
12
11
  recognizes :joyent_keyname
@@ -15,7 +14,7 @@ module Fog
15
14
  recognizes :joyent_keyphrase
16
15
  recognizes :joyent_version
17
16
 
18
- secrets :joyent_password, :joyent_keydata, :joyent_keyphrase
17
+ secrets :joyent_keydata, :joyent_keyphrase
19
18
 
20
19
  model_path 'fog/joyent/models/compute'
21
20
  request_path 'fog/joyent/requests/compute'
@@ -100,7 +99,6 @@ module Fog
100
99
 
101
100
  def initialize(options = {})
102
101
  @joyent_username = options[:joyent_username]
103
- @joyent_password = options[:joyent_password]
104
102
  end
105
103
 
106
104
  def request(opts)
@@ -117,7 +115,7 @@ module Fog
117
115
  @persistent = options[:persistent] || false
118
116
 
119
117
  @joyent_url = options[:joyent_url] || 'https://us-sw-1.api.joyentcloud.com'
120
- @joyent_version = options[:joyent_version] || '~6.5'
118
+ @joyent_version = options[:joyent_version] || '~7'
121
119
  @joyent_username = options[:joyent_username]
122
120
 
123
121
  unless @joyent_username
@@ -137,7 +135,6 @@ module Fog
137
135
  :keys_only => true,
138
136
  :passphrase => @joyent_keyphrase
139
137
  })
140
- @header_method = method(:header_for_signature_auth)
141
138
 
142
139
  if options[:joyent_keyfile]
143
140
  if File.exist?(options[:joyent_keyfile])
@@ -154,11 +151,8 @@ module Fog
154
151
  @key_manager.add_key_data(@joyent_keydata)
155
152
  end
156
153
  end
157
- elsif options[:joyent_password]
158
- @joyent_password = options[:joyent_password]
159
- @header_method = method(:header_for_basic_auth)
160
154
  else
161
- raise ArgumentError, "Must provide either a joyent_password or joyent_keyname and joyent_keyfile pair"
155
+ raise ArgumentError, "Must provide a joyent_keyname and joyent_keyfile pair"
162
156
  end
163
157
 
164
158
  @connection = Fog::XML::Connection.new(
@@ -173,7 +167,7 @@ module Fog
173
167
  "X-Api-Version" => @joyent_version,
174
168
  "Content-Type" => "application/json",
175
169
  "Accept" => "application/json"
176
- }.merge(opts[:headers] || {}).merge(@header_method.call)
170
+ }.merge(opts[:headers] || {}).merge(header_for_signature_auth)
177
171
 
178
172
  if opts[:body]
179
173
  opts[:body] = Fog::JSON.encode(opts[:body])
@@ -199,12 +193,6 @@ module Fog
199
193
  decode_time_attrs(parsed)
200
194
  end
201
195
 
202
- def header_for_basic_auth
203
- {
204
- "Authorization" => "Basic #{Base64.encode64("#{@joyent_username}:#{@joyent_password}").delete("\r\n")}"
205
- }
206
- end
207
-
208
196
  def header_for_signature_auth
209
197
  date = Time.now.utc.httpdate
210
198
 
File without changes
@@ -1,8 +1,8 @@
1
1
  require 'fog/opennebula/core'
2
2
 
3
3
  module Fog
4
- module Compute
5
- class OpenNebula < Fog::Service
4
+ module Compute
5
+ class OpenNebula < Fog::Service
6
6
  requires :opennebula_endpoint
7
7
  recognizes :opennebula_username, :opennebula_password
8
8
 
@@ -26,35 +26,106 @@ module Fog
26
26
  request :vm_destroy
27
27
  request :get_vnc_console
28
28
  request :vm_resume
29
+ request :vm_suspend
29
30
  request :vm_stop
30
31
  request :template_pool
31
32
  request :vm_disk_snapshot
32
33
  request :vm_shutdown
33
34
  request :image_pool
34
35
 
35
- class Mock
36
- include Collections
37
- def initialize(options={})
38
- require 'opennebula'
39
- end
36
+ class Mock
37
+ def self.data
38
+ @data ||= Hash.new do |hash, key|
39
+ hash[key] = {
40
+ "vms" => [
41
+ {
42
+ "onevm_object" => "",
43
+ "status" => "RUNNING",
44
+ "state" => "3",
45
+ "id" => 4,
46
+ "uuid" => "5",
47
+ "gid" => "5",
48
+ "name" => "MockVM",
49
+ "user" => "MockUser",
50
+ "group" => "MockGroup",
51
+ "cpu" => "2",
52
+ "memory" => "1024",
53
+ "mac" => "00:01:02:03:04:05",
54
+ "ip" => "1.1.1.1"
55
+ }
56
+ ],
57
+ "image_pool" => [
58
+ {}
59
+ ],
60
+ "template_pool" => [
61
+ {
62
+ "content" => %Q{
63
+ NAME = mock-vm
64
+ MEMORY = 512
65
+ VCPU = 1
66
+ CPU = 1
67
+ },
68
+ "id" => 1,
69
+ "name" => 'mock',
70
+ "cpu" => 1,
71
+ "vcpu" => 1,
72
+ "memory" => 512,
73
+ "sched_requirements" => 'CPUSPEED > 1000',
74
+ "sched_rank" => 'FREECPU',
75
+ "sched_ds_requirements" => "NAME=mock",
76
+ "sched_ds_rank" => "FREE_MB",
77
+ "disk" => {},
78
+ "nic" => {},
79
+ "os" => {
80
+ 'ARCH' => 'x86_64'
81
+ },
82
+ "graphics" => {},
83
+ "raw" => %|["DATA"=>"<cpu match='exact'><model fallback='allow'>core2duo</model></cpu>", "TYPE"=>"kvm"]|,
84
+ "context" => {},
85
+ "user_variables" => {}
86
+ }
87
+ ]
88
+ }
89
+ end
90
+ end
40
91
 
41
- def client
42
- return @client
43
- end
44
- end
92
+ def self.reset
93
+ @data = nil
94
+ end
95
+
96
+ include Collections
97
+ def initialize(options={})
98
+ @opennebula_endpoint = options[:opennebula_endpoint]
99
+ @opennebula_username = options[:opennebula_username]
100
+ @opennebula_password = options[:opennebula_password]
101
+ require 'opennebula'
102
+ end
45
103
 
46
- class Real
47
- include Collections
104
+ def client
105
+ return @client
106
+ end
48
107
 
49
- def client
50
- return @client
108
+ def data
109
+ self.class.data[@opennebula_endpoint]
110
+ end
111
+
112
+ def reset_data
113
+ self.class.data.delete(@opennebula_endpoint)
114
+ end
51
115
  end
52
116
 
53
- def initialize(options={})
54
- require 'opennebula'
55
- @client = ::OpenNebula::Client.new("#{options[:opennebula_username]}:#{options[:opennebula_password]}", options[:opennebula_endpoint])
117
+ class Real
118
+ include Collections
119
+
120
+ def client
121
+ return @client
122
+ end
123
+
124
+ def initialize(options={})
125
+ require 'opennebula'
126
+ @client = ::OpenNebula::Client.new("#{options[:opennebula_username]}:#{options[:opennebula_password]}", options[:opennebula_endpoint])
127
+ end
56
128
  end
57
129
  end
58
130
  end
59
- end
60
131
  end
@@ -60,13 +60,21 @@ module Fog
60
60
  service.vm_resume(id)
61
61
  end
62
62
  true
63
- end
63
+ end
64
64
 
65
65
  def stop
66
66
  Fog::Logger.warning("stop VM: ID:#{id}")
67
67
  service.vm_stop(id)
68
68
  end
69
69
 
70
+ def suspend
71
+ service.vm_suspend(id)
72
+ end
73
+
74
+ def resume
75
+ service.vm_resume(id)
76
+ end
77
+
70
78
  def destroy
71
79
  service.vm_destroy(id)
72
80
  end
@@ -18,7 +18,6 @@ module Fog
18
18
  end
19
19
  end
20
20
  end
21
- images.delete nil
22
21
  images
23
22
  end #def image_pool
24
23
  end #class Real