brightbox-cli 3.3.0 → 4.0.0.rc2

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 (417) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +1 -0
  3. data/.github/workflows/ruby.yml +1 -1
  4. data/.gitignore +1 -1
  5. data/.rubocop.yml +70 -0
  6. data/CHANGELOG.md +52 -0
  7. data/Gemfile.lock +66 -39
  8. data/README +11 -16
  9. data/README.rdoc +1 -1
  10. data/brightbox-cli.gemspec +20 -33
  11. data/lib/brightbox-cli/accounts.rb +9 -11
  12. data/lib/brightbox-cli/api.rb +38 -36
  13. data/lib/brightbox-cli/cloud_ips.rb +8 -8
  14. data/lib/brightbox-cli/collaborating_account.rb +5 -5
  15. data/lib/brightbox-cli/collaboration.rb +1 -1
  16. data/lib/brightbox-cli/commands/accounts/{accept-invite.rb → accept_invite.rb} +2 -6
  17. data/lib/brightbox-cli/commands/accounts/default.rb +1 -2
  18. data/lib/brightbox-cli/commands/accounts/list.rb +6 -8
  19. data/lib/brightbox-cli/commands/accounts/remove.rb +2 -6
  20. data/lib/brightbox-cli/commands/accounts/{reset-ftp-password.rb → reset_ftp_password.rb} +6 -9
  21. data/lib/brightbox-cli/commands/accounts/show.rb +10 -13
  22. data/lib/brightbox-cli/commands/cloudips/create.rb +2 -5
  23. data/lib/brightbox-cli/commands/cloudips/destroy.rb +10 -14
  24. data/lib/brightbox-cli/commands/cloudips/list.rb +0 -2
  25. data/lib/brightbox-cli/commands/cloudips/map.rb +10 -13
  26. data/lib/brightbox-cli/commands/cloudips/show.rb +11 -14
  27. data/lib/brightbox-cli/commands/cloudips/unmap.rb +2 -4
  28. data/lib/brightbox-cli/commands/cloudips/update.rb +2 -4
  29. data/lib/brightbox-cli/commands/collaborations.rb +2 -3
  30. data/lib/brightbox-cli/commands/config/{client-add.rb → client_add.rb} +0 -3
  31. data/lib/brightbox-cli/commands/config/client_default.rb +18 -0
  32. data/lib/brightbox-cli/commands/config/{client-list.rb → client_list.rb} +1 -4
  33. data/lib/brightbox-cli/commands/config/{client-remove.rb → client_remove.rb} +0 -3
  34. data/lib/brightbox-cli/commands/config/{user-add.rb → user_add.rb} +1 -4
  35. data/lib/brightbox-cli/commands/firewall/{policies-apply.rb → policies_apply.rb} +2 -2
  36. data/lib/brightbox-cli/commands/firewall/{policies-create.rb → policies_create.rb} +2 -4
  37. data/lib/brightbox-cli/commands/firewall/{policies-destroy.rb → policies_destroy.rb} +0 -3
  38. data/lib/brightbox-cli/commands/firewall/{policies-list.rb → policies_list.rb} +0 -2
  39. data/lib/brightbox-cli/commands/firewall/{policies-remove.rb → policies_remove.rb} +2 -2
  40. data/lib/brightbox-cli/commands/firewall/{policies-show.rb → policies_show.rb} +6 -8
  41. data/lib/brightbox-cli/commands/firewall/{policies-update.rb → policies_update.rb} +2 -4
  42. data/lib/brightbox-cli/commands/firewall/{rules-create.rb → rules_create.rb} +6 -8
  43. data/lib/brightbox-cli/commands/firewall/{rules-destroy.rb → rules_destroy.rb} +0 -2
  44. data/lib/brightbox-cli/commands/firewall/{rules-list.rb → rules_list.rb} +0 -2
  45. data/lib/brightbox-cli/commands/firewall/{rules-show.rb → rules_show.rb} +7 -9
  46. data/lib/brightbox-cli/commands/firewall/{rules-update.rb → rules_update.rb} +7 -8
  47. data/lib/brightbox-cli/commands/groups/{add-server.rb → add_server.rb} +0 -2
  48. data/lib/brightbox-cli/commands/groups/create.rb +2 -3
  49. data/lib/brightbox-cli/commands/groups/destroy.rb +0 -2
  50. data/lib/brightbox-cli/commands/groups/list.rb +0 -1
  51. data/lib/brightbox-cli/commands/groups/move_servers.rb +2 -3
  52. data/lib/brightbox-cli/commands/groups/{remove-servers.rb → remove_servers.rb} +2 -4
  53. data/lib/brightbox-cli/commands/groups/show.rb +0 -2
  54. data/lib/brightbox-cli/commands/groups/update.rb +2 -3
  55. data/lib/brightbox-cli/commands/images/destroy.rb +0 -4
  56. data/lib/brightbox-cli/commands/images/list.rb +3 -5
  57. data/lib/brightbox-cli/commands/images/register.rb +9 -17
  58. data/lib/brightbox-cli/commands/images/show.rb +19 -20
  59. data/lib/brightbox-cli/commands/images/update.rb +12 -8
  60. data/lib/brightbox-cli/commands/lbs/{add-nodes.rb → add_nodes.rb} +0 -3
  61. data/lib/brightbox-cli/commands/lbs/create.rb +5 -7
  62. data/lib/brightbox-cli/commands/lbs/destroy.rb +0 -3
  63. data/lib/brightbox-cli/commands/lbs/list.rb +0 -1
  64. data/lib/brightbox-cli/commands/lbs/{remove-nodes.rb → remove_nodes.rb} +0 -3
  65. data/lib/brightbox-cli/commands/lbs/show.rb +20 -22
  66. data/lib/brightbox-cli/commands/lbs/update.rb +6 -9
  67. data/lib/brightbox-cli/commands/login.rb +13 -12
  68. data/lib/brightbox-cli/commands/servers/{activate-console.rb → activate_console.rb} +2 -5
  69. data/lib/brightbox-cli/commands/servers/create.rb +24 -25
  70. data/lib/brightbox-cli/commands/servers/destroy.rb +0 -3
  71. data/lib/brightbox-cli/commands/servers/list.rb +4 -5
  72. data/lib/brightbox-cli/commands/servers/show.rb +0 -2
  73. data/lib/brightbox-cli/commands/servers/shutdown.rb +0 -3
  74. data/lib/brightbox-cli/commands/servers/snapshot.rb +0 -4
  75. data/lib/brightbox-cli/commands/servers/start.rb +0 -4
  76. data/lib/brightbox-cli/commands/servers/stop.rb +0 -3
  77. data/lib/brightbox-cli/commands/servers/update.rb +5 -5
  78. data/lib/brightbox-cli/commands/sql/instances_create.rb +3 -6
  79. data/lib/brightbox-cli/commands/sql/instances_destroy.rb +0 -2
  80. data/lib/brightbox-cli/commands/sql/instances_list.rb +7 -9
  81. data/lib/brightbox-cli/commands/sql/instances_reset_password.rb +0 -1
  82. data/lib/brightbox-cli/commands/sql/instances_show.rb +0 -3
  83. data/lib/brightbox-cli/commands/sql/instances_snapshot.rb +0 -3
  84. data/lib/brightbox-cli/commands/sql/instances_update.rb +1 -3
  85. data/lib/brightbox-cli/commands/sql/snapshots_destroy.rb +0 -3
  86. data/lib/brightbox-cli/commands/sql/snapshots_list.rb +7 -9
  87. data/lib/brightbox-cli/commands/sql/snapshots_show.rb +12 -15
  88. data/lib/brightbox-cli/commands/sql/snapshots_update.rb +1 -3
  89. data/lib/brightbox-cli/commands/sql/types.rb +8 -15
  90. data/lib/brightbox-cli/commands/token.rb +0 -1
  91. data/lib/brightbox-cli/commands/types.rb +8 -14
  92. data/lib/brightbox-cli/commands/{user-collaborations.rb → user_collaborations.rb} +7 -8
  93. data/lib/brightbox-cli/commands/users/list.rb +0 -2
  94. data/lib/brightbox-cli/commands/users/show.rb +1 -3
  95. data/lib/brightbox-cli/commands/users/update.rb +3 -6
  96. data/lib/brightbox-cli/commands/zones.rb +7 -10
  97. data/lib/brightbox-cli/config/accounts.rb +18 -26
  98. data/lib/brightbox-cli/config/api_client.rb +12 -16
  99. data/lib/brightbox-cli/config/authentication_tokens.rb +39 -42
  100. data/lib/brightbox-cli/config/cache.rb +1 -0
  101. data/lib/brightbox-cli/config/clients.rb +8 -8
  102. data/lib/brightbox-cli/config/gpg_encrypted_passwords.rb +6 -8
  103. data/lib/brightbox-cli/config/password_helper.rb +33 -8
  104. data/lib/brightbox-cli/config/sections.rb +45 -29
  105. data/lib/brightbox-cli/config/two_factor_auth.rb +12 -14
  106. data/lib/brightbox-cli/config/two_factor_helper.rb +5 -7
  107. data/lib/brightbox-cli/config/user_application.rb +18 -18
  108. data/lib/brightbox-cli/config.rb +26 -23
  109. data/lib/brightbox-cli/connection_manager.rb +4 -2
  110. data/lib/brightbox-cli/database_server.rb +28 -29
  111. data/lib/brightbox-cli/database_snapshot.rb +1 -1
  112. data/lib/brightbox-cli/database_type.rb +6 -6
  113. data/lib/brightbox-cli/detailed_server.rb +43 -43
  114. data/lib/brightbox-cli/detailed_server_group.rb +1 -1
  115. data/lib/brightbox-cli/error_parser.rb +9 -9
  116. data/lib/brightbox-cli/firewall_policy.rb +2 -1
  117. data/lib/brightbox-cli/firewall_rule.rb +3 -3
  118. data/lib/brightbox-cli/firewall_rules.rb +3 -3
  119. data/lib/brightbox-cli/gli_global_hooks.rb +25 -27
  120. data/lib/brightbox-cli/images.rb +14 -12
  121. data/lib/brightbox-cli/load_balancers.rb +3 -6
  122. data/lib/brightbox-cli/logging.rb +14 -14
  123. data/lib/brightbox-cli/nilable_hash.rb +1 -1
  124. data/lib/brightbox-cli/ruby_core_ext.rb +3 -3
  125. data/lib/brightbox-cli/server_groups.rb +2 -2
  126. data/lib/brightbox-cli/servers.rb +6 -6
  127. data/lib/brightbox-cli/tables.rb +13 -15
  128. data/lib/brightbox-cli/types.rb +6 -6
  129. data/lib/brightbox-cli/user_collaboration.rb +5 -7
  130. data/lib/brightbox-cli/users.rb +1 -1
  131. data/lib/brightbox-cli/version.rb +1 -1
  132. data/lib/brightbox-cli/zones.rb +1 -1
  133. data/lib/brightbox_cli.rb +33 -33
  134. data/spec/brightbox_spec.rb +0 -1
  135. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_a_collection_of_Accounts.yml +5 -5
  136. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_resources_on_the_same_connection.yml +2 -2
  137. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_a_collection_of_Accounts.yml +4 -4
  138. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_resources_on_the_same_connection.yml +2 -2
  139. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_config_exists_and_overwrite_duplicates_is_false/does_not_update_the_config_file.yml +12 -12
  140. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_config_exists_and_overwrite_duplicates_is_true/does_not_update_the_config_file.yml +12 -12
  141. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_changes_to_the_config_file.yml +2 -2
  142. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_default_account.yml +2 -2
  143. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_new_client_as_the_default.yml +2 -2
  144. data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_is_not_authenticated/does_not_raise_an_error.yml +8 -8
  145. data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_may_access_one_account/updates_the_setting.yml +8 -8
  146. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_config_in_use_is_not_the_default/uses_correct_credentials.yml +1 -1
  147. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_a_cached_refresh_token/caches_the_new_tokens.yml +1 -1
  148. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_an_expired_refresh_token/caches_the_new_tokens.yml +2 -2
  149. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/caches_the_new_tokens.yml +1 -1
  150. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/prompts_user_to_retry_command.yml +1 -1
  151. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_an_API_client_with_no_tokens/caches_a_new_access_token.yml +1 -1
  152. data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/does_not_alter_the_configuration.yml +6 -6
  153. data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/updates_access_token.yml +6 -6
  154. data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/updates_refresh_token.yml +6 -6
  155. data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/does_not_alter_the_configuration.yml +6 -6
  156. data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/updates_access_token.yml +6 -6
  157. data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/updates_refresh_token.yml +6 -6
  158. data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/does_not_alter_the_configuration.yml +9 -9
  159. data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/updates_access_token.yml +9 -9
  160. data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/updates_refresh_token.yml +9 -9
  161. data/spec/cassettes/Brightbox_BBConfig_add_login/when_no_config_exists/creates_the_configuration.yml +6 -6
  162. data/spec/cassettes/Brightbox_BBConfig_add_login/when_no_config_exists/refreshed_tokens.yml +6 -6
  163. data/spec/cassettes/Brightbox_BBConfig_add_login/when_using_an_email_and_suffix/creates_the_configuration.yml +6 -6
  164. data/spec/cassettes/Brightbox_BBConfig_add_login/when_using_an_email_and_suffix/refreshed_tokens.yml +6 -6
  165. data/spec/cassettes/Brightbox_CloudIP/_find_all_/when_a_Cloud_IP_exists/returns_a_suitable.yml +15 -15
  166. data/spec/cassettes/Brightbox_FirewallPolicy/_apply_to/should_apply_firewall_policy.yml +14 -14
  167. data/spec/cassettes/Brightbox_FirewallPolicy/_create/should_create_firewall_policy.yml +14 -14
  168. data/spec/cassettes/Brightbox_FirewallPolicy/_destroy/should_destroy_firewall_policy.yml +16 -16
  169. data/spec/cassettes/Brightbox_FirewallPolicy/_find_all_/when_a_policy_exists/should_list_firewall_policy.yml +13 -13
  170. data/spec/cassettes/Brightbox_FirewallPolicy/_find_or_call/when_a_policy_exists/should_show_firewall_policy.yml +11 -11
  171. data/spec/cassettes/Brightbox_FirewallRule/_create/when_policy_exists/creates_the_rule_successfully.yml +14 -14
  172. data/spec/cassettes/Brightbox_FirewallRule/_destroy/when_rule_exists/destroys_a_rule.yml +12 -12
  173. data/spec/cassettes/Brightbox_FirewallRule/_find/when_rule_exists/can_display_the_result.yml +14 -14
  174. data/spec/cassettes/Brightbox_FirewallRule/_from_policy/when_policy_exists_with_a_rule/lists_all_rules.yml +19 -19
  175. data/spec/cassettes/Brightbox_Server/_destroy/when_server_exists/should_work.yml +12 -12
  176. data/spec/cassettes/Brightbox_Server/_find_all_/when_a_server_exists/should_print_server_list.yml +15 -15
  177. data/spec/cassettes/Brightbox_Server/_show/when_server_exists/shows_detailed_attributes_of_a_server.yml +18 -18
  178. data/spec/cassettes/Brightbox_Server/_shutdown/should_work.yml +18 -18
  179. data/spec/cassettes/Brightbox_Server/_start/should_work.yml +24 -24
  180. data/spec/cassettes/Brightbox_Server/_stop/should_work.yml +18 -18
  181. data/spec/cassettes/Brightbox_Server/_update/when_passing_new_group_membership/should_update_with_group.yml +22 -22
  182. data/spec/cassettes/Brightbox_ServerGroup/_find_all_/when_a_group_exists/list_server_groups.yml +13 -13
  183. data/spec/cassettes/Firewall_policies/update/when_the_policy_does_not_exist/prints_error_to_STDERR.yml +3 -3
  184. data/spec/cassettes/brightbox_accounts/list/_when_access_token_expired_/does_not_report_invalid_token_errors.yml +30 -30
  185. data/spec/cassettes/brightbox_accounts/list/_when_both_tokens_expired_/does_not_report_invalid_token_errors.yml +9 -9
  186. data/spec/cassettes/brightbox_accounts/list/_when_invalid_tokens_/does_not_report_invalid_token_errors.yml +9 -9
  187. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/does_not_report_invalid_token_errors.yml +27 -27
  188. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/reports_they_were_updated.yml +7 -7
  189. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/does_not_report_invalid_token_errors.yml +7 -7
  190. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/reports_unable_to_authenticate.yml +6 -6
  191. data/spec/cassettes/brightbox_accounts/list/does_not_error.yml +3 -3
  192. data/spec/cassettes/brightbox_cloudips/map/when_destination_is_a_server_ID/passes_the_interface_identifier_to_the_API.yml +12 -12
  193. data/spec/cassettes/brightbox_cloudips/map/when_destination_is_another_value/passes_the_identifier_to_the_API.yml +7 -7
  194. data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/does_not_error.yml +7 -7
  195. data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/sets_up_the_config.yml +7 -7
  196. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_change_the_default_client.yml +7 -7
  197. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_error.yml +7 -7
  198. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +7 -7
  199. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +7 -7
  200. data/spec/cassettes/brightbox_config/user_add/when_NO_config_file_on_disk/sets_up_the_config.yml +5 -5
  201. data/spec/cassettes/brightbox_config/user_add/when_a_default_client_is_already_set/does_not_change_the_default_client.yml +2 -2
  202. data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/does_not_error.yml +2 -2
  203. data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/sets_up_the_config.yml +2 -2
  204. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/display_an_warning_about_preselected_default.yml +2 -2
  205. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/does_not_error.yml +2 -2
  206. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/selects_the_active_account_for_the_default.yml +2 -2
  207. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/sets_up_the_config.yml +2 -2
  208. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/display_an_warning_about_preselected_default.yml +2 -2
  209. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/does_not_error.yml +2 -2
  210. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/sets_up_the_config.yml +2 -2
  211. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/does_not_error.yml +2 -2
  212. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/does_not_prompt_to_rerun_the_command.yml +2 -2
  213. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/requests_access_tokens.yml +2 -2
  214. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +2 -2
  215. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +5 -5
  216. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_error.yml +2 -2
  217. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_prompt_to_rerun_the_command.yml +2 -2
  218. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/requests_access_tokens.yml +2 -2
  219. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/sets_up_the_config.yml +3 -3
  220. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/does_not_error.yml +2 -2
  221. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/requests_access_tokens.yml +2 -2
  222. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/sets_up_the_config.yml +2 -2
  223. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_error.yml +6 -6
  224. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_prompt_to_rerun_the_command.yml +6 -6
  225. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/prompts_for_the_password.yml +6 -6
  226. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/requests_access_tokens.yml +6 -6
  227. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/sets_up_the_config.yml +6 -6
  228. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/does_not_error.yml +6 -6
  229. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/does_not_prompt_to_rerun_the_command.yml +6 -6
  230. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/prompts_for_the_password.yml +6 -6
  231. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/requests_access_tokens.yml +6 -6
  232. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/sets_up_the_config.yml +6 -6
  233. data/spec/cassettes/brightbox_login/when_default_account_is_passed/does_not_error.yml +3 -3
  234. data/spec/cassettes/brightbox_login/when_default_account_is_passed/does_not_prompt_to_rerun_the_command.yml +3 -3
  235. data/spec/cassettes/brightbox_login/when_default_account_is_passed/prompts_for_the_password.yml +3 -3
  236. data/spec/cassettes/brightbox_login/when_default_account_is_passed/requests_access_tokens.yml +3 -3
  237. data/spec/cassettes/brightbox_login/when_default_account_is_passed/sets_up_the_config.yml +3 -3
  238. data/spec/cassettes/brightbox_login/when_no_config_is_present/does_not_error.yml +6 -6
  239. data/spec/cassettes/brightbox_login/when_no_config_is_present/does_not_prompt_to_rerun_the_command.yml +6 -6
  240. data/spec/cassettes/brightbox_login/when_no_config_is_present/requests_access_tokens.yml +6 -6
  241. data/spec/cassettes/brightbox_login/when_no_config_is_present/sets_up_the_config.yml +6 -6
  242. data/spec/cassettes/brightbox_login/when_no_password_is_given/does_not_error.yml +6 -6
  243. data/spec/cassettes/brightbox_login/when_no_password_is_given/does_not_prompt_to_rerun_the_command.yml +6 -6
  244. data/spec/cassettes/brightbox_login/when_no_password_is_given/prompts_for_the_password.yml +6 -6
  245. data/spec/cassettes/brightbox_login/when_no_password_is_given/requests_access_tokens.yml +6 -6
  246. data/spec/cassettes/brightbox_login/when_no_password_is_given/sets_up_the_config.yml +6 -6
  247. data/spec/cassettes/brightbox_sql_instances/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml +313 -26
  248. data/spec/cassettes/brightbox_sql_instances/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml +1204 -38
  249. data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql/correctly_sends_API_parameters.yml +596 -26
  250. data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml +63 -9
  251. data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_8_0/correctly_sends_API_parameters.yml +393 -0
  252. data/spec/cassettes/brightbox_sql_instances/create/--maintenance-weekday_5_--maintenance_hour_11/correctly_sends_API_parameters.yml +393 -0
  253. data/spec/cassettes/brightbox_sql_instances/create/--maintenance-weekday_thursday/correctly_sends_API_parameters.yml +393 -0
  254. data/spec/cassettes/brightbox_sql_instances/create/--snapshot_dbi-12345/includes_schedule_fields_in_response.yml +1466 -0
  255. data/spec/cassettes/brightbox_sql_instances/create/--snapshots-schedule_0_12_4_/includes_schedule_fields_in_response.yml +342 -0
  256. data/spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_password.yml +541 -26
  257. data/spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_username.yml +484 -26
  258. data/spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_active/correctly_sends_API_parameters.yml +4 -4
  259. data/spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml +2 -2
  260. data/spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml +2 -2
  261. data/spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml +2 -2
  262. data/spec/cassettes/brightbox_sql_snapshots/show/when_resource_exists/does_not_output_to_stderr.yml +2 -2
  263. data/spec/commands/accounts/default_spec.rb +1 -2
  264. data/spec/commands/accounts/list_spec.rb +7 -8
  265. data/spec/commands/accounts/reset_ftp_password_spec.rb +1 -2
  266. data/spec/commands/accounts/show_spec.rb +1 -2
  267. data/spec/commands/cloudips/create_spec.rb +1 -2
  268. data/spec/commands/cloudips/destroy_spec.rb +1 -2
  269. data/spec/commands/cloudips/list_spec.rb +1 -2
  270. data/spec/commands/cloudips/map_spec.rb +2 -3
  271. data/spec/commands/cloudips/show_spec.rb +1 -2
  272. data/spec/commands/cloudips/unmap_spec.rb +1 -2
  273. data/spec/commands/cloudips/update_spec.rb +7 -8
  274. data/spec/commands/config/client_add_spec.rb +2 -3
  275. data/spec/commands/config/client_default_spec.rb +1 -2
  276. data/spec/commands/config/client_list_spec.rb +1 -2
  277. data/spec/commands/config/client_remove_spec.rb +1 -2
  278. data/spec/commands/config/user_add_spec.rb +3 -4
  279. data/spec/commands/firewall_policies/update_spec.rb +3 -3
  280. data/spec/commands/groups/add_server_spec.rb +1 -2
  281. data/spec/commands/groups/create_spec.rb +1 -2
  282. data/spec/commands/groups/destroy_spec.rb +1 -2
  283. data/spec/commands/groups/list_spec.rb +1 -2
  284. data/spec/commands/groups/move_servers_spec.rb +1 -2
  285. data/spec/commands/groups/remove_servers_spec.rb +1 -2
  286. data/spec/commands/groups/show_spec.rb +1 -2
  287. data/spec/commands/groups/update_spec.rb +1 -2
  288. data/spec/commands/images/destroy_spec.rb +1 -2
  289. data/spec/commands/images/list_spec.rb +62 -63
  290. data/spec/commands/images/locking_spec.rb +4 -4
  291. data/spec/commands/images/register_spec.rb +89 -3
  292. data/spec/commands/images/show_spec.rb +56 -4
  293. data/spec/commands/images/update_spec.rb +53 -3
  294. data/spec/commands/lbs/add_nodes_spec.rb +1 -2
  295. data/spec/commands/lbs/create_spec.rb +2 -3
  296. data/spec/commands/lbs/destroy_spec.rb +1 -2
  297. data/spec/commands/lbs/list_spec.rb +1 -2
  298. data/spec/commands/lbs/locking_spec.rb +4 -4
  299. data/spec/commands/lbs/remove_nodes_spec.rb +1 -2
  300. data/spec/commands/lbs/show_spec.rb +1 -2
  301. data/spec/commands/lbs/update_spec.rb +3 -4
  302. data/spec/commands/login_spec.rb +134 -30
  303. data/spec/commands/policies/apply_spec.rb +1 -2
  304. data/spec/commands/policies/create_spec.rb +1 -2
  305. data/spec/commands/policies/destroy_spec.rb +1 -2
  306. data/spec/commands/policies/list_spec.rb +1 -2
  307. data/spec/commands/policies/remove_spec.rb +1 -2
  308. data/spec/commands/policies/show_spec.rb +1 -2
  309. data/spec/commands/policies/update_spec.rb +1 -2
  310. data/spec/commands/rules/create_spec.rb +1 -2
  311. data/spec/commands/rules/destroy_spec.rb +1 -2
  312. data/spec/commands/rules/list_spec.rb +1 -2
  313. data/spec/commands/rules/show_spec.rb +1 -2
  314. data/spec/commands/rules/update_spec.rb +1 -2
  315. data/spec/commands/servers/activate_console_spec.rb +1 -2
  316. data/spec/commands/servers/create_spec.rb +10 -10
  317. data/spec/commands/servers/destroy_spec.rb +1 -2
  318. data/spec/commands/servers/list_spec.rb +1 -2
  319. data/spec/commands/servers/locking_spec.rb +4 -4
  320. data/spec/commands/servers/reboot_spec.rb +3 -4
  321. data/spec/commands/servers/reset_spec.rb +3 -4
  322. data/spec/commands/servers/show_spec.rb +1 -2
  323. data/spec/commands/servers/shutdown_spec.rb +1 -2
  324. data/spec/commands/servers/snapshot_spec.rb +1 -2
  325. data/spec/commands/servers/start_spec.rb +1 -2
  326. data/spec/commands/servers/stop_spec.rb +1 -2
  327. data/spec/commands/servers/update_spec.rb +1 -2
  328. data/spec/commands/sql/instances/create_spec.rb +58 -75
  329. data/spec/commands/sql/instances/locking_spec.rb +4 -4
  330. data/spec/commands/sql/instances/show_spec.rb +7 -7
  331. data/spec/commands/sql/instances/snapshot_spec.rb +2 -2
  332. data/spec/commands/sql/instances/update_spec.rb +8 -8
  333. data/spec/commands/sql/snapshots/list_spec.rb +1 -1
  334. data/spec/commands/sql/snapshots/locking_spec.rb +4 -4
  335. data/spec/commands/sql/snapshots/show_spec.rb +1 -1
  336. data/spec/commands/sql/types/list_spec.rb +1 -2
  337. data/spec/commands/types/list_spec.rb +1 -2
  338. data/spec/commands/users/list_spec.rb +1 -2
  339. data/spec/commands/users/show_spec.rb +1 -2
  340. data/spec/commands/users/update_spec.rb +1 -2
  341. data/spec/commands/zones/list_spec.rb +1 -2
  342. data/spec/configs/api_client.ini +1 -1
  343. data/spec/configs/user_app.ini +2 -2
  344. data/spec/spec_helper.rb +16 -3
  345. data/spec/support/authentication_helpers.rb +98 -0
  346. data/spec/support/config_helpers.rb +2 -4
  347. data/spec/support/password_prompt_helpers.rb +22 -1
  348. data/spec/support/server_helper.rb +5 -5
  349. data/spec/support/tmp_config.rb +1 -1
  350. data/spec/support/token_helpers.rb +2 -2
  351. data/spec/support/vcr.rb +3 -22
  352. data/spec/unit/brightbox/api/created_on_spec.rb +2 -2
  353. data/spec/unit/brightbox/api/fog_model_spec.rb +13 -13
  354. data/spec/unit/brightbox/api/klass_name_spec.rb +0 -1
  355. data/spec/unit/brightbox/api/method_missing_spec.rb +64 -0
  356. data/spec/unit/brightbox/api/require_account_spec.rb +0 -1
  357. data/spec/unit/brightbox/api/respond_to_spec.rb +71 -0
  358. data/spec/unit/brightbox/bb_config/access_token_filename_spec.rb +0 -1
  359. data/spec/unit/brightbox/bb_config/account_spec.rb +0 -1
  360. data/spec/unit/brightbox/bb_config/add_login_spec.rb +27 -28
  361. data/spec/unit/brightbox/bb_config/add_section_spec.rb +1 -2
  362. data/spec/unit/brightbox/bb_config/clear_default_client_spec.rb +0 -1
  363. data/spec/unit/brightbox/bb_config/client_id_spec.rb +0 -1
  364. data/spec/unit/brightbox/bb_config/client_name_spec.rb +0 -1
  365. data/spec/unit/brightbox/bb_config/config_directory_exists_spec.rb +0 -1
  366. data/spec/unit/brightbox/bb_config/config_directory_spec.rb +0 -1
  367. data/spec/unit/brightbox/bb_config/config_spec.rb +2 -3
  368. data/spec/unit/brightbox/bb_config/default_account_spec.rb +0 -1
  369. data/spec/unit/brightbox/bb_config/default_client_spec.rb +0 -1
  370. data/spec/unit/brightbox/bb_config/delete_section_spec.rb +0 -1
  371. data/spec/unit/brightbox/bb_config/find_or_set_default_account_spec.rb +4 -4
  372. data/spec/unit/brightbox/bb_config/refresh_token_filename_spec.rb +0 -1
  373. data/spec/unit/brightbox/bb_config/renew_tokens_spec.rb +3 -4
  374. data/spec/unit/brightbox/bb_config/save_default_account_spec.rb +0 -1
  375. data/spec/unit/brightbox/bb_config/save_spec.rb +0 -1
  376. data/spec/unit/brightbox/bb_config/section_names_spec.rb +1 -1
  377. data/spec/unit/brightbox/bb_config/to_fog_spec.rb +2 -2
  378. data/spec/unit/brightbox/collaborating_account/to_row_spec.rb +3 -3
  379. data/spec/unit/brightbox/config/api_client/to_fog_spec.rb +8 -8
  380. data/spec/unit/brightbox/config/api_client/valid_spec.rb +4 -4
  381. data/spec/unit/brightbox/config/discover_two_factor_pin_spec.rb +87 -0
  382. data/spec/unit/brightbox/config/section_name_deduplicator_spec.rb +1 -1
  383. data/spec/unit/brightbox/config/user_application/to_fog_spec.rb +10 -10
  384. data/spec/unit/brightbox/config/user_application/valid_spec.rb +3 -3
  385. data/spec/unit/brightbox/connection_manager/fetch_connection_spec.rb +1 -1
  386. data/spec/unit/brightbox/database_server/clean_arguments_spec.rb +1 -2
  387. data/spec/unit/brightbox/database_server/maintenance_window_spec.rb +0 -1
  388. data/spec/unit/brightbox/error_parser/pretty_print_spec.rb +0 -1
  389. data/spec/unit/brightbox/firewall_policy/apply_to_spec.rb +0 -1
  390. data/spec/unit/brightbox/firewall_policy/create_spec.rb +0 -1
  391. data/spec/unit/brightbox/firewall_policy/find_or_call_spec.rb +0 -1
  392. data/spec/unit/brightbox/firewall_policy/find_spec.rb +0 -1
  393. data/spec/unit/brightbox/firewall_rule/find_spec.rb +9 -9
  394. data/spec/unit/brightbox/firewall_rule/from_policy_spec.rb +4 -4
  395. data/spec/unit/brightbox/legacy/args_adjuster_spec.rb +20 -21
  396. data/spec/unit/brightbox/server/create_spec.rb +1 -2
  397. data/spec/unit/brightbox/server/start_spec.rb +2 -2
  398. data/spec/unit/brightbox/server/update_spec.rb +0 -1
  399. data/spec/unit/brightbox/user_collaboration/remove_spec.rb +0 -1
  400. data/spec/unit/nilable_hash_spec.rb +5 -5
  401. data/spec/unit/ruby_core_ext_spec.rb +3 -4
  402. data/spec/unit/temporary_home_spec.rb +1 -1
  403. data/spec/unit/tmp_config_spec.rb +0 -1
  404. metadata +133 -101
  405. data/bin/brightbox-accounts +0 -13
  406. data/bin/brightbox-cloudips +0 -13
  407. data/bin/brightbox-config +0 -13
  408. data/bin/brightbox-firewall-policies +0 -13
  409. data/bin/brightbox-firewall-rules +0 -13
  410. data/bin/brightbox-groups +0 -13
  411. data/bin/brightbox-images +0 -13
  412. data/bin/brightbox-lbs +0 -13
  413. data/bin/brightbox-servers +0 -13
  414. data/bin/brightbox-types +0 -13
  415. data/bin/brightbox-users +0 -13
  416. data/bin/brightbox-zones +0 -13
  417. data/lib/brightbox-cli/commands/config/client-default.rb +0 -26
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:"firewall-policies"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.policies.show.desc")
5
4
  cmd.arg_name "firewall-policy-id"
6
5
  cmd.command [:show] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
7
  raise "You must specify server groups to show" if args.empty?
10
8
 
@@ -14,12 +12,12 @@ module Brightbox
14
12
 
15
13
  table_opts = global_options.update(
16
14
  :vertical => true,
17
- :fields => [
18
- :id,
19
- :server_group,
20
- :default,
21
- :name,
22
- :description
15
+ :fields => %i[
16
+ id
17
+ server_group
18
+ default
19
+ name
20
+ description
23
21
  ]
24
22
  )
25
23
 
@@ -1,15 +1,13 @@
1
1
  module Brightbox
2
2
  command [:"firewall-policies"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.policies.update.desc")
5
4
  cmd.arg_name "firewall-policy-id"
6
5
  cmd.command [:update] do |c|
7
-
8
6
  c.desc I18n.t("options.name.desc")
9
- c.flag [:n, :name]
7
+ c.flag %i[n name]
10
8
 
11
9
  c.desc I18n.t("options.description.desc")
12
- c.flag [:d, :description]
10
+ c.flag %i[d description]
13
11
 
14
12
  c.action do |global_options, options, args|
15
13
  policy_id = args.shift
@@ -1,28 +1,26 @@
1
1
  module Brightbox
2
2
  desc I18n.t("firewall.rules.desc")
3
3
  command [:"firewall-rules"] do |cmd|
4
-
5
4
  cmd.desc I18n.t("firewall.rules.create.desc")
6
5
  cmd.arg_name "[firewall-policy-id...]"
7
6
  cmd.command [:create] do |c|
8
-
9
7
  c.desc "Protocol - [tcp/udp/icmp/Protocol numbers]"
10
- c.flag [:p, :protocol]
8
+ c.flag %i[p protocol]
11
9
 
12
10
  c.desc "Source - IPv4/IPv6 address or range (CIDR notation), 'any' for combined IPv4/IPv6 wildcard, server group identifer, server identifier."
13
- c.flag [:s, :source]
11
+ c.flag %i[s source]
14
12
 
15
13
  c.desc "Source Port"
16
- c.flag [:t, :sport]
14
+ c.flag %i[t sport]
17
15
 
18
16
  c.desc "Destination. IPv4/IPv6 address or range (CIDR notation), 'any' for combined IPv4/IPv6 wildcard, server group identifer, server identifier."
19
- c.flag [:d, :destination]
17
+ c.flag %i[d destination]
20
18
 
21
19
  c.desc "Destination Port"
22
- c.flag [:e, :dport]
20
+ c.flag %i[e dport]
23
21
 
24
22
  c.desc "Icmp Type name"
25
- c.flag [:i, :icmptype]
23
+ c.flag %i[i icmptype]
26
24
 
27
25
  c.desc I18n.t("options.description.desc")
28
26
  c.flag :description
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:"firewall-rules"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.rules.destroy.desc")
5
4
  cmd.arg_name "[firewall-rule-id...]"
6
5
  cmd.command [:destroy] do |c|
7
-
8
6
  c.action do |_global_options, _options, args|
9
7
  raise "You must specify firewall-rule-id to destroy" if args.empty?
10
8
 
@@ -1,12 +1,10 @@
1
1
  module Brightbox
2
2
  command [:"firewall-rules"] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("firewall.rules.list.desc")
7
6
  cmd.arg_name "[firewall-policy-id...]"
8
7
  cmd.command [:list] do |c|
9
-
10
8
  c.action do |global_options, _options, args|
11
9
  if args.empty?
12
10
  raise "You must specify the firewall policy id as the first argument"
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:"firewall-rules"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.rules.show.desc")
5
4
  cmd.arg_name "firewall-rule-id"
6
5
  cmd.command [:show] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
7
  raise "You must specify server groups to show" if args.empty?
10
8
 
@@ -13,13 +11,13 @@ module Brightbox
13
11
  end
14
12
 
15
13
  display_options = {
16
- :fields => [
17
- :id, :protocol,
18
- :source, :sport,
19
- :destination, :dport,
20
- :icmp_type,
21
- :firewall_policy,
22
- :description
14
+ :fields => %i[
15
+ id protocol
16
+ source sport
17
+ destination dport
18
+ icmp_type
19
+ firewall_policy
20
+ description
23
21
  ],
24
22
  :vertical => true
25
23
  }
@@ -1,27 +1,25 @@
1
1
  module Brightbox
2
2
  command [:"firewall-rules"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.rules.update.desc")
5
4
  cmd.arg_name "[firewall-rule-id...]"
6
5
  cmd.command [:update] do |c|
7
-
8
6
  c.desc "Protocol - [tcp/udp/icmp/Protocol numbers]"
9
- c.flag [:p, :protocol]
7
+ c.flag %i[p protocol]
10
8
 
11
9
  c.desc "Source - IPv4/IPv6 address or range (CIDR notation), 'any' for combined IPv4/IPv6 wildcard, server group identifer, server identifier."
12
- c.flag [:s, :source]
10
+ c.flag %i[s source]
13
11
 
14
12
  c.desc "Source Port"
15
- c.flag [:t, :sport]
13
+ c.flag %i[t sport]
16
14
 
17
15
  c.desc "Destination. IPv4/IPv6 address or range (CIDR notation), 'any' for combined IPv4/IPv6 wildcard, server group identifer, server identifier."
18
- c.flag [:d, :destination]
16
+ c.flag %i[d destination]
19
17
 
20
18
  c.desc "Destination Port"
21
- c.flag [:e, :dport]
19
+ c.flag %i[e dport]
22
20
 
23
21
  c.desc "Icmp Type name"
24
- c.flag [:i, :icmptype]
22
+ c.flag %i[i icmptype]
25
23
 
26
24
  c.desc I18n.t("options.description.desc")
27
25
  c.flag :description
@@ -29,6 +27,7 @@ module Brightbox
29
27
  c.action do |global_options, options, args|
30
28
  fwr_id = args.shift
31
29
  raise "You must specify a valid firewall rule id as the first argument" unless fwr_id =~ /^fwr-/
30
+
32
31
  firewall_rule = FirewallRule.find fwr_id
33
32
  raise "Could not find firewall rule with #{firewall_rule_id}" unless firewall_rule
34
33
 
@@ -1,11 +1,9 @@
1
1
  module Brightbox
2
2
  desc I18n.t("groups.desc")
3
3
  command [:groups] do |cmd|
4
-
5
4
  cmd.desc I18n.t("groups.add_servers.desc")
6
5
  cmd.arg_name "grp-id [srv-id...]"
7
6
  cmd.command [:add_servers] do |c|
8
-
9
7
  c.action do |global_options, _options, args|
10
8
  grp_id = args.shift
11
9
  raise "You must specify the server group and then the server ids to add" unless grp_id && grp_id[/^grp-/] && !args.empty?
@@ -1,13 +1,12 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.desc I18n.t("groups.create.desc")
5
4
  cmd.command [:create] do |c|
6
5
  c.desc I18n.t("options.name.desc")
7
- c.flag [:n, :name]
6
+ c.flag %i[n name]
8
7
 
9
8
  c.desc I18n.t("options.description.desc")
10
- c.flag [:d, :description]
9
+ c.flag %i[d description]
11
10
 
12
11
  c.action do |global_options, options, _args|
13
12
  params = {}
@@ -1,11 +1,9 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.desc I18n.t("groups.destroy.desc")
5
4
  cmd.arg_name "grp-id..."
6
5
  # TODO: add option to remove all servers from group before destroying
7
6
  cmd.command [:destroy] do |c|
8
-
9
7
  c.action do |_global_options, _options, args|
10
8
  raise "You must specify the server groups to destroy" if args.empty?
11
9
 
@@ -1,6 +1,5 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("groups.list.desc")
@@ -1,14 +1,13 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.desc I18n.t("groups.move_servers.desc")
5
4
  cmd.arg_name "srv-id ..."
6
5
  cmd.command [:move_servers] do |c|
7
6
  c.desc "Source Server Group"
8
- c.flag [:f, :from]
7
+ c.flag %i[f from]
9
8
 
10
9
  c.desc "Target Server Group"
11
- c.flag [:t, :to]
10
+ c.flag %i[t to]
12
11
 
13
12
  c.action do |global_options, options, args|
14
13
  unless args && !args.empty?
@@ -1,12 +1,10 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.desc I18n.t("groups.remove_servers.desc")
5
4
  cmd.arg_name "grp-id [srv-id...]"
6
5
  cmd.command [:remove_servers] do |c|
7
-
8
6
  c.desc "Remove all servers from group"
9
- c.switch [:a, :all], :negatable => false
7
+ c.switch %i[a all], :negatable => false
10
8
 
11
9
  c.action do |global_options, options, args|
12
10
  grp_id = args.shift
@@ -25,7 +23,7 @@ module Brightbox
25
23
  if servers.empty?
26
24
  info "Server group #{sg} already contains zero servers"
27
25
  else
28
- info "Removing#{" all" if options[:a]} #{servers.size} servers from server group #{sg}"
26
+ info "Removing#{' all' if options[:a]} #{servers.size} servers from server group #{sg}"
29
27
  sg.remove_servers servers
30
28
  end
31
29
 
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.desc I18n.t("groups.show.desc")
5
4
  cmd.arg_name "[grp-id..]"
6
5
  cmd.command [:show] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
7
  raise "You must specify server groups to show" if args.empty?
10
8
 
@@ -1,14 +1,13 @@
1
1
  module Brightbox
2
2
  command [:groups] do |cmd|
3
-
4
3
  cmd.desc I18n.t("groups.update.desc")
5
4
  cmd.arg_name "grp-id"
6
5
  cmd.command [:update] do |c|
7
6
  c.desc I18n.t("options.name.desc")
8
- c.flag [:n, :name]
7
+ c.flag %i[n name]
9
8
 
10
9
  c.desc I18n.t("options.description.desc")
11
- c.flag [:d, :description]
10
+ c.flag %i[d description]
12
11
 
13
12
  c.action do |global_options, options, args|
14
13
  grp_id = args.shift
@@ -1,13 +1,10 @@
1
1
  module Brightbox
2
2
  desc I18n.t("images.desc")
3
3
  command [:images] do |cmd|
4
-
5
4
  cmd.desc I18n.t("images.destroy.desc")
6
5
  cmd.arg_name "image-id..."
7
6
  cmd.command [:destroy] do |c|
8
-
9
7
  c.action do |global_options, _options, args|
10
-
11
8
  if args.empty?
12
9
  raise "You must specify the images you want to destroy"
13
10
  end
@@ -23,7 +20,6 @@ module Brightbox
23
20
  end
24
21
 
25
22
  render_table(images, global_options)
26
-
27
23
  end
28
24
  end
29
25
  end
@@ -1,23 +1,21 @@
1
1
  module Brightbox
2
2
  command [:images] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("images.list.desc")
7
6
  cmd.arg_name "[image-id...]"
8
7
  cmd.command [:list] do |c|
9
-
10
8
  c.desc "Show all public images from all accounts"
11
9
  c.switch [:a, "show-all"], :negatable => false
12
10
 
13
11
  c.desc "Show only images of a given type"
14
- c.flag [:t, :type]
12
+ c.flag %i[t type]
15
13
 
16
14
  c.desc "Show only images of a given status"
17
- c.flag [:s, :status]
15
+ c.flag %i[s status]
18
16
 
19
17
  c.desc "Show only images for a given account identifier"
20
- c.flag [:l, :account]
18
+ c.flag %i[l account]
21
19
 
22
20
  c.action do |global_options, options, args|
23
21
  images = Image.find_all_or_warn(args)
@@ -1,14 +1,12 @@
1
1
  module Brightbox
2
2
  command [:images] do |cmd|
3
-
4
3
  cmd.desc I18n.t("images.register.desc")
5
4
  cmd.command [:register] do |c|
6
-
7
5
  c.desc I18n.t("options.name.desc")
8
- c.flag [:n, :name]
6
+ c.flag %i[n name]
9
7
 
10
8
  c.desc I18n.t("options.description.desc")
11
- c.flag [:d, :description]
9
+ c.flag %i[d description]
12
10
 
13
11
  c.desc "Image Username"
14
12
  c.flag [:u, "username"]
@@ -27,36 +25,30 @@ module Brightbox
27
25
  c.default_value "false"
28
26
  c.flag [:p, "public"]
29
27
 
30
- c.action do |global_options, options, _args|
28
+ c.desc "Set minimum amount of RAM required by this image (MB)"
29
+ c.flag ["min-ram"]
31
30
 
31
+ c.action do |global_options, options, _args|
32
32
  raise "You must specify the architecture" unless options[:a]
33
33
  raise "You must specify the source filename" unless options[:s]
34
34
  raise "Mode must be 'virtio' or 'compatibility'" unless options[:m] == "virtio" || options[:m] == "compatibility"
35
35
  raise "Public must be true or false" unless options[:p] == "true" || options[:p] == "false"
36
36
 
37
- if options[:m] == "compatibility"
38
- compatibility_flag = true
39
- else
40
- compatibility_flag = false
41
- end
37
+ compatibility_flag = options[:m] == "compatibility"
42
38
 
43
- if options[:p] == "true"
44
- public_flag = true
45
- else
46
- public_flag = false
47
- end
39
+ public_flag = options[:p] == "true"
48
40
 
49
41
  image_options = {
50
42
  :name => options[:n], :arch => options[:a],
51
43
  :username => options[:u], :source => options[:s],
52
44
  :compatibility_mode => compatibility_flag,
53
- :description => options[:d], :public => public_flag
45
+ :description => options[:d], :public => public_flag,
46
+ :min_ram => options["min-ram"].to_i
54
47
  }
55
48
 
56
49
  image = Image.register(image_options)
57
50
 
58
51
  render_table([image], global_options)
59
-
60
52
  end
61
53
  end
62
54
  end
@@ -1,33 +1,32 @@
1
1
  module Brightbox
2
2
  command [:images] do |cmd|
3
-
4
3
  cmd.desc I18n.t("images.show.desc")
5
4
  cmd.arg_name "image-id..."
6
5
  cmd.command [:show] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
7
  images = Image.find_all_or_warn(args)
10
8
 
11
9
  display_options = {
12
10
  :vertical => true,
13
- :fields => [
14
- :id,
15
- :type,
16
- :owner,
17
- :created_at,
18
- :status,
19
- :locked,
20
- :arch,
21
- :name,
22
- :description,
23
- :username,
24
- :virtual_size,
25
- :disk_size,
26
- :public,
27
- :"compatibility_mode",
28
- :official,
29
- :ancestor_id,
30
- :licence_name
11
+ :fields => %i[
12
+ id
13
+ type
14
+ owner
15
+ created_at
16
+ status
17
+ locked
18
+ arch
19
+ name
20
+ description
21
+ username
22
+ virtual_size
23
+ disk_size
24
+ public
25
+ compatibility_mode
26
+ official
27
+ ancestor_id
28
+ licence_name
29
+ min_ram
31
30
  ]
32
31
  }
33
32
 
@@ -1,15 +1,13 @@
1
1
  module Brightbox
2
2
  command [:images] do |cmd|
3
-
4
3
  cmd.desc I18n.t("images.update.desc")
5
4
  cmd.arg_name "img-id"
6
5
  cmd.command [:update] do |c|
7
-
8
6
  c.desc I18n.t("options.name.desc")
9
- c.flag [:n, :name]
7
+ c.flag %i[n name]
10
8
 
11
9
  c.desc I18n.t("options.description.desc")
12
- c.flag [:d, :description]
10
+ c.flag %i[d description]
13
11
 
14
12
  c.desc "Architecture of the image (i686 or x86_64)"
15
13
  c.flag [:a, "arch"]
@@ -20,6 +18,9 @@ module Brightbox
20
18
  c.desc "Set image to be publicly visible (true or false)"
21
19
  c.flag [:p, "public"]
22
20
 
21
+ c.desc "Set minimum amount of RAM required by this image (MB)"
22
+ c.flag ["min-ram"]
23
+
23
24
  c.desc "Set image to be deprecated (true or false)"
24
25
  c.flag "deprecated"
25
26
 
@@ -29,11 +30,12 @@ module Brightbox
29
30
  c.action do |global_options, options, args|
30
31
  img_id = args.shift
31
32
  raise "You must specify the image to update as the first argument" unless img_id =~ /^img-/
32
- if options[:m]
33
- raise "Mode must be 'virtio' or 'compatibility'" unless options[:m] == "virtio" || options[:m] == "compatibility"
33
+
34
+ if options[:m] && !(options[:m] == "virtio" || options[:m] == "compatibility")
35
+ raise "Mode must be 'virtio' or 'compatibility'"
34
36
  end
35
- if options[:p]
36
- raise "Public must be true or false" unless options[:p] == "true" || options[:p] == "false"
37
+ if options[:p] && !(options[:p] == "true" || options[:p] == "false")
38
+ raise "Public must be true or false"
37
39
  end
38
40
 
39
41
  params = NilableHash.new
@@ -49,6 +51,8 @@ module Brightbox
49
51
  params[:public] = true if options[:p] == "true"
50
52
  params[:public] = false if options[:p] == "false"
51
53
 
54
+ params[:min_ram] = options["min-ram"].to_i if options["min-ram"]
55
+
52
56
  # If options[:deprecated] isn't specified, leave the status alone
53
57
  params[:status] = "deprecated" if options[:deprecated] == "true"
54
58
  params[:status] = "available" if options[:deprecated] == "false"
@@ -1,13 +1,10 @@
1
1
  module Brightbox
2
2
  desc I18n.t("lbs.desc")
3
3
  command [:lbs] do |cmd|
4
-
5
4
  cmd.desc I18n.t("lbs.add_nodes.desc")
6
5
  cmd.arg_name "lb-id node-id..."
7
6
  cmd.command [:add_nodes] do |c|
8
-
9
7
  c.action do |global_options, _options, args|
10
-
11
8
  raise "You must specify the load balancer and the node ids to add" if args.size < 2
12
9
 
13
10
  lb = LoadBalancer.find(args.shift)
@@ -1,21 +1,19 @@
1
1
  module Brightbox
2
2
  command [:lbs] do |cmd|
3
-
4
3
  cmd.desc I18n.t("lbs.create.desc")
5
4
  cmd.long_desc I18n.t("lbs.create.long_desc")
6
5
  cmd.arg_name "srv-id..."
7
6
  cmd.command [:create] do |c|
8
-
9
7
  c.desc I18n.t("options.name.desc")
10
- c.flag [:n, :name]
8
+ c.flag %i[n name]
11
9
 
12
10
  c.desc "Load balancer policy"
13
11
  c.default_value "least-connections"
14
- c.flag [:p, :policy]
12
+ c.flag %i[p policy]
15
13
 
16
14
  c.desc "Listeners. Format: in-port:out-port:type:timeout. Comma separated multiple listeners. Protocols can be tcp, http or http+ws and timeouts are in milliseconds."
17
15
  c.default_value "80:80:http:50000,443:443:tcp:50000"
18
- c.flag [:l, :listeners]
16
+ c.flag %i[l listeners]
19
17
 
20
18
  c.desc "Healthcheck port. Defaults to first listener out port."
21
19
  c.flag [:k, "hc-port"]
@@ -60,12 +58,12 @@ module Brightbox
60
58
  c.switch ["sslv3"]
61
59
 
62
60
  c.action do |global_options, options, args|
63
-
64
61
  raise "You must specify which servers to balance connections to" if args.empty?
65
62
 
66
63
  listeners = options[:l].split(",").map do |l|
67
64
  inport, outport, protocol, timeout = l.split ":"
68
65
  raise "listener '#{l}' is invalid" if inport.nil? || outport.nil? || protocol.nil?
66
+
69
67
  { :in => inport, :out => outport, :protocol => protocol, :timeout => timeout }
70
68
  end
71
69
 
@@ -92,7 +90,7 @@ module Brightbox
92
90
 
93
91
  healthcheck = {}
94
92
 
95
- options.keys.each do |k|
93
+ options.each_key do |k|
96
94
  if options[k] && hc_arg_lookup[k]
97
95
  healthcheck[hc_arg_lookup[k]] = options[k]
98
96
  end
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:lbs] do |cmd|
3
-
4
3
  cmd.desc I18n.t("lbs.destroy.desc")
5
4
  cmd.arg_name "lb-id..."
6
5
  cmd.command [:destroy] do |c|
7
-
8
6
  c.action do |_global_options, _options, args|
9
-
10
7
  raise "You must specify the load balancers to destroy" if args.empty?
11
8
 
12
9
  lbs = LoadBalancer.find_or_call(args) do |id|
@@ -1,6 +1,5 @@
1
1
  module Brightbox
2
2
  command [:lbs] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("lbs.list.desc")
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:lbs] do |cmd|
3
-
4
3
  cmd.desc I18n.t("lbs.remove_nodes.desc")
5
4
  cmd.arg_name "lb-id node-id..."
6
5
  cmd.command [:remove_nodes] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
-
10
7
  raise "You must specify the load balancer and the node ids to remove" if args.size < 2
11
8
 
12
9
  lb = LoadBalancer.find(args.shift)