brightbox-cli 0.14.1 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -46,7 +46,7 @@ module Fog
46
46
  # * 'restrict-axfr'<~String>
47
47
  # * 'status'<~Integer> - 201 if successful
48
48
 
49
- def create_zone( domain, default_ttl, ns_type, options = {})
49
+ def create_zone(domain, default_ttl, ns_type, options = {})
50
50
 
51
51
  optional_tags= ''
52
52
  options.each { |option, value|
@@ -84,6 +84,49 @@ module Fog
84
84
  end
85
85
 
86
86
  end
87
+
88
+ class Mock # :nodoc:all
89
+ def create_zone(domain, default_ttl, ns_type, options = {})
90
+ now = Time.now
91
+ zone = {
92
+ 'id' => rand(10000000),
93
+ 'domain' => domain,
94
+ 'created-at' => now,
95
+ 'updated-at' => now,
96
+ 'ns1' => options[:ns1],
97
+ 'nx-ttl' => options[:nx_ttl].to_i,
98
+ 'default-ttl' => default_ttl.to_i,
99
+ 'ns-type' => ns_type,
100
+ 'hosts' => options[:hosts] || [],
101
+ 'hosts-count' => (options[:hosts] || []).size,
102
+ 'notes' => options[:notes],
103
+ 'slave-nameservers' => options[:slave_nameservers],
104
+ 'tag-list' => options[:tag_list]
105
+ }
106
+
107
+ response = Excon::Response.new
108
+
109
+ if self.data[:zones].any? {|z| z['domain'] == zone['domain'] }
110
+ response.status = 422
111
+ response.body = {
112
+ 'errors' => [
113
+ 'error' => 'Domain is already associated to another account',
114
+ 'error' => 'Domain already exists. If it was just deleted, wait a minute and try again'
115
+ ]
116
+ }
117
+
118
+ else
119
+ self.data[:zones] << zone
120
+
121
+ response.status = 201
122
+ response.headers = { 'Location' => "http://ns.zerigo.com/api/1.1/zones/#{zone['id']}" }
123
+ response.body = zone['hosts'].empty? ? zone.merge(:hosts => nil) : zone # Zerigo returns nil, not an empty list only on the create command.
124
+ end
125
+
126
+ response
127
+ end
128
+ end
129
+
87
130
  end
88
131
  end
89
132
  end
@@ -19,6 +19,25 @@ module Fog
19
19
  end
20
20
 
21
21
  end
22
+
23
+ class Mock # :nodoc:all
24
+ def delete_host(host_id)
25
+ host = find_host(host_id)
26
+
27
+ response = Excon::Response.new
28
+
29
+ if host
30
+ zone = find_by_zone_id(host['zone-id'])
31
+ zone['hosts'].delete(host)
32
+
33
+ response.status = 200
34
+ else
35
+ response.status = 404
36
+ end
37
+
38
+ response
39
+ end
40
+ end
22
41
  end
23
42
  end
24
43
  end
@@ -20,6 +20,23 @@ module Fog
20
20
  end
21
21
 
22
22
  end
23
+
24
+ class Mock # :nodoc:all
25
+ def delete_zone(zone_id)
26
+ zone = find_by_zone_id(zone_id)
27
+
28
+ response = Excon::Response.new
29
+
30
+ if zone
31
+ self.data[:zones].delete(zone)
32
+ response.status = 200
33
+ else
34
+ response.status = 404
35
+ end
36
+
37
+ response
38
+ end
39
+ end
23
40
  end
24
41
  end
25
42
  end
@@ -29,7 +29,7 @@ module Fog
29
29
  # * 'zone-id'<~String>
30
30
  # * 'status'<~Integer> - 200 indicated success
31
31
  #
32
- def find_hosts( fqdn, zone_id = nil)
32
+ def find_hosts(fqdn, zone_id = nil)
33
33
  if zone_id.nil?
34
34
  #look for matching host across all zones
35
35
  request(
@@ -50,6 +50,27 @@ module Fog
50
50
  end
51
51
 
52
52
  end
53
+
54
+ class Mock # :nodoc:all
55
+ def find_hosts(fqdn, zone_id = nil)
56
+ response = Excon::Response.new
57
+
58
+ zone = find_by_zone_id(zone_id)
59
+ if zone_id && !zone
60
+ response.status = 404
61
+ else
62
+ hosts = zone ? zone['hosts'].select { |z| z['fqdn'] == fqdn } :
63
+ self.data[:zones].collect { |z| z['hosts'].find { |h| h['fqdn'] == fqdn } }.compact
64
+
65
+ response.status = 200
66
+ response.body = {
67
+ 'hosts' => hosts
68
+ }
69
+ end
70
+
71
+ response
72
+ end
73
+ end
53
74
  end
54
75
  end
55
76
  end
@@ -24,7 +24,7 @@ module Fog
24
24
  # * 'updated-at'<~String>
25
25
  # * 'zone-id'<~String>
26
26
  # * 'status'<~Integer> - 200 indicates success
27
- def get_host( host_id)
27
+ def get_host(host_id)
28
28
  request(
29
29
  :expects => 200,
30
30
  :method => 'GET',
@@ -34,6 +34,23 @@ module Fog
34
34
  end
35
35
 
36
36
  end
37
+
38
+ class Mock # :nodoc:all
39
+ def get_host(host_id)
40
+ host = find_host(host_id)
41
+
42
+ response = Excon::Response.new
43
+
44
+ if host
45
+ response.status = 200
46
+ response.body = host
47
+ else
48
+ response.status = 404
49
+ end
50
+
51
+ response
52
+ end
53
+ end
37
54
  end
38
55
  end
39
56
  end
@@ -34,16 +34,33 @@ module Fog
34
34
  # * 'restrict-axfr'<~String>
35
35
  # * 'status'<~Integer> - 200 indicates success
36
36
 
37
- def get_zone(zone)
37
+ def get_zone(zone_id_or_domain)
38
38
  request(
39
39
  :expects => 200,
40
40
  :method => 'GET',
41
41
  :parser => Fog::Parsers::DNS::Zerigo::GetZone.new,
42
- :path => "/api/1.1/zones/#{zone}.xml"
42
+ :path => "/api/1.1/zones/#{zone_id_or_domain}.xml"
43
43
  )
44
44
  end
45
45
 
46
46
  end
47
+
48
+ class Mock # :nodoc:all
49
+ def get_zone(zone_id_or_domain)
50
+ zone = find_by_zone_id(zone_id_or_domain) || find_by_domain(zone_id_or_domain)
51
+
52
+ response = Excon::Response.new
53
+
54
+ if zone
55
+ response.status = 200
56
+ response.body = zone
57
+ else
58
+ response.status = 404
59
+ end
60
+
61
+ response
62
+ end
63
+ end
47
64
  end
48
65
  end
49
66
  end
@@ -31,6 +31,29 @@ module Fog
31
31
  end
32
32
 
33
33
  end
34
+
35
+ class Mock # :nodoc:all
36
+ def get_zone_stats(zone_id)
37
+ zone = find_by_zone_id(zone_id)
38
+
39
+ response = Excon::Response.new
40
+
41
+ if zone
42
+ response.status = 200
43
+ response.body = {
44
+ 'id' => zone,
45
+ 'domain' => zone['domain'],
46
+ 'period-begin' => zone['created-at'].strftime("%F"),
47
+ 'period-end' => Date.today.to_s,
48
+ 'queries' => 0
49
+ }
50
+ else
51
+ response.status = 404
52
+ end
53
+
54
+ response
55
+ end
56
+ end
34
57
  end
35
58
  end
36
59
  end
@@ -25,7 +25,7 @@ module Fog
25
25
  # * 'updated-at'<~String>
26
26
  # * 'zone-id'<~String>
27
27
  # * 'status'<~Integer> - 200 indicates success
28
- def list_hosts( zone_id)
28
+ def list_hosts(zone_id)
29
29
  request(
30
30
  :expects => 200,
31
31
  :method => 'GET',
@@ -35,6 +35,25 @@ module Fog
35
35
  end
36
36
 
37
37
  end
38
+
39
+ class Mock # :nodoc:all
40
+ def list_hosts(zone_id)
41
+ zone = find_by_zone_id(zone_id)
42
+
43
+ response = Excon::Response.new
44
+
45
+ if zone
46
+ response.status = 200
47
+ response.body = {
48
+ 'hosts' => zone['hosts']
49
+ }
50
+ else
51
+ response.status = 404
52
+ end
53
+
54
+ response
55
+ end
56
+ end
38
57
  end
39
58
  end
40
59
  end
@@ -40,6 +40,21 @@ module Fog
40
40
  end
41
41
 
42
42
  end
43
+
44
+ class Mock # :nodoc:all
45
+
46
+ def list_zones
47
+ response = Excon::Response.new
48
+
49
+ response.status = 200
50
+ response.body = {
51
+ 'zones' => self.data[:zones]
52
+ }
53
+
54
+ response
55
+ end
56
+
57
+ end
43
58
  end
44
59
  end
45
60
  end
@@ -18,7 +18,7 @@ module Fog
18
18
  # * response<~Excon::Response>:
19
19
  # * 'status'<~Integer> - 200 for success
20
20
  #
21
- def update_host( host_id, options = {})
21
+ def update_host(host_id, options = {})
22
22
 
23
23
  optional_tags= ''
24
24
  options.each { |option, value|
@@ -47,6 +47,25 @@ module Fog
47
47
  end
48
48
 
49
49
  end
50
+
51
+ class Mock # :nodoc:all
52
+ def update_host(host_id, options = {})
53
+ host = find_host(host_id)
54
+
55
+ response = Excon::Response.new
56
+
57
+ if host
58
+ options.each { |k, v| host[k.to_s] = v } # Deal with symbols in requests but strings in responses.
59
+ host['updated-at'] = Time.now
60
+
61
+ response.status = 200
62
+ else
63
+ response.status = 404
64
+ end
65
+
66
+ response
67
+ end
68
+ end
50
69
  end
51
70
  end
52
71
  end
@@ -24,7 +24,7 @@ module Fog
24
24
  # ==== Returns
25
25
  # * response<~Excon::Response>:
26
26
  # * 'status'<~Integer> - 200 for success
27
- def update_zone( zone_id, options = {})
27
+ def update_zone(zone_id, options = {})
28
28
 
29
29
  optional_tags= ''
30
30
  options.each { |option, value|
@@ -65,6 +65,25 @@ module Fog
65
65
  end
66
66
 
67
67
  end
68
+
69
+ class Mock # :nodoc:all
70
+ def update_zone(zone_id, options = {})
71
+ zone = find_by_zone_id(zone_id)
72
+
73
+ response = Excon::Response.new
74
+
75
+ if zone
76
+ options.each { |k, v| zone[k.to_s] = v } # Deal with symbols in requests but strings in responses.
77
+ zone['updated-at'] = Time.now
78
+
79
+ response.status = 200
80
+ else
81
+ response.status = 404
82
+ end
83
+
84
+ response
85
+ end
86
+ end
68
87
  end
69
88
  end
70
89
  end
@@ -5,7 +5,7 @@ module Fog
5
5
 
6
6
  extend Fog::Provider
7
7
 
8
- service(:dns, 'zerigo/dns')
8
+ service(:dns, 'zerigo/dns', 'DNS')
9
9
 
10
10
  end
11
11
  end
@@ -3,7 +3,7 @@ require File.join(File.dirname(__FILE__), 'fog', 'core')
3
3
  module Fog
4
4
 
5
5
  unless const_defined?(:VERSION)
6
- VERSION = '0.11.0'
6
+ VERSION = '1.0.0'
7
7
  end
8
8
 
9
9
  end
@@ -0,0 +1,40 @@
1
+ Shindo.tests("AWS::CloudWatch | alarm_data", ['aws', 'cloudwatch']) do
2
+
3
+ tests('success') do
4
+ tests("#all").succeeds do
5
+ Fog::AWS[:cloud_watch].alarm_data.all
6
+ end
7
+
8
+ alarm_name_prefix = {'AlarmNamePrefix'=>'tmp'}
9
+ tests("#all_by_prefix").succeeds do
10
+ Fog::AWS[:cloud_watch].alarm_data.all(alarm_name_prefix)
11
+ end
12
+
13
+ namespace = 'AWS/EC2'
14
+ metric_name = 'CPUUtilization'
15
+
16
+ tests("#get").succeeds do
17
+ Fog::AWS[:cloud_watch].alarm_data.get(namespace, metric_name).to_json
18
+ end
19
+
20
+ new_attributes = {
21
+ :alarm_name => 'tmp-alarm',
22
+ :comparison_operator => 'GreaterThanOrEqualToThreshold',
23
+ :evaluation_periods => 1,
24
+ :metric_name => 'tmp-metric-alarm',
25
+ :namespace => 'fog-0.11.0',
26
+ :period => 60,
27
+ :statistic => 'Sum',
28
+ :threshold => 5
29
+ }
30
+ tests('#new').returns(new_attributes) do
31
+ Fog::AWS[:cloud_watch].alarm_data.new(new_attributes).attributes
32
+ end
33
+
34
+ tests('#create').returns(new_attributes) do
35
+ Fog::AWS[:cloud_watch].alarm_data.create(new_attributes).attributes
36
+ end
37
+
38
+ end
39
+
40
+ end
@@ -0,0 +1,20 @@
1
+ Shindo.tests("AWS::CloudWatch | alarm_histories", ['aws', 'cloudwatch']) do
2
+
3
+ tests('success') do
4
+ tests("#all").succeeds do
5
+ Fog::AWS[:cloud_watch].alarm_histories.all
6
+ end
7
+
8
+ new_attributes = {
9
+ :alarm_name => 'tmp-alarm',
10
+ :end_date => '',
11
+ :history_item_type => 'StateUpdate',
12
+ :max_records => 1,
13
+ :start_date => ''
14
+ }
15
+ tests('#new').returns(new_attributes) do
16
+ Fog::AWS[:cloud_watch].alarm_histories.new(new_attributes).attributes
17
+ end
18
+ end
19
+
20
+ end
@@ -47,6 +47,8 @@ Shindo.tests("Fog::Compute[:aws] | monitor", ['aws']) do
47
47
  tests('tags') do
48
48
  @instance = Fog::Compute[:aws].servers.create(:tags => {'key' => 'value'})
49
49
 
50
+ @instance.wait_for { ready? }
51
+
50
52
  tests('@instance.reload.tags').returns({'key' => 'value'}) do
51
53
  @instance.reload.tags
52
54
  end
@@ -0,0 +1,30 @@
1
+ Shindo.tests('AWS::Elasticache | cache clusters', ['aws', 'elasticache']) do
2
+ cluster_params = {
3
+ :id => "fog-test-cluster-#{rand(999).to_s}",
4
+ :node_type => 'cache.m1.large',
5
+ :security_groups => ['default'],
6
+ :engine => 'memcached',
7
+ :num_nodes => 1
8
+ }
9
+
10
+ pending if Fog.mocking?
11
+
12
+ Formatador.display_line "Creating cluster #{cluster_params[:id]}..."
13
+ model_tests(AWS[:elasticache].clusters, cluster_params, false) do
14
+ @instance.reload # Reload to get the cluster info from AWS
15
+ Formatador.display_line "Waiting for #{@instance.id} "+
16
+ "to become available (#{@instance.status})..."
17
+ @instance.wait_for {ready?}
18
+ end
19
+
20
+ # Single model is still deleting, so re-randomize the cluster ID
21
+ cluster_params[:id] = "fog-test-cluster-#{rand(999).to_s}"
22
+ Formatador.display_line "Creating cluster #{cluster_params[:id]}..."
23
+ collection_tests(AWS[:elasticache].clusters, cluster_params, false) do
24
+ @instance.reload # Reload to get the cluster info from AWS
25
+ Formatador.display_line "Waiting for #{@instance.id} "+
26
+ "to become available (#{@instance.status})..."
27
+ @instance.wait_for {ready?}
28
+ end
29
+
30
+ end
@@ -0,0 +1,17 @@
1
+ Shindo.tests('AWS::Elasticache | parameter groups', ['aws', 'elasticache']) do
2
+ group_name = 'fog-test'
3
+ description = 'Fog Test'
4
+
5
+ pending if Fog.mocking?
6
+
7
+ model_tests(
8
+ AWS[:elasticache].parameter_groups,
9
+ {:id => group_name, :description => description}, false
10
+ )
11
+
12
+ collection_tests(
13
+ AWS[:elasticache].parameter_groups,
14
+ {:id => group_name, :description => description}, false
15
+ )
16
+
17
+ end
@@ -0,0 +1,52 @@
1
+ Shindo.tests('AWS::Elasticache | security groups', ['aws', 'elasticache']) do
2
+ group_name = 'fog-test'
3
+ description = 'Fog Test'
4
+
5
+ pending if Fog.mocking?
6
+
7
+ model_tests(
8
+ AWS[:elasticache].security_groups,
9
+ {:id => group_name, :description => description}, false
10
+ ) do
11
+
12
+ # An EC2 group to authorize
13
+ ec2_group = Fog::Compute.new(:provider => 'AWS').security_groups.create(
14
+ :name => 'fog-test-elasticache', :description => 'fog test'
15
+ )
16
+
17
+ # Reload to get the instance owner_id
18
+ @instance.reload
19
+
20
+ tests('#authorize_ec2_group') do
21
+ @instance.authorize_ec2_group(ec2_group.name)
22
+ returns('authorizing') do
23
+ group = @instance.ec2_groups.detect do |g|
24
+ g['EC2SecurityGroupName'] == ec2_group.name
25
+ end
26
+ group['Status']
27
+ end
28
+ returns(false, 'not ready') { @instance.ready? }
29
+ end
30
+
31
+ @instance.wait_for { ready? }
32
+
33
+ tests('#revoke_ec2_group') do
34
+ @instance.revoke_ec2_group(ec2_group.name)
35
+ returns('revoking') do
36
+ group = @instance.ec2_groups.detect do |g|
37
+ g['EC2SecurityGroupName'] == ec2_group.name
38
+ end
39
+ group['Status']
40
+ end
41
+ returns(false, 'not ready') { @instance.ready? }
42
+ end
43
+
44
+ ec2_group.destroy
45
+ end
46
+
47
+ collection_tests(
48
+ AWS[:elasticache].security_groups,
49
+ {:id => group_name, :description => description}, false
50
+ )
51
+
52
+ end
@@ -110,6 +110,8 @@ Shindo.tests('AWS::ELB | models', ['aws', 'elb']) do
110
110
  end
111
111
 
112
112
  server = Fog::Compute[:aws].servers.create
113
+ server.wait_for { ready? }
114
+
113
115
  tests('register instance') do
114
116
  begin
115
117
  elb.register_instances(server.id)
@@ -3,9 +3,9 @@ Shindo.tests('AWS::CloudWatch | metric requests', ['aws', 'cloudwatch']) do
3
3
  tests('success') do
4
4
  @metrics_list_format = {
5
5
  'ListMetricsResult' => {
6
- 'Metrics' =>
6
+ 'Metrics' =>
7
7
  [{
8
- 'Dimensions' =>
8
+ 'Dimensions' =>
9
9
  [{
10
10
  'Name' => String,
11
11
  'Value' => String
@@ -20,9 +20,9 @@ Shindo.tests('AWS::CloudWatch | metric requests', ['aws', 'cloudwatch']) do
20
20
  @instanceId = 'i-2f3eab59'
21
21
  @dimension_filtered_metrics_list_format = {
22
22
  'ListMetricsResult' => {
23
- 'Metrics' =>
23
+ 'Metrics' =>
24
24
  [{
25
- 'Dimensions' =>
25
+ 'Dimensions' =>
26
26
  [{
27
27
  'Name' => 'InstanceId',
28
28
  'Value' => @instanceId
@@ -61,4 +61,4 @@ Shindo.tests('AWS::CloudWatch | metric requests', ['aws', 'cloudwatch']) do
61
61
  end
62
62
  end
63
63
  end
64
- end
64
+ end
@@ -31,6 +31,11 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
31
31
  'requestId' => String
32
32
  }
33
33
 
34
+ @modify_image_attribute_format = {
35
+ 'return' => Fog::Boolean,
36
+ 'requestId' => String
37
+ }
38
+
34
39
  tests('success') do
35
40
  # the result for this is HUGE and relatively uninteresting...
36
41
  # tests("#describe_images").formats(@images_format) do
@@ -39,6 +44,8 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
39
44
  @image_id = 'ami-1aad5273'
40
45
 
41
46
  if Fog.mocking?
47
+ @other_account = Fog::Compute::AWS.new(:aws_access_key_id => 'other', :aws_secret_access_key => 'account')
48
+
42
49
  tests("#register_image").formats(@register_image_format) do
43
50
  @image = Fog::Compute[:aws].register_image('image', 'image', '/dev/sda1').body
44
51
  end
@@ -53,6 +60,26 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
53
60
  tests("#describe_images('state' => 'available')").formats(@describe_images_format) do
54
61
  Fog::Compute[:aws].describe_images('state' => 'available').body
55
62
  end
63
+
64
+ tests("other_account#describe_images('image-id' => '#{@image_id}')").returns([]) do
65
+ @other_account.describe_images('image-id' => @image_id).body['imagesSet']
66
+ end
67
+
68
+ tests("#modify_image_attribute('#{@image_id}', 'Add.UserId' => ['#{@other_account.data[:owner_id]}'])").formats(@modify_image_attribute_format) do
69
+ Fog::Compute[:aws].modify_image_attribute(@image_id, { 'Add.UserId' => [@other_account.data[:owner_id]] }).body
70
+ end
71
+
72
+ tests("other_account#describe_images('image-id' => '#{@image_id}')").returns([@image_id]) do
73
+ @other_account.describe_images('image-id' => @image_id).body['imagesSet'].map {|i| i['imageId'] }
74
+ end
75
+
76
+ tests("#modify_image_attribute('#{@image_id}', 'Remove.UserId' => ['#{@other_account.data[:owner_id]}'])").formats(@modify_image_attribute_format) do
77
+ Fog::Compute[:aws].modify_image_attribute(@image_id, { 'Remove.UserId' => [@other_account.data[:owner_id]] }).body
78
+ end
79
+
80
+ tests("other_account#describe_images('image-id' => '#{@image_id}')").returns([]) do
81
+ @other_account.describe_images('image-id' => @image_id).body['imagesSet']
82
+ end
56
83
  end
57
84
 
58
85
  tests("#describe_images('image-id' => '#{@image_id}')").formats(@describe_images_format) do
@@ -67,10 +94,14 @@ Shindo.tests('Fog::Compute[:aws] | image requests', ['aws']) do
67
94
  end
68
95
 
69
96
  tests('failure') do
70
- pending if Fog.mocking?
71
-
72
97
  tests("#modify_image_attribute(nil, { 'Add.Group' => ['all'] })").raises(ArgumentError) do
73
98
  Fog::Compute[:aws].modify_image_attribute(nil, { 'Add.Group' => ['all'] }).body
74
99
  end
100
+
101
+ tests("#modify_image_attribute('ami-00000000', { 'Add.UserId' => ['123456789012'] })").raises(Fog::Compute::AWS::NotFound) do
102
+ pending unless Fog.mocking?
103
+
104
+ Fog::Compute[:aws].modify_image_attribute('ami-00000000', { 'Add.UserId' => ['123456789012'] }).body
105
+ end
75
106
  end
76
107
  end