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
@@ -0,0 +1,35 @@
1
+ module Fog
2
+ module Compute
3
+ class OpenStack
4
+ class Real
5
+
6
+ def update_server(server_id, options = {})
7
+ request(
8
+ :body => MultiJson.encode({ 'server' => options }),
9
+ :expects => 200,
10
+ :method => 'PUT',
11
+ :path => "servers/#{server_id}.json"
12
+ )
13
+ end
14
+
15
+ end
16
+
17
+ class Mock
18
+
19
+ def update_server(server_id, options)
20
+ response = Excon::Response.new
21
+ if server = list_servers_detail.body['servers'].detect {|_| _['id'] == server_id}
22
+ if options['name']
23
+ server['name'] = options['name']
24
+ end
25
+ response.status = 200
26
+ response
27
+ else
28
+ raise Fog::Compute::OpenStack::NotFound
29
+ end
30
+ end
31
+
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,113 @@
1
+ require(File.expand_path(File.join(File.dirname(__FILE__), 'core')))
2
+
3
+ module Fog
4
+ module OpenStack
5
+ extend Fog::Provider
6
+
7
+ module Errors
8
+ class ServiceError < Fog::Errors::Error
9
+ attr_reader :response_data
10
+
11
+ def self.slurp(error)
12
+ if error.response.body.empty?
13
+ data = nil
14
+ message = nil
15
+ else
16
+ data = MultiJson.decode(error.response.body)
17
+ message = data['message']
18
+ end
19
+
20
+ new_error = super(error, message)
21
+ new_error.instance_variable_set(:@response_data, data)
22
+ new_error
23
+ end
24
+ end
25
+
26
+ class InternalServerError < ServiceError; end
27
+ class Conflict < ServiceError; end
28
+ class NotFound < ServiceError; end
29
+ class ServiceUnavailable < ServiceError; end
30
+
31
+ class BadRequest < ServiceError
32
+ attr_reader :validation_errors
33
+
34
+ def self.slurp(error)
35
+ new_error = super(error)
36
+ unless new_error.response_data.nil?
37
+ new_error.instance_variable_set(:@validation_errors, new_error.response_data['validationErrors'])
38
+ end
39
+ new_error
40
+ end
41
+ end
42
+ end
43
+
44
+ service(:compute, 'openstack/compute', 'Compute')
45
+
46
+ # legacy v1.0 style auth
47
+ def self.authenticate_v1(options, connection_options = {})
48
+ openstack_auth_url = options[:openstack_auth_url]
49
+ uri = URI.parse(openstack_auth_url)
50
+ connection = Fog::Connection.new(openstack_auth_url, false, connection_options)
51
+ @openstack_api_key = options[:openstack_api_key]
52
+ @openstack_username = options[:openstack_username]
53
+ response = connection.request({
54
+ :expects => [200, 204],
55
+ :headers => {
56
+ 'X-Auth-Key' => @openstack_api_key,
57
+ 'X-Auth-User' => @openstack_username
58
+ },
59
+ :host => uri.host,
60
+ :method => 'GET',
61
+ :path => (uri.path and not uri.path.empty?) ? uri.path : 'v1.0'
62
+ })
63
+
64
+ return {
65
+ :token => response.headers['X-Auth-Token'],
66
+ :server_management_url => response.headers['X-Server-Management-Url']
67
+ }
68
+
69
+ end
70
+
71
+ # keystone style auth
72
+ def self.authenticate_v2(options, connection_options = {})
73
+ openstack_auth_url = options[:openstack_auth_url]
74
+ uri = URI.parse(openstack_auth_url)
75
+ connection = Fog::Connection.new(openstack_auth_url, false, connection_options)
76
+ @openstack_api_key = options[:openstack_api_key]
77
+ @openstack_username = options[:openstack_username]
78
+ @openstack_tenant = options[:openstack_tenant]
79
+ @compute_service_name = options[:openstack_compute_service_name]
80
+
81
+ req_body= {
82
+ 'passwordCredentials' => {
83
+ 'username' => @openstack_username,
84
+ 'password' => @openstack_api_key
85
+ }
86
+ }
87
+ req_body['tenantId'] = @openstack_tenant if @openstack_tenant
88
+
89
+ response = connection.request({
90
+ :expects => [200, 204],
91
+ :headers => {'Content-Type' => 'application/json'},
92
+ :body => MultiJson.encode(req_body),
93
+ :host => uri.host,
94
+ :method => 'POST',
95
+ :path => (uri.path and not uri.path.empty?) ? uri.path : 'v2.0'
96
+ })
97
+ body=MultiJson.decode(response.body)
98
+
99
+ if body['auth']['serviceCatalog'] and body['auth']['serviceCatalog'][@compute_service_name] and body['auth']['serviceCatalog'][@compute_service_name][0] then
100
+ mgmt_url = body['auth']['serviceCatalog'][@compute_service_name][0]['publicURL']
101
+ token = body['auth']['token']['id']
102
+ return {
103
+ :token => token,
104
+ :server_management_url => mgmt_url
105
+ }
106
+ else
107
+ raise "Unable to parse service catalog."
108
+ end
109
+
110
+ end
111
+
112
+ end
113
+ end
@@ -14,6 +14,7 @@ require 'fog/local'
14
14
  require 'fog/new_servers'
15
15
  require 'fog/ninefold'
16
16
  require 'fog/rackspace'
17
+ require 'fog/openstack'
17
18
  require 'fog/slicehost'
18
19
  require 'fog/storm_on_demand'
19
20
  require 'fog/vcloud'
@@ -36,6 +36,31 @@ module Fog
36
36
  request :add_records
37
37
 
38
38
  class Mock
39
+
40
+ def initialize(options={})
41
+ @rackspace_api_key = options[:rackspace_api_key]
42
+ @rackspace_username = options[:rackspace_username]
43
+ @rackspace_auth_url = options[:rackspace_auth_url]
44
+ @connection_options = options[:connection_options] || {}
45
+ end
46
+
47
+ def self.data
48
+ @data ||= {
49
+ }
50
+ end
51
+
52
+ def self.reset
53
+ @data = nil
54
+ end
55
+
56
+ def data
57
+ self.class.data
58
+ end
59
+
60
+ def reset_data
61
+ self.class.reset
62
+ end
63
+
39
64
  end
40
65
 
41
66
  class Real
@@ -2,14 +2,15 @@ module Fog
2
2
  module DNS
3
3
  class Rackspace
4
4
  class Real
5
- def callback(job_id)
5
+ def callback(job_id, show_details=true)
6
6
 
7
7
  validate_path_fragment :job_id, job_id
8
8
 
9
9
  request(
10
10
  :expects => [200, 202, 204],
11
11
  :method => 'GET',
12
- :path => "status/#{job_id}"
12
+ :path => "status/#{job_id}",
13
+ :query => "showDetails=#{show_details}"
13
14
  )
14
15
  end
15
16
  end
@@ -42,11 +42,11 @@ module Fog
42
42
  end
43
43
  end
44
44
 
45
- service(:cdn, 'rackspace/cdn')
46
- service(:compute, 'rackspace/compute')
47
- service(:dns, 'rackspace/dns')
48
- service(:storage, 'rackspace/storage')
49
- service(:load_balancers, 'rackspace/load_balancers')
45
+ service(:cdn, 'rackspace/cdn', 'CDN')
46
+ service(:compute, 'rackspace/compute', 'Compute')
47
+ service(:dns, 'rackspace/dns', 'DNS')
48
+ service(:storage, 'rackspace/storage', 'Storage')
49
+ service(:load_balancers, 'rackspace/load_balancers', 'LoadBalancers')
50
50
 
51
51
  def self.authenticate(options, connection_options = {})
52
52
  rackspace_auth_url = options[:rackspace_auth_url] || "auth.api.rackspacecloud.com"
@@ -9,7 +9,7 @@ module Fog
9
9
  # ==== Parameters
10
10
  # * record_type<~String> - type of DNS record to create (A, CNAME, etc)
11
11
  # * zone_id<~Integer> - ID of the zone to update
12
- # * name<~String> - host name this DNS record is for
12
+ # * name<~String> - host name this DNS record is for
13
13
  # * data<~String> - data for the DNS record (ie for an A record, the IP address)
14
14
  # * options<~Hash> - extra parameters that are not mandatory
15
15
  # * ttl<~Integer> - time to live in seconds
@@ -36,7 +36,7 @@ module Fog
36
36
  optional_tags+= "<aux>#{value}</aux>"
37
37
  end
38
38
  }
39
-
39
+
40
40
  request(
41
41
  :body => %Q{<?xml version="1.0" encoding="UTF-8"?><record><record_type>#{record_type}</record_type><zone_id type="integer">#{zone_id}</zone_id><name>#{name}</name><data>#{data}</data>#{optional_tags}</record>},
42
42
  :expects => 201,
@@ -30,7 +30,7 @@ module Fog
30
30
  optional_tags+= "<active>#{value}</active>"
31
31
  end
32
32
  }
33
-
33
+
34
34
  request(
35
35
  :body => %Q{<?xml version="1.0" encoding="UTF-8"?><zone><origin>#{origin}</origin>#{optional_tags}</zone>},
36
36
  :expects => 201,
@@ -5,14 +5,14 @@ module Fog
5
5
 
6
6
  require 'fog/slicehost/parsers/dns/get_record'
7
7
 
8
- # Get an individual DNS record from the specified zone
8
+ # Get an individual DNS record from the specified zone
9
9
  #
10
10
  # ==== Returns
11
11
  # * response<~Excon::Response>:
12
12
  # * body<~Hash>:
13
13
  # * 'record_type'<~String> - type of DNS record to create (A, CNAME, etc)
14
14
  # * 'zone_id'<~Integer> - ID of the zone to update
15
- # * 'name'<~String> - host name this DNS record is for
15
+ # * 'name'<~String> - host name this DNS record is for
16
16
  # * 'data'<~String> - data for the DNS record (ie for an A record, the IP address)
17
17
  # * 'ttl'<~Integer> - time to live in seconds
18
18
  # * 'active'<~String> - whether this record is active or not ('Y' or 'N')
@@ -5,7 +5,7 @@ module Fog
5
5
 
6
6
  require 'fog/slicehost/parsers/dns/get_records'
7
7
 
8
- # Get all the DNS records across all the DNS zones for this account
8
+ # Get all the DNS records across all the DNS zones for this account
9
9
  #
10
10
  # ==== Returns
11
11
  # * response<~Excon::Response>:
@@ -5,8 +5,8 @@ module Fog
5
5
 
6
6
  extend Fog::Provider
7
7
 
8
- service(:compute, 'slicehost/compute')
9
- service(:dns, 'slicehost/dns')
8
+ service(:compute, 'slicehost/compute', 'Compute')
9
+ service(:dns, 'slicehost/dns', 'DNS')
10
10
 
11
11
  end
12
12
  end
@@ -5,7 +5,7 @@ module Fog
5
5
 
6
6
  extend Fog::Provider
7
7
 
8
- service(:compute, 'storm_on_demand/compute')
8
+ service(:compute, 'storm_on_demand/compute', 'Compute')
9
9
 
10
10
  end
11
11
  end
@@ -5,7 +5,7 @@ module Fog
5
5
 
6
6
  extend Fog::Provider
7
7
 
8
- service(:compute, 'vcloud/compute')
8
+ service(:compute, 'vcloud/compute', 'Compute')
9
9
 
10
10
  end
11
11
  end
@@ -5,7 +5,7 @@ module Fog
5
5
 
6
6
  extend Fog::Provider
7
7
 
8
- service(:compute, 'virtual_box/compute')
8
+ service(:compute, 'virtual_box/compute', 'Compute')
9
9
 
10
10
  end
11
11
  end
@@ -15,13 +15,13 @@ module Fog
15
15
 
16
16
  filter={} if filter.nil?
17
17
  unless filter.has_key?(:name)
18
- vm_names=::Fission::VM.all
19
- vm_names.each do |vm_name|
20
- data << { :raw => ::Fission::VM.new(vm_name)}
18
+ vms=::Fission::VM.all
19
+ vms.each do |vm|
20
+ data << { :raw => vm}
21
21
  end
22
22
  else
23
- data << { :raw => ::Fission::VM.new(filter[:name])}
24
- end
23
+ data << { :raw => ::Fission::VM.new(filter[:name])}
24
+ end
25
25
 
26
26
  load(data)
27
27
 
@@ -34,4 +34,4 @@ module Fog
34
34
  end
35
35
  end
36
36
  end
37
- end
37
+ end
@@ -5,7 +5,7 @@ module Fog
5
5
 
6
6
  extend Fog::Provider
7
7
 
8
- service(:compute, 'vmfusion/compute')
8
+ service(:compute, 'vmfusion/compute', 'Compute')
9
9
 
10
10
  end
11
11
  end
@@ -6,7 +6,7 @@ module Fog
6
6
 
7
7
  extend Fog::Provider
8
8
 
9
- service(:compute, 'voxel/compute')
9
+ service(:compute, 'voxel/compute', 'Compute')
10
10
 
11
11
  def self.create_signature(secret, options)
12
12
  to_sign = options.keys.map { |k| k.to_s }.sort.map { |k| "#{k}#{options[k.to_sym]}" }.join("")
@@ -68,14 +68,12 @@ module Fog
68
68
  include Shared
69
69
 
70
70
  def initialize(options={})
71
- require 'mocha'
72
71
  @vsphere_username = options[:vsphere_username]
73
72
  @vsphere_password = 'REDACTED'
74
73
  @vsphere_server = options[:vsphere_server]
75
74
  @vsphere_expected_pubkey_hash = options[:vsphere_expected_pubkey_hash]
76
75
  @vsphere_is_vcenter = true
77
76
  @vsphere_rev = '4.0'
78
- @connection = Mocha::Mock.new
79
77
  end
80
78
 
81
79
  end
@@ -11,7 +11,7 @@ module Fog
11
11
  class NotFound < ServiceError; end
12
12
  end
13
13
 
14
- service(:compute, 'vsphere/compute')
14
+ service(:compute, 'vsphere/compute', 'Compute')
15
15
 
16
16
  end
17
17
  end
@@ -34,7 +34,7 @@ module Fog
34
34
 
35
35
  def self.data
36
36
  @data ||= Hash.new do |hash, key|
37
- hash[key] = {}
37
+ hash[key] = key == :zones ? [] : {}
38
38
  end
39
39
  end
40
40
 
@@ -48,13 +48,24 @@ module Fog
48
48
  end
49
49
 
50
50
  def data
51
- self.class.data[@zerigo_email]
51
+ self.class.data
52
52
  end
53
53
 
54
54
  def reset_data
55
- self.class.data.delete(@zerigo_email)
55
+ self.class.reset
56
56
  end
57
57
 
58
+ def find_by_zone_id(zone_id)
59
+ self.data[:zones].find { |z| z['id'] == zone_id }
60
+ end
61
+
62
+ def find_by_domain(domain)
63
+ self.data[:zones].find { |z| z['domain'] == domain }
64
+ end
65
+
66
+ def find_host(host_id)
67
+ self.data[:zones].collect { |z| z['hosts'].find { |h| h['id'] == host_id } }.compact.first
68
+ end
58
69
  end
59
70
 
60
71
  class Real
@@ -48,7 +48,7 @@ module Fog
48
48
  connection.create_host(@zone.id, type, value, options)
49
49
  else
50
50
  options[:host_type] = type
51
- options[:data] = data
51
+ options[:data] = value
52
52
  connection.update_host(identity, options)
53
53
  end
54
54
  merge_attributes(data.body)
@@ -34,6 +34,11 @@ module Fog
34
34
  super({ :zone => zone }.merge!(attributes))
35
35
  end
36
36
 
37
+ def find(fqdn)
38
+ hosts = connection.find_hosts(fqdn, zone.id).body['hosts']
39
+ hosts.collect { |host| new(host) }
40
+ end
41
+
37
42
  end
38
43
 
39
44
  end
@@ -14,8 +14,8 @@ module Fog
14
14
  load(data)
15
15
  end
16
16
 
17
- def get(zone_id)
18
- data = connection.get_zone(zone_id).body
17
+ def get(zone_id_or_domain)
18
+ data = connection.get_zone(zone_id_or_domain).body
19
19
  zone = new(data)
20
20
  zone.records.load(data['hosts'])
21
21
  zone
@@ -13,7 +13,7 @@ module Fog
13
13
  # * body<~Hash>
14
14
  # * 'count'<~Integer>
15
15
  # * 'status'<~Integer> - 200 indicates success
16
- def count_hosts( zone_id)
16
+ def count_hosts(zone_id)
17
17
  request(
18
18
  :expects => 200,
19
19
  :method => 'GET',
@@ -23,6 +23,25 @@ module Fog
23
23
  end
24
24
 
25
25
  end
26
+
27
+ class Mock # :nodoc:all
28
+ def count_hosts(zone_id)
29
+ zone = find_by_zone_id(zone_id)
30
+
31
+ response = Excon::Response.new
32
+
33
+ if zone
34
+ response.status = 200
35
+ response.body = {
36
+ 'count' => zone['hosts'].size
37
+ }
38
+ else
39
+ response.status = 404
40
+ end
41
+
42
+ response
43
+ end
44
+ end
26
45
  end
27
46
  end
28
47
  end
@@ -13,7 +13,7 @@ module Fog
13
13
  # * body<~Hash>
14
14
  # * 'count'<~Integer>
15
15
  # * 'status'<~Integer> - 200 indicates success
16
- def count_zones()
16
+ def count_zones
17
17
  request(
18
18
  :expects => 200,
19
19
  :method => 'GET',
@@ -23,6 +23,17 @@ module Fog
23
23
  end
24
24
 
25
25
  end
26
+
27
+ class Mock # :nodoc:all
28
+ def count_zones
29
+ response = Excon::Response.new
30
+
31
+ response.status = 200
32
+ response.body = { 'count' => self.data[:zones].size }
33
+
34
+ response
35
+ end
36
+ end
26
37
  end
27
38
  end
28
39
  end
@@ -11,7 +11,7 @@ module Fog
11
11
  # * zone_id<~Integer>
12
12
  # * host_type<~String>
13
13
  # * data<~String>
14
- # * options<~Hash> - optional paramaters
14
+ # * options<~Hash> - optional parameters
15
15
  # * hostname<~String> - Note: normally this is set/required!!
16
16
  # * notes<~String>
17
17
  # * priority<~Integer> - Note: required for MX or SRV records
@@ -57,6 +57,72 @@ module Fog
57
57
  end
58
58
 
59
59
  end
60
+
61
+ class Mock # :nodoc:all
62
+ def valid_host_types
63
+ %w[A AAAA CNAME GEO MX NS SPF SRV TXT URL PTR CNAME NS]
64
+ end
65
+
66
+ def create_host(zone_id, host_type, data, options = {})
67
+ zone = find_by_zone_id(zone_id)
68
+
69
+ response = Excon::Response.new
70
+
71
+ # Handle error cases.
72
+
73
+ # Zone doesn't exist.
74
+ unless zone
75
+ response.status = 404
76
+ return response
77
+ end
78
+
79
+ # Bad host type.
80
+ unless valid_host_types.include?(host_type)
81
+ response.status = 422
82
+ response.body = {
83
+ 'errors' => [
84
+ 'error' => 'Host type is not included in the list'
85
+ ]
86
+ }
87
+
88
+ return response
89
+ end
90
+
91
+ # Missing or bad priority value for MX or SRV records.
92
+ if %w[MX SRV].include?(host_type) && options['priority'].to_s !~ /\d+/
93
+ response.status = 422
94
+ response.body = {
95
+ 'errors' => [
96
+ 'error' => 'Priority is not a number'
97
+ ]
98
+ }
99
+
100
+ return response
101
+ end
102
+
103
+ # Successful case.
104
+ now = Time.now
105
+ host = {
106
+ 'id' => rand(10000000),
107
+ 'fqdn' => options[:hostname] ? "#{options[:hostname]}.#{zone['domain']}" : zone['domain'],
108
+ 'data' => data,
109
+ 'hostname' => options[:hostname],
110
+ 'ttl' => options[:ttl].to_i,
111
+ 'host-type' => host_type,
112
+ 'created-at' => now,
113
+ 'updated-at' => now,
114
+ 'notes' => options[:notes],
115
+ 'priority' => options[:priority].to_i,
116
+ 'zone-id' => zone_id
117
+ }
118
+
119
+ zone['hosts'] << host
120
+ response.status = 201
121
+ response.body = host
122
+
123
+ response
124
+ end
125
+ end
60
126
  end
61
127
  end
62
128
  end