brightbox-cli 0.17.1 → 0.17.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -33,8 +33,63 @@ module Fog
33
33
  class Mock
34
34
 
35
35
  def describe_db_instances(identifier=nil, opts={})
36
- Fog::Mock.not_implemented
36
+ response = Excon::Response.new
37
+ server_set = []
38
+ if identifier
39
+ if server = self.data[:servers][identifier]
40
+ server_set << server
41
+ else
42
+ raise Fog::AWS::RDS::NotFound.new("DBInstance #{identifier} not found")
43
+ end
44
+ else
45
+ server_set = self.data[:servers].values
46
+ end
47
+
48
+ server_set.each do |server|
49
+ case server["DBInstanceStatus"]
50
+ when "creating"
51
+ if Time.now - server['InstanceCreateTime'] >= Fog::Mock.delay * 2
52
+ region = "us-east-1"
53
+ server["DBInstanceStatus"] = "available"
54
+ server["AvailabilityZone"] = region + 'a'
55
+ server["Endpoint"] = {"Port"=>3306,
56
+ "Address"=> Fog::AWS::Mock.rds_address(server["DBInstanceIdentifier"],region) }
57
+ server["PendingModifiedValues"] = {}
58
+ end
59
+ when "rebooting" # I don't know how to show rebooting just once before it changes to available
60
+ # it applies pending modified values
61
+ if server["PendingModifiedValues"]
62
+ server.merge!(server["PendingModifiedValues"])
63
+ server["PendingModifiedValues"] = {}
64
+ self.data[:tmp] ||= Time.now + Fog::Mock.delay * 2
65
+ if self.data[:tmp] <= Time.now
66
+ server["DBInstanceStatus"] = 'available'
67
+ self.data.delete(:tmp)
68
+ end
69
+ end
70
+ when "modifying"
71
+ # TODO there are some fields that only applied after rebooting
72
+ if server["PendingModifiedValues"]
73
+ server.merge!(server["PendingModifiedValues"])
74
+ server["PendingModifiedValues"] = {}
75
+ server["DBInstanceStatus"] = 'available'
76
+ end
77
+ when "available" # I'm not sure if amazon does this
78
+ if server["PendingModifiedValues"]
79
+ server["DBInstanceStatus"] = 'modifying'
80
+ end
81
+
82
+ end
83
+ end
84
+
85
+ response.status = 200
86
+ response.body = {
87
+ "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
88
+ "DescribeDBInstancesResult" => { "DBInstances" => server_set }
89
+ }
90
+ response
37
91
  end
92
+
38
93
 
39
94
  end
40
95
  end
@@ -32,7 +32,7 @@ module Fog
32
32
 
33
33
  class Mock
34
34
 
35
- def describe_db_instances(identifier=nil, opts={})
35
+ def describe_db_reserved_instances(identifier=nil, opts={})
36
36
  Fog::Mock.not_implemented
37
37
  end
38
38
 
@@ -28,8 +28,50 @@ module Fog
28
28
 
29
29
  class Mock
30
30
 
31
- def describe_db_security_group(opts={})
32
- Fog::Mock.not_implemented
31
+ def describe_db_security_groups(opts={})
32
+ response = Excon::Response.new
33
+ sec_group_set = []
34
+ if opts.is_a?(String)
35
+ sec_group_name = opts
36
+ if sec_group = self.data[:security_groups][sec_group_name]
37
+ sec_group_set << sec_group
38
+ else
39
+ raise Fog::AWS::RDS::NotFound.new("Security Group #{sec_group_name} not found")
40
+ end
41
+ else
42
+ sec_group_set = self.data[:security_groups].values
43
+ end
44
+
45
+ sec_group_set.each do |sec_group|
46
+ sec_group["IPRanges"].each do |iprange|
47
+ if iprange["Status"] == "authorizing" || iprange["Status"] == "revoking"
48
+ iprange[:tmp] ||= Time.now + Fog::Mock.delay * 2
49
+ if iprange[:tmp] <= Time.now
50
+ iprange["Status"] = "authorized" if iprange["Status"] == "authorizing"
51
+ iprange.delete(:tmp)
52
+ sec_group["IPRanges"].delete(iprange) if iprange["Status"] == "revoking"
53
+ end
54
+ end
55
+ end
56
+
57
+ sec_group["EC2SecurityGroups"].each do |ec2_secg|
58
+ if ec2_secg["Status"] == "authorizing" || iprange["Status"] == "revoking"
59
+ ec2_secg[:tmp] ||= Time.now + Fog::Mock.delay * 2
60
+ if ec2_secg[:tmp] <= Time.now
61
+ ec2_secg["Status"] = "authorized" if ec2_secg["Status"] == "authorizing"
62
+ ec2_secg.delete(:tmp)
63
+ sec_group["EC2SecurityGroups"].delete(ec2_secg) if ec2_secg["Status"] == "revoking"
64
+ end
65
+ end
66
+ end
67
+ end
68
+
69
+ response.status = 200
70
+ response.body = {
71
+ "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
72
+ "DescribeDBSecurityGroupsResult" => { "DBSecurityGroups" => sec_group_set }
73
+ }
74
+ response
33
75
  end
34
76
 
35
77
  end
@@ -45,7 +45,32 @@ module Fog
45
45
  class Mock
46
46
 
47
47
  def modify_db_instance(db_name, apply_immediately, options={})
48
- Fog::Mock.not_implemented
48
+ response = Excon::Response.new
49
+ if self.data[:servers][db_name]
50
+ if self.data[:servers][db_name]["DBInstanceStatus"] != "available"
51
+ raise Fog::AWS::RDS::NotFound.new("DBInstance #{db_name} not available for modification")
52
+ else
53
+ # TODO verify the params options
54
+ # if apply_immediately is false, all the options go to pending_modified_values and then apply and clear after either
55
+ # a reboot or the maintainance window
56
+ #if apply_immediately
57
+ # modified_server = server.merge(options)
58
+ #else
59
+ # modified_server = server["PendingModifiedValues"].merge!(options) # it appends
60
+ #end
61
+ self.data[:servers][db_name]["PendingModifiedValues"].merge!(options) # it appends
62
+ #self.data[:servers][db_name]["DBInstanceStatus"] = "modifying"
63
+ response.status = 200
64
+ response.body = {
65
+ "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
66
+ "ModifyDBInstanceResult" => { "DBInstance" => self.data[:servers][db_name] }
67
+ }
68
+ response
69
+
70
+ end
71
+ else
72
+ raise Fog::AWS::RDS::NotFound.new("DBInstance #{db_name} not found")
73
+ end
49
74
  end
50
75
 
51
76
  end
@@ -25,7 +25,23 @@ module Fog
25
25
  class Mock
26
26
 
27
27
  def reboot_db_instance(instance_identifier)
28
- Fog::Mock.not_implemented
28
+ response = Excon::Response.new
29
+ if self.data[:servers][instance_identifier]
30
+ if self.data[:servers][instance_identifier]["DBInstanceStatus"] != "available"
31
+ raise Fog::AWS::RDS::NotFound.new("DBInstance #{instance_identifier} not available for rebooting")
32
+ else
33
+ self.data[:servers][instance_identifier]["DBInstanceStatus"] = 'rebooting'
34
+ response.status = 200
35
+ response.body = {
36
+ "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
37
+ "RebootDBInstanceResult" => { "DBInstance" => self.data[:servers][instance_identifier] }
38
+ }
39
+ response
40
+
41
+ end
42
+ else
43
+ raise Fog::AWS::RDS::NotFound.new("DBInstance #{instance_identifier} not found")
44
+ end
29
45
  end
30
46
 
31
47
  end
@@ -33,7 +33,33 @@ module Fog
33
33
  class Mock
34
34
 
35
35
  def revoke_db_security_group_ingress(name, opts = {})
36
- Fog::Mock.not_implemented
36
+ unless opts.key?('CIDRIP') || (opts.key?('EC2SecurityGroupName') && opts.key?('EC2SecurityGroupOwnerId'))
37
+ raise ArgumentError, 'Must specify CIDRIP, or both EC2SecurityGroupName and EC2SecurityGroupOwnerId'
38
+ end
39
+
40
+ response = Excon::Response.new
41
+
42
+ if sec_group = self.data[:security_groups][name]
43
+ if opts.key?('CIDRIP')
44
+ sec_group['IPRanges'].each do |iprange|
45
+ iprange['Status']= 'revoking' if iprange['CIDRIP'] == opts['CIDRIP']
46
+ end
47
+ else
48
+ sec_group['EC2SecurityGroups'].each do |ec2_secg|
49
+ ec2_secg['Status']= 'revoking' if ec2_secg['EC2SecurityGroupName'] == opts['EC2SecurityGroupName']
50
+ end
51
+ end
52
+ response.status = 200
53
+ response.body = {
54
+ "ResponseMetadata"=>{ "RequestId"=> Fog::AWS::Mock.request_id },
55
+ 'RevokeDBSecurityGroupIngressResult' => {
56
+ 'DBSecurityGroup' => sec_group
57
+ }
58
+ }
59
+ response
60
+ else
61
+ raise Fog::AWS::RDS::NotFound.new("DBSecurityGroupNotFound => #{name} not found")
62
+ end
37
63
  end
38
64
 
39
65
  end
@@ -34,7 +34,7 @@ module Fog
34
34
  Excon::Response.new.tap do |response|
35
35
  if (queue = data[:queues][queue_url])
36
36
  message_id, _ = queue[:receipt_handles].find { |message_id, receipts|
37
- receipts.keys.include?(receipt_handle)
37
+ receipts.has_key?(receipt_handle)
38
38
  }
39
39
 
40
40
  if message_id
@@ -32,7 +32,7 @@ module Fog
32
32
  Excon::Response.new.tap do |response|
33
33
  if (queue = data[:queues][queue_url])
34
34
  message_id, _ = queue[:receipt_handles].find { |msg_id, receipts|
35
- receipts.keys.include?(receipt_handle)
35
+ receipts.has_key?(receipt_handle)
36
36
  }
37
37
 
38
38
  if message_id
@@ -37,37 +37,36 @@ module Fog
37
37
  max_number_of_messages = options['MaxNumberOfMessages'] || 1
38
38
  now = Time.now
39
39
 
40
- keys = queue[:messages].keys[0, max_number_of_messages]
41
-
42
- messages = queue[:messages].values_at(*keys).map do |m|
40
+ messages = []
41
+
42
+ queue[:messages].values.each do |m|
43
43
  message_id = m['MessageId']
44
-
44
+
45
45
  invisible = if (received_handles = queue[:receipt_handles][message_id])
46
46
  visibility_timeout = m['Attributes']['VisibilityTimeout'] || queue['Attributes']['VisibilityTimeout']
47
47
  received_handles.any? { |handle, time| now < time + visibility_timeout }
48
48
  else
49
49
  false
50
50
  end
51
-
52
- if invisible
53
- nil
54
- else
51
+
52
+ unless invisible
55
53
  receipt_handle = Fog::Mock.random_base64(300)
56
-
54
+
57
55
  queue[:receipt_handles][message_id] ||= {}
58
56
  queue[:receipt_handles][message_id][receipt_handle] = now
59
-
57
+
60
58
  m['Attributes'].tap do |attrs|
61
59
  attrs['ApproximateFirstReceiveTimestamp'] ||= now
62
60
  attrs['ApproximateReceiveCount'] = (attrs['ApproximateReceiveCount'] || 0) + 1
63
61
  end
64
-
65
- m.merge({
62
+
63
+ messages << m.merge({
66
64
  'ReceiptHandle' => receipt_handle
67
65
  })
66
+ break if messages.size >= max_number_of_messages
68
67
  end
69
- end.compact
70
-
68
+ end
69
+
71
70
  response.body = {
72
71
  'ResponseMetadata' => {
73
72
  'RequestId' => Fog::AWS::Mock.request_id
@@ -48,19 +48,27 @@ module Fog
48
48
  def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {})
49
49
  response = Excon::Response.new
50
50
  source_bucket = self.data[:buckets][source_bucket_name]
51
- source_object = source_bucket && source_bucket[:objects][source_object_name]
51
+ source_object = source_bucket && source_bucket[:objects][source_object_name] && source_bucket[:objects][source_object_name].first
52
52
  target_bucket = self.data[:buckets][target_bucket_name]
53
53
 
54
+ acl = options['x-amz-acl'] || 'private'
55
+ if !['private', 'public-read', 'public-read-write', 'authenticated-read'].include?(acl)
56
+ raise Excon::Errors::BadRequest.new('invalid x-amz-acl')
57
+ else
58
+ self.data[:acls][:object][target_bucket_name] ||= {}
59
+ self.data[:acls][:object][target_bucket_name][target_object_name] = self.class.acls(acl)
60
+ end
61
+
54
62
  if source_object && target_bucket
55
63
  response.status = 200
56
64
  target_object = source_object.dup
57
- target_object.merge!({
58
- 'Key' => target_object_name
59
- })
65
+ target_object.each do |version|
66
+ version.merge!({'Key' => target_object_name})
67
+ end
60
68
  target_bucket[:objects][target_object_name] = target_object
61
69
  response.body = {
62
- 'ETag' => target_object['ETag'],
63
- 'LastModified' => Time.parse(target_object['Last-Modified'])
70
+ 'ETag' => target_object.last['ETag'],
71
+ 'LastModified' => Time.parse(target_object.last['Last-Modified'])
64
72
  }
65
73
  else
66
74
  response.status = 404
@@ -17,6 +17,12 @@ module Fog
17
17
  # http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectDELETE.html
18
18
 
19
19
  def delete_object(bucket_name, object_name, options = {})
20
+ if version_id = options.delete('versionId')
21
+ path = "#{CGI.escape(object_name)}?versionId=#{CGI.escape(version_id)}"
22
+ else
23
+ path = CGI.escape(object_name)
24
+ end
25
+
20
26
  headers = options
21
27
  request({
22
28
  :expects => 204,
@@ -24,7 +30,7 @@ module Fog
24
30
  :host => "#{bucket_name}.#{@host}",
25
31
  :idempotent => true,
26
32
  :method => 'DELETE',
27
- :path => CGI.escape(object_name)
33
+ :path => path
28
34
  })
29
35
  end
30
36
 
@@ -36,7 +42,57 @@ module Fog
36
42
  response = Excon::Response.new
37
43
  if bucket = self.data[:buckets][bucket_name]
38
44
  response.status = 204
39
- bucket[:objects].delete(object_name)
45
+
46
+ version_id = options.delete('versionId')
47
+
48
+ if bucket[:versioning]
49
+ bucket[:objects][object_name] ||= []
50
+
51
+ if version_id
52
+ version = bucket[:objects][object_name].find { |object| object['VersionId'] == version_id}
53
+
54
+ # S3 special cases the 'null' value to not error out if no such version exists.
55
+ if version || (version_id == 'null')
56
+ bucket[:objects][object_name].delete(version)
57
+ bucket[:objects].delete(object_name) if bucket[:objects][object_name].empty?
58
+
59
+ response.headers['x-amz-delete-marker'] = 'true' if version[:delete_marker]
60
+ response.headers['x-amz-version-id'] = version_id
61
+ else
62
+ response.status = 400
63
+ response.body = invalid_version_id_payload(version_id)
64
+ raise(Excon::Errors.status_error({:expects => 200}, response))
65
+ end
66
+ else
67
+ delete_marker = {
68
+ :delete_marker => true,
69
+ 'Key' => object_name,
70
+ 'VersionId' => bucket[:versioning] == 'Enabled' ? Fog::Mock.random_base64(32) : 'null',
71
+ 'Last-Modified' => Fog::Time.now.to_date_header
72
+ }
73
+
74
+ # When versioning is suspended, a delete marker is placed if the last object ID is not the value 'null',
75
+ # otherwise the last object is replaced.
76
+ if bucket[:versioning] == 'Suspended' && bucket[:objects][object_name].first['VersionId'] == 'null'
77
+ bucket[:objects][object_name].shift
78
+ end
79
+
80
+ bucket[:objects][object_name].unshift(delete_marker)
81
+
82
+ response.headers['x-amz-delete-marker'] = 'true'
83
+ response.headers['x-amz-version-id'] = delete_marker['VersionId']
84
+ end
85
+ else
86
+ if version_id && version_id != 'null'
87
+ response.status = 400
88
+ response.body = invalid_version_id_payload(version_id)
89
+ raise(Excon::Errors.status_error({:expects => 200}, response))
90
+ else
91
+ bucket[:objects].delete(object_name)
92
+
93
+ response.headers['x-amz-version-id'] = 'null'
94
+ end
95
+ end
40
96
  else
41
97
  response.status = 404
42
98
  raise(Excon::Errors.status_error({:expects => 204}, response))
@@ -44,6 +100,21 @@ module Fog
44
100
  response
45
101
  end
46
102
 
103
+ private
104
+
105
+ def invalid_version_id_payload(version_id)
106
+ {
107
+ 'Error' => {
108
+ 'Code' => 'InvalidArgument',
109
+ 'Message' => 'Invalid version id specified',
110
+ 'ArgumentValue' => version_id,
111
+ 'ArgumentName' => 'versionId',
112
+ 'RequestId' => Fog::Mock.random_hex(16),
113
+ 'HostId' => Fog::Mock.random_base64(65)
114
+ }
115
+ }
116
+ end
117
+
47
118
  end
48
119
  end
49
120
  end
@@ -69,11 +69,12 @@ module Fog
69
69
  end
70
70
  response = Excon::Response.new
71
71
  if bucket = self.data[:buckets][bucket_name]
72
- contents = bucket[:objects].values.sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
72
+ contents = bucket[:objects].values.collect(&:last).sort {|x,y| x['Key'] <=> y['Key']}.reject do |object|
73
73
  (prefix && object['Key'][0...prefix.length] != prefix) ||
74
74
  (marker && object['Key'] <= marker) ||
75
75
  (delimiter && object['Key'][(prefix ? prefix.length : 0)..-1].include?(delimiter) \
76
- && common_prefixes << object['Key'].sub(/^(#{prefix}[^#{delimiter}]+.).*/, '\1'))
76
+ && common_prefixes << object['Key'].sub(/^(#{prefix}[^#{delimiter}]+.).*/, '\1')) ||
77
+ object.has_key?(:delete_marker)
77
78
  end.map do |object|
78
79
  data = object.reject {|key, value| !['ETag', 'Key', 'StorageClass'].include?(key)}
79
80
  data.merge!({