brightbox-cli 0.17.1 → 0.17.2

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 (229) hide show
  1. data/.gitignore +1 -1
  2. data/brightbox-cli.gemspec +10 -9
  3. data/lib/brightbox-cli/commands/servers-activate-console.rb +1 -1
  4. data/lib/brightbox-cli/commands/types-show.rb +5 -4
  5. data/lib/brightbox-cli/config.rb +1 -1
  6. data/lib/brightbox-cli/detailed_server.rb +2 -1
  7. data/lib/brightbox-cli/gli_global_hooks.rb +1 -8
  8. data/lib/brightbox-cli/server_groups.rb +4 -0
  9. data/lib/brightbox-cli/servers.rb +5 -13
  10. data/lib/brightbox-cli/types.rb +1 -1
  11. data/lib/brightbox-cli/vendor/fog/.gitignore +1 -0
  12. data/lib/brightbox-cli/vendor/fog/README.rdoc +1 -1
  13. data/lib/brightbox-cli/vendor/fog/Rakefile +4 -3
  14. data/lib/brightbox-cli/vendor/fog/changelog.txt +213 -0
  15. data/lib/brightbox-cli/vendor/fog/docs/compute/index.markdown +15 -1
  16. data/lib/brightbox-cli/vendor/fog/docs/index.markdown +1 -1
  17. data/lib/brightbox-cli/vendor/fog/docs/storage/index.markdown +4 -4
  18. data/lib/brightbox-cli/vendor/fog/examples/compute_tests.rb +18 -6
  19. data/lib/brightbox-cli/vendor/fog/examples/dns_tests.rb +1 -1
  20. data/lib/brightbox-cli/vendor/fog/examples/storage_tests.rb +1 -1
  21. data/lib/brightbox-cli/vendor/fog/fog.gemspec +4 -3
  22. data/lib/brightbox-cli/vendor/fog/lib/fog.rb +1 -1
  23. data/lib/brightbox-cli/vendor/fog/lib/fog/aws.rb +16 -1
  24. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/auto_scaling.rb +2 -17
  25. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/cloud_formation.rb +1 -16
  26. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/cloud_watch.rb +2 -17
  27. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/compute.rb +10 -21
  28. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/elasticache.rb +1 -7
  29. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/elb.rb +34 -24
  30. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/emr.rb +5 -4
  31. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/iam.rb +16 -1
  32. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/auto_scaling/group.rb +2 -2
  33. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/metric_statistic.rb +1 -2
  34. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/security_group.rb +3 -3
  35. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/security_groups.rb +25 -0
  36. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/server.rb +4 -1
  37. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/dns/records.rb +3 -3
  38. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elb/listener.rb +9 -7
  39. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elb/load_balancer.rb +6 -0
  40. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/storage/directory.rb +21 -0
  41. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/storage/file.rb +19 -5
  42. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/storage/files.rb +4 -4
  43. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/compute/describe_instances.rb +2 -2
  44. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/compute/describe_security_groups.rb +2 -2
  45. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/sqs/receive_message.rb +1 -1
  46. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/rds.rb +41 -18
  47. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/create_security_group.rb +6 -4
  48. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/create_tags.rb +3 -2
  49. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_availability_zones.rb +3 -0
  50. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_security_groups.rb +2 -0
  51. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/create_app_cookie_stickiness_policy.rb +2 -0
  52. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/create_lb_cookie_stickiness_policy.rb +3 -1
  53. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/create_load_balancer.rb +7 -2
  54. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +10 -1
  55. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/delete_load_balancer_policy.rb +1 -1
  56. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/describe_load_balancers.rb +5 -1
  57. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/set_load_balancer_listener_ssl_certificate.rb +27 -0
  58. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/set_load_balancer_policies_of_listener.rb +1 -1
  59. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/emr/run_job_flow.rb +9 -7
  60. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/add_user_to_group.rb +24 -0
  61. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/create_access_key.rb +24 -0
  62. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/create_group.rb +21 -0
  63. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/create_user.rb +21 -0
  64. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/delete_access_key.rb +17 -0
  65. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/delete_group.rb +19 -0
  66. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/delete_user.rb +17 -0
  67. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/delete_user_policy.rb +16 -0
  68. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/list_access_keys.rb +21 -0
  69. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/list_groups.rb +18 -0
  70. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/list_groups_for_user.rb +24 -0
  71. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/list_user_policies.rb +18 -0
  72. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/list_users.rb +17 -0
  73. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/put_user_policy.rb +18 -0
  74. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/remove_user_from_group.rb +19 -0
  75. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/upload_server_certificate.rb +1 -1
  76. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb +30 -1
  77. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/create_db_instance.rb +67 -1
  78. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/create_db_security_group.rb +19 -1
  79. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/delete_db_instance.rb +19 -3
  80. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/delete_db_security_group.rb +11 -1
  81. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/describe_db_instances.rb +56 -1
  82. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/describe_db_reserved_instances.rb +1 -1
  83. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/describe_db_security_groups.rb +44 -2
  84. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/modify_db_instance.rb +26 -1
  85. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/reboot_db_instance.rb +17 -1
  86. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/rds/revoke_db_security_group_ingress.rb +27 -1
  87. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/change_message_visibility.rb +1 -1
  88. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/delete_message.rb +1 -1
  89. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/receive_message.rb +13 -14
  90. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/copy_object.rb +14 -6
  91. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/delete_object.rb +73 -2
  92. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_bucket.rb +3 -2
  93. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +95 -2
  94. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_bucket_versioning.rb +32 -0
  95. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_object.rb +27 -1
  96. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_object_http_url.rb +4 -3
  97. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_object_https_url.rb +4 -3
  98. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/put_bucket_versioning.rb +41 -0
  99. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/put_bucket_website.rb +17 -0
  100. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/put_object.rb +25 -9
  101. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/ses.rb +2 -7
  102. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/simpledb.rb +4 -17
  103. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/sns.rb +1 -14
  104. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/sqs.rb +5 -11
  105. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/storage.rb +6 -22
  106. data/lib/brightbox-cli/vendor/fog/lib/fog/bin.rb +2 -0
  107. data/lib/brightbox-cli/vendor/fog/lib/fog/bin/aws.rb +9 -1
  108. data/lib/brightbox-cli/vendor/fog/lib/fog/bin/voxel.rb +1 -1
  109. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/server.rb +1 -0
  110. data/lib/brightbox-cli/vendor/fog/lib/fog/compute.rb +6 -0
  111. data/lib/brightbox-cli/vendor/fog/lib/fog/compute/models/server.rb +11 -0
  112. data/lib/brightbox-cli/vendor/fog/lib/fog/core.rb +0 -1
  113. data/lib/brightbox-cli/vendor/fog/lib/fog/core/connection.rb +0 -1
  114. data/lib/brightbox-cli/vendor/fog/lib/fog/core/errors.rb +5 -0
  115. data/lib/brightbox-cli/vendor/fog/lib/fog/core/scp.rb +18 -2
  116. data/lib/brightbox-cli/vendor/fog/lib/fog/core/wait_for.rb +1 -1
  117. data/lib/brightbox-cli/vendor/fog/lib/fog/dnsmadeeasy/dns.rb +1 -1
  118. data/lib/brightbox-cli/vendor/fog/lib/fog/dynect/models/dns/records.rb +2 -2
  119. data/lib/brightbox-cli/vendor/fog/lib/fog/dynect/requests/dns/get_node_list.rb +2 -1
  120. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/compute.rb +1 -1
  121. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/add_backup_internet_service.rb +1 -1
  122. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/add_internet_service.rb +2 -2
  123. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/add_node.rb +1 -1
  124. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/clone_vapp.rb +1 -1
  125. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/configure_internet_service.rb +1 -1
  126. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/configure_network.rb +1 -1
  127. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/configure_network_ip.rb +1 -1
  128. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/configure_vapp.rb +1 -1
  129. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/requests/compute/instantiate_vapp_template.rb +1 -1
  130. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/compute.rb +7 -3
  131. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/models/compute/nodes.rb +1 -3
  132. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/models/compute/server.rb +93 -99
  133. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/models/compute/servers.rb +2 -1
  134. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/models/compute/util.rb +1 -2
  135. data/lib/brightbox-cli/vendor/fog/lib/fog/providers.rb +2 -0
  136. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/dns.rb +10 -2
  137. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/load_balancers.rb +3 -0
  138. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/compute/flavor.rb +2 -0
  139. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/compute/server.rb +2 -2
  140. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/dns/callback.rb +3 -1
  141. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/dns/record.rb +4 -0
  142. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/load_balancers/load_balancer.rb +18 -8
  143. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/models/storage/directory.rb +5 -1
  144. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/requests/compute/create_image.rb +1 -3
  145. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/requests/load_balancers/delete_nodes.rb +1 -2
  146. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/requests/load_balancers/list_load_balancers.rb +8 -2
  147. data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand/compute.rb +1 -1
  148. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/compute.rb +91 -30
  149. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/catalog.rb +1 -1
  150. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/catalog_item.rb +1 -1
  151. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/catalogs.rb +5 -8
  152. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/ip.rb +2 -2
  153. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/network.rb +9 -51
  154. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/networks.rb +21 -7
  155. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/server.rb +38 -58
  156. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/servers.rb +12 -18
  157. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/task.rb +1 -1
  158. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/tasks.rb +1 -3
  159. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/vdc.rb +14 -29
  160. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/models/compute/vdcs.rb +6 -11
  161. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/clone_vapp.rb +1 -1
  162. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/configure_network.rb +1 -1
  163. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/configure_network_ip.rb +1 -1
  164. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/configure_vapp.rb +1 -1
  165. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/configure_vm.rb +1 -1
  166. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/instantiate_vapp_template.rb +1 -1
  167. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud/requests/compute/login.rb +8 -4
  168. data/lib/brightbox-cli/vendor/fog/lib/fog/virtual_box/compute.rb +4 -0
  169. data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/compute.rb +1 -0
  170. data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/models/compute/server.rb +7 -1
  171. data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +86 -86
  172. data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/requests/compute/vm_clone.rb +43 -8
  173. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/models/dns/record.rb +7 -5
  174. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/update_host.rb +2 -2
  175. data/lib/brightbox-cli/vendor/fog/spec/ecloud/spec_helper.rb +1 -1
  176. data/lib/brightbox-cli/vendor/fog/tests/aws/models/elb/model_tests.rb +15 -6
  177. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/instance_tests.rb +37 -0
  178. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/security_group_tests.rb +6 -4
  179. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elb/helper.rb +33 -0
  180. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elb/listener_tests.rb +22 -4
  181. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elb/policy_tests.rb +13 -0
  182. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/iam/access_key_tests.rb +2 -7
  183. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/iam/group_tests.rb +1 -4
  184. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/iam/user_policy_tests.rb +4 -11
  185. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/iam/user_tests.rb +19 -12
  186. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/rds/helper.rb +38 -3
  187. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/rds/instance_tests.rb +3 -1
  188. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/storage/bucket_tests.rb +66 -1
  189. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/account_tests.rb +3 -3
  190. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/api_client_tests.rb +6 -6
  191. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/cloud_ip_tests.rb +15 -9
  192. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/helper.rb +6 -2
  193. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/image_tests.rb +2 -2
  194. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/interface_tests.rb +1 -1
  195. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/load_balancer_tests.rb +9 -9
  196. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/server_group_tests.rb +8 -8
  197. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/server_tests.rb +17 -13
  198. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/server_type_tests.rb +2 -2
  199. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/user_tests.rb +3 -3
  200. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/zone_tests.rb +2 -2
  201. data/lib/brightbox-cli/vendor/fog/tests/glesys/requests/compute/helper.rb +87 -64
  202. data/lib/brightbox-cli/vendor/fog/tests/glesys/requests/compute/ip_tests.rb +1 -1
  203. data/lib/brightbox-cli/vendor/fog/tests/glesys/requests/compute/server_tests.rb +4 -4
  204. data/lib/brightbox-cli/vendor/fog/tests/helpers/formats_helper.rb +1 -1
  205. data/lib/brightbox-cli/vendor/fog/tests/helpers/mock_helper.rb +2 -0
  206. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/dns/dns_tests.rb +4 -2
  207. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/load_balancers/helper.rb +27 -11
  208. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/load_balancers/load_balancer_tests.rb +4 -1
  209. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/load_balancers/node_tests.rb +24 -25
  210. data/lib/brightbox-cli/vendor/fog/tests/slicehost/requests/compute/slice_tests.rb +2 -2
  211. data/lib/brightbox-cli/vendor/fog/tests/storm_on_demand/requests/compute/server_tests.rb +3 -3
  212. data/lib/brightbox-cli/vendor/fog/tests/vcloud/models/compute/servers_tests.rb +18 -90
  213. data/lib/brightbox-cli/vendor/fog/tests/vsphere/requests/compute/vm_clone_tests.rb +16 -4
  214. data/lib/brightbox-cli/vendor/fog/tests/vsphere/requests/compute/vm_power_on_tests.rb +1 -1
  215. data/lib/brightbox-cli/version.rb +1 -1
  216. data/spec/cloud_ips_spec.rb +1 -1
  217. data/spec/fixtures/vcr_cassettes/list_cloud_ip.yml +58 -26
  218. data/spec/fixtures/vcr_cassettes/server_show.yml +143 -102
  219. data/spec/servers_spec.rb +3 -2
  220. data/spec/spec_helper.rb +4 -0
  221. metadata +128 -213
  222. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/access_list_tests.rb +0 -12
  223. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/access_lists_tests.rb +0 -12
  224. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/load_balancer_tests.rb +0 -116
  225. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/load_balancers_tests.rb +0 -19
  226. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/node_tests.rb +0 -19
  227. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/nodes_tests.rb +0 -12
  228. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/virtual_ip_tests.rb +0 -16
  229. data/lib/brightbox-cli/vendor/fog/tests/rackspace/models/virtual_ips_tests.rb +0 -12
@@ -65,11 +65,104 @@ module Fog
65
65
  :idempotent => true,
66
66
  :method => 'GET',
67
67
  :parser => Fog::Parsers::Storage::AWS::GetBucketObjectVersions.new,
68
- :query => {'versions' => nil}.merge!(options)
69
- })
68
+ :query => {'versions' => nil}.merge!(options) })
70
69
  end
71
70
 
72
71
  end
72
+
73
+ class Mock
74
+ def get_bucket_object_versions(bucket_name, options = {})
75
+ delimiter, key_marker, max_keys, prefix, version_id_marker = \
76
+ options['delimiter'], options['key_marker'], options['max_keys'],options['prefix'],options['version_id_marker']
77
+
78
+ unless bucket_name
79
+ raise ArgumentError.new('bucket_name is required')
80
+ end
81
+
82
+ response = Excon::Response.new
83
+
84
+ # Invalid arguments.
85
+ if version_id_marker && !key_marker
86
+ response.status = 400
87
+ response.body = {
88
+ 'Error' => {
89
+ 'Code' => 'InvalidArgument',
90
+ 'Message' => 'A version-id marker cannot be specified without a key marker.',
91
+ 'ArgumentValue' => version_id_marker,
92
+ 'RequestId' => Fog::Mock.random_hex(16),
93
+ 'HostId' => Fog::Mock.random_base64(65)
94
+ }
95
+ }
96
+
97
+ # Valid case.
98
+ # TODO: (nirvdrum 12/15/11) It's not clear to me how to actually use version-id-marker, so I didn't implement it below.
99
+ elsif bucket = self.data[:buckets][bucket_name]
100
+ # We need to order results by S3 key, but since our data store is key => [versions], we want to ensure the integrity
101
+ # of the versions as well. So, sort the keys, then fetch the versions, and then combine them all as a sorted list by
102
+ # flattening the results.
103
+ contents = bucket[:objects].keys.sort.collect { |key| bucket[:objects][key] }.flatten.reject do |object|
104
+ (prefix && object['Key'][0...prefix.length] != prefix) ||
105
+ (key_marker && object['Key'] <= key_marker) ||
106
+ (delimiter && object['Key'][(prefix ? prefix.length : 0)..-1].include?(delimiter) \
107
+ && common_prefixes << object['Key'].sub(/^(#{prefix}[^#{delimiter}]+.).*/, '\1'))
108
+ end.map do |object|
109
+ if object.has_key?(:delete_marker)
110
+ tag_name = 'DeleteMarker'
111
+ extracted_attrs = ['Key', 'VersionId']
112
+ else
113
+ tag_name = 'Version'
114
+ extracted_attrs = ['ETag', 'Key', 'StorageClass', 'VersionId']
115
+ end
116
+
117
+ data = {}
118
+ data[tag_name] = object.reject { |key, value| !extracted_attrs.include?(key) }
119
+ data[tag_name].merge!({
120
+ 'LastModified' => Time.parse(object['Last-Modified']),
121
+ 'Owner' => bucket['Owner'],
122
+ 'IsLatest' => object == bucket[:objects][object['Key']].first
123
+ })
124
+
125
+ data[tag_name]['Size'] = object['Content-Length'].to_i if tag_name == 'Version'
126
+ data
127
+ end
128
+
129
+ max_keys = max_keys || 1000
130
+ size = [max_keys, 1000].min
131
+ truncated_contents = contents[0...size]
132
+
133
+ response.status = 200
134
+ response.body = {
135
+ 'Versions' => truncated_contents,
136
+ 'IsTruncated' => truncated_contents.size != contents.size,
137
+ 'KeyMarker' => key_marker,
138
+ 'VersionIdMarker' => version_id_marker,
139
+ 'MaxKeys' => max_keys,
140
+ 'Name' => bucket['Name'],
141
+ 'Prefix' => prefix
142
+ }
143
+ if max_keys && max_keys < response.body['Versions'].length
144
+ response.body['IsTruncated'] = true
145
+ response.body['Versions'] = response.body['Versions'][0...max_keys]
146
+ end
147
+
148
+ # Missing bucket case.
149
+ else
150
+ response.status = 404
151
+ response.body = {
152
+ 'Error' => {
153
+ 'Code' => 'NoSuchBucket',
154
+ 'Message' => 'The specified bucket does not exist',
155
+ 'BucketName' => bucket_name,
156
+ 'RequestId' => Fog::Mock.random_hex(16),
157
+ 'HostId' => Fog::Mock.random_base64(65)
158
+ }
159
+ }
160
+
161
+ raise(Excon::Errors.status_error({:expects => 200}, response))
162
+ end
163
+ response
164
+ end
165
+ end
73
166
  end
74
167
  end
75
168
  end
@@ -33,7 +33,39 @@ module Fog
33
33
  :query => {'versioning' => nil}
34
34
  })
35
35
  end
36
+ end
37
+
38
+ class Mock
39
+ def get_bucket_versioning(bucket_name)
40
+ response = Excon::Response.new
41
+ bucket = self.data[:buckets][bucket_name]
42
+
43
+ if bucket
44
+ response.status = 200
45
+
46
+ if bucket[:versioning]
47
+ response.body = { 'VersioningConfiguration' => { 'Status' => bucket[:versioning] } }
48
+ else
49
+ response.body = { 'VersioningConfiguration' => {} }
50
+ end
36
51
 
52
+ else
53
+ response.status = 404
54
+ response.body = {
55
+ 'Error' => {
56
+ 'Code' => 'NoSuchBucket',
57
+ 'Message' => 'The specified bucket does not exist',
58
+ 'BucketName' => bucket_name,
59
+ 'RequestId' => Fog::Mock.random_hex(16),
60
+ 'HostId' => Fog::Mock.random_base64(65)
61
+ }
62
+ }
63
+
64
+ raise(Excon::Errors.status_error({:expects => 200}, response))
65
+ end
66
+
67
+ response
68
+ end
37
69
  end
38
70
  end
39
71
  end
@@ -62,15 +62,24 @@ module Fog
62
62
  class Mock # :nodoc:all
63
63
 
64
64
  def get_object(bucket_name, object_name, options = {}, &block)
65
+ version_id = options.delete('versionId')
66
+
65
67
  unless bucket_name
66
68
  raise ArgumentError.new('bucket_name is required')
67
69
  end
70
+
68
71
  unless object_name
69
72
  raise ArgumentError.new('object_name is required')
70
73
  end
74
+
71
75
  response = Excon::Response.new
72
76
  if (bucket = self.data[:buckets][bucket_name])
73
- if (object = bucket[:objects][object_name])
77
+ object = nil
78
+ if bucket[:objects].has_key?(object_name)
79
+ object = version_id ? bucket[:objects][object_name].find { |object| object['VersionId'] == version_id} : bucket[:objects][object_name].first
80
+ end
81
+
82
+ if (object && !object[:delete_marker])
74
83
  if options['If-Match'] && options['If-Match'] != object['ETag']
75
84
  response.status = 412
76
85
  elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['Last-Modified'])
@@ -87,6 +96,9 @@ module Fog
87
96
  response.headers[key] = value
88
97
  end
89
98
  end
99
+
100
+ response.headers['x-amz-version-id'] = object['VersionId'] if bucket[:versioning]
101
+
90
102
  unless block_given?
91
103
  response.body = object[:body]
92
104
  else
@@ -99,6 +111,20 @@ module Fog
99
111
  end
100
112
  end
101
113
  end
114
+ elsif version_id && !object
115
+ response.status = 400
116
+ response.body = {
117
+ 'Error' => {
118
+ 'Code' => 'InvalidArgument',
119
+ 'Message' => 'Invalid version id specified',
120
+ 'ArgumentValue' => version_id,
121
+ 'ArgumentName' => 'versionId',
122
+ 'RequestId' => Fog::Mock.random_hex(16),
123
+ 'HostId' => Fog::Mock.random_base64(65)
124
+ }
125
+ }
126
+
127
+ raise(Excon::Errors.status_error({:expects => 200}, response))
102
128
  else
103
129
  response.status = 404
104
130
  response.body = "...<Code>NoSuchKey<\/Code>..."
@@ -4,7 +4,7 @@ module Fog
4
4
 
5
5
  module GetObjectHttpUrl
6
6
 
7
- def get_object_http_url(bucket_name, object_name, expires)
7
+ def get_object_http_url(bucket_name, object_name, expires, options = {})
8
8
  unless bucket_name
9
9
  raise ArgumentError.new('bucket_name is required')
10
10
  end
@@ -15,7 +15,8 @@ module Fog
15
15
  :headers => {},
16
16
  :host => @host,
17
17
  :method => 'GET',
18
- :path => "#{bucket_name}/#{object_name}"
18
+ :path => "#{bucket_name}/#{object_name}",
19
+ :query => options[:query]
19
20
  }, expires)
20
21
  end
21
22
 
@@ -48,4 +49,4 @@ module Fog
48
49
  end
49
50
  end
50
51
  end
51
- end
52
+ end
@@ -4,7 +4,7 @@ module Fog
4
4
 
5
5
  module GetObjectHttpsUrl
6
6
 
7
- def get_object_https_url(bucket_name, object_name, expires)
7
+ def get_object_https_url(bucket_name, object_name, expires, options = {})
8
8
  unless bucket_name
9
9
  raise ArgumentError.new('bucket_name is required')
10
10
  end
@@ -15,7 +15,8 @@ module Fog
15
15
  :headers => {},
16
16
  :host => @host,
17
17
  :method => 'GET',
18
- :path => "#{bucket_name}/#{object_name}"
18
+ :path => "#{bucket_name}/#{object_name}",
19
+ :query => options[:query]
19
20
  }, expires)
20
21
  end
21
22
 
@@ -48,4 +49,4 @@ module Fog
48
49
  end
49
50
  end
50
51
  end
51
- end
52
+ end
@@ -29,7 +29,48 @@ DATA
29
29
  :query => {'versioning' => nil}
30
30
  })
31
31
  end
32
+ end
33
+
34
+ class Mock
35
+ def put_bucket_versioning(bucket_name, status)
36
+ response = Excon::Response.new
37
+ bucket = self.data[:buckets][bucket_name]
38
+
39
+ if bucket
40
+ if ['Enabled', 'Suspended'].include?(status)
41
+ bucket[:versioning] = status
32
42
 
43
+ response.status = 200
44
+ else
45
+ response.status = 400
46
+ response.body = {
47
+ 'Error' => {
48
+ 'Code' => 'MalformedXML',
49
+ 'Message' => 'The XML you provided was not well-formed or did not validate against our published schema',
50
+ 'RequestId' => Fog::Mock.random_hex(16),
51
+ 'HostId' => Fog::Mock.random_base64(65)
52
+ }
53
+ }
54
+
55
+ raise(Excon::Errors.status_error({:expects => 200}, response))
56
+ end
57
+ else
58
+ response.status = 404
59
+ response.body = {
60
+ 'Error' => {
61
+ 'Code' => 'NoSuchBucket',
62
+ 'Message' => 'The specified bucket does not exist',
63
+ 'BucketName' => bucket_name,
64
+ 'RequestId' => Fog::Mock.random_hex(16),
65
+ 'HostId' => Fog::Mock.random_base64(65)
66
+ }
67
+ }
68
+
69
+ raise(Excon::Errors.status_error({:expects => 200}, response))
70
+ end
71
+
72
+ response
73
+ end
33
74
  end
34
75
  end
35
76
  end
@@ -44,6 +44,23 @@ DATA
44
44
  end
45
45
 
46
46
  end
47
+
48
+ class Mock # :nodoc:all
49
+
50
+ def put_bucket_website(bucket_name, suffix, options = {})
51
+ response = Excon::Response.new
52
+ if self.data[:buckets][bucket_name]
53
+ response.status = 200
54
+ else
55
+ response.status = 404
56
+ raise(Excon::Errors.status_error({:expects => 200}, response))
57
+ end
58
+
59
+ response
60
+ end
61
+
62
+ end
63
+
47
64
  end
48
65
  end
49
66
  end
@@ -32,9 +32,9 @@ module Fog
32
32
  def put_object(bucket_name, object_name, data, options = {})
33
33
  data = Fog::Storage.parse_data(data)
34
34
  headers = data[:headers].merge!(options)
35
- request({
36
- :body => data[:body],
37
- :expects => 200,
35
+ request({ :body => data[:body],
36
+ :expects => 200,
37
+
38
38
  :headers => headers,
39
39
  :host => "#{bucket_name}.#{@host}",
40
40
  :idempotent => true,
@@ -70,7 +70,8 @@ module Fog
70
70
  'Key' => object_name,
71
71
  'Last-Modified' => Fog::Time.now.to_date_header,
72
72
  'Content-Length' => options['Content-Length'] || data[:headers]['Content-Length'],
73
- 'StorageClass' => options['x-amz-storage-class'] || 'STANDARD'
73
+ 'StorageClass' => options['x-amz-storage-class'] || 'STANDARD',
74
+ 'VersionId' => bucket[:versioning] == 'Enabled' ? Fog::Mock.random_base64(32) : 'null'
74
75
  }
75
76
 
76
77
  for key, value in options
@@ -80,13 +81,28 @@ module Fog
80
81
  end
81
82
  end
82
83
 
83
- bucket[:objects][object_name] = object
84
+ if bucket[:versioning]
85
+ bucket[:objects][object_name] ||= []
86
+
87
+ # When versioning is suspended, putting an object will create a new 'null' version if the latest version
88
+ # is a value other than 'null', otherwise it will replace the latest version.
89
+ if bucket[:versioning] == 'Suspended' && bucket[:objects][object_name].first['VersionId'] == 'null'
90
+ bucket[:objects][object_name].shift
91
+ end
92
+
93
+ bucket[:objects][object_name].unshift(object)
94
+ else
95
+ bucket[:objects][object_name] = [object]
96
+ end
97
+
84
98
  response.headers = {
85
- 'Content-Length' => object['Content-Length'],
86
- 'Content-Type' => object['Content-Type'],
87
- 'ETag' => object['ETag'],
88
- 'Last-Modified' => object['Last-Modified']
99
+ 'Content-Length' => object['Content-Length'],
100
+ 'Content-Type' => object['Content-Type'],
101
+ 'ETag' => object['ETag'],
102
+ 'Last-Modified' => object['Last-Modified'],
89
103
  }
104
+
105
+ response.headers['x-amz-version-id'] = object['VersionId'] if object['VersionId'] != 'null'
90
106
  else
91
107
  response.status = 404
92
108
  raise(Excon::Errors.status_error({:expects => 200}, response))
@@ -40,7 +40,7 @@ module Fog
40
40
  #
41
41
  # ==== Parameters
42
42
  # * options<~Hash> - config arguments for connection. Defaults to {}.
43
- # * region<~String> - optional region to use, in ['eu-west-1', 'us-east-1', 'us-west-1', 'us-west-2', 'ap-southeast-1']
43
+ # * region<~String> - optional region to use. For instance, 'us-east-1' and etc.
44
44
  #
45
45
  # ==== Returns
46
46
  # * SES object with connection to AWS.
@@ -52,12 +52,7 @@ module Fog
52
52
  @connection_options = options[:connection_options] || {}
53
53
  @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
54
54
  options[:region] ||= 'us-east-1'
55
- @host = options[:host] || case options[:region]
56
- when 'us-east-1'
57
- 'email.us-east-1.amazonaws.com'
58
- else
59
- raise ArgumentError, "Unknown region: #{options[:region].inspect}"
60
- end
55
+ @host = options[:host] || "email.#{options[:region]}.amazonaws.com"
61
56
  @path = options[:path] || '/'
62
57
  @persistent = options[:persistent] || false
63
58
  @port = options[:port] || 443
@@ -5,7 +5,7 @@ module Fog
5
5
  class SimpleDB < Fog::Service
6
6
 
7
7
  requires :aws_access_key_id, :aws_secret_access_key
8
- recognizes :host, :nil_string, :path, :port, :scheme, :persistent, :region
8
+ recognizes :host, :nil_string, :path, :port, :scheme, :persistent, :region, :aws_session_token
9
9
 
10
10
  request_path 'fog/aws/requests/simpledb'
11
11
  request :batch_put_attributes
@@ -70,27 +70,13 @@ module Fog
70
70
 
71
71
  @aws_access_key_id = options[:aws_access_key_id]
72
72
  @aws_secret_access_key = options[:aws_secret_access_key]
73
+ @aws_session_token = options[:aws_session_token]
73
74
  @connection_options = options[:connection_options] || {}
74
75
  @hmac = Fog::HMAC.new('sha256', @aws_secret_access_key)
75
76
  @nil_string = options[:nil_string]|| 'nil'
76
77
 
77
78
  options[:region] ||= 'us-east-1'
78
- @host = options[:host] || case options[:region]
79
- when 'ap-northeast-1'
80
- 'sdb.ap-northeast-1.amazonaws.com'
81
- when 'ap-southeast-1'
82
- 'sdb.ap-southeast-1.amazonaws.com'
83
- when 'eu-west-1'
84
- 'sdb.eu-west-1.amazonaws.com'
85
- when 'us-east-1'
86
- 'sdb.amazonaws.com'
87
- when 'us-west-1'
88
- 'sdb.us-west-1.amazonaws.com'
89
- when 'us-west-2'
90
- 'sdb.us-west-2.amazonaws.com'
91
- else
92
- raise ArgumentError, "Unknown region: #{options[:region].inspect}"
93
- end
79
+ @host = options[:host] || "sdb.#{options[:region]}.amazonaws.com"
94
80
  @path = options[:path] || '/'
95
81
  @persistent = options[:persistent] || false
96
82
  @port = options[:port] || 443
@@ -165,6 +151,7 @@ module Fog
165
151
  params,
166
152
  {
167
153
  :aws_access_key_id => @aws_access_key_id,
154
+ :aws_session_token => @aws_session_token,
168
155
  :hmac => @hmac,
169
156
  :host => @host,
170
157
  :path => @path,