brightbox-cli 1.1.0 → 1.2.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/.travis.yml +1 -0
- data/CHANGELOG.md +18 -0
- data/Gemfile.lock +18 -19
- data/bin/_brightbox-bash-completer +42 -0
- data/brightbox-cli.gemspec +5 -5
- data/lib/brightbox-cli/accounts.rb +1 -3
- data/lib/brightbox-cli/api.rb +27 -8
- data/lib/brightbox-cli/cloud_ips.rb +11 -15
- data/lib/brightbox-cli/collaborating_account.rb +23 -26
- data/lib/brightbox-cli/collaboration.rb +1 -1
- data/lib/brightbox-cli/commands/{accounts-accept-invite.rb → accounts/accept-invite.rb} +2 -3
- data/lib/brightbox-cli/commands/{accounts-default.rb → accounts/default.rb} +1 -3
- data/lib/brightbox-cli/commands/{accounts-list.rb → accounts/list.rb} +1 -1
- data/lib/brightbox-cli/commands/{accounts-remove.rb → accounts/remove.rb} +1 -2
- data/lib/brightbox-cli/commands/{accounts-reset-ftp-password.rb → accounts/reset-ftp-password.rb} +10 -5
- data/lib/brightbox-cli/commands/{accounts-show.rb → accounts/show.rb} +14 -6
- data/lib/brightbox-cli/commands/{cloudips-create.rb → cloudips/create.rb} +4 -4
- data/lib/brightbox-cli/commands/{cloudips-destroy.rb → cloudips/destroy.rb} +1 -1
- data/lib/brightbox-cli/commands/{cloudips-list.rb → cloudips/list.rb} +2 -10
- data/lib/brightbox-cli/commands/{cloudips-map.rb → cloudips/map.rb} +2 -8
- data/lib/brightbox-cli/commands/{cloudips-show.rb → cloudips/show.rb} +13 -3
- data/lib/brightbox-cli/commands/{cloudips-unmap.rb → cloudips/unmap.rb} +1 -1
- data/lib/brightbox-cli/commands/{cloudips-update.rb → cloudips/update.rb} +5 -6
- data/lib/brightbox-cli/commands/collaborations.rb +3 -9
- data/lib/brightbox-cli/commands/{config-client-add.rb → config/client-add.rb} +2 -2
- data/lib/brightbox-cli/commands/{config-client-default.rb → config/client-default.rb} +1 -1
- data/lib/brightbox-cli/commands/{config-client-list.rb → config/client-list.rb} +3 -3
- data/lib/brightbox-cli/commands/{config-client-remove.rb → config/client-remove.rb} +4 -1
- data/lib/brightbox-cli/commands/{config-user-add.rb → config/user-add.rb} +1 -1
- data/lib/brightbox-cli/commands/{firewall-policies-apply.rb → firewall/policies-apply.rb} +3 -4
- data/lib/brightbox-cli/commands/{firewall-policies-create.rb → firewall/policies-create.rb} +3 -4
- data/lib/brightbox-cli/commands/{firewall-policies-destroy.rb → firewall/policies-destroy.rb} +2 -3
- data/lib/brightbox-cli/commands/{firewall-policies-list.rb → firewall/policies-list.rb} +2 -9
- data/lib/brightbox-cli/commands/{firewall-policies-remove.rb → firewall/policies-remove.rb} +2 -3
- data/lib/brightbox-cli/commands/{firewall-policies-show.rb → firewall/policies-show.rb} +11 -3
- data/lib/brightbox-cli/commands/{firewall-policies-update.rb → firewall/policies-update.rb} +3 -3
- data/lib/brightbox-cli/commands/{firewall-rules-create.rb → firewall/rules-create.rb} +4 -4
- data/lib/brightbox-cli/commands/{firewall-rules-destroy.rb → firewall/rules-destroy.rb} +2 -4
- data/lib/brightbox-cli/commands/{firewall-rules-list.rb → firewall/rules-list.rb} +2 -2
- data/lib/brightbox-cli/commands/{firewall-rules-show.rb → firewall/rules-show.rb} +10 -4
- data/lib/brightbox-cli/commands/{firewall-rules-update.rb → firewall/rules-update.rb} +3 -3
- data/lib/brightbox-cli/commands/{groups-add-server.rb → groups/add-server.rb} +2 -2
- data/lib/brightbox-cli/commands/{groups-create.rb → groups/create.rb} +3 -3
- data/lib/brightbox-cli/commands/{groups-destroy.rb → groups/destroy.rb} +2 -2
- data/lib/brightbox-cli/commands/groups/list.rb +14 -0
- data/lib/brightbox-cli/commands/{groups-move_servers.rb → groups/move_servers.rb} +1 -2
- data/lib/brightbox-cli/commands/{groups-remove-servers.rb → groups/remove-servers.rb} +1 -1
- data/lib/brightbox-cli/commands/{groups-show.rb → groups/show.rb} +1 -1
- data/lib/brightbox-cli/commands/{groups-update.rb → groups/update.rb} +5 -10
- data/lib/brightbox-cli/commands/{images-destroy.rb → images/destroy.rb} +2 -2
- data/lib/brightbox-cli/commands/{images-list.rb → images/list.rb} +2 -10
- data/lib/brightbox-cli/commands/{images-register.rb → images/register.rb} +6 -6
- data/lib/brightbox-cli/commands/{images-show.rb → images/show.rb} +2 -11
- data/lib/brightbox-cli/commands/{images-update.rb → images/update.rb} +8 -8
- data/lib/brightbox-cli/commands/{lbs-add-nodes.rb → lbs/add-nodes.rb} +2 -2
- data/lib/brightbox-cli/commands/{lbs-create.rb → lbs/create.rb} +16 -10
- data/lib/brightbox-cli/commands/{lbs-destroy.rb → lbs/destroy.rb} +1 -1
- data/lib/brightbox-cli/commands/{lbs-list.rb → lbs/list.rb} +2 -10
- data/lib/brightbox-cli/commands/{lbs-remove-nodes.rb → lbs/remove-nodes.rb} +2 -2
- data/lib/brightbox-cli/commands/{lbs-show.rb → lbs/show.rb} +4 -7
- data/lib/brightbox-cli/commands/{lbs-update.rb → lbs/update.rb} +16 -10
- data/lib/brightbox-cli/commands/{servers-activate-console.rb → servers/activate-console.rb} +3 -3
- data/lib/brightbox-cli/commands/{servers-create.rb → servers/create.rb} +4 -4
- data/lib/brightbox-cli/commands/{servers-destroy.rb → servers/destroy.rb} +2 -2
- data/lib/brightbox-cli/commands/{servers-list.rb → servers/list.rb} +7 -8
- data/lib/brightbox-cli/commands/{servers-show.rb → servers/show.rb} +1 -6
- data/lib/brightbox-cli/commands/{servers-shutdown.rb → servers/shutdown.rb} +1 -1
- data/lib/brightbox-cli/commands/{servers-snapshot.rb → servers/snapshot.rb} +1 -1
- data/lib/brightbox-cli/commands/{servers-start.rb → servers/start.rb} +1 -1
- data/lib/brightbox-cli/commands/{servers-stop.rb → servers/stop.rb} +1 -1
- data/lib/brightbox-cli/commands/{servers-update.rb → servers/update.rb} +2 -2
- data/lib/brightbox-cli/commands/sql/instances_create.rb +66 -0
- data/lib/brightbox-cli/commands/sql/instances_destroy.rb +28 -0
- data/lib/brightbox-cli/commands/sql/instances_list.rb +27 -0
- data/lib/brightbox-cli/commands/sql/instances_reset_password.rb +33 -0
- data/lib/brightbox-cli/commands/sql/instances_show.rb +26 -0
- data/lib/brightbox-cli/commands/sql/instances_snapshot.rb +25 -0
- data/lib/brightbox-cli/commands/sql/instances_update.rb +45 -0
- data/lib/brightbox-cli/commands/sql/snapshots_destroy.rb +31 -0
- data/lib/brightbox-cli/commands/sql/snapshots_list.rb +25 -0
- data/lib/brightbox-cli/commands/sql/snapshots_show.rb +26 -0
- data/lib/brightbox-cli/commands/sql/snapshots_update.rb +37 -0
- data/lib/brightbox-cli/commands/sql/types.rb +53 -0
- data/lib/brightbox-cli/commands/types.rb +1 -1
- data/lib/brightbox-cli/commands/users/list.rb +17 -0
- data/lib/brightbox-cli/commands/{users-show.rb → users/show.rb} +5 -13
- data/lib/brightbox-cli/commands/{users-update.rb → users/update.rb} +3 -3
- data/lib/brightbox-cli/config.rb +4 -7
- data/lib/brightbox-cli/config/accounts.rb +3 -6
- data/lib/brightbox-cli/config/api_client.rb +12 -4
- data/lib/brightbox-cli/config/authentication_tokens.rb +8 -14
- data/lib/brightbox-cli/config/clients.rb +6 -7
- data/lib/brightbox-cli/config/section_name_deduplicator.rb +4 -5
- data/lib/brightbox-cli/config/sections.rb +7 -10
- data/lib/brightbox-cli/config/user_application.rb +15 -7
- data/lib/brightbox-cli/connection_manager.rb +1 -2
- data/lib/brightbox-cli/database_server.rb +100 -0
- data/lib/brightbox-cli/database_snapshot.rb +36 -0
- data/lib/brightbox-cli/database_type.rb +44 -0
- data/lib/brightbox-cli/detailed_server.rb +8 -7
- data/lib/brightbox-cli/error_parser.rb +8 -4
- data/lib/brightbox-cli/firewall_rule.rb +5 -5
- data/lib/brightbox-cli/firewall_rules.rb +2 -3
- data/lib/brightbox-cli/gli_global_hooks.rb +7 -7
- data/lib/brightbox-cli/images.rb +13 -14
- data/lib/brightbox-cli/legacy/args_adjuster.rb +5 -6
- data/lib/brightbox-cli/load_balancers.rb +10 -13
- data/lib/brightbox-cli/logging.rb +3 -3
- data/lib/brightbox-cli/nilable_hash.rb +1 -1
- data/lib/brightbox-cli/ruby_core_ext.rb +1 -2
- data/lib/brightbox-cli/server_groups.rb +5 -5
- data/lib/brightbox-cli/servers.rb +9 -9
- data/lib/brightbox-cli/tables.rb +24 -25
- data/lib/brightbox-cli/types.rb +6 -5
- data/lib/brightbox-cli/user_collaboration.rb +2 -3
- data/lib/brightbox-cli/users.rb +3 -3
- data/lib/brightbox-cli/version.rb +1 -1
- data/lib/brightbox_cli.rb +10 -2
- data/locales/en.yml +205 -0
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_a_collection_of_Accounts.yml +10 -10
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_application/returns_resources_on_the_same_connection.yml +4 -4
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_a_collection_of_Accounts.yml +8 -8
- data/spec/cassettes/Brightbox_Account/_all/when_connected_using_an_client/returns_resources_on_the_same_connection.yml +4 -4
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_changes_to_the_config_file.yml +4 -4
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_default_account.yml +4 -4
- data/spec/cassettes/Brightbox_BBConfig/_add_section/when_first_and_only_client/saves_the_new_client_as_the_default.yml +4 -4
- data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_is_not_authenticated/does_not_raise_an_error.yml +176 -176
- data/spec/cassettes/Brightbox_BBConfig/_find_or_set_default_account/when_client_may_access_one_account/updates_the_setting.yml +176 -176
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_config_in_use_is_not_the_default/uses_correct_credentials.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_a_cached_refresh_token/caches_the_new_tokens.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_an_expired_refresh_token/caches_the_new_tokens.yml +4 -4
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/caches_the_new_tokens.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_a_user_app_with_no_tokens/prompts_user_to_retry_command.yml +2 -2
- data/spec/cassettes/Brightbox_BBConfig/_renew_tokens/when_using_an_API_client_with_no_tokens/caches_a_new_access_token.yml +2 -2
- data/spec/cassettes/Brightbox_CloudIP/_find_all_/when_a_Cloud_IP_exists/returns_a_suitable.yml +28 -28
- data/spec/cassettes/Brightbox_FirewallPolicy/_apply_to/should_apply_firewall_policy.yml +24 -24
- data/spec/cassettes/Brightbox_FirewallPolicy/_create/should_create_firewall_policy.yml +24 -24
- data/spec/cassettes/Brightbox_FirewallPolicy/_destroy/should_destroy_firewall_policy.yml +28 -28
- data/spec/cassettes/Brightbox_FirewallPolicy/_find_all_/when_a_policy_exists/should_list_firewall_policy.yml +24 -24
- data/spec/cassettes/Brightbox_FirewallPolicy/_find_or_call/when_a_policy_exists/should_show_firewall_policy.yml +20 -20
- data/spec/cassettes/Brightbox_FirewallRule/_create/when_policy_exists/creates_the_rule_successfully.yml +24 -24
- data/spec/cassettes/Brightbox_FirewallRule/_destroy/when_rule_exists/destroys_a_rule.yml +20 -20
- data/spec/cassettes/Brightbox_FirewallRule/_find/when_rule_exists/can_display_the_result.yml +24 -24
- data/spec/cassettes/Brightbox_FirewallRule/_from_policy/when_policy_exists_with_a_rule/lists_all_rules.yml +32 -32
- data/spec/cassettes/Brightbox_Server/_destroy/when_server_exists/should_work.yml +20 -20
- data/spec/cassettes/Brightbox_Server/_find_all_/when_a_server_exists/should_print_server_list.yml +28 -28
- data/spec/cassettes/Brightbox_Server/_show/when_server_exists/shows_detailed_attributes_of_a_server.yml +32 -32
- data/spec/cassettes/Brightbox_Server/_shutdown/should_work.yml +32 -32
- data/spec/cassettes/Brightbox_Server/_start/should_work.yml +44 -44
- data/spec/cassettes/Brightbox_Server/_stop/should_work.yml +32 -32
- data/spec/cassettes/Brightbox_Server/_update/when_passing_new_group_membership/should_update_with_group.yml +40 -40
- data/spec/cassettes/Brightbox_ServerGroup/_find_all_/when_a_group_exists/list_server_groups.yml +24 -24
- data/spec/cassettes/Firewall_policies/update/when_the_policy_does_not_exist/prints_error_to_STDERR.yml +6 -6
- data/spec/cassettes/brightbox_accounts/list/_when_access_token_expired_/does_not_report_invalid_token_errors.yml +18 -18
- data/spec/cassettes/brightbox_accounts/list/_when_both_tokens_expired_/does_not_report_invalid_token_errors.yml +18 -18
- data/spec/cassettes/brightbox_accounts/list/_when_invalid_tokens_/does_not_report_invalid_token_errors.yml +18 -18
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/does_not_report_invalid_token_errors.yml +16 -16
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_/reports_they_were_updated.yml +14 -14
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/does_not_report_invalid_token_errors.yml +14 -14
- data/spec/cassettes/brightbox_accounts/list/_when_no_tokens_and_password_incorrect_/reports_unable_to_authenticate.yml +12 -12
- data/spec/cassettes/brightbox_accounts/list/does_not_error.yml +6 -6
- data/spec/cassettes/brightbox_cloudips/map/when_destination_is_a_server_ID/passes_the_interface_identifier_to_the_API.yml +542 -0
- data/spec/cassettes/brightbox_cloudips/map/when_destination_is_another_value/passes_the_identifier_to_the_API.yml +317 -0
- data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/does_not_error.yml +154 -154
- data/spec/cassettes/brightbox_config/client_add/when_adding_a_new_client/sets_up_the_config.yml +154 -154
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_change_the_default_client.yml +154 -154
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/does_not_error.yml +154 -154
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +154 -154
- data/spec/cassettes/brightbox_config/client_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +154 -154
- data/spec/cassettes/brightbox_config/user_add/when_NO_config_file_on_disk/sets_up_the_config.yml +10 -10
- data/spec/cassettes/brightbox_config/user_add/when_a_default_client_is_already_set/does_not_change_the_default_client.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/does_not_error.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_details_in_config/sets_up_the_config.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/display_an_warning_about_preselected_default.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/does_not_error.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/selects_the_active_account_for_the_default.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_only_one_active_account/sets_up_the_config.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/display_an_warning_about_preselected_default.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/does_not_error.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_application_has_access_to_multiple_accounts/sets_up_the_config.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/does_not_error.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/does_not_prompt_to_rerun_the_command.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/requests_access_tokens.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_this_as_the_default_client.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_new_client_is_first_and_only_client/sets_up_the_config.yml +10 -10
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_error.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/does_not_prompt_to_rerun_the_command.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/requests_access_tokens.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments/sets_up_the_config.yml +6 -6
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/does_not_error.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/requests_access_tokens.yml +4 -4
- data/spec/cassettes/brightbox_config/user_add/when_passing_in_required_arguments_and_api_url/sets_up_the_config.yml +4 -4
- data/spec/cassettes/brightbox_database-servers/create/--allow-access_10_0_0_0/correctly_sends_API_parameters.yml +93 -0
- data/spec/cassettes/brightbox_database-servers/create/--allow-access_srv-12345_grp-12345/correctly_sends_API_parameters.yml +93 -0
- data/spec/cassettes/brightbox_database-servers/create/--engine_mysql/correctly_sends_API_parameters.yml +93 -0
- data/spec/cassettes/brightbox_database-servers/create/--engine_mysql_--engine-version_5_6/correctly_sends_API_parameters.yml +93 -0
- data/spec/cassettes/brightbox_database-servers/create/without_arguments/reports_the_new_admin_password.yml +93 -0
- data/spec/cassettes/brightbox_database-servers/create/without_arguments/reports_the_new_admin_username.yml +93 -0
- data/spec/cassettes/brightbox_database-servers/snapshot/when_database_server_active/correctly_sends_API_parameters.yml +181 -0
- data/spec/cassettes/brightbox_database-servers/snapshot/when_database_server_can_not_be_snapshotted/reports_an_error_to_the_user.yml +91 -0
- data/spec/cassettes/brightbox_database-snapshots/list/when_resources_are_available/does_not_output_to_stderr.yml +93 -0
- data/spec/cassettes/brightbox_database-snapshots/list/when_resources_are_available/outputs_table_details_to_stdout.yml +93 -0
- data/spec/cassettes/brightbox_database-snapshots/show/when_resource_exists/does_not_output_to_stderr.yml +93 -0
- data/spec/commands/accounts/list_spec.rb +1 -1
- data/spec/commands/cloudips/map_spec.rb +23 -4
- data/spec/commands/config/user_add_spec.rb +1 -1
- data/spec/commands/sql/instances/create_spec.rb +69 -0
- data/spec/commands/sql/instances/snapshot_spec.rb +36 -0
- data/spec/commands/sql/snapshots/list_spec.rb +29 -0
- data/spec/commands/sql/snapshots/show_spec.rb +29 -0
- data/spec/commands/sql/types/list_spec.rb +18 -0
- data/spec/spec_helper.rb +1 -3
- data/spec/support/vcr.rb +1 -1
- data/spec/unit/brightbox/api/conn_spec.rb +1 -1
- data/spec/unit/brightbox/bb_config/add_section_spec.rb +1 -1
- data/spec/unit/brightbox/bb_config/renew_tokens_spec.rb +1 -1
- data/spec/unit/brightbox/database_server_spec.rb +9 -0
- data/spec/unit/brightbox/database_snapshot_spec.rb +9 -0
- data/spec/unit/brightbox/database_type_spec.rb +9 -0
- data/spec/unit/brightbox/firewall_policy/create_spec.rb +1 -1
- data/spec/unit/brightbox/firewall_policy/destroy_spec.rb +1 -1
- data/spec/unit/brightbox/firewall_rule/create_spec.rb +1 -1
- data/spec/unit/brightbox/firewall_rule/destroy_spec.rb +1 -1
- data/spec/unit/brightbox/firewall_rule/find_spec.rb +1 -1
- data/spec/unit/brightbox/firewall_rule/from_policy_spec.rb +1 -1
- data/spec/unit/brightbox/server/destroy_spec.rb +1 -1
- data/spec/unit/brightbox/server/find_or_call_spec.rb +1 -1
- data/spec/unit/brightbox/server/shutdown_spec.rb +1 -1
- data/spec/unit/brightbox/server/start_spec.rb +1 -1
- data/spec/unit/brightbox/server/stop_spec.rb +1 -1
- data/spec/unit/brightbox/server/update_spec.rb +1 -1
- data/spec/unit/brightbox/server_group/find_spec.rb +1 -1
- data/spec/unit/brightbox/user_collaboration/get_for_account_spec.rb +3 -3
- metadata +160 -115
- data/lib/brightbox-cli/commands/groups-list.rb +0 -21
- data/lib/brightbox-cli/commands/users-list.rb +0 -25
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module Brightbox
|
|
2
2
|
class ServerGroup < Api
|
|
3
3
|
def self.require_account?; true; end
|
|
4
|
+
|
|
4
5
|
def self.all
|
|
5
6
|
conn.server_groups
|
|
6
7
|
end
|
|
@@ -18,14 +19,14 @@ module Brightbox
|
|
|
18
19
|
end
|
|
19
20
|
|
|
20
21
|
def firewall_policy
|
|
21
|
-
FirewallPolicy.all.
|
|
22
|
-
policy.server_group_id ==
|
|
22
|
+
FirewallPolicy.all.find do |policy|
|
|
23
|
+
policy.server_group_id == id
|
|
23
24
|
end
|
|
24
25
|
end
|
|
25
26
|
|
|
26
27
|
def update(options)
|
|
27
28
|
self.class.conn.update_server_group(id, options)
|
|
28
|
-
|
|
29
|
+
reload
|
|
29
30
|
self
|
|
30
31
|
end
|
|
31
32
|
|
|
@@ -45,7 +46,7 @@ module Brightbox
|
|
|
45
46
|
end
|
|
46
47
|
|
|
47
48
|
def server_ids
|
|
48
|
-
attributes[:server_ids].map{|id| id.is_a?(Hash) ? id['id'] : id }
|
|
49
|
+
attributes[:server_ids].map { |id| id.is_a?(Hash) ? id['id'] : id }
|
|
49
50
|
end
|
|
50
51
|
|
|
51
52
|
def server_count
|
|
@@ -55,6 +56,5 @@ module Brightbox
|
|
|
55
56
|
def server_string
|
|
56
57
|
server_ids.respond_to?(:join) ? server_ids.join(" ") : ""
|
|
57
58
|
end
|
|
58
|
-
|
|
59
59
|
end
|
|
60
60
|
end
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
module Brightbox
|
|
2
2
|
class Server < Api
|
|
3
3
|
def self.require_account?; true; end
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
def self.create_servers(count, options)
|
|
6
|
+
(0...count).map { |i| create(options) }
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
def self.create(options)
|
|
@@ -21,9 +22,9 @@ module Brightbox
|
|
|
21
22
|
[:id, :status, :type, :zone, :created_on, :image_id, :cloud_ip_ids, :name]
|
|
22
23
|
end
|
|
23
24
|
|
|
24
|
-
def update
|
|
25
|
+
def update(options)
|
|
25
26
|
self.class.conn.update_server id, options
|
|
26
|
-
|
|
27
|
+
reload
|
|
27
28
|
self
|
|
28
29
|
end
|
|
29
30
|
|
|
@@ -39,20 +40,20 @@ module Brightbox
|
|
|
39
40
|
a = fog_model.attributes
|
|
40
41
|
a[:image] = image_id
|
|
41
42
|
a[:created_at] = created_at
|
|
42
|
-
a[:created_on] =
|
|
43
|
+
a[:created_on] = created_on
|
|
43
44
|
a[:type] = server_type['handle']
|
|
44
45
|
a[:status] = fog_model.state
|
|
45
46
|
a[:zone] = zone && zone['handle']
|
|
46
47
|
a[:hostname] = id
|
|
47
48
|
a[:public_hostname] = "public.#{fqdn}" unless cloud_ips.empty?
|
|
48
|
-
a[:ipv6_hostname] = ipv6_fqdn if interfaces.any? {|i| i['ipv6_address'] }
|
|
49
|
+
a[:ipv6_hostname] = ipv6_fqdn if interfaces.any? { |i| i['ipv6_address'] }
|
|
49
50
|
a
|
|
50
51
|
end
|
|
51
52
|
|
|
52
53
|
def to_row
|
|
53
54
|
o = attributes
|
|
54
|
-
o[:cloud_ip_ids] = cloud_ips.
|
|
55
|
-
o[:ips] = interfaces.
|
|
55
|
+
o[:cloud_ip_ids] = cloud_ips.map { |i| i['id'] }
|
|
56
|
+
o[:ips] = interfaces.map { |i| i['ipv4_address'] }.join(', ')
|
|
56
57
|
o
|
|
57
58
|
end
|
|
58
59
|
|
|
@@ -64,5 +65,4 @@ module Brightbox
|
|
|
64
65
|
"ipv6.#{fqdn}"
|
|
65
66
|
end
|
|
66
67
|
end
|
|
67
|
-
|
|
68
68
|
end
|
data/lib/brightbox-cli/tables.rb
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require 'hirb'
|
|
2
2
|
|
|
3
3
|
module Brightbox
|
|
4
|
-
|
|
5
4
|
# Hack to set ascii art table cell width due to limitations in Hirb
|
|
6
5
|
class Hirb::Helpers::Table
|
|
7
6
|
remove_const :BORDER_LENGTH
|
|
@@ -11,9 +10,9 @@ module Brightbox
|
|
|
11
10
|
# Remove most of the ascii art table output
|
|
12
11
|
class SimpleTable < Hirb::Helpers::Table
|
|
13
12
|
def render_table_header
|
|
14
|
-
title_row = ' ' + @fields.map
|
|
13
|
+
title_row = ' ' + @fields.map do |f|
|
|
15
14
|
format_cell(@headers[f], @field_lengths[f])
|
|
16
|
-
|
|
15
|
+
end.join(' ')
|
|
17
16
|
["", title_row, render_border]
|
|
18
17
|
end
|
|
19
18
|
|
|
@@ -22,30 +21,30 @@ module Brightbox
|
|
|
22
21
|
end
|
|
23
22
|
|
|
24
23
|
def render_border
|
|
25
|
-
'-' + @fields.map {|f| '-' * @field_lengths[f] }.join('--') + '-'
|
|
24
|
+
'-' + @fields.map { |f| '-' * @field_lengths[f] }.join('--') + '-'
|
|
26
25
|
end
|
|
27
26
|
|
|
28
27
|
def render_rows
|
|
29
28
|
@rows.map do |row|
|
|
30
|
-
row = ' ' + @fields.map
|
|
29
|
+
row = ' ' + @fields.map do |f|
|
|
31
30
|
format_cell(row[f], @field_lengths[f])
|
|
32
|
-
|
|
31
|
+
end.join(' ')
|
|
33
32
|
end
|
|
34
33
|
end
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
def enforce_field_constraints
|
|
36
|
+
max_fields.each do |k, max|
|
|
37
|
+
@field_lengths[k] = max if @field_lengths[k].to_i > max
|
|
38
|
+
end
|
|
39
|
+
# Never shrink the id field
|
|
40
|
+
@field_lengths[:id] = IDENTIFIER_SIZE if @field_lengths[:id]
|
|
41
|
+
end
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
# Vertical table for "show" views
|
|
45
45
|
class ShowTable < Hirb::Helpers::Table
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
new(rows, {:escape_special_chars=>false, :resize=>false}.merge(options)).render
|
|
46
|
+
def self.render(rows, options = {})
|
|
47
|
+
new(rows, { :escape_special_chars => false, :resize => false }.merge(options)).render
|
|
49
48
|
end
|
|
50
49
|
|
|
51
50
|
def setup_field_lengths
|
|
@@ -53,40 +52,40 @@ module Brightbox
|
|
|
53
52
|
end
|
|
54
53
|
|
|
55
54
|
def render_header; []; end
|
|
55
|
+
|
|
56
56
|
def render_footer; []; end
|
|
57
57
|
|
|
58
58
|
def render_rows
|
|
59
|
-
longest_header = Hirb::String.size @headers.values.sort_by {|e| Hirb::String.size(e) }.last
|
|
59
|
+
longest_header = Hirb::String.size @headers.values.sort_by { |e| Hirb::String.size(e) }.last
|
|
60
60
|
@rows.map do |row|
|
|
61
|
-
fields = @fields.map
|
|
61
|
+
fields = @fields.map do |f|
|
|
62
62
|
"#{Hirb::String.rjust(@headers[f], longest_header)}: #{row[f]}"
|
|
63
|
-
|
|
63
|
+
end
|
|
64
64
|
fields << "" if @rows.size > 1
|
|
65
65
|
fields.compact.join("\n")
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
68
|
end
|
|
69
69
|
|
|
70
|
-
|
|
71
70
|
# Print nice ascii tables (or tab separated lists, depending on mode)
|
|
72
71
|
# Has lots of magic.
|
|
73
72
|
def render_table(rows, options = {})
|
|
74
73
|
options = { :description => false }.merge options
|
|
75
74
|
# Figure out the fields from the :model option
|
|
76
|
-
if options[:model]
|
|
75
|
+
if options[:model] && options[:fields].nil?
|
|
77
76
|
options[:fields] = options[:model].default_field_order
|
|
78
77
|
end
|
|
79
78
|
# Figure out the fields from the first row
|
|
80
|
-
if options[:fields].nil?
|
|
79
|
+
if options[:fields].nil? && rows.first.class.respond_to?(:default_field_order)
|
|
81
80
|
options[:fields] = rows.first.class.default_field_order
|
|
82
81
|
end
|
|
83
82
|
# Call to_row on all the rows
|
|
84
|
-
rows = rows.
|
|
83
|
+
rows = rows.map do |row|
|
|
85
84
|
row.respond_to?(:to_row) ? row.to_row : row
|
|
86
85
|
end
|
|
87
86
|
# Call render_cell on all the cells
|
|
88
87
|
rows.each do |row|
|
|
89
|
-
# FIXME default Api subclasses do not respond to #keys so specialising
|
|
88
|
+
# FIXME: default Api subclasses do not respond to #keys so specialising
|
|
90
89
|
# #to_row is required to not break the following
|
|
91
90
|
row.keys.each do |k|
|
|
92
91
|
row[k] = row[k].render_cell if row[k].respond_to? :render_cell
|
|
@@ -96,9 +95,9 @@ module Brightbox
|
|
|
96
95
|
# Simple output
|
|
97
96
|
rows.each do |row|
|
|
98
97
|
if options[:vertical]
|
|
99
|
-
data options[:fields].
|
|
98
|
+
data options[:fields].map { |k| [k, row[k]].join("\t") }.join("\n")
|
|
100
99
|
else
|
|
101
|
-
data options[:fields].
|
|
100
|
+
data options[:fields].map { |k| row[k].is_a?(Array) ? row[k].join(',') : row[k] }.join("\t")
|
|
102
101
|
end
|
|
103
102
|
end
|
|
104
103
|
else
|
data/lib/brightbox-cli/types.rb
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
module Brightbox
|
|
2
2
|
class Type < Api
|
|
3
3
|
def self.require_account?; true; end
|
|
4
|
+
|
|
4
5
|
def attributes
|
|
5
6
|
o = fog_model.attributes
|
|
6
7
|
o[:ram] = ram
|
|
@@ -28,7 +29,7 @@ module Brightbox
|
|
|
28
29
|
conn.flavors
|
|
29
30
|
end
|
|
30
31
|
|
|
31
|
-
def self.get
|
|
32
|
+
def self.get(id)
|
|
32
33
|
conn.flavors.get id
|
|
33
34
|
end
|
|
34
35
|
|
|
@@ -36,11 +37,11 @@ module Brightbox
|
|
|
36
37
|
[:id, :name, :handle, :ram, :disk, :cores]
|
|
37
38
|
end
|
|
38
39
|
|
|
39
|
-
def <=>(
|
|
40
|
-
if
|
|
41
|
-
|
|
40
|
+
def <=>(other)
|
|
41
|
+
if other.is_a? Type
|
|
42
|
+
ram <=> other.ram
|
|
42
43
|
else
|
|
43
|
-
|
|
44
|
+
ram <=> other
|
|
44
45
|
end
|
|
45
46
|
end
|
|
46
47
|
end
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
module Brightbox
|
|
2
2
|
# These are collaborations from the perspective of the invited user so all
|
|
3
|
-
# that is expected is listing, getting details, accepting, rejecting and
|
|
3
|
+
# that is expected is listing, getting details, accepting, rejecting and
|
|
4
4
|
# destroying them.
|
|
5
5
|
#
|
|
6
6
|
class UserCollaboration < Api
|
|
7
|
-
|
|
8
7
|
def self.all
|
|
9
8
|
conn.user_collaborations
|
|
10
9
|
end
|
|
@@ -25,7 +24,7 @@ module Brightbox
|
|
|
25
24
|
#
|
|
26
25
|
def self.get_for_account(account_id)
|
|
27
26
|
collaborations = conn.user_collaborations
|
|
28
|
-
open_collaborations = collaborations.select {|col|
|
|
27
|
+
open_collaborations = collaborations.select { |col| %w{pending accepted}.include?(col.status) }
|
|
29
28
|
collaboration = open_collaborations.find do |col|
|
|
30
29
|
col.account_id == account_id
|
|
31
30
|
end
|
data/lib/brightbox-cli/users.rb
CHANGED
|
@@ -5,7 +5,7 @@ module Brightbox
|
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def to_row
|
|
8
|
-
attributes.merge(
|
|
8
|
+
attributes.merge(:accounts => accounts.size)
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def self.all
|
|
@@ -14,7 +14,7 @@ module Brightbox
|
|
|
14
14
|
|
|
15
15
|
def self.get(id)
|
|
16
16
|
u = conn.users.get id
|
|
17
|
-
|
|
17
|
+
u.nil? || u.id != id ? nil : u
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def self.default_field_order
|
|
@@ -22,7 +22,7 @@ module Brightbox
|
|
|
22
22
|
end
|
|
23
23
|
|
|
24
24
|
def accounts
|
|
25
|
-
@accounts ||= fog_model.accounts.
|
|
25
|
+
@accounts ||= fog_model.accounts.map { |a| Account.new(a["id"]) }
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def to_s
|
data/lib/brightbox_cli.rb
CHANGED
|
@@ -20,12 +20,17 @@ Dir.glob(vendor_dir + '/*').each do |f|
|
|
|
20
20
|
$:.unshift File.join(f, 'lib')
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
require "json"
|
|
23
|
+
require "multi_json"
|
|
25
24
|
require 'date'
|
|
26
25
|
require 'gli'
|
|
26
|
+
require "i18n"
|
|
27
27
|
require "fog/brightbox/compute"
|
|
28
28
|
|
|
29
|
+
# I18n stuff to clean up scattered text everywhere
|
|
30
|
+
I18n.enforce_available_locales = false
|
|
31
|
+
I18n.default_locale = :en
|
|
32
|
+
I18n.load_path = [File.join(File.dirname(__FILE__) + "/../locales/en.yml")]
|
|
33
|
+
|
|
29
34
|
module Brightbox
|
|
30
35
|
DEFAULT_API_ENDPOINT = "https://api.gb1.brightbox.com"
|
|
31
36
|
|
|
@@ -46,6 +51,9 @@ module Brightbox
|
|
|
46
51
|
autoload :FirewallRules, File.expand_path("../brightbox-cli/firewall_rules", __FILE__)
|
|
47
52
|
autoload :Collaboration, File.expand_path("../brightbox-cli/collaboration", __FILE__)
|
|
48
53
|
autoload :UserCollaboration, File.expand_path("../brightbox-cli/user_collaboration", __FILE__)
|
|
54
|
+
autoload :DatabaseType, File.expand_path("../brightbox-cli/database_type", __FILE__)
|
|
55
|
+
autoload :DatabaseServer, File.expand_path("../brightbox-cli/database_server", __FILE__)
|
|
56
|
+
autoload :DatabaseSnapshot, File.expand_path("../brightbox-cli/database_snapshot", __FILE__)
|
|
49
57
|
|
|
50
58
|
module Config
|
|
51
59
|
autoload :SectionNameDeduplicator, File.expand_path("../brightbox-cli/config/section_name_deduplicator", __FILE__)
|
data/locales/en.yml
ADDED
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
en:
|
|
2
|
+
options:
|
|
3
|
+
description:
|
|
4
|
+
desc: Description
|
|
5
|
+
name:
|
|
6
|
+
desc: Name
|
|
7
|
+
accounts:
|
|
8
|
+
desc: Manage accounts
|
|
9
|
+
accept_invite:
|
|
10
|
+
desc: Accept invitation to collaborate on account
|
|
11
|
+
default:
|
|
12
|
+
desc: Set a default account
|
|
13
|
+
list:
|
|
14
|
+
desc: List accounts
|
|
15
|
+
remove:
|
|
16
|
+
desc: Refuses or removes an account collaboration
|
|
17
|
+
reset_ftp_password:
|
|
18
|
+
desc: Reset an account's FTP Library password
|
|
19
|
+
show:
|
|
20
|
+
desc: Show accounts
|
|
21
|
+
cloudips:
|
|
22
|
+
desc: Manage an account's Cloud IPs
|
|
23
|
+
options:
|
|
24
|
+
port_translators:
|
|
25
|
+
desc: |
|
|
26
|
+
Cloud IP translators. Format: in-port:out-port:protocol. Comma
|
|
27
|
+
separate multiple translators. Protocol can be tcp or udp.
|
|
28
|
+
create:
|
|
29
|
+
desc: Create Cloud IPs
|
|
30
|
+
destroy:
|
|
31
|
+
desc: Destroy Cloud IPs
|
|
32
|
+
list:
|
|
33
|
+
desc: List Cloud IPs
|
|
34
|
+
map:
|
|
35
|
+
desc: Map a Cloud IP
|
|
36
|
+
show:
|
|
37
|
+
desc: Show Cloud IPs
|
|
38
|
+
unmap:
|
|
39
|
+
desc: Unmap Cloud IPs
|
|
40
|
+
update:
|
|
41
|
+
desc: Update a Cloud IP
|
|
42
|
+
config:
|
|
43
|
+
desc: Manage CLI configuration settings and credentials
|
|
44
|
+
client_add:
|
|
45
|
+
desc: Add new API client details to config
|
|
46
|
+
client_default:
|
|
47
|
+
desc: Set the default API client in the config
|
|
48
|
+
client_list:
|
|
49
|
+
desc: List API clients defined in the config
|
|
50
|
+
client_remove:
|
|
51
|
+
desc: Remove an API client from config
|
|
52
|
+
user_add:
|
|
53
|
+
desc: Add new user credentials to config
|
|
54
|
+
firewall:
|
|
55
|
+
policies:
|
|
56
|
+
desc: Manage firewall policies
|
|
57
|
+
apply:
|
|
58
|
+
desc: Apply firewall policy to a server group
|
|
59
|
+
create:
|
|
60
|
+
desc: Create firewall policy
|
|
61
|
+
destroy:
|
|
62
|
+
desc: Destroy firewall policy
|
|
63
|
+
list:
|
|
64
|
+
desc: List firewall policies
|
|
65
|
+
remove:
|
|
66
|
+
desc: Remove a firewall policy from a server group
|
|
67
|
+
show:
|
|
68
|
+
desc: Show firewall policies
|
|
69
|
+
update:
|
|
70
|
+
desc: Update a firewall policy
|
|
71
|
+
rules:
|
|
72
|
+
desc: Manages an account's firewall rules for a policy
|
|
73
|
+
create:
|
|
74
|
+
desc: Create a firewall rule
|
|
75
|
+
destroy:
|
|
76
|
+
desc: Destroy firewall rules
|
|
77
|
+
list:
|
|
78
|
+
desc: List firewall rules
|
|
79
|
+
show:
|
|
80
|
+
desc: Show firewall rules
|
|
81
|
+
update:
|
|
82
|
+
desc: Update firewall rule
|
|
83
|
+
groups:
|
|
84
|
+
desc: Manage an account's server groups
|
|
85
|
+
add_servers:
|
|
86
|
+
desc: Add servers to a server group
|
|
87
|
+
create:
|
|
88
|
+
desc: Create a server group
|
|
89
|
+
destroy:
|
|
90
|
+
desc: Destroy a number of empty server groups
|
|
91
|
+
list:
|
|
92
|
+
desc: List server groups
|
|
93
|
+
move_servers:
|
|
94
|
+
desc: Move servers from one server group to another
|
|
95
|
+
remove_servers:
|
|
96
|
+
desc: Remove servers from a server group
|
|
97
|
+
show:
|
|
98
|
+
desc: Show server groups
|
|
99
|
+
update:
|
|
100
|
+
desc: Update a server group
|
|
101
|
+
images:
|
|
102
|
+
desc: See official and public images and manage an account's images
|
|
103
|
+
destroy:
|
|
104
|
+
desc: Destroy images
|
|
105
|
+
list:
|
|
106
|
+
desc: List images
|
|
107
|
+
register:
|
|
108
|
+
desc: Register an image in the image library
|
|
109
|
+
show:
|
|
110
|
+
desc: Show images
|
|
111
|
+
update:
|
|
112
|
+
desc: Update an image
|
|
113
|
+
lbs:
|
|
114
|
+
desc: Manage an account's load balancers
|
|
115
|
+
add_nodes:
|
|
116
|
+
desc: Add servers to a load balancer
|
|
117
|
+
create:
|
|
118
|
+
desc: Create a load balancer
|
|
119
|
+
long_desc: All intervals and timeouts are in milliseconds
|
|
120
|
+
destroy:
|
|
121
|
+
desc: Destroy load balancers
|
|
122
|
+
list:
|
|
123
|
+
desc: List load balancers
|
|
124
|
+
remove_nodes:
|
|
125
|
+
desc: Remove servers from a load balancer
|
|
126
|
+
show:
|
|
127
|
+
desc: Show load balancers
|
|
128
|
+
update:
|
|
129
|
+
desc: Update a load balancer
|
|
130
|
+
long_desc: All intervals and timeouts are in milliseconds
|
|
131
|
+
servers:
|
|
132
|
+
desc: Manage an account's servers
|
|
133
|
+
activate_console:
|
|
134
|
+
desc: Activate web consoles for a number of servers
|
|
135
|
+
create:
|
|
136
|
+
desc: Create servers
|
|
137
|
+
destroy:
|
|
138
|
+
desc: Destroy servers
|
|
139
|
+
show:
|
|
140
|
+
desc: Show servers
|
|
141
|
+
shutdown:
|
|
142
|
+
desc: Shutdown servers with equivalent of `shutdown` command
|
|
143
|
+
snapshot:
|
|
144
|
+
desc: Snapshot servers (creating new images)
|
|
145
|
+
start:
|
|
146
|
+
desc: Start servers
|
|
147
|
+
stop:
|
|
148
|
+
desc: Stop servers with equivalent of powering off
|
|
149
|
+
update:
|
|
150
|
+
desc: Update a server
|
|
151
|
+
sql:
|
|
152
|
+
desc: Manage an account's Cloud SQL instances and snapshots
|
|
153
|
+
instances:
|
|
154
|
+
desc: Manage Cloud SQL instances
|
|
155
|
+
options:
|
|
156
|
+
allow_access:
|
|
157
|
+
desc: Comma separated list of IPs or IDs for servers or groups to allow access
|
|
158
|
+
engine:
|
|
159
|
+
desc: The database engine to use for the SQL instance (e.g. 'mysql')
|
|
160
|
+
engine_version:
|
|
161
|
+
desc: The version of the engine to use (e.g. '5.6')
|
|
162
|
+
snapshot:
|
|
163
|
+
desc: ID of a Cloud SQL snapshot to create new instance from
|
|
164
|
+
type:
|
|
165
|
+
desc: ID of a Cloud SQL type
|
|
166
|
+
zone:
|
|
167
|
+
desc: Zone to locate the instance in
|
|
168
|
+
create:
|
|
169
|
+
desc: Create a new Cloud SQL instance
|
|
170
|
+
destroy:
|
|
171
|
+
desc: Destroy Cloud SQL instances
|
|
172
|
+
list:
|
|
173
|
+
desc: List Cloud SQL instances
|
|
174
|
+
reset_password:
|
|
175
|
+
desc: Reset the admin password of a Cloud SQL instance
|
|
176
|
+
show:
|
|
177
|
+
desc: Show details of Cloud SQL instances
|
|
178
|
+
snapshot:
|
|
179
|
+
desc: Create a new Cloud SQL snapshot from an instance
|
|
180
|
+
update:
|
|
181
|
+
desc: Update a Cloud SQL instance
|
|
182
|
+
snapshots:
|
|
183
|
+
desc: Manage Cloud SQL snapshots
|
|
184
|
+
list:
|
|
185
|
+
desc: List Cloud SQL snapshots
|
|
186
|
+
destroy:
|
|
187
|
+
desc: Destroy a number of Cloud SQL snapshots
|
|
188
|
+
show:
|
|
189
|
+
desc: Show details of Cloud SQL snapshots
|
|
190
|
+
update:
|
|
191
|
+
desc: Update a Cloud SQL snapshot's metadata
|
|
192
|
+
types:
|
|
193
|
+
desc: List the Cloud SQL types
|
|
194
|
+
list:
|
|
195
|
+
desc: List the available Cloud SQL sizes for new instances
|
|
196
|
+
show:
|
|
197
|
+
desc: Show details of Cloud SQL types
|
|
198
|
+
users:
|
|
199
|
+
desc: List the users associated with an account
|
|
200
|
+
list:
|
|
201
|
+
desc: List users
|
|
202
|
+
show:
|
|
203
|
+
desc: Show users
|
|
204
|
+
update:
|
|
205
|
+
desc: Update a user
|