bbcloud 0.11.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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