ey-core 3.6.4 → 3.6.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +23 -23
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/.travis.yml +23 -23
- data/CHANGELOG.md +189 -189
- data/Gemfile +26 -20
- data/Guardfile +15 -15
- data/LICENSE.txt +19 -19
- data/README.md +135 -135
- data/Rakefile +18 -18
- data/bin/ey-core +4 -4
- data/docs/development.md +6 -0
- data/examples/add_instance.rb +74 -74
- data/examples/boot_env.rb +60 -60
- data/examples/console/README.md +14 -14
- data/examples/console/address.md +51 -51
- data/examples/stop_env.rb +51 -51
- data/examples/terminate_instance.rb +62 -62
- data/ey-core.gemspec +52 -52
- data/features/accounts.feature +13 -13
- data/features/applications.feature +29 -29
- data/features/current_user.feature +14 -14
- data/features/docker_registry_credentials.feature +21 -21
- data/features/environment_variables.feature +54 -54
- data/features/environments.feature +30 -30
- data/features/init.feature +6 -6
- data/features/login.feature +6 -6
- data/features/scp.feature +6 -6
- data/features/step_definitions/accounts_steps.rb +37 -37
- data/features/step_definitions/applications_steps.rb +39 -39
- data/features/step_definitions/current_user_steps.rb +11 -11
- data/features/step_definitions/deprecated_command_steps.rb +3 -3
- data/features/step_definitions/docker_registry_credentials_steps.rb +3 -3
- data/features/step_definitions/environment_variables_steps.rb +51 -51
- data/features/step_definitions/environments_steps.rb +52 -52
- data/features/step_definitions/version_steps.rb +3 -3
- data/features/support/account_helpers.rb +89 -89
- data/features/support/app_helpers.rb +19 -19
- data/features/support/aruba.rb +1 -1
- data/features/support/boilerplate.rb +1 -1
- data/features/support/client_helpers.rb +36 -36
- data/features/support/config_file_helpers.rb +42 -42
- data/features/support/core.rb +19 -19
- data/features/support/deployment_helpers.rb +19 -19
- data/features/support/env.rb +40 -40
- data/features/support/environment_helpers.rb +23 -23
- data/features/support/environment_variable_helpers.rb +20 -20
- data/features/support/fake_kernel.rb +23 -23
- data/features/support/io.rb +5 -5
- data/features/support/mock_api.rb +20 -20
- data/features/support/output_helpers.rb +7 -7
- data/features/support/resource_helpers.rb +201 -201
- data/features/support/server_helpers.rb +27 -27
- data/features/version.feature +8 -8
- data/features/whoami.feature +14 -14
- data/lib/ey-core/associations.rb +155 -155
- data/lib/ey-core/cli/accounts.rb +17 -17
- data/lib/ey-core/cli/applications.rb +36 -36
- data/lib/ey-core/cli/console.rb +28 -28
- data/lib/ey-core/cli/current_user.rb +16 -16
- data/lib/ey-core/cli/deploy.rb +126 -126
- data/lib/ey-core/cli/docker_registry_login.rb +29 -29
- data/lib/ey-core/cli/environment_variables.rb +71 -71
- data/lib/ey-core/cli/environments.rb +39 -39
- data/lib/ey-core/cli/errors.rb +11 -11
- data/lib/ey-core/cli/help.rb +30 -30
- data/lib/ey-core/cli/helpers/archive.rb +70 -70
- data/lib/ey-core/cli/helpers/chef.rb +51 -51
- data/lib/ey-core/cli/helpers/core.rb +225 -225
- data/lib/ey-core/cli/helpers/deprecated.rb +39 -39
- data/lib/ey-core/cli/helpers/log_streaming.rb +41 -41
- data/lib/ey-core/cli/helpers/server_sieve.rb +83 -83
- data/lib/ey-core/cli/helpers/stream_printer.rb +42 -42
- data/lib/ey-core/cli/init.rb +14 -14
- data/lib/ey-core/cli/login.rb +38 -38
- data/lib/ey-core/cli/logout.rb +22 -22
- data/lib/ey-core/cli/logs.rb +70 -70
- data/lib/ey-core/cli/main.rb +66 -66
- data/lib/ey-core/cli/recipes/apply.rb +65 -65
- data/lib/ey-core/cli/recipes/download.rb +52 -52
- data/lib/ey-core/cli/recipes/main.rb +21 -21
- data/lib/ey-core/cli/recipes/upload.rb +78 -78
- data/lib/ey-core/cli/recipes.rb +10 -10
- data/lib/ey-core/cli/scp.rb +14 -14
- data/lib/ey-core/cli/servers.rb +59 -59
- data/lib/ey-core/cli/ssh.rb +156 -156
- data/lib/ey-core/cli/status.rb +60 -60
- data/lib/ey-core/cli/subcommand.rb +53 -53
- data/lib/ey-core/cli/timeout_deploy.rb +58 -58
- data/lib/ey-core/cli/version.rb +16 -16
- data/lib/ey-core/cli/web/disable.rb +49 -49
- data/lib/ey-core/cli/web/enable.rb +46 -46
- data/lib/ey-core/cli/web/main.rb +21 -21
- data/lib/ey-core/cli/web/restart.rb +42 -42
- data/lib/ey-core/cli/web.rb +10 -10
- data/lib/ey-core/cli/whoami.rb +12 -12
- data/lib/ey-core/cli.rb +8 -8
- data/lib/ey-core/client/mock.rb +306 -306
- data/lib/ey-core/client/real.rb +93 -93
- data/lib/ey-core/client.rb +469 -469
- data/lib/ey-core/collection.rb +131 -131
- data/lib/ey-core/collections/account_cancellations.rb +6 -6
- data/lib/ey-core/collections/account_referrals.rb +10 -10
- data/lib/ey-core/collections/accounts.rb +8 -8
- data/lib/ey-core/collections/addons.rb +16 -16
- data/lib/ey-core/collections/addresses.rb +9 -9
- data/lib/ey-core/collections/alerts.rb +9 -9
- data/lib/ey-core/collections/application_archives.rb +9 -9
- data/lib/ey-core/collections/application_deployments.rb +9 -9
- data/lib/ey-core/collections/applications.rb +9 -9
- data/lib/ey-core/collections/auto_scaling_alarms.rb +8 -8
- data/lib/ey-core/collections/auto_scaling_groups.rb +8 -8
- data/lib/ey-core/collections/auto_scaling_policies.rb +33 -33
- data/lib/ey-core/collections/backup_files.rb +9 -9
- data/lib/ey-core/collections/blueprints.rb +9 -9
- data/lib/ey-core/collections/components.rb +9 -9
- data/lib/ey-core/collections/contacts.rb +9 -9
- data/lib/ey-core/collections/container_clusters.rb +9 -9
- data/lib/ey-core/collections/container_service_deployments.rb +17 -17
- data/lib/ey-core/collections/costs.rb +8 -8
- data/lib/ey-core/collections/database_plan_usages.rb +7 -7
- data/lib/ey-core/collections/database_server_revisions.rb +7 -7
- data/lib/ey-core/collections/database_server_snapshots.rb +17 -17
- data/lib/ey-core/collections/database_server_usages.rb +7 -7
- data/lib/ey-core/collections/database_servers.rb +9 -9
- data/lib/ey-core/collections/database_services.rb +9 -9
- data/lib/ey-core/collections/deployments.rb +8 -8
- data/lib/ey-core/collections/environment_plan_usages.rb +7 -7
- data/lib/ey-core/collections/environment_variables.rb +8 -8
- data/lib/ey-core/collections/environments.rb +15 -15
- data/lib/ey-core/collections/features.rb +9 -9
- data/lib/ey-core/collections/firewall_rules.rb +9 -9
- data/lib/ey-core/collections/firewalls.rb +9 -9
- data/lib/ey-core/collections/gems.rb +6 -6
- data/lib/ey-core/collections/keypair_deployments.rb +9 -9
- data/lib/ey-core/collections/keypairs.rb +9 -9
- data/lib/ey-core/collections/legacy_alerts.rb +9 -9
- data/lib/ey-core/collections/load_balancer_nodes.rb +9 -9
- data/lib/ey-core/collections/load_balancer_services.rb +9 -9
- data/lib/ey-core/collections/load_balancers.rb +16 -16
- data/lib/ey-core/collections/logical_databases.rb +16 -16
- data/lib/ey-core/collections/logs.rb +9 -9
- data/lib/ey-core/collections/memberships.rb +9 -9
- data/lib/ey-core/collections/messages.rb +9 -9
- data/lib/ey-core/collections/plan_usages.rb +7 -7
- data/lib/ey-core/collections/provider_locations.rb +13 -13
- data/lib/ey-core/collections/providers.rb +15 -15
- data/lib/ey-core/collections/requests.rb +10 -10
- data/lib/ey-core/collections/server_events.rb +9 -9
- data/lib/ey-core/collections/server_usages.rb +7 -7
- data/lib/ey-core/collections/servers.rb +13 -13
- data/lib/ey-core/collections/services.rb +14 -14
- data/lib/ey-core/collections/ssl_certificates.rb +9 -9
- data/lib/ey-core/collections/storage_users.rb +10 -10
- data/lib/ey-core/collections/storages.rb +9 -9
- data/lib/ey-core/collections/tasks.rb +9 -9
- data/lib/ey-core/collections/tokens.rb +9 -9
- data/lib/ey-core/collections/untracked_addresses.rb +4 -4
- data/lib/ey-core/collections/untracked_servers.rb +9 -9
- data/lib/ey-core/collections/users.rb +12 -12
- data/lib/ey-core/collections/volumes.rb +9 -9
- data/lib/ey-core/logger.rb +31 -31
- data/lib/ey-core/memory_cache.rb +17 -17
- data/lib/ey-core/mock/helper.rb +104 -104
- data/lib/ey-core/mock/params.rb +31 -31
- data/lib/ey-core/mock/resources.rb +92 -92
- data/lib/ey-core/mock/searching.rb +115 -115
- data/lib/ey-core/mock/util.rb +23 -23
- data/lib/ey-core/model.rb +44 -44
- data/lib/ey-core/models/account.rb +80 -80
- data/lib/ey-core/models/account_cancellation.rb +6 -6
- data/lib/ey-core/models/account_referral.rb +8 -8
- data/lib/ey-core/models/account_trial.rb +15 -15
- data/lib/ey-core/models/addon.rb +37 -37
- data/lib/ey-core/models/address.rb +59 -59
- data/lib/ey-core/models/alert.rb +99 -99
- data/lib/ey-core/models/application.rb +33 -33
- data/lib/ey-core/models/application_archive.rb +67 -67
- data/lib/ey-core/models/application_deployment.rb +18 -18
- data/lib/ey-core/models/auto_scaling_alarm.rb +54 -54
- data/lib/ey-core/models/auto_scaling_group.rb +75 -75
- data/lib/ey-core/models/backup_file.rb +52 -52
- data/lib/ey-core/models/base_auto_scaling_policy.rb +61 -61
- data/lib/ey-core/models/billing.rb +27 -27
- data/lib/ey-core/models/blueprint.rb +30 -30
- data/lib/ey-core/models/component.rb +11 -11
- data/lib/ey-core/models/contact.rb +14 -14
- data/lib/ey-core/models/container_service_deployment.rb +17 -17
- data/lib/ey-core/models/cost.rb +16 -16
- data/lib/ey-core/models/database_plan_usage.rb +10 -10
- data/lib/ey-core/models/database_server.rb +56 -56
- data/lib/ey-core/models/database_server_revision.rb +10 -10
- data/lib/ey-core/models/database_server_snapshot.rb +43 -43
- data/lib/ey-core/models/database_server_usage.rb +15 -15
- data/lib/ey-core/models/database_service.rb +52 -52
- data/lib/ey-core/models/deployment.rb +31 -31
- data/lib/ey-core/models/environment.rb +248 -248
- data/lib/ey-core/models/environment_plan_usage.rb +10 -10
- data/lib/ey-core/models/environment_variable.rb +29 -29
- data/lib/ey-core/models/feature.rb +33 -33
- data/lib/ey-core/models/firewall.rb +46 -46
- data/lib/ey-core/models/firewall_rule.rb +41 -41
- data/lib/ey-core/models/gem.rb +5 -5
- data/lib/ey-core/models/keypair.rb +38 -38
- data/lib/ey-core/models/keypair_deployment.rb +26 -26
- data/lib/ey-core/models/legacy_alert.rb +12 -12
- data/lib/ey-core/models/load_balancer.rb +43 -43
- data/lib/ey-core/models/load_balancer_node.rb +17 -17
- data/lib/ey-core/models/load_balancer_service.rb +22 -22
- data/lib/ey-core/models/log.rb +44 -44
- data/lib/ey-core/models/logical_database.rb +40 -40
- data/lib/ey-core/models/membership.rb +49 -49
- data/lib/ey-core/models/message.rb +27 -27
- data/lib/ey-core/models/plan_usage.rb +14 -14
- data/lib/ey-core/models/provider.rb +59 -59
- data/lib/ey-core/models/provider_location.rb +24 -24
- data/lib/ey-core/models/request.rb +109 -109
- data/lib/ey-core/models/server.rb +151 -151
- data/lib/ey-core/models/server_event.rb +11 -11
- data/lib/ey-core/models/server_usage.rb +15 -15
- data/lib/ey-core/models/service.rb +10 -10
- data/lib/ey-core/models/simple_auto_scaling_policy.rb +24 -24
- data/lib/ey-core/models/ssl_certificate.rb +44 -44
- data/lib/ey-core/models/step_auto_scaling_policy.rb +24 -24
- data/lib/ey-core/models/storage.rb +38 -38
- data/lib/ey-core/models/storage_user.rb +44 -44
- data/lib/ey-core/models/support_trial.rb +10 -10
- data/lib/ey-core/models/target_auto_scaling_policy.rb +24 -24
- data/lib/ey-core/models/task.rb +35 -35
- data/lib/ey-core/models/token.rb +24 -24
- data/lib/ey-core/models/untracked_address.rb +24 -24
- data/lib/ey-core/models/untracked_server.rb +45 -45
- data/lib/ey-core/models/user.rb +39 -39
- data/lib/ey-core/models/volume.rb +20 -20
- data/lib/ey-core/request.rb +21 -21
- data/lib/ey-core/request_failure.rb +11 -11
- data/lib/ey-core/requests/acknowledge_alert.rb +29 -29
- data/lib/ey-core/requests/apply_environment_updates.rb +54 -54
- data/lib/ey-core/requests/apply_server_updates.rb +52 -52
- data/lib/ey-core/requests/attach_address.rb +53 -53
- data/lib/ey-core/requests/authorized_channel.rb +22 -22
- data/lib/ey-core/requests/blueprint_environment.rb +72 -72
- data/lib/ey-core/requests/boot_environment.rb +187 -187
- data/lib/ey-core/requests/bootstrap_logical_database.rb +80 -80
- data/lib/ey-core/requests/cancel_account.rb +33 -33
- data/lib/ey-core/requests/change_environment_maintenance.rb +38 -38
- data/lib/ey-core/requests/create_account.rb +38 -38
- data/lib/ey-core/requests/create_addon.rb +35 -35
- data/lib/ey-core/requests/create_address.rb +54 -54
- data/lib/ey-core/requests/create_alert.rb +63 -63
- data/lib/ey-core/requests/create_application.rb +73 -73
- data/lib/ey-core/requests/create_application_archive.rb +44 -44
- data/lib/ey-core/requests/create_auto_scaling_alarm.rb +69 -69
- data/lib/ey-core/requests/create_auto_scaling_group.rb +62 -62
- data/lib/ey-core/requests/create_auto_scaling_policy.rb +68 -68
- data/lib/ey-core/requests/create_backup_file.rb +52 -52
- data/lib/ey-core/requests/create_database_server.rb +72 -72
- data/lib/ey-core/requests/create_database_service.rb +57 -57
- data/lib/ey-core/requests/create_database_service_snapshot.rb +69 -69
- data/lib/ey-core/requests/create_environment.rb +77 -77
- data/lib/ey-core/requests/create_environment_variable.rb +39 -39
- data/lib/ey-core/requests/create_firewall.rb +62 -62
- data/lib/ey-core/requests/create_firewall_rule.rb +60 -60
- data/lib/ey-core/requests/create_keypair.rb +42 -42
- data/lib/ey-core/requests/create_keypair_deployment.rb +36 -36
- data/lib/ey-core/requests/create_load_balancer.rb +62 -62
- data/lib/ey-core/requests/create_log.rb +53 -53
- data/lib/ey-core/requests/create_logical_database.rb +56 -56
- data/lib/ey-core/requests/create_membership.rb +47 -47
- data/lib/ey-core/requests/create_message.rb +35 -35
- data/lib/ey-core/requests/create_password_reset.rb +38 -38
- data/lib/ey-core/requests/create_provider.rb +90 -90
- data/lib/ey-core/requests/create_server.rb +121 -121
- data/lib/ey-core/requests/create_ssl_certificate.rb +83 -83
- data/lib/ey-core/requests/create_storage.rb +64 -64
- data/lib/ey-core/requests/create_storage_user.rb +64 -64
- data/lib/ey-core/requests/create_task.rb +55 -55
- data/lib/ey-core/requests/create_token.rb +24 -24
- data/lib/ey-core/requests/create_untracked_address.rb +50 -50
- data/lib/ey-core/requests/create_untracked_server.rb +39 -39
- data/lib/ey-core/requests/create_user.rb +54 -54
- data/lib/ey-core/requests/deploy_environment_application.rb +61 -61
- data/lib/ey-core/requests/deprovision_environment.rb +17 -17
- data/lib/ey-core/requests/destroy_addon.rb +24 -24
- data/lib/ey-core/requests/destroy_auto_scaling_alarm.rb +49 -49
- data/lib/ey-core/requests/destroy_auto_scaling_group.rb +44 -44
- data/lib/ey-core/requests/destroy_auto_scaling_policy.rb +49 -49
- data/lib/ey-core/requests/destroy_blueprint.rb +22 -22
- data/lib/ey-core/requests/destroy_database_server.rb +41 -41
- data/lib/ey-core/requests/destroy_database_server_snapshot.rb +42 -42
- data/lib/ey-core/requests/destroy_database_service.rb +57 -57
- data/lib/ey-core/requests/destroy_environment.rb +43 -43
- data/lib/ey-core/requests/destroy_firewall.rb +41 -41
- data/lib/ey-core/requests/destroy_firewall_rule.rb +41 -41
- data/lib/ey-core/requests/destroy_load_balancer.rb +30 -30
- data/lib/ey-core/requests/destroy_logical_database.rb +41 -41
- data/lib/ey-core/requests/destroy_provider.rb +34 -34
- data/lib/ey-core/requests/destroy_server.rb +48 -48
- data/lib/ey-core/requests/destroy_ssl_certificate.rb +28 -28
- data/lib/ey-core/requests/destroy_storage.rb +33 -33
- data/lib/ey-core/requests/destroy_storage_user.rb +38 -38
- data/lib/ey-core/requests/destroy_user.rb +29 -29
- data/lib/ey-core/requests/detach_address.rb +48 -48
- data/lib/ey-core/requests/disable_feature.rb +30 -30
- data/lib/ey-core/requests/discover_container_service_deployments.rb +71 -71
- data/lib/ey-core/requests/discover_database_server.rb +66 -66
- data/lib/ey-core/requests/discover_database_server_snapshots.rb +69 -69
- data/lib/ey-core/requests/discover_provider_location.rb +57 -57
- data/lib/ey-core/requests/discover_server.rb +60 -60
- data/lib/ey-core/requests/download_file.rb +25 -25
- data/lib/ey-core/requests/enable_feature.rb +35 -35
- data/lib/ey-core/requests/get_account.rb +29 -29
- data/lib/ey-core/requests/get_account_cancellation.rb +21 -21
- data/lib/ey-core/requests/get_account_referrals.rb +28 -28
- data/lib/ey-core/requests/get_account_trial.rb +32 -32
- data/lib/ey-core/requests/get_accounts.rb +42 -42
- data/lib/ey-core/requests/get_addon.rb +25 -25
- data/lib/ey-core/requests/get_addons.rb +24 -24
- data/lib/ey-core/requests/get_address.rb +25 -25
- data/lib/ey-core/requests/get_addresses.rb +27 -27
- data/lib/ey-core/requests/get_alert.rb +21 -21
- data/lib/ey-core/requests/get_alerting_environments.rb +41 -41
- data/lib/ey-core/requests/get_alerts.rb +44 -44
- data/lib/ey-core/requests/get_api_token.rb +19 -19
- data/lib/ey-core/requests/get_application.rb +21 -21
- data/lib/ey-core/requests/get_application_archive.rb +32 -32
- data/lib/ey-core/requests/get_application_archives.rb +29 -29
- data/lib/ey-core/requests/get_application_deployment.rb +21 -21
- data/lib/ey-core/requests/get_application_deployments.rb +28 -28
- data/lib/ey-core/requests/get_applications.rb +28 -28
- data/lib/ey-core/requests/get_auto_scaling_alarm.rb +27 -27
- data/lib/ey-core/requests/get_auto_scaling_alarms.rb +34 -34
- data/lib/ey-core/requests/get_auto_scaling_group.rb +21 -21
- data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -29
- data/lib/ey-core/requests/get_auto_scaling_policies.rb +46 -46
- data/lib/ey-core/requests/get_auto_scaling_policy.rb +27 -27
- data/lib/ey-core/requests/get_backup_file.rb +21 -21
- data/lib/ey-core/requests/get_backup_files.rb +28 -28
- data/lib/ey-core/requests/get_billing.rb +24 -24
- data/lib/ey-core/requests/get_blueprint.rb +21 -21
- data/lib/ey-core/requests/get_blueprints.rb +29 -29
- data/lib/ey-core/requests/get_component.rb +21 -21
- data/lib/ey-core/requests/get_components.rb +29 -29
- data/lib/ey-core/requests/get_contacts.rb +34 -34
- data/lib/ey-core/requests/get_costs.rb +25 -25
- data/lib/ey-core/requests/get_current_user.rb +19 -19
- data/lib/ey-core/requests/get_database_plan_usages.rb +24 -24
- data/lib/ey-core/requests/get_database_server.rb +21 -21
- data/lib/ey-core/requests/get_database_server_revisions.rb +27 -27
- data/lib/ey-core/requests/get_database_server_snapshot.rb +20 -20
- data/lib/ey-core/requests/get_database_server_snapshots.rb +39 -39
- data/lib/ey-core/requests/get_database_server_usages.rb +24 -24
- data/lib/ey-core/requests/get_database_servers.rb +30 -30
- data/lib/ey-core/requests/get_database_servers_firewalls.rb +30 -30
- data/lib/ey-core/requests/get_database_service.rb +20 -20
- data/lib/ey-core/requests/get_database_services.rb +55 -55
- data/lib/ey-core/requests/get_deployment.rb +19 -19
- data/lib/ey-core/requests/get_deployments.rb +29 -29
- data/lib/ey-core/requests/get_environment.rb +21 -21
- data/lib/ey-core/requests/get_environment_database_services.rb +21 -21
- data/lib/ey-core/requests/get_environment_logical_databases.rb +20 -20
- data/lib/ey-core/requests/get_environment_plan_usages.rb +24 -24
- data/lib/ey-core/requests/get_environment_variable.rb +19 -19
- data/lib/ey-core/requests/get_environment_variables.rb +29 -29
- data/lib/ey-core/requests/get_environments.rb +29 -29
- data/lib/ey-core/requests/get_feature.rb +21 -21
- data/lib/ey-core/requests/get_features.rb +28 -28
- data/lib/ey-core/requests/get_firewall.rb +21 -21
- data/lib/ey-core/requests/get_firewall_rule.rb +21 -21
- data/lib/ey-core/requests/get_firewall_rules.rb +29 -29
- data/lib/ey-core/requests/get_firewalls.rb +45 -45
- data/lib/ey-core/requests/get_gem.rb +24 -24
- data/lib/ey-core/requests/get_keypair.rb +21 -21
- data/lib/ey-core/requests/get_keypair_deployment.rb +21 -21
- data/lib/ey-core/requests/get_keypair_deployments.rb +29 -29
- data/lib/ey-core/requests/get_keypairs.rb +34 -34
- data/lib/ey-core/requests/get_legacy_alert.rb +21 -21
- data/lib/ey-core/requests/get_legacy_alerts.rb +29 -29
- data/lib/ey-core/requests/get_load_balancer.rb +21 -21
- data/lib/ey-core/requests/get_load_balancer_node.rb +21 -21
- data/lib/ey-core/requests/get_load_balancer_nodes.rb +30 -30
- data/lib/ey-core/requests/get_load_balancer_service.rb +21 -21
- data/lib/ey-core/requests/get_load_balancer_services.rb +30 -30
- data/lib/ey-core/requests/get_load_balancers.rb +29 -29
- data/lib/ey-core/requests/get_log.rb +21 -21
- data/lib/ey-core/requests/get_logical_database.rb +23 -23
- data/lib/ey-core/requests/get_logical_databases.rb +36 -36
- data/lib/ey-core/requests/get_logs.rb +37 -37
- data/lib/ey-core/requests/get_membership.rb +21 -21
- data/lib/ey-core/requests/get_memberships.rb +29 -29
- data/lib/ey-core/requests/get_message.rb +28 -28
- data/lib/ey-core/requests/get_messages.rb +27 -27
- data/lib/ey-core/requests/get_metadata.rb +22 -22
- data/lib/ey-core/requests/get_operational_contact.rb +21 -21
- data/lib/ey-core/requests/get_operational_contacts.rb +20 -20
- data/lib/ey-core/requests/get_plan_usages.rb +24 -24
- data/lib/ey-core/requests/get_possible_provider_locations.rb +19 -19
- data/lib/ey-core/requests/get_provider.rb +21 -21
- data/lib/ey-core/requests/get_provider_location.rb +29 -29
- data/lib/ey-core/requests/get_provider_locations.rb +28 -28
- data/lib/ey-core/requests/get_providers.rb +28 -28
- data/lib/ey-core/requests/get_request.rb +71 -71
- data/lib/ey-core/requests/get_requests.rb +29 -29
- data/lib/ey-core/requests/get_server.rb +34 -34
- data/lib/ey-core/requests/get_server_event.rb +20 -20
- data/lib/ey-core/requests/get_server_events.rb +28 -28
- data/lib/ey-core/requests/get_server_usages.rb +24 -24
- data/lib/ey-core/requests/get_servers.rb +25 -25
- data/lib/ey-core/requests/get_ssl_certificate.rb +23 -23
- data/lib/ey-core/requests/get_ssl_certificates.rb +28 -28
- data/lib/ey-core/requests/get_storage.rb +21 -21
- data/lib/ey-core/requests/get_storage_user.rb +21 -21
- data/lib/ey-core/requests/get_storage_users.rb +28 -28
- data/lib/ey-core/requests/get_storages.rb +28 -28
- data/lib/ey-core/requests/get_support_trial.rb +51 -51
- data/lib/ey-core/requests/get_task.rb +21 -21
- data/lib/ey-core/requests/get_tasks.rb +28 -28
- data/lib/ey-core/requests/get_token.rb +21 -21
- data/lib/ey-core/requests/get_token_by_login.rb +30 -30
- data/lib/ey-core/requests/get_tokens.rb +32 -32
- data/lib/ey-core/requests/get_untracked_server.rb +18 -18
- data/lib/ey-core/requests/get_untracked_servers.rb +24 -24
- data/lib/ey-core/requests/get_user.rb +21 -21
- data/lib/ey-core/requests/get_users.rb +42 -42
- data/lib/ey-core/requests/get_volume.rb +21 -21
- data/lib/ey-core/requests/get_volumes.rb +28 -28
- data/lib/ey-core/requests/reboot_server.rb +39 -39
- data/lib/ey-core/requests/reconcile_server.rb +39 -39
- data/lib/ey-core/requests/request_callback.rb +26 -26
- data/lib/ey-core/requests/reset_password.rb +31 -31
- data/lib/ey-core/requests/reset_server_state.rb +32 -32
- data/lib/ey-core/requests/restart_environment_app_servers.rb +38 -38
- data/lib/ey-core/requests/retrieve_docker_registry_credentials.rb +24 -24
- data/lib/ey-core/requests/run_cluster_application_action.rb +28 -28
- data/lib/ey-core/requests/run_environment_application_action.rb +29 -29
- data/lib/ey-core/requests/signup.rb +56 -56
- data/lib/ey-core/requests/start_server.rb +39 -39
- data/lib/ey-core/requests/stop_server.rb +39 -39
- data/lib/ey-core/requests/timeout_deployment.rb +27 -27
- data/lib/ey-core/requests/unassign_environment.rb +31 -31
- data/lib/ey-core/requests/update_addon.rb +28 -28
- data/lib/ey-core/requests/update_address.rb +29 -29
- data/lib/ey-core/requests/update_alert.rb +32 -32
- data/lib/ey-core/requests/update_application_archive.rb +23 -23
- data/lib/ey-core/requests/update_auto_scaling_alarm.rb +45 -45
- data/lib/ey-core/requests/update_auto_scaling_group.rb +45 -45
- data/lib/ey-core/requests/update_auto_scaling_policy.rb +46 -46
- data/lib/ey-core/requests/update_billing.rb +26 -26
- data/lib/ey-core/requests/update_blueprint.rb +29 -29
- data/lib/ey-core/requests/update_connector.rb +32 -32
- data/lib/ey-core/requests/update_environment.rb +17 -17
- data/lib/ey-core/requests/update_environment_variable.rb +25 -25
- data/lib/ey-core/requests/update_membership.rb +29 -29
- data/lib/ey-core/requests/update_provider_location.rb +29 -29
- data/lib/ey-core/requests/update_server.rb +29 -29
- data/lib/ey-core/requests/update_ssl_certificate.rb +25 -25
- data/lib/ey-core/requests/update_untracked_server.rb +24 -24
- data/lib/ey-core/requests/upload_file.rb +44 -44
- data/lib/ey-core/requests/upload_recipes_for_environment.rb +28 -28
- data/lib/ey-core/response.rb +59 -59
- data/lib/ey-core/response_cache.rb +29 -29
- data/lib/ey-core/subscribable.rb +60 -60
- data/lib/ey-core/test_helpers/account_helpers.rb +73 -73
- data/lib/ey-core/test_helpers/alert_helpers.rb +16 -16
- data/lib/ey-core/test_helpers/auto_scaling_helpers.rb +35 -35
- data/lib/ey-core/test_helpers/client_helpers.rb +40 -40
- data/lib/ey-core/test_helpers/cucumber.rb +3 -3
- data/lib/ey-core/test_helpers/resource_helpers.rb +196 -196
- data/lib/ey-core/test_helpers/rspec.rb +5 -5
- data/lib/ey-core/test_helpers.rb +17 -17
- data/lib/ey-core/token_authentication.rb +13 -13
- data/lib/ey-core/version.rb +5 -5
- data/lib/ey-core.rb +59 -59
- data/spec/account_spec.rb +65 -65
- data/spec/account_trial_spec.rb +17 -17
- data/spec/accounts_referrals_spec.rb +20 -20
- data/spec/accounts_spec.rb +113 -113
- data/spec/addons_and_vars_spec.rb +62 -62
- data/spec/addresses_spec.rb +57 -57
- data/spec/alerts_spec.rb +155 -155
- data/spec/application_archives_spec.rb +39 -39
- data/spec/applications_spec.rb +65 -65
- data/spec/auto_scaling_alarms_spec.rb +40 -40
- data/spec/auto_scaling_groups_spec.rb +28 -28
- data/spec/auto_scaling_policies_spec.rb +94 -94
- data/spec/billing_spec.rb +31 -31
- data/spec/blueprints_spec.rb +47 -47
- data/spec/client_spec.rb +16 -16
- data/spec/collection_spec.rb +43 -43
- data/spec/costs_spec.rb +22 -22
- data/spec/database_plan_usage_spec.rb +39 -39
- data/spec/database_server_snapshots_spec.rb +41 -41
- data/spec/database_server_usage_spec.rb +49 -49
- data/spec/database_servers_spec.rb +61 -61
- data/spec/database_services_spec.rb +76 -76
- data/spec/deployments_spec.rb +24 -24
- data/spec/docker_registry_credentials_spec.rb +16 -16
- data/spec/environment_plan_usage_spec.rb +38 -38
- data/spec/environments_spec.rb +212 -212
- data/spec/ey-core/cli/accounts_spec.rb +20 -20
- data/spec/ey-core/cli/helpers/server_sieve_spec.rb +226 -226
- data/spec/ey-core/cli/recipes/apply_spec.rb +34 -34
- data/spec/ey-core/cli/recipes/download_spec.rb +93 -93
- data/spec/ey-core/cli/recipes/upload_spec.rb +80 -80
- data/spec/features_spec.rb +79 -79
- data/spec/firewalls_spec.rb +84 -84
- data/spec/gems_spec.rb +11 -11
- data/spec/keypair_deployments_spec.rb +33 -33
- data/spec/keypairs_spec.rb +51 -51
- data/spec/legacy_alerts_spec.rb +44 -44
- data/spec/load_balancers_spec.rb +31 -31
- data/spec/logical_databases_spec.rb +38 -38
- data/spec/logs_spec.rb +44 -44
- data/spec/memberships_spec.rb +73 -73
- data/spec/messages_spec.rb +27 -27
- data/spec/metadata_spec.rb +11 -11
- data/spec/plan_usage_spec.rb +65 -65
- data/spec/provider_locations_spec.rb +85 -85
- data/spec/providers_spec.rb +105 -105
- data/spec/requests/upload_file_spec.rb +25 -25
- data/spec/requests_spec.rb +23 -23
- data/spec/reset_password_spec.rb +22 -22
- data/spec/server_events_spec.rb +31 -31
- data/spec/server_usage_spec.rb +70 -70
- data/spec/servers_spec.rb +202 -202
- data/spec/services_spec.rb +9 -9
- data/spec/signups_spec.rb +45 -45
- data/spec/spec_helper.rb +27 -27
- data/spec/ssl_certificates_spec.rb +94 -94
- data/spec/storages_spec.rb +57 -57
- data/spec/support/cli_helpers.rb +47 -47
- data/spec/support/core.rb +21 -21
- data/spec/support/coverage.rb +43 -43
- data/spec/support/fake_kernel.rb +21 -21
- data/spec/support/helpers.rb +1 -1
- data/spec/support/timecop.rb +8 -8
- data/spec/support_trial_spec.rb +33 -33
- data/spec/tokens_spec.rb +59 -59
- data/spec/untracked_servers_spec.rb +59 -59
- data/spec/users_spec.rb +108 -108
- metadata +4 -3
data/lib/ey-core/cli/ssh.rb
CHANGED
@@ -1,156 +1,156 @@
|
|
1
|
-
require 'ey-core/cli/helpers/server_sieve'
|
2
|
-
require 'ey-core/cli/subcommand'
|
3
|
-
|
4
|
-
module Ey
|
5
|
-
module Core
|
6
|
-
module Cli
|
7
|
-
class Ssh < Subcommand
|
8
|
-
title "ssh"
|
9
|
-
summary "Open an SSH session to the environment's application master"
|
10
|
-
|
11
|
-
option :account,
|
12
|
-
short: "c",
|
13
|
-
long: "account",
|
14
|
-
description: "Name or id of account",
|
15
|
-
argument: "account"
|
16
|
-
|
17
|
-
option :environment,
|
18
|
-
short: "e",
|
19
|
-
long: "environment",
|
20
|
-
description: "Name or id of environment",
|
21
|
-
argument: "environment"
|
22
|
-
|
23
|
-
option :server,
|
24
|
-
short: 's',
|
25
|
-
long: "server",
|
26
|
-
description: "Specific server to ssh into. Id or amazon id (i-12345)",
|
27
|
-
argument: "server"
|
28
|
-
|
29
|
-
option :utilities,
|
30
|
-
long: "utilities",
|
31
|
-
description: "Run command on the utility servers with the given names. Specify all to run the command on all utility servers.",
|
32
|
-
argument: "'all,resque,redis,etc'"
|
33
|
-
|
34
|
-
option :command,
|
35
|
-
long: "command",
|
36
|
-
description: "Command to run",
|
37
|
-
argument: "'command with args'"
|
38
|
-
|
39
|
-
option :shell,
|
40
|
-
long: "shell",
|
41
|
-
description: "Run command in a shell other than bash",
|
42
|
-
argument: "shell"
|
43
|
-
|
44
|
-
option :bind_address,
|
45
|
-
long: "bind_address",
|
46
|
-
description: "When no command is specified, pass -L to ssh",
|
47
|
-
argument: "bind address"
|
48
|
-
|
49
|
-
switch :all,
|
50
|
-
long: "all",
|
51
|
-
description: "Run command on all servers"
|
52
|
-
|
53
|
-
switch :app_servers,
|
54
|
-
long: "app_servers",
|
55
|
-
description: "Run command on all application servers"
|
56
|
-
|
57
|
-
switch :app_master,
|
58
|
-
long: "app_master",
|
59
|
-
description: "Run command on app master"
|
60
|
-
|
61
|
-
switch :db_servers,
|
62
|
-
long: "db_servers",
|
63
|
-
description: "Run command on all database servers"
|
64
|
-
|
65
|
-
switch :db_master,
|
66
|
-
long: "db_master",
|
67
|
-
description: "Run command on database master"
|
68
|
-
|
69
|
-
switch :db_slaves,
|
70
|
-
long: "db_slaves",
|
71
|
-
description: "Run command on database slaves"
|
72
|
-
|
73
|
-
switch :tty,
|
74
|
-
short: 't',
|
75
|
-
long: "tty",
|
76
|
-
description: "Allocated a tty for the command"
|
77
|
-
|
78
|
-
def handle
|
79
|
-
operator, environment = core_operator_and_environment_for(options)
|
80
|
-
abort "Unable to find matching environment".red unless environment
|
81
|
-
|
82
|
-
cmd = option(:command)
|
83
|
-
ssh_opts = []
|
84
|
-
ssh_cmd = ["ssh"]
|
85
|
-
exits = []
|
86
|
-
user = environment.username
|
87
|
-
servers = []
|
88
|
-
|
89
|
-
if option(:command)
|
90
|
-
if shell = option(:shell)
|
91
|
-
cmd = Escape.shell_command([shell,'-lc',cmd])
|
92
|
-
end
|
93
|
-
|
94
|
-
if switch_active?(:tty)
|
95
|
-
ssh_opts << "-t"
|
96
|
-
elsif cmd.match(/sudo/)
|
97
|
-
puts "sudo commands often need a tty to run correctly. Use -t option to spawn a tty.".yellow
|
98
|
-
end
|
99
|
-
|
100
|
-
servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
|
101
|
-
environment.servers,
|
102
|
-
all: switch_active?(:all),
|
103
|
-
app_servers: switch_active?(:app_servers),
|
104
|
-
app_master: switch_active?(:app_master),
|
105
|
-
db_servers: switch_active?(:db_servers),
|
106
|
-
db_master: switch_active?(:db_master),
|
107
|
-
utilities: option(:utilities)
|
108
|
-
)
|
109
|
-
else
|
110
|
-
if option(:bind_address)
|
111
|
-
ssh_opts += ["-L", option(:bind_address)]
|
112
|
-
end
|
113
|
-
|
114
|
-
if option(:server)
|
115
|
-
servers += [core_server_for(server: option(:server), operator: environment)]
|
116
|
-
else
|
117
|
-
servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
|
118
|
-
environment.servers,
|
119
|
-
all: switch_active?(:all),
|
120
|
-
app_servers: switch_active?(:app_servers),
|
121
|
-
app_master: switch_active?(:app_master),
|
122
|
-
db_servers: switch_active?(:db_servers),
|
123
|
-
db_master: switch_active?(:db_master),
|
124
|
-
utilities: option(:utilities)
|
125
|
-
)
|
126
|
-
|
127
|
-
# Reinstate default behavior: If no command is passed and no
|
128
|
-
# roles are passed, open a connection to the app master
|
129
|
-
if servers.empty?
|
130
|
-
servers += (environment.servers.all(role: "app_master") + environment.servers.all(role: "solo")).to_a
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
if servers.empty?
|
136
|
-
abort "Unable to find any matching servers. Aborting.".red
|
137
|
-
end
|
138
|
-
|
139
|
-
servers.uniq!
|
140
|
-
|
141
|
-
servers.each do |server|
|
142
|
-
host = server.public_hostname
|
143
|
-
name = server.name ? "#{server.role} (#{server.name})" : server.role
|
144
|
-
puts "\nConnecting to #{name} #{host}".green
|
145
|
-
sshcmd = Escape.shell_command((ssh_cmd + ["#{user}@#{host}"] + [cmd]).compact)
|
146
|
-
puts "Running command: #{sshcmd}".green
|
147
|
-
system sshcmd
|
148
|
-
exits << $?.exitstatus
|
149
|
-
end
|
150
|
-
|
151
|
-
exit exits.detect {|status| status != 0 } || 0
|
152
|
-
end
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
end
|
1
|
+
require 'ey-core/cli/helpers/server_sieve'
|
2
|
+
require 'ey-core/cli/subcommand'
|
3
|
+
|
4
|
+
module Ey
|
5
|
+
module Core
|
6
|
+
module Cli
|
7
|
+
class Ssh < Subcommand
|
8
|
+
title "ssh"
|
9
|
+
summary "Open an SSH session to the environment's application master"
|
10
|
+
|
11
|
+
option :account,
|
12
|
+
short: "c",
|
13
|
+
long: "account",
|
14
|
+
description: "Name or id of account",
|
15
|
+
argument: "account"
|
16
|
+
|
17
|
+
option :environment,
|
18
|
+
short: "e",
|
19
|
+
long: "environment",
|
20
|
+
description: "Name or id of environment",
|
21
|
+
argument: "environment"
|
22
|
+
|
23
|
+
option :server,
|
24
|
+
short: 's',
|
25
|
+
long: "server",
|
26
|
+
description: "Specific server to ssh into. Id or amazon id (i-12345)",
|
27
|
+
argument: "server"
|
28
|
+
|
29
|
+
option :utilities,
|
30
|
+
long: "utilities",
|
31
|
+
description: "Run command on the utility servers with the given names. Specify all to run the command on all utility servers.",
|
32
|
+
argument: "'all,resque,redis,etc'"
|
33
|
+
|
34
|
+
option :command,
|
35
|
+
long: "command",
|
36
|
+
description: "Command to run",
|
37
|
+
argument: "'command with args'"
|
38
|
+
|
39
|
+
option :shell,
|
40
|
+
long: "shell",
|
41
|
+
description: "Run command in a shell other than bash",
|
42
|
+
argument: "shell"
|
43
|
+
|
44
|
+
option :bind_address,
|
45
|
+
long: "bind_address",
|
46
|
+
description: "When no command is specified, pass -L to ssh",
|
47
|
+
argument: "bind address"
|
48
|
+
|
49
|
+
switch :all,
|
50
|
+
long: "all",
|
51
|
+
description: "Run command on all servers"
|
52
|
+
|
53
|
+
switch :app_servers,
|
54
|
+
long: "app_servers",
|
55
|
+
description: "Run command on all application servers"
|
56
|
+
|
57
|
+
switch :app_master,
|
58
|
+
long: "app_master",
|
59
|
+
description: "Run command on app master"
|
60
|
+
|
61
|
+
switch :db_servers,
|
62
|
+
long: "db_servers",
|
63
|
+
description: "Run command on all database servers"
|
64
|
+
|
65
|
+
switch :db_master,
|
66
|
+
long: "db_master",
|
67
|
+
description: "Run command on database master"
|
68
|
+
|
69
|
+
switch :db_slaves,
|
70
|
+
long: "db_slaves",
|
71
|
+
description: "Run command on database slaves"
|
72
|
+
|
73
|
+
switch :tty,
|
74
|
+
short: 't',
|
75
|
+
long: "tty",
|
76
|
+
description: "Allocated a tty for the command"
|
77
|
+
|
78
|
+
def handle
|
79
|
+
operator, environment = core_operator_and_environment_for(options)
|
80
|
+
abort "Unable to find matching environment".red unless environment
|
81
|
+
|
82
|
+
cmd = option(:command)
|
83
|
+
ssh_opts = []
|
84
|
+
ssh_cmd = ["ssh"]
|
85
|
+
exits = []
|
86
|
+
user = environment.username
|
87
|
+
servers = []
|
88
|
+
|
89
|
+
if option(:command)
|
90
|
+
if shell = option(:shell)
|
91
|
+
cmd = Escape.shell_command([shell,'-lc',cmd])
|
92
|
+
end
|
93
|
+
|
94
|
+
if switch_active?(:tty)
|
95
|
+
ssh_opts << "-t"
|
96
|
+
elsif cmd.match(/sudo/)
|
97
|
+
puts "sudo commands often need a tty to run correctly. Use -t option to spawn a tty.".yellow
|
98
|
+
end
|
99
|
+
|
100
|
+
servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
|
101
|
+
environment.servers,
|
102
|
+
all: switch_active?(:all),
|
103
|
+
app_servers: switch_active?(:app_servers),
|
104
|
+
app_master: switch_active?(:app_master),
|
105
|
+
db_servers: switch_active?(:db_servers),
|
106
|
+
db_master: switch_active?(:db_master),
|
107
|
+
utilities: option(:utilities)
|
108
|
+
)
|
109
|
+
else
|
110
|
+
if option(:bind_address)
|
111
|
+
ssh_opts += ["-L", option(:bind_address)]
|
112
|
+
end
|
113
|
+
|
114
|
+
if option(:server)
|
115
|
+
servers += [core_server_for(server: option(:server), operator: environment)]
|
116
|
+
else
|
117
|
+
servers += Ey::Core::Cli::Helpers::ServerSieve.filter(
|
118
|
+
environment.servers,
|
119
|
+
all: switch_active?(:all),
|
120
|
+
app_servers: switch_active?(:app_servers),
|
121
|
+
app_master: switch_active?(:app_master),
|
122
|
+
db_servers: switch_active?(:db_servers),
|
123
|
+
db_master: switch_active?(:db_master),
|
124
|
+
utilities: option(:utilities)
|
125
|
+
)
|
126
|
+
|
127
|
+
# Reinstate default behavior: If no command is passed and no
|
128
|
+
# roles are passed, open a connection to the app master
|
129
|
+
if servers.empty?
|
130
|
+
servers += (environment.servers.all(role: "app_master") + environment.servers.all(role: "solo")).to_a
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
if servers.empty?
|
136
|
+
abort "Unable to find any matching servers. Aborting.".red
|
137
|
+
end
|
138
|
+
|
139
|
+
servers.uniq!
|
140
|
+
|
141
|
+
servers.each do |server|
|
142
|
+
host = server.public_hostname
|
143
|
+
name = server.name ? "#{server.role} (#{server.name})" : server.role
|
144
|
+
puts "\nConnecting to #{name} #{host}".green
|
145
|
+
sshcmd = Escape.shell_command((ssh_cmd + ["#{user}@#{host}"] + [cmd]).compact)
|
146
|
+
puts "Running command: #{sshcmd}".green
|
147
|
+
system sshcmd
|
148
|
+
exits << $?.exitstatus
|
149
|
+
end
|
150
|
+
|
151
|
+
exit exits.detect {|status| status != 0 } || 0
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
end
|
156
|
+
end
|
data/lib/ey-core/cli/status.rb
CHANGED
@@ -1,60 +1,60 @@
|
|
1
|
-
require 'ey-core/cli/subcommand'
|
2
|
-
require 'ey-core/cli/helpers/log_streaming'
|
3
|
-
|
4
|
-
module Ey
|
5
|
-
module Core
|
6
|
-
module Cli
|
7
|
-
class Status < Subcommand
|
8
|
-
include Ey::Core::Cli::Helpers::LogStreaming
|
9
|
-
title "status"
|
10
|
-
summary "Show the deployment status of the app"
|
11
|
-
description <<-DESC
|
12
|
-
Show the current status of the most recent deployment of the specifed application and environment
|
13
|
-
DESC
|
14
|
-
|
15
|
-
option :environment,
|
16
|
-
short: "e",
|
17
|
-
long: "environment",
|
18
|
-
description: "Name or id of the environment to deploy to.",
|
19
|
-
argument: "Environment"
|
20
|
-
|
21
|
-
option :account,
|
22
|
-
short: 'c',
|
23
|
-
long: 'account',
|
24
|
-
description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
|
25
|
-
argument: 'Account name or id'
|
26
|
-
|
27
|
-
option :app,
|
28
|
-
short: "a",
|
29
|
-
long: "app",
|
30
|
-
description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
|
31
|
-
argument: "app"
|
32
|
-
|
33
|
-
switch :tail,
|
34
|
-
long: "tail",
|
35
|
-
description: "tail in-progress deployment log"
|
36
|
-
|
37
|
-
def handle
|
38
|
-
operator, environment = core_operator_and_environment_for(self.options)
|
39
|
-
app = core_application_for(environment, self.options)
|
40
|
-
deploy = environment.latest_deploy(app)
|
41
|
-
|
42
|
-
puts environment.release_label
|
43
|
-
puts "#{environment.servers.size} servers"
|
44
|
-
environment.servers.each do |s|
|
45
|
-
puts [s.provisioned_id, s.role, s.state].join(" ")
|
46
|
-
end
|
47
|
-
if deploy
|
48
|
-
ap deploy
|
49
|
-
if switch_active?(:tail)
|
50
|
-
stream_deploy_log(deploy.request)
|
51
|
-
end
|
52
|
-
else
|
53
|
-
puts "Never Deployed"
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
1
|
+
require 'ey-core/cli/subcommand'
|
2
|
+
require 'ey-core/cli/helpers/log_streaming'
|
3
|
+
|
4
|
+
module Ey
|
5
|
+
module Core
|
6
|
+
module Cli
|
7
|
+
class Status < Subcommand
|
8
|
+
include Ey::Core::Cli::Helpers::LogStreaming
|
9
|
+
title "status"
|
10
|
+
summary "Show the deployment status of the app"
|
11
|
+
description <<-DESC
|
12
|
+
Show the current status of the most recent deployment of the specifed application and environment
|
13
|
+
DESC
|
14
|
+
|
15
|
+
option :environment,
|
16
|
+
short: "e",
|
17
|
+
long: "environment",
|
18
|
+
description: "Name or id of the environment to deploy to.",
|
19
|
+
argument: "Environment"
|
20
|
+
|
21
|
+
option :account,
|
22
|
+
short: 'c',
|
23
|
+
long: 'account',
|
24
|
+
description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
|
25
|
+
argument: 'Account name or id'
|
26
|
+
|
27
|
+
option :app,
|
28
|
+
short: "a",
|
29
|
+
long: "app",
|
30
|
+
description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
|
31
|
+
argument: "app"
|
32
|
+
|
33
|
+
switch :tail,
|
34
|
+
long: "tail",
|
35
|
+
description: "tail in-progress deployment log"
|
36
|
+
|
37
|
+
def handle
|
38
|
+
operator, environment = core_operator_and_environment_for(self.options)
|
39
|
+
app = core_application_for(environment, self.options)
|
40
|
+
deploy = environment.latest_deploy(app)
|
41
|
+
|
42
|
+
puts environment.release_label
|
43
|
+
puts "#{environment.servers.size} servers"
|
44
|
+
environment.servers.each do |s|
|
45
|
+
puts [s.provisioned_id, s.role, s.state].join(" ")
|
46
|
+
end
|
47
|
+
if deploy
|
48
|
+
ap deploy
|
49
|
+
if switch_active?(:tail)
|
50
|
+
stream_deploy_log(deploy.request)
|
51
|
+
end
|
52
|
+
else
|
53
|
+
puts "Never Deployed"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -1,53 +1,53 @@
|
|
1
|
-
require 'belafonte'
|
2
|
-
require 'colorize'
|
3
|
-
require 'table_print'
|
4
|
-
require 'ey-core'
|
5
|
-
require 'ey-core/cli/helpers/core'
|
6
|
-
|
7
|
-
module Ey
|
8
|
-
module Core
|
9
|
-
module Cli
|
10
|
-
class Subcommand < Belafonte::App
|
11
|
-
include Ey::Core::Cli::Helpers::Core
|
12
|
-
|
13
|
-
def setup
|
14
|
-
$stdout = stdout
|
15
|
-
$stderr = stderr
|
16
|
-
$stdin = stdin
|
17
|
-
$kernel = kernel
|
18
|
-
end
|
19
|
-
|
20
|
-
def run_handle
|
21
|
-
super
|
22
|
-
rescue Ey::Core::Response::Error => e
|
23
|
-
if ENV["DEBUG"]
|
24
|
-
puts e.inspect
|
25
|
-
puts e.backtrace
|
26
|
-
end
|
27
|
-
handle_core_error(e)
|
28
|
-
rescue => e
|
29
|
-
if ENV["DEBUG"]
|
30
|
-
puts e.inspect
|
31
|
-
puts e.backtrace
|
32
|
-
end
|
33
|
-
stderr.puts "Error:".red
|
34
|
-
stderr.puts Wrapomatic.wrap(e.message, indents: 1)
|
35
|
-
raise SystemExit.new(255)
|
36
|
-
end
|
37
|
-
|
38
|
-
#TODO: a lot more errors that would could handle with nice messages, eventually this should probably be it's own class
|
39
|
-
def handle_core_error(e)
|
40
|
-
stderr.puts "Error: #{e.error_type}".red
|
41
|
-
(e.response.body["errors"] || [e.message]).each do |message|
|
42
|
-
stderr.puts Wrapomatic.wrap(message, indents: 1)
|
43
|
-
end
|
44
|
-
if e.is_a?(Ey::Core::Response::Unauthorized)
|
45
|
-
stderr.puts "Check the contents of ~/.ey-core vs https://cloud.engineyard.com/cli"
|
46
|
-
end
|
47
|
-
raise SystemExit.new(255)
|
48
|
-
end
|
49
|
-
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
1
|
+
require 'belafonte'
|
2
|
+
require 'colorize'
|
3
|
+
require 'table_print'
|
4
|
+
require 'ey-core'
|
5
|
+
require 'ey-core/cli/helpers/core'
|
6
|
+
|
7
|
+
module Ey
|
8
|
+
module Core
|
9
|
+
module Cli
|
10
|
+
class Subcommand < Belafonte::App
|
11
|
+
include Ey::Core::Cli::Helpers::Core
|
12
|
+
|
13
|
+
def setup
|
14
|
+
$stdout = stdout
|
15
|
+
$stderr = stderr
|
16
|
+
$stdin = stdin
|
17
|
+
$kernel = kernel
|
18
|
+
end
|
19
|
+
|
20
|
+
def run_handle
|
21
|
+
super
|
22
|
+
rescue Ey::Core::Response::Error => e
|
23
|
+
if ENV["DEBUG"]
|
24
|
+
puts e.inspect
|
25
|
+
puts e.backtrace
|
26
|
+
end
|
27
|
+
handle_core_error(e)
|
28
|
+
rescue => e
|
29
|
+
if ENV["DEBUG"]
|
30
|
+
puts e.inspect
|
31
|
+
puts e.backtrace
|
32
|
+
end
|
33
|
+
stderr.puts "Error:".red
|
34
|
+
stderr.puts Wrapomatic.wrap(e.message, indents: 1)
|
35
|
+
raise SystemExit.new(255)
|
36
|
+
end
|
37
|
+
|
38
|
+
#TODO: a lot more errors that would could handle with nice messages, eventually this should probably be it's own class
|
39
|
+
def handle_core_error(e)
|
40
|
+
stderr.puts "Error: #{e.error_type}".red
|
41
|
+
(e.response.body["errors"] || [e.message]).each do |message|
|
42
|
+
stderr.puts Wrapomatic.wrap(message, indents: 1)
|
43
|
+
end
|
44
|
+
if e.is_a?(Ey::Core::Response::Unauthorized)
|
45
|
+
stderr.puts "Check the contents of ~/.ey-core vs https://cloud.engineyard.com/cli"
|
46
|
+
end
|
47
|
+
raise SystemExit.new(255)
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -1,58 +1,58 @@
|
|
1
|
-
require 'ey-core/cli/subcommand'
|
2
|
-
|
3
|
-
module Ey
|
4
|
-
module Core
|
5
|
-
module Cli
|
6
|
-
class TimeoutDeploy < Subcommand
|
7
|
-
title "timeout-deploy"
|
8
|
-
summary "Fail a stuck unfinished deployment"
|
9
|
-
description <<-DESC
|
10
|
-
NOTICE: Timing out a deploy does not stop currently running deploy
|
11
|
-
processes.
|
12
|
-
|
13
|
-
The latest running deployment will be marked as failed, allowing a
|
14
|
-
new deployment to be run. It is possible to mark a potentially successful
|
15
|
-
deployment as failed. Only run this when a deployment is known to be
|
16
|
-
wrongly unfinished/stuck and when further deployments are blocked.
|
17
|
-
DESC
|
18
|
-
|
19
|
-
option :environment,
|
20
|
-
short: "e",
|
21
|
-
long: "environment",
|
22
|
-
description: "Name or id of the environment to deploy to.",
|
23
|
-
argument: "Environment"
|
24
|
-
|
25
|
-
option :account,
|
26
|
-
short: 'c',
|
27
|
-
long: 'account',
|
28
|
-
description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
|
29
|
-
argument: 'Account name or id'
|
30
|
-
|
31
|
-
option :app,
|
32
|
-
short: "a",
|
33
|
-
long: "app",
|
34
|
-
description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
|
35
|
-
argument: "app"
|
36
|
-
|
37
|
-
option :message,
|
38
|
-
short: "m",
|
39
|
-
long: "message",
|
40
|
-
description: "Custom message for why the deploy is timed out",
|
41
|
-
argument: "message"
|
42
|
-
|
43
|
-
def handle
|
44
|
-
operator, environment = core_operator_and_environment_for(self.options)
|
45
|
-
app = core_application_for(environment, options)
|
46
|
-
deployment = core_client.
|
47
|
-
deployments.
|
48
|
-
first(environment_id: environment.id, application_id: app.id)
|
49
|
-
|
50
|
-
puts "Timing out the most recent deployment (deploy started at: #{deployment.started_at})".green
|
51
|
-
|
52
|
-
deployment.timeout(option(:message))
|
53
|
-
ap deployment
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
1
|
+
require 'ey-core/cli/subcommand'
|
2
|
+
|
3
|
+
module Ey
|
4
|
+
module Core
|
5
|
+
module Cli
|
6
|
+
class TimeoutDeploy < Subcommand
|
7
|
+
title "timeout-deploy"
|
8
|
+
summary "Fail a stuck unfinished deployment"
|
9
|
+
description <<-DESC
|
10
|
+
NOTICE: Timing out a deploy does not stop currently running deploy
|
11
|
+
processes.
|
12
|
+
|
13
|
+
The latest running deployment will be marked as failed, allowing a
|
14
|
+
new deployment to be run. It is possible to mark a potentially successful
|
15
|
+
deployment as failed. Only run this when a deployment is known to be
|
16
|
+
wrongly unfinished/stuck and when further deployments are blocked.
|
17
|
+
DESC
|
18
|
+
|
19
|
+
option :environment,
|
20
|
+
short: "e",
|
21
|
+
long: "environment",
|
22
|
+
description: "Name or id of the environment to deploy to.",
|
23
|
+
argument: "Environment"
|
24
|
+
|
25
|
+
option :account,
|
26
|
+
short: 'c',
|
27
|
+
long: 'account',
|
28
|
+
description: 'Name or ID of the account that the environment resides in. If no account is specified, the app will deploy to the first environment that meets the criteria, in the accounts you have access to.',
|
29
|
+
argument: 'Account name or id'
|
30
|
+
|
31
|
+
option :app,
|
32
|
+
short: "a",
|
33
|
+
long: "app",
|
34
|
+
description: "Application name or ID to deploy. If :account is not specified, this will be the first app that matches the criteria in the accounts you have access to.",
|
35
|
+
argument: "app"
|
36
|
+
|
37
|
+
option :message,
|
38
|
+
short: "m",
|
39
|
+
long: "message",
|
40
|
+
description: "Custom message for why the deploy is timed out",
|
41
|
+
argument: "message"
|
42
|
+
|
43
|
+
def handle
|
44
|
+
operator, environment = core_operator_and_environment_for(self.options)
|
45
|
+
app = core_application_for(environment, options)
|
46
|
+
deployment = core_client.
|
47
|
+
deployments.
|
48
|
+
first(environment_id: environment.id, application_id: app.id)
|
49
|
+
|
50
|
+
puts "Timing out the most recent deployment (deploy started at: #{deployment.started_at})".green
|
51
|
+
|
52
|
+
deployment.timeout(option(:message))
|
53
|
+
ap deployment
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|