brightbox-cli 3.3.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (419) 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 +60 -0
  7. data/Gemfile.lock +74 -45
  8. data/Jenkinsfile +12 -32
  9. data/README +23 -32
  10. data/README.rdoc +1 -1
  11. data/brightbox-cli.gemspec +21 -34
  12. data/lib/brightbox-cli/accounts.rb +9 -11
  13. data/lib/brightbox-cli/api.rb +38 -36
  14. data/lib/brightbox-cli/cloud_ips.rb +8 -8
  15. data/lib/brightbox-cli/collaborating_account.rb +5 -5
  16. data/lib/brightbox-cli/collaboration.rb +1 -1
  17. data/lib/brightbox-cli/commands/accounts/{accept-invite.rb → accept_invite.rb} +2 -6
  18. data/lib/brightbox-cli/commands/accounts/default.rb +1 -2
  19. data/lib/brightbox-cli/commands/accounts/list.rb +6 -8
  20. data/lib/brightbox-cli/commands/accounts/remove.rb +2 -6
  21. data/lib/brightbox-cli/commands/accounts/{reset-ftp-password.rb → reset_ftp_password.rb} +6 -9
  22. data/lib/brightbox-cli/commands/accounts/show.rb +10 -13
  23. data/lib/brightbox-cli/commands/cloudips/create.rb +2 -5
  24. data/lib/brightbox-cli/commands/cloudips/destroy.rb +10 -14
  25. data/lib/brightbox-cli/commands/cloudips/list.rb +0 -2
  26. data/lib/brightbox-cli/commands/cloudips/map.rb +10 -13
  27. data/lib/brightbox-cli/commands/cloudips/show.rb +11 -14
  28. data/lib/brightbox-cli/commands/cloudips/unmap.rb +2 -4
  29. data/lib/brightbox-cli/commands/cloudips/update.rb +2 -4
  30. data/lib/brightbox-cli/commands/collaborations.rb +2 -3
  31. data/lib/brightbox-cli/commands/config/{client-add.rb → client_add.rb} +0 -3
  32. data/lib/brightbox-cli/commands/config/client_default.rb +18 -0
  33. data/lib/brightbox-cli/commands/config/{client-list.rb → client_list.rb} +1 -4
  34. data/lib/brightbox-cli/commands/config/{client-remove.rb → client_remove.rb} +0 -3
  35. data/lib/brightbox-cli/commands/config/{user-add.rb → user_add.rb} +1 -4
  36. data/lib/brightbox-cli/commands/firewall/{policies-apply.rb → policies_apply.rb} +2 -2
  37. data/lib/brightbox-cli/commands/firewall/{policies-create.rb → policies_create.rb} +2 -4
  38. data/lib/brightbox-cli/commands/firewall/{policies-destroy.rb → policies_destroy.rb} +0 -3
  39. data/lib/brightbox-cli/commands/firewall/{policies-list.rb → policies_list.rb} +0 -2
  40. data/lib/brightbox-cli/commands/firewall/{policies-remove.rb → policies_remove.rb} +2 -2
  41. data/lib/brightbox-cli/commands/firewall/{policies-show.rb → policies_show.rb} +6 -8
  42. data/lib/brightbox-cli/commands/firewall/{policies-update.rb → policies_update.rb} +2 -4
  43. data/lib/brightbox-cli/commands/firewall/{rules-create.rb → rules_create.rb} +6 -8
  44. data/lib/brightbox-cli/commands/firewall/{rules-destroy.rb → rules_destroy.rb} +0 -2
  45. data/lib/brightbox-cli/commands/firewall/{rules-list.rb → rules_list.rb} +0 -2
  46. data/lib/brightbox-cli/commands/firewall/{rules-show.rb → rules_show.rb} +7 -9
  47. data/lib/brightbox-cli/commands/firewall/{rules-update.rb → rules_update.rb} +7 -8
  48. data/lib/brightbox-cli/commands/groups/{add-server.rb → add_server.rb} +0 -2
  49. data/lib/brightbox-cli/commands/groups/create.rb +2 -3
  50. data/lib/brightbox-cli/commands/groups/destroy.rb +0 -2
  51. data/lib/brightbox-cli/commands/groups/list.rb +0 -1
  52. data/lib/brightbox-cli/commands/groups/move_servers.rb +2 -3
  53. data/lib/brightbox-cli/commands/groups/{remove-servers.rb → remove_servers.rb} +2 -4
  54. data/lib/brightbox-cli/commands/groups/show.rb +0 -2
  55. data/lib/brightbox-cli/commands/groups/update.rb +2 -3
  56. data/lib/brightbox-cli/commands/images/destroy.rb +0 -4
  57. data/lib/brightbox-cli/commands/images/list.rb +3 -5
  58. data/lib/brightbox-cli/commands/images/register.rb +9 -17
  59. data/lib/brightbox-cli/commands/images/show.rb +19 -20
  60. data/lib/brightbox-cli/commands/images/update.rb +12 -8
  61. data/lib/brightbox-cli/commands/lbs/{add-nodes.rb → add_nodes.rb} +0 -3
  62. data/lib/brightbox-cli/commands/lbs/create.rb +5 -7
  63. data/lib/brightbox-cli/commands/lbs/destroy.rb +0 -3
  64. data/lib/brightbox-cli/commands/lbs/list.rb +0 -1
  65. data/lib/brightbox-cli/commands/lbs/{remove-nodes.rb → remove_nodes.rb} +0 -3
  66. data/lib/brightbox-cli/commands/lbs/show.rb +20 -22
  67. data/lib/brightbox-cli/commands/lbs/update.rb +6 -9
  68. data/lib/brightbox-cli/commands/login.rb +13 -12
  69. data/lib/brightbox-cli/commands/servers/{activate-console.rb → activate_console.rb} +2 -5
  70. data/lib/brightbox-cli/commands/servers/create.rb +32 -26
  71. data/lib/brightbox-cli/commands/servers/destroy.rb +0 -3
  72. data/lib/brightbox-cli/commands/servers/list.rb +4 -5
  73. data/lib/brightbox-cli/commands/servers/show.rb +0 -2
  74. data/lib/brightbox-cli/commands/servers/shutdown.rb +0 -3
  75. data/lib/brightbox-cli/commands/servers/snapshot.rb +0 -4
  76. data/lib/brightbox-cli/commands/servers/start.rb +0 -4
  77. data/lib/brightbox-cli/commands/servers/stop.rb +0 -3
  78. data/lib/brightbox-cli/commands/servers/update.rb +5 -5
  79. data/lib/brightbox-cli/commands/sql/instances_create.rb +3 -6
  80. data/lib/brightbox-cli/commands/sql/instances_destroy.rb +0 -2
  81. data/lib/brightbox-cli/commands/sql/instances_list.rb +7 -9
  82. data/lib/brightbox-cli/commands/sql/instances_reset_password.rb +0 -1
  83. data/lib/brightbox-cli/commands/sql/instances_show.rb +0 -3
  84. data/lib/brightbox-cli/commands/sql/instances_snapshot.rb +0 -3
  85. data/lib/brightbox-cli/commands/sql/instances_update.rb +1 -3
  86. data/lib/brightbox-cli/commands/sql/snapshots_destroy.rb +0 -3
  87. data/lib/brightbox-cli/commands/sql/snapshots_list.rb +7 -9
  88. data/lib/brightbox-cli/commands/sql/snapshots_show.rb +12 -15
  89. data/lib/brightbox-cli/commands/sql/snapshots_update.rb +1 -3
  90. data/lib/brightbox-cli/commands/sql/types.rb +8 -15
  91. data/lib/brightbox-cli/commands/token.rb +0 -1
  92. data/lib/brightbox-cli/commands/types.rb +8 -14
  93. data/lib/brightbox-cli/commands/{user-collaborations.rb → user_collaborations.rb} +7 -8
  94. data/lib/brightbox-cli/commands/users/list.rb +0 -2
  95. data/lib/brightbox-cli/commands/users/show.rb +1 -3
  96. data/lib/brightbox-cli/commands/users/update.rb +3 -6
  97. data/lib/brightbox-cli/commands/zones.rb +7 -10
  98. data/lib/brightbox-cli/config/accounts.rb +18 -26
  99. data/lib/brightbox-cli/config/api_client.rb +12 -16
  100. data/lib/brightbox-cli/config/authentication_tokens.rb +39 -42
  101. data/lib/brightbox-cli/config/cache.rb +1 -0
  102. data/lib/brightbox-cli/config/clients.rb +8 -8
  103. data/lib/brightbox-cli/config/gpg_encrypted_passwords.rb +6 -8
  104. data/lib/brightbox-cli/config/password_helper.rb +33 -8
  105. data/lib/brightbox-cli/config/sections.rb +45 -29
  106. data/lib/brightbox-cli/config/two_factor_auth.rb +12 -14
  107. data/lib/brightbox-cli/config/two_factor_helper.rb +5 -7
  108. data/lib/brightbox-cli/config/user_application.rb +18 -18
  109. data/lib/brightbox-cli/config.rb +26 -23
  110. data/lib/brightbox-cli/connection_manager.rb +4 -2
  111. data/lib/brightbox-cli/database_server.rb +28 -29
  112. data/lib/brightbox-cli/database_snapshot.rb +1 -1
  113. data/lib/brightbox-cli/database_type.rb +6 -6
  114. data/lib/brightbox-cli/detailed_server.rb +43 -43
  115. data/lib/brightbox-cli/detailed_server_group.rb +1 -1
  116. data/lib/brightbox-cli/error_parser.rb +9 -9
  117. data/lib/brightbox-cli/firewall_policy.rb +2 -1
  118. data/lib/brightbox-cli/firewall_rule.rb +3 -3
  119. data/lib/brightbox-cli/firewall_rules.rb +3 -3
  120. data/lib/brightbox-cli/gli_global_hooks.rb +25 -27
  121. data/lib/brightbox-cli/images.rb +14 -12
  122. data/lib/brightbox-cli/load_balancers.rb +3 -6
  123. data/lib/brightbox-cli/logging.rb +14 -14
  124. data/lib/brightbox-cli/nilable_hash.rb +1 -1
  125. data/lib/brightbox-cli/ruby_core_ext.rb +3 -3
  126. data/lib/brightbox-cli/server_groups.rb +2 -2
  127. data/lib/brightbox-cli/servers.rb +6 -6
  128. data/lib/brightbox-cli/tables.rb +13 -15
  129. data/lib/brightbox-cli/types.rb +6 -6
  130. data/lib/brightbox-cli/user_collaboration.rb +5 -7
  131. data/lib/brightbox-cli/users.rb +1 -1
  132. data/lib/brightbox-cli/version.rb +1 -1
  133. data/lib/brightbox-cli/zones.rb +1 -1
  134. data/lib/brightbox_cli.rb +33 -33
  135. data/locales/en.yml +2 -0
  136. data/spec/brightbox_spec.rb +0 -1
  137. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_a_collection_of_Accounts.yml +5 -5
  138. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_resources_on_the_same_connection.yml +2 -2
  139. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_a_collection_of_Accounts.yml +4 -4
  140. data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_resources_on_the_same_connection.yml +2 -2
  141. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_config_exists_and_overwrite_duplicates_is_false/does_not_update_the_config_file.yml +12 -12
  142. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_config_exists_and_overwrite_duplicates_is_true/does_not_update_the_config_file.yml +12 -12
  143. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_changes_to_the_config_file.yml +2 -2
  144. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_default_account.yml +2 -2
  145. data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_new_client_as_the_default.yml +2 -2
  146. data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_is_not_authenticated/does_not_raise_an_error.yml +8 -8
  147. data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_may_access_one_account/updates_the_setting.yml +8 -8
  148. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_config_in_use_is_not_the_default/uses_correct_credentials.yml +1 -1
  149. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_a_cached_refresh_token/caches_the_new_tokens.yml +1 -1
  150. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_an_expired_refresh_token/caches_the_new_tokens.yml +2 -2
  151. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/caches_the_new_tokens.yml +1 -1
  152. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/prompts_user_to_retry_command.yml +1 -1
  153. data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_an_API_client_with_no_tokens/caches_a_new_access_token.yml +1 -1
  154. data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/does_not_alter_the_configuration.yml +6 -6
  155. data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/updates_access_token.yml +6 -6
  156. data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/updates_refresh_token.yml +6 -6
  157. data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/does_not_alter_the_configuration.yml +6 -6
  158. data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/updates_access_token.yml +6 -6
  159. data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/updates_refresh_token.yml +6 -6
  160. data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/does_not_alter_the_configuration.yml +9 -9
  161. data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/updates_access_token.yml +9 -9
  162. data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/updates_refresh_token.yml +9 -9
  163. data/spec/cassettes/Brightbox_BBConfig_add_login/when_no_config_exists/creates_the_configuration.yml +6 -6
  164. data/spec/cassettes/Brightbox_BBConfig_add_login/when_no_config_exists/refreshed_tokens.yml +6 -6
  165. data/spec/cassettes/Brightbox_BBConfig_add_login/when_using_an_email_and_suffix/creates_the_configuration.yml +6 -6
  166. data/spec/cassettes/Brightbox_BBConfig_add_login/when_using_an_email_and_suffix/refreshed_tokens.yml +6 -6
  167. data/spec/cassettes/Brightbox_CloudIP/_find_all_/when_a_Cloud_IP_exists/returns_a_suitable.yml +15 -15
  168. data/spec/cassettes/Brightbox_FirewallPolicy/_apply_to/should_apply_firewall_policy.yml +14 -14
  169. data/spec/cassettes/Brightbox_FirewallPolicy/_create/should_create_firewall_policy.yml +14 -14
  170. data/spec/cassettes/Brightbox_FirewallPolicy/_destroy/should_destroy_firewall_policy.yml +16 -16
  171. data/spec/cassettes/Brightbox_FirewallPolicy/_find_all_/when_a_policy_exists/should_list_firewall_policy.yml +13 -13
  172. data/spec/cassettes/Brightbox_FirewallPolicy/_find_or_call/when_a_policy_exists/should_show_firewall_policy.yml +11 -11
  173. data/spec/cassettes/Brightbox_FirewallRule/_create/when_policy_exists/creates_the_rule_successfully.yml +14 -14
  174. data/spec/cassettes/Brightbox_FirewallRule/_destroy/when_rule_exists/destroys_a_rule.yml +12 -12
  175. data/spec/cassettes/Brightbox_FirewallRule/_find/when_rule_exists/can_display_the_result.yml +14 -14
  176. data/spec/cassettes/Brightbox_FirewallRule/_from_policy/when_policy_exists_with_a_rule/lists_all_rules.yml +19 -19
  177. data/spec/cassettes/Brightbox_Server/_destroy/when_server_exists/should_work.yml +12 -12
  178. data/spec/cassettes/Brightbox_Server/_find_all_/when_a_server_exists/should_print_server_list.yml +15 -15
  179. data/spec/cassettes/Brightbox_Server/_show/when_server_exists/shows_detailed_attributes_of_a_server.yml +18 -18
  180. data/spec/cassettes/Brightbox_Server/_shutdown/should_work.yml +18 -18
  181. data/spec/cassettes/Brightbox_Server/_start/should_work.yml +24 -24
  182. data/spec/cassettes/Brightbox_Server/_stop/should_work.yml +18 -18
  183. data/spec/cassettes/Brightbox_Server/_update/when_passing_new_group_membership/should_update_with_group.yml +22 -22
  184. data/spec/cassettes/Brightbox_ServerGroup/_find_all_/when_a_group_exists/list_server_groups.yml +13 -13
  185. data/spec/cassettes/Firewall_policies/update/when_the_policy_does_not_exist/prints_error_to_STDERR.yml +3 -3
  186. data/spec/cassettes/brightbox_accounts/list/_when_access_token_expired_/does_not_report_invalid_token_errors.yml +30 -30
  187. data/spec/cassettes/brightbox_accounts/list/_when_both_tokens_expired_/does_not_report_invalid_token_errors.yml +9 -9
  188. data/spec/cassettes/brightbox_accounts/list/_when_invalid_tokens_/does_not_report_invalid_token_errors.yml +9 -9
  189. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/does_not_report_invalid_token_errors.yml +27 -27
  190. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/reports_they_were_updated.yml +7 -7
  191. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/does_not_report_invalid_token_errors.yml +7 -7
  192. data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/reports_unable_to_authenticate.yml +6 -6
  193. data/spec/cassettes/brightbox_accounts/list/does_not_error.yml +3 -3
  194. data/spec/cassettes/brightbox_cloudips/map/when_destination_is_a_server_ID/passes_the_interface_identifier_to_the_API.yml +12 -12
  195. data/spec/cassettes/brightbox_cloudips/map/when_destination_is_another_value/passes_the_identifier_to_the_API.yml +7 -7
  196. data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/does_not_error.yml +7 -7
  197. data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/sets_up_the_config.yml +7 -7
  198. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_change_the_default_client.yml +7 -7
  199. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_error.yml +7 -7
  200. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +7 -7
  201. data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +7 -7
  202. data/spec/cassettes/brightbox_config/user_add/when_NO_config_file_on_disk/sets_up_the_config.yml +5 -5
  203. data/spec/cassettes/brightbox_config/user_add/when_a_default_client_is_already_set/does_not_change_the_default_client.yml +2 -2
  204. data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/does_not_error.yml +2 -2
  205. data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/sets_up_the_config.yml +2 -2
  206. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/display_an_warning_about_preselected_default.yml +2 -2
  207. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/does_not_error.yml +2 -2
  208. 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
  209. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/sets_up_the_config.yml +2 -2
  210. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/display_an_warning_about_preselected_default.yml +2 -2
  211. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/does_not_error.yml +2 -2
  212. data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/sets_up_the_config.yml +2 -2
  213. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/does_not_error.yml +2 -2
  214. 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
  215. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/requests_access_tokens.yml +2 -2
  216. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +2 -2
  217. data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +5 -5
  218. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_error.yml +2 -2
  219. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_prompt_to_rerun_the_command.yml +2 -2
  220. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/requests_access_tokens.yml +2 -2
  221. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/sets_up_the_config.yml +3 -3
  222. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/does_not_error.yml +2 -2
  223. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/requests_access_tokens.yml +2 -2
  224. data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/sets_up_the_config.yml +2 -2
  225. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_error.yml +6 -6
  226. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_prompt_to_rerun_the_command.yml +6 -6
  227. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/prompts_for_the_password.yml +6 -6
  228. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/requests_access_tokens.yml +6 -6
  229. data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/sets_up_the_config.yml +6 -6
  230. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/does_not_error.yml +6 -6
  231. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/does_not_prompt_to_rerun_the_command.yml +6 -6
  232. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/prompts_for_the_password.yml +6 -6
  233. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/requests_access_tokens.yml +6 -6
  234. data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/sets_up_the_config.yml +6 -6
  235. data/spec/cassettes/brightbox_login/when_default_account_is_passed/does_not_error.yml +3 -3
  236. data/spec/cassettes/brightbox_login/when_default_account_is_passed/does_not_prompt_to_rerun_the_command.yml +3 -3
  237. data/spec/cassettes/brightbox_login/when_default_account_is_passed/prompts_for_the_password.yml +3 -3
  238. data/spec/cassettes/brightbox_login/when_default_account_is_passed/requests_access_tokens.yml +3 -3
  239. data/spec/cassettes/brightbox_login/when_default_account_is_passed/sets_up_the_config.yml +3 -3
  240. data/spec/cassettes/brightbox_login/when_no_config_is_present/does_not_error.yml +6 -6
  241. data/spec/cassettes/brightbox_login/when_no_config_is_present/does_not_prompt_to_rerun_the_command.yml +6 -6
  242. data/spec/cassettes/brightbox_login/when_no_config_is_present/requests_access_tokens.yml +6 -6
  243. data/spec/cassettes/brightbox_login/when_no_config_is_present/sets_up_the_config.yml +6 -6
  244. data/spec/cassettes/brightbox_login/when_no_password_is_given/does_not_error.yml +6 -6
  245. data/spec/cassettes/brightbox_login/when_no_password_is_given/does_not_prompt_to_rerun_the_command.yml +6 -6
  246. data/spec/cassettes/brightbox_login/when_no_password_is_given/prompts_for_the_password.yml +6 -6
  247. data/spec/cassettes/brightbox_login/when_no_password_is_given/requests_access_tokens.yml +6 -6
  248. data/spec/cassettes/brightbox_login/when_no_password_is_given/sets_up_the_config.yml +6 -6
  249. data/spec/cassettes/brightbox_sql_instances/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml +313 -26
  250. data/spec/cassettes/brightbox_sql_instances/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml +1204 -38
  251. data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql/correctly_sends_API_parameters.yml +596 -26
  252. data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml +63 -9
  253. data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_8_0/correctly_sends_API_parameters.yml +393 -0
  254. data/spec/cassettes/brightbox_sql_instances/create/--maintenance-weekday_5_--maintenance_hour_11/correctly_sends_API_parameters.yml +393 -0
  255. data/spec/cassettes/brightbox_sql_instances/create/--maintenance-weekday_thursday/correctly_sends_API_parameters.yml +393 -0
  256. data/spec/cassettes/brightbox_sql_instances/create/--snapshot_dbi-12345/includes_schedule_fields_in_response.yml +1466 -0
  257. data/spec/cassettes/brightbox_sql_instances/create/--snapshots-schedule_0_12_4_/includes_schedule_fields_in_response.yml +342 -0
  258. data/spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_password.yml +541 -26
  259. data/spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_username.yml +484 -26
  260. data/spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_active/correctly_sends_API_parameters.yml +4 -4
  261. data/spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml +2 -2
  262. data/spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml +2 -2
  263. data/spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml +2 -2
  264. data/spec/cassettes/brightbox_sql_snapshots/show/when_resource_exists/does_not_output_to_stderr.yml +2 -2
  265. data/spec/commands/accounts/default_spec.rb +1 -2
  266. data/spec/commands/accounts/list_spec.rb +7 -8
  267. data/spec/commands/accounts/reset_ftp_password_spec.rb +1 -2
  268. data/spec/commands/accounts/show_spec.rb +1 -2
  269. data/spec/commands/cloudips/create_spec.rb +1 -2
  270. data/spec/commands/cloudips/destroy_spec.rb +1 -2
  271. data/spec/commands/cloudips/list_spec.rb +1 -2
  272. data/spec/commands/cloudips/map_spec.rb +2 -3
  273. data/spec/commands/cloudips/show_spec.rb +1 -2
  274. data/spec/commands/cloudips/unmap_spec.rb +1 -2
  275. data/spec/commands/cloudips/update_spec.rb +7 -8
  276. data/spec/commands/config/client_add_spec.rb +2 -3
  277. data/spec/commands/config/client_default_spec.rb +1 -2
  278. data/spec/commands/config/client_list_spec.rb +1 -2
  279. data/spec/commands/config/client_remove_spec.rb +1 -2
  280. data/spec/commands/config/user_add_spec.rb +3 -4
  281. data/spec/commands/firewall_policies/update_spec.rb +3 -3
  282. data/spec/commands/groups/add_server_spec.rb +1 -2
  283. data/spec/commands/groups/create_spec.rb +1 -2
  284. data/spec/commands/groups/destroy_spec.rb +1 -2
  285. data/spec/commands/groups/list_spec.rb +1 -2
  286. data/spec/commands/groups/move_servers_spec.rb +1 -2
  287. data/spec/commands/groups/remove_servers_spec.rb +1 -2
  288. data/spec/commands/groups/show_spec.rb +1 -2
  289. data/spec/commands/groups/update_spec.rb +1 -2
  290. data/spec/commands/images/destroy_spec.rb +1 -2
  291. data/spec/commands/images/list_spec.rb +62 -63
  292. data/spec/commands/images/locking_spec.rb +4 -4
  293. data/spec/commands/images/register_spec.rb +89 -3
  294. data/spec/commands/images/show_spec.rb +56 -4
  295. data/spec/commands/images/update_spec.rb +53 -3
  296. data/spec/commands/lbs/add_nodes_spec.rb +1 -2
  297. data/spec/commands/lbs/create_spec.rb +2 -3
  298. data/spec/commands/lbs/destroy_spec.rb +1 -2
  299. data/spec/commands/lbs/list_spec.rb +1 -2
  300. data/spec/commands/lbs/locking_spec.rb +4 -4
  301. data/spec/commands/lbs/remove_nodes_spec.rb +1 -2
  302. data/spec/commands/lbs/show_spec.rb +1 -2
  303. data/spec/commands/lbs/update_spec.rb +3 -4
  304. data/spec/commands/login_spec.rb +134 -30
  305. data/spec/commands/policies/apply_spec.rb +1 -2
  306. data/spec/commands/policies/create_spec.rb +1 -2
  307. data/spec/commands/policies/destroy_spec.rb +1 -2
  308. data/spec/commands/policies/list_spec.rb +1 -2
  309. data/spec/commands/policies/remove_spec.rb +1 -2
  310. data/spec/commands/policies/show_spec.rb +1 -2
  311. data/spec/commands/policies/update_spec.rb +1 -2
  312. data/spec/commands/rules/create_spec.rb +1 -2
  313. data/spec/commands/rules/destroy_spec.rb +1 -2
  314. data/spec/commands/rules/list_spec.rb +1 -2
  315. data/spec/commands/rules/show_spec.rb +1 -2
  316. data/spec/commands/rules/update_spec.rb +1 -2
  317. data/spec/commands/servers/activate_console_spec.rb +1 -2
  318. data/spec/commands/servers/create_spec.rb +112 -10
  319. data/spec/commands/servers/destroy_spec.rb +1 -2
  320. data/spec/commands/servers/list_spec.rb +1 -2
  321. data/spec/commands/servers/locking_spec.rb +4 -4
  322. data/spec/commands/servers/reboot_spec.rb +3 -4
  323. data/spec/commands/servers/reset_spec.rb +3 -4
  324. data/spec/commands/servers/show_spec.rb +1 -2
  325. data/spec/commands/servers/shutdown_spec.rb +1 -2
  326. data/spec/commands/servers/snapshot_spec.rb +1 -2
  327. data/spec/commands/servers/start_spec.rb +1 -2
  328. data/spec/commands/servers/stop_spec.rb +1 -2
  329. data/spec/commands/servers/update_spec.rb +1 -2
  330. data/spec/commands/sql/instances/create_spec.rb +58 -75
  331. data/spec/commands/sql/instances/locking_spec.rb +4 -4
  332. data/spec/commands/sql/instances/show_spec.rb +7 -7
  333. data/spec/commands/sql/instances/snapshot_spec.rb +2 -2
  334. data/spec/commands/sql/instances/update_spec.rb +8 -8
  335. data/spec/commands/sql/snapshots/list_spec.rb +1 -1
  336. data/spec/commands/sql/snapshots/locking_spec.rb +4 -4
  337. data/spec/commands/sql/snapshots/show_spec.rb +1 -1
  338. data/spec/commands/sql/types/list_spec.rb +1 -2
  339. data/spec/commands/types/list_spec.rb +1 -2
  340. data/spec/commands/users/list_spec.rb +1 -2
  341. data/spec/commands/users/show_spec.rb +1 -2
  342. data/spec/commands/users/update_spec.rb +1 -2
  343. data/spec/commands/zones/list_spec.rb +1 -2
  344. data/spec/configs/api_client.ini +1 -1
  345. data/spec/configs/user_app.ini +2 -2
  346. data/spec/spec_helper.rb +16 -3
  347. data/spec/support/authentication_helpers.rb +98 -0
  348. data/spec/support/config_helpers.rb +2 -4
  349. data/spec/support/password_prompt_helpers.rb +22 -1
  350. data/spec/support/server_helper.rb +5 -5
  351. data/spec/support/tmp_config.rb +1 -1
  352. data/spec/support/token_helpers.rb +2 -2
  353. data/spec/support/vcr.rb +3 -22
  354. data/spec/unit/brightbox/api/created_on_spec.rb +2 -2
  355. data/spec/unit/brightbox/api/fog_model_spec.rb +13 -13
  356. data/spec/unit/brightbox/api/klass_name_spec.rb +0 -1
  357. data/spec/unit/brightbox/api/method_missing_spec.rb +64 -0
  358. data/spec/unit/brightbox/api/require_account_spec.rb +0 -1
  359. data/spec/unit/brightbox/api/respond_to_spec.rb +71 -0
  360. data/spec/unit/brightbox/bb_config/access_token_filename_spec.rb +0 -1
  361. data/spec/unit/brightbox/bb_config/account_spec.rb +0 -1
  362. data/spec/unit/brightbox/bb_config/add_login_spec.rb +27 -28
  363. data/spec/unit/brightbox/bb_config/add_section_spec.rb +1 -2
  364. data/spec/unit/brightbox/bb_config/clear_default_client_spec.rb +0 -1
  365. data/spec/unit/brightbox/bb_config/client_id_spec.rb +0 -1
  366. data/spec/unit/brightbox/bb_config/client_name_spec.rb +0 -1
  367. data/spec/unit/brightbox/bb_config/config_directory_exists_spec.rb +0 -1
  368. data/spec/unit/brightbox/bb_config/config_directory_spec.rb +0 -1
  369. data/spec/unit/brightbox/bb_config/config_spec.rb +2 -3
  370. data/spec/unit/brightbox/bb_config/default_account_spec.rb +0 -1
  371. data/spec/unit/brightbox/bb_config/default_client_spec.rb +0 -1
  372. data/spec/unit/brightbox/bb_config/delete_section_spec.rb +0 -1
  373. data/spec/unit/brightbox/bb_config/find_or_set_default_account_spec.rb +4 -4
  374. data/spec/unit/brightbox/bb_config/refresh_token_filename_spec.rb +0 -1
  375. data/spec/unit/brightbox/bb_config/renew_tokens_spec.rb +3 -4
  376. data/spec/unit/brightbox/bb_config/save_default_account_spec.rb +0 -1
  377. data/spec/unit/brightbox/bb_config/save_spec.rb +0 -1
  378. data/spec/unit/brightbox/bb_config/section_names_spec.rb +1 -1
  379. data/spec/unit/brightbox/bb_config/to_fog_spec.rb +2 -2
  380. data/spec/unit/brightbox/collaborating_account/to_row_spec.rb +3 -3
  381. data/spec/unit/brightbox/config/api_client/to_fog_spec.rb +8 -8
  382. data/spec/unit/brightbox/config/api_client/valid_spec.rb +4 -4
  383. data/spec/unit/brightbox/config/discover_two_factor_pin_spec.rb +87 -0
  384. data/spec/unit/brightbox/config/section_name_deduplicator_spec.rb +1 -1
  385. data/spec/unit/brightbox/config/user_application/to_fog_spec.rb +10 -10
  386. data/spec/unit/brightbox/config/user_application/valid_spec.rb +3 -3
  387. data/spec/unit/brightbox/connection_manager/fetch_connection_spec.rb +1 -1
  388. data/spec/unit/brightbox/database_server/clean_arguments_spec.rb +1 -2
  389. data/spec/unit/brightbox/database_server/maintenance_window_spec.rb +0 -1
  390. data/spec/unit/brightbox/error_parser/pretty_print_spec.rb +0 -1
  391. data/spec/unit/brightbox/firewall_policy/apply_to_spec.rb +0 -1
  392. data/spec/unit/brightbox/firewall_policy/create_spec.rb +0 -1
  393. data/spec/unit/brightbox/firewall_policy/find_or_call_spec.rb +0 -1
  394. data/spec/unit/brightbox/firewall_policy/find_spec.rb +0 -1
  395. data/spec/unit/brightbox/firewall_rule/find_spec.rb +9 -9
  396. data/spec/unit/brightbox/firewall_rule/from_policy_spec.rb +4 -4
  397. data/spec/unit/brightbox/legacy/args_adjuster_spec.rb +20 -21
  398. data/spec/unit/brightbox/server/create_spec.rb +1 -2
  399. data/spec/unit/brightbox/server/start_spec.rb +2 -2
  400. data/spec/unit/brightbox/server/update_spec.rb +0 -1
  401. data/spec/unit/brightbox/user_collaboration/remove_spec.rb +0 -1
  402. data/spec/unit/nilable_hash_spec.rb +5 -5
  403. data/spec/unit/ruby_core_ext_spec.rb +3 -4
  404. data/spec/unit/temporary_home_spec.rb +1 -1
  405. data/spec/unit/tmp_config_spec.rb +0 -1
  406. metadata +131 -99
  407. data/bin/brightbox-accounts +0 -13
  408. data/bin/brightbox-cloudips +0 -13
  409. data/bin/brightbox-config +0 -13
  410. data/bin/brightbox-firewall-policies +0 -13
  411. data/bin/brightbox-firewall-rules +0 -13
  412. data/bin/brightbox-groups +0 -13
  413. data/bin/brightbox-images +0 -13
  414. data/bin/brightbox-lbs +0 -13
  415. data/bin/brightbox-servers +0 -13
  416. data/bin/brightbox-types +0 -13
  417. data/bin/brightbox-users +0 -13
  418. data/bin/brightbox-zones +0 -13
  419. data/lib/brightbox-cli/commands/config/client-default.rb +0 -26
@@ -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
@@ -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