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,24 +1,28 @@
1
- desc 'Show detailed account info'
2
- arg_name 'account-id...'
3
- command [:show] do |c|
1
+ module Brightbox
2
+ desc 'Show detailed account info'
3
+ arg_name 'account-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
- if args.empty?
8
- raise "You must specify the accounts to show"
9
- end
8
+ if args.empty?
9
+ raise "You must specify the accounts to show"
10
+ end
10
11
 
11
- accounts = Account.find_or_call(args) do |id|
12
- warn "Couldn't find account #{id}"
13
- end
12
+ accounts = Account.find_or_call(args) do |id|
13
+ warn "Couldn't find account #{id}"
14
+ end
14
15
 
15
- table_opts = global_options.merge({
16
- :vertical => true,
17
- :fields => [:id, :name, :cloud_ip_limit, :ram_limit, :ram_used,
18
- :ram_free, :library_ftp_host, :library_ftp_user ]
19
- })
16
+ table_opts = global_options.merge({
17
+ :vertical => true,
18
+ :fields => [:id, :name, :cloud_ip_limit, :ram_limit, :ram_used,
19
+ :ram_free, :library_ftp_host, :library_ftp_user ]
20
+ })
20
21
 
21
- render_table(accounts, table_opts)
22
+ render_table(accounts, table_opts)
22
23
 
24
+ end
23
25
  end
24
26
  end
27
+
28
+
@@ -1,21 +1,23 @@
1
- desc 'Create a new cloud ip'
2
- command [:create] do |c|
3
- c.desc "Number of cloud ips to create"
4
- c.default_value 1
5
- c.flag [:i, "count"]
1
+ module Brightbox
2
+ desc 'Create a new cloud ip'
3
+ command [:create] do |c|
4
+ c.desc "Number of cloud ips to create"
5
+ c.default_value 1
6
+ c.flag [:i, "count"]
6
7
 
7
- c.action do |global_options, options, args|
8
+ c.action do |global_options, options, args|
8
9
 
9
- if options[:i].to_s !~ /^[0-9]+$/
10
- raise "count must be a number"
11
- end
10
+ if options[:i].to_s !~ /^[0-9]+$/
11
+ raise "count must be a number"
12
+ end
12
13
 
13
- options[:i] = options[:i].to_i
14
+ options[:i] = options[:i].to_i
14
15
 
15
- ips = []
16
- options[:i].times do
17
- ips << CloudIP.create
16
+ ips = []
17
+ options[:i].times do
18
+ ips << CloudIP.create
19
+ end
20
+ render_table(ips, global_options)
18
21
  end
19
- render_table(ips, global_options)
20
22
  end
21
23
  end
@@ -1,37 +1,40 @@
1
- desc 'destroy Cloud IPs'
2
- arg_name '[cloudip-id...]'
3
- command [:destroy] do |c|
4
- c.desc "Unmap mapped ips before destroying them"
5
- c.switch [:u, "unmap"]
1
+ module Brightbox
2
+ desc 'destroy Cloud IPs'
3
+ arg_name '[cloudip-id...]'
4
+ command [:destroy] do |c|
5
+ c.desc "Unmap mapped ips before destroying them"
6
+ c.switch [:u, "unmap"]
6
7
 
7
- c.action do |global_options,options,args|
8
+ c.action do |global_options,options,args|
8
9
 
9
- if args.empty?
10
- raise "You must specify the cloud ips you want to destroy"
11
- end
10
+ if args.empty?
11
+ raise "You must specify the cloud ips you want to destroy"
12
+ end
12
13
 
13
- ips = CloudIP.find_or_call(args) do |id|
14
- raise "Couldn't find cloud ip #{id}"
15
- end
14
+ ips = CloudIP.find_or_call(args) do |id|
15
+ raise "Couldn't find cloud ip #{id}"
16
+ end
16
17
 
17
- ips.each do |ip|
18
+ ips.each do |ip|
18
19
 
19
- if ip.mapped?
20
- if options[:u]
21
- info "Unmapping cloud ip #{ip}"
22
- ip.unmap
23
- 3.times do
24
- break unless ip.mapped?
25
- sleep 1
26
- ip.reload
20
+ if ip.mapped?
21
+ if options[:u]
22
+ info "Unmapping cloud ip #{ip}"
23
+ ip.unmap
24
+ 3.times do
25
+ break unless ip.mapped?
26
+ sleep 1
27
+ ip.reload
28
+ end
29
+ else
30
+ raise "Cannot destroy mapped cloud ip #{ip}"
27
31
  end
28
- else
29
- raise "Cannot destroy mapped cloud ip #{ip}"
30
32
  end
33
+ info "Destroying cloud ip #{ip}"
34
+ ip.destroy
31
35
  end
32
- info "Destroying cloud ip #{ip}"
33
- ip.destroy
34
- end
35
36
 
37
+ end
36
38
  end
39
+
37
40
  end
@@ -1,17 +1,19 @@
1
- desc 'List CloudIPs'
2
- arg_name '[cloudip-id...]'
3
- command [:list] do |c|
1
+ module Brightbox
2
+ desc 'List CloudIPs'
3
+ arg_name '[cloudip-id...]'
4
+ command [:list] do |c|
4
5
 
5
- c.action do |global_options,options,args|
6
+ c.action do |global_options,options,args|
6
7
 
7
- if args.empty?
8
- ips = CloudIP.find(:all)
9
- else
10
- ips = CloudIP.find_or_call(args) do |id|
11
- warn "Couldn't find cloud ip #{id}"
8
+ if args.empty?
9
+ ips = CloudIP.find(:all)
10
+ else
11
+ ips = CloudIP.find_or_call(args) do |id|
12
+ warn "Couldn't find cloud ip #{id}"
13
+ end
12
14
  end
13
- end
14
15
 
15
- render_table(ips.sort, global_options)
16
+ render_table(ips.sort, global_options)
17
+ end
16
18
  end
17
19
  end
@@ -1,58 +1,60 @@
1
- desc 'map Cloud IPs'
2
- arg_name 'cloudip-id destination'
3
- command [:map] do |c|
4
- c.desc "Unmap mapped ips before remapping them"
5
- c.switch [:u, "unmap"]
1
+ module Brightbox
2
+ desc 'map Cloud IPs'
3
+ arg_name 'cloudip-id destination'
4
+ command [:map] do |c|
5
+ c.desc "Unmap mapped ips before remapping them"
6
+ c.switch [:u, "unmap"]
6
7
 
7
- c.action do |global_options,options,args|
8
+ c.action do |global_options,options,args|
8
9
 
9
- if args.size > 2
10
- raise "Too many arguments"
11
- end
10
+ if args.size > 2
11
+ raise "Too many arguments"
12
+ end
12
13
 
13
- if args.size < 2
14
- raise "You must specify the cloud ip id and the destination"
15
- end
14
+ if args.size < 2
15
+ raise "You must specify the cloud ip id and the destination"
16
+ end
16
17
 
17
- ip_id = args.first
18
-
19
- ip = CloudIP.find ip_id
20
-
21
- destination_id = args.last
22
- case destination_id
23
- when /^srv\-/
24
- server = Server.find destination_id
25
- destination_id = server.interfaces.first["id"]
26
- info "Mapping #{ip} to interface #{destination_id} on #{server}"
27
- when /^lba\-/
28
- lb = LoadBalancer.find destination_id
29
- info "Mapping #{ip} to load balancer #{lb}"
30
- else
31
- raise "Unknown destination '#{destination_id}'"
32
- end
18
+ ip_id = args.first
33
19
 
34
- if ip.mapped?
35
- if options[:u]
36
- ip.unmap
37
- 3.times do
38
- break unless ip.mapped?
39
- sleep 1
40
- ip.reload
41
- end
20
+ ip = CloudIP.find ip_id
21
+
22
+ destination_id = args.last
23
+ case destination_id
24
+ when /^srv\-/
25
+ server = Server.find destination_id
26
+ destination_id = server.interfaces.first["id"]
27
+ info "Mapping #{ip} to interface #{destination_id} on #{server}"
28
+ when /^lba\-/
29
+ lb = LoadBalancer.find destination_id
30
+ info "Mapping #{ip} to load balancer #{lb}"
42
31
  else
43
- raise "Refusing to map already mapped ip #{ip}"
32
+ raise "Unknown destination '#{destination_id}'"
44
33
  end
45
- end
46
34
 
47
- ip.map destination_id
35
+ if ip.mapped?
36
+ if options[:u]
37
+ ip.unmap
38
+ 3.times do
39
+ break unless ip.mapped?
40
+ sleep 1
41
+ ip.reload
42
+ end
43
+ else
44
+ raise "Refusing to map already mapped ip #{ip}"
45
+ end
46
+ end
48
47
 
49
- # Wait up to 3 seconds for mapping to complete
50
- 3.times do
51
- ip.reload
52
- break if ip.mapped?
53
- sleep 1
54
- end
48
+ ip.map destination_id
55
49
 
56
- render_table([ip], global_options)
50
+ # Wait up to 3 seconds for mapping to complete
51
+ 3.times do
52
+ ip.reload
53
+ break if ip.mapped?
54
+ sleep 1
55
+ end
56
+
57
+ render_table([ip], global_options)
58
+ end
57
59
  end
58
60
  end
@@ -1,19 +1,22 @@
1
- desc 'show details on Cloud IPs'
2
- arg_name 'cloudip-id...'
3
- command [:show] do |c|
1
+ module Brightbox
2
+ desc 'show details on Cloud IPs'
3
+ arg_name 'cloudip-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
- if args.empty?
8
- raise "You must specify the cloud ips you want to show"
9
- end
8
+ if args.empty?
9
+ raise "You must specify the cloud ips you want to show"
10
+ end
10
11
 
11
- ips = CloudIP.find_or_call(args) do |id|
12
- warn "Couldn't find cloud ip #{id}"
13
- end
12
+ ips = CloudIP.find_or_call(args) do |id|
13
+ warn "Couldn't find cloud ip #{id}"
14
+ end
14
15
 
15
- fields = [:id, :status, :public_ip, :reverse_dns, :destination, :interface_id]
16
+ fields = [:id, :status, :public_ip, :reverse_dns, :destination, :interface_id]
16
17
 
17
- render_table(ips.compact, global_options.merge({ :vertical => true, :fields => fields}))
18
+ render_table(ips.compact, global_options.merge({ :vertical => true, :fields => fields}))
19
+ end
18
20
  end
21
+
19
22
  end
@@ -1,34 +1,37 @@
1
- desc 'unmap Cloud IPs'
2
- arg_name 'cloudip-id...'
3
- command [:unmap] do |c|
1
+ module Brightbox
2
+ desc 'unmap Cloud IPs'
3
+ arg_name 'cloudip-id...'
4
+ command [:unmap] do |c|
4
5
 
5
- c.action do |global_options,options,args|
6
+ c.action do |global_options,options,args|
6
7
 
7
- if args.empty?
8
- raise "You must specify the cloud ips you want to unmap"
9
- end
8
+ if args.empty?
9
+ raise "You must specify the cloud ips you want to unmap"
10
+ end
10
11
 
11
- ips = CloudIP.find_or_call(args) do |id|
12
- raise "Couldn't find cloud ip #{id}"
13
- end
12
+ ips = CloudIP.find_or_call(args) do |id|
13
+ raise "Couldn't find cloud ip #{id}"
14
+ end
14
15
 
15
- ips.each do |ip|
16
- if ip.mapped?
17
- info "Unmapping cloud ip #{ip}"
18
- ip.unmap
19
- ip.reload
20
- else
21
- warn "Cloud ip #{ip} already unmapped"
16
+ ips.each do |ip|
17
+ if ip.mapped?
18
+ info "Unmapping cloud ip #{ip}"
19
+ ip.unmap
20
+ ip.reload
21
+ else
22
+ warn "Cloud ip #{ip} already unmapped"
23
+ end
22
24
  end
23
- end
24
25
 
25
- # Wait up to 3 seconds for unmapping to complete
26
- 3.times do
27
- break unless ips.find { |ip| ip.mapped? }
28
- sleep 1
29
- ips.each { |ip| ip.reload if ip.mapped? }
30
- end
26
+ # Wait up to 3 seconds for unmapping to complete
27
+ 3.times do
28
+ break unless ips.find { |ip| ip.mapped? }
29
+ sleep 1
30
+ ips.each { |ip| ip.reload if ip.mapped? }
31
+ end
31
32
 
32
- render_table(ips, global_options)
33
+ render_table(ips, global_options)
34
+ end
33
35
  end
36
+
34
37
  end
@@ -1,45 +1,47 @@
1
- desc 'Add new api client details to config'
2
- arg_name 'client-id secret [api_url, auth_url]'
3
- command [:client_add] do |c|
1
+ module Brightbox
2
+ desc 'Add new api client details to config'
3
+ arg_name 'client-id secret [api_url, auth_url]'
4
+ command [:client_add] do |c|
4
5
 
5
- c.desc "api client alias, for local reference (defaults to client-id)"
6
- c.flag [:a, "alias"]
6
+ c.desc "api client alias, for local reference (defaults to client-id)"
7
+ c.flag [:a, "alias"]
7
8
 
8
- c.desc "auth url"
9
- c.flag [:t, "auth-url"]
9
+ c.desc "auth url"
10
+ c.flag [:t, "auth-url"]
10
11
 
11
- c.action do |global_options, options, args|
12
+ c.action do |global_options, options, args|
12
13
 
13
- info "Using config file #{CONFIG.config_filename}"
14
+ info "Using config file #{CONFIG.config_filename}"
14
15
 
15
- client_id = args.shift
16
- secret = args.shift
17
- api_url = args.shift || "https://api.gb1.brightbox.com"
18
- auth_url = args.shift || api_url
19
- calias = options[:a] || client_id
16
+ client_id = args.shift
17
+ secret = args.shift
18
+ api_url = args.shift || "https://api.gb1.brightbox.com"
19
+ auth_url = args.shift || api_url
20
+ calias = options[:a] || client_id
20
21
 
21
- if client_id.nil?
22
- raise "You must specify the api client-id"
23
- end
22
+ if client_id.nil?
23
+ raise "You must specify the api client-id"
24
+ end
24
25
 
25
- if secret.nil?
26
- raise "You must specify the api secret"
27
- end
26
+ if secret.nil?
27
+ raise "You must specify the api secret"
28
+ end
28
29
 
29
- client_config = CONFIG[calias]
30
- unless client_config.empty?
31
- raise "An api client with the id or alias #{calias} already exists"
32
- end
30
+ client_config = CONFIG[calias]
31
+ unless client_config.empty?
32
+ raise "An api client with the id or alias #{calias} already exists"
33
+ end
33
34
 
34
- info "Creating new api client config #{calias}"
35
+ info "Creating new api client config #{calias}"
35
36
 
36
- client_config['alias'] = calias
37
- client_config['client_id'] = client_id
38
- client_config['secret'] = secret
39
- client_config['api_url'] = api_url
40
- client_config['auth_url'] = auth_url
37
+ client_config['alias'] = calias
38
+ client_config['client_id'] = client_id
39
+ client_config['secret'] = secret
40
+ client_config['api_url'] = api_url
41
+ client_config['auth_url'] = auth_url
41
42
 
42
- CONFIG.save!
43
+ CONFIG.save!
43
44
 
45
+ end
44
46
  end
45
47
  end