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,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "list" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers list) }
10
+ let(:argv) { %w[servers list] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -19,7 +19,7 @@ describe "brightbox servers" do
19
19
 
20
20
  describe "lock" do
21
21
  context "when resource is known" do
22
- let(:argv) { %w(servers lock srv-12345) }
22
+ let(:argv) { %w[servers lock srv-12345] }
23
23
 
24
24
  before do
25
25
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -32,7 +32,7 @@ describe "brightbox servers" do
32
32
  end
33
33
 
34
34
  context "when resource is unknown" do
35
- let(:argv) { %w(servers lock srv-12345) }
35
+ let(:argv) { %w[servers lock srv-12345] }
36
36
 
37
37
  before do
38
38
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -46,7 +46,7 @@ describe "brightbox servers" do
46
46
 
47
47
  describe "unlock" do
48
48
  context "when resource is known" do
49
- let(:argv) { %w(servers unlock srv-12345) }
49
+ let(:argv) { %w[servers unlock srv-12345] }
50
50
 
51
51
  before do
52
52
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -59,7 +59,7 @@ describe "brightbox servers" do
59
59
  end
60
60
 
61
61
  context "when resource is unknown" do
62
- let(:argv) { %w(servers unlock srv-12345) }
62
+ let(:argv) { %w[servers unlock srv-12345] }
63
63
 
64
64
  before do
65
65
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -1,7 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
6
5
  let(:stdout) { output.stdout }
7
6
  let(:stderr) { output.stderr }
@@ -20,7 +19,7 @@ describe "brightbox servers" do
20
19
 
21
20
  describe "reboot" do
22
21
  context "when resource is known" do
23
- let(:argv) { %w(servers reboot srv-12345) }
22
+ let(:argv) { %w[servers reboot srv-12345] }
24
23
 
25
24
  before do
26
25
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -33,7 +32,7 @@ describe "brightbox servers" do
33
32
  end
34
33
 
35
34
  context "when resource is unknown" do
36
- let(:argv) { %w(servers reboot srv-12345) }
35
+ let(:argv) { %w[servers reboot srv-12345] }
37
36
 
38
37
  before do
39
38
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -45,7 +44,7 @@ describe "brightbox servers" do
45
44
  end
46
45
 
47
46
  context "when no arguments are passed" do
48
- let(:argv) { %w(servers reboot) }
47
+ let(:argv) { %w[servers reboot] }
49
48
 
50
49
  it "outputs error to STDERR" do
51
50
  expect(stderr).to match("ERROR: You must specify servers to reboot")
@@ -1,7 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
6
5
  let(:stdout) { output.stdout }
7
6
  let(:stderr) { output.stderr }
@@ -20,7 +19,7 @@ describe "brightbox servers" do
20
19
 
21
20
  describe "reset" do
22
21
  context "when resource is known" do
23
- let(:argv) { %w(servers reset srv-12345) }
22
+ let(:argv) { %w[servers reset srv-12345] }
24
23
 
25
24
  before do
26
25
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -33,7 +32,7 @@ describe "brightbox servers" do
33
32
  end
34
33
 
35
34
  context "when resource is unknown" do
36
- let(:argv) { %w(servers reset srv-12345) }
35
+ let(:argv) { %w[servers reset srv-12345] }
37
36
 
38
37
  before do
39
38
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -45,7 +44,7 @@ describe "brightbox servers" do
45
44
  end
46
45
 
47
46
  context "when no arguments are passed" do
48
- let(:argv) { %w(servers reset) }
47
+ let(:argv) { %w[servers reset] }
49
48
 
50
49
  it "outputs error to STDERR" do
51
50
  expect(stderr).to match("ERROR: You must specify servers to reset")
@@ -1,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "show" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers show) }
10
+ let(:argv) { %w[servers show] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -1,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "shutdown" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers shutdown) }
10
+ let(:argv) { %w[servers shutdown] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -1,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "snapshot" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers snapshot) }
10
+ let(:argv) { %w[servers snapshot] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -1,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "start" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers start) }
10
+ let(:argv) { %w[servers start] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -1,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "stop" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers stop) }
10
+ let(:argv) { %w[servers stop] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -1,14 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe "brightbox servers" do
4
-
5
4
  describe "update" do
6
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
7
6
  let(:stdout) { output.stdout }
8
7
  let(:stderr) { output.stderr }
9
8
 
10
9
  context "" do
11
- let(:argv) { %w(servers update) }
10
+ let(:argv) { %w[servers update] }
12
11
 
13
12
  it "does not error" do
14
13
  expect { output }.to_not raise_error
@@ -6,154 +6,137 @@ describe "brightbox sql instances" do
6
6
  let(:stdout) { output.stdout }
7
7
  let(:stderr) { output.stderr }
8
8
 
9
+ let(:sql_instance) { Brightbox::DatabaseServer.get(new_id) }
10
+ let(:new_id) { stdout.match(/id: (.*?)\n/)[1] }
11
+
9
12
  before do
10
- config = config_from_contents(USER_APP_CONFIG_CONTENTS)
13
+ config_from_contents(API_CLIENT_CONFIG_CONTENTS)
14
+ Brightbox.config.reauthenticate
15
+ end
11
16
 
12
- # Setup in the VCR recordings
13
- cache_access_token(config, "f83da712e6299cda953513ec07f7a754f747d727")
17
+ after do
18
+ sql_instance.wait_for { ready? }
19
+ sql_instance.destroy
14
20
  end
15
21
 
16
22
  context "without arguments", vcr: true do
17
- let(:argv) { %w(sql instances create) }
18
- let(:expected_password) { "477wwwj48yifrnuk" }
23
+ let(:argv) { %w[sql instances create] }
19
24
 
20
25
  it "reports the new admin username" do
21
- expect(stdout).to include("admin_username: admin")
26
+ username = sql_instance.admin_username
27
+ expect(stdout).to include("admin_username: #{username}")
22
28
  end
23
29
 
24
30
  it "reports the new admin password" do
31
+ expected_password = sql_instance.admin_password
25
32
  expect(stdout).to include("admin_password: #{expected_password}")
26
33
  end
27
34
  end
28
35
 
29
36
  context "--allow-access=10.0.0.0", vcr: true do
30
- let(:argv) { %w(sql instances create --allow-access=10.0.0.0) }
37
+ let(:argv) { %w[sql instances create --allow-access=10.0.0.0] }
31
38
  let(:expected_args) { { :allow_access => ["10.0.0.0"] } }
32
39
 
33
40
  it "correctly sends API parameters" do
34
41
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
35
- expect(stderr).to eql("")
42
+ expect(stderr).to eq("")
36
43
  end
37
44
  end
38
45
 
39
46
  context "--allow-access=srv-12345,grp-12345", vcr: true do
40
- let(:argv) { %w(sql instances create --allow-access srv-12345,grp-12345) }
41
- let(:expected_args) { { :allow_access => %w(srv-12345 grp-12345) } }
47
+ let(:argv) { ["sql", "instances", "create", "--allow-access", "#{server.id},#{group.id}"] }
48
+ let(:expected_args) { { :allow_access => [server.id, group.id] } }
49
+ let(:group) { Brightbox::ServerGroup.all.first }
50
+ let(:server) { Brightbox::Server.create flavor_id: "2gb.nbs", image_id: "img-linux" }
51
+
52
+ before do
53
+ server.fog_model.wait_for { ready? }
54
+ end
42
55
 
43
56
  it "correctly sends API parameters" do
44
57
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
45
- expect(stderr).to eql("")
58
+ expect(stderr).to eq("")
59
+ end
60
+
61
+ after do
62
+ server.destroy
46
63
  end
47
64
  end
48
65
 
49
66
  context "--engine=mysql", vcr: true do
50
- let(:argv) { %w(sql instances create --engine=mysql) }
67
+ let(:argv) { %w[sql instances create --engine=mysql] }
51
68
  let(:expected_args) { { :database_engine => "mysql" } }
52
69
 
53
70
  it "correctly sends API parameters" do
54
71
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
55
- expect(stderr).to eql("")
72
+ expect(stderr).to eq("")
73
+ expect(stdout).to include("version: 8.0")
56
74
  end
57
75
  end
58
76
 
59
- context "--engine=mysql --engine-version=5.6", vcr: true do
60
- let(:argv) { %w(sql instances create --engine=mysql --engine-version=5.6) }
61
- let(:expected_args) { { :database_engine => "mysql", :database_version => "5.6" } }
77
+ context "--engine=mysql --engine-version=8.0", vcr: true do
78
+ let(:argv) { %w[sql instances create --engine=mysql --engine-version=8.0] }
79
+ let(:expected_args) { { :database_engine => "mysql", :database_version => "8.0" } }
62
80
 
63
81
  it "correctly sends API parameters" do
64
82
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
65
- expect(stderr).to eql("")
83
+ expect(stderr).to eq("")
84
+ expect(stdout).to include("version: 8.0")
66
85
  end
67
86
  end
68
87
 
69
- context "--maintenance-weekday=5 --maintenance_hour=11" do
70
- let(:argv) { %w(sql instances create --maintenance-weekday=5 --maintenance-hour=11) }
88
+ context "--maintenance-weekday=5 --maintenance_hour=11", vcr: true do
89
+ let(:argv) { %w[sql instances create --maintenance-weekday=5 --maintenance-hour=11] }
71
90
  let(:expected_args) { { :maintenance_weekday => "5", :maintenance_hour => "11" } }
72
91
 
73
- before do
74
- stub_request(:post, "http://api.brightbox.dev/token").to_return(
75
- :status => 200,
76
- :body => '{"access_token":"44320b29286077c44f14c4efdfed70f63f4a8361","token_type":"Bearer","refresh_token":"759b2b28c228948a0ba5d07a89f39f9e268a95c0","scope":"infrastructure orbit","expires_in":7200}')
77
-
78
- stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
79
- .with(:body => "{\"name\":null,\"description\":null,\"maintenance_weekday\":\"5\",\"maintenance_hour\":\"11\"}")
80
- end
81
-
82
92
  it "correctly sends API parameters" do
83
93
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
84
- expect(stderr).to eql("")
94
+ expect(stderr).to eq("")
85
95
  end
86
96
  end
87
97
 
88
- context "--maintenance-weekday=thursday" do
89
- let(:argv) { %w(sql instances create --maintenance-weekday=thursday) }
98
+ context "--maintenance-weekday=thursday", vcr: true do
99
+ let(:argv) { %w[sql instances create --maintenance-weekday=thursday] }
90
100
  let(:expected_args) { { :maintenance_weekday => "4" } }
91
101
 
92
- before do
93
- stub_request(:post, "http://api.brightbox.dev/token").to_return(
94
- :status => 200,
95
- :body => '{"access_token":"44320b29286077c44f14c4efdfed70f63f4a8361","token_type":"Bearer","refresh_token":"759b2b28c228948a0ba5d07a89f39f9e268a95c0","scope":"infrastructure orbit","expires_in":7200}')
96
-
97
- stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
98
- .with(:body => "{\"name\":null,\"description\":null,\"maintenance_weekday\":\"4\",\"maintenance_hour\":null}")
99
- end
100
-
101
102
  it "correctly sends API parameters" do
102
103
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
103
- expect(stderr).to eql("")
104
+ expect(stderr).to eq("")
104
105
  end
105
106
  end
106
107
 
107
- context "--snapshot=dbi-1493j" do
108
- let(:argv) { ["sql", "instances", "create", "--snapshot=dbi-1493j"] }
109
- let(:expected_args) { { :snapshot_id => "dbi-1493j" } }
108
+ context "--snapshot=dbi-12345", vcr: true do
109
+ let(:argv) { ["sql", "instances", "create", "--snapshot=#{sql_snapshot.id}"] }
110
+ let(:expected_args) { { :snapshot_id => sql_snapshot.id } }
111
+ let(:source) { Brightbox::DatabaseServer.create({}) }
112
+ let(:sql_snapshot) { source.snapshot(true) }
110
113
 
111
- let(:json_response) do
112
- <<-EOS
113
- {
114
- "id":"dbs-12345"
115
- }
116
- EOS
114
+ before do
115
+ source.fog_model.wait_for { ready? }
116
+ sql_snapshot.wait_for { ready? }
117
117
  end
118
118
 
119
- before do
120
- stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
121
- .with(:headers => { "Content-Type" => "application/json" },
122
- :body => hash_including("snapshot" => "dbi-1493j"))
123
- .and_return(:status => 202, :body => json_response)
119
+ after do
120
+ source.destroy
121
+ sql_snapshot.destroy
124
122
  end
125
123
 
126
124
  it "includes schedule fields in response" do
127
125
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
128
- expect(stdout).to include("id: dbs-12345")
129
- expect(stderr).to eql("")
126
+ expect(stdout).to include("id: #{sql_instance.id}")
127
+ expect(stderr).to eq("")
130
128
  end
131
129
  end
132
130
 
133
- context "--snapshots-schedule='0 12 * * 4'" do
131
+ context "--snapshots-schedule='0 12 * * 4'", vcr: true do
134
132
  let(:argv) { ["sql", "instances", "create", "--snapshots-schedule=0 12 * * 4"] }
135
133
  let(:expected_args) { { :snapshots_schedule => "0 12 * * 4" } }
136
134
 
137
- let(:json_response) do
138
- <<-EOS
139
- {
140
- "id":"dbs-12345",
141
- "snapshots_schedule":"0 12 * * 4",
142
- "snapshots_schedule_next_at":"2016-07-07T12:00:00Z"
143
- }
144
- EOS
145
- end
146
-
147
- before do
148
- stub_request(:post, "http://api.brightbox.dev/1.0/database_servers?account_id=acc-12345")
149
- .and_return(:status => 202, :body => json_response)
150
- end
151
-
152
135
  it "includes schedule fields in response" do
153
136
  expect(Brightbox::DatabaseServer).to receive(:create).with(expected_args).and_call_original
154
137
  expect(stdout).to include("snapshots_schedule: 0 12 * * 4")
155
- expect(stdout).to include("snapshots_schedule_next_at: 2016-07-07T12:00Z")
156
- expect(stderr).to eql("")
138
+ expect(stdout).to match(/snapshots_schedule_next_at: 20\d{2}-\d{2}-\d{2}T12:\d{2}Z/)
139
+ expect(stderr).to eq("")
157
140
  end
158
141
  end
159
142
  end
@@ -19,7 +19,7 @@ describe "brightbox sql instances" do
19
19
 
20
20
  describe "lock" do
21
21
  context "when resource is known" do
22
- let(:argv) { %w(sql instances lock dbs-12345) }
22
+ let(:argv) { %w[sql instances lock dbs-12345] }
23
23
 
24
24
  before do
25
25
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -32,7 +32,7 @@ describe "brightbox sql instances" do
32
32
  end
33
33
 
34
34
  context "when resource is unknown" do
35
- let(:argv) { %w(sql instances lock dbs-12345) }
35
+ let(:argv) { %w[sql instances lock dbs-12345] }
36
36
 
37
37
  before do
38
38
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -46,7 +46,7 @@ describe "brightbox sql instances" do
46
46
 
47
47
  describe "unlock" do
48
48
  context "when resource is known" do
49
- let(:argv) { %w(sql instances unlock dbs-12345) }
49
+ let(:argv) { %w[sql instances unlock dbs-12345] }
50
50
 
51
51
  before do
52
52
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -59,7 +59,7 @@ describe "brightbox sql instances" do
59
59
  end
60
60
 
61
61
  context "when resource is unknown" do
62
- let(:argv) { %w(sql instances unlock dbs-12345) }
62
+ let(:argv) { %w[sql instances unlock dbs-12345] }
63
63
 
64
64
  before do
65
65
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "brghtbox sql instances" do
3
+ describe "brightbox sql instances" do
4
4
  describe "show" do
5
5
  let(:output) { FauxIO.new { Brightbox.run(argv) } }
6
6
  let(:stdout) { output.stdout }
@@ -12,14 +12,14 @@ describe "brghtbox sql instances" do
12
12
  end
13
13
 
14
14
  context "when id does not exist" do
15
- let(:argv) { %w(sql instances show dbs-12345) }
15
+ let(:argv) { %w[sql instances show dbs-12345] }
16
16
  let(:json_response) do
17
17
  "{\"error_name\":\"missing_resource\",\"errors\":[\"Resource not found using supplied identifier\"]}"
18
18
  end
19
19
 
20
20
  before do
21
- stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345").
22
- to_return(:status => 404, :body => json_response, :headers => { "Content-Type" => "" })
21
+ stub_request(:get, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
22
+ .to_return(:status => 404, :body => json_response, :headers => { "Content-Type" => "" })
23
23
  end
24
24
 
25
25
  it "reports error" do
@@ -29,7 +29,7 @@ describe "brghtbox sql instances" do
29
29
  end
30
30
 
31
31
  context "when id exists" do
32
- let(:argv) { %w(sql instances show dbs-12345) }
32
+ let(:argv) { %w[sql instances show dbs-12345] }
33
33
 
34
34
  let(:json_response) do
35
35
  <<-EOS
@@ -61,8 +61,8 @@ describe "brghtbox sql instances" do
61
61
  end
62
62
 
63
63
  before do
64
- stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345").
65
- to_return(:status => 200, :body => json_response, :headers => { "Content-Type" => "" })
64
+ stub_request(:get, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
65
+ .to_return(:status => 200, :body => json_response, :headers => { "Content-Type" => "" })
66
66
  end
67
67
 
68
68
  it "simplifies the maintenance window" do
@@ -14,7 +14,7 @@ describe "brightbox sql instances" do
14
14
  end
15
15
 
16
16
  context "when database server active", vcr: true do
17
- let(:argv) { %w(sql instances snapshot dbs-12345) }
17
+ let(:argv) { %w[sql instances snapshot dbs-12345] }
18
18
  let(:expected_args) { { :allow_access => ["10.0.0.0"] } }
19
19
 
20
20
  it "correctly sends API parameters" do
@@ -24,7 +24,7 @@ describe "brightbox sql instances" do
24
24
  end
25
25
 
26
26
  context "when database server can not be snapshotted", vcr: true do
27
- let(:argv) { %w(sql instances snapshot dbs-12345) }
27
+ let(:argv) { %w[sql instances snapshot dbs-12345] }
28
28
 
29
29
  it "reports an error to the user" do
30
30
  expect_any_instance_of(Brightbox::DatabaseServer).to receive(:snapshot).and_call_original
@@ -13,11 +13,11 @@ describe "brightbox sql instances" do
13
13
  end
14
14
 
15
15
  context "--maintenance-weekday=Monday" do
16
- let(:argv) { %w(sql instances update --maintenance-weekday=Monday dbs-12345) }
16
+ let(:argv) { %w[sql instances update --maintenance-weekday=Monday dbs-12345] }
17
17
  let(:expected_args) { { :maintenance_weekday => "1" } }
18
18
 
19
19
  before do
20
- stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
20
+ stub_request(:get, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
21
21
  .to_return(:status => 200, :body => '{"id":"dbs-12345","maintenance_weekday":0, "maintenance_hour":6}')
22
22
  .to_return(:status => 200,
23
23
  :body => '{
@@ -25,7 +25,7 @@ describe "brightbox sql instances" do
25
25
  "maintenance_weekday":1,
26
26
  "maintenance_hour":6}')
27
27
 
28
- stub_request(:put, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
28
+ stub_request(:put, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
29
29
  .with(:body => "{\"maintenance_weekday\":\"1\"}")
30
30
  end
31
31
 
@@ -41,11 +41,11 @@ describe "brightbox sql instances" do
41
41
  let(:expected_args) { { :snapshots_schedule => "0 12 * * 4" } }
42
42
 
43
43
  before do
44
- stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
44
+ stub_request(:get, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
45
45
  .to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":null,"snapshots_schedule_next_at":null}')
46
46
  .to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":"34 12 * * 4","snapshots_schedule_next_at":"2016-07-07T12:34:56Z"}')
47
47
 
48
- stub_request(:put, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
48
+ stub_request(:put, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
49
49
  .to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":"34 12 * * 4","snapshots_schedule_next_at":"2016-07-07T12:34:56Z"}')
50
50
  end
51
51
 
@@ -60,15 +60,15 @@ describe "brightbox sql instances" do
60
60
 
61
61
  context "--remove-snapshots-schedule" do
62
62
  let(:dbs) { Brightbox::DatabaseServer.find("dbs-12345") }
63
- let(:argv) { %w(sql instances update --remove-snapshots-schedule dbs-12345) }
63
+ let(:argv) { %w[sql instances update --remove-snapshots-schedule dbs-12345] }
64
64
  let(:expected_args) { { :snapshots_schedule => nil } }
65
65
 
66
66
  before do
67
- stub_request(:get, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
67
+ stub_request(:get, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
68
68
  .to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":"34 12 * * 4","snapshots_schedule_next_at":"2016-07-07T12:34:56Z"}')
69
69
  .to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":null,"snapshots_schedule_next_at":null}')
70
70
 
71
- stub_request(:put, "http://api.brightbox.dev/1.0/database_servers/dbs-12345?account_id=acc-12345")
71
+ stub_request(:put, "http://api.brightbox.localhost/1.0/database_servers/dbs-12345?account_id=acc-12345")
72
72
  .to_return(:status => 200, :body => '{"id":"dbs-12345","snapshots_schedule":null,"snapshots_schedule_next_at":null}')
73
73
  end
74
74
 
@@ -14,7 +14,7 @@ describe "brightbox sql snapshots" do
14
14
  end
15
15
 
16
16
  context "when resources are available", vcr: true do
17
- let(:argv) { %w(sql snapshots list) }
17
+ let(:argv) { %w[sql snapshots list] }
18
18
 
19
19
  it "does not output to stderr" do
20
20
  expect(stderr).to eql("")
@@ -19,7 +19,7 @@ describe "brightbox sql snapshots" do
19
19
 
20
20
  describe "lock" do
21
21
  context "when resource is known" do
22
- let(:argv) { %w(sql snapshots lock dbi-12345) }
22
+ let(:argv) { %w[sql snapshots lock dbi-12345] }
23
23
 
24
24
  before do
25
25
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -32,7 +32,7 @@ describe "brightbox sql snapshots" do
32
32
  end
33
33
 
34
34
  context "when resource is unknown" do
35
- let(:argv) { %w(sql snapshots lock dbi-12345) }
35
+ let(:argv) { %w[sql snapshots lock dbi-12345] }
36
36
 
37
37
  before do
38
38
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -46,7 +46,7 @@ describe "brightbox sql snapshots" do
46
46
 
47
47
  describe "unlock" do
48
48
  context "when resource is known" do
49
- let(:argv) { %w(sql snapshots unlock dbi-12345) }
49
+ let(:argv) { %w[sql snapshots unlock dbi-12345] }
50
50
 
51
51
  before do
52
52
  expect(resource_class).to receive(:find_or_call).with(resource_ids).and_return(results)
@@ -59,7 +59,7 @@ describe "brightbox sql snapshots" do
59
59
  end
60
60
 
61
61
  context "when resource is unknown" do
62
- let(:argv) { %w(sql snapshots unlock dbi-12345) }
62
+ let(:argv) { %w[sql snapshots unlock dbi-12345] }
63
63
 
64
64
  before do
65
65
  expect(resource_class).to receive(:find).with(resource_id).and_raise(Brightbox::Api::NotFound)
@@ -14,7 +14,7 @@ describe "brightbox sql snapshots" do
14
14
  end
15
15
 
16
16
  context "when resource exists", vcr: true do
17
- let(:argv) { %w(sql snapshots show dbi-12345) }
17
+ let(:argv) { %w[sql snapshots show dbi-12345] }
18
18
 
19
19
  it "does not output to stderr" do
20
20
  expect(stderr).to eql("")