fog-maestrodev 1.7.0.20121114190951 → 1.8.0.20130109172219

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 (964) hide show
  1. data/.gitignore +2 -2
  2. data/README.md +48 -37
  3. data/RELEASE.md +39 -0
  4. data/Rakefile +48 -312
  5. data/bin/fog +4 -0
  6. data/changelog.txt +153 -0
  7. data/docs/storage/aws.markdown +21 -0
  8. data/fog.gemspec +3 -3
  9. data/lib/fog.rb +0 -5
  10. data/lib/fog/atmos/models/storage/directories.rb +2 -2
  11. data/lib/fog/atmos/models/storage/directory.rb +11 -11
  12. data/lib/fog/atmos/models/storage/file.rb +8 -8
  13. data/lib/fog/atmos/models/storage/files.rb +3 -3
  14. data/lib/fog/aws.rb +1 -0
  15. data/lib/fog/aws/auto_scaling.rb +1 -1
  16. data/lib/fog/aws/cloud_watch.rb +1 -1
  17. data/lib/fog/aws/compute.rb +4 -2
  18. data/lib/fog/aws/dynamodb.rb +30 -64
  19. data/lib/fog/aws/elb.rb +1 -1
  20. data/lib/fog/aws/glacier.rb +1 -1
  21. data/lib/fog/aws/iam.rb +1 -0
  22. data/lib/fog/aws/models/auto_scaling/activities.rb +2 -2
  23. data/lib/fog/aws/models/auto_scaling/activity.rb +1 -1
  24. data/lib/fog/aws/models/auto_scaling/configuration.rb +2 -2
  25. data/lib/fog/aws/models/auto_scaling/configurations.rb +2 -2
  26. data/lib/fog/aws/models/auto_scaling/group.rb +13 -13
  27. data/lib/fog/aws/models/auto_scaling/groups.rb +2 -2
  28. data/lib/fog/aws/models/auto_scaling/instance.rb +5 -5
  29. data/lib/fog/aws/models/auto_scaling/instances.rb +2 -2
  30. data/lib/fog/aws/models/auto_scaling/policies.rb +2 -2
  31. data/lib/fog/aws/models/auto_scaling/policy.rb +2 -2
  32. data/lib/fog/aws/models/beanstalk/application.rb +7 -7
  33. data/lib/fog/aws/models/beanstalk/applications.rb +2 -2
  34. data/lib/fog/aws/models/beanstalk/environment.rb +10 -10
  35. data/lib/fog/aws/models/beanstalk/environments.rb +2 -2
  36. data/lib/fog/aws/models/beanstalk/events.rb +1 -1
  37. data/lib/fog/aws/models/beanstalk/template.rb +5 -5
  38. data/lib/fog/aws/models/beanstalk/templates.rb +3 -3
  39. data/lib/fog/aws/models/beanstalk/version.rb +6 -6
  40. data/lib/fog/aws/models/beanstalk/versions.rb +2 -2
  41. data/lib/fog/aws/models/cdn/distribution.rb +4 -4
  42. data/lib/fog/aws/models/cdn/distributions.rb +2 -2
  43. data/lib/fog/aws/models/cdn/invalidation.rb +2 -2
  44. data/lib/fog/aws/models/cdn/invalidations.rb +2 -2
  45. data/lib/fog/aws/models/cdn/streaming_distribution.rb +3 -3
  46. data/lib/fog/aws/models/cdn/streaming_distributions.rb +2 -2
  47. data/lib/fog/aws/models/cloud_watch/alarm.rb +2 -2
  48. data/lib/fog/aws/models/cloud_watch/alarm_data.rb +9 -9
  49. data/lib/fog/aws/models/cloud_watch/alarm_datum.rb +3 -3
  50. data/lib/fog/aws/models/cloud_watch/alarm_histories.rb +1 -1
  51. data/lib/fog/aws/models/cloud_watch/alarms.rb +7 -7
  52. data/lib/fog/aws/models/cloud_watch/metric_statistic.rb +2 -2
  53. data/lib/fog/aws/models/cloud_watch/metric_statistics.rb +3 -3
  54. data/lib/fog/aws/models/cloud_watch/metrics.rb +27 -7
  55. data/lib/fog/aws/models/compute/address.rb +9 -9
  56. data/lib/fog/aws/models/compute/addresses.rb +2 -2
  57. data/lib/fog/aws/models/compute/dhcp_option.rb +3 -3
  58. data/lib/fog/aws/models/compute/dhcp_options.rb +2 -2
  59. data/lib/fog/aws/models/compute/flavors.rb +1 -1
  60. data/lib/fog/aws/models/compute/image.rb +2 -2
  61. data/lib/fog/aws/models/compute/images.rb +5 -5
  62. data/lib/fog/aws/models/compute/internet_gateway.rb +4 -4
  63. data/lib/fog/aws/models/compute/internet_gateways.rb +2 -2
  64. data/lib/fog/aws/models/compute/key_pair.rb +4 -4
  65. data/lib/fog/aws/models/compute/key_pairs.rb +2 -2
  66. data/lib/fog/aws/models/compute/network_interface.rb +3 -3
  67. data/lib/fog/aws/models/compute/network_interfaces.rb +2 -2
  68. data/lib/fog/aws/models/compute/security_group.rb +7 -7
  69. data/lib/fog/aws/models/compute/security_groups.rb +3 -3
  70. data/lib/fog/aws/models/compute/server.rb +22 -16
  71. data/lib/fog/aws/models/compute/servers.rb +6 -6
  72. data/lib/fog/aws/models/compute/snapshot.rb +4 -4
  73. data/lib/fog/aws/models/compute/snapshots.rb +3 -3
  74. data/lib/fog/aws/models/compute/spot_request.rb +18 -8
  75. data/lib/fog/aws/models/compute/spot_requests.rb +11 -11
  76. data/lib/fog/aws/models/compute/subnet.rb +3 -3
  77. data/lib/fog/aws/models/compute/subnets.rb +2 -2
  78. data/lib/fog/aws/models/compute/tag.rb +2 -2
  79. data/lib/fog/aws/models/compute/tags.rb +3 -3
  80. data/lib/fog/aws/models/compute/volume.rb +12 -13
  81. data/lib/fog/aws/models/compute/volumes.rb +2 -2
  82. data/lib/fog/aws/models/compute/vpc.rb +2 -2
  83. data/lib/fog/aws/models/compute/vpcs.rb +2 -2
  84. data/lib/fog/aws/models/dns/record.rb +4 -4
  85. data/lib/fog/aws/models/dns/records.rb +3 -3
  86. data/lib/fog/aws/models/dns/zone.rb +3 -3
  87. data/lib/fog/aws/models/dns/zones.rb +2 -2
  88. data/lib/fog/aws/models/elasticache/cluster.rb +2 -2
  89. data/lib/fog/aws/models/elasticache/clusters.rb +2 -2
  90. data/lib/fog/aws/models/elasticache/parameter_group.rb +2 -2
  91. data/lib/fog/aws/models/elasticache/parameter_groups.rb +2 -2
  92. data/lib/fog/aws/models/elasticache/security_group.rb +4 -4
  93. data/lib/fog/aws/models/elasticache/security_groups.rb +2 -2
  94. data/lib/fog/aws/models/elb/listener.rb +2 -2
  95. data/lib/fog/aws/models/elb/load_balancer.rb +19 -19
  96. data/lib/fog/aws/models/elb/load_balancers.rb +2 -2
  97. data/lib/fog/aws/models/elb/policy.rb +3 -3
  98. data/lib/fog/aws/models/glacier/archive.rb +7 -7
  99. data/lib/fog/aws/models/glacier/job.rb +2 -2
  100. data/lib/fog/aws/models/glacier/jobs.rb +3 -3
  101. data/lib/fog/aws/models/glacier/vault.rb +7 -7
  102. data/lib/fog/aws/models/glacier/vaults.rb +2 -2
  103. data/lib/fog/aws/models/iam/access_key.rb +8 -8
  104. data/lib/fog/aws/models/iam/access_keys.rb +7 -7
  105. data/lib/fog/aws/models/iam/policies.rb +10 -10
  106. data/lib/fog/aws/models/iam/policy.rb +8 -8
  107. data/lib/fog/aws/models/iam/user.rb +10 -10
  108. data/lib/fog/aws/models/iam/users.rb +2 -2
  109. data/lib/fog/aws/models/rds/parameter.rb +2 -2
  110. data/lib/fog/aws/models/rds/parameter_group.rb +10 -10
  111. data/lib/fog/aws/models/rds/parameter_groups.rb +3 -3
  112. data/lib/fog/aws/models/rds/parameters.rb +2 -2
  113. data/lib/fog/aws/models/rds/security_group.rb +4 -4
  114. data/lib/fog/aws/models/rds/security_groups.rb +2 -2
  115. data/lib/fog/aws/models/rds/server.rb +10 -10
  116. data/lib/fog/aws/models/rds/servers.rb +3 -3
  117. data/lib/fog/aws/models/rds/snapshot.rb +3 -3
  118. data/lib/fog/aws/models/rds/snapshots.rb +3 -3
  119. data/lib/fog/aws/models/rds/subnet_groups.rb +2 -2
  120. data/lib/fog/aws/models/storage/directories.rb +2 -2
  121. data/lib/fog/aws/models/storage/directory.rb +13 -13
  122. data/lib/fog/aws/models/storage/file.rb +106 -14
  123. data/lib/fog/aws/models/storage/files.rb +5 -5
  124. data/lib/fog/aws/models/storage/version.rb +2 -2
  125. data/lib/fog/aws/models/storage/versions.rb +3 -3
  126. data/lib/fog/aws/parsers/compute/copy_snapshot.rb +22 -0
  127. data/lib/fog/aws/parsers/compute/describe_instances.rb +3 -1
  128. data/lib/fog/aws/parsers/compute/describe_reserved_instances_offerings.rb +1 -1
  129. data/lib/fog/aws/parsers/compute/spot_instance_requests.rb +5 -3
  130. data/lib/fog/aws/parsers/storage/cors_configuration.rb +41 -0
  131. data/lib/fog/aws/parsers/storage/delete_multiple_objects.rb +50 -0
  132. data/lib/fog/aws/rds.rb +2 -2
  133. data/lib/fog/aws/requests/auto_scaling/resume_processes.rb +10 -1
  134. data/lib/fog/aws/requests/auto_scaling/suspend_processes.rb +7 -2
  135. data/lib/fog/aws/requests/cloud_watch/list_metrics.rb +27 -0
  136. data/lib/fog/aws/requests/compute/copy_snapshot.rb +58 -0
  137. data/lib/fog/aws/requests/compute/describe_availability_zones.rb +3 -0
  138. data/lib/fog/aws/requests/compute/describe_reserved_instances_offerings.rb +11 -8
  139. data/lib/fog/aws/requests/compute/modify_volume_attribute.rb +51 -0
  140. data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +1 -0
  141. data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +5 -7
  142. data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +12 -16
  143. data/lib/fog/aws/requests/storage/copy_object.rb +19 -20
  144. data/lib/fog/aws/requests/storage/cors_utils.rb +41 -0
  145. data/lib/fog/aws/requests/storage/delete_bucket.rb +4 -7
  146. data/lib/fog/aws/requests/storage/delete_bucket_cors.rb +29 -0
  147. data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +4 -7
  148. data/lib/fog/aws/requests/storage/delete_bucket_policy.rb +5 -8
  149. data/lib/fog/aws/requests/storage/delete_bucket_website.rb +4 -7
  150. data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +167 -0
  151. data/lib/fog/aws/requests/storage/delete_object.rb +5 -8
  152. data/lib/fog/aws/requests/storage/get_bucket.rb +25 -28
  153. data/lib/fog/aws/requests/storage/get_bucket_acl.rb +15 -18
  154. data/lib/fog/aws/requests/storage/get_bucket_cors.rb +65 -0
  155. data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +9 -12
  156. data/lib/fog/aws/requests/storage/get_bucket_location.rb +5 -8
  157. data/lib/fog/aws/requests/storage/get_bucket_logging.rb +15 -18
  158. data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +37 -43
  159. data/lib/fog/aws/requests/storage/get_bucket_policy.rb +4 -7
  160. data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +6 -9
  161. data/lib/fog/aws/requests/storage/get_bucket_website.rb +9 -11
  162. data/lib/fog/aws/requests/storage/get_object.rb +17 -20
  163. data/lib/fog/aws/requests/storage/get_object_acl.rb +18 -21
  164. data/lib/fog/aws/requests/storage/get_object_http_url.rb +6 -9
  165. data/lib/fog/aws/requests/storage/get_object_https_url.rb +6 -9
  166. data/lib/fog/aws/requests/storage/get_object_torrent.rb +15 -18
  167. data/lib/fog/aws/requests/storage/get_object_url.rb +7 -10
  168. data/lib/fog/aws/requests/storage/get_request_payment.rb +5 -8
  169. data/lib/fog/aws/requests/storage/get_service.rb +9 -11
  170. data/lib/fog/aws/requests/storage/head_object.rb +21 -21
  171. data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +18 -19
  172. data/lib/fog/aws/requests/storage/put_bucket_cors.rb +51 -0
  173. data/lib/fog/aws/signaturev4.rb +1 -1
  174. data/lib/fog/aws/sqs.rb +1 -1
  175. data/lib/fog/aws/storage.rb +10 -1
  176. data/lib/fog/bluebox/models/compute/flavors.rb +2 -2
  177. data/lib/fog/bluebox/models/compute/image.rb +8 -8
  178. data/lib/fog/bluebox/models/compute/images.rb +2 -2
  179. data/lib/fog/bluebox/models/compute/locations.rb +2 -2
  180. data/lib/fog/bluebox/models/compute/server.rb +10 -10
  181. data/lib/fog/bluebox/models/compute/servers.rb +2 -2
  182. data/lib/fog/bluebox/models/dns/record.rb +3 -3
  183. data/lib/fog/bluebox/models/dns/records.rb +2 -2
  184. data/lib/fog/bluebox/models/dns/zone.rb +3 -3
  185. data/lib/fog/bluebox/models/dns/zones.rb +2 -2
  186. data/lib/fog/bluebox/requests/compute/create_block.rb +3 -5
  187. data/lib/fog/brightbox/compute.rb +284 -82
  188. data/lib/fog/brightbox/models/compute/account.rb +9 -3
  189. data/lib/fog/brightbox/models/compute/accounts.rb +3 -3
  190. data/lib/fog/brightbox/models/compute/api_client.rb +4 -4
  191. data/lib/fog/brightbox/models/compute/api_clients.rb +2 -2
  192. data/lib/fog/brightbox/models/compute/application.rb +2 -2
  193. data/lib/fog/brightbox/models/compute/applications.rb +3 -3
  194. data/lib/fog/brightbox/models/compute/cloud_ip.rb +4 -3
  195. data/lib/fog/brightbox/models/compute/cloud_ips.rb +4 -4
  196. data/lib/fog/brightbox/models/compute/firewall_policies.rb +3 -3
  197. data/lib/fog/brightbox/models/compute/firewall_policy.rb +5 -5
  198. data/lib/fog/brightbox/models/compute/firewall_rule.rb +3 -3
  199. data/lib/fog/brightbox/models/compute/firewall_rules.rb +2 -2
  200. data/lib/fog/brightbox/models/compute/flavors.rb +3 -3
  201. data/lib/fog/brightbox/models/compute/image.rb +3 -3
  202. data/lib/fog/brightbox/models/compute/images.rb +2 -2
  203. data/lib/fog/brightbox/models/compute/load_balancer.rb +3 -3
  204. data/lib/fog/brightbox/models/compute/load_balancers.rb +2 -2
  205. data/lib/fog/brightbox/models/compute/server.rb +25 -18
  206. data/lib/fog/brightbox/models/compute/server_group.rb +6 -6
  207. data/lib/fog/brightbox/models/compute/server_groups.rb +3 -3
  208. data/lib/fog/brightbox/models/compute/servers.rb +35 -3
  209. data/lib/fog/brightbox/models/compute/user.rb +1 -1
  210. data/lib/fog/brightbox/models/compute/users.rb +3 -3
  211. data/lib/fog/brightbox/models/compute/zones.rb +3 -3
  212. data/lib/fog/brightbox/oauth2.rb +164 -0
  213. data/lib/fog/brightbox/requests/compute/activate_console_server.rb +10 -3
  214. data/lib/fog/brightbox/requests/compute/add_listeners_load_balancer.rb +12 -3
  215. data/lib/fog/brightbox/requests/compute/add_nodes_load_balancer.rb +12 -3
  216. data/lib/fog/brightbox/requests/compute/add_servers_server_group.rb +10 -12
  217. data/lib/fog/brightbox/requests/compute/apply_to_firewall_policy.rb +12 -3
  218. data/lib/fog/brightbox/requests/compute/create_api_client.rb +12 -3
  219. data/lib/fog/brightbox/requests/compute/create_application.rb +12 -3
  220. data/lib/fog/brightbox/requests/compute/create_cloud_ip.rb +12 -2
  221. data/lib/fog/brightbox/requests/compute/create_firewall_policy.rb +14 -3
  222. data/lib/fog/brightbox/requests/compute/create_firewall_rule.rb +18 -3
  223. data/lib/fog/brightbox/requests/compute/create_image.rb +19 -3
  224. data/lib/fog/brightbox/requests/compute/create_load_balancer.rb +15 -3
  225. data/lib/fog/brightbox/requests/compute/create_server.rb +18 -3
  226. data/lib/fog/brightbox/requests/compute/create_server_group.rb +12 -3
  227. data/lib/fog/brightbox/requests/compute/destroy_api_client.rb +10 -3
  228. data/lib/fog/brightbox/requests/compute/destroy_application.rb +10 -3
  229. data/lib/fog/brightbox/requests/compute/destroy_cloud_ip.rb +10 -3
  230. data/lib/fog/brightbox/requests/compute/destroy_firewall_policy.rb +10 -3
  231. data/lib/fog/brightbox/requests/compute/destroy_firewall_rule.rb +10 -3
  232. data/lib/fog/brightbox/requests/compute/destroy_image.rb +10 -3
  233. data/lib/fog/brightbox/requests/compute/destroy_load_balancer.rb +10 -3
  234. data/lib/fog/brightbox/requests/compute/destroy_server.rb +10 -3
  235. data/lib/fog/brightbox/requests/compute/destroy_server_group.rb +10 -3
  236. data/lib/fog/brightbox/requests/compute/get_account.rb +8 -16
  237. data/lib/fog/brightbox/requests/compute/get_api_client.rb +10 -3
  238. data/lib/fog/brightbox/requests/compute/get_application.rb +10 -3
  239. data/lib/fog/brightbox/requests/compute/get_authenticated_user.rb +2 -4
  240. data/lib/fog/brightbox/requests/compute/get_cloud_ip.rb +10 -3
  241. data/lib/fog/brightbox/requests/compute/get_firewall_policy.rb +10 -3
  242. data/lib/fog/brightbox/requests/compute/get_firewall_rule.rb +10 -3
  243. data/lib/fog/brightbox/requests/compute/get_image.rb +10 -3
  244. data/lib/fog/brightbox/requests/compute/get_interface.rb +10 -3
  245. data/lib/fog/brightbox/requests/compute/get_load_balancer.rb +10 -3
  246. data/lib/fog/brightbox/requests/compute/get_scoped_account.rb +2 -6
  247. data/lib/fog/brightbox/requests/compute/get_server.rb +10 -3
  248. data/lib/fog/brightbox/requests/compute/get_server_group.rb +10 -3
  249. data/lib/fog/brightbox/requests/compute/get_server_type.rb +10 -3
  250. data/lib/fog/brightbox/requests/compute/get_user.rb +8 -16
  251. data/lib/fog/brightbox/requests/compute/get_zone.rb +10 -3
  252. data/lib/fog/brightbox/requests/compute/list_accounts.rb +7 -3
  253. data/lib/fog/brightbox/requests/compute/list_api_clients.rb +9 -3
  254. data/lib/fog/brightbox/requests/compute/list_applications.rb +9 -3
  255. data/lib/fog/brightbox/requests/compute/list_cloud_ips.rb +9 -3
  256. data/lib/fog/brightbox/requests/compute/list_firewall_policies.rb +9 -3
  257. data/lib/fog/brightbox/requests/compute/list_images.rb +9 -3
  258. data/lib/fog/brightbox/requests/compute/list_load_balancers.rb +9 -3
  259. data/lib/fog/brightbox/requests/compute/list_server_groups.rb +9 -3
  260. data/lib/fog/brightbox/requests/compute/list_server_types.rb +9 -3
  261. data/lib/fog/brightbox/requests/compute/list_servers.rb +9 -3
  262. data/lib/fog/brightbox/requests/compute/list_users.rb +9 -3
  263. data/lib/fog/brightbox/requests/compute/list_zones.rb +9 -3
  264. data/lib/fog/brightbox/requests/compute/map_cloud_ip.rb +12 -3
  265. data/lib/fog/brightbox/requests/compute/move_servers_server_group.rb +11 -13
  266. data/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +12 -3
  267. data/lib/fog/brightbox/requests/compute/remove_listeners_load_balancer.rb +12 -3
  268. data/lib/fog/brightbox/requests/compute/remove_nodes_load_balancer.rb +12 -3
  269. data/lib/fog/brightbox/requests/compute/remove_servers_server_group.rb +10 -11
  270. data/lib/fog/brightbox/requests/compute/reset_ftp_password_account.rb +22 -3
  271. data/lib/fog/brightbox/requests/compute/reset_ftp_password_scoped_account.rb +18 -0
  272. data/lib/fog/brightbox/requests/compute/reset_secret_api_client.rb +14 -2
  273. data/lib/fog/brightbox/requests/compute/reset_secret_application.rb +10 -3
  274. data/lib/fog/brightbox/requests/compute/shutdown_server.rb +10 -3
  275. data/lib/fog/brightbox/requests/compute/snapshot_server.rb +10 -3
  276. data/lib/fog/brightbox/requests/compute/start_server.rb +10 -3
  277. data/lib/fog/brightbox/requests/compute/stop_server.rb +10 -3
  278. data/lib/fog/brightbox/requests/compute/unmap_cloud_ip.rb +10 -3
  279. data/lib/fog/brightbox/requests/compute/update_account.rb +33 -35
  280. data/lib/fog/brightbox/requests/compute/update_api_client.rb +13 -3
  281. data/lib/fog/brightbox/requests/compute/update_application.rb +13 -3
  282. data/lib/fog/brightbox/requests/compute/update_cloud_ip.rb +14 -3
  283. data/lib/fog/brightbox/requests/compute/update_firewall_rule.rb +17 -2
  284. data/lib/fog/brightbox/requests/compute/update_image.rb +18 -3
  285. data/lib/fog/brightbox/requests/compute/update_load_balancer.rb +16 -3
  286. data/lib/fog/brightbox/requests/compute/update_scoped_account.rb +13 -20
  287. data/lib/fog/brightbox/requests/compute/update_server.rb +13 -3
  288. data/lib/fog/brightbox/requests/compute/update_server_group.rb +13 -3
  289. data/lib/fog/brightbox/requests/compute/update_user.rb +16 -3
  290. data/lib/fog/clodo/models/compute/images.rb +2 -2
  291. data/lib/fog/clodo/models/compute/server.rb +7 -7
  292. data/lib/fog/clodo/models/compute/servers.rb +2 -2
  293. data/lib/fog/cloudstack/models/compute/flavors.rb +2 -2
  294. data/lib/fog/cloudstack/models/compute/image.rb +2 -2
  295. data/lib/fog/cloudstack/models/compute/images.rb +2 -2
  296. data/lib/fog/cloudstack/models/compute/job.rb +2 -2
  297. data/lib/fog/cloudstack/models/compute/jobs.rb +2 -2
  298. data/lib/fog/cloudstack/models/compute/security_group.rb +3 -3
  299. data/lib/fog/cloudstack/models/compute/security_group_rule.rb +5 -5
  300. data/lib/fog/cloudstack/models/compute/security_group_rules.rb +1 -1
  301. data/lib/fog/cloudstack/models/compute/security_groups.rb +2 -2
  302. data/lib/fog/cloudstack/models/compute/server.rb +14 -12
  303. data/lib/fog/cloudstack/models/compute/servers.rb +2 -2
  304. data/lib/fog/cloudstack/models/compute/volume.rb +8 -8
  305. data/lib/fog/cloudstack/models/compute/volumes.rb +2 -2
  306. data/lib/fog/cloudstack/models/compute/zone.rb +1 -1
  307. data/lib/fog/cloudstack/models/compute/zones.rb +2 -2
  308. data/lib/fog/compute.rb +2 -1
  309. data/lib/fog/core.rb +1 -0
  310. data/lib/fog/core/attributes.rb +19 -2
  311. data/lib/fog/core/collection.rb +17 -6
  312. data/lib/fog/core/connection.rb +1 -0
  313. data/lib/fog/core/deprecated_connection_accessors.rb +41 -0
  314. data/lib/fog/core/errors.rb +2 -0
  315. data/lib/fog/core/json.rb +4 -16
  316. data/lib/fog/core/model.rb +11 -1
  317. data/lib/fog/core/service.rb +1 -1
  318. data/lib/fog/core/wait_for.rb +1 -1
  319. data/lib/fog/dnsimple/models/dns/record.rb +4 -4
  320. data/lib/fog/dnsimple/models/dns/records.rb +2 -2
  321. data/lib/fog/dnsimple/models/dns/zone.rb +3 -3
  322. data/lib/fog/dnsimple/models/dns/zones.rb +2 -2
  323. data/lib/fog/dnsmadeeasy/models/dns/record.rb +5 -5
  324. data/lib/fog/dnsmadeeasy/models/dns/records.rb +2 -2
  325. data/lib/fog/dnsmadeeasy/models/dns/zone.rb +3 -3
  326. data/lib/fog/dnsmadeeasy/models/dns/zones.rb +2 -2
  327. data/lib/fog/dynect/models/dns/record.rb +3 -3
  328. data/lib/fog/dynect/models/dns/records.rb +2 -2
  329. data/lib/fog/dynect/models/dns/zone.rb +4 -4
  330. data/lib/fog/dynect/models/dns/zones.rb +2 -2
  331. data/lib/fog/ecloud.rb +19 -5
  332. data/lib/fog/ecloud/compute.rb +663 -351
  333. data/lib/fog/ecloud/generate_collection.rb +3 -3
  334. data/lib/fog/ecloud/models/compute/admin_organization.rb +14 -10
  335. data/lib/fog/ecloud/models/compute/admin_organizations.rb +1 -6
  336. data/lib/fog/ecloud/models/compute/api_keys.rb +2 -2
  337. data/lib/fog/ecloud/models/compute/association.rb +3 -3
  338. data/lib/fog/ecloud/models/compute/associations.rb +2 -2
  339. data/lib/fog/ecloud/models/compute/authentication_levels.rb +2 -2
  340. data/lib/fog/ecloud/models/compute/backup_internet_service.rb +7 -7
  341. data/lib/fog/ecloud/models/compute/backup_internet_services.rb +3 -3
  342. data/lib/fog/ecloud/models/compute/catalog.rb +2 -2
  343. data/lib/fog/ecloud/models/compute/catalog_configurations.rb +2 -2
  344. data/lib/fog/ecloud/models/compute/catalog_item.rb +1 -1
  345. data/lib/fog/ecloud/models/compute/compute_pool.rb +27 -15
  346. data/lib/fog/ecloud/models/compute/compute_pools.rb +2 -2
  347. data/lib/fog/ecloud/models/compute/cpu_usage_detail_summary.rb +2 -2
  348. data/lib/fog/ecloud/models/compute/detached_disk.rb +27 -0
  349. data/lib/fog/ecloud/models/compute/detached_disks.rb +31 -0
  350. data/lib/fog/ecloud/models/compute/environment.rb +27 -20
  351. data/lib/fog/ecloud/models/compute/environments.rb +2 -2
  352. data/lib/fog/ecloud/models/compute/firewall_acl.rb +1 -1
  353. data/lib/fog/ecloud/models/compute/firewall_acls.rb +2 -2
  354. data/lib/fog/ecloud/models/compute/group.rb +8 -6
  355. data/lib/fog/ecloud/models/compute/groups.rb +17 -6
  356. data/lib/fog/ecloud/models/compute/guest_processes.rb +2 -2
  357. data/lib/fog/ecloud/models/compute/hardware_configuration.rb +4 -4
  358. data/lib/fog/ecloud/models/compute/hardware_configurations.rb +2 -2
  359. data/lib/fog/ecloud/models/compute/internet_service.rb +35 -29
  360. data/lib/fog/ecloud/models/compute/internet_services.rb +11 -8
  361. data/lib/fog/ecloud/models/compute/ip_address.rb +17 -3
  362. data/lib/fog/ecloud/models/compute/ip_addresses.rb +7 -2
  363. data/lib/fog/ecloud/models/compute/layout.rb +1 -1
  364. data/lib/fog/ecloud/models/compute/layouts.rb +2 -2
  365. data/lib/fog/ecloud/models/compute/location.rb +1 -1
  366. data/lib/fog/ecloud/models/compute/locations.rb +2 -2
  367. data/lib/fog/ecloud/models/compute/login_banners.rb +2 -2
  368. data/lib/fog/ecloud/models/compute/memory_usage_detail_summary.rb +2 -2
  369. data/lib/fog/ecloud/models/compute/monitor.rb +4 -4
  370. data/lib/fog/ecloud/models/compute/monitors.rb +2 -2
  371. data/lib/fog/ecloud/models/compute/network.rb +22 -12
  372. data/lib/fog/ecloud/models/compute/networks.rb +9 -5
  373. data/lib/fog/ecloud/models/compute/node.rb +12 -6
  374. data/lib/fog/ecloud/models/compute/nodes.rb +7 -4
  375. data/lib/fog/ecloud/models/compute/operating_system_families.rb +2 -2
  376. data/lib/fog/ecloud/models/compute/operating_system_family.rb +1 -1
  377. data/lib/fog/ecloud/models/compute/operating_systems.rb +1 -1
  378. data/lib/fog/ecloud/models/compute/organization.rb +17 -17
  379. data/lib/fog/ecloud/models/compute/organizations.rb +3 -3
  380. data/lib/fog/ecloud/models/compute/password_complexity_rules.rb +2 -2
  381. data/lib/fog/ecloud/models/compute/physical_devices.rb +2 -2
  382. data/lib/fog/ecloud/models/compute/public_ip.rb +2 -2
  383. data/lib/fog/ecloud/models/compute/public_ips.rb +8 -5
  384. data/lib/fog/ecloud/models/compute/rnat.rb +2 -2
  385. data/lib/fog/ecloud/models/compute/rnats.rb +2 -2
  386. data/lib/fog/ecloud/models/compute/roles.rb +2 -2
  387. data/lib/fog/ecloud/models/compute/row.rb +10 -7
  388. data/lib/fog/ecloud/models/compute/rows.rb +9 -6
  389. data/lib/fog/ecloud/models/compute/server.rb +139 -93
  390. data/lib/fog/ecloud/models/compute/server_configuration_options.rb +2 -2
  391. data/lib/fog/ecloud/models/compute/servers.rb +18 -15
  392. data/lib/fog/ecloud/models/compute/ssh_key.rb +1 -1
  393. data/lib/fog/ecloud/models/compute/ssh_keys.rb +2 -2
  394. data/lib/fog/ecloud/models/compute/storage_usage_detail_summary.rb +2 -2
  395. data/lib/fog/ecloud/models/compute/support_tickets.rb +2 -2
  396. data/lib/fog/ecloud/models/compute/tags.rb +2 -2
  397. data/lib/fog/ecloud/models/compute/task.rb +3 -0
  398. data/lib/fog/ecloud/models/compute/tasks.rb +3 -3
  399. data/lib/fog/ecloud/models/compute/template.rb +8 -9
  400. data/lib/fog/ecloud/models/compute/templates.rb +2 -2
  401. data/lib/fog/ecloud/models/compute/trusted_network_group.rb +5 -5
  402. data/lib/fog/ecloud/models/compute/trusted_network_groups.rb +2 -2
  403. data/lib/fog/ecloud/models/compute/user.rb +2 -2
  404. data/lib/fog/ecloud/models/compute/users.rb +2 -2
  405. data/lib/fog/ecloud/models/compute/virtual_machine_assigned_ip.rb +32 -0
  406. data/lib/fog/ecloud/models/compute/virtual_machine_assigned_ips.rb +27 -0
  407. data/lib/fog/ecloud/requests/compute/admin_edit_authentication_levels.rb +1 -2
  408. data/lib/fog/ecloud/requests/compute/get_admin_organization.rb +14 -0
  409. data/lib/fog/ecloud/requests/compute/get_compute_pool.rb +11 -0
  410. data/lib/fog/ecloud/requests/compute/get_compute_pools.rb +21 -0
  411. data/lib/fog/ecloud/requests/compute/get_detached_disk.rb +21 -0
  412. data/lib/fog/ecloud/requests/compute/get_detached_disks.rb +33 -0
  413. data/lib/fog/ecloud/requests/compute/get_environment.rb +21 -0
  414. data/lib/fog/ecloud/requests/compute/get_group.rb +8 -1
  415. data/lib/fog/ecloud/requests/compute/get_groups.rb +8 -1
  416. data/lib/fog/ecloud/requests/compute/get_hardware_configuration.rb +19 -0
  417. data/lib/fog/ecloud/requests/compute/get_hardware_configurations.rb +4 -0
  418. data/lib/fog/ecloud/requests/compute/get_internet_service.rb +12 -0
  419. data/lib/fog/ecloud/requests/compute/get_internet_services.rb +8 -0
  420. data/lib/fog/ecloud/requests/compute/get_ip_address.rb +11 -0
  421. data/lib/fog/ecloud/requests/compute/get_layout.rb +8 -1
  422. data/lib/fog/ecloud/requests/compute/get_layouts.rb +8 -1
  423. data/lib/fog/ecloud/requests/compute/get_network.rb +11 -0
  424. data/lib/fog/ecloud/requests/compute/get_networks.rb +20 -0
  425. data/lib/fog/ecloud/requests/compute/get_node.rb +11 -0
  426. data/lib/fog/ecloud/requests/compute/get_nodes.rb +9 -0
  427. data/lib/fog/ecloud/requests/compute/get_operating_system.rb +14 -0
  428. data/lib/fog/ecloud/requests/compute/get_operating_system_families.rb +20 -0
  429. data/lib/fog/ecloud/requests/compute/get_organization.rb +14 -0
  430. data/lib/fog/ecloud/requests/compute/get_organizations.rb +14 -2
  431. data/lib/fog/ecloud/requests/compute/get_public_ip.rb +11 -1
  432. data/lib/fog/ecloud/requests/compute/get_public_ips.rb +22 -0
  433. data/lib/fog/ecloud/requests/compute/get_row.rb +8 -1
  434. data/lib/fog/ecloud/requests/compute/get_rows.rb +2 -1
  435. data/lib/fog/ecloud/requests/compute/get_server.rb +11 -0
  436. data/lib/fog/ecloud/requests/compute/get_servers.rb +32 -1
  437. data/lib/fog/ecloud/requests/compute/get_ssh_key.rb +11 -0
  438. data/lib/fog/ecloud/requests/compute/get_ssh_keys.rb +20 -0
  439. data/lib/fog/ecloud/requests/compute/get_task.rb +4 -2
  440. data/lib/fog/ecloud/requests/compute/get_template.rb +11 -0
  441. data/lib/fog/ecloud/requests/compute/get_templates.rb +38 -0
  442. data/lib/fog/ecloud/requests/compute/get_virtual_machine_assigned_ips.rb +44 -0
  443. data/lib/fog/ecloud/requests/compute/groups_delete.rb +16 -1
  444. data/lib/fog/ecloud/requests/compute/internet_service_create.rb +36 -1
  445. data/lib/fog/ecloud/requests/compute/internet_service_delete.rb +23 -0
  446. data/lib/fog/ecloud/requests/compute/node_service_create.rb +49 -1
  447. data/lib/fog/ecloud/requests/compute/node_service_delete.rb +24 -0
  448. data/lib/fog/ecloud/requests/compute/rows_delete.rb +11 -1
  449. data/lib/fog/ecloud/requests/compute/virtual_machine_attach_disk.rb +62 -0
  450. data/lib/fog/ecloud/requests/compute/virtual_machine_create_from_template.rb +136 -16
  451. data/lib/fog/ecloud/requests/compute/virtual_machine_delete.rb +36 -1
  452. data/lib/fog/ecloud/requests/compute/virtual_machine_detach_disk.rb +71 -0
  453. data/lib/fog/ecloud/requests/compute/virtual_machine_edit_assigned_ips.rb +82 -0
  454. data/lib/fog/ecloud/requests/compute/virtual_machine_edit_hardware_configuration.rb +27 -3
  455. data/lib/fog/ecloud/requests/compute/virtual_machine_import.rb +120 -6
  456. data/lib/fog/glesys/models/compute/ip.rb +7 -7
  457. data/lib/fog/glesys/models/compute/ips.rb +7 -7
  458. data/lib/fog/glesys/models/compute/server.rb +6 -6
  459. data/lib/fog/glesys/models/compute/servers.rb +4 -4
  460. data/lib/fog/glesys/models/compute/template.rb +1 -1
  461. data/lib/fog/glesys/models/compute/templates.rb +2 -2
  462. data/lib/fog/go_grid/models/compute/image.rb +3 -3
  463. data/lib/fog/go_grid/models/compute/images.rb +2 -2
  464. data/lib/fog/go_grid/models/compute/password.rb +5 -5
  465. data/lib/fog/go_grid/models/compute/passwords.rb +3 -3
  466. data/lib/fog/go_grid/models/compute/server.rb +4 -4
  467. data/lib/fog/go_grid/models/compute/servers.rb +2 -2
  468. data/lib/fog/google/models/storage/directories.rb +2 -2
  469. data/lib/fog/google/models/storage/directory.rb +4 -4
  470. data/lib/fog/google/models/storage/file.rb +5 -5
  471. data/lib/fog/google/models/storage/files.rb +4 -4
  472. data/lib/fog/google/storage.rb +13 -2
  473. data/lib/fog/hp.rb +6 -3
  474. data/lib/fog/hp/models/compute/address.rb +8 -8
  475. data/lib/fog/hp/models/compute/addresses.rb +2 -2
  476. data/lib/fog/hp/models/compute/flavors.rb +2 -2
  477. data/lib/fog/hp/models/compute/image.rb +2 -2
  478. data/lib/fog/hp/models/compute/images.rb +2 -2
  479. data/lib/fog/hp/models/compute/key_pair.rb +3 -3
  480. data/lib/fog/hp/models/compute/key_pairs.rb +2 -2
  481. data/lib/fog/hp/models/compute/security_group.rb +4 -4
  482. data/lib/fog/hp/models/compute/security_groups.rb +3 -3
  483. data/lib/fog/hp/models/compute/server.rb +15 -15
  484. data/lib/fog/hp/models/compute/servers.rb +2 -2
  485. data/lib/fog/hp/models/storage/directories.rb +3 -3
  486. data/lib/fog/hp/models/storage/directory.rb +18 -18
  487. data/lib/fog/hp/models/storage/file.rb +4 -4
  488. data/lib/fog/hp/models/storage/files.rb +2 -2
  489. data/lib/fog/ibm/models/compute/address.rb +2 -2
  490. data/lib/fog/ibm/models/compute/addresses.rb +2 -2
  491. data/lib/fog/ibm/models/compute/image.rb +3 -3
  492. data/lib/fog/ibm/models/compute/images.rb +2 -2
  493. data/lib/fog/ibm/models/compute/key.rb +2 -2
  494. data/lib/fog/ibm/models/compute/keys.rb +3 -3
  495. data/lib/fog/ibm/models/compute/locations.rb +2 -2
  496. data/lib/fog/ibm/models/compute/server.rb +12 -12
  497. data/lib/fog/ibm/models/compute/servers.rb +2 -2
  498. data/lib/fog/ibm/models/compute/vlans.rb +2 -2
  499. data/lib/fog/ibm/models/storage/offerings.rb +1 -1
  500. data/lib/fog/ibm/models/storage/volume.rb +5 -5
  501. data/lib/fog/ibm/models/storage/volumes.rb +2 -2
  502. data/lib/fog/joyent/models/compute/flavors.rb +2 -2
  503. data/lib/fog/joyent/models/compute/images.rb +2 -2
  504. data/lib/fog/joyent/models/compute/key.rb +1 -1
  505. data/lib/fog/joyent/models/compute/keys.rb +3 -3
  506. data/lib/fog/joyent/models/compute/server.rb +13 -13
  507. data/lib/fog/joyent/models/compute/servers.rb +3 -3
  508. data/lib/fog/joyent/models/compute/snapshot.rb +4 -4
  509. data/lib/fog/joyent/models/compute/snapshots.rb +3 -3
  510. data/lib/fog/libvirt/compute.rb +6 -1
  511. data/lib/fog/libvirt/models/compute/interface.rb +1 -1
  512. data/lib/fog/libvirt/models/compute/interfaces.rb +1 -1
  513. data/lib/fog/libvirt/models/compute/network.rb +1 -1
  514. data/lib/fog/libvirt/models/compute/networks.rb +1 -1
  515. data/lib/fog/libvirt/models/compute/nic.rb +2 -2
  516. data/lib/fog/libvirt/models/compute/nodes.rb +1 -1
  517. data/lib/fog/libvirt/models/compute/pool.rb +7 -7
  518. data/lib/fog/libvirt/models/compute/pools.rb +1 -1
  519. data/lib/fog/libvirt/models/compute/server.rb +29 -28
  520. data/lib/fog/libvirt/models/compute/servers.rb +2 -2
  521. data/lib/fog/libvirt/models/compute/volume.rb +5 -5
  522. data/lib/fog/libvirt/models/compute/volumes.rb +1 -1
  523. data/lib/fog/libvirt/requests/compute/list_domains.rb +2 -2
  524. data/lib/fog/linode/models/compute/data_centers.rb +2 -2
  525. data/lib/fog/linode/models/compute/disk.rb +7 -7
  526. data/lib/fog/linode/models/compute/disks.rb +2 -2
  527. data/lib/fog/linode/models/compute/flavors.rb +2 -2
  528. data/lib/fog/linode/models/compute/images.rb +2 -2
  529. data/lib/fog/linode/models/compute/ip.rb +3 -3
  530. data/lib/fog/linode/models/compute/ips.rb +2 -2
  531. data/lib/fog/linode/models/compute/kernels.rb +2 -2
  532. data/lib/fog/linode/models/compute/server.rb +13 -13
  533. data/lib/fog/linode/models/compute/servers.rb +2 -2
  534. data/lib/fog/linode/models/compute/stack_scripts.rb +3 -3
  535. data/lib/fog/linode/models/dns/record.rb +6 -6
  536. data/lib/fog/linode/models/dns/records.rb +2 -2
  537. data/lib/fog/linode/models/dns/zone.rb +6 -6
  538. data/lib/fog/linode/models/dns/zones.rb +2 -2
  539. data/lib/fog/local/models/storage/directories.rb +3 -3
  540. data/lib/fog/local/models/storage/directory.rb +2 -2
  541. data/lib/fog/local/models/storage/file.rb +6 -6
  542. data/lib/fog/local/models/storage/files.rb +2 -2
  543. data/lib/fog/ninefold/models/compute/address.rb +5 -5
  544. data/lib/fog/ninefold/models/compute/addresses.rb +2 -2
  545. data/lib/fog/ninefold/models/compute/flavors.rb +2 -2
  546. data/lib/fog/ninefold/models/compute/images.rb +2 -2
  547. data/lib/fog/ninefold/models/compute/ip_forwarding_rule.rb +3 -3
  548. data/lib/fog/ninefold/models/compute/ip_forwarding_rules.rb +2 -2
  549. data/lib/fog/ninefold/models/compute/server.rb +9 -9
  550. data/lib/fog/ninefold/models/compute/servers.rb +2 -2
  551. data/lib/fog/openstack.rb +89 -65
  552. data/lib/fog/openstack/README.identity.md +69 -0
  553. data/lib/fog/openstack/compute.rb +71 -41
  554. data/lib/fog/openstack/identity.rb +43 -22
  555. data/lib/fog/openstack/image.rb +11 -5
  556. data/lib/fog/openstack/models/compute/address.rb +8 -8
  557. data/lib/fog/openstack/models/compute/addresses.rb +3 -3
  558. data/lib/fog/openstack/models/compute/flavor.rb +9 -4
  559. data/lib/fog/openstack/models/compute/flavors.rb +2 -2
  560. data/lib/fog/openstack/models/compute/host.rb +3 -2
  561. data/lib/fog/openstack/models/compute/hosts.rb +2 -2
  562. data/lib/fog/openstack/models/compute/image.rb +4 -3
  563. data/lib/fog/openstack/models/compute/images.rb +2 -2
  564. data/lib/fog/openstack/models/compute/key_pair.rb +3 -3
  565. data/lib/fog/openstack/models/compute/key_pairs.rb +1 -1
  566. data/lib/fog/openstack/models/compute/metadata.rb +4 -4
  567. data/lib/fog/openstack/models/compute/metadatum.rb +2 -2
  568. data/lib/fog/openstack/models/compute/security_group.rb +5 -5
  569. data/lib/fog/openstack/models/compute/security_groups.rb +2 -2
  570. data/lib/fog/openstack/models/compute/server.rb +41 -27
  571. data/lib/fog/openstack/models/compute/servers.rb +2 -2
  572. data/lib/fog/openstack/models/compute/snapshot.rb +4 -3
  573. data/lib/fog/openstack/models/compute/snapshots.rb +2 -2
  574. data/lib/fog/openstack/models/compute/tenant.rb +1 -1
  575. data/lib/fog/openstack/models/compute/tenants.rb +7 -3
  576. data/lib/fog/openstack/models/compute/volume.rb +6 -5
  577. data/lib/fog/openstack/models/compute/volumes.rb +2 -2
  578. data/lib/fog/openstack/models/identity/ec2_credential.rb +44 -0
  579. data/lib/fog/openstack/models/identity/ec2_credentials.rb +53 -0
  580. data/lib/fog/openstack/models/identity/role.rb +4 -4
  581. data/lib/fog/openstack/models/identity/roles.rb +2 -2
  582. data/lib/fog/openstack/models/identity/tenant.rb +7 -7
  583. data/lib/fog/openstack/models/identity/tenants.rb +3 -3
  584. data/lib/fog/openstack/models/identity/user.rb +12 -6
  585. data/lib/fog/openstack/models/identity/users.rb +4 -5
  586. data/lib/fog/openstack/models/image/image.rb +10 -9
  587. data/lib/fog/openstack/models/image/images.rb +6 -6
  588. data/lib/fog/openstack/models/network/network.rb +6 -5
  589. data/lib/fog/openstack/models/network/networks.rb +3 -3
  590. data/lib/fog/openstack/models/network/port.rb +6 -5
  591. data/lib/fog/openstack/models/network/ports.rb +3 -3
  592. data/lib/fog/openstack/models/network/subnet.rb +6 -5
  593. data/lib/fog/openstack/models/network/subnets.rb +3 -3
  594. data/lib/fog/openstack/models/volume/volume.rb +4 -3
  595. data/lib/fog/openstack/models/volume/volumes.rb +2 -2
  596. data/lib/fog/openstack/network.rb +5 -3
  597. data/lib/fog/openstack/requests/compute/create_flavor.rb +4 -1
  598. data/lib/fog/openstack/requests/compute/create_security_group.rb +3 -2
  599. data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +1 -0
  600. data/lib/fog/openstack/requests/compute/create_server.rb +54 -7
  601. data/lib/fog/openstack/requests/compute/delete_security_group.rb +2 -0
  602. data/lib/fog/openstack/requests/compute/get_limits.rb +93 -0
  603. data/lib/fog/openstack/requests/compute/list_security_groups.rb +17 -41
  604. data/lib/fog/openstack/requests/compute/list_tenants.rb +1 -0
  605. data/lib/fog/openstack/requests/compute/release_address.rb +13 -1
  606. data/lib/fog/openstack/requests/compute/reset_server_state.rb +24 -0
  607. data/lib/fog/openstack/requests/identity/add_user_to_tenant.rb +7 -2
  608. data/lib/fog/openstack/requests/identity/create_ec2_credential.rb +58 -0
  609. data/lib/fog/openstack/requests/identity/create_role.rb +1 -1
  610. data/lib/fog/openstack/requests/identity/create_tenant.rb +1 -3
  611. data/lib/fog/openstack/requests/identity/delete_ec2_credential.rb +44 -0
  612. data/lib/fog/openstack/requests/identity/get_ec2_credential.rb +49 -0
  613. data/lib/fog/openstack/requests/identity/get_user_by_name.rb +8 -0
  614. data/lib/fog/openstack/requests/identity/list_ec2_credentials.rb +44 -0
  615. data/lib/fog/openstack/requests/identity/list_roles_for_user_on_tenant.rb +7 -1
  616. data/lib/fog/openstack/requests/identity/list_users.rb +10 -1
  617. data/lib/fog/openstack/requests/identity/set_tenant.rb +21 -0
  618. data/lib/fog/openstack/requests/identity/update_tenant.rb +1 -3
  619. data/lib/fog/openstack/requests/image/create_image.rb +3 -1
  620. data/lib/fog/openstack/volume.rb +6 -3
  621. data/lib/fog/ovirt/models/compute/cluster.rb +1 -1
  622. data/lib/fog/ovirt/models/compute/clusters.rb +2 -2
  623. data/lib/fog/ovirt/models/compute/interfaces.rb +3 -3
  624. data/lib/fog/ovirt/models/compute/server.rb +15 -15
  625. data/lib/fog/ovirt/models/compute/servers.rb +2 -2
  626. data/lib/fog/ovirt/models/compute/template.rb +5 -5
  627. data/lib/fog/ovirt/models/compute/templates.rb +2 -2
  628. data/lib/fog/ovirt/models/compute/volumes.rb +3 -3
  629. data/lib/fog/rackspace.rb +20 -11
  630. data/lib/fog/rackspace/block_storage.rb +1 -0
  631. data/lib/fog/rackspace/compute_v2.rb +10 -0
  632. data/lib/fog/rackspace/load_balancers.rb +2 -0
  633. data/lib/fog/rackspace/models/block_storage/snapshot.rb +3 -2
  634. data/lib/fog/rackspace/models/block_storage/snapshots.rb +2 -2
  635. data/lib/fog/rackspace/models/block_storage/volume.rb +9 -3
  636. data/lib/fog/rackspace/models/block_storage/volume_types.rb +3 -3
  637. data/lib/fog/rackspace/models/block_storage/volumes.rb +2 -2
  638. data/lib/fog/rackspace/models/compute/flavors.rb +2 -2
  639. data/lib/fog/rackspace/models/compute/image.rb +3 -3
  640. data/lib/fog/rackspace/models/compute/images.rb +2 -2
  641. data/lib/fog/rackspace/models/compute/server.rb +7 -7
  642. data/lib/fog/rackspace/models/compute/servers.rb +2 -2
  643. data/lib/fog/rackspace/models/compute_v2/attachment.rb +2 -2
  644. data/lib/fog/rackspace/models/compute_v2/attachments.rb +2 -2
  645. data/lib/fog/rackspace/models/compute_v2/flavors.rb +2 -2
  646. data/lib/fog/rackspace/models/compute_v2/image.rb +9 -0
  647. data/lib/fog/rackspace/models/compute_v2/images.rb +2 -2
  648. data/lib/fog/rackspace/models/compute_v2/server.rb +47 -14
  649. data/lib/fog/rackspace/models/compute_v2/servers.rb +10 -2
  650. data/lib/fog/rackspace/models/databases/database.rb +2 -2
  651. data/lib/fog/rackspace/models/databases/databases.rb +1 -1
  652. data/lib/fog/rackspace/models/databases/flavors.rb +2 -2
  653. data/lib/fog/rackspace/models/databases/instance.rb +10 -10
  654. data/lib/fog/rackspace/models/databases/instances.rb +2 -2
  655. data/lib/fog/rackspace/models/databases/user.rb +2 -2
  656. data/lib/fog/rackspace/models/databases/users.rb +1 -1
  657. data/lib/fog/rackspace/models/dns/callback.rb +1 -1
  658. data/lib/fog/rackspace/models/dns/record.rb +23 -5
  659. data/lib/fog/rackspace/models/dns/records.rb +2 -2
  660. data/lib/fog/rackspace/models/dns/zone.rb +5 -5
  661. data/lib/fog/rackspace/models/dns/zones.rb +2 -2
  662. data/lib/fog/rackspace/models/identity/credentials.rb +1 -1
  663. data/lib/fog/rackspace/models/identity/roles.rb +1 -1
  664. data/lib/fog/rackspace/models/identity/tenants.rb +1 -1
  665. data/lib/fog/rackspace/models/identity/user.rb +6 -6
  666. data/lib/fog/rackspace/models/identity/users.rb +3 -3
  667. data/lib/fog/rackspace/models/load_balancers/access_rule.rb +4 -4
  668. data/lib/fog/rackspace/models/load_balancers/access_rules.rb +1 -1
  669. data/lib/fog/rackspace/models/load_balancers/load_balancer.rb +45 -27
  670. data/lib/fog/rackspace/models/load_balancers/load_balancers.rb +2 -2
  671. data/lib/fog/rackspace/models/load_balancers/node.rb +4 -4
  672. data/lib/fog/rackspace/models/load_balancers/nodes.rb +2 -2
  673. data/lib/fog/rackspace/models/load_balancers/virtual_ip.rb +3 -3
  674. data/lib/fog/rackspace/models/load_balancers/virtual_ips.rb +1 -1
  675. data/lib/fog/rackspace/models/storage/directories.rb +2 -2
  676. data/lib/fog/rackspace/models/storage/directory.rb +12 -12
  677. data/lib/fog/rackspace/models/storage/file.rb +71 -5
  678. data/lib/fog/rackspace/models/storage/files.rb +2 -2
  679. data/lib/fog/rackspace/requests/compute_v2/create_image.rb +41 -0
  680. data/lib/fog/rackspace/requests/compute_v2/create_server.rb +3 -0
  681. data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +31 -0
  682. data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +34 -0
  683. data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +36 -0
  684. data/lib/fog/rackspace/requests/dns/add_records.rb +5 -1
  685. data/lib/fog/rackspace/requests/load_balancers/get_content_caching.rb +15 -0
  686. data/lib/fog/rackspace/requests/load_balancers/set_content_caching.rb +21 -0
  687. data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +1 -1
  688. data/lib/fog/serverlove/models/compute/image.rb +11 -11
  689. data/lib/fog/serverlove/models/compute/images.rb +2 -2
  690. data/lib/fog/serverlove/models/compute/server.rb +10 -10
  691. data/lib/fog/serverlove/models/compute/servers.rb +2 -2
  692. data/lib/fog/storm_on_demand/models/compute/balancer.rb +7 -7
  693. data/lib/fog/storm_on_demand/models/compute/balancers.rb +1 -1
  694. data/lib/fog/storm_on_demand/models/compute/configs.rb +1 -1
  695. data/lib/fog/storm_on_demand/models/compute/images.rb +1 -1
  696. data/lib/fog/storm_on_demand/models/compute/private_ips.rb +2 -2
  697. data/lib/fog/storm_on_demand/models/compute/server.rb +5 -5
  698. data/lib/fog/storm_on_demand/models/compute/servers.rb +2 -2
  699. data/lib/fog/storm_on_demand/models/compute/stats.rb +1 -1
  700. data/lib/fog/storm_on_demand/models/compute/templates.rb +1 -1
  701. data/lib/fog/terremark/models/shared/address.rb +1 -1
  702. data/lib/fog/terremark/models/shared/addresses.rb +5 -5
  703. data/lib/fog/terremark/models/shared/images.rb +5 -5
  704. data/lib/fog/terremark/models/shared/internetservice.rb +6 -6
  705. data/lib/fog/terremark/models/shared/internetservices.rb +5 -5
  706. data/lib/fog/terremark/models/shared/network.rb +1 -1
  707. data/lib/fog/terremark/models/shared/networks.rb +6 -6
  708. data/lib/fog/terremark/models/shared/nodeservice.rb +3 -3
  709. data/lib/fog/terremark/models/shared/nodeservices.rb +4 -4
  710. data/lib/fog/terremark/models/shared/server.rb +17 -17
  711. data/lib/fog/terremark/models/shared/servers.rb +6 -6
  712. data/lib/fog/terremark/models/shared/task.rb +4 -4
  713. data/lib/fog/terremark/models/shared/tasks.rb +5 -5
  714. data/lib/fog/terremark/models/shared/vdc.rb +4 -4
  715. data/lib/fog/terremark/models/shared/vdcs.rb +5 -5
  716. data/lib/fog/terremark/parser.rb +1 -1
  717. data/lib/fog/terremark/shared.rb +1 -1
  718. data/lib/fog/vcloud/compute.rb +4 -4
  719. data/lib/fog/vcloud/models/compute/catalog.rb +1 -1
  720. data/lib/fog/vcloud/models/compute/catalog_item.rb +1 -1
  721. data/lib/fog/vcloud/models/compute/catalog_items.rb +4 -4
  722. data/lib/fog/vcloud/models/compute/catalogs.rb +3 -3
  723. data/lib/fog/vcloud/models/compute/ip.rb +1 -1
  724. data/lib/fog/vcloud/models/compute/ips.rb +3 -3
  725. data/lib/fog/vcloud/models/compute/network.rb +1 -1
  726. data/lib/fog/vcloud/models/compute/networks.rb +6 -6
  727. data/lib/fog/vcloud/models/compute/organization.rb +4 -4
  728. data/lib/fog/vcloud/models/compute/organizations.rb +4 -4
  729. data/lib/fog/vcloud/models/compute/server.rb +13 -13
  730. data/lib/fog/vcloud/models/compute/servers.rb +4 -4
  731. data/lib/fog/vcloud/models/compute/tasks.rb +3 -3
  732. data/lib/fog/vcloud/models/compute/vapp.rb +2 -2
  733. data/lib/fog/vcloud/models/compute/vapps.rb +2 -2
  734. data/lib/fog/vcloud/models/compute/vdc.rb +2 -2
  735. data/lib/fog/vcloud/models/compute/vdcs.rb +3 -3
  736. data/lib/fog/version.rb +3 -0
  737. data/lib/fog/virtual_box/compute.rb +11 -5
  738. data/lib/fog/virtual_box/models/compute/medium.rb +2 -2
  739. data/lib/fog/virtual_box/models/compute/mediums.rb +4 -4
  740. data/lib/fog/virtual_box/models/compute/nat_engine.rb +2 -2
  741. data/lib/fog/virtual_box/models/compute/network_adapter.rb +1 -1
  742. data/lib/fog/virtual_box/models/compute/network_adapters.rb +1 -1
  743. data/lib/fog/virtual_box/models/compute/server.rb +5 -5
  744. data/lib/fog/virtual_box/models/compute/servers.rb +2 -2
  745. data/lib/fog/vmfusion/compute.rb +6 -1
  746. data/lib/fog/vmfusion/models/compute/server.rb +1 -1
  747. data/lib/fog/voxel/models/compute/images.rb +2 -2
  748. data/lib/fog/voxel/models/compute/server.rb +6 -6
  749. data/lib/fog/voxel/models/compute/servers.rb +2 -2
  750. data/lib/fog/vsphere/compute.rb +78 -9
  751. data/lib/fog/vsphere/models/compute/cluster.rb +31 -0
  752. data/lib/fog/vsphere/models/compute/clusters.rb +26 -0
  753. data/lib/fog/vsphere/models/compute/datacenter.rb +39 -0
  754. data/lib/fog/vsphere/models/compute/datacenters.rb +23 -0
  755. data/lib/fog/vsphere/models/compute/datastore.rb +24 -0
  756. data/lib/fog/vsphere/models/compute/datastores.rb +25 -0
  757. data/lib/fog/vsphere/models/compute/folder.rb +28 -0
  758. data/lib/fog/vsphere/models/compute/folders.rb +27 -0
  759. data/lib/fog/vsphere/models/compute/interface.rb +39 -0
  760. data/lib/fog/vsphere/models/compute/interfaces.rb +33 -0
  761. data/lib/fog/vsphere/models/compute/network.rb +21 -0
  762. data/lib/fog/vsphere/models/compute/networks.rb +25 -0
  763. data/lib/fog/vsphere/models/compute/resource_pool.rb +23 -0
  764. data/lib/fog/vsphere/models/compute/resource_pools.rb +26 -0
  765. data/lib/fog/vsphere/models/compute/server.rb +106 -29
  766. data/lib/fog/vsphere/models/compute/servers.rb +16 -20
  767. data/lib/fog/vsphere/models/compute/template.rb +13 -0
  768. data/lib/fog/vsphere/models/compute/templates.rb +23 -0
  769. data/lib/fog/vsphere/models/compute/volume.rb +45 -0
  770. data/lib/fog/vsphere/models/compute/volumes.rb +33 -0
  771. data/lib/fog/vsphere/requests/compute/create_folder.rb +22 -0
  772. data/lib/fog/vsphere/requests/compute/create_vm.rb +114 -0
  773. data/lib/fog/vsphere/requests/compute/get_cluster.rb +25 -0
  774. data/lib/fog/vsphere/requests/compute/get_datacenter.rb +29 -0
  775. data/lib/fog/vsphere/requests/compute/get_datastore.rb +25 -0
  776. data/lib/fog/vsphere/requests/compute/get_folder.rb +73 -0
  777. data/lib/fog/vsphere/requests/compute/get_network.rb +25 -0
  778. data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +26 -0
  779. data/lib/fog/vsphere/requests/compute/get_virtual_machine.rb +62 -0
  780. data/lib/fog/vsphere/requests/compute/list_clusters.rb +37 -0
  781. data/lib/fog/vsphere/requests/compute/list_datacenters.rb +34 -0
  782. data/lib/fog/vsphere/requests/compute/list_datastores.rb +40 -0
  783. data/lib/fog/vsphere/requests/compute/list_folders.rb +45 -0
  784. data/lib/fog/vsphere/requests/compute/list_networks.rb +38 -0
  785. data/lib/fog/vsphere/requests/compute/list_resource_pools.rb +39 -0
  786. data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +132 -166
  787. data/lib/fog/vsphere/requests/compute/list_vm_interfaces.rb +52 -0
  788. data/lib/fog/vsphere/requests/compute/list_vm_volumes.rb +51 -0
  789. data/lib/fog/vsphere/requests/compute/vm_clone.rb +134 -67
  790. data/lib/fog/vsphere/requests/compute/vm_destroy.rb +1 -8
  791. data/lib/fog/vsphere/requests/compute/vm_reconfig_hardware.rb +1 -2
  792. data/lib/fog/xenserver.rb +26 -2
  793. data/lib/fog/xenserver/compute.rb +8 -0
  794. data/lib/fog/xenserver/examples/README.md +11 -0
  795. data/lib/fog/xenserver/examples/chage_default_storage_repository.md +99 -0
  796. data/lib/fog/xenserver/examples/creating_servers.md +168 -0
  797. data/lib/fog/xenserver/examples/getting_started.md +163 -0
  798. data/lib/fog/xenserver/examples/storage_repositories.md +94 -0
  799. data/lib/fog/xenserver/models/compute/host.rb +75 -8
  800. data/lib/fog/xenserver/models/compute/host_metrics.rb +29 -0
  801. data/lib/fog/xenserver/models/compute/hosts.rb +8 -8
  802. data/lib/fog/xenserver/models/compute/network.rb +11 -11
  803. data/lib/fog/xenserver/models/compute/networks.rb +3 -3
  804. data/lib/fog/xenserver/models/compute/pbd.rb +11 -6
  805. data/lib/fog/xenserver/models/compute/pbds.rb +3 -3
  806. data/lib/fog/xenserver/models/compute/pif.rb +9 -9
  807. data/lib/fog/xenserver/models/compute/pifs.rb +3 -3
  808. data/lib/fog/xenserver/models/compute/pool.rb +30 -8
  809. data/lib/fog/xenserver/models/compute/pools.rb +3 -3
  810. data/lib/fog/xenserver/models/compute/server.rb +29 -29
  811. data/lib/fog/xenserver/models/compute/servers.rb +8 -8
  812. data/lib/fog/xenserver/models/compute/storage_repositories.rb +2 -2
  813. data/lib/fog/xenserver/models/compute/storage_repository.rb +52 -9
  814. data/lib/fog/xenserver/models/compute/vbd.rb +16 -16
  815. data/lib/fog/xenserver/models/compute/vbds.rb +3 -3
  816. data/lib/fog/xenserver/models/compute/vdi.rb +17 -17
  817. data/lib/fog/xenserver/models/compute/vdis.rb +3 -3
  818. data/lib/fog/xenserver/models/compute/vif.rb +10 -10
  819. data/lib/fog/xenserver/models/compute/vifs.rb +3 -3
  820. data/lib/fog/xenserver/requests/compute/create_sr.rb +72 -0
  821. data/lib/fog/xenserver/requests/compute/destroy_sr.rb +30 -0
  822. data/lib/fog/xenserver/requests/compute/disable_host.rb +29 -0
  823. data/lib/fog/xenserver/requests/compute/enable_host.rb +28 -0
  824. data/lib/fog/xenserver/requests/compute/reboot_host.rb +23 -0
  825. data/lib/fog/xenserver/requests/compute/shutdown_host.rb +23 -0
  826. data/lib/fog/xenserver/requests/compute/unplug_pbd.rb +25 -0
  827. data/lib/fog/zerigo/models/dns/record.rb +4 -4
  828. data/lib/fog/zerigo/models/dns/records.rb +2 -2
  829. data/lib/fog/zerigo/models/dns/zone.rb +6 -6
  830. data/lib/fog/zerigo/models/dns/zones.rb +2 -2
  831. data/lib/tasks/changelog_task.rb +98 -0
  832. data/lib/tasks/test_task.rb +46 -0
  833. data/tests/aws/models/cloud_watch/metrics_tests.rb +16 -1
  834. data/tests/aws/models/iam/users_tests.rb +16 -2
  835. data/tests/aws/requests/auto_scaling/model_tests.rb +1 -3
  836. data/tests/aws/requests/auto_scaling/notification_configuration_tests.rb +1 -0
  837. data/tests/aws/requests/auto_scaling/tag_tests.rb +1 -0
  838. data/tests/aws/requests/compute/instance_tests.rb +2 -0
  839. data/tests/aws/requests/compute/snapshot_tests.rb +19 -0
  840. data/tests/aws/requests/compute/spot_instance_tests.rb +4 -2
  841. data/tests/aws/requests/compute/volume_tests.rb +8 -0
  842. data/tests/aws/requests/storage/bucket_tests.rb +14 -0
  843. data/tests/aws/requests/storage/cors_utils_tests.rb +108 -0
  844. data/tests/aws/requests/storage/object_tests.rb +18 -1
  845. data/tests/aws/requests/storage/versioning_tests.rb +70 -0
  846. data/tests/brightbox/compute_tests.rb +96 -4
  847. data/tests/brightbox/models/compute/account_tests.rb +17 -0
  848. data/tests/brightbox/models/compute/server_tests.rb +21 -0
  849. data/tests/brightbox/oauth2_tests.rb +103 -0
  850. data/tests/brightbox/requests/compute/account_tests.rb +9 -2
  851. data/tests/brightbox/requests/compute/firewall_policy_tests.rb +33 -0
  852. data/tests/brightbox/requests/compute/firewall_rule_tests.rb +43 -0
  853. data/tests/brightbox/requests/compute/helper.rb +33 -30
  854. data/tests/brightbox/requests/compute/interface_tests.rb +18 -4
  855. data/tests/compute/helper.rb +28 -6
  856. data/tests/compute/models/flavors_tests.rb +4 -2
  857. data/tests/compute/models/server_tests.rb +5 -1
  858. data/tests/compute/models/servers_tests.rb +5 -2
  859. data/tests/core/wait_for_tests.rb +13 -0
  860. data/tests/dns/models/record_tests.rb +17 -3
  861. data/tests/ecloud/compute/models/admin_organization_tests.rb +16 -0
  862. data/tests/ecloud/compute/models/compute_pool_tests.rb +17 -0
  863. data/tests/ecloud/compute/models/detached_disk_tests.rb +26 -0
  864. data/tests/ecloud/compute/models/environment_tests.rb +23 -0
  865. data/tests/ecloud/compute/models/internet_service_tests.rb +28 -0
  866. data/tests/ecloud/compute/models/ip_address_tests.rb +19 -0
  867. data/tests/ecloud/compute/models/network_tests.rb +17 -0
  868. data/tests/ecloud/compute/models/operating_system_families_tests.rb +13 -0
  869. data/tests/ecloud/compute/models/operating_system_tests.rb +22 -0
  870. data/tests/ecloud/compute/models/organization_tests.rb +21 -0
  871. data/tests/ecloud/compute/models/public_ip_tests.rb +19 -0
  872. data/tests/ecloud/compute/models/server_tests.rb +143 -0
  873. data/tests/ecloud/compute/models/ssh_key_tests.rb +19 -0
  874. data/tests/ecloud/compute/models/template_tests.rb +20 -0
  875. data/tests/openstack/authenticate_tests.rb +142 -0
  876. data/tests/openstack/models/compute/server_tests.rb +45 -0
  877. data/tests/openstack/models/identity/ec2_credential_tests.rb +41 -0
  878. data/tests/openstack/models/identity/ec2_credentials_tests.rb +58 -0
  879. data/tests/openstack/models/identity/tenant_tests.rb +6 -0
  880. data/tests/openstack/requests/compute/address_tests.rb +20 -19
  881. data/tests/openstack/requests/compute/flavor_tests.rb +4 -2
  882. data/tests/openstack/requests/compute/helper.rb +20 -0
  883. data/tests/openstack/requests/compute/limit_tests.rb +60 -0
  884. data/tests/openstack/requests/compute/quota_tests.rb +18 -3
  885. data/tests/openstack/requests/compute/security_group_tests.rb +11 -3
  886. data/tests/openstack/requests/compute/server_tests.rb +29 -14
  887. data/tests/openstack/requests/identity/ec2_credentials_tests.rb +41 -0
  888. data/tests/openstack/requests/identity/role_tests.rb +0 -1
  889. data/tests/openstack/requests/identity/user_tests.rb +8 -0
  890. data/tests/rackspace/models/block_storage/snapshot_tests.rb +18 -11
  891. data/tests/rackspace/models/block_storage/volume_tests.rb +13 -7
  892. data/tests/rackspace/models/compute_v2/image_tests.rb +28 -0
  893. data/tests/rackspace/models/compute_v2/server_tests.rb +15 -0
  894. data/tests/rackspace/models/compute_v2/servers_tests.rb +6 -0
  895. data/tests/rackspace/models/load_balancers/load_balancer_tests.rb +17 -0
  896. data/tests/rackspace/models/storage/file_tests.rb +178 -0
  897. data/tests/rackspace/requests/compute/address_tests.rb +11 -9
  898. data/tests/rackspace/requests/compute/flavor_tests.rb +6 -5
  899. data/tests/rackspace/requests/compute/image_tests.rb +12 -10
  900. data/tests/rackspace/requests/compute/resize_tests.rb +8 -6
  901. data/tests/rackspace/requests/compute/server_tests.rb +19 -17
  902. data/tests/rackspace/requests/compute_v2/address_tests.rb +43 -0
  903. data/tests/rackspace/requests/compute_v2/image_tests.rb +38 -10
  904. data/tests/rackspace/requests/dns/helper.rb +12 -26
  905. data/tests/rackspace/requests/dns/records_tests.rb +2 -2
  906. data/tests/rackspace/requests/load_balancers/content_caching_tests.rb +25 -0
  907. data/tests/rackspace/requests/load_balancers/helper.rb +5 -1
  908. data/tests/vsphere/compute_tests.rb +3 -3
  909. data/tests/vsphere/models/compute/server_tests.rb +1 -2
  910. data/tests/vsphere/requests/compute/list_virtual_machines_tests.rb +5 -13
  911. data/tests/vsphere/requests/compute/vm_clone_tests.rb +6 -4
  912. data/tests/xenserver/models/compute/host_metrics_tests.rb +48 -0
  913. data/tests/xenserver/models/compute/host_tests.rb +20 -1
  914. data/tests/xenserver/models/compute/pbd_tests.rb +33 -1
  915. data/tests/xenserver/models/compute/pool_tests.rb +7 -1
  916. data/tests/xenserver/models/compute/storage_repository_tests.rb +52 -1
  917. data/tests/xenserver/requests/compute/create_sr_tests.rb +54 -0
  918. data/tests/xenserver/requests/compute/destroy_sr_tests.rb +46 -0
  919. data/tests/xenserver/requests/compute/disable_host_tests.rb +16 -0
  920. data/tests/xenserver/requests/compute/enable_host_tests.rb +16 -0
  921. data/tests/xenserver/requests/compute/unplug_pbd_tests.rb +48 -0
  922. metadata +312 -89
  923. data/docs/_config.yml +0 -39
  924. data/docs/_layouts/default.html +0 -111
  925. data/docs/about/contributing.markdown +0 -228
  926. data/docs/about/getting_started.markdown +0 -108
  927. data/docs/about/press.markdown +0 -52
  928. data/docs/about/structure.markdown +0 -78
  929. data/docs/about/users.markdown +0 -34
  930. data/docs/cdn/index.markdown +0 -148
  931. data/docs/compute/index.markdown +0 -122
  932. data/docs/dns/index.markdown +0 -79
  933. data/docs/index.markdown +0 -88
  934. data/docs/public/crossdomain.xml +0 -25
  935. data/docs/public/css/fog.css +0 -142
  936. data/docs/public/css/handheld.css +0 -8
  937. data/docs/public/css/style.css +0 -129
  938. data/docs/public/images/.gitignore +0 -3
  939. data/docs/public/images/engineyard.png +0 -0
  940. data/docs/public/images/fog.png +0 -0
  941. data/docs/public/js/libs/dd_belatedpng.js +0 -289
  942. data/docs/public/js/libs/dd_belatedpng.min.js +0 -13
  943. data/docs/public/js/libs/jquery-1.4.2.js +0 -6240
  944. data/docs/public/js/libs/jquery-1.4.2.min.js +0 -154
  945. data/docs/public/js/libs/modernizr-1.6.js +0 -892
  946. data/docs/public/js/libs/modernizr-1.6.min.js +0 -30
  947. data/docs/public/js/mylibs/.gitignore +0 -3
  948. data/docs/public/js/plugins.js +0 -34
  949. data/docs/public/js/profiling/config.js +0 -59
  950. data/docs/public/js/profiling/yahoo-profiling.css +0 -7
  951. data/docs/public/js/profiling/yahoo-profiling.js +0 -1028
  952. data/docs/public/js/profiling/yahoo-profiling.min.js +0 -39
  953. data/docs/public/js/script.js +0 -26
  954. data/docs/public/robots.txt +0 -5
  955. data/docs/storage/index.markdown +0 -204
  956. data/lib/fog/ecloud/requests/compute/get_admin_organizations.rb +0 -11
  957. data/lib/fog/ecloud/requests/compute/get_ip_addresses.rb +0 -11
  958. data/lib/fog/ecloud/requests/compute/get_operating_system_family.rb +0 -11
  959. data/lib/fog/ecloud/requests/compute/virtual_machine_add_ip.rb +0 -40
  960. data/lib/fog/vsphere/requests/compute/datacenters.rb +0 -34
  961. data/lib/fog/vsphere/requests/compute/find_vm_by_ref.rb +0 -41
  962. data/lib/fog/vsphere/requests/compute/vm_create.rb +0 -97
  963. data/tests/vsphere/requests/compute/find_vm_by_ref_tests.rb +0 -26
  964. data/tests/vsphere/requests/compute/vm_create_tests.rb +0 -20
@@ -10,12 +10,12 @@ module Fog
10
10
  model Fog::Compute::Bluebox::Flavor
11
11
 
12
12
  def all
13
- data = connection.get_products.body
13
+ data = service.get_products.body
14
14
  load(data)
15
15
  end
16
16
 
17
17
  def get(product_id)
18
- response = connection.get_product(product_id)
18
+ response = service.get_product(product_id)
19
19
  new(response.body)
20
20
  rescue Fog::Compute::Bluebox::NotFound
21
21
  nil
@@ -7,26 +7,26 @@ module Fog
7
7
  class Image < Fog::Model
8
8
 
9
9
  identity :id
10
-
10
+
11
11
  attribute :block_id
12
12
  attribute :description
13
13
  attribute :public
14
14
  attribute :created_at, :aliases => 'created'
15
-
15
+
16
16
  def save
17
17
  requires :block_id
18
-
19
- data = connection.create_template(block_id, attributes)
18
+
19
+ data = service.create_template(block_id, attributes)
20
20
  true
21
21
  end
22
-
22
+
23
23
  def destroy
24
24
  requires :id
25
-
26
- data = connection.destroy_template(id)
25
+
26
+ data = service.destroy_template(id)
27
27
  true
28
28
  end
29
-
29
+
30
30
  end
31
31
 
32
32
  end
@@ -10,12 +10,12 @@ module Fog
10
10
  model Fog::Compute::Bluebox::Image
11
11
 
12
12
  def all
13
- data = connection.get_templates.body
13
+ data = service.get_templates.body
14
14
  load(data)
15
15
  end
16
16
 
17
17
  def get(template_id)
18
- response = connection.get_template(template_id)
18
+ response = service.get_template(template_id)
19
19
  new(response.body)
20
20
  rescue Fog::Compute::Bluebox::NotFound
21
21
  nil
@@ -10,12 +10,12 @@ module Fog
10
10
  model Fog::Compute::Bluebox::Location
11
11
 
12
12
  def all
13
- data = connection.get_locations.body
13
+ data = service.get_locations.body
14
14
  load(data)
15
15
  end
16
16
 
17
17
  def get(location_id)
18
- response = connection.get_location(location_id)
18
+ response = service.get_location(location_id)
19
19
  new(response.body)
20
20
  rescue Fog::Compute::Bluebox::NotFound
21
21
  nil
@@ -33,23 +33,23 @@ module Fog
33
33
 
34
34
  def destroy
35
35
  requires :id
36
- connection.destroy_block(id)
36
+ service.destroy_block(id)
37
37
  true
38
38
  end
39
39
 
40
40
  def flavor
41
41
  requires :flavor_id
42
- connection.flavors.get(flavor_id)
42
+ service.flavors.get(flavor_id)
43
43
  end
44
44
 
45
45
  def image
46
46
  requires :image_id
47
- connection.images.get(image_id)
47
+ service.images.get(image_id)
48
48
  end
49
-
49
+
50
50
  def location
51
51
  requires :location_id
52
- connection.locations.get(location_id)
52
+ service.locations.get(location_id)
53
53
  end
54
54
 
55
55
  def private_ip_address
@@ -66,16 +66,16 @@ module Fog
66
66
 
67
67
  def reboot(type = 'SOFT')
68
68
  requires :id
69
- connection.reboot_block(id, type)
69
+ service.reboot_block(id, type)
70
70
  true
71
71
  end
72
72
 
73
73
  def save
74
- raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if identity
74
+ raise Fog::Errors::Error.new('Resaving an existing object may create a duplicate') if persisted?
75
75
  requires :flavor_id, :image_id, :location_id
76
76
  options = {}
77
77
 
78
- if identity.nil? # new record
78
+ unless persisted? # new record
79
79
  raise(ArgumentError, "password or public_key is required for this operation") if !password && !public_key
80
80
  options['ssh_public_key'] = public_key if public_key
81
81
  options['password'] = password if @password
@@ -88,10 +88,10 @@ module Fog
88
88
  elsif @lb_applications
89
89
  options['lb_applications'] = lb_applications
90
90
  end
91
-
91
+
92
92
  options['username'] = username
93
93
  options['hostname'] = hostname if @hostname
94
- data = connection.create_block(flavor_id, image_id, location_id, options)
94
+ data = service.create_block(flavor_id, image_id, location_id, options)
95
95
  merge_attributes(data.body)
96
96
  true
97
97
  end
@@ -10,7 +10,7 @@ module Fog
10
10
  model Fog::Compute::Bluebox::Server
11
11
 
12
12
  def all
13
- data = connection.get_blocks.body
13
+ data = service.get_blocks.body
14
14
  load(data)
15
15
  end
16
16
 
@@ -22,7 +22,7 @@ module Fog
22
22
  end
23
23
 
24
24
  def get(server_id)
25
- if server_id && server = connection.get_block(server_id).body
25
+ if server_id && server = service.get_block(server_id).body
26
26
  new(server)
27
27
  end
28
28
  rescue Fog::Compute::Bluebox::NotFound
@@ -23,7 +23,7 @@ module Fog
23
23
 
24
24
  def destroy
25
25
  requires :identity
26
- connection.delete_record(@zone.identity, identity)
26
+ service.delete_record(@zone.identity, identity)
27
27
  true
28
28
  end
29
29
 
@@ -34,9 +34,9 @@ module Fog
34
34
  def save
35
35
  requires :zone, :type, :name, :value
36
36
  data = unless identity
37
- connection.create_record(zone.identity, type, name, value)
37
+ service.create_record(zone.identity, type, name, value)
38
38
  else
39
- connection.update_record(zone.identity, identity, {:type => type, :name => name, :content => value})
39
+ service.update_record(zone.identity, identity, {:type => type, :name => name, :content => value})
40
40
  end
41
41
  merge_attributes(data.body)
42
42
  true
@@ -13,12 +13,12 @@ module Fog
13
13
 
14
14
  def all
15
15
  requires :zone
16
- data = connection.get_records(zone.identity).body['records']
16
+ data = service.get_records(zone.identity).body['records']
17
17
  load(data)
18
18
  end
19
19
 
20
20
  def get(record_id)
21
- data = connection.get_record(zone.identity, record_id).body
21
+ data = service.get_record(zone.identity, record_id).body
22
22
  new(data)
23
23
  rescue Fog::Service::NotFound
24
24
  nil
@@ -31,7 +31,7 @@ module Fog
31
31
  @records ||= begin
32
32
  Fog::DNS::Bluebox::Records.new(
33
33
  :zone => self,
34
- :connection => connection
34
+ :service => service
35
35
  )
36
36
  end
37
37
  end
@@ -46,7 +46,7 @@ module Fog
46
46
 
47
47
  def destroy
48
48
  requires :identity
49
- connection.delete_zone(identity)
49
+ service.delete_zone(identity)
50
50
  true
51
51
  end
52
52
 
@@ -54,7 +54,7 @@ module Fog
54
54
  requires :domain, :ttl
55
55
  options = attributes.dup
56
56
  options[:name] = options.delete(:domain)
57
- data = identity.nil? ? connection.create_zone(options) : connection.update_zone(identity, options)
57
+ data = identity.nil? ? service.create_zone(options) : service.update_zone(identity, options)
58
58
  merge_attributes(data.body)
59
59
  true
60
60
  end
@@ -10,12 +10,12 @@ module Fog
10
10
  model Fog::DNS::Bluebox::Zone
11
11
 
12
12
  def all
13
- data = connection.get_zones.body['zones']
13
+ data = service.get_zones.body['zones']
14
14
  load(data)
15
15
  end
16
16
 
17
17
  def get(zone_id)
18
- data = connection.get_zone(zone_id).body
18
+ data = service.get_zone(zone_id).body
19
19
  new(data)
20
20
  rescue Fog::Service::NotFound
21
21
  nil
@@ -12,7 +12,7 @@ module Fog
12
12
  # * options<~Hash>:
13
13
  # * password<~String> - Password for block
14
14
  # or
15
- # * public_key<~String> - SSH public key
15
+ # * ssh_public_key<~String> - SSH public key
16
16
  # * username<~String> - Defaults to deploy
17
17
  #
18
18
  # ==== Returns
@@ -20,7 +20,7 @@ module Fog
20
20
  # * body<~Hash>:
21
21
  def create_block(product_id, template_id, location_id, options = {})
22
22
 
23
- unless options.has_key?('password') || options.has_key?('public_key')
23
+ unless options.has_key?('password') || options.has_key?('ssh_public_key')
24
24
  raise ArgumentError, 'Either password or public_key must be supplied'
25
25
  end
26
26
 
@@ -30,14 +30,12 @@ module Fog
30
30
  'location' => location_id
31
31
  }
32
32
 
33
- body = URI.encode options.map {|k,v| "#{k}=#{v}"}.join('&')
34
-
35
33
  request(
36
34
  :expects => 200,
37
35
  :method => 'POST',
38
36
  :path => '/api/blocks.json',
39
37
  :query => query,
40
- :body => URI.encode(body)
38
+ :body => options.map {|k,v| "#{CGI.escape(k)}=#{CGI.escape(v)}"}.join('&')
41
39
  )
42
40
  end
43
41
 
@@ -1,5 +1,6 @@
1
1
  require 'fog/brightbox'
2
2
  require 'fog/compute'
3
+ require 'fog/brightbox/oauth2'
3
4
 
4
5
  module Fog
5
6
  module Compute
@@ -16,6 +17,12 @@ module Fog
16
17
  # User credentials (still requires client details)
17
18
  recognizes :brightbox_username, :brightbox_password, :brightbox_account
18
19
 
20
+ # Cached tokens
21
+ recognizes :brightbox_access_token, :brightbox_refresh_token
22
+
23
+ # Automatic token management
24
+ recognizes :brightbox_token_management
25
+
19
26
  # Excon connection settings
20
27
  recognizes :persistent
21
28
 
@@ -106,6 +113,7 @@ module Fog
106
113
  request :remove_nodes_load_balancer
107
114
  request :remove_servers_server_group
108
115
  request :reset_ftp_password_account
116
+ request :reset_ftp_password_scoped_account
109
117
  request :reset_secret_api_client
110
118
  request :reset_secret_application
111
119
  request :shutdown_server
@@ -126,6 +134,137 @@ module Fog
126
134
  request :update_user
127
135
 
128
136
  module Shared
137
+ include Fog::Brightbox::OAuth2
138
+
139
+ # Creates a new instance of the Brightbox Compute service
140
+ #
141
+ # @note If you create service using just a refresh token when it
142
+ # expires the service will no longer be able to authenticate.
143
+ #
144
+ # @param [Hash] options
145
+ # @option options [String] :brightbox_api_url Override the default (or configured) API endpoint
146
+ # @option options [String] :brightbox_auth_url Override the default (or configured) API authentication endpoint
147
+ # @option options [String] :brightbox_client_id Client identifier to authenticate with (overrides configured)
148
+ # @option options [String] :brightbox_secret Client secret to authenticate with (overrides configured)
149
+ # @option options [String] :brightbox_username Email or user identifier for user based authentication
150
+ # @option options [String] :brightbox_password Password for user based authentication
151
+ # @option options [String] :brightbox_account Account identifier to scope this connection to
152
+ # @option options [String] :connection_options Settings to pass to underlying {Fog::Connection}
153
+ # @option options [Boolean] :persistent Sets a persistent HTTP {Fog::Connection}
154
+ # @option options [String] :brightbox_access_token Sets the OAuth access token to use rather than requesting a new token
155
+ # @option options [String] :brightbox_refresh_token Sets the refresh token to use when requesting a newer access token
156
+ # @option options [String] :brightbox_token_management Overide the existing behaviour to request access tokens if expired (default is `true`)
157
+ #
158
+ def initialize(options)
159
+ # Currently authentication and api endpoints are the same but may change
160
+ @auth_url = options[:brightbox_auth_url] || Fog.credentials[:brightbox_auth_url] || API_URL
161
+ @auth_connection = Fog::Connection.new(@auth_url)
162
+
163
+ @api_url = options[:brightbox_api_url] || Fog.credentials[:brightbox_api_url] || API_URL
164
+ @connection_options = options[:connection_options] || {}
165
+ @persistent = options[:persistent] || false
166
+ @connection = Fog::Connection.new(@api_url, @persistent, @connection_options)
167
+
168
+ # Authentication options
169
+ client_id = options[:brightbox_client_id] || Fog.credentials[:brightbox_client_id]
170
+ client_secret = options[:brightbox_secret] || Fog.credentials[:brightbox_secret]
171
+
172
+ username = options[:brightbox_username] || Fog.credentials[:brightbox_username]
173
+ password = options[:brightbox_password] || Fog.credentials[:brightbox_password]
174
+ @configured_account = options[:brightbox_account] || Fog.credentials[:brightbox_account]
175
+ # Request account can be changed at anytime and changes behaviour of future requests
176
+ @scoped_account = @configured_account
177
+
178
+ credential_options = {:username => username, :password => password}
179
+ @credentials = CredentialSet.new(client_id, client_secret, credential_options)
180
+
181
+ # If existing tokens have been cached, allow continued use of them in the service
182
+ @credentials.update_tokens(options[:brightbox_access_token], options[:brightbox_refresh_token])
183
+
184
+ @token_management = options.fetch(:brightbox_token_management, true)
185
+ end
186
+
187
+ # Sets the scoped account for future requests
188
+ # @param [String] scoped_account Identifier of the account to scope request to
189
+ def scoped_account=(scoped_account)
190
+ @scoped_account = scoped_account
191
+ end
192
+
193
+ # This returns the account identifier that the request should be scoped by
194
+ # based on the options passed to the request and current configuration
195
+ #
196
+ # @param [String] options_account Any identifier passed into the request
197
+ #
198
+ # @return [String, nil] The account identifier to scope the request to or nil
199
+ def scoped_account(options_account = nil)
200
+ [options_account, @scoped_account].compact.first
201
+ end
202
+
203
+ # Resets the scoped account back to intially configured one
204
+ def scoped_account_reset
205
+ @scoped_account = @configured_account
206
+ end
207
+
208
+ # Returns the scoped account being used for requests
209
+ #
210
+ # * For API clients this is the owning account
211
+ # * For User applications this is the account specified by either +account_id+
212
+ # option on the service or the +brightbox_account+ setting in your configuration
213
+ #
214
+ # @return [Fog::Compute::Brightbox::Account]
215
+ #
216
+ def account
217
+ account_data = get_scoped_account.merge(:service => self)
218
+ Fog::Compute::Brightbox::Account.new(account_data)
219
+ end
220
+
221
+ # Returns true if authentication is being performed as a user
222
+ # @return [Boolean]
223
+ def authenticating_as_user?
224
+ @credentials.user_details?
225
+ end
226
+
227
+ # Returns true if an access token is set
228
+ # @return [Boolean]
229
+ def access_token_available?
230
+ !! @credentials.access_token
231
+ end
232
+
233
+ # Returns the current access token or nil
234
+ # @return [String,nil]
235
+ def access_token
236
+ @credentials.access_token
237
+ end
238
+
239
+ # Returns the current refresh token or nil
240
+ # @return [String,nil]
241
+ def refresh_token
242
+ @credentials.refresh_token
243
+ end
244
+
245
+ # Requests a new access token
246
+ #
247
+ # @return [String] New access token
248
+ def get_access_token
249
+ begin
250
+ get_access_token!
251
+ rescue Excon::Errors::Unauthorized, Excon::Errors::BadRequest
252
+ @credentials.update_tokens(nil, nil)
253
+ end
254
+ @credentials.access_token
255
+ end
256
+
257
+ # Requests a new access token and raises if there is a problem
258
+ #
259
+ # @return [String] New access token
260
+ # @raise [Excon::Errors::BadRequest] The credentials are expired or incorrect
261
+ #
262
+ def get_access_token!
263
+ response = request_access_token(@auth_connection, @credentials)
264
+ update_credentials_from_response(@credentials, response)
265
+ @credentials.access_token
266
+ end
267
+
129
268
  # Returns an identifier for the default image for use
130
269
  #
131
270
  # Currently tries to find the latest version Ubuntu LTS (i686) widening
@@ -139,120 +278,183 @@ module Fog
139
278
  return @default_image_id unless @default_image_id.nil?
140
279
  @default_image_id = Fog.credentials[:brightbox_default_image] || select_default_image
141
280
  end
281
+
282
+ private
283
+
284
+ # This makes a request of the API based on the configured setting for
285
+ # token management.
286
+ #
287
+ # @param [Hash] options Excon compatible options
288
+ # @see https://github.com/geemus/excon/blob/master/lib/excon/connection.rb
289
+ #
290
+ # @return [Hash] Data of response body
291
+ #
292
+ def make_request(options)
293
+ if @token_management
294
+ managed_token_request(options)
295
+ else
296
+ authenticated_request(options)
297
+ end
298
+ end
299
+
300
+ # This request checks for access tokens and will ask for a new one if
301
+ # it receives Unauthorized from the API before repeating the request
302
+ #
303
+ # @param [Hash] options Excon compatible options
304
+ #
305
+ # @return [Excon::Response]
306
+ def managed_token_request(options)
307
+ begin
308
+ get_access_token unless access_token_available?
309
+ response = authenticated_request(options)
310
+ rescue Excon::Errors::Unauthorized
311
+ get_access_token
312
+ response = authenticated_request(options)
313
+ end
314
+ end
315
+
316
+ # This request makes an authenticated request of the API using currently
317
+ # setup credentials.
318
+ #
319
+ # @param [Hash] options Excon compatible options
320
+ #
321
+ # @see https://github.com/geemus/excon/blob/master/lib/excon/connection.rb
322
+ #
323
+ # @return [Excon::Response]
324
+ def authenticated_request(options)
325
+ headers = options[:headers] || {}
326
+ headers.merge!("Authorization" => "OAuth #{@credentials.access_token}", "Content-Type" => "application/json")
327
+ options[:headers] = headers
328
+ # TODO This is just a wrapper around a call to Excon::Connection#request
329
+ # so can be extracted from Compute by passing in the connection,
330
+ # credentials and options
331
+ @connection.request(options)
332
+ end
142
333
  end
143
334
 
335
+ # The Mock Service allows you to run a fake instance of the Service
336
+ # which makes no real connections.
337
+ #
338
+ # @todo Implement
339
+ #
144
340
  class Mock
145
341
  include Shared
146
342
 
147
- def initialize(options)
148
- @brightbox_client_id = options[:brightbox_client_id] || Fog.credentials[:brightbox_client_id]
149
- @brightbox_secret = options[:brightbox_secret] || Fog.credentials[:brightbox_secret]
343
+ def request(method, path, expected_responses, parameters = {})
344
+ _request
150
345
  end
151
346
 
152
- def request(options)
153
- raise "Not implemented"
347
+ def request_access_token(connection, credentials)
348
+ _request
154
349
  end
155
350
 
156
351
  private
352
+
353
+ def _request
354
+ raise Fog::Errors::MockNotImplemented
355
+ end
356
+
157
357
  def select_default_image
158
358
  "img-mockd"
159
359
  end
160
360
  end
161
361
 
362
+ # The Real Service actually makes real connections to the Brightbox
363
+ # service.
364
+ #
162
365
  class Real
163
366
  include Shared
164
367
 
165
- def initialize(options)
166
- # Currently authentication and api endpoints are the same but may change
167
- @auth_url = options[:brightbox_auth_url] || Fog.credentials[:brightbox_auth_url] || API_URL
168
- @api_url = options[:brightbox_api_url] || Fog.credentials[:brightbox_api_url] || API_URL
169
- @connection_options = options[:connection_options] || {}
170
- @brightbox_client_id = options[:brightbox_client_id] || Fog.credentials[:brightbox_client_id]
171
- @brightbox_secret = options[:brightbox_secret] || Fog.credentials[:brightbox_secret]
172
- @brightbox_username = options[:brightbox_username] || Fog.credentials[:brightbox_username]
173
- @brightbox_password = options[:brightbox_password] || Fog.credentials[:brightbox_password]
174
- @brightbox_account = options[:brightbox_account] || Fog.credentials[:brightbox_account]
175
- @persistent = options[:persistent] || false
176
- @connection = Fog::Connection.new(@api_url, @persistent, @connection_options)
177
- end
178
-
179
- def request(method, url, expected_responses, options = {})
180
- request_options = {
181
- :method => method.to_s.upcase,
182
- :path => url,
183
- :expects => expected_responses
184
- }
185
- options[:account_id] = @brightbox_account if options[:account_id].nil? && @brightbox_account
186
- request_options[:body] = Fog::JSON.encode(options) unless options.empty?
187
- make_request(request_options)
368
+ # Makes an API request to the given path using passed options or those
369
+ # set with the service setup
370
+ #
371
+ # @todo Standard Fog behaviour is to return the Excon::Response but
372
+ # this was unintentionally changed to be the Hash version of the
373
+ # data in the body. This loses access to some details and should
374
+ # be corrected in a backwards compatible manner
375
+ #
376
+ # @overload request(params)
377
+ # @param [Hash] params Excon compatible options
378
+ # @option params [String] :body text to be sent over a socket
379
+ # @option params [Hash<Symbol, String>] :headers The default headers to supply in a request
380
+ # @option params [String] :host The destination host's reachable DNS name or IP, in the form of a String
381
+ # @option params [String] :path appears after 'scheme://host:port/'
382
+ # @option params [Fixnum] :port The port on which to connect, to the destination host
383
+ # @option params [Hash] :query appended to the 'scheme://host:port/path/' in the form of '?key=value'
384
+ # @option params [String] :scheme The protocol; 'https' causes OpenSSL to be used
385
+ # @return [Excon::Response]
386
+ # @see https://github.com/geemus/excon/blob/master/lib/excon/connection.rb
387
+ #
388
+ # @overload request(method, path, expected_responses, params = {})
389
+ # @param [String] method HTTP method to use for the request
390
+ # @param [String] path The absolute path for the request
391
+ # @param [Array<Fixnum>] expected_responses HTTP response codes that have been successful
392
+ # @param [Hash] params Keys and values for JSON
393
+ # @option params [String] :account_id The scoping account if required
394
+ # @deprecated #request with multiple arguments is deprecated
395
+ # since it is inconsistent with original fog version.
396
+ # @return [Hash]
397
+ def request(*args)
398
+ if args.size == 1
399
+ authenticated_request(*args)
400
+ else
401
+ Fog::Logger.deprecation("#request with multiple parameters is deprecated, use #wrapped_request instead [light_black](#{caller.first})[/]")
402
+ wrapped_request(*args)
403
+ end
188
404
  end
189
405
 
190
- # Returns the scoped account being used for requests
406
+ # Makes a request but with seperated arguments and parses the response to a hash
191
407
  #
192
- # API Clients:: This is the owning account
193
- # User Apps:: This is the account specified by either +account_id+
194
- # option on a connection or the +brightbox_account+
195
- # setting in your configuration
408
+ # @note #wrapped_request is the non-standard form of request introduced by mistake
196
409
  #
197
- # === Returns:
410
+ # @param [String] method HTTP method to use for the request
411
+ # @param [String] path The absolute path for the request
412
+ # @param [Array<Fixnum>] expected_responses HTTP response codes that have been successful
413
+ # @param [Hash] parameters Keys and values for JSON
414
+ # @option parameters [String] :account_id The scoping account if required
198
415
  #
199
- # <tt>Fog::Compute::Brightbox::Account</tt>
200
- #
201
- def account
202
- Fog::Compute::Brightbox::Account.new(get_scoped_account)
416
+ # @return [Hash]
417
+ def wrapped_request(method, path, expected_responses, parameters = {})
418
+ _wrapped_request(method, path, expected_responses, parameters)
203
419
  end
204
420
 
205
421
  private
206
- def get_oauth_token(options = {})
207
- auth_url = options[:brightbox_auth_url] || @auth_url
208
-
209
- connection = Fog::Connection.new(auth_url)
210
- authentication_body_hash = if @brightbox_username && @brightbox_password
211
- {
212
- 'client_id' => @brightbox_client_id,
213
- 'grant_type' => 'password',
214
- 'username' => @brightbox_username,
215
- 'password' => @brightbox_password
216
- }
217
- else
218
- {'client_id' => @brightbox_client_id, 'grant_type' => 'none'}
219
- end
220
- @authentication_body = Fog::JSON.encode(authentication_body_hash)
221
-
222
- response = connection.request({
223
- :path => "/token",
224
- :expects => 200,
225
- :headers => {
226
- 'Authorization' => "Basic " + Base64.encode64("#{@brightbox_client_id}:#{@brightbox_secret}").chomp,
227
- 'Content-Type' => 'application/json'
228
- },
229
- :method => 'POST',
230
- :body => @authentication_body
231
- })
232
- @oauth_token = Fog::JSON.decode(response.body)["access_token"]
233
- return @oauth_token
234
- end
235
422
 
236
- def make_request(params)
237
- begin
238
- get_oauth_token if @oauth_token.nil?
239
- response = authenticated_request(params)
240
- rescue Excon::Errors::Unauthorized
241
- get_oauth_token
242
- response = authenticated_request(params)
423
+ # Wrapped request is the non-standard form of request introduced by mistake
424
+ #
425
+ # @param [String] method HTTP method to use for the request
426
+ # @param [String] path The absolute path for the request
427
+ # @param [Array<Fixnum>] expected_responses HTTP response codes that have been successful
428
+ # @param [Hash] parameters Keys and values for JSON
429
+ # @option parameters [String] :account_id The scoping account if required
430
+ #
431
+ # @return [Hash]
432
+ def _wrapped_request(method, path, expected_responses, parameters = {})
433
+ request_options = {
434
+ :method => method.to_s.upcase,
435
+ :path => path,
436
+ :expects => expected_responses
437
+ }
438
+
439
+ # Select the account to scope for this request
440
+ account = scoped_account(parameters.fetch(:account_id, nil))
441
+ if account
442
+ request_options[:query] = { :account_id => account }
243
443
  end
444
+
445
+ request_options[:body] = Fog::JSON.encode(parameters) unless parameters.empty?
446
+
447
+ response = make_request(request_options)
448
+
449
+ # FIXME We should revert to returning the Excon::Request after a suitable
450
+ # configuration option is in place to switch back to this incorrect behaviour
244
451
  unless response.body.empty?
245
- response = Fog::JSON.decode(response.body)
452
+ Fog::JSON.decode(response.body)
453
+ else
454
+ response
246
455
  end
247
456
  end
248
457
 
249
- def authenticated_request(options)
250
- headers = options[:headers] || {}
251
- headers.merge!("Authorization" => "OAuth #{@oauth_token}", "Content-Type" => "application/json")
252
- options[:headers] = headers
253
- @connection.request(options)
254
- end
255
-
256
458
  # Queries the API and tries to select the most suitable official Image
257
459
  # to use if the user chooses not to select their own.
258
460
  def select_default_image