bbcloud 0.11.2 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. data/.gitignore +3 -2
  2. data/Gemfile +3 -0
  3. data/README +11 -1
  4. data/README.rdoc +11 -1
  5. data/Rakefile +12 -0
  6. data/bbcloud.gemspec +10 -10
  7. data/bin/brightbox-accounts +7 -2
  8. data/bin/brightbox-cloudips +7 -2
  9. data/bin/brightbox-config +7 -2
  10. data/bin/brightbox-images +7 -2
  11. data/bin/brightbox-lbs +7 -2
  12. data/bin/brightbox-servers +7 -2
  13. data/bin/brightbox-types +7 -2
  14. data/bin/brightbox-users +7 -2
  15. data/bin/brightbox-zones +7 -2
  16. data/lib/bbcloud.rb +43 -0
  17. data/lib/bbcloud/accounts.rb +5 -3
  18. data/lib/bbcloud/command_generator.rb +50 -0
  19. data/lib/bbcloud/commands/accounts-list.rb +13 -11
  20. data/lib/bbcloud/commands/accounts-reset-ftp-password.rb +26 -23
  21. data/lib/bbcloud/commands/accounts-show.rb +20 -16
  22. data/lib/bbcloud/commands/cloudips-create.rb +16 -14
  23. data/lib/bbcloud/commands/cloudips-destroy.rb +29 -26
  24. data/lib/bbcloud/commands/cloudips-list.rb +13 -11
  25. data/lib/bbcloud/commands/cloudips-map.rb +48 -46
  26. data/lib/bbcloud/commands/cloudips-show.rb +15 -12
  27. data/lib/bbcloud/commands/cloudips-unmap.rb +28 -25
  28. data/lib/bbcloud/commands/config-client-add.rb +33 -31
  29. data/lib/bbcloud/commands/config-client-default.rb +18 -16
  30. data/lib/bbcloud/commands/config-client-list.rb +19 -16
  31. data/lib/bbcloud/commands/config-client-remove.rb +18 -16
  32. data/lib/bbcloud/commands/images-destroy.rb +18 -16
  33. data/lib/bbcloud/commands/images-list.rb +20 -18
  34. data/lib/bbcloud/commands/images-register.rb +21 -19
  35. data/lib/bbcloud/commands/images-show.rb +17 -15
  36. data/lib/bbcloud/commands/lbs-add-nodes.rb +15 -13
  37. data/lib/bbcloud/commands/lbs-create.rb +65 -63
  38. data/lib/bbcloud/commands/lbs-destroy.rb +13 -11
  39. data/lib/bbcloud/commands/lbs-list.rb +13 -11
  40. data/lib/bbcloud/commands/lbs-remove-nodes.rb +15 -13
  41. data/lib/bbcloud/commands/lbs-show.rb +15 -13
  42. data/lib/bbcloud/commands/lbs-update.rb +59 -57
  43. data/lib/bbcloud/commands/servers-activate-cloud.rb +18 -16
  44. data/lib/bbcloud/commands/servers-create.rb +80 -77
  45. data/lib/bbcloud/commands/servers-destroy.rb +17 -15
  46. data/lib/bbcloud/commands/servers-list.rb +14 -14
  47. data/lib/bbcloud/commands/servers-show.rb +39 -37
  48. data/lib/bbcloud/commands/servers-shutdown.rb +14 -12
  49. data/lib/bbcloud/commands/servers-snapshot.rb +14 -12
  50. data/lib/bbcloud/commands/servers-start.rb +15 -13
  51. data/lib/bbcloud/commands/servers-stop.rb +14 -12
  52. data/lib/bbcloud/commands/types-list.rb +13 -11
  53. data/lib/bbcloud/commands/types-show.rb +18 -16
  54. data/lib/bbcloud/commands/users-list.rb +13 -11
  55. data/lib/bbcloud/commands/users-show.rb +17 -15
  56. data/lib/bbcloud/commands/users-update.rb +27 -25
  57. data/lib/bbcloud/commands/zones-list.rb +13 -11
  58. data/lib/bbcloud/config.rb +125 -111
  59. data/lib/bbcloud/error_parser.rb +34 -0
  60. data/lib/bbcloud/fog_extensions.rb +19 -0
  61. data/lib/bbcloud/gli_global_hooks.rb +56 -0
  62. data/lib/bbcloud/logging.rb +40 -0
  63. data/lib/bbcloud/ruby_core_ext.rb +9 -0
  64. data/lib/bbcloud/servers.rb +7 -2
  65. data/lib/bbcloud/tables.rb +78 -73
  66. data/lib/bbcloud/vendor/gli/.gitignore +10 -0
  67. data/lib/bbcloud/vendor/gli/.rvmrc +1 -0
  68. data/lib/bbcloud/vendor/gli/Gemfile +5 -0
  69. data/lib/bbcloud/vendor/gli/LICENSE.txt +201 -0
  70. data/lib/bbcloud/vendor/gli/README.rdoc +54 -0
  71. data/lib/bbcloud/vendor/gli/Rakefile +84 -0
  72. data/lib/bbcloud/vendor/gli/bin/gli +72 -0
  73. data/lib/bbcloud/vendor/gli/bin/report_on_rake_results +10 -0
  74. data/lib/bbcloud/vendor/gli/bin/test_all_rubies.sh +2 -0
  75. data/lib/bbcloud/vendor/gli/features/gli_executable.feature +88 -0
  76. data/lib/bbcloud/vendor/gli/features/gli_init.feature +122 -0
  77. data/lib/bbcloud/vendor/gli/features/step_definitions/gli_executable_steps.rb +12 -0
  78. data/lib/bbcloud/vendor/gli/features/step_definitions/gli_init_steps.rb +4 -0
  79. data/lib/bbcloud/vendor/gli/features/support/env.rb +21 -0
  80. data/lib/bbcloud/vendor/gli/gli.cheat +80 -0
  81. data/lib/bbcloud/vendor/gli/gli.gemspec +46 -0
  82. data/lib/bbcloud/vendor/gli/gli.rdoc +51 -0
  83. data/lib/bbcloud/vendor/gli/lib/gli.rb +560 -0
  84. data/lib/bbcloud/vendor/gli/lib/gli/command.rb +124 -0
  85. data/lib/bbcloud/vendor/gli/lib/gli/command_line_token.rb +58 -0
  86. data/lib/bbcloud/vendor/gli/lib/gli/copy_options_to_aliases.rb +33 -0
  87. data/lib/bbcloud/vendor/gli/lib/gli/exceptions.rb +45 -0
  88. data/lib/bbcloud/vendor/gli/lib/gli/flag.rb +67 -0
  89. data/lib/bbcloud/vendor/gli/lib/gli/options.rb +19 -0
  90. data/lib/bbcloud/vendor/gli/lib/gli/switch.rb +63 -0
  91. data/lib/bbcloud/vendor/gli/lib/gli/terminal.rb +79 -0
  92. data/lib/bbcloud/vendor/gli/lib/gli_version.rb +3 -0
  93. data/lib/bbcloud/vendor/gli/lib/support/help.rb +180 -0
  94. data/lib/bbcloud/vendor/gli/lib/support/initconfig.rb +34 -0
  95. data/lib/bbcloud/vendor/gli/lib/support/rdoc.rb +119 -0
  96. data/lib/bbcloud/vendor/gli/lib/support/scaffold.rb +284 -0
  97. data/lib/bbcloud/vendor/gli/test/config.yaml +9 -0
  98. data/lib/bbcloud/vendor/gli/test/gli.reek +116 -0
  99. data/lib/bbcloud/vendor/gli/test/roodi.yaml +9 -0
  100. data/lib/bbcloud/vendor/gli/test/tc_command.rb +329 -0
  101. data/lib/bbcloud/vendor/gli/test/tc_flag.rb +67 -0
  102. data/lib/bbcloud/vendor/gli/test/tc_gli.rb +429 -0
  103. data/lib/bbcloud/vendor/gli/test/tc_options.rb +31 -0
  104. data/lib/bbcloud/vendor/gli/test/tc_parsing.rb +279 -0
  105. data/lib/bbcloud/vendor/gli/test/tc_switch.rb +80 -0
  106. data/lib/bbcloud/vendor/gli/test/tc_terminal.rb +91 -0
  107. data/lib/bbcloud/version.rb +1 -1
  108. data/pkg/bbcloud-0.12.0.gem +0 -0
  109. data/spec/fixtures/vcr_cassettes/server_list.yml +117 -0
  110. data/spec/servers_spec.rb +36 -0
  111. data/spec/spec_helper.rb +24 -0
  112. data/spec/support/common_helpers.rb +47 -0
  113. metadata +129 -135
  114. data/lib/bbcloud/cli.rb +0 -160
  115. data/lib/bbcloud/vendor/fog/lib/fog.rb +0 -14
  116. data/lib/bbcloud/vendor/fog/lib/fog/compute.rb +0 -43
  117. data/lib/bbcloud/vendor/fog/lib/fog/compute/brightbox.rb +0 -162
  118. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/account.rb +0 -51
  119. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/cloud_ip.rb +0 -47
  120. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/cloud_ips.rb +0 -34
  121. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/flavor.rb +0 -33
  122. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/flavors.rb +0 -28
  123. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/image.rb +0 -56
  124. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/images.rb +0 -28
  125. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/load_balancer.rb +0 -50
  126. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/load_balancers.rb +0 -28
  127. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/server.rb +0 -108
  128. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/servers.rb +0 -29
  129. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/user.rb +0 -39
  130. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/users.rb +0 -29
  131. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/zone.rb +0 -21
  132. data/lib/bbcloud/vendor/fog/lib/fog/compute/models/brightbox/zones.rb +0 -29
  133. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/activate_console_server.rb +0 -20
  134. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/add_listeners_load_balancer.rb +0 -20
  135. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +0 -20
  136. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/create_api_client.rb +0 -19
  137. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +0 -19
  138. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/create_image.rb +0 -19
  139. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/create_load_balancer.rb +0 -19
  140. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/create_server.rb +0 -19
  141. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/destroy_api_client.rb +0 -20
  142. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +0 -20
  143. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/destroy_image.rb +0 -20
  144. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +0 -20
  145. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/destroy_server.rb +0 -20
  146. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_account.rb +0 -19
  147. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_api_client.rb +0 -20
  148. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +0 -20
  149. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_image.rb +0 -20
  150. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_interface.rb +0 -20
  151. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_load_balancer.rb +0 -20
  152. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_server.rb +0 -20
  153. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_server_type.rb +0 -20
  154. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_user.rb +0 -20
  155. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/get_zone.rb +0 -20
  156. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_api_clients.rb +0 -19
  157. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +0 -19
  158. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_images.rb +0 -19
  159. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_load_balancers.rb +0 -19
  160. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_server_types.rb +0 -19
  161. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_servers.rb +0 -19
  162. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_users.rb +0 -19
  163. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/list_zones.rb +0 -19
  164. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +0 -20
  165. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/remove_listeners_load_balancer.rb +0 -20
  166. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +0 -20
  167. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +0 -19
  168. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/resize_server.rb +0 -19
  169. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/shutdown_server.rb +0 -20
  170. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/snapshot_server.rb +0 -20
  171. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/start_server.rb +0 -20
  172. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/stop_server.rb +0 -20
  173. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +0 -20
  174. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/update_account.rb +0 -20
  175. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/update_api_client.rb +0 -21
  176. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/update_image.rb +0 -21
  177. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/update_load_balancer.rb +0 -21
  178. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/update_server.rb +0 -21
  179. data/lib/bbcloud/vendor/fog/lib/fog/compute/requests/brightbox/update_user.rb +0 -21
  180. data/lib/bbcloud/vendor/fog/lib/fog/core.rb +0 -32
  181. data/lib/bbcloud/vendor/fog/lib/fog/core/attributes.rb +0 -178
  182. data/lib/bbcloud/vendor/fog/lib/fog/core/collection.rb +0 -127
  183. data/lib/bbcloud/vendor/fog/lib/fog/core/connection.rb +0 -35
  184. data/lib/bbcloud/vendor/fog/lib/fog/core/credentials.rb +0 -92
  185. data/lib/bbcloud/vendor/fog/lib/fog/core/deprecation.rb +0 -23
  186. data/lib/bbcloud/vendor/fog/lib/fog/core/errors.rb +0 -20
  187. data/lib/bbcloud/vendor/fog/lib/fog/core/hmac.rb +0 -48
  188. data/lib/bbcloud/vendor/fog/lib/fog/core/mock.rb +0 -68
  189. data/lib/bbcloud/vendor/fog/lib/fog/core/model.rb +0 -57
  190. data/lib/bbcloud/vendor/fog/lib/fog/core/parser.rb +0 -99
  191. data/lib/bbcloud/vendor/fog/lib/fog/core/provider.rb +0 -18
  192. data/lib/bbcloud/vendor/fog/lib/fog/core/scp.rb +0 -67
  193. data/lib/bbcloud/vendor/fog/lib/fog/core/service.rb +0 -175
  194. data/lib/bbcloud/vendor/fog/lib/fog/core/ssh.rb +0 -120
  195. data/lib/bbcloud/vendor/fog/lib/fog/core/time.rb +0 -27
  196. data/lib/bbcloud/vendor/fog/lib/fog/core/wait_for.rb +0 -17
  197. data/lib/bbcloud/vendor/fog/lib/fog/providers.rb +0 -9
  198. data/lib/bbcloud/vendor/fog/lib/fog/providers/brightbox.rb +0 -9
@@ -1,18 +1,20 @@
1
- desc 'Destroy load balancers'
2
- arg_name 'lb-id...'
3
- command [:destroy] do |c|
1
+ module Brightbox
2
+ desc 'Destroy load balancers'
3
+ arg_name 'lb-id...'
4
+ command [:destroy] do |c|
4
5
 
5
- c.action do |global_options, options, args|
6
+ c.action do |global_options, options, args|
6
7
 
7
- raise "You must specify the load balancers to destroy" if args.empty?
8
+ raise "You must specify the load balancers to destroy" if args.empty?
8
9
 
9
- lbs = LoadBalancer.find_or_call(args) do |id|
10
- raise "Couldn't find load balancer #{id}"
11
- end
10
+ lbs = LoadBalancer.find_or_call(args) do |id|
11
+ raise "Couldn't find load balancer #{id}"
12
+ end
12
13
 
13
- lbs.each do |lb|
14
- info "Destroying load balancer #{lb}"
15
- lb.destroy
14
+ lbs.each do |lb|
15
+ info "Destroying load balancer #{lb}"
16
+ lb.destroy
17
+ end
16
18
  end
17
19
  end
18
20
  end
@@ -1,16 +1,18 @@
1
- desc 'List load balancers'
2
- arg_name '[lb-id...]'
3
- command [:list] do |c|
4
- c.action do |global_options,options,args|
1
+ module Brightbox
2
+ desc 'List load balancers'
3
+ arg_name '[lb-id...]'
4
+ command [:list] do |c|
5
+ c.action do |global_options,options,args|
5
6
 
6
- if args.empty?
7
- lbs = LoadBalancer.find(:all)
8
- else
9
- lbs = LoadBalancer.find_or_call(args) do |id|
10
- warn "Couldn't find load balancer #{id}"
7
+ if args.empty?
8
+ lbs = LoadBalancer.find(:all)
9
+ else
10
+ lbs = LoadBalancer.find_or_call(args) do |id|
11
+ warn "Couldn't find load balancer #{id}"
12
+ end
11
13
  end
12
- end
13
14
 
14
- render_table(lbs, global_options)
15
+ render_table(lbs, global_options)
16
+ end
15
17
  end
16
18
  end
@@ -1,20 +1,22 @@
1
- desc 'Remove nodes from a load balancer'
2
- arg_name 'lb-id node-id...'
3
- command [:remove_nodes] do |c|
1
+ module Brightbox
2
+ desc 'Remove nodes from a load balancer'
3
+ arg_name 'lb-id node-id...'
4
+ command [:remove_nodes] do |c|
4
5
 
5
- c.action do |global_options, options, args|
6
+ c.action do |global_options, options, args|
6
7
 
7
- raise "You must specify the load balancer and the node ids to remove" if args.size < 2
8
+ raise "You must specify the load balancer and the node ids to remove" if args.size < 2
8
9
 
9
- lb = LoadBalancer.find(args.shift)
10
+ lb = LoadBalancer.find(args.shift)
10
11
 
11
- # We don't want to check servers exist as you can remove deleted
12
- # servers from a load balancer.
13
- nodes = args.collect { |a| Server.new(a) }
12
+ # We don't want to check servers exist as you can remove deleted
13
+ # servers from a load balancer.
14
+ nodes = args.collect { |a| Server.new(a) }
14
15
 
15
- info "Removing #{nodes.size} nodes from load balancer #{lb.id}"
16
- lb.remove_nodes nodes
17
- lb.reload
18
- render_table([lb], global_options)
16
+ info "Removing #{nodes.size} nodes from load balancer #{lb.id}"
17
+ lb.remove_nodes nodes
18
+ lb.reload
19
+ render_table([lb], global_options)
20
+ end
19
21
  end
20
22
  end
@@ -1,21 +1,23 @@
1
- desc 'Show detailed load balancer info'
2
- arg_name 'lbs-id...'
3
- command [:show] do |c|
1
+ module Brightbox
2
+ desc 'Show detailed load balancer info'
3
+ arg_name 'lbs-id...'
4
+ command [:show] do |c|
4
5
 
5
- c.action do |global_options,options,args|
6
+ c.action do |global_options,options,args|
6
7
 
7
- raise "You must specify load balancers to show" if args.empty?
8
+ raise "You must specify load balancers to show" if args.empty?
8
9
 
9
- lbs = LoadBalancer.find_or_call(args) do |id|
10
- raise "Couldn't find lb #{id}"
11
- end
10
+ lbs = LoadBalancer.find_or_call(args) do |id|
11
+ raise "Couldn't find lb #{id}"
12
+ end
12
13
 
13
- table_opts = global_options.merge({
14
- :vertical => true,
15
- :fields => [:id, :status, :name, "created_at", "deleted_at", :policy, :cloud_ips, :nodes, :listeners, :healthcheck]
16
- })
14
+ table_opts = global_options.merge({
15
+ :vertical => true,
16
+ :fields => [:id, :status, :name, "created_at", "deleted_at", :policy, :cloud_ips, :nodes, :listeners, :healthcheck]
17
+ })
17
18
 
18
- render_table(lbs, table_opts)
19
+ render_table(lbs, table_opts)
19
20
 
21
+ end
20
22
  end
21
23
  end
@@ -1,85 +1,87 @@
1
- desc 'Update a load balancer'
2
- long_desc "All intervals and timeouts are in milliseconds"
3
- arg_name 'lba-id [node-id...]'
1
+ module Brightbox
2
+ desc 'Update a load balancer'
3
+ long_desc "All intervals and timeouts are in milliseconds"
4
+ arg_name 'lba-id [node-id...]'
4
5
 
5
- command [:update] do |c|
6
+ command [:update] do |c|
6
7
 
7
- c.desc "Friendly name of load balancer"
8
- c.flag [:n, :name]
8
+ c.desc "Friendly name of load balancer"
9
+ c.flag [:n, :name]
9
10
 
10
- c.desc "Load balancer policy"
11
- c.flag [:p, :policy]
11
+ c.desc "Load balancer policy"
12
+ c.flag [:p, :policy]
12
13
 
13
- c.desc "Listeners (in-port:out-port:protocol. Comma separate multiple listeners)"
14
- c.flag [:l, :listeners]
14
+ c.desc "Listeners (in-port:out-port:protocol. Comma separate multiple listeners)"
15
+ c.flag [:l, :listeners]
15
16
 
16
- c.desc "Healthcheck port"
17
- c.flag [:k, "hc-port"]
17
+ c.desc "Healthcheck port"
18
+ c.flag [:k, "hc-port"]
18
19
 
19
- c.desc "Healthcheck type"
20
- c.flag [:y, "hc-type"]
20
+ c.desc "Healthcheck type"
21
+ c.flag [:y, "hc-type"]
21
22
 
22
- c.desc "Healthcheck timeout"
23
- c.flag [:t, "hc-timeout"]
23
+ c.desc "Healthcheck timeout"
24
+ c.flag [:t, "hc-timeout"]
24
25
 
25
- c.desc "Healthcheck request. When the type is 'http' this is the url to request."
26
- c.flag [:s, "hc-request"]
26
+ c.desc "Healthcheck request. When the type is 'http' this is the url to request."
27
+ c.flag [:s, "hc-request"]
27
28
 
28
- c.desc "Healthcheck interval"
29
- c.flag [:e, "hc-interval"]
29
+ c.desc "Healthcheck interval"
30
+ c.flag [:e, "hc-interval"]
30
31
 
31
- c.desc "Healthcheck threshold up. Number of successful healthchecks for the node to be considered up."
32
- c.flag [:u, "hc-up"]
32
+ c.desc "Healthcheck threshold up. Number of successful healthchecks for the node to be considered up."
33
+ c.flag [:u, "hc-up"]
33
34
 
34
- c.desc "Healthcheck threshold down. Number of failed healthchecks for the node to be considered down."
35
- c.flag [:d, "hc-down"]
35
+ c.desc "Healthcheck threshold down. Number of failed healthchecks for the node to be considered down."
36
+ c.flag [:d, "hc-down"]
36
37
 
37
- c.action do |global_options, options, args|
38
+ c.action do |global_options, options, args|
38
39
 
39
- lb_id = args.shift
40
- raise "You must specify the load balancer to update as the first argument" unless lb_id =~ /^lba-/
40
+ lb_id = args.shift
41
+ raise "You must specify the load balancer to update as the first argument" unless lb_id =~ /^lba-/
41
42
 
42
- lbopts = {}
43
+ lbopts = {}
43
44
 
44
- unless args.empty?
45
- lbopts[:nodes] = args.collect { |a| { :node => a } }
46
- end
45
+ unless args.empty?
46
+ lbopts[:nodes] = args.collect { |a| { :node => a } }
47
+ end
47
48
 
48
- hc_arg_lookup = { :k => :port, :y => :type, :t => :timeout, :s =>
49
- :request, :e => :interval, :u => :threshold_up, :d =>
50
- :threshold_down }
49
+ hc_arg_lookup = { :k => :port, :y => :type, :t => :timeout, :s =>
50
+ :request, :e => :interval, :u => :threshold_up, :d =>
51
+ :threshold_down }
51
52
 
52
- healthcheck = {}
53
+ healthcheck = {}
53
54
 
54
- options.keys.each do |k|
55
- if options[k] and hc_arg_lookup[k]
56
- healthcheck[hc_arg_lookup[k]] = options[k]
55
+ options.keys.each do |k|
56
+ if options[k] and hc_arg_lookup[k]
57
+ healthcheck[hc_arg_lookup[k]] = options[k]
58
+ end
57
59
  end
58
- end
59
60
 
60
- unless healthcheck.keys.empty?
61
- lbopts[:healthcheck] = healthcheck
62
- end
61
+ unless healthcheck.keys.empty?
62
+ lbopts[:healthcheck] = healthcheck
63
+ end
63
64
 
64
- if options[:l]
65
- lbopts[:listeners] = options[:l].split(",").collect do |l|
66
- inport, output, protocol = l.split ":"
67
- { :in => inport, :out => output, :protocol => protocol }
65
+ if options[:l]
66
+ lbopts[:listeners] = options[:l].split(",").collect do |l|
67
+ inport, output, protocol = l.split ":"
68
+ { :in => inport, :out => output, :protocol => protocol }
69
+ end
68
70
  end
69
- end
70
71
 
71
- if options[:n]
72
- lbopts[:name] = options[:n]
73
- end
72
+ if options[:n]
73
+ lbopts[:name] = options[:n]
74
+ end
74
75
 
75
- if options[:p]
76
- lbopts[:policy] = options[:p]
77
- end
76
+ if options[:p]
77
+ lbopts[:policy] = options[:p]
78
+ end
78
79
 
79
- lb = LoadBalancer.find lb_id
80
+ lb = LoadBalancer.find lb_id
80
81
 
81
- info "Updating load balancer #{lb}"
82
- lb = lb.update(lbopts)
83
- render_table([lb], global_options)
82
+ info "Updating load balancer #{lb}"
83
+ lb = lb.update(lbopts)
84
+ render_table([lb], global_options)
85
+ end
84
86
  end
85
87
  end
@@ -1,23 +1,25 @@
1
- desc 'Activate the console service for one or more servers'
2
- arg_name 'server-id...'
3
- command [:activate_console] do |c|
1
+ module Brightbox
2
+ desc 'Activate the console service for one or more servers'
3
+ arg_name 'server-id...'
4
+ command [:activate_console] do |c|
4
5
 
5
- c.action do |global_options,options,args|
6
-
7
- raise "You must specify servers to activate the console for" if args.empty?
6
+ c.action do |global_options,options,args|
7
+
8
+ raise "You must specify servers to activate the console for" if args.empty?
8
9
 
9
- servers = Server.find_or_call(args) do |id|
10
- raise "Couldn't find server #{id}"
11
- end
10
+ servers = Server.find_or_call(args) do |id|
11
+ raise "Couldn't find server #{id}"
12
+ end
12
13
 
13
- consoles = []
14
+ consoles = []
14
15
 
15
- servers.each do |s|
16
- info "Activating console for server #{s}"
17
- r = s.activate_console
18
- consoles << { :url => r["console_url"], :token => r["console_token"], :expires => r["console_token_expires"] }
19
- end
16
+ servers.each do |s|
17
+ info "Activating console for server #{s}"
18
+ r = s.activate_console
19
+ consoles << { :url => r["console_url"], :token => r["console_token"], :expires => r["console_token_expires"] }
20
+ end
20
21
 
21
- render_table(consoles, global_options.merge(:fields => [:url, :token, :expires]))
22
+ render_table(consoles, global_options.merge(:fields => [:url, :token, :expires]))
23
+ end
22
24
  end
23
25
  end
@@ -1,100 +1,103 @@
1
- desc 'Create servers'
2
- arg_name 'image_id'
3
- command [:create] do |c|
1
+ module Brightbox
2
+ desc 'Create servers'
3
+ arg_name 'image_id'
4
+ command [:create] do |c|
4
5
 
5
- c.desc "Number of servers to create"
6
- c.default_value 1
7
- c.flag [:i, "server-count"]
6
+ c.desc "Number of servers to create"
7
+ c.default_value 1
8
+ c.flag [:i, "server-count"]
8
9
 
9
- c.desc "Zone to create the servers in"
10
- c.flag [:z, "zone"]
10
+ c.desc "Zone to create the servers in"
11
+ c.flag [:z, "zone"]
11
12
 
12
- c.desc "Type of server to create"
13
- c.default_value "nano"
14
- c.flag [:t, :type]
13
+ c.desc "Type of server to create"
14
+ c.default_value "nano"
15
+ c.flag [:t, :type]
15
16
 
16
- c.desc "Friendly name of server"
17
- c.flag [:n, :name]
17
+ c.desc "Friendly name of server"
18
+ c.flag [:n, :name]
18
19
 
19
- c.desc "Specify user data"
20
- c.flag [:m, "user-data"]
20
+ c.desc "Specify user data"
21
+ c.flag [:m, "user-data"]
21
22
 
22
- c.desc "Specify the user data from a local file"
23
- c.flag [:f, "user-data-file"]
23
+ c.desc "Specify the user data from a local file"
24
+ c.flag [:f, "user-data-file"]
24
25
 
25
- c.desc "Don't base64 encode the user data"
26
- c.switch [:e, :no_base64]
26
+ c.desc "Don't base64 encode the user data"
27
+ c.switch [:e, :no_base64]
27
28
 
28
- c.action do |global_options, options, args|
29
+ c.action do |global_options, options, args|
29
30
 
30
- if args.empty?
31
- raise "You must specify the image_id as the first argument"
32
- end
33
-
34
- if options[:i].to_s !~ /^[0-9]+$/
35
- raise "server-count must be a number"
36
- end
31
+ if args.empty?
32
+ raise "You must specify the image_id as the first argument"
33
+ end
37
34
 
38
- options[:i] = options[:i].to_i
35
+ if options[:i].to_s !~ /^[0-9]+$/
36
+ raise "server-count must be a number"
37
+ end
39
38
 
40
- image_id = args.shift
41
- image = Image.find image_id
42
-
43
- type_id = options[:t]
44
- if type_id =~ /^typ\-/
45
- type = Type.find type_id
46
- else
47
- type = Type.find_by_handle type_id
48
- end
39
+ options[:i] = options[:i].to_i
49
40
 
50
- if options[:z]
51
- zone = options[:z]
52
- if zone =~ /^typ\-/
53
- zone = Zone.find zone
41
+ image_id = args.shift
42
+ image = Image.find image_id
43
+
44
+ type_id = options[:t]
45
+ if type_id =~ /^typ\-/
46
+ type = Type.find type_id
54
47
  else
55
- zone = Zone.find_by_handle zone
48
+ type = Type.find_by_handle type_id
56
49
  end
57
- end
58
-
59
- user_data = options[:m]
60
- user_data_file = options[:f]
61
50
 
62
- if user_data_file
63
- raise "Cannot specify user data on command line and in file at same time" if user_data
64
- # Wot we use to read the data, be it from stdin or a file on disk
65
- file_handler = lambda do |fh|
66
- raise "User data file too big (>16k)" if fh.stat.size > 16 * 1024
67
- user_data = fh.read
51
+ if options[:z]
52
+ zone = options[:z]
53
+ if zone =~ /^typ\-/
54
+ zone = Zone.find zone
55
+ else
56
+ zone = Zone.find_by_handle zone
57
+ end
68
58
  end
69
- # Figure out how to invoke file_handler, and then invoke it
70
- if user_data_file == "-"
71
- file_handler[$stdin]
72
- else
73
- File.open user_data_file, "r", &file_handler
59
+
60
+ user_data = options[:m]
61
+ user_data_file = options[:f]
62
+
63
+ if user_data_file
64
+ raise "Cannot specify user data on command line and in file at same time" if user_data
65
+ # Wot we use to read the data, be it from stdin or a file on disk
66
+ file_handler = lambda do |fh|
67
+ raise "User data file too big (>16k)" if fh.stat.size > 16 * 1024
68
+ user_data = fh.read
69
+ end
70
+ # Figure out how to invoke file_handler, and then invoke it
71
+ if user_data_file == "-"
72
+ file_handler[$stdin]
73
+ else
74
+ File.open user_data_file, "r", &file_handler
75
+ end
74
76
  end
75
- end
76
77
 
77
- if user_data
78
- unless options[:e]
79
- require 'base64'
80
- user_data = Base64.encode64(user_data)
78
+ if user_data
79
+ unless options[:e]
80
+ require 'base64'
81
+ user_data = Base64.encode64(user_data)
82
+ end
83
+ raise "User data too big (>16k)" if user_data.size > 16 * 1024
81
84
  end
82
- raise "User data too big (>16k)" if user_data.size > 16 * 1024
83
- end
84
85
 
85
- msg = "Creating #{options[:i] > 1 ? options[:i] : 'a'} #{type.handle} (#{type.id})"
86
- msg << " server#{options[:i] > 1 ? 's' : ''} with image #{image.name.strip} (#{image.id})"
87
- msg << " in zone #{zone.handle} (#{zone})" if zone
88
- msg << " with %.2fk of user data" % (user_data.size / 1024.0) if user_data
89
- info msg
90
- servers = []
91
- options[:i].times do
92
- servers << Server.create(:image_id => image.id,
93
- :flavor_id => type.id,
94
- :zone_id => zone.to_s,
95
- :name => options[:n],
96
- :user_data => user_data)
86
+ msg = "Creating #{options[:i] > 1 ? options[:i] : 'a'} #{type.handle} (#{type.id})"
87
+ msg << " server#{options[:i] > 1 ? 's' : ''} with image #{image.name.strip} (#{image.id})"
88
+ msg << " in zone #{zone.handle} (#{zone})" if zone
89
+ msg << " with %.2fk of user data" % (user_data.size / 1024.0) if user_data
90
+ info msg
91
+
92
+ servers = Server.create_servers( options[:i], {
93
+ :image_id => image.id,
94
+ :flavor_id => type.id,
95
+ :zone_id => zone.to_s,
96
+ :name => options[:n],
97
+ :user_data => user_data
98
+ }
99
+ )
100
+ render_table(servers, global_options)
97
101
  end
98
- render_table(servers, global_options)
99
102
  end
100
103
  end