ey-core 3.4.4 → 3.4.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +26 -23
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/.travis.yml +23 -23
- data/CHANGELOG.md +166 -166
- data/Gemfile +21 -21
- data/Guardfile +15 -15
- data/LICENSE.txt +19 -19
- data/README.md +78 -78
- data/Rakefile +18 -18
- data/bin/console +4 -0
- data/bin/ey-core +4 -4
- 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 +51 -51
- data/features/accounts.feature +13 -13
- data/features/applications.feature +29 -29
- data/features/current_user.feature +14 -14
- 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 +23 -23
- data/features/step_definitions/applications_steps.rb +46 -46
- data/features/step_definitions/current_user_steps.rb +11 -11
- data/features/step_definitions/deprecated_command_steps.rb +3 -3
- data/features/step_definitions/environments_steps.rb +37 -37
- 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/fake_kernel.rb +23 -23
- data/features/support/io.rb +5 -5
- data/features/support/mock_api.rb +21 -21
- data/features/support/output_helpers.rb +7 -7
- data/features/support/resource_helpers.rb +189 -189
- 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 +123 -123
- 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 +196 -196
- 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 +76 -76
- 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 +65 -65
- 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 +41 -41
- data/lib/ey-core/cli/ssh.rb +150 -150
- 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 +302 -302
- data/lib/ey-core/client/real.rb +93 -93
- data/lib/ey-core/client.rb +442 -442
- 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_groups.rb +8 -8
- 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/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/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 +70 -70
- 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 +57 -57
- data/lib/ey-core/models/alert.rb +100 -99
- data/lib/ey-core/models/application.rb +32 -32
- 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_group.rb +49 -49
- data/lib/ey-core/models/backup_file.rb +52 -52
- 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/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 +30 -30
- data/lib/ey-core/models/environment.rb +242 -242
- data/lib/ey-core/models/environment_plan_usage.rb +10 -10
- 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 +105 -105
- 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/ssl_certificate.rb +44 -44
- 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/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 +33 -33
- data/lib/ey-core/requests/create_addon.rb +35 -35
- data/lib/ey-core/requests/create_address.rb +53 -53
- data/lib/ey-core/requests/create_alert.rb +63 -63
- data/lib/ey-core/requests/create_application.rb +72 -72
- data/lib/ey-core/requests/create_application_archive.rb +44 -44
- data/lib/ey-core/requests/create_auto_scaling_group.rb +62 -62
- 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 +76 -76
- 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 +52 -52
- data/lib/ey-core/requests/deploy_environment_application.rb +60 -60
- 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_group.rb +44 -44
- 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_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_group.rb +21 -21
- data/lib/ey-core/requests/get_auto_scaling_groups.rb +29 -29
- 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_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/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_group.rb +45 -45
- 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_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/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 +15 -15
- 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 +56 -56
- 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_groups_spec.rb +28 -28
- 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/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 +20 -20
- 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 +23 -23
- 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 +6 -5
data/lib/ey-core/cli/deploy.rb
CHANGED
@@ -1,123 +1,123 @@
|
|
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 Deploy < Subcommand
|
8
|
-
include Ey::Core::Cli::Helpers::LogStreaming
|
9
|
-
title "deploy"
|
10
|
-
summary "Deploy your application"
|
11
|
-
|
12
|
-
option :environment,
|
13
|
-
short: "e",
|
14
|
-
long: "environment",
|
15
|
-
description: "Name or id of the environment to deploy to.",
|
16
|
-
argument: "Environment"
|
17
|
-
|
18
|
-
option :account,
|
19
|
-
short: 'c',
|
20
|
-
long: 'account',
|
21
|
-
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.',
|
22
|
-
argument: 'Account name or id'
|
23
|
-
|
24
|
-
option :ref,
|
25
|
-
short: "r",
|
26
|
-
long: "ref",
|
27
|
-
description: "A git reference to deploy.",
|
28
|
-
argument: "ref"
|
29
|
-
|
30
|
-
option :migrate,
|
31
|
-
short: "m",
|
32
|
-
long: "migrate",
|
33
|
-
description: "The migration command to run. This option has a 50 character limit.",
|
34
|
-
argument: "migrate"
|
35
|
-
|
36
|
-
option :app,
|
37
|
-
short: "a",
|
38
|
-
long: "app",
|
39
|
-
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.",
|
40
|
-
argument: "app"
|
41
|
-
|
42
|
-
switch :no_wait,
|
43
|
-
long: "no-wait",
|
44
|
-
description: "Don't wait for deploy to finish, exit after deploy is started"
|
45
|
-
|
46
|
-
switch :verbose,
|
47
|
-
short: "v",
|
48
|
-
long: "verbose",
|
49
|
-
description: "Deploy with verbose output"
|
50
|
-
|
51
|
-
switch :verbose,
|
52
|
-
short: "v",
|
53
|
-
long: "verbose",
|
54
|
-
description: "Stream deploy output to this console. Alias to stream for backwards compatibility."
|
55
|
-
|
56
|
-
switch :no_migrate,
|
57
|
-
long: "no-migrate",
|
58
|
-
description: "Skip migration."
|
59
|
-
|
60
|
-
def handle
|
61
|
-
operator, environment = core_operator_and_environment_for(self.options)
|
62
|
-
if operator.is_a?(Ey::Core::Client::Account)
|
63
|
-
abort <<-EOF
|
64
|
-
Found account #{operator.name} but requested account #{option(:account)}.
|
65
|
-
Use the ID of the account instead of the name.
|
66
|
-
This can be retrieved by running "ey accounts".
|
67
|
-
EOF
|
68
|
-
.red unless operator.name == option(:account) || operator.id == option(:account)
|
69
|
-
end
|
70
|
-
|
71
|
-
unless environment
|
72
|
-
abort "Unable to locate environment #{option[:environment]} in #{operator.name}".red
|
73
|
-
end
|
74
|
-
|
75
|
-
unless option(:account)
|
76
|
-
self.options.merge!(environment: environment)
|
77
|
-
end
|
78
|
-
|
79
|
-
app = core_application_for(environment, self.options)
|
80
|
-
|
81
|
-
deploy_options = {verbose: options[:verbose], cli_args: ARGV}
|
82
|
-
latest_deploy = nil
|
83
|
-
if options[:ref]
|
84
|
-
deploy_options.merge!(ref: option(:ref))
|
85
|
-
else
|
86
|
-
puts "--ref not provided, checking latest deploy...".yellow
|
87
|
-
latest_deploy ||= environment.latest_deploy(app)
|
88
|
-
if latest_deploy && latest_deploy.ref
|
89
|
-
deploy_options[:ref] = latest_deploy.ref
|
90
|
-
else
|
91
|
-
raise "--ref is required (HEAD is the typical choice)"
|
92
|
-
end
|
93
|
-
end
|
94
|
-
if (option(:migrate) || switch_active?(:no_migrate))
|
95
|
-
deploy_options.merge!(migrate_command: option(:migrate)) if option(:migrate)
|
96
|
-
deploy_options.merge!(migrate_command: '') if switch_active?(:no_migrate)
|
97
|
-
else
|
98
|
-
puts "missing migrate option (--migrate or --no-migrate), checking latest deploy...".yellow
|
99
|
-
latest_deploy ||= environment.latest_deploy(app)
|
100
|
-
if latest_deploy
|
101
|
-
deploy_options.merge!(migrate_command: (latest_deploy.migrate && latest_deploy.migrate_command) || '')
|
102
|
-
else
|
103
|
-
raise "either --migrate or --no-migrate needs to be specified"
|
104
|
-
end
|
105
|
-
end
|
106
|
-
request = environment.deploy(app, deploy_options)
|
107
|
-
|
108
|
-
puts <<-EOF
|
109
|
-
Deploy started to environment: #{environment.name} with application: #{app.name}
|
110
|
-
Request ID: #{request.id}
|
111
|
-
EOF
|
112
|
-
ap request
|
113
|
-
ap request.resource
|
114
|
-
if switch_active?(:no_wait)
|
115
|
-
puts("Deploy started".green + " (use status command with --tail to view output)")
|
116
|
-
else
|
117
|
-
stream_deploy_log(request)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
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 Deploy < Subcommand
|
8
|
+
include Ey::Core::Cli::Helpers::LogStreaming
|
9
|
+
title "deploy"
|
10
|
+
summary "Deploy your application"
|
11
|
+
|
12
|
+
option :environment,
|
13
|
+
short: "e",
|
14
|
+
long: "environment",
|
15
|
+
description: "Name or id of the environment to deploy to.",
|
16
|
+
argument: "Environment"
|
17
|
+
|
18
|
+
option :account,
|
19
|
+
short: 'c',
|
20
|
+
long: 'account',
|
21
|
+
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.',
|
22
|
+
argument: 'Account name or id'
|
23
|
+
|
24
|
+
option :ref,
|
25
|
+
short: "r",
|
26
|
+
long: "ref",
|
27
|
+
description: "A git reference to deploy.",
|
28
|
+
argument: "ref"
|
29
|
+
|
30
|
+
option :migrate,
|
31
|
+
short: "m",
|
32
|
+
long: "migrate",
|
33
|
+
description: "The migration command to run. This option has a 50 character limit.",
|
34
|
+
argument: "migrate"
|
35
|
+
|
36
|
+
option :app,
|
37
|
+
short: "a",
|
38
|
+
long: "app",
|
39
|
+
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.",
|
40
|
+
argument: "app"
|
41
|
+
|
42
|
+
switch :no_wait,
|
43
|
+
long: "no-wait",
|
44
|
+
description: "Don't wait for deploy to finish, exit after deploy is started"
|
45
|
+
|
46
|
+
switch :verbose,
|
47
|
+
short: "v",
|
48
|
+
long: "verbose",
|
49
|
+
description: "Deploy with verbose output"
|
50
|
+
|
51
|
+
switch :verbose,
|
52
|
+
short: "v",
|
53
|
+
long: "verbose",
|
54
|
+
description: "Stream deploy output to this console. Alias to stream for backwards compatibility."
|
55
|
+
|
56
|
+
switch :no_migrate,
|
57
|
+
long: "no-migrate",
|
58
|
+
description: "Skip migration."
|
59
|
+
|
60
|
+
def handle
|
61
|
+
operator, environment = core_operator_and_environment_for(self.options)
|
62
|
+
if operator.is_a?(Ey::Core::Client::Account)
|
63
|
+
abort <<-EOF
|
64
|
+
Found account #{operator.name} but requested account #{option(:account)}.
|
65
|
+
Use the ID of the account instead of the name.
|
66
|
+
This can be retrieved by running "ey accounts".
|
67
|
+
EOF
|
68
|
+
.red unless operator.name == option(:account) || operator.id == option(:account)
|
69
|
+
end
|
70
|
+
|
71
|
+
unless environment
|
72
|
+
abort "Unable to locate environment #{option[:environment]} in #{operator.name}".red
|
73
|
+
end
|
74
|
+
|
75
|
+
unless option(:account)
|
76
|
+
self.options.merge!(environment: environment)
|
77
|
+
end
|
78
|
+
|
79
|
+
app = core_application_for(environment, self.options)
|
80
|
+
|
81
|
+
deploy_options = {verbose: options[:verbose], cli_args: ARGV}
|
82
|
+
latest_deploy = nil
|
83
|
+
if options[:ref]
|
84
|
+
deploy_options.merge!(ref: option(:ref))
|
85
|
+
else
|
86
|
+
puts "--ref not provided, checking latest deploy...".yellow
|
87
|
+
latest_deploy ||= environment.latest_deploy(app)
|
88
|
+
if latest_deploy && latest_deploy.ref
|
89
|
+
deploy_options[:ref] = latest_deploy.ref
|
90
|
+
else
|
91
|
+
raise "--ref is required (HEAD is the typical choice)"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
if (option(:migrate) || switch_active?(:no_migrate))
|
95
|
+
deploy_options.merge!(migrate_command: option(:migrate)) if option(:migrate)
|
96
|
+
deploy_options.merge!(migrate_command: '') if switch_active?(:no_migrate)
|
97
|
+
else
|
98
|
+
puts "missing migrate option (--migrate or --no-migrate), checking latest deploy...".yellow
|
99
|
+
latest_deploy ||= environment.latest_deploy(app)
|
100
|
+
if latest_deploy
|
101
|
+
deploy_options.merge!(migrate_command: (latest_deploy.migrate && latest_deploy.migrate_command) || '')
|
102
|
+
else
|
103
|
+
raise "either --migrate or --no-migrate needs to be specified"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
request = environment.deploy(app, deploy_options)
|
107
|
+
|
108
|
+
puts <<-EOF
|
109
|
+
Deploy started to environment: #{environment.name} with application: #{app.name}
|
110
|
+
Request ID: #{request.id}
|
111
|
+
EOF
|
112
|
+
ap request
|
113
|
+
ap request.resource
|
114
|
+
if switch_active?(:no_wait)
|
115
|
+
puts("Deploy started".green + " (use status command with --tail to view output)")
|
116
|
+
else
|
117
|
+
stream_deploy_log(request)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -1,39 +1,39 @@
|
|
1
|
-
require 'ey-core/cli/subcommand'
|
2
|
-
require 'ey-core/cli/helpers/stream_printer'
|
3
|
-
|
4
|
-
module Ey
|
5
|
-
module Core
|
6
|
-
module Cli
|
7
|
-
class Environments < Subcommand
|
8
|
-
include Ey::Core::Cli::Helpers::StreamPrinter
|
9
|
-
title "environments"
|
10
|
-
summary "Retrieve a list of Engine Yard environments that you have access to."
|
11
|
-
|
12
|
-
option :account,
|
13
|
-
short: 'c',
|
14
|
-
long: 'account',
|
15
|
-
description: 'Filter by account name or id',
|
16
|
-
argument: 'Account'
|
17
|
-
|
18
|
-
def handle
|
19
|
-
if option(:account)
|
20
|
-
stream_print("ID" => 10, "Name" => 50) do |printer|
|
21
|
-
core_account.environments.each_entry do |env|
|
22
|
-
printer.print(env.id, env.name)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
else
|
26
|
-
stream_print("ID" => 10, "Name" => 50, "Account" => 50) do |printer|
|
27
|
-
core_accounts.each_entry do |account|
|
28
|
-
account.environments.each_entry do |env|
|
29
|
-
printer.print(env.id, env.name, account.name)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
1
|
+
require 'ey-core/cli/subcommand'
|
2
|
+
require 'ey-core/cli/helpers/stream_printer'
|
3
|
+
|
4
|
+
module Ey
|
5
|
+
module Core
|
6
|
+
module Cli
|
7
|
+
class Environments < Subcommand
|
8
|
+
include Ey::Core::Cli::Helpers::StreamPrinter
|
9
|
+
title "environments"
|
10
|
+
summary "Retrieve a list of Engine Yard environments that you have access to."
|
11
|
+
|
12
|
+
option :account,
|
13
|
+
short: 'c',
|
14
|
+
long: 'account',
|
15
|
+
description: 'Filter by account name or id',
|
16
|
+
argument: 'Account'
|
17
|
+
|
18
|
+
def handle
|
19
|
+
if option(:account)
|
20
|
+
stream_print("ID" => 10, "Name" => 50) do |printer|
|
21
|
+
core_account.environments.each_entry do |env|
|
22
|
+
printer.print(env.id, env.name)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
else
|
26
|
+
stream_print("ID" => 10, "Name" => 50, "Account" => 50) do |printer|
|
27
|
+
core_accounts.each_entry do |account|
|
28
|
+
account.environments.each_entry do |env|
|
29
|
+
printer.print(env.id, env.name, account.name)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/lib/ey-core/cli/errors.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
module Ey
|
2
|
-
module Core
|
3
|
-
module Cli
|
4
|
-
RecipesNotFound = Class.new(ArgumentError)
|
5
|
-
NoCommand = Class.new(ArgumentError)
|
6
|
-
NoRepository = Class.new(ArgumentError)
|
7
|
-
RecipesExist = Class.new(ArgumentError)
|
8
|
-
AmbiguousSearch = Class.new(ArgumentError)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
1
|
+
module Ey
|
2
|
+
module Core
|
3
|
+
module Cli
|
4
|
+
RecipesNotFound = Class.new(ArgumentError)
|
5
|
+
NoCommand = Class.new(ArgumentError)
|
6
|
+
NoRepository = Class.new(ArgumentError)
|
7
|
+
RecipesExist = Class.new(ArgumentError)
|
8
|
+
AmbiguousSearch = Class.new(ArgumentError)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/ey-core/cli/help.rb
CHANGED
@@ -1,30 +1,30 @@
|
|
1
|
-
require 'belafonte'
|
2
|
-
|
3
|
-
module Ey
|
4
|
-
module Core
|
5
|
-
module Cli
|
6
|
-
class Help < Belafonte::App
|
7
|
-
title 'help'
|
8
|
-
summary 'Print out the help docs'
|
9
|
-
|
10
|
-
arg :command_line,
|
11
|
-
times: :unlimited
|
12
|
-
|
13
|
-
def handle
|
14
|
-
Main.new(
|
15
|
-
command_line.unshift('-h'),
|
16
|
-
stdin,
|
17
|
-
stdout,
|
18
|
-
stderr,
|
19
|
-
kernel
|
20
|
-
).execute!
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
def command_line
|
25
|
-
arg(:command_line)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
1
|
+
require 'belafonte'
|
2
|
+
|
3
|
+
module Ey
|
4
|
+
module Core
|
5
|
+
module Cli
|
6
|
+
class Help < Belafonte::App
|
7
|
+
title 'help'
|
8
|
+
summary 'Print out the help docs'
|
9
|
+
|
10
|
+
arg :command_line,
|
11
|
+
times: :unlimited
|
12
|
+
|
13
|
+
def handle
|
14
|
+
Main.new(
|
15
|
+
command_line.unshift('-h'),
|
16
|
+
stdin,
|
17
|
+
stdout,
|
18
|
+
stderr,
|
19
|
+
kernel
|
20
|
+
).execute!
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
def command_line
|
25
|
+
arg(:command_line)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,70 +1,70 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
require 'rubygems/package'
|
3
|
-
require 'zlib'
|
4
|
-
|
5
|
-
module Ey
|
6
|
-
module Core
|
7
|
-
module Cli
|
8
|
-
module Helpers
|
9
|
-
module Archive
|
10
|
-
def gzip(tarfile)
|
11
|
-
gz = StringIO.new("")
|
12
|
-
zipper = Zlib::GzipWriter.new(gz)
|
13
|
-
zipper.write tarfile.string
|
14
|
-
zipper.close # this is necessary!
|
15
|
-
|
16
|
-
# z was closed to write the gzip footer, so
|
17
|
-
# now we need a new StringIO
|
18
|
-
StringIO.new gz.string
|
19
|
-
end
|
20
|
-
|
21
|
-
def archive_directory(path)
|
22
|
-
tarfile = StringIO.new("")
|
23
|
-
Gem::Package::TarWriter.new(tarfile) do |tar|
|
24
|
-
Dir[File.join(path, "**/*")].each do |file|
|
25
|
-
mode = File.stat(file).mode
|
26
|
-
relative_file = "cookbooks/#{file.sub(/^#{Regexp::escape path}\/?/, '')}"
|
27
|
-
|
28
|
-
if File.directory?(file)
|
29
|
-
tar.mkdir relative_file, mode
|
30
|
-
else
|
31
|
-
tar.add_file relative_file, mode do |tf|
|
32
|
-
File.open(file, "rb") { |f| tf.write f.read }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
tarfile.rewind
|
39
|
-
gzip(tarfile)
|
40
|
-
end
|
41
|
-
|
42
|
-
def ungzip(tarfile)
|
43
|
-
zipped = Zlib::GzipReader.new(tarfile)
|
44
|
-
unzipped = StringIO.new(zipped.read)
|
45
|
-
zipped.close
|
46
|
-
unzipped
|
47
|
-
end
|
48
|
-
|
49
|
-
def untar(io, destination)
|
50
|
-
Gem::Package::TarReader.new io do |tar|
|
51
|
-
tar.each do |tarfile|
|
52
|
-
destination_file = File.join destination, tarfile.full_name
|
53
|
-
|
54
|
-
if tarfile.directory?
|
55
|
-
FileUtils.mkdir_p destination_file
|
56
|
-
else
|
57
|
-
destination_directory = File.dirname(destination_file)
|
58
|
-
FileUtils.mkdir_p destination_directory unless File.directory?(destination_directory)
|
59
|
-
File.open destination_file, "wb" do |file|
|
60
|
-
file.print tarfile.read
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
1
|
+
require 'stringio'
|
2
|
+
require 'rubygems/package'
|
3
|
+
require 'zlib'
|
4
|
+
|
5
|
+
module Ey
|
6
|
+
module Core
|
7
|
+
module Cli
|
8
|
+
module Helpers
|
9
|
+
module Archive
|
10
|
+
def gzip(tarfile)
|
11
|
+
gz = StringIO.new("")
|
12
|
+
zipper = Zlib::GzipWriter.new(gz)
|
13
|
+
zipper.write tarfile.string
|
14
|
+
zipper.close # this is necessary!
|
15
|
+
|
16
|
+
# z was closed to write the gzip footer, so
|
17
|
+
# now we need a new StringIO
|
18
|
+
StringIO.new gz.string
|
19
|
+
end
|
20
|
+
|
21
|
+
def archive_directory(path)
|
22
|
+
tarfile = StringIO.new("")
|
23
|
+
Gem::Package::TarWriter.new(tarfile) do |tar|
|
24
|
+
Dir[File.join(path, "**/*")].each do |file|
|
25
|
+
mode = File.stat(file).mode
|
26
|
+
relative_file = "cookbooks/#{file.sub(/^#{Regexp::escape path}\/?/, '')}"
|
27
|
+
|
28
|
+
if File.directory?(file)
|
29
|
+
tar.mkdir relative_file, mode
|
30
|
+
else
|
31
|
+
tar.add_file relative_file, mode do |tf|
|
32
|
+
File.open(file, "rb") { |f| tf.write f.read }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
tarfile.rewind
|
39
|
+
gzip(tarfile)
|
40
|
+
end
|
41
|
+
|
42
|
+
def ungzip(tarfile)
|
43
|
+
zipped = Zlib::GzipReader.new(tarfile)
|
44
|
+
unzipped = StringIO.new(zipped.read)
|
45
|
+
zipped.close
|
46
|
+
unzipped
|
47
|
+
end
|
48
|
+
|
49
|
+
def untar(io, destination)
|
50
|
+
Gem::Package::TarReader.new io do |tar|
|
51
|
+
tar.each do |tarfile|
|
52
|
+
destination_file = File.join destination, tarfile.full_name
|
53
|
+
|
54
|
+
if tarfile.directory?
|
55
|
+
FileUtils.mkdir_p destination_file
|
56
|
+
else
|
57
|
+
destination_directory = File.dirname(destination_file)
|
58
|
+
FileUtils.mkdir_p destination_directory unless File.directory?(destination_directory)
|
59
|
+
File.open destination_file, "wb" do |file|
|
60
|
+
file.print tarfile.read
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -1,51 +1,51 @@
|
|
1
|
-
require 'ey-core/cli/errors'
|
2
|
-
|
3
|
-
module Ey
|
4
|
-
module Core
|
5
|
-
module Cli
|
6
|
-
module Helpers
|
7
|
-
module Chef
|
8
|
-
def run_chef(type, environment, options = {})
|
9
|
-
no_wait = options.delete(:no_wait)
|
10
|
-
options[:streaming] = true unless no_wait
|
11
|
-
request = environment.apply(type, options)
|
12
|
-
puts "Started #{type} chef run".green
|
13
|
-
if no_wait
|
14
|
-
return
|
15
|
-
end
|
16
|
-
streamable_instance_update = nil
|
17
|
-
if request.read_channel
|
18
|
-
request.subscribe do |m|
|
19
|
-
print m["message"] if m.is_a?(Hash)
|
20
|
-
end
|
21
|
-
puts "" # fix console output from stream
|
22
|
-
else
|
23
|
-
request.wait_for { |r| r.ready? }
|
24
|
-
end
|
25
|
-
if request.successful
|
26
|
-
puts "#{type.capitalize} chef run completed".green
|
27
|
-
else
|
28
|
-
puts "#{type.capitalize} chef run failed".red
|
29
|
-
ap request
|
30
|
-
if server = environment.servers.first
|
31
|
-
puts "For logs try `ey logs --server #{server.provisioned_id}` --environment #{environment.name}"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
def upload_recipes(environment, path="cookbooks/")
|
37
|
-
recipes_path = Pathname.new(path)
|
38
|
-
|
39
|
-
if recipes_path.exist? && recipes_path.to_s.match(/\.(tgz|tar\.gz)/)
|
40
|
-
environment.upload_recipes(recipes_path)
|
41
|
-
elsif recipes_path.exist?
|
42
|
-
environment.upload_recipes(archive_directory(path))
|
43
|
-
else
|
44
|
-
raise RecipesNotFound, "Recipes not found, expected to find chef recipes in: #{File.expand_path(recipes_path)}, use --file to specify a different path"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
1
|
+
require 'ey-core/cli/errors'
|
2
|
+
|
3
|
+
module Ey
|
4
|
+
module Core
|
5
|
+
module Cli
|
6
|
+
module Helpers
|
7
|
+
module Chef
|
8
|
+
def run_chef(type, environment, options = {})
|
9
|
+
no_wait = options.delete(:no_wait)
|
10
|
+
options[:streaming] = true unless no_wait
|
11
|
+
request = environment.apply(type, options)
|
12
|
+
puts "Started #{type} chef run".green
|
13
|
+
if no_wait
|
14
|
+
return
|
15
|
+
end
|
16
|
+
streamable_instance_update = nil
|
17
|
+
if request.read_channel
|
18
|
+
request.subscribe do |m|
|
19
|
+
print m["message"] if m.is_a?(Hash)
|
20
|
+
end
|
21
|
+
puts "" # fix console output from stream
|
22
|
+
else
|
23
|
+
request.wait_for { |r| r.ready? }
|
24
|
+
end
|
25
|
+
if request.successful
|
26
|
+
puts "#{type.capitalize} chef run completed".green
|
27
|
+
else
|
28
|
+
puts "#{type.capitalize} chef run failed".red
|
29
|
+
ap request
|
30
|
+
if server = environment.servers.first
|
31
|
+
puts "For logs try `ey logs --server #{server.provisioned_id}` --environment #{environment.name}"
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def upload_recipes(environment, path="cookbooks/")
|
37
|
+
recipes_path = Pathname.new(path)
|
38
|
+
|
39
|
+
if recipes_path.exist? && recipes_path.to_s.match(/\.(tgz|tar\.gz)/)
|
40
|
+
environment.upload_recipes(recipes_path)
|
41
|
+
elsif recipes_path.exist?
|
42
|
+
environment.upload_recipes(archive_directory(path))
|
43
|
+
else
|
44
|
+
raise RecipesNotFound, "Recipes not found, expected to find chef recipes in: #{File.expand_path(recipes_path)}, use --file to specify a different path"
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|