brightbox-cli 0.14.1 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (381) hide show
  1. data/.gitignore +7 -0
  2. data/bin/brightbox-firewall-policies +14 -0
  3. data/bin/brightbox-firewall-rules +14 -0
  4. data/bin/brightbox-groups +14 -0
  5. data/lib/brightbox-cli/api.rb +2 -1
  6. data/lib/brightbox-cli/cloud_ips.rb +2 -2
  7. data/lib/brightbox-cli/command_generator.rb +3 -0
  8. data/lib/brightbox-cli/commands/cloudips-update.rb +2 -2
  9. data/lib/brightbox-cli/commands/config-client-list.rb +1 -1
  10. data/lib/brightbox-cli/commands/firewall-policies-apply.rb +31 -0
  11. data/lib/brightbox-cli/commands/firewall-policies-create.rb +39 -0
  12. data/lib/brightbox-cli/commands/firewall-policies-destroy.rb +24 -0
  13. data/lib/brightbox-cli/commands/firewall-policies-list.rb +17 -0
  14. data/lib/brightbox-cli/commands/firewall-policies-remove.rb +31 -0
  15. data/lib/brightbox-cli/commands/firewall-policies-show.rb +19 -0
  16. data/lib/brightbox-cli/commands/firewall-rules-create.rb +51 -0
  17. data/lib/brightbox-cli/commands/firewall-rules-destroy.rb +24 -0
  18. data/lib/brightbox-cli/commands/firewall-rules-list.rb +19 -0
  19. data/lib/brightbox-cli/commands/firewall-rules-show.rb +22 -0
  20. data/lib/brightbox-cli/commands/groups-add-server.rb +23 -0
  21. data/lib/brightbox-cli/commands/groups-create.rb +22 -0
  22. data/lib/brightbox-cli/commands/groups-destroy.rb +23 -0
  23. data/lib/brightbox-cli/commands/groups-list.rb +16 -0
  24. data/lib/brightbox-cli/commands/groups-move_servers.rb +39 -0
  25. data/lib/brightbox-cli/commands/groups-remove-servers.rb +35 -0
  26. data/lib/brightbox-cli/commands/groups-show.rb +14 -0
  27. data/lib/brightbox-cli/commands/groups-update.rb +38 -0
  28. data/lib/brightbox-cli/commands/images-register.rb +11 -3
  29. data/lib/brightbox-cli/commands/images-update.rb +4 -0
  30. data/lib/brightbox-cli/commands/servers-create.rb +19 -8
  31. data/lib/brightbox-cli/commands/servers-list.rb +0 -3
  32. data/lib/brightbox-cli/commands/servers-show.rb +3 -39
  33. data/lib/brightbox-cli/commands/servers-stop.rb +1 -1
  34. data/lib/brightbox-cli/detailed_server.rb +43 -0
  35. data/lib/brightbox-cli/detailed_server_group.rb +13 -0
  36. data/lib/brightbox-cli/firewall_policy.rb +32 -0
  37. data/lib/brightbox-cli/firewall_rule.rb +39 -0
  38. data/lib/brightbox-cli/firewall_rules.rb +26 -0
  39. data/lib/brightbox-cli/images.rb +2 -1
  40. data/lib/brightbox-cli/server_groups.rb +64 -0
  41. data/lib/brightbox-cli/servers.rb +5 -13
  42. data/lib/brightbox-cli/vendor/fog/Rakefile +17 -2
  43. data/lib/brightbox-cli/vendor/fog/changelog.txt +434 -0
  44. data/lib/brightbox-cli/vendor/fog/docs/_layouts/default.html +12 -12
  45. data/lib/brightbox-cli/vendor/fog/docs/about/getting_started.markdown +2 -2
  46. data/lib/brightbox-cli/vendor/fog/docs/dns/index.markdown +3 -3
  47. data/lib/brightbox-cli/vendor/fog/docs/index.markdown +1 -1
  48. data/lib/brightbox-cli/vendor/fog/docs/public/css/fog.css +14 -1
  49. data/lib/brightbox-cli/vendor/fog/docs/public/images/engineyard.png +0 -0
  50. data/lib/brightbox-cli/vendor/fog/docs/public/images/fog.png +0 -0
  51. data/lib/brightbox-cli/vendor/fog/fog.gemspec +4 -4
  52. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/cloud_watch.rb +14 -0
  53. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/compute.rb +50 -19
  54. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/elasticache.rb +127 -0
  55. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/alarm.rb +12 -0
  56. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/alarm_data.rb +39 -0
  57. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/alarm_datum.rb +66 -0
  58. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/alarm_histories.rb +18 -0
  59. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/alarm_history.rb +16 -0
  60. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/cloud_watch/alarms.rb +30 -0
  61. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/compute/servers.rb +1 -1
  62. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elasticache/cluster.rb +69 -0
  63. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elasticache/clusters.rb +31 -0
  64. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elasticache/parameter_group.rb +32 -0
  65. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elasticache/parameter_groups.rb +30 -0
  66. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elasticache/security_group.rb +52 -0
  67. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/models/elasticache/security_groups.rb +30 -0
  68. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/delete_alarms.rb +26 -0
  69. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/describe_alarm_history.rb +40 -0
  70. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/describe_alarms.rb +73 -0
  71. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/describe_alarms_for_metric.rb +71 -0
  72. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/disable_alarm_actions.rb +26 -0
  73. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/enable_alarm_actions.rb +26 -0
  74. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/get_metric_statistics.rb +1 -0
  75. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/put_metric_alarm.rb +26 -0
  76. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/cloud_watch/set_alarm_state.rb +26 -0
  77. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/compute/spot_instance_requests.rb +2 -2
  78. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/change_resource_record_sets.rb +0 -0
  79. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/create_hosted_zone.rb +0 -0
  80. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/delete_hosted_zone.rb +0 -0
  81. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/get_change.rb +0 -0
  82. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/get_hosted_zone.rb +0 -0
  83. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/list_hosted_zones.rb +0 -0
  84. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/{aws → dns}/list_resource_record_sets.rb +0 -0
  85. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/authorize_cache_security_group_ingress.rb +26 -0
  86. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/base.rb +34 -0
  87. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb +79 -0
  88. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/describe_cache_clusters.rb +27 -0
  89. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/describe_cache_parameters.rb +22 -0
  90. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/describe_engine_default_parameters.rb +22 -0
  91. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/describe_parameter_groups.rb +27 -0
  92. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/describe_security_groups.rb +27 -0
  93. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/engine_defaults_parser.rb +59 -0
  94. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/event_list.rb +38 -0
  95. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/modify_parameter_group.rb +27 -0
  96. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/parameter_group_parser.rb +30 -0
  97. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/reset_parameter_group.rb +27 -0
  98. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/security_group_parser.rb +40 -0
  99. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/single_cache_cluster.rb +22 -0
  100. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/single_parameter_group.rb +22 -0
  101. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/parsers/elasticache/single_security_group.rb +34 -0
  102. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/delete_alarms.rb +30 -0
  103. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/describe_alarm_history.rb +33 -0
  104. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/describe_alarms.rb +38 -0
  105. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/describe_alarms_for_metric.rb +39 -0
  106. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/disable_alarm_actions.rb +30 -0
  107. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/enable_alarm_actions.rb +30 -0
  108. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/put_metric_alarm.rb +84 -0
  109. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/cloud_watch/set_alarm_state.rb +31 -0
  110. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/create_security_group.rb +5 -4
  111. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/create_snapshot.rb +2 -3
  112. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/create_tags.rb +5 -3
  113. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/create_volume.rb +0 -1
  114. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/delete_tags.rb +2 -3
  115. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_images.rb +5 -8
  116. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_instances.rb +2 -2
  117. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_snapshots.rb +3 -1
  118. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/describe_volumes.rb +3 -2
  119. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/modify_image_attribute.rb +32 -0
  120. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/purchase_reserved_instances_offering.rb +1 -1
  121. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/register_image.rb +0 -1
  122. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/compute/run_instances.rb +1 -2
  123. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/authorize_cache_security_group_ingress.rb +36 -0
  124. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/create_cache_cluster.rb +62 -0
  125. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/create_cache_parameter_group.rb +37 -0
  126. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/create_cache_security_group.rb +33 -0
  127. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/delete_cache_cluster.rb +32 -0
  128. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/delete_cache_parameter_group.rb +31 -0
  129. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/delete_cache_security_group.rb +31 -0
  130. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/describe_cache_clusters.rb +39 -0
  131. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/describe_cache_parameter_groups.rb +34 -0
  132. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/describe_cache_parameters.rb +36 -0
  133. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/describe_cache_security_groups.rb +34 -0
  134. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/describe_engine_default_parameters.rb +35 -0
  135. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/describe_events.rb +46 -0
  136. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/modify_cache_cluster.rb +70 -0
  137. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/modify_cache_parameter_group.rb +45 -0
  138. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/reboot_cache_cluster.rb +44 -0
  139. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/reset_cache_parameter_group.rb +46 -0
  140. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elasticache/revoke_cache_security_group_ingress.rb +37 -0
  141. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/create_load_balancer.rb +1 -1
  142. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/create_load_balancer_listeners.rb +1 -1
  143. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/deregister_instances_from_load_balancer.rb +1 -1
  144. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/describe_instance_health.rb +2 -2
  145. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/elb/register_instances_with_load_balancer.rb +1 -1
  146. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/get_server_certificate.rb +5 -7
  147. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/list_server_certificates.rb +3 -1
  148. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/iam/upload_server_certificate.rb +3 -2
  149. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/change_message_visibility.rb +30 -0
  150. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/create_queue.rb +35 -1
  151. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/delete_message.rb +29 -0
  152. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/delete_queue.rb +24 -1
  153. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/get_queue_attributes.rb +22 -1
  154. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/list_queues.rb +15 -1
  155. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/receive_message.rb +55 -1
  156. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/send_message.rb +39 -1
  157. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/sqs/set_queue_attributes.rb +19 -1
  158. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/copy_object.rb +1 -1
  159. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/get_object_acl.rb +1 -1
  160. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/requests/storage/hash_to_acl.rb +2 -3
  161. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/sqs.rb +30 -0
  162. data/lib/brightbox-cli/vendor/fog/lib/fog/aws/storage.rb +2 -1
  163. data/lib/brightbox-cli/vendor/fog/lib/fog/aws.rb +17 -14
  164. data/lib/brightbox-cli/vendor/fog/lib/fog/bin/aws.rb +4 -0
  165. data/lib/brightbox-cli/vendor/fog/lib/fog/bin/openstack.rb +31 -0
  166. data/lib/brightbox-cli/vendor/fog/lib/fog/bin.rb +1 -0
  167. data/lib/brightbox-cli/vendor/fog/lib/fog/bluebox/models/compute/server.rb +1 -1
  168. data/lib/brightbox-cli/vendor/fog/lib/fog/bluebox/requests/compute/create_template.rb +1 -1
  169. data/lib/brightbox-cli/vendor/fog/lib/fog/bluebox.rb +2 -2
  170. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/compute.rb +5 -0
  171. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/account.rb +1 -1
  172. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/firewall_policies.rb +29 -0
  173. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/firewall_policy.rb +65 -0
  174. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/firewall_rule.rb +54 -0
  175. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/firewall_rules.rb +24 -0
  176. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/image.rb +2 -0
  177. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/server.rb +27 -2
  178. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/models/compute/server_group.rb +1 -1
  179. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox/requests/compute/remove_firewall_policy.rb +14 -0
  180. data/lib/brightbox-cli/vendor/fog/lib/fog/brightbox.rb +1 -1
  181. data/lib/brightbox-cli/vendor/fog/lib/fog/compute/models/server.rb +1 -2
  182. data/lib/brightbox-cli/vendor/fog/lib/fog/compute.rb +3 -0
  183. data/lib/brightbox-cli/vendor/fog/lib/fog/core/attributes.rb +5 -5
  184. data/lib/brightbox-cli/vendor/fog/lib/fog/core/credentials.rb +5 -0
  185. data/lib/brightbox-cli/vendor/fog/lib/fog/core/errors.rb +4 -0
  186. data/lib/brightbox-cli/vendor/fog/lib/fog/core/provider.rb +9 -4
  187. data/lib/brightbox-cli/vendor/fog/lib/fog/dnsimple.rb +1 -1
  188. data/lib/brightbox-cli/vendor/fog/lib/fog/dnsmadeeasy.rb +1 -1
  189. data/lib/brightbox-cli/vendor/fog/lib/fog/dynect.rb +1 -1
  190. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud/compute.rb +1 -5
  191. data/lib/brightbox-cli/vendor/fog/lib/fog/ecloud.rb +1 -1
  192. data/lib/brightbox-cli/vendor/fog/lib/fog/glesys/compute.rb +20 -4
  193. data/lib/brightbox-cli/vendor/fog/lib/fog/glesys/models/compute/templates.rb +0 -6
  194. data/lib/brightbox-cli/vendor/fog/lib/fog/glesys.rb +1 -1
  195. data/lib/brightbox-cli/vendor/fog/lib/fog/go_grid.rb +1 -1
  196. data/lib/brightbox-cli/vendor/fog/lib/fog/google.rb +1 -1
  197. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/models/compute/server.rb +1 -1
  198. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt/models/compute/uri.rb +7 -3
  199. data/lib/brightbox-cli/vendor/fog/lib/fog/libvirt.rb +1 -1
  200. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/models/compute/server.rb +10 -0
  201. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_create.rb +3 -3
  202. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_delete.rb +0 -0
  203. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_list.rb +1 -1
  204. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_resource_create.rb +8 -8
  205. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_resource_delete.rb +0 -0
  206. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_resource_list.rb +8 -8
  207. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_resource_update.rb +9 -9
  208. data/lib/brightbox-cli/vendor/fog/lib/fog/linode/{models/dns/linode → requests/dns}/domain_update.rb +5 -5
  209. data/lib/brightbox-cli/vendor/fog/lib/fog/linode.rb +2 -2
  210. data/lib/brightbox-cli/vendor/fog/lib/fog/local/models/storage/directories.rb +33 -0
  211. data/lib/brightbox-cli/vendor/fog/lib/fog/local/models/storage/directory.rb +57 -0
  212. data/lib/brightbox-cli/vendor/fog/lib/fog/local/models/storage/file.rb +113 -0
  213. data/lib/brightbox-cli/vendor/fog/lib/fog/local/models/storage/files.rb +87 -0
  214. data/lib/brightbox-cli/vendor/fog/lib/fog/local/storage.rb +71 -0
  215. data/lib/brightbox-cli/vendor/fog/lib/fog/local.rb +1 -1
  216. data/lib/brightbox-cli/vendor/fog/lib/fog/new_servers.rb +1 -1
  217. data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold/compute.rb +1 -1
  218. data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold/models/compute/server.rb +2 -1
  219. data/lib/brightbox-cli/vendor/fog/lib/fog/ninefold.rb +2 -2
  220. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/compute.rb +198 -0
  221. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/flavor.rb +20 -0
  222. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/flavors.rb +28 -0
  223. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/image.rb +57 -0
  224. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/images.rb +33 -0
  225. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/meta.rb +29 -0
  226. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/metadata.rb +69 -0
  227. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/server.rb +195 -0
  228. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/compute/servers.rb +36 -0
  229. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/models/meta_parent.rb +33 -0
  230. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/change_password_server.rb +24 -0
  231. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/confirm_resized_server.rb +24 -0
  232. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/create_image.rb +49 -0
  233. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/create_server.rb +75 -0
  234. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/delete_image.rb +40 -0
  235. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/delete_meta.rb +28 -0
  236. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/delete_server.rb +38 -0
  237. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/get_flavor_details.rb +43 -0
  238. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/get_image_details.rb +33 -0
  239. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/get_meta.rb +29 -0
  240. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/get_server_details.rb +32 -0
  241. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_addresses.rb +32 -0
  242. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_flavors.rb +38 -0
  243. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_flavors_detail.rb +38 -0
  244. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_images.rb +33 -0
  245. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_images_detail.rb +39 -0
  246. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_metadata.rb +28 -0
  247. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_private_addresses.rb +32 -0
  248. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_public_addresses.rb +32 -0
  249. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_servers.rb +33 -0
  250. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/list_servers_detail.rb +39 -0
  251. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/reboot_server.rb +24 -0
  252. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/rebuild_server.rb +31 -0
  253. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/resize_server.rb +24 -0
  254. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/revert_resized_server.rb +30 -0
  255. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/server_action.rb +18 -0
  256. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/set_metadata.rb +45 -0
  257. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/update_meta.rb +45 -0
  258. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/update_metadata.rb +46 -0
  259. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack/requests/compute/update_server.rb +35 -0
  260. data/lib/brightbox-cli/vendor/fog/lib/fog/openstack.rb +113 -0
  261. data/lib/brightbox-cli/vendor/fog/lib/fog/providers.rb +1 -0
  262. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/dns.rb +25 -0
  263. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace/requests/dns/callback.rb +3 -2
  264. data/lib/brightbox-cli/vendor/fog/lib/fog/rackspace.rb +5 -5
  265. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/create_record.rb +2 -2
  266. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/create_zone.rb +1 -1
  267. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/delete_record.rb +0 -0
  268. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/delete_zone.rb +0 -0
  269. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/get_record.rb +2 -2
  270. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/get_records.rb +1 -1
  271. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/get_zone.rb +0 -0
  272. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost/{parsers/dns/slicehost → requests/dns}/get_zones.rb +0 -0
  273. data/lib/brightbox-cli/vendor/fog/lib/fog/slicehost.rb +2 -2
  274. data/lib/brightbox-cli/vendor/fog/lib/fog/storm_on_demand.rb +1 -1
  275. data/lib/brightbox-cli/vendor/fog/lib/fog/vcloud.rb +1 -1
  276. data/lib/brightbox-cli/vendor/fog/lib/fog/virtual_box.rb +1 -1
  277. data/lib/brightbox-cli/vendor/fog/lib/fog/vmfusion/models/compute/servers.rb +6 -6
  278. data/lib/brightbox-cli/vendor/fog/lib/fog/vmfusion.rb +1 -1
  279. data/lib/brightbox-cli/vendor/fog/lib/fog/voxel.rb +1 -1
  280. data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere/compute.rb +0 -2
  281. data/lib/brightbox-cli/vendor/fog/lib/fog/vsphere.rb +1 -1
  282. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/dns.rb +14 -3
  283. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/models/dns/record.rb +1 -1
  284. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/models/dns/records.rb +5 -0
  285. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/models/dns/zones.rb +2 -2
  286. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/count_hosts.rb +20 -1
  287. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/count_zones.rb +12 -1
  288. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/create_host.rb +67 -1
  289. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/create_zone.rb +44 -1
  290. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/delete_host.rb +19 -0
  291. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/delete_zone.rb +17 -0
  292. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/find_hosts.rb +22 -1
  293. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/get_host.rb +18 -1
  294. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/get_zone.rb +19 -2
  295. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/get_zone_stats.rb +23 -0
  296. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/list_hosts.rb +20 -1
  297. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/list_zones.rb +15 -0
  298. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/update_host.rb +20 -1
  299. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo/requests/dns/update_zone.rb +20 -1
  300. data/lib/brightbox-cli/vendor/fog/lib/fog/zerigo.rb +1 -1
  301. data/lib/brightbox-cli/vendor/fog/lib/fog.rb +1 -1
  302. data/lib/brightbox-cli/vendor/fog/tests/aws/models/cloud_watch/alarm_data_tests.rb +40 -0
  303. data/lib/brightbox-cli/vendor/fog/tests/aws/models/cloud_watch/alarm_history_tests.rb +20 -0
  304. data/lib/brightbox-cli/vendor/fog/tests/aws/models/compute/server_tests.rb +2 -0
  305. data/lib/brightbox-cli/vendor/fog/tests/aws/models/elasticache/cluster_tests.rb +30 -0
  306. data/lib/brightbox-cli/vendor/fog/tests/aws/models/elasticache/parameter_groups_tests.rb +17 -0
  307. data/lib/brightbox-cli/vendor/fog/tests/aws/models/elasticache/security_groups_tests.rb +52 -0
  308. data/lib/brightbox-cli/vendor/fog/tests/aws/models/elb/model_tests.rb +2 -0
  309. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/cloud_watch/list_metrics_test.rb +5 -5
  310. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/image_tests.rb +33 -2
  311. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/compute/tag_tests.rb +40 -0
  312. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elasticache/cache_cluster_tests.rb +137 -0
  313. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elasticache/describe_events.rb +17 -0
  314. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elasticache/helper.rb +68 -0
  315. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elasticache/parameter_group_tests.rb +105 -0
  316. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/elasticache/security_group_tests.rb +107 -0
  317. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/iam/server_certificate_tests.rb +39 -18
  318. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/simpledb/attributes_tests.rb +18 -18
  319. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/simpledb/domain_tests.rb +7 -7
  320. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/sqs/message_tests.rb +1 -7
  321. data/lib/brightbox-cli/vendor/fog/tests/aws/requests/sqs/queue_tests.rb +0 -5
  322. data/lib/brightbox-cli/vendor/fog/tests/brightbox/requests/compute/load_balancer_tests.rb +1 -0
  323. data/lib/brightbox-cli/vendor/fog/tests/compute/models/flavors_tests.rb +1 -1
  324. data/lib/brightbox-cli/vendor/fog/tests/core/attribute_tests.rb +29 -0
  325. data/lib/brightbox-cli/vendor/fog/tests/core/credential_tests.rb +2 -0
  326. data/lib/brightbox-cli/vendor/fog/tests/helper.rb +1 -1
  327. data/lib/brightbox-cli/vendor/fog/tests/helpers/collection_helper.rb +5 -0
  328. data/lib/brightbox-cli/vendor/fog/tests/helpers/compute/server_helper.rb +1 -0
  329. data/lib/brightbox-cli/vendor/fog/tests/helpers/formats_helper.rb +16 -8
  330. data/lib/brightbox-cli/vendor/fog/tests/helpers/formats_helper_tests.rb +8 -0
  331. data/lib/brightbox-cli/vendor/fog/tests/helpers/mock_helper.rb +6 -2
  332. data/lib/brightbox-cli/vendor/fog/tests/linode/requests/compute/linodeplans_tests.rb +2 -1
  333. data/lib/brightbox-cli/vendor/fog/tests/ninefold/requests/compute/helper.rb +14 -17
  334. data/lib/brightbox-cli/vendor/fog/tests/openstack/requests/compute/flavor_tests.rb +35 -0
  335. data/lib/brightbox-cli/vendor/fog/tests/openstack/requests/compute/helper.rb +17 -0
  336. data/lib/brightbox-cli/vendor/fog/tests/openstack/requests/compute/image_tests.rb +59 -0
  337. data/lib/brightbox-cli/vendor/fog/tests/openstack/requests/compute/server_tests.rb +142 -0
  338. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/dns/dns_tests.rb +21 -21
  339. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/dns/helper.rb +17 -9
  340. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/dns/records_tests.rb +16 -16
  341. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{access_list_tests.rb → load_balancers/access_list_tests.rb} +0 -0
  342. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{algorithm_tests.rb → load_balancers/algorithm_tests.rb} +0 -0
  343. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{connection_logging_tests.rb → load_balancers/connection_logging_tests.rb} +0 -0
  344. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{connection_throttling_tests.rb → load_balancers/connection_throttling_tests.rb} +0 -0
  345. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{helper.rb → load_balancers/helper.rb} +12 -1
  346. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{load_balancer_tests.rb → load_balancers/load_balancer_tests.rb} +1 -1
  347. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{load_balancer_usage_tests.rb → load_balancers/load_balancer_usage_tests.rb} +0 -0
  348. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{monitor_tests.rb → load_balancers/monitor_tests.rb} +0 -0
  349. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{node_tests.rb → load_balancers/node_tests.rb} +0 -0
  350. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{protocol_tests.rb → load_balancers/protocol_tests.rb} +0 -0
  351. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{session_persistence_tests.rb → load_balancers/session_persistence_tests.rb} +0 -0
  352. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{usage_tests.rb → load_balancers/usage_tests.rb} +0 -0
  353. data/lib/brightbox-cli/vendor/fog/tests/rackspace/requests/{virtual_ip_tests.rb → load_balancers/virtual_ip_tests.rb} +2 -2
  354. data/lib/brightbox-cli/vendor/fog/tests/vsphere/requests/compute/vm_clone_tests.rb +2 -1
  355. data/lib/brightbox-cli/version.rb +1 -1
  356. data/lib/brightbox_cli.rb +16 -10
  357. data/spec/cloud_ips_spec.rb +17 -0
  358. data/spec/firewall_policy_spec.rb +78 -0
  359. data/spec/firewall_rule_spec.rb +74 -0
  360. data/spec/fixtures/vcr_cassettes/apply_firewall_policy.yml +137 -0
  361. data/spec/fixtures/vcr_cassettes/create_firewall_policy.yml +104 -0
  362. data/spec/fixtures/vcr_cassettes/destroy_firewall_policy.yml +137 -0
  363. data/spec/fixtures/vcr_cassettes/firewall_rule.yml +36 -0
  364. data/spec/fixtures/vcr_cassettes/firewall_rule_create.yml +36 -0
  365. data/spec/fixtures/vcr_cassettes/firewall_rule_destroy.yml +69 -0
  366. data/spec/fixtures/vcr_cassettes/firewall_rule_list.yml +36 -0
  367. data/spec/fixtures/vcr_cassettes/firewall_rule_show.yml +36 -0
  368. data/spec/fixtures/vcr_cassettes/list_cloud_ip.yml +36 -0
  369. data/spec/fixtures/vcr_cassettes/list_firewall_policy.yml +36 -0
  370. data/spec/fixtures/vcr_cassettes/list_server_groups.yml +36 -0
  371. data/spec/fixtures/vcr_cassettes/server_destroy.yml +71 -0
  372. data/spec/fixtures/vcr_cassettes/server_show.yml +141 -0
  373. data/spec/fixtures/vcr_cassettes/server_shutdown.yml +104 -0
  374. data/spec/fixtures/vcr_cassettes/server_start.yml +137 -0
  375. data/spec/fixtures/vcr_cassettes/server_stop.yml +104 -0
  376. data/spec/fixtures/vcr_cassettes/show_firewall_policy.yml +36 -0
  377. data/spec/server_group_spec.rb +15 -0
  378. data/spec/servers_spec.rb +75 -0
  379. data/spec/spec_helper.rb +0 -3
  380. data/tools/bash_completion_script +269 -122
  381. metadata +224 -41
@@ -53,7 +53,7 @@ module Fog
53
53
  when /^vol\-[a-z0-9]{8}$/i
54
54
  'volume'
55
55
  end
56
- if type && self.data[:"#{type}s"][resource_id]
56
+ if type && ((type == 'image' && visible_images[resource_id]) || self.data[:"#{type}s"][resource_id])
57
57
  { 'resourceId' => resource_id, 'resourceType' => type }
58
58
  else
59
59
  raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
@@ -64,8 +64,10 @@ module Fog
64
64
  self.data[:tags][key] ||= {}
65
65
  self.data[:tags][key][value] ||= []
66
66
  self.data[:tags][key][value] |= tagged
67
-
68
- tagged.each {|resource| self.data[:"#{resource['resourceType']}s"][resource['resourceId']]['tagSet'][key] = value}
67
+
68
+ tagged.each do |resource|
69
+ self.data[:tag_sets][resource['resourceId']][key] = value
70
+ end
69
71
  end
70
72
 
71
73
  response = Excon::Response.new
@@ -60,7 +60,6 @@ module Fog
60
60
  'size' => size,
61
61
  'snapshotId' => snapshot_id,
62
62
  'status' => 'creating',
63
- 'tagSet' => {},
64
63
  'volumeId' => volume_id
65
64
  }
66
65
  self.data[:volumes][volume_id] = data
@@ -53,7 +53,7 @@ module Fog
53
53
  when /^vol\-[a-z0-9]{8}$/i
54
54
  'volume'
55
55
  end
56
- if type && self.data[:"#{type}s"][resource_id]
56
+ if type && ((type == 'image' && visible_images[resource_id]) || self.data[:"#{type}s"][resource_id])
57
57
  { 'resourceId' => resource_id, 'resourceType' => type }
58
58
  else
59
59
  raise(Fog::Service::NotFound.new("The #{type} ID '#{resource_id}' does not exist"))
@@ -65,9 +65,8 @@ module Fog
65
65
  end
66
66
 
67
67
  tagged.each do |resource|
68
- object = self.data[:"#{resource['resourceType']}s"][resource['resourceId']]
69
68
  tags.each do |key, value|
70
- tagset = object['tagSet']
69
+ tagset = self.data[:tag_sets][resource['resourceId']]
71
70
  tagset.delete(key) if tagset.has_key?(key) && (value.nil? || tagset[key] == value)
72
71
  end
73
72
  end
@@ -98,15 +98,12 @@ module Fog
98
98
  'virtualization-type' => 'virtualizationType'
99
99
  }
100
100
 
101
- image_set = self.data[:images].values
101
+ image_set = visible_images.values
102
+ image_set = apply_tag_filters(image_set, filters, 'imageId')
102
103
 
103
104
  for filter_key, filter_value in filters
104
- if tag_key = filter_key.split('tag:')[1]
105
- image_set = image_set.reject{|image| ![*filter_value].include?(image['tagSet'][tag_key])}
106
- else
107
- aliased_key = aliases[filter_key]
108
- image_set = image_set.reject{|image| ![*filter_value].include?(image[aliased_key])}
109
- end
105
+ aliased_key = aliases[filter_key]
106
+ image_set = image_set.reject{|image| ![*filter_value].include?(image[aliased_key])}
110
107
  end
111
108
 
112
109
  image_set = image_set.map do |image|
@@ -116,7 +113,7 @@ module Fog
116
113
  image['imageState'] = 'available'
117
114
  end
118
115
  end
119
- image.reject { |key, value| ['registered'].include?(key) }
116
+ image.reject { |key, value| ['registered'].include?(key) }.merge('tagSet' => self.data[:tag_sets][image['imageId']])
120
117
  end
121
118
 
122
119
  response.status = 200
@@ -88,7 +88,7 @@ module Fog
88
88
  response = Excon::Response.new
89
89
 
90
90
  instance_set = self.data[:instances].values
91
- instance_set = apply_tag_filters(instance_set, filters)
91
+ instance_set = apply_tag_filters(instance_set, filters, 'instanceId')
92
92
 
93
93
  aliases = {
94
94
  'architecture' => 'architecture',
@@ -196,7 +196,7 @@ module Fog
196
196
  'ownerId' => instance['ownerId'],
197
197
  'reservationId' => instance['reservationId']
198
198
  }
199
- reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'architecture', 'blockDeviceMapping', 'clientToken', 'dnsName', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'ipAddress', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'placement', 'platform', 'privateDnsName', 'privateIpAddress', 'productCodes', 'ramdiskId', 'reason', 'rootDeviceType', 'stateReason', 'tagSet'].include?(key)}
199
+ reservation_set[instance['reservationId']]['instancesSet'] << instance.reject{|key,value| !['amiLaunchIndex', 'architecture', 'blockDeviceMapping', 'clientToken', 'dnsName', 'imageId', 'instanceId', 'instanceState', 'instanceType', 'ipAddress', 'kernelId', 'keyName', 'launchTime', 'monitoring', 'placement', 'platform', 'privateDnsName', 'privateIpAddress', 'productCodes', 'ramdiskId', 'reason', 'rootDeviceType', 'stateReason'].include?(key)}.merge('tagSet' => self.data[:tag_sets][instance['instanceId']])
200
200
  end
201
201
  end
202
202
 
@@ -72,7 +72,7 @@ module Fog
72
72
  Fog::Logger.warning("describe_snapshots with RestorableBy other than 'self' (wanted #{restorable_by.inspect}) is not mocked [light_black](#{caller.first})[/]")
73
73
  end
74
74
 
75
- snapshot_set = apply_tag_filters(snapshot_set, filters)
75
+ snapshot_set = apply_tag_filters(snapshot_set, filters, 'snapshotId')
76
76
 
77
77
  aliases = {
78
78
  'description' => 'description',
@@ -106,6 +106,8 @@ module Fog
106
106
  end
107
107
  end
108
108
 
109
+ snapshot_set = snapshot_set.map {|snapshot| snapshot.merge('tagSet' => self.data[:tag_sets][snapshot['snapshotId']]) }
110
+
109
111
  response.status = 200
110
112
  response.body = {
111
113
  'requestId' => Fog::AWS::Mock.request_id,
@@ -55,8 +55,8 @@ module Fog
55
55
  response = Excon::Response.new
56
56
 
57
57
  volume_set = self.data[:volumes].values
58
- volume_set = apply_tag_filters(volume_set, filters)
59
-
58
+ volume_set = apply_tag_filters(volume_set, filters, 'volumeId')
59
+
60
60
  aliases = {
61
61
  'availability-zone' => 'availabilityZone',
62
62
  'create-time' => 'createTime',
@@ -102,6 +102,7 @@ module Fog
102
102
  end
103
103
  end
104
104
  volume_set = volume_set.reject {|volume| !self.data[:volumes][volume['volumeId']]}
105
+ volume_set = volume_set.map {|volume| volume.merge('tagSet' => self.data[:tag_sets][volume['volumeId']]) }
105
106
 
106
107
  response.status = 200
107
108
  response.body = {
@@ -37,6 +37,38 @@ module Fog
37
37
  end
38
38
 
39
39
  end
40
+
41
+ class Mock
42
+
43
+ def modify_image_attribute(image_id, attributes)
44
+ raise ArgumentError.new("image_id is required") unless image_id
45
+
46
+ unless self.data[:images][image_id]
47
+ raise Fog::Compute::AWS::NotFound.new("The AMI ID '#{image_id}' does not exist")
48
+ end
49
+
50
+ (attributes['Add.UserId'] || []).each do |user_id|
51
+ if image_launch_permissions = self.data[:image_launch_permissions][image_id]
52
+ image_launch_permissions[:users].push(user_id)
53
+ end
54
+ end
55
+
56
+ (attributes['Remove.UserId'] || []).each do |user_id|
57
+ if image_launch_permissions = self.data[:image_launch_permissions][image_id]
58
+ image_launch_permissions[:users].delete(user_id)
59
+ end
60
+ end
61
+
62
+ response = Excon::Response.new
63
+ response.status = 200
64
+ response.body = {
65
+ 'return' => true,
66
+ 'requestId' => Fog::AWS::Mock.request_id
67
+ }
68
+ response
69
+ end
70
+
71
+ end
40
72
  end
41
73
  end
42
74
  end
@@ -37,7 +37,7 @@ module Fog
37
37
 
38
38
  # Need to implement filters in the mock to find this there instead of here
39
39
  # Also there's no information about what to do when the specified reserved_instances_offering_id doesn't exist
40
- raise unless reserved_instance_offering = Compute[:aws].describe_reserved_instances_offerings.body["reservedInstancesOfferingsSet"].find { |offering| offering["reservedInstancesOfferingId"] == reserved_instances_offering_id }
40
+ raise unless reserved_instance_offering = describe_reserved_instances_offerings.body["reservedInstancesOfferingsSet"].find { |offering| offering["reservedInstancesOfferingId"] == reserved_instances_offering_id }
41
41
 
42
42
  reserved_instances_id = Fog::AWS::Mock.reserved_instances_id
43
43
  reserved_instance_offering.delete('reservedInstancesOfferingId')
@@ -86,7 +86,6 @@ module Fog
86
86
  'rootDeviceName' => '',
87
87
  'blockDeviceMapping' => [],
88
88
  'virtualizationType' => 'paravirtual',
89
- 'tagSet' => {},
90
89
  'hypervisor' => 'xen',
91
90
  'registered' => Time.now
92
91
  }
@@ -157,8 +157,7 @@ module Fog
157
157
  'ownerId' => self.data[:owner_id],
158
158
  'privateIpAddress' => nil,
159
159
  'reservationId' => reservation_id,
160
- 'stateReason' => {},
161
- 'tagSet' => {}
160
+ 'stateReason' => {}
162
161
  })
163
162
  end
164
163
  response.body = {
@@ -0,0 +1,36 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/single_security_group'
7
+
8
+ # Authorize ingress to a CacheSecurityGroup using EC2 Security Groups
9
+ #
10
+ # === Parameters
11
+ # * name <~String> - The name of the cache security group
12
+ # * ec2_name <~String> - The name of the EC2 security group to authorize
13
+ # * ec2_owner_id <~String> - The AWS Account Number of the EC2 security group
14
+ # === Returns
15
+ # * response <~Excon::Response>:
16
+ # * body <~Hash>
17
+ def authorize_cache_security_group_ingress(name, ec2_name, ec2_owner_id)
18
+ request({
19
+ 'Action' => 'AuthorizeCacheSecurityGroupIngress',
20
+ 'CacheSecurityGroupName' => name,
21
+ 'EC2SecurityGroupName' => ec2_name,
22
+ 'EC2SecurityGroupOwnerId' => ec2_owner_id,
23
+ :parser => Fog::Parsers::AWS::Elasticache::SingleSecurityGroup.new
24
+ })
25
+ end
26
+
27
+ end
28
+
29
+ class Mock
30
+ def authorize_cache_security_group_ingress
31
+ Fog::Mock.not_implemented
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,62 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/single_cache_cluster'
7
+ # creates a cache cluster
8
+ #
9
+ # === Required Parameters
10
+ # * id <~String> - A unique cluster ID - 20 characters max.
11
+ # === Optional Parameters
12
+ # * options <~Hash> - All optional parameters should be set in this Hash:
13
+ # * :node_type <~String> - The size (flavor) of the cache Nodes
14
+ # * :security_group_names <~Array> - Array of Elasticache::SecurityGroup names
15
+ # * :num_nodes <~Integer> - The number of nodes in the Cluster
16
+ # * :auto_minor_version_upgrade <~TrueFalseClass>
17
+ # * :parameter_group_name <~String> - Name of the Cluster's ParameterGroup
18
+ # * :engine <~String> - The Cluster's caching software (memcached)
19
+ # * :engine_version <~String> - The Cluster's caching software version
20
+ # * :notification_topic_arn <~String> - Amazon SNS Resource Name
21
+ # * :port <~Integer> - The memcached port number
22
+ # * :preferred_availablility_zone <~String>
23
+ # * :preferred_maintenance_window <~String>
24
+ # === Returns
25
+ # * response <~Excon::Response>:
26
+ # * body <~Hash>
27
+ def create_cache_cluster(id, options = {})
28
+ # Construct Cache Security Group parameters in the format:
29
+ # CacheSecurityGroupNames.member.N => "security_group_name"
30
+ group_names = options[:security_group_names] || ['default']
31
+ sec_group_params = group_names.inject({}) do |group_hash, name|
32
+ index = group_names.index(name) + 1
33
+ group_hash["CacheSecurityGroupNames.member.#{index}"] = name
34
+ group_hash
35
+ end
36
+ # Merge the Cache Security Group parameters with the normal options
37
+ request(sec_group_params.merge(
38
+ 'Action' => 'CreateCacheCluster',
39
+ 'CacheClusterId' => id,
40
+ 'CacheNodeType' => options[:node_type] || 'cache.m1.large',
41
+ 'Engine' => options[:engine] || 'memcached',
42
+ 'NumCacheNodes' => options[:num_nodes] || 1,
43
+ 'AutoMinorVersionUpgrade' => options[:auto_minor_version_upgrade],
44
+ 'CacheParameterGroupName' => options[:parameter_group_name],
45
+ 'EngineVersion' => options[:engine_version],
46
+ 'NotificationTopicArn' => options[:notification_topic_arn],
47
+ 'Port' => options[:port],
48
+ 'PreferredAvailabilityZone' => options[:preferred_availablility_zone],
49
+ 'PreferredMaintenanceWindow' => options[:preferred_maintenance_window],
50
+ :parser => Fog::Parsers::AWS::Elasticache::SingleCacheCluster.new
51
+ ))
52
+ end
53
+ end
54
+
55
+ class Mock
56
+ def create_cache_cluster(id, options = {})
57
+ Fog::Mock.not_implemented
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/single_parameter_group'
7
+
8
+ # creates a cache parameter group
9
+ #
10
+ # === Parameters
11
+ # * name <~String> - The name for the Cache Parameter Group
12
+ # === Optional Parameters
13
+ # * description <~String> - The description for the Cache Parameter Group
14
+ # * family <~String> - The description for the Cache Parameter Group
15
+ # === Returns
16
+ # * response <~Excon::Response>:
17
+ # * body <~Hash>
18
+ def create_cache_parameter_group(name, description = name, family = 'memcached1.4')
19
+ request({
20
+ 'Action' => 'CreateCacheParameterGroup',
21
+ 'CacheParameterGroupName' => name,
22
+ 'Description' => description,
23
+ 'CacheParameterGroupFamily' => family,
24
+ :parser => Fog::Parsers::AWS::Elasticache::SingleParameterGroup.new
25
+ })
26
+ end
27
+ end
28
+
29
+ class Mock
30
+ def create_cache_parameter_group(name, description = name,
31
+ family = 'memcached1.4')
32
+ Fog::Mock.not_implemented
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,33 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/single_security_group'
7
+
8
+ # creates a cache security group
9
+ #
10
+ # === Parameters
11
+ # * name <~String> - The name for the Cache Security Group
12
+ # * description <~String> - The description for the Cache Security Group
13
+ # === Returns
14
+ # * response <~Excon::Response>:
15
+ # * body <~Hash>
16
+ def create_cache_security_group(name, description = name)
17
+ request({
18
+ 'Action' => 'CreateCacheSecurityGroup',
19
+ 'CacheSecurityGroupName' => name,
20
+ 'Description' => description,
21
+ :parser => Fog::Parsers::AWS::Elasticache::SingleSecurityGroup.new
22
+ })
23
+ end
24
+ end
25
+
26
+ class Mock
27
+ def create_cache_security_group(name, desciption=name)
28
+ Fog::Mock.not_implemented
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,32 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/describe_cache_clusters'
7
+
8
+ # Deletes a Cache Cluster
9
+ #
10
+ # === Parameter (required):
11
+ # * id <~String> - The ID of the cache cluster to delete
12
+ # === Returns
13
+ # * response <~Excon::Response>:
14
+ # * body <~Hash>
15
+ def delete_cache_cluster(cluster_id)
16
+ request(
17
+ 'Action' => 'DeleteCacheCluster',
18
+ 'CacheClusterId' => cluster_id,
19
+ :parser => Fog::Parsers::AWS::Elasticache::DescribeCacheClusters.new
20
+ )
21
+ end
22
+
23
+ end
24
+
25
+ class Mock
26
+ def delete_cache_cluster(cluster_id)
27
+ Fog::Mock.not_implemented
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/base'
7
+
8
+ # deletes a cache parameter group
9
+ #
10
+ # === Parameters
11
+ # * name <~String> - The name for the Cache Parameter Group
12
+ # === Returns
13
+ # * response <~Excon::Response>:
14
+ # * body <~Hash>
15
+ def delete_cache_parameter_group(name)
16
+ request({
17
+ 'Action' => 'DeleteCacheParameterGroup',
18
+ 'CacheParameterGroupName' => name,
19
+ :parser => Fog::Parsers::AWS::Elasticache::Base.new
20
+ })
21
+ end
22
+ end
23
+
24
+ class Mock
25
+ def delete_cache_parameter_group(name)
26
+ Fog::Mock.not_implemented
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/base'
7
+
8
+ # deletes a cache security group
9
+ #
10
+ # === Parameters
11
+ # * name <~String> - The name for the Cache Security Group
12
+ # === Returns
13
+ # * response <~Excon::Response>:
14
+ # * body <~Hash>
15
+ def delete_cache_security_group(name)
16
+ request({
17
+ 'Action' => 'DeleteCacheSecurityGroup',
18
+ 'CacheSecurityGroupName' => name,
19
+ :parser => Fog::Parsers::AWS::Elasticache::Base.new
20
+ })
21
+ end
22
+ end
23
+
24
+ class Mock
25
+ def delete_cache_security_group(name)
26
+ Fog::Mock.not_implemented
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,39 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/describe_cache_clusters'
7
+
8
+ # Returns a list of Cache Cluster descriptions
9
+ #
10
+ # === Parameters (optional)
11
+ # * id - The ID of an existing cache cluster
12
+ # * options <~Hash> (optional):
13
+ # * :marker <~String> - marker provided in the previous request
14
+ # * :max_records <~Integer> - the maximum number of records to include
15
+ # * :show_node_info <~Boolean> - whether to show node info
16
+ # === Returns
17
+ # * response <~Excon::Response>:
18
+ # * body <~Hash>
19
+ def describe_cache_clusters(id = nil, options = {})
20
+ request({
21
+ 'Action' => 'DescribeCacheClusters',
22
+ 'CacheClusterId' => id,
23
+ 'Marker' => options[:marker],
24
+ 'MaxRecords' => options[:max_records],
25
+ 'ShowCacheNodeInfo' => options[:show_node_info],
26
+ :parser => Fog::Parsers::AWS::Elasticache::DescribeCacheClusters.new
27
+ })
28
+ end
29
+
30
+ end
31
+
32
+ class Mock
33
+ def describe_cache_clusters(id = nil, options = {})
34
+ Fog::Mock.not_implemented
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/describe_parameter_groups'
7
+
8
+ # Returns a list of CacheParameterGroup descriptions
9
+ #
10
+ # === Parameters (optional)
11
+ # * name <~String> - The name of an existing cache parameter group
12
+ # * options <~Hash> (optional):
13
+ # * :marker <~String> - marker provided in the previous request
14
+ # * :max_records <~Integer> - the maximum number of records to include
15
+ def describe_cache_parameter_groups(name = nil, options = {})
16
+ request({
17
+ 'Action' => 'DescribeCacheParameterGroups',
18
+ 'CacheParameterGroupName' => name,
19
+ 'Marker' => options[:marker],
20
+ 'MaxRecords' => options[:max_records],
21
+ :parser => Fog::Parsers::AWS::Elasticache::DescribeParameterGroups.new
22
+ }.merge(options))
23
+ end
24
+
25
+ end
26
+
27
+ class Mock
28
+ def describe_cache_parameter_groups(name = nil, options = {})
29
+ Fog::Mock.not_implemented
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,36 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/describe_cache_parameters'
7
+
8
+ # Returns a list of CacheParameterGroup descriptions
9
+ #
10
+ # === Parameters (optional)
11
+ # * name <~String> - The name of an existing cache parameter group
12
+ # * options <~Hash> (optional):
13
+ # * :marker <~String> - marker provided in the previous request
14
+ # * :max_records <~Integer> - the maximum number of records to include
15
+ # * :source <~String> - the parameter types to return.
16
+ def describe_cache_parameters(name = nil, options = {})
17
+ request({
18
+ 'Action' => 'DescribeCacheParameters',
19
+ 'CacheParameterGroupName' => name,
20
+ 'Marker' => options[:marker],
21
+ 'MaxRecords' => options[:max_records],
22
+ 'Source' => options[:source],
23
+ :parser => Fog::Parsers::AWS::Elasticache::DescribeCacheParameters.new
24
+ })
25
+ end
26
+
27
+ end
28
+
29
+ class Mock
30
+ def describe_cache_parameters(name = nil, options = {})
31
+ Fog::Mock.not_implemented
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,34 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/describe_security_groups'
7
+
8
+ # Returns a list of CacheSecurityGroup descriptions
9
+ #
10
+ # === Parameters (optional)
11
+ # * name <~String> - The name of an existing cache security group
12
+ # * options <~Hash> (optional):
13
+ # * :marker <~String> - marker provided in the previous request
14
+ # * :max_records <~Integer> - the maximum number of records to include
15
+ def describe_cache_security_groups(name = nil, options = {})
16
+ request({
17
+ 'Action' => 'DescribeCacheSecurityGroups',
18
+ 'CacheSecurityGroupName' => name,
19
+ 'Marker' => options[:marker],
20
+ 'MaxRecords' => options[:max_records],
21
+ :parser => Fog::Parsers::AWS::Elasticache::DescribeSecurityGroups.new
22
+ }.merge(options))
23
+ end
24
+
25
+ end
26
+
27
+ class Mock
28
+ def describe_cache_security_groups(name = nil, options = {})
29
+ Fog::Mock.not_implemented
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module AWS
3
+ class Elasticache
4
+ class Real
5
+
6
+ require 'fog/aws/parsers/elasticache/describe_engine_default_parameters'
7
+
8
+ # Returns the default engine and system parameter information
9
+ # for the specified cache engine.
10
+ #
11
+ # === Parameters (optional)
12
+ # * options <~Hash>:
13
+ # * :engine <~String> - the engine whose parameters are requested
14
+ # * :marker <~String> - marker provided in the previous request
15
+ # * :max_records <~Integer> - the maximum number of records to include
16
+ def describe_engine_default_parameters(options = {})
17
+ request({
18
+ 'Action' => 'DescribeEngineDefaultParameters',
19
+ 'CacheParameterGroupFamily' => options[:engine] || 'memcached1.4',
20
+ 'Marker' => options[:marker],
21
+ 'MaxRecords' => options[:max_records],
22
+ :parser => Fog::Parsers::AWS::Elasticache::DescribeEngineDefaultParameters.new
23
+ })
24
+ end
25
+
26
+ end
27
+
28
+ class Mock
29
+ def describe_engine_defalut_parameters(options = {})
30
+ Fog::Mock.not_implemented
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end