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
@@ -45,9 +45,10 @@ module Brightbox
45
45
  @id = fog_model.id
46
46
  # Rather than merging, we have store the collaboration as a secondary item
47
47
  @collaboration = collaboration
48
- if @collaboration.nil? && @fog_model.attributes["resource_type"] == "collaboration"
49
- @collaboration = @fog_model
50
- end
48
+
49
+ return unless @collaboration.nil? && @fog_model.attributes["resource_type"] == "collaboration"
50
+
51
+ @collaboration = @fog_model
51
52
  end
52
53
 
53
54
  # Is this record based on an account?
@@ -64,7 +65,6 @@ module Brightbox
64
65
  attributes[:resource_type] || attributes["resource_type"]
65
66
  end
66
67
 
67
- #
68
68
  def id
69
69
  if collaboration?
70
70
  account_id
@@ -133,7 +133,7 @@ module Brightbox
133
133
  end
134
134
 
135
135
  def self.default_field_order
136
- [:id, :cloud_ips_limit, :lb_limit, :ram_limit, :ram_used, :ram_free, :role, :name]
136
+ %i[id cloud_ips_limit lb_limit ram_limit ram_used ram_free role name]
137
137
  end
138
138
 
139
139
  private
@@ -22,7 +22,7 @@ module Brightbox
22
22
  end
23
23
 
24
24
  def self.default_field_order
25
- [:id, :status, :role, :email, :name]
25
+ %i[id status role email name]
26
26
  end
27
27
 
28
28
  def to_s
@@ -1,7 +1,6 @@
1
1
  module Brightbox
2
2
  desc I18n.t("accounts.desc")
3
3
  command [:accounts] do |cmd|
4
-
5
4
  cmd.desc I18n.t("accounts.accept_invite.desc")
6
5
  cmd.arg_name "account_id"
7
6
  cmd.command [:accept_invite] do |c|
@@ -10,12 +9,9 @@ module Brightbox
10
9
 
11
10
  # Find the collaboration for that account
12
11
  collaboration = UserCollaboration.get_for_account(account_id)
13
- if collaboration
14
- collaboration.accept
15
- else
16
- raise "Couldn't find an invite for account #{account_id}"
17
- end
12
+ raise "Couldn't find an invite for account #{account_id}" unless collaboration
18
13
 
14
+ collaboration.accept
19
15
  render_table([collaboration], global_options)
20
16
  end
21
17
  end
@@ -1,14 +1,13 @@
1
1
  module Brightbox
2
2
  command [:accounts] do |cmd|
3
-
4
3
  cmd.desc I18n.t("accounts.default.desc")
5
4
  cmd.arg_name "account-id"
6
5
  cmd.command [:default] do |c|
7
-
8
6
  c.action do |_global_options, _options, args|
9
7
  if args.empty?
10
8
  raise "You must specify the account-id to set as default."
11
9
  end
10
+
12
11
  account_id = args.shift
13
12
  account = Account.find(account_id)
14
13
 
@@ -1,19 +1,17 @@
1
1
  module Brightbox
2
2
  command [:accounts] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("accounts.list.desc")
7
6
  cmd.arg_name "[account-id...]"
8
7
  cmd.command [:list] do |c|
9
-
10
8
  c.action do |global_options, _options, _args|
11
- if Brightbox.config.using_application?
12
- # Collaborating Accounts are combined from owned and collaborations
13
- accounts = CollaboratingAccount.all
14
- else
15
- accounts = Account.find(:all)
16
- end
9
+ accounts = if Brightbox.config.using_application?
10
+ # Collaborating Accounts are combined from owned and collaborations
11
+ CollaboratingAccount.all
12
+ else
13
+ Account.find(:all)
14
+ end
17
15
 
18
16
  render_table(accounts, global_options)
19
17
  end
@@ -1,6 +1,5 @@
1
1
  module Brightbox
2
2
  command [:accounts] do |cmd|
3
-
4
3
  cmd.desc I18n.t("accounts.remove.desc")
5
4
  cmd.arg_name "account_id"
6
5
  cmd.command [:remove] do |c|
@@ -9,12 +8,9 @@ module Brightbox
9
8
 
10
9
  # Find the collaboration for that account
11
10
  collaboration = UserCollaboration.get_for_account(account_id)
12
- if collaboration
13
- collaboration.remove
14
- else
15
- raise "Couldn't find an invite for account #{account_id}"
16
- end
11
+ raise "Couldn't find an invite for account #{account_id}" unless collaboration
17
12
 
13
+ collaboration.remove
18
14
  render_table([collaboration], global_options)
19
15
  end
20
16
  end
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:accounts] do |cmd|
3
-
4
3
  cmd.desc I18n.t("accounts.reset_ftp_password.desc")
5
4
  cmd.arg_name "account-id..."
6
5
  cmd.command [:reset_ftp_password] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
-
10
7
  if args.empty?
11
8
  raise "You must specify the accounts to reset ftp passwords for"
12
9
  end
@@ -27,12 +24,12 @@ module Brightbox
27
24
 
28
25
  table_opts = global_options.merge(
29
26
  :vertical => true,
30
- :fields => [
31
- :id,
32
- :name,
33
- :library_ftp_host,
34
- :library_ftp_user,
35
- :library_ftp_password
27
+ :fields => %i[
28
+ id
29
+ name
30
+ library_ftp_host
31
+ library_ftp_user
32
+ library_ftp_password
36
33
  ]
37
34
  )
38
35
 
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:accounts] do |cmd|
3
-
4
3
  cmd.desc I18n.t("accounts.show.desc")
5
4
  cmd.arg_name "account-id..."
6
5
  cmd.command [:show] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
-
10
7
  if args.empty?
11
8
  raise "You must specify the accounts to show"
12
9
  end
@@ -17,16 +14,16 @@ module Brightbox
17
14
 
18
15
  table_opts = global_options.merge(
19
16
  :vertical => true,
20
- :fields => [
21
- :id,
22
- :name,
23
- :cloud_ip_limit,
24
- :ram_limit,
25
- :ram_used,
26
- :lb_limit,
27
- :ram_free,
28
- :library_ftp_host,
29
- :library_ftp_user
17
+ :fields => %i[
18
+ id
19
+ name
20
+ cloud_ip_limit
21
+ ram_limit
22
+ ram_used
23
+ lb_limit
24
+ ram_free
25
+ library_ftp_host
26
+ library_ftp_user
30
27
  ]
31
28
  )
32
29
 
@@ -1,22 +1,19 @@
1
1
  module Brightbox
2
2
  desc I18n.t("cloudips.desc")
3
3
  command [:cloudips] do |cmd|
4
-
5
4
  cmd.desc I18n.t("cloudips.create.desc")
6
5
  cmd.command [:create] do |c|
7
-
8
6
  c.desc "Number of Cloud IPs to create"
9
7
  c.default_value 1
10
8
  c.flag [:i, "count"]
11
9
 
12
10
  c.desc I18n.t("options.name.desc")
13
- c.flag [:n, :name]
11
+ c.flag %i[n name]
14
12
 
15
13
  c.desc I18n.t("cloudips.options.port_translators.desc")
16
- c.flag [:t, :"port-translators"]
14
+ c.flag %i[t port-translators]
17
15
 
18
16
  c.action do |global_options, options, _args|
19
-
20
17
  if options[:i].to_s !~ /^[0-9]+$/
21
18
  raise "count must be a number"
22
19
  end
@@ -1,15 +1,12 @@
1
1
  module Brightbox
2
2
  command [:cloudips] do |cmd|
3
-
4
3
  cmd.desc I18n.t("cloudips.destroy.desc")
5
4
  cmd.arg_name "[cloudip-id...]"
6
5
  cmd.command [:destroy] do |c|
7
-
8
6
  c.desc "Unmap mapped IPs before destroying them"
9
7
  c.switch [:u, "unmap"], :negatable => false
10
8
 
11
9
  c.action do |_global_options, options, args|
12
-
13
10
  if args.empty?
14
11
  raise "You must specify the Cloud IPs you want to destroy"
15
12
  end
@@ -19,20 +16,19 @@ module Brightbox
19
16
  end
20
17
 
21
18
  ips.each do |ip|
22
-
23
19
  if ip.mapped?
24
- if options[:u]
25
- info "Unmapping Cloud IP #{ip}"
26
- ip.unmap
27
- 3.times do
28
- break unless ip.mapped?
29
- sleep 1
30
- ip.reload
31
- end
32
- else
33
- raise "Cannot destroy mapped Cloud IP #{ip}"
20
+ raise "Cannot destroy mapped Cloud IP #{ip}" unless options[:u]
21
+
22
+ info "Unmapping Cloud IP #{ip}"
23
+ ip.unmap
24
+ 3.times do
25
+ break unless ip.mapped?
26
+
27
+ sleep 1
28
+ ip.reload
34
29
  end
35
30
  end
31
+
36
32
  info "Destroying Cloud IP #{ip}"
37
33
  ip.destroy
38
34
  end
@@ -1,12 +1,10 @@
1
1
  module Brightbox
2
2
  command [:cloudips] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("cloudips.list.desc")
7
6
  cmd.arg_name "[cloudip-id...]"
8
7
  cmd.command [:list] do |c|
9
-
10
8
  c.action do |global_options, _options, args|
11
9
  ips = CloudIP.find_all_or_warn(args)
12
10
  render_table(ips.sort, global_options)
@@ -1,15 +1,12 @@
1
1
  module Brightbox
2
2
  command [:cloudips] do |cmd|
3
-
4
3
  cmd.desc I18n.t("cloudips.map.desc")
5
4
  cmd.arg_name "cloudip-id destination"
6
5
  cmd.command [:map] do |c|
7
-
8
6
  c.desc "Unmap mapped IPs before remapping them"
9
7
  c.switch [:u, "unmap"], :negatable => false
10
8
 
11
9
  c.action do |global_options, options, args|
12
-
13
10
  if args.size > 2
14
11
  raise "Too many arguments"
15
12
  end
@@ -24,7 +21,7 @@ module Brightbox
24
21
 
25
22
  destination_id = args.last
26
23
  case destination_id
27
- when /^srv\-/
24
+ when /^srv-/
28
25
  server = Server.find destination_id
29
26
  destination_id = server.interfaces.first["id"]
30
27
  info "Mapping #{ip} to interface #{destination_id} on #{server}"
@@ -33,15 +30,14 @@ module Brightbox
33
30
  end
34
31
 
35
32
  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}"
33
+ raise "Refusing to map already mapped IP #{ip}" unless options[:u]
34
+
35
+ ip.unmap
36
+ 3.times do
37
+ break unless ip.mapped?
38
+
39
+ sleep 1
40
+ ip.reload
45
41
  end
46
42
  end
47
43
 
@@ -51,6 +47,7 @@ module Brightbox
51
47
  3.times do
52
48
  ip.reload
53
49
  break if ip.mapped?
50
+
54
51
  sleep 1
55
52
  end
56
53
 
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:cloudips] do |cmd|
3
-
4
3
  cmd.desc I18n.t("cloudips.show.desc")
5
4
  cmd.arg_name "cloudip-id..."
6
5
  cmd.command [:show] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
-
10
7
  if args.empty?
11
8
  raise "You must specify the cloud ips you want to show"
12
9
  end
@@ -15,17 +12,17 @@ module Brightbox
15
12
  warn "Couldn't find Cloud IP #{id}"
16
13
  end
17
14
 
18
- fields = [
19
- :id,
20
- :name,
21
- :status,
22
- :public_ipv4,
23
- :public_ipv6,
24
- :fqdn,
25
- :reverse_dns,
26
- :destination,
27
- :interface_id,
28
- :port_translators
15
+ fields = %i[
16
+ id
17
+ name
18
+ status
19
+ public_ipv4
20
+ public_ipv6
21
+ fqdn
22
+ reverse_dns
23
+ destination
24
+ interface_id
25
+ port_translators
29
26
  ]
30
27
 
31
28
  render_table(ips.compact, global_options.merge(:vertical => true, :fields => fields))
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:cloudips] do |cmd|
3
-
4
3
  cmd.desc I18n.t("cloudips.map.desc")
5
4
  cmd.arg_name "cloudip-id..."
6
5
  cmd.command [:unmap] do |c|
7
-
8
6
  c.action do |global_options, _options, args|
9
-
10
7
  if args.empty?
11
8
  raise "You must specify the Cloud IPs you want to unmap"
12
9
  end
@@ -27,7 +24,8 @@ module Brightbox
27
24
 
28
25
  # Wait up to 3 seconds for unmapping to complete
29
26
  3.times do
30
- break unless ips.find { |ip| ip.mapped? }
27
+ break unless ips.find(&:mapped?)
28
+
31
29
  sleep 1
32
30
  ips.each { |ip| ip.reload if ip.mapped? }
33
31
  end
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:cloudips] do |cmd|
3
-
4
3
  cmd.desc I18n.t("cloudips.update.desc")
5
4
  cmd.arg_name "cloudip-id"
6
5
  cmd.command [:update] do |c|
7
-
8
6
  c.desc "Set reverse DNS for this Cloud IP"
9
7
  c.flag [:r, "reverse-dns"]
10
8
 
@@ -12,10 +10,10 @@ module Brightbox
12
10
  c.switch ["delete-reverse-dns"], :negatable => false
13
11
 
14
12
  c.desc I18n.t("options.name.desc")
15
- c.flag [:n, :name]
13
+ c.flag %i[n name]
16
14
 
17
15
  c.desc I18n.t("cloudips.options.port_translators.desc")
18
- c.flag [:t, :"port-translators"]
16
+ c.flag %i[t port-translators]
19
17
 
20
18
  c.action do |global_options, options, args|
21
19
  cip_id = args.shift
@@ -1,7 +1,6 @@
1
1
  module Brightbox
2
2
  desc "Lists collaborations scoped to an account"
3
3
  command [:collaborators] do |cmd|
4
-
5
4
  cmd.default_command :list
6
5
 
7
6
  cmd.desc "List an accounts collaborations"
@@ -36,7 +35,7 @@ module Brightbox
36
35
  collaborations = Collaboration.find_or_call(args) do |id|
37
36
  warn "Couldn't find collaboration #{id}"
38
37
  end
39
- collaborations.each { |col| col.resend }
38
+ collaborations.each(&:resend)
40
39
  render_table(collaborations, global_options)
41
40
  end
42
41
  end
@@ -59,7 +58,7 @@ module Brightbox
59
58
  collaborations = Collaboration.find_or_call(args) do |id|
60
59
  warn "Couldn't find collaboration #{id}"
61
60
  end
62
- collaborations.each { |col| col.destroy }
61
+ collaborations.each(&:destroy)
63
62
  render_table(collaborations, global_options)
64
63
  end
65
64
  end
@@ -1,11 +1,9 @@
1
1
  module Brightbox
2
2
  desc I18n.t("config.desc")
3
3
  command [:config] do |cmd|
4
-
5
4
  cmd.desc I18n.t("config.client_add.desc")
6
5
  cmd.arg_name "client-id secret [api_url, auth_url]"
7
6
  cmd.command [:client_add] do |c|
8
-
9
7
  c.desc "client alias (local reference)"
10
8
  c.flag [:a, "alias"]
11
9
 
@@ -13,7 +11,6 @@ module Brightbox
13
11
  c.flag [:t, "auth-url"]
14
12
 
15
13
  c.action do |_global_options, options, args|
16
-
17
14
  info "Using config file #{Brightbox.config.config_filename}"
18
15
 
19
16
  client_id = args.shift
@@ -0,0 +1,18 @@
1
+ module Brightbox
2
+ command [:config] do |cmd|
3
+ cmd.desc I18n.t("config.client_default.desc")
4
+ cmd.arg_name "alias"
5
+ cmd.command [:client_default] do |c|
6
+ c.action do |_global_options, _options, args|
7
+ info "Using config file #{Brightbox.config.config_filename}"
8
+ calias = args.shift
9
+
10
+ raise "You must specify the api alias you want to set as the default" if calias.nil?
11
+ raise "An api client with the alias #{calias} does not exist in the config" unless Brightbox.config.client_named?(calias)
12
+
13
+ info "Setting #{calias} as default api client"
14
+ Brightbox.config.set_default_client(calias)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,13 +1,10 @@
1
1
  module Brightbox
2
2
  command [:config] do |cmd|
3
-
4
3
  cmd.default_command :client_list
5
4
 
6
5
  cmd.desc I18n.t("config.client_list.desc")
7
6
  cmd.command [:client_list] do |c|
8
-
9
7
  c.action do |global_options, _options, _args|
10
-
11
8
  info "Using config file #{Brightbox.config.config_filename}"
12
9
 
13
10
  clients = Brightbox.config.section_names.map do |cid|
@@ -28,7 +25,7 @@ module Brightbox
28
25
  }
29
26
  end
30
27
 
31
- render_table clients, global_options.merge(:fields => [:alias, :client_id, :secret, :api_url, :auth_url])
28
+ render_table clients, global_options.merge(:fields => %i[alias client_id secret api_url auth_url])
32
29
  end
33
30
  end
34
31
  end
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:config] do |cmd|
3
-
4
3
  cmd.desc "Remove api client details from config"
5
4
  cmd.arg_name "alias"
6
5
  cmd.command [:client_remove] do |c|
7
-
8
6
  c.action do |_global_options, _options, args|
9
-
10
7
  info "Using config file #{Brightbox.config.config_filename}"
11
8
 
12
9
  calias = args.shift
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:config] do |cmd|
3
-
4
3
  cmd.desc I18n.t("config.user_add.desc")
5
4
  cmd.arg_name "email client-id secret [api_url auth_url]"
6
5
  cmd.command [:user_add] do |c|
7
-
8
6
  c.desc "client alias (local reference)"
9
7
  c.flag [:a, "alias"]
10
8
 
@@ -12,8 +10,7 @@ module Brightbox
12
10
  c.flag [:p, "password"]
13
11
 
14
12
  c.action do |_global_options, options, args|
15
-
16
- require 'highline'
13
+ require "highline"
17
14
 
18
15
  info "Using config file #{Brightbox.config.config_filename}"
19
16
 
@@ -1,11 +1,9 @@
1
1
  module Brightbox
2
2
  desc I18n.t("firewall.policies.desc")
3
3
  command [:"firewall-policies"] do |cmd|
4
-
5
4
  cmd.desc I18n.t("firewall.policies.apply.desc")
6
5
  cmd.arg_name "firewall-policy-id server-group-id"
7
6
  cmd.command [:apply] do |c|
8
-
9
7
  c.action do |global_options, options, args|
10
8
  if args.size != 2
11
9
  raise "You must specify firewall_policy_id and server_group_id as arguments"
@@ -13,6 +11,7 @@ module Brightbox
13
11
 
14
12
  firewall_policy_id = args.shift
15
13
  raise "Invalid firewall policy id" unless firewall_policy_id[/^fwp-/]
14
+
16
15
  server_group_id = args.shift
17
16
  raise "Invalid Server Group id" unless server_group_id[/^grp-/]
18
17
 
@@ -26,6 +25,7 @@ module Brightbox
26
25
  unless server_group
27
26
  raise "Can\'t find group with #{options[:g]}"
28
27
  end
28
+
29
29
  firewall_policy.apply_to(server_group.id)
30
30
  render_table([firewall_policy], global_options)
31
31
  end
@@ -1,15 +1,13 @@
1
1
  module Brightbox
2
2
  command [:"firewall-policies"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.policies.create.desc")
5
4
  cmd.arg_name "[server-group-id...]"
6
5
  cmd.command [:create] 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
  server_group_id = nil
@@ -1,12 +1,9 @@
1
1
  module Brightbox
2
2
  command [:"firewall-policies"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.policies.destroy.desc")
5
4
  cmd.arg_name "[firewall-policy-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 firewall-policy-id to destroy" if args.empty?
11
8
 
12
9
  firewall_policies = FirewallPolicy.find_or_call(args) do |id|
@@ -1,12 +1,10 @@
1
1
  module Brightbox
2
2
  command [:"firewall-policies"] do |cmd|
3
-
4
3
  cmd.default_command :list
5
4
 
6
5
  cmd.desc I18n.t("firewall.policies.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
  firewall_policies = FirewallPolicy.find_all_or_warn(args)
12
10
  render_table(firewall_policies, global_options)
@@ -1,10 +1,8 @@
1
1
  module Brightbox
2
2
  command [:"firewall-policies"] do |cmd|
3
-
4
3
  cmd.desc I18n.t("firewall.policies.remove.desc")
5
4
  cmd.arg_name "firewall-policy-id server-group-id"
6
5
  cmd.command [:remove] do |c|
7
-
8
6
  c.action do |global_options, options, args|
9
7
  if args.size != 2
10
8
  raise "You must specify firewall_policy_id and server_group_id as arguments"
@@ -12,6 +10,7 @@ module Brightbox
12
10
 
13
11
  firewall_policy_id = args.shift
14
12
  raise "Invalid firewall policy id" unless firewall_policy_id[/^fwp-/]
13
+
15
14
  server_group_id = args.shift
16
15
  raise "Invalid Server Group id" unless server_group_id[/^grp-/]
17
16
 
@@ -25,6 +24,7 @@ module Brightbox
25
24
  unless server_group
26
25
  raise "Can't find group with #{options[:g]}"
27
26
  end
27
+
28
28
  firewall_policy.remove(server_group.id)
29
29
  render_table([firewall_policy], global_options)
30
30
  end