brightbox-cli 3.2.0 → 4.0.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.
- checksums.yaml +4 -4
- data/.gitattributes +1 -0
- data/.github/workflows/ruby.yml +1 -1
- data/.gitignore +1 -1
- data/.rubocop.yml +70 -0
- data/CHANGELOG.md +71 -0
- data/Gemfile.lock +71 -42
- data/README +57 -33
- data/README.rdoc +1 -1
- data/brightbox-cli.gemspec +20 -33
- data/lib/brightbox-cli/accounts.rb +9 -11
- data/lib/brightbox-cli/api.rb +38 -36
- data/lib/brightbox-cli/cloud_ips.rb +8 -8
- data/lib/brightbox-cli/collaborating_account.rb +5 -5
- data/lib/brightbox-cli/collaboration.rb +1 -1
- data/lib/brightbox-cli/commands/accounts/{accept-invite.rb → accept_invite.rb} +2 -6
- data/lib/brightbox-cli/commands/accounts/default.rb +1 -2
- data/lib/brightbox-cli/commands/accounts/list.rb +6 -8
- data/lib/brightbox-cli/commands/accounts/remove.rb +2 -6
- data/lib/brightbox-cli/commands/accounts/{reset-ftp-password.rb → reset_ftp_password.rb} +6 -9
- data/lib/brightbox-cli/commands/accounts/show.rb +10 -13
- data/lib/brightbox-cli/commands/cloudips/create.rb +2 -5
- data/lib/brightbox-cli/commands/cloudips/destroy.rb +10 -14
- data/lib/brightbox-cli/commands/cloudips/list.rb +0 -2
- data/lib/brightbox-cli/commands/cloudips/map.rb +10 -13
- data/lib/brightbox-cli/commands/cloudips/show.rb +11 -14
- data/lib/brightbox-cli/commands/cloudips/unmap.rb +2 -4
- data/lib/brightbox-cli/commands/cloudips/update.rb +2 -4
- data/lib/brightbox-cli/commands/collaborations.rb +2 -3
- data/lib/brightbox-cli/commands/config/{client-add.rb → client_add.rb} +0 -3
- data/lib/brightbox-cli/commands/config/client_default.rb +18 -0
- data/lib/brightbox-cli/commands/config/{client-list.rb → client_list.rb} +1 -4
- data/lib/brightbox-cli/commands/config/{client-remove.rb → client_remove.rb} +0 -3
- data/lib/brightbox-cli/commands/config/{user-add.rb → user_add.rb} +1 -4
- data/lib/brightbox-cli/commands/firewall/{policies-apply.rb → policies_apply.rb} +2 -2
- data/lib/brightbox-cli/commands/firewall/{policies-create.rb → policies_create.rb} +2 -4
- data/lib/brightbox-cli/commands/firewall/{policies-destroy.rb → policies_destroy.rb} +0 -3
- data/lib/brightbox-cli/commands/firewall/{policies-list.rb → policies_list.rb} +0 -2
- data/lib/brightbox-cli/commands/firewall/{policies-remove.rb → policies_remove.rb} +2 -2
- data/lib/brightbox-cli/commands/firewall/{policies-show.rb → policies_show.rb} +6 -8
- data/lib/brightbox-cli/commands/firewall/{policies-update.rb → policies_update.rb} +2 -4
- data/lib/brightbox-cli/commands/firewall/{rules-create.rb → rules_create.rb} +6 -8
- data/lib/brightbox-cli/commands/firewall/{rules-destroy.rb → rules_destroy.rb} +0 -2
- data/lib/brightbox-cli/commands/firewall/{rules-list.rb → rules_list.rb} +0 -2
- data/lib/brightbox-cli/commands/firewall/{rules-show.rb → rules_show.rb} +7 -9
- data/lib/brightbox-cli/commands/firewall/{rules-update.rb → rules_update.rb} +7 -8
- data/lib/brightbox-cli/commands/groups/{add-server.rb → add_server.rb} +0 -2
- data/lib/brightbox-cli/commands/groups/create.rb +2 -3
- data/lib/brightbox-cli/commands/groups/destroy.rb +0 -2
- data/lib/brightbox-cli/commands/groups/list.rb +0 -1
- data/lib/brightbox-cli/commands/groups/move_servers.rb +2 -3
- data/lib/brightbox-cli/commands/groups/{remove-servers.rb → remove_servers.rb} +2 -4
- data/lib/brightbox-cli/commands/groups/show.rb +0 -2
- data/lib/brightbox-cli/commands/groups/update.rb +2 -3
- data/lib/brightbox-cli/commands/images/destroy.rb +0 -4
- data/lib/brightbox-cli/commands/images/list.rb +3 -5
- data/lib/brightbox-cli/commands/images/register.rb +9 -17
- data/lib/brightbox-cli/commands/images/show.rb +19 -20
- data/lib/brightbox-cli/commands/images/update.rb +12 -8
- data/lib/brightbox-cli/commands/lbs/{add-nodes.rb → add_nodes.rb} +0 -3
- data/lib/brightbox-cli/commands/lbs/create.rb +5 -7
- data/lib/brightbox-cli/commands/lbs/destroy.rb +0 -3
- data/lib/brightbox-cli/commands/lbs/list.rb +0 -1
- data/lib/brightbox-cli/commands/lbs/{remove-nodes.rb → remove_nodes.rb} +0 -3
- data/lib/brightbox-cli/commands/lbs/show.rb +20 -22
- data/lib/brightbox-cli/commands/lbs/update.rb +6 -9
- data/lib/brightbox-cli/commands/login.rb +13 -12
- data/lib/brightbox-cli/commands/servers/{activate-console.rb → activate_console.rb} +2 -5
- data/lib/brightbox-cli/commands/servers/create.rb +24 -25
- data/lib/brightbox-cli/commands/servers/destroy.rb +0 -3
- data/lib/brightbox-cli/commands/servers/list.rb +4 -5
- data/lib/brightbox-cli/commands/servers/show.rb +0 -2
- data/lib/brightbox-cli/commands/servers/shutdown.rb +0 -3
- data/lib/brightbox-cli/commands/servers/snapshot.rb +0 -4
- data/lib/brightbox-cli/commands/servers/start.rb +0 -4
- data/lib/brightbox-cli/commands/servers/stop.rb +0 -3
- data/lib/brightbox-cli/commands/servers/update.rb +5 -5
- data/lib/brightbox-cli/commands/sql/instances_create.rb +3 -6
- data/lib/brightbox-cli/commands/sql/instances_destroy.rb +0 -2
- data/lib/brightbox-cli/commands/sql/instances_list.rb +7 -9
- data/lib/brightbox-cli/commands/sql/instances_reset_password.rb +0 -1
- data/lib/brightbox-cli/commands/sql/instances_show.rb +0 -3
- data/lib/brightbox-cli/commands/sql/instances_snapshot.rb +0 -3
- data/lib/brightbox-cli/commands/sql/instances_update.rb +1 -3
- data/lib/brightbox-cli/commands/sql/snapshots_destroy.rb +0 -3
- data/lib/brightbox-cli/commands/sql/snapshots_list.rb +7 -9
- data/lib/brightbox-cli/commands/sql/snapshots_show.rb +12 -10
- data/lib/brightbox-cli/commands/sql/snapshots_update.rb +1 -3
- data/lib/brightbox-cli/commands/sql/types.rb +8 -15
- data/lib/brightbox-cli/commands/token.rb +0 -1
- data/lib/brightbox-cli/commands/types.rb +8 -14
- data/lib/brightbox-cli/commands/{user-collaborations.rb → user_collaborations.rb} +7 -8
- data/lib/brightbox-cli/commands/users/list.rb +0 -2
- data/lib/brightbox-cli/commands/users/show.rb +1 -3
- data/lib/brightbox-cli/commands/users/update.rb +3 -6
- data/lib/brightbox-cli/commands/zones.rb +7 -10
- data/lib/brightbox-cli/config/accounts.rb +18 -26
- data/lib/brightbox-cli/config/api_client.rb +12 -16
- data/lib/brightbox-cli/config/authentication_tokens.rb +39 -42
- data/lib/brightbox-cli/config/cache.rb +1 -0
- data/lib/brightbox-cli/config/clients.rb +8 -8
- data/lib/brightbox-cli/config/gpg_encrypted_passwords.rb +6 -8
- data/lib/brightbox-cli/config/password_helper.rb +33 -8
- data/lib/brightbox-cli/config/sections.rb +45 -29
- data/lib/brightbox-cli/config/two_factor_auth.rb +12 -11
- data/lib/brightbox-cli/config/two_factor_helper.rb +36 -0
- data/lib/brightbox-cli/config/user_application.rb +18 -18
- data/lib/brightbox-cli/config.rb +27 -23
- data/lib/brightbox-cli/connection_manager.rb +4 -2
- data/lib/brightbox-cli/database_server.rb +28 -29
- data/lib/brightbox-cli/database_snapshot.rb +1 -1
- data/lib/brightbox-cli/database_type.rb +6 -6
- data/lib/brightbox-cli/detailed_server.rb +43 -43
- data/lib/brightbox-cli/detailed_server_group.rb +1 -1
- data/lib/brightbox-cli/error_parser.rb +9 -9
- data/lib/brightbox-cli/firewall_policy.rb +2 -1
- data/lib/brightbox-cli/firewall_rule.rb +3 -3
- data/lib/brightbox-cli/firewall_rules.rb +3 -3
- data/lib/brightbox-cli/gli_global_hooks.rb +25 -27
- data/lib/brightbox-cli/images.rb +14 -12
- data/lib/brightbox-cli/load_balancers.rb +3 -6
- data/lib/brightbox-cli/logging.rb +14 -14
- data/lib/brightbox-cli/nilable_hash.rb +1 -1
- data/lib/brightbox-cli/ruby_core_ext.rb +3 -3
- data/lib/brightbox-cli/server_groups.rb +2 -2
- data/lib/brightbox-cli/servers.rb +6 -6
- data/lib/brightbox-cli/tables.rb +13 -15
- data/lib/brightbox-cli/types.rb +6 -6
- data/lib/brightbox-cli/user_collaboration.rb +5 -7
- data/lib/brightbox-cli/users.rb +1 -1
- data/lib/brightbox-cli/version.rb +1 -1
- data/lib/brightbox-cli/zones.rb +1 -1
- data/lib/brightbox_cli.rb +34 -33
- data/spec/brightbox_spec.rb +0 -1
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_a_collection_of_Accounts.yml +5 -5
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_resources_on_the_same_connection.yml +2 -2
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_a_collection_of_Accounts.yml +4 -4
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_resources_on_the_same_connection.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_config_exists_and_overwrite_duplicates_is_false/does_not_update_the_config_file.yml +12 -12
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_config_exists_and_overwrite_duplicates_is_true/does_not_update_the_config_file.yml +12 -12
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_changes_to_the_config_file.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_default_account.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_new_client_as_the_default.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_is_not_authenticated/does_not_raise_an_error.yml +8 -8
- data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_may_access_one_account/updates_the_setting.yml +8 -8
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_config_in_use_is_not_the_default/uses_correct_credentials.yml +1 -1
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_a_cached_refresh_token/caches_the_new_tokens.yml +1 -1
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_an_expired_refresh_token/caches_the_new_tokens.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/caches_the_new_tokens.yml +1 -1
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/prompts_user_to_retry_command.yml +1 -1
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_an_API_client_with_no_tokens/caches_a_new_access_token.yml +1 -1
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/does_not_alter_the_configuration.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/updates_access_token.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_altering_a_custom_option/updates_refresh_token.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/does_not_alter_the_configuration.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/updates_access_token.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_configured_with_custom_options/updates_refresh_token.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/does_not_alter_the_configuration.yml +9 -9
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/updates_access_token.yml +9 -9
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_logged_in_previously/updates_refresh_token.yml +9 -9
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_no_config_exists/creates_the_configuration.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_no_config_exists/refreshed_tokens.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_using_an_email_and_suffix/creates_the_configuration.yml +6 -6
- data/spec/cassettes/Brightbox_BBConfig_add_login/when_using_an_email_and_suffix/refreshed_tokens.yml +6 -6
- data/spec/cassettes/Brightbox_CloudIP/_find_all_/when_a_Cloud_IP_exists/returns_a_suitable.yml +15 -15
- data/spec/cassettes/Brightbox_FirewallPolicy/_apply_to/should_apply_firewall_policy.yml +14 -14
- data/spec/cassettes/Brightbox_FirewallPolicy/_create/should_create_firewall_policy.yml +14 -14
- data/spec/cassettes/Brightbox_FirewallPolicy/_destroy/should_destroy_firewall_policy.yml +16 -16
- data/spec/cassettes/Brightbox_FirewallPolicy/_find_all_/when_a_policy_exists/should_list_firewall_policy.yml +13 -13
- data/spec/cassettes/Brightbox_FirewallPolicy/_find_or_call/when_a_policy_exists/should_show_firewall_policy.yml +11 -11
- data/spec/cassettes/Brightbox_FirewallRule/_create/when_policy_exists/creates_the_rule_successfully.yml +14 -14
- data/spec/cassettes/Brightbox_FirewallRule/_destroy/when_rule_exists/destroys_a_rule.yml +12 -12
- data/spec/cassettes/Brightbox_FirewallRule/_find/when_rule_exists/can_display_the_result.yml +14 -14
- data/spec/cassettes/Brightbox_FirewallRule/_from_policy/when_policy_exists_with_a_rule/lists_all_rules.yml +19 -19
- data/spec/cassettes/Brightbox_Server/_destroy/when_server_exists/should_work.yml +12 -12
- data/spec/cassettes/Brightbox_Server/_find_all_/when_a_server_exists/should_print_server_list.yml +15 -15
- data/spec/cassettes/Brightbox_Server/_show/when_server_exists/shows_detailed_attributes_of_a_server.yml +18 -18
- data/spec/cassettes/Brightbox_Server/_shutdown/should_work.yml +18 -18
- data/spec/cassettes/Brightbox_Server/_start/should_work.yml +24 -24
- data/spec/cassettes/Brightbox_Server/_stop/should_work.yml +18 -18
- data/spec/cassettes/Brightbox_Server/_update/when_passing_new_group_membership/should_update_with_group.yml +22 -22
- data/spec/cassettes/Brightbox_ServerGroup/_find_all_/when_a_group_exists/list_server_groups.yml +13 -13
- data/spec/cassettes/Firewall_policies/update/when_the_policy_does_not_exist/prints_error_to_STDERR.yml +3 -3
- data/spec/cassettes/brightbox_accounts/list/_when_access_token_expired_/does_not_report_invalid_token_errors.yml +30 -30
- data/spec/cassettes/brightbox_accounts/list/_when_both_tokens_expired_/does_not_report_invalid_token_errors.yml +9 -9
- data/spec/cassettes/brightbox_accounts/list/_when_invalid_tokens_/does_not_report_invalid_token_errors.yml +9 -9
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/does_not_report_invalid_token_errors.yml +27 -27
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/reports_they_were_updated.yml +7 -7
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/does_not_report_invalid_token_errors.yml +7 -7
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/reports_unable_to_authenticate.yml +6 -6
- data/spec/cassettes/brightbox_accounts/list/does_not_error.yml +3 -3
- data/spec/cassettes/brightbox_cloudips/map/when_destination_is_a_server_ID/passes_the_interface_identifier_to_the_API.yml +12 -12
- data/spec/cassettes/brightbox_cloudips/map/when_destination_is_another_value/passes_the_identifier_to_the_API.yml +7 -7
- data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/does_not_error.yml +7 -7
- data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/sets_up_the_config.yml +7 -7
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_change_the_default_client.yml +7 -7
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_error.yml +7 -7
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +7 -7
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +7 -7
- data/spec/cassettes/brightbox_config/user_add/when_NO_config_file_on_disk/sets_up_the_config.yml +5 -5
- data/spec/cassettes/brightbox_config/user_add/when_a_default_client_is_already_set/does_not_change_the_default_client.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/does_not_error.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/sets_up_the_config.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/display_an_warning_about_preselected_default.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/does_not_error.yml +2 -2
- 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
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/sets_up_the_config.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/display_an_warning_about_preselected_default.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/does_not_error.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/sets_up_the_config.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/does_not_error.yml +2 -2
- 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
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/requests_access_tokens.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +5 -5
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_error.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_prompt_to_rerun_the_command.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/requests_access_tokens.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/sets_up_the_config.yml +3 -3
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/does_not_error.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/requests_access_tokens.yml +2 -2
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/sets_up_the_config.yml +2 -2
- data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_error.yml +6 -6
- data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/does_not_prompt_to_rerun_the_command.yml +6 -6
- data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/prompts_for_the_password.yml +6 -6
- data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/requests_access_tokens.yml +6 -6
- data/spec/cassettes/brightbox_login/when_alternative_client_credentials_are_given/sets_up_the_config.yml +6 -6
- data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/does_not_error.yml +6 -6
- data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/does_not_prompt_to_rerun_the_command.yml +6 -6
- data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/prompts_for_the_password.yml +6 -6
- data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/requests_access_tokens.yml +6 -6
- data/spec/cassettes/brightbox_login/when_custom_api/auth_URLs_are_given/sets_up_the_config.yml +6 -6
- data/spec/cassettes/brightbox_login/when_default_account_is_passed/does_not_error.yml +3 -3
- data/spec/cassettes/brightbox_login/when_default_account_is_passed/does_not_prompt_to_rerun_the_command.yml +3 -3
- data/spec/cassettes/brightbox_login/when_default_account_is_passed/prompts_for_the_password.yml +3 -3
- data/spec/cassettes/brightbox_login/when_default_account_is_passed/requests_access_tokens.yml +3 -3
- data/spec/cassettes/brightbox_login/when_default_account_is_passed/sets_up_the_config.yml +3 -3
- data/spec/cassettes/brightbox_login/when_no_config_is_present/does_not_error.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_config_is_present/does_not_prompt_to_rerun_the_command.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_config_is_present/requests_access_tokens.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_config_is_present/sets_up_the_config.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_password_is_given/does_not_error.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_password_is_given/does_not_prompt_to_rerun_the_command.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_password_is_given/prompts_for_the_password.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_password_is_given/requests_access_tokens.yml +6 -6
- data/spec/cassettes/brightbox_login/when_no_password_is_given/sets_up_the_config.yml +6 -6
- data/spec/cassettes/brightbox_sql_instances/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml +313 -26
- data/spec/cassettes/brightbox_sql_instances/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml +1204 -38
- data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql/correctly_sends_API_parameters.yml +596 -26
- data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml +63 -9
- data/spec/cassettes/brightbox_sql_instances/create/--engine_mysql_--engine-version_8_0/correctly_sends_API_parameters.yml +393 -0
- data/spec/cassettes/brightbox_sql_instances/create/--maintenance-weekday_5_--maintenance_hour_11/correctly_sends_API_parameters.yml +393 -0
- data/spec/cassettes/brightbox_sql_instances/create/--maintenance-weekday_thursday/correctly_sends_API_parameters.yml +393 -0
- data/spec/cassettes/brightbox_sql_instances/create/--snapshot_dbi-12345/includes_schedule_fields_in_response.yml +1466 -0
- data/spec/cassettes/brightbox_sql_instances/create/--snapshots-schedule_0_12_4_/includes_schedule_fields_in_response.yml +342 -0
- data/spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_password.yml +541 -26
- data/spec/cassettes/brightbox_sql_instances/create/without_arguments/reports_the_new_admin_username.yml +484 -26
- data/spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_active/correctly_sends_API_parameters.yml +4 -4
- data/spec/cassettes/brightbox_sql_instances/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml +2 -2
- data/spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml +2 -2
- data/spec/cassettes/brightbox_sql_snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml +2 -2
- data/spec/cassettes/brightbox_sql_snapshots/show/when_resource_exists/does_not_output_to_stderr.yml +2 -2
- data/spec/commands/accounts/default_spec.rb +1 -2
- data/spec/commands/accounts/list_spec.rb +7 -8
- data/spec/commands/accounts/reset_ftp_password_spec.rb +1 -2
- data/spec/commands/accounts/show_spec.rb +1 -2
- data/spec/commands/cloudips/create_spec.rb +1 -2
- data/spec/commands/cloudips/destroy_spec.rb +1 -2
- data/spec/commands/cloudips/list_spec.rb +1 -2
- data/spec/commands/cloudips/map_spec.rb +2 -3
- data/spec/commands/cloudips/show_spec.rb +1 -2
- data/spec/commands/cloudips/unmap_spec.rb +1 -2
- data/spec/commands/cloudips/update_spec.rb +7 -8
- data/spec/commands/config/client_add_spec.rb +2 -3
- data/spec/commands/config/client_default_spec.rb +1 -2
- data/spec/commands/config/client_list_spec.rb +1 -2
- data/spec/commands/config/client_remove_spec.rb +1 -2
- data/spec/commands/config/user_add_spec.rb +3 -4
- data/spec/commands/firewall_policies/update_spec.rb +3 -3
- data/spec/commands/groups/add_server_spec.rb +1 -2
- data/spec/commands/groups/create_spec.rb +1 -2
- data/spec/commands/groups/destroy_spec.rb +1 -2
- data/spec/commands/groups/list_spec.rb +1 -2
- data/spec/commands/groups/move_servers_spec.rb +1 -2
- data/spec/commands/groups/remove_servers_spec.rb +1 -2
- data/spec/commands/groups/show_spec.rb +1 -2
- data/spec/commands/groups/update_spec.rb +1 -2
- data/spec/commands/images/destroy_spec.rb +1 -2
- data/spec/commands/images/list_spec.rb +62 -63
- data/spec/commands/images/locking_spec.rb +4 -4
- data/spec/commands/images/register_spec.rb +89 -3
- data/spec/commands/images/show_spec.rb +56 -4
- data/spec/commands/images/update_spec.rb +53 -3
- data/spec/commands/lbs/add_nodes_spec.rb +1 -2
- data/spec/commands/lbs/create_spec.rb +2 -3
- data/spec/commands/lbs/destroy_spec.rb +1 -2
- data/spec/commands/lbs/list_spec.rb +1 -2
- data/spec/commands/lbs/locking_spec.rb +4 -4
- data/spec/commands/lbs/remove_nodes_spec.rb +1 -2
- data/spec/commands/lbs/show_spec.rb +1 -2
- data/spec/commands/lbs/update_spec.rb +3 -4
- data/spec/commands/login_spec.rb +134 -30
- data/spec/commands/policies/apply_spec.rb +1 -2
- data/spec/commands/policies/create_spec.rb +1 -2
- data/spec/commands/policies/destroy_spec.rb +1 -2
- data/spec/commands/policies/list_spec.rb +1 -2
- data/spec/commands/policies/remove_spec.rb +1 -2
- data/spec/commands/policies/show_spec.rb +1 -2
- data/spec/commands/policies/update_spec.rb +1 -2
- data/spec/commands/rules/create_spec.rb +1 -2
- data/spec/commands/rules/destroy_spec.rb +1 -2
- data/spec/commands/rules/list_spec.rb +1 -2
- data/spec/commands/rules/show_spec.rb +1 -2
- data/spec/commands/rules/update_spec.rb +1 -2
- data/spec/commands/servers/activate_console_spec.rb +1 -2
- data/spec/commands/servers/create_spec.rb +10 -10
- data/spec/commands/servers/destroy_spec.rb +1 -2
- data/spec/commands/servers/list_spec.rb +1 -2
- data/spec/commands/servers/locking_spec.rb +4 -4
- data/spec/commands/servers/reboot_spec.rb +3 -4
- data/spec/commands/servers/reset_spec.rb +3 -4
- data/spec/commands/servers/show_spec.rb +1 -2
- data/spec/commands/servers/shutdown_spec.rb +1 -2
- data/spec/commands/servers/snapshot_spec.rb +1 -2
- data/spec/commands/servers/start_spec.rb +1 -2
- data/spec/commands/servers/stop_spec.rb +1 -2
- data/spec/commands/servers/update_spec.rb +1 -2
- data/spec/commands/sql/instances/create_spec.rb +58 -75
- data/spec/commands/sql/instances/locking_spec.rb +4 -4
- data/spec/commands/sql/instances/show_spec.rb +7 -7
- data/spec/commands/sql/instances/snapshot_spec.rb +2 -2
- data/spec/commands/sql/instances/update_spec.rb +8 -8
- data/spec/commands/sql/snapshots/list_spec.rb +1 -1
- data/spec/commands/sql/snapshots/locking_spec.rb +4 -4
- data/spec/commands/sql/snapshots/show_spec.rb +1 -1
- data/spec/commands/sql/types/list_spec.rb +1 -2
- data/spec/commands/types/list_spec.rb +1 -2
- data/spec/commands/users/list_spec.rb +1 -2
- data/spec/commands/users/show_spec.rb +1 -2
- data/spec/commands/users/update_spec.rb +1 -2
- data/spec/commands/zones/list_spec.rb +1 -2
- data/spec/configs/api_client.ini +1 -1
- data/spec/configs/user_app.ini +2 -2
- data/spec/spec_helper.rb +16 -3
- data/spec/support/authentication_helpers.rb +98 -0
- data/spec/support/config_helpers.rb +2 -4
- data/spec/support/password_prompt_helpers.rb +22 -1
- data/spec/support/server_helper.rb +5 -5
- data/spec/support/tmp_config.rb +1 -1
- data/spec/support/token_helpers.rb +2 -2
- data/spec/support/vcr.rb +3 -22
- data/spec/unit/brightbox/api/created_on_spec.rb +2 -2
- data/spec/unit/brightbox/api/fog_model_spec.rb +13 -13
- data/spec/unit/brightbox/api/klass_name_spec.rb +0 -1
- data/spec/unit/brightbox/api/method_missing_spec.rb +64 -0
- data/spec/unit/brightbox/api/require_account_spec.rb +0 -1
- data/spec/unit/brightbox/api/respond_to_spec.rb +71 -0
- data/spec/unit/brightbox/bb_config/access_token_filename_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/account_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/add_login_spec.rb +27 -28
- data/spec/unit/brightbox/bb_config/add_section_spec.rb +1 -2
- data/spec/unit/brightbox/bb_config/clear_default_client_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/client_id_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/client_name_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/config_directory_exists_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/config_directory_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/config_spec.rb +2 -3
- data/spec/unit/brightbox/bb_config/default_account_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/default_client_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/delete_section_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/find_or_set_default_account_spec.rb +4 -4
- data/spec/unit/brightbox/bb_config/refresh_token_filename_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/renew_tokens_spec.rb +3 -4
- data/spec/unit/brightbox/bb_config/save_default_account_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/save_spec.rb +0 -1
- data/spec/unit/brightbox/bb_config/section_names_spec.rb +1 -1
- data/spec/unit/brightbox/bb_config/to_fog_spec.rb +2 -2
- data/spec/unit/brightbox/collaborating_account/to_row_spec.rb +3 -3
- data/spec/unit/brightbox/config/api_client/to_fog_spec.rb +8 -8
- data/spec/unit/brightbox/config/api_client/valid_spec.rb +4 -4
- data/spec/unit/brightbox/config/discover_two_factor_pin_spec.rb +87 -0
- data/spec/unit/brightbox/config/section_name_deduplicator_spec.rb +1 -1
- data/spec/unit/brightbox/config/user_application/to_fog_spec.rb +10 -10
- data/spec/unit/brightbox/config/user_application/valid_spec.rb +3 -3
- data/spec/unit/brightbox/connection_manager/fetch_connection_spec.rb +1 -1
- data/spec/unit/brightbox/database_server/clean_arguments_spec.rb +1 -2
- data/spec/unit/brightbox/database_server/maintenance_window_spec.rb +0 -1
- data/spec/unit/brightbox/error_parser/pretty_print_spec.rb +0 -1
- data/spec/unit/brightbox/firewall_policy/apply_to_spec.rb +0 -1
- data/spec/unit/brightbox/firewall_policy/create_spec.rb +0 -1
- data/spec/unit/brightbox/firewall_policy/find_or_call_spec.rb +0 -1
- data/spec/unit/brightbox/firewall_policy/find_spec.rb +0 -1
- data/spec/unit/brightbox/firewall_rule/find_spec.rb +9 -9
- data/spec/unit/brightbox/firewall_rule/from_policy_spec.rb +4 -4
- data/spec/unit/brightbox/legacy/args_adjuster_spec.rb +20 -21
- data/spec/unit/brightbox/server/create_spec.rb +1 -2
- data/spec/unit/brightbox/server/start_spec.rb +2 -2
- data/spec/unit/brightbox/server/update_spec.rb +0 -1
- data/spec/unit/brightbox/user_collaboration/remove_spec.rb +0 -1
- data/spec/unit/nilable_hash_spec.rb +5 -5
- data/spec/unit/ruby_core_ext_spec.rb +3 -4
- data/spec/unit/temporary_home_spec.rb +1 -1
- data/spec/unit/tmp_config_spec.rb +0 -1
- metadata +132 -100
- data/.travis.yml +0 -8
- data/bin/brightbox-accounts +0 -13
- data/bin/brightbox-cloudips +0 -13
- data/bin/brightbox-config +0 -13
- data/bin/brightbox-firewall-policies +0 -13
- data/bin/brightbox-firewall-rules +0 -13
- data/bin/brightbox-groups +0 -13
- data/bin/brightbox-images +0 -13
- data/bin/brightbox-lbs +0 -13
- data/bin/brightbox-servers +0 -13
- data/bin/brightbox-types +0 -13
- data/bin/brightbox-users +0 -13
- data/bin/brightbox-zones +0 -13
- data/lib/brightbox-cli/commands/config/client-default.rb +0 -26
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cf8d230d121ac70d4971ed2acf19776ed75bac9256d4f4ea7d980af8e563350a
|
|
4
|
+
data.tar.gz: feb53ae71fe302c76fcbe2f6b4e1e67723b64d706266ed3db5531195df9ec167
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c5325d637d559f620a9b5a4cff4157aa67f6da2a802329c59d81270a429958afbf5e7d9f982d59d99786f099931b64bd1f50feedd123e6221371580234ac8986
|
|
7
|
+
data.tar.gz: 97431207227f81834213a4ab61c6d77d78f526ba4ec1a1885975c4169299cb4f88c323197984391ffed000feee9523b0a4aabbc7075fc15fe8389943400cb8d9
|
data/.gitattributes
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
spec/cassettes/**/*.yml linguist-generated
|
data/.github/workflows/ruby.yml
CHANGED
data/.gitignore
CHANGED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
AllCops:
|
|
2
|
+
NewCops: enable
|
|
3
|
+
Exclude:
|
|
4
|
+
- bin/*
|
|
5
|
+
- lib/brightbox-cli/vendor/**/*
|
|
6
|
+
- vendor/**/*
|
|
7
|
+
TargetRubyVersion: 2.5
|
|
8
|
+
|
|
9
|
+
Layout/HeredocIndentation:
|
|
10
|
+
Enabled: true
|
|
11
|
+
|
|
12
|
+
Layout/LineLength:
|
|
13
|
+
Enabled: false
|
|
14
|
+
Max: 100
|
|
15
|
+
|
|
16
|
+
Lint/SuppressedException:
|
|
17
|
+
Enabled: false
|
|
18
|
+
|
|
19
|
+
Metrics/AbcSize:
|
|
20
|
+
Enabled: false
|
|
21
|
+
|
|
22
|
+
Metrics/BlockLength:
|
|
23
|
+
Enabled: false
|
|
24
|
+
|
|
25
|
+
Metrics/ClassLength:
|
|
26
|
+
Enabled: false
|
|
27
|
+
|
|
28
|
+
Metrics/CyclomaticComplexity:
|
|
29
|
+
Enabled: false
|
|
30
|
+
|
|
31
|
+
Metrics/MethodLength:
|
|
32
|
+
Enabled: false
|
|
33
|
+
|
|
34
|
+
Metrics/ModuleLength:
|
|
35
|
+
Enabled: false
|
|
36
|
+
|
|
37
|
+
Metrics/PerceivedComplexity:
|
|
38
|
+
Enabled: false
|
|
39
|
+
|
|
40
|
+
Naming/HeredocDelimiterNaming:
|
|
41
|
+
Enabled: false
|
|
42
|
+
|
|
43
|
+
Style/Documentation:
|
|
44
|
+
Enabled: false
|
|
45
|
+
|
|
46
|
+
Style/Encoding:
|
|
47
|
+
Enabled: false
|
|
48
|
+
|
|
49
|
+
Style/FrozenStringLiteralComment:
|
|
50
|
+
Enabled: false
|
|
51
|
+
|
|
52
|
+
Style/HashSyntax:
|
|
53
|
+
Enabled: true
|
|
54
|
+
EnforcedStyle: no_mixed_keys
|
|
55
|
+
|
|
56
|
+
Style/GlobalVars:
|
|
57
|
+
Enabled: false # It's horrid, there's so many
|
|
58
|
+
|
|
59
|
+
Style/IfUnlessModifier:
|
|
60
|
+
Enabled: false
|
|
61
|
+
|
|
62
|
+
Style/SignalException:
|
|
63
|
+
# Valid values are: semantic, only_raise and only_fail
|
|
64
|
+
EnforcedStyle: only_raise
|
|
65
|
+
|
|
66
|
+
Style/SingleLineMethods:
|
|
67
|
+
Enabled: false
|
|
68
|
+
|
|
69
|
+
Style/StringLiterals:
|
|
70
|
+
EnforcedStyle: double_quotes
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,74 @@
|
|
|
1
|
+
### v4.0.0 / 2022-08-01
|
|
2
|
+
|
|
3
|
+
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v3.3.0...v4.0.0)
|
|
4
|
+
|
|
5
|
+
Backwards incompatible changes:
|
|
6
|
+
|
|
7
|
+
* Drop support for Ruby versions older than 2.5
|
|
8
|
+
* Update `Gemfile.lock` to use Bundler 2.1.4
|
|
9
|
+
* Remove hypenated versions of sub commands. For example `brightbox-servers`
|
|
10
|
+
wrapping `brightbox servers`.
|
|
11
|
+
|
|
12
|
+
Changes:
|
|
13
|
+
|
|
14
|
+
* Improved Two Factor Authentication (2FA) support resulting in it working
|
|
15
|
+
automatically without configuration prompting when required. The `two_factor`
|
|
16
|
+
configuration setting is now ignored
|
|
17
|
+
* The `brightbox login` command will now work when 2FA is enabled for a user
|
|
18
|
+
* Adds Ruby 3.1 and 3.2 (preview) to testing matrix
|
|
19
|
+
* Update `fog-brightbox` to `v1.7.0`
|
|
20
|
+
* Removed references to `Fixnum` from code and dependencies to allow
|
|
21
|
+
testing of Ruby 3.2 support
|
|
22
|
+
* Updates `webmock` from 1.21.0 to 3.14.0
|
|
23
|
+
* Removes `rubyforge` reference from gemspec to remove deprecation warning
|
|
24
|
+
* Remove post install message from gemspec
|
|
25
|
+
* Update `gli` to latest version v2.21.0 to clear some deprecations seen under
|
|
26
|
+
later Ruby versions
|
|
27
|
+
* Update development gems to ensure up to date
|
|
28
|
+
* Change `client_id` logging level from info to debug
|
|
29
|
+
* Setup Rubocop to help improve code quality/consistency
|
|
30
|
+
* Updated code based on Rubocop reports resulting in many changes
|
|
31
|
+
* Pin `dry-inflector` to v0.2.0 to prevent issues with Ruby =< 2.5
|
|
32
|
+
* Add support for `min-ram` to `brightbox images` commands
|
|
33
|
+
* Update authors (and emails) in gemspec
|
|
34
|
+
|
|
35
|
+
Bug fixes:
|
|
36
|
+
|
|
37
|
+
* Implement `Brightbox::Api#respond_to_missing?` to avoid issues when
|
|
38
|
+
delegating made `#respond_to?` raise an error
|
|
39
|
+
* `brightbox login` no longer attempts (and fails) to download accounts when
|
|
40
|
+
authentication has failed
|
|
41
|
+
|
|
42
|
+
Testing:
|
|
43
|
+
|
|
44
|
+
* Updated testing/development gems
|
|
45
|
+
* Update VCR to latest release v2.9.3
|
|
46
|
+
* Remove VCR identifier sanitisation as temp dev instance are used and
|
|
47
|
+
squashing IDs cause bug when chain/multiple requests combined
|
|
48
|
+
* RSpec is configured to allow re-runs
|
|
49
|
+
* Timeout testing is dropped to 10s
|
|
50
|
+
* Updated `.dev` TLD used in testing to `.localhost` to avoid problems when the
|
|
51
|
+
original was commercialised such as local DNS blocked by browsers.
|
|
52
|
+
|
|
53
|
+
### v3.3.0 / 2021-09-17
|
|
54
|
+
|
|
55
|
+
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v3.2.0...v3.3.0)
|
|
56
|
+
|
|
57
|
+
Changes:
|
|
58
|
+
|
|
59
|
+
* Update `fog-brightbox` to v1.4.0` (allowing Ruby 3.0 support)
|
|
60
|
+
* Added support for getting 2FA from helper
|
|
61
|
+
* Added missing `sql snapshot` fields
|
|
62
|
+
* Infrastructure changes to test on more versions of Ruby
|
|
63
|
+
* Added GitHub actions support for CI testing.
|
|
64
|
+
* Removed Travis CI support.
|
|
65
|
+
|
|
66
|
+
Bug fixes:
|
|
67
|
+
|
|
68
|
+
* Updates `crack` gem to switch from `safe_yaml` to `rexml`
|
|
69
|
+
* Bump addressable from 2.3.8 to 2.8.0. (fixing ReDoS vulnerability)
|
|
70
|
+
* Bump rexml from 3.2.4 to 3.2.5 (fixing round-trip vulnerability bugs)
|
|
71
|
+
|
|
1
72
|
### v3.2.0 / 2020-11-26
|
|
2
73
|
|
|
3
74
|
[Full Changelog](https://github.com/brightbox/brightbox-cli/compare/v3.1.0...v3.2.0)
|
data/Gemfile.lock
CHANGED
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
brightbox-cli (
|
|
5
|
-
dry-inflector (
|
|
6
|
-
fog-brightbox (>= 1.
|
|
4
|
+
brightbox-cli (4.0.0)
|
|
5
|
+
dry-inflector (= 0.2.0)
|
|
6
|
+
fog-brightbox (>= 1.7.0)
|
|
7
7
|
fog-core (< 2.0)
|
|
8
|
-
gli (~> 2.
|
|
8
|
+
gli (~> 2.21.0)
|
|
9
9
|
highline (~> 1.6.0)
|
|
10
10
|
hirb (~> 0.6)
|
|
11
|
-
i18n (
|
|
11
|
+
i18n (>= 0.6, < 1.11)
|
|
12
12
|
mime-types (~> 2.6)
|
|
13
13
|
multi_json (~> 1.11.0)
|
|
14
14
|
|
|
15
15
|
GEM
|
|
16
16
|
remote: https://rubygems.org/
|
|
17
17
|
specs:
|
|
18
|
-
addressable (2.
|
|
18
|
+
addressable (2.8.0)
|
|
19
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
20
|
+
ast (2.4.2)
|
|
19
21
|
builder (3.2.4)
|
|
20
|
-
coderay (1.
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
coderay (1.1.3)
|
|
23
|
+
concurrent-ruby (1.1.10)
|
|
24
|
+
crack (0.4.5)
|
|
25
|
+
rexml
|
|
26
|
+
diff-lcs (1.5.0)
|
|
27
|
+
dry-inflector (0.2.0)
|
|
28
|
+
excon (0.92.4)
|
|
29
|
+
fog-brightbox (1.7.0)
|
|
27
30
|
dry-inflector
|
|
28
31
|
fog-core (>= 1.45, < 3.0)
|
|
29
32
|
fog-json
|
|
@@ -34,44 +37,67 @@ GEM
|
|
|
34
37
|
fog-json (1.2.0)
|
|
35
38
|
fog-core
|
|
36
39
|
multi_json (~> 1.10)
|
|
37
|
-
formatador (0.
|
|
38
|
-
gli (2.
|
|
40
|
+
formatador (0.3.0)
|
|
41
|
+
gli (2.21.0)
|
|
42
|
+
hashdiff (1.0.1)
|
|
39
43
|
highline (1.6.21)
|
|
40
44
|
hirb (0.7.3)
|
|
41
|
-
i18n (
|
|
42
|
-
|
|
43
|
-
method_source (0.
|
|
45
|
+
i18n (1.10.0)
|
|
46
|
+
concurrent-ruby (~> 1.0)
|
|
47
|
+
method_source (1.0.0)
|
|
44
48
|
mime-types (2.99.3)
|
|
45
|
-
mocha (
|
|
46
|
-
metaclass (~> 0.0.1)
|
|
49
|
+
mocha (1.14.0)
|
|
47
50
|
multi_json (1.11.3)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
parallel (1.22.1)
|
|
52
|
+
parser (3.1.2.0)
|
|
53
|
+
ast (~> 2.4.1)
|
|
54
|
+
pry (0.14.1)
|
|
55
|
+
coderay (~> 1.1)
|
|
56
|
+
method_source (~> 1.0)
|
|
52
57
|
pry-remote (0.1.8)
|
|
53
58
|
pry (~> 0.9)
|
|
54
59
|
slop (~> 3.0)
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
rspec
|
|
61
|
-
rspec-
|
|
62
|
-
|
|
60
|
+
public_suffix (4.0.7)
|
|
61
|
+
rainbow (3.1.1)
|
|
62
|
+
rake (13.0.6)
|
|
63
|
+
regexp_parser (2.5.0)
|
|
64
|
+
rexml (3.2.5)
|
|
65
|
+
rspec (3.11.0)
|
|
66
|
+
rspec-core (~> 3.11.0)
|
|
67
|
+
rspec-expectations (~> 3.11.0)
|
|
68
|
+
rspec-mocks (~> 3.11.0)
|
|
69
|
+
rspec-core (3.11.0)
|
|
70
|
+
rspec-support (~> 3.11.0)
|
|
71
|
+
rspec-expectations (3.11.0)
|
|
63
72
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
64
|
-
rspec-support (~> 3.
|
|
65
|
-
rspec-mocks (3.
|
|
73
|
+
rspec-support (~> 3.11.0)
|
|
74
|
+
rspec-mocks (3.11.1)
|
|
66
75
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
67
|
-
rspec-support (~> 3.
|
|
68
|
-
rspec-support (3.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
76
|
+
rspec-support (~> 3.11.0)
|
|
77
|
+
rspec-support (3.11.0)
|
|
78
|
+
rubocop (1.28.2)
|
|
79
|
+
parallel (~> 1.10)
|
|
80
|
+
parser (>= 3.1.0.0)
|
|
81
|
+
rainbow (>= 2.2.2, < 4.0)
|
|
82
|
+
regexp_parser (>= 1.8, < 3.0)
|
|
83
|
+
rexml
|
|
84
|
+
rubocop-ast (>= 1.17.0, < 2.0)
|
|
85
|
+
ruby-progressbar (~> 1.7)
|
|
86
|
+
unicode-display_width (>= 1.4.0, < 3.0)
|
|
87
|
+
rubocop-ast (1.17.0)
|
|
88
|
+
parser (>= 3.1.1.0)
|
|
89
|
+
rubocop-rake (0.6.0)
|
|
90
|
+
rubocop (~> 1.0)
|
|
91
|
+
rubocop-rspec (2.10.0)
|
|
92
|
+
rubocop (~> 1.19)
|
|
93
|
+
ruby-progressbar (1.11.0)
|
|
94
|
+
slop (3.6.0)
|
|
95
|
+
unicode-display_width (2.1.0)
|
|
96
|
+
vcr (2.9.3)
|
|
97
|
+
webmock (3.14.0)
|
|
98
|
+
addressable (>= 2.8.0)
|
|
74
99
|
crack (>= 0.3.2)
|
|
100
|
+
hashdiff (>= 0.4.0, < 2.0.0)
|
|
75
101
|
|
|
76
102
|
PLATFORMS
|
|
77
103
|
ruby
|
|
@@ -82,8 +108,11 @@ DEPENDENCIES
|
|
|
82
108
|
pry-remote
|
|
83
109
|
rake
|
|
84
110
|
rspec
|
|
111
|
+
rubocop
|
|
112
|
+
rubocop-rake
|
|
113
|
+
rubocop-rspec
|
|
85
114
|
vcr (~> 2.5)
|
|
86
115
|
webmock
|
|
87
116
|
|
|
88
117
|
BUNDLED WITH
|
|
89
|
-
1.
|
|
118
|
+
2.1.4
|
data/README
CHANGED
|
@@ -2,24 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
`brightbox-cli` is a set of cli tools to interact with the Brightbox Cloud API.
|
|
4
4
|
|
|
5
|
-
You will need a
|
|
6
|
-
these tools.
|
|
5
|
+
You will need a Brightbox account in order to make use of these tools.
|
|
7
6
|
|
|
8
|
-
You can sign up at https://
|
|
9
|
-
|
|
10
|
-
{<img src="https://travis-ci.org/brightbox/brightbox-cli.png?branch=master" alt="Build Status" />}[https://travis-ci.org/brightbox/brightbox-cli]
|
|
11
|
-
|
|
12
|
-
== UPGRADE NOTES
|
|
13
|
-
|
|
14
|
-
Version 1.0.0 adds a new top level `brightbox` command for the suite.
|
|
15
|
-
|
|
16
|
-
This may clash with our `brightbox` (brightbox-deployment) gem which, before
|
|
17
|
-
version 2.4.0, used `brightbox` as the name for it's binary. Please ensure you
|
|
18
|
-
update your `brightbox` gem to avoid using the wrong command.
|
|
19
|
-
|
|
20
|
-
We have included backwards compatible binaries for all the older CLI commands
|
|
21
|
-
(brightbox-accounts, brightbox-servers etc...) but recommend getting used to the
|
|
22
|
-
new form.
|
|
7
|
+
You can sign up at https://cloud.brightbox.com/signup
|
|
23
8
|
|
|
24
9
|
== Installation instructions
|
|
25
10
|
|
|
@@ -36,7 +21,11 @@ For a list of available commands use:
|
|
|
36
21
|
|
|
37
22
|
$ brightbox help
|
|
38
23
|
|
|
39
|
-
To
|
|
24
|
+
To login with your user credentials use:
|
|
25
|
+
|
|
26
|
+
$ brightbox login john@example.com
|
|
27
|
+
|
|
28
|
+
To instead add api client (account-specific) credentials use:
|
|
40
29
|
|
|
41
30
|
$ brightbox config client_add cli-2igtb theclientsecret
|
|
42
31
|
Using config file /home/ubuntu/.brightbox/config
|
|
@@ -49,7 +38,14 @@ To browse available resources use the resource name as the command:
|
|
|
49
38
|
$ brightbox images
|
|
50
39
|
... List of images
|
|
51
40
|
|
|
52
|
-
|
|
41
|
+
=== Two factor authentication ===
|
|
42
|
+
|
|
43
|
+
If you've enabled two factor authentication for your user, you should be
|
|
44
|
+
prompted for a one time password (OTP) when it is required unless you have set
|
|
45
|
+
up a two factor helper (see below).
|
|
46
|
+
|
|
47
|
+
The previous configuration setting `two_factor` is no longer required when
|
|
48
|
+
using v4.0 or greater. This is ignored and can be removed.
|
|
53
49
|
|
|
54
50
|
=== Integrating with a password manager
|
|
55
51
|
|
|
@@ -64,6 +60,13 @@ appropriate section:
|
|
|
64
60
|
username = john@example.com
|
|
65
61
|
password_helper_command = pass john-example-com-brightbox
|
|
66
62
|
|
|
63
|
+
You can also specify a separate helper command to retrive two factor pins:
|
|
64
|
+
|
|
65
|
+
[john@example.com]
|
|
66
|
+
username = john@example.com
|
|
67
|
+
password_helper_command = pass john-example-com-brightbox
|
|
68
|
+
two_factor_helper_command = get-two-factor-pin john-example-com-brightbox
|
|
69
|
+
|
|
67
70
|
=== Using GPG to secure passwords
|
|
68
71
|
|
|
69
72
|
If you use an OAuth application to access your accounts
|
|
@@ -94,7 +97,6 @@ The alias here is `main`. To prepare the password run this command:
|
|
|
94
97
|
$ gpg --decrypt ~/.brightbox/main.password.gpg
|
|
95
98
|
password!2015
|
|
96
99
|
$ brightbox accounts
|
|
97
|
-
INFO: client_id: app-12345 (main)
|
|
98
100
|
INFO: Decrypting /home/user/.brightbox/main.password.gpg to obtain password
|
|
99
101
|
gpg: encrypted with 2048-bit RSA key, ID ABCDE890, created 2015-01-01
|
|
100
102
|
"Jason Null <gpg@example.com>"
|
|
@@ -108,11 +110,24 @@ incorrectly or there may be an issue with your GPG configuration.
|
|
|
108
110
|
|
|
109
111
|
To remove the password delete the `~/.brightbox/main.password.gpg` file.
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
=== Integrating with a password manager
|
|
112
114
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
115
|
+
You can retrieve your passwords from an external password manager by specifying
|
|
116
|
+
a password helper command. This command will be executed any time your password
|
|
117
|
+
is required and its output used as your password.
|
|
118
|
+
|
|
119
|
+
Configure the command in your config file (usually ~/.brightbox/config) in the
|
|
120
|
+
appropriate section:
|
|
121
|
+
|
|
122
|
+
[john@example.com]
|
|
123
|
+
username = john@example.com
|
|
124
|
+
password_helper_command = pass john-example-com-brightbox
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
== Documentation
|
|
128
|
+
|
|
129
|
+
* https://www.brightbox.com/docs/guides/cli/
|
|
130
|
+
* http://www.brightbox.com/docs/reference/cli/
|
|
116
131
|
|
|
117
132
|
== BASH Auto-completion
|
|
118
133
|
|
|
@@ -130,6 +145,24 @@ in the path, just specify the full path to it:
|
|
|
130
145
|
|
|
131
146
|
complete -C /full/path/to/bin/_brightbox-bash-completer -o filenames brightbox
|
|
132
147
|
|
|
148
|
+
== UPGRADE NOTES
|
|
149
|
+
|
|
150
|
+
Version 4.0.0 removes the older, backward compatible binaries for users of the
|
|
151
|
+
original `brightbox` (brightbox-deployment) gem.
|
|
152
|
+
|
|
153
|
+
So `brightbox-servers` will no longer work. Use the subcommand variation
|
|
154
|
+
`brightbox servers` instead.
|
|
155
|
+
|
|
156
|
+
== Alternatives
|
|
157
|
+
|
|
158
|
+
There are a number of alternative ways to manage Brightbox resources:
|
|
159
|
+
|
|
160
|
+
* Control Panel - https://cloud.brightbox.com/
|
|
161
|
+
* Terraform – https://registry.terraform.io/providers/brightbox/brightbox/latest
|
|
162
|
+
* Kubernetes - https://github.com/brightbox/brightbox-cloud-controller-manager
|
|
163
|
+
* fog - https://github.com/fog/fog-brightbox
|
|
164
|
+
* Go - https://github.com/brightbox/gobrightbox
|
|
165
|
+
|
|
133
166
|
== Testing
|
|
134
167
|
|
|
135
168
|
You should be able to run the specs and features with the following steps:
|
|
@@ -140,15 +173,6 @@ You should be able to run the specs and features with the following steps:
|
|
|
140
173
|
The specs use VCR to playback filtered recordings from real API sessions. This
|
|
141
174
|
process is not perfect, please report an issue
|
|
142
175
|
|
|
143
|
-
== Alternatives
|
|
144
|
-
|
|
145
|
-
There are a number of alternative ways to interact with the Brightbox Cloud.
|
|
146
|
-
|
|
147
|
-
* The Web GUI - https://manage.brightbox.com/
|
|
148
|
-
* fog - https://github.com/fog/fog
|
|
149
|
-
* knife plugin - https://github.com/rubiojr/knife-brightbox
|
|
150
|
-
* Vagrant plugin - https://github.com/NeilW/vagrant-brightbox
|
|
151
|
-
|
|
152
176
|
== Packaging
|
|
153
177
|
|
|
154
178
|
=== Vendoring libraries
|
data/README.rdoc
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
README
|
data/brightbox-cli.gemspec
CHANGED
|
@@ -1,60 +1,47 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
2
3
|
require File.join(File.dirname(__FILE__), "lib/brightbox-cli/version")
|
|
3
4
|
|
|
4
5
|
Gem::Specification.new do |s|
|
|
5
6
|
s.name = "brightbox-cli"
|
|
6
7
|
s.version = Brightbox::VERSION
|
|
7
8
|
s.platform = Gem::Platform::RUBY
|
|
8
|
-
s.authors = ["John Leach"]
|
|
9
|
-
s.email = ["john@brightbox.
|
|
10
|
-
s.homepage = "
|
|
11
|
-
s.summary =
|
|
12
|
-
s.description =
|
|
9
|
+
s.authors = ["John Leach", "Paul Thornthwaite"]
|
|
10
|
+
s.email = ["john@brightbox.com", "paul@brightbox.com"]
|
|
11
|
+
s.homepage = "https://www.brightbox.com/cli"
|
|
12
|
+
s.summary = "The Brightbox cloud management system"
|
|
13
|
+
s.description = "Scripts to interact with the Brightbox cloud API"
|
|
13
14
|
s.license = "MIT"
|
|
15
|
+
s.metadata['rubygems_mfa_required'] = 'true'
|
|
14
16
|
|
|
15
|
-
s.required_ruby_version = ">= 2.
|
|
16
|
-
|
|
17
|
-
s.rubyforge_project = "brightbox-cli"
|
|
17
|
+
s.required_ruby_version = ">= 2.5"
|
|
18
18
|
|
|
19
19
|
s.files = `git ls-files`.split("\n") + `find lib/brightbox-cli/vendor`.split("\n")
|
|
20
20
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
21
21
|
s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
|
|
22
22
|
s.require_paths = ["lib"]
|
|
23
23
|
|
|
24
|
-
s.add_dependency "fog-brightbox", ">= 1.
|
|
24
|
+
s.add_dependency "fog-brightbox", ">= 1.7.0"
|
|
25
25
|
s.add_dependency "fog-core", "< 2.0"
|
|
26
|
-
s.add_dependency "gli", "~> 2.
|
|
27
|
-
s.add_dependency "i18n", "~> 0.6.0"
|
|
28
|
-
s.add_dependency "mime-types", "~> 2.6"
|
|
29
|
-
s.add_dependency "multi_json", "~> 1.11.0"
|
|
26
|
+
s.add_dependency "gli", "~> 2.21.0"
|
|
30
27
|
s.add_dependency "highline", "~> 1.6.0"
|
|
31
28
|
s.add_dependency "hirb", "~> 0.6"
|
|
29
|
+
s.add_dependency "i18n", ">= 0.6", "< 1.11"
|
|
30
|
+
s.add_dependency "mime-types", "~> 2.6"
|
|
31
|
+
s.add_dependency "multi_json", "~> 1.11.0"
|
|
32
32
|
|
|
33
|
-
#
|
|
34
|
-
|
|
33
|
+
# Indirect dependency
|
|
34
|
+
# 0.3 drops support for Ruby < 2.7
|
|
35
|
+
# 0.2.1 drops support for Ruby < 2.6
|
|
36
|
+
s.add_dependency "dry-inflector", "= 0.2.0"
|
|
35
37
|
|
|
36
38
|
s.add_development_dependency "mocha"
|
|
37
39
|
s.add_development_dependency "pry-remote"
|
|
38
40
|
s.add_development_dependency "rake"
|
|
39
41
|
s.add_development_dependency "rspec"
|
|
42
|
+
s.add_development_dependency "rubocop"
|
|
43
|
+
s.add_development_dependency "rubocop-rake"
|
|
44
|
+
s.add_development_dependency "rubocop-rspec"
|
|
40
45
|
s.add_development_dependency "vcr", "~> 2.5"
|
|
41
46
|
s.add_development_dependency "webmock"
|
|
42
|
-
|
|
43
|
-
s.post_install_message = <<-EOS
|
|
44
|
-
The CLI command is now `brightbox` with subcommands for the resources.
|
|
45
|
-
Such as `brightbox config` or `brightbox servers`.
|
|
46
|
-
|
|
47
|
-
`brightbox --help` lists all the commands.
|
|
48
|
-
|
|
49
|
-
The old hypenated versions of the commands (e.g. `brightbox-servers`)
|
|
50
|
-
are deprecated and may be removed in the future.
|
|
51
|
-
|
|
52
|
-
If you have been using the old "brightbox" gem please ensure you have
|
|
53
|
-
the latest version to be able to use the `brightbox-capify` command.
|
|
54
|
-
|
|
55
|
-
To enable Bash auto-completion you can do the following:
|
|
56
|
-
|
|
57
|
-
complete -C _brightbox-bash-completer -o filenames brightbox
|
|
58
|
-
|
|
59
|
-
EOS
|
|
60
47
|
end
|
|
@@ -25,21 +25,19 @@ module Brightbox
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
def self.get(id)
|
|
28
|
-
if Brightbox.config.using_application?
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
acc = if Brightbox.config.using_application?
|
|
29
|
+
conn.accounts.get(id)
|
|
30
|
+
else
|
|
31
|
+
conn.account
|
|
32
|
+
end
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
nil
|
|
38
|
-
end
|
|
34
|
+
return unless acc && acc.id == id
|
|
35
|
+
|
|
36
|
+
acc
|
|
39
37
|
end
|
|
40
38
|
|
|
41
39
|
def self.default_field_order
|
|
42
|
-
[
|
|
40
|
+
%i[id name cloud_ips_limit lb_limit ram_limit ram_used ram_free]
|
|
43
41
|
end
|
|
44
42
|
|
|
45
43
|
def to_s
|