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/README.md
CHANGED
@@ -1,135 +1,135 @@
|
|
1
|
-
# Ey::Core #
|
2
|
-
|
3
|
-
Official Engine Yard Core API Ruby client and CLI utility.
|
4
|
-
|
5
|
-
## Installation ##
|
6
|
-
|
7
|
-
Add this line to your application's Gemfile:
|
8
|
-
|
9
|
-
gem 'ey-core'
|
10
|
-
|
11
|
-
And then execute:
|
12
|
-
|
13
|
-
$ bundle
|
14
|
-
|
15
|
-
Or install it yourself for ad-hoc or CLI usage:
|
16
|
-
|
17
|
-
$ gem install ey-core
|
18
|
-
|
19
|
-
## Usage ##
|
20
|
-
|
21
|
-
There are two ways to use this gem: you can install it to use as a client library for writing your own Engine Yard Cloud integrations, or you can use the `ey-core` CLi app to use our curated integrations.
|
22
|
-
|
23
|
-
### CLI Usage ###
|
24
|
-
|
25
|
-
The CLI app, `ey-core`, is the replacement for the `ey` command that was provided by the now mostly deprecated`engineyard` gem. The old gem is still updated as need be, but is effectively just a slightly different UI for the `ey-core` command.
|
26
|
-
Like the `git` command, `ey-core` is like a gateway to other commands.
|
27
|
-
|
28
|
-
Rather than attempting to provide an exhaustive writeup of all of the commands provided by `ey-core`, this document will instead describe what are likely the most common use cases and leave you to read up on the remainder via the `help` command.
|
29
|
-
|
30
|
-
#### Use Case: Getting Help ####
|
31
|
-
|
32
|
-
Arguably the most important command in the app is `ey-core help`. Given no arguments, it provides the list of second-level commands avaiable for use. From that point, each argument is expected to be a command from the next level of the hierarchy.
|
33
|
-
|
34
|
-
For example, if one wishes to learn about the `servers` second-level command, they would do `ey-core help servers`.
|
35
|
-
|
36
|
-
For commands in even deeper levels, one just adds each level of chain after the `help` command. Try this in your terminal: `ey-core help recipes apply`
|
37
|
-
|
38
|
-
#### Use Case: Deploying An App ####
|
39
|
-
|
40
|
-
The `ey-core deploy` command allows one to deploy a new revision of an existing application in an existing environment. The command itself has several options, some of which may or may not be required depending on several factors. To guarantee the best result and remove a good deal of uncertainty in the process, we've opted to describe a somewhat verbose invocation of the command in this document.
|
41
|
-
|
42
|
-
Let's start with some assumptions:
|
43
|
-
|
44
|
-
* The name of our Engine Yard account is `MyAwesomeCompany` (you can get a real account name with `ey-core accounts`)
|
45
|
-
* That account has an environment named `awesome_production` (you can get a real environment name with `ey-core environments`)
|
46
|
-
* That account has an application named `awesome_app` (you can get a real application name with `ey-core applications`)
|
47
|
-
* The aforementioned application is already associated with the environment
|
48
|
-
|
49
|
-
As mentioned, some of the options for the `deploy` command are optional, and all of the topics discussed in our assumptions are effectively optional. That said, we suggest specifying *all* of these options to ensure absolutely that the proper application is deployed to the proper environment in the proper account.
|
50
|
-
|
51
|
-
All that said, to deploy the application to its latest git ref and the same migration command as the last deployment, you would issue the following command:
|
52
|
-
|
53
|
-
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app`
|
54
|
-
|
55
|
-
You can also specify a git ref to use if you'd like to deploy a specific version or branch of the app:
|
56
|
-
|
57
|
-
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app --ref feature/new-ui`
|
58
|
-
|
59
|
-
Say that you want to change the way your migrations are run during the deploy. You can specify the migration command:
|
60
|
-
|
61
|
-
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app --migrate 'bundle exec rake db:migrate:new_hotness'`
|
62
|
-
|
63
|
-
Additionally, if you wish to skip migrations for the deployment, you can do that, too:
|
64
|
-
|
65
|
-
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app --no-migrate`
|
66
|
-
|
67
|
-
Any of the invocations that we've talked about so far will stream the deployment log as it runs. If you'd rather do a fire-and-forget style deployment and check in on it later, you can add the `--no-wait` flag. If, however, you'd like to see even more information spit out during the deploy, you can add the `--verbose` flag.
|
68
|
-
|
69
|
-
That's about all there is to deployment so long as you consider the application, environment, and account to be required options. You can read more about any of the commands that we've mentioned in this use case by running the following in your terminal:
|
70
|
-
|
71
|
-
* `ey-core help accounts`
|
72
|
-
* `ey-core help applications`
|
73
|
-
* `ey-core help deploy`
|
74
|
-
* `ey-core help environments`
|
75
|
-
|
76
|
-
### Client Library Usage ###
|
77
|
-
|
78
|
-
Uses [cistern](https://github.com/lanej/cistern) to wrap RESTful resources nicely.
|
79
|
-
|
80
|
-
```ruby
|
81
|
-
client.users.current # =>
|
82
|
-
<Ey::Core::Client::User
|
83
|
-
id="0037000000uLmCe",
|
84
|
-
name="Josh Lane",
|
85
|
-
email="jlane@engineyard.com",
|
86
|
-
accounts_url="https://api.engineyard.com/users/0037000000uLmCe/accounts"
|
87
|
-
>
|
88
|
-
```
|
89
|
-
|
90
|
-
#### Authentication ####
|
91
|
-
|
92
|
-
* Via Token
|
93
|
-
|
94
|
-
```ruby
|
95
|
-
Ey::Core::Client.new(token: "943662ea7d0fad349eeae9f69adb521d")
|
96
|
-
```
|
97
|
-
|
98
|
-
* Via HMAC
|
99
|
-
|
100
|
-
```ruby
|
101
|
-
Ey::Core::Client.new(
|
102
|
-
:auth_id => "943662ea7d0fad",
|
103
|
-
:auth_key => "943662ea7d0fad349eeae9f69adb521d",
|
104
|
-
:logger => Logger.new(STDOUT),
|
105
|
-
)
|
106
|
-
```
|
107
|
-
|
108
|
-
#### Mock ####
|
109
|
-
|
110
|
-
Mock is disabled by default.
|
111
|
-
|
112
|
-
```ruby
|
113
|
-
Ey::Core::Client.mocking? # => false
|
114
|
-
Ey::Core::Client.mock!
|
115
|
-
Ey::Core::Client.mocking? # => true
|
116
|
-
```
|
117
|
-
|
118
|
-
Reset the mock
|
119
|
-
|
120
|
-
```ruby
|
121
|
-
Ey::Core::Client.reset!
|
122
|
-
```
|
123
|
-
|
124
|
-
#### Testing ####
|
125
|
-
|
126
|
-
By default, specs are run against the core mock. In order to run them against awsm mocked mode instead, run `MOCK_CORE=false bundle exec rspec`
|
127
|
-
|
128
|
-
|
129
|
-
## Contributing
|
130
|
-
|
131
|
-
1. Fork it
|
132
|
-
2. Create your feature branch (`git checkout -b my-new-feature`)
|
133
|
-
3. Commit your changes (`git commit -am 'Add some feature'`)
|
134
|
-
4. Push to the branch (`git push origin my-new-feature`)
|
135
|
-
5. Create new Pull Request
|
1
|
+
# Ey::Core #
|
2
|
+
|
3
|
+
Official Engine Yard Core API Ruby client and CLI utility.
|
4
|
+
|
5
|
+
## Installation ##
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
gem 'ey-core'
|
10
|
+
|
11
|
+
And then execute:
|
12
|
+
|
13
|
+
$ bundle
|
14
|
+
|
15
|
+
Or install it yourself for ad-hoc or CLI usage:
|
16
|
+
|
17
|
+
$ gem install ey-core
|
18
|
+
|
19
|
+
## Usage ##
|
20
|
+
|
21
|
+
There are two ways to use this gem: you can install it to use as a client library for writing your own Engine Yard Cloud integrations, or you can use the `ey-core` CLi app to use our curated integrations.
|
22
|
+
|
23
|
+
### CLI Usage ###
|
24
|
+
|
25
|
+
The CLI app, `ey-core`, is the replacement for the `ey` command that was provided by the now mostly deprecated`engineyard` gem. The old gem is still updated as need be, but is effectively just a slightly different UI for the `ey-core` command.
|
26
|
+
Like the `git` command, `ey-core` is like a gateway to other commands.
|
27
|
+
|
28
|
+
Rather than attempting to provide an exhaustive writeup of all of the commands provided by `ey-core`, this document will instead describe what are likely the most common use cases and leave you to read up on the remainder via the `help` command.
|
29
|
+
|
30
|
+
#### Use Case: Getting Help ####
|
31
|
+
|
32
|
+
Arguably the most important command in the app is `ey-core help`. Given no arguments, it provides the list of second-level commands avaiable for use. From that point, each argument is expected to be a command from the next level of the hierarchy.
|
33
|
+
|
34
|
+
For example, if one wishes to learn about the `servers` second-level command, they would do `ey-core help servers`.
|
35
|
+
|
36
|
+
For commands in even deeper levels, one just adds each level of chain after the `help` command. Try this in your terminal: `ey-core help recipes apply`
|
37
|
+
|
38
|
+
#### Use Case: Deploying An App ####
|
39
|
+
|
40
|
+
The `ey-core deploy` command allows one to deploy a new revision of an existing application in an existing environment. The command itself has several options, some of which may or may not be required depending on several factors. To guarantee the best result and remove a good deal of uncertainty in the process, we've opted to describe a somewhat verbose invocation of the command in this document.
|
41
|
+
|
42
|
+
Let's start with some assumptions:
|
43
|
+
|
44
|
+
* The name of our Engine Yard account is `MyAwesomeCompany` (you can get a real account name with `ey-core accounts`)
|
45
|
+
* That account has an environment named `awesome_production` (you can get a real environment name with `ey-core environments`)
|
46
|
+
* That account has an application named `awesome_app` (you can get a real application name with `ey-core applications`)
|
47
|
+
* The aforementioned application is already associated with the environment
|
48
|
+
|
49
|
+
As mentioned, some of the options for the `deploy` command are optional, and all of the topics discussed in our assumptions are effectively optional. That said, we suggest specifying *all* of these options to ensure absolutely that the proper application is deployed to the proper environment in the proper account.
|
50
|
+
|
51
|
+
All that said, to deploy the application to its latest git ref and the same migration command as the last deployment, you would issue the following command:
|
52
|
+
|
53
|
+
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app`
|
54
|
+
|
55
|
+
You can also specify a git ref to use if you'd like to deploy a specific version or branch of the app:
|
56
|
+
|
57
|
+
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app --ref feature/new-ui`
|
58
|
+
|
59
|
+
Say that you want to change the way your migrations are run during the deploy. You can specify the migration command:
|
60
|
+
|
61
|
+
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app --migrate 'bundle exec rake db:migrate:new_hotness'`
|
62
|
+
|
63
|
+
Additionally, if you wish to skip migrations for the deployment, you can do that, too:
|
64
|
+
|
65
|
+
`$ ey-core deploy --account MyAwesomeCompany --environment awesome_production --app awesome_app --no-migrate`
|
66
|
+
|
67
|
+
Any of the invocations that we've talked about so far will stream the deployment log as it runs. If you'd rather do a fire-and-forget style deployment and check in on it later, you can add the `--no-wait` flag. If, however, you'd like to see even more information spit out during the deploy, you can add the `--verbose` flag.
|
68
|
+
|
69
|
+
That's about all there is to deployment so long as you consider the application, environment, and account to be required options. You can read more about any of the commands that we've mentioned in this use case by running the following in your terminal:
|
70
|
+
|
71
|
+
* `ey-core help accounts`
|
72
|
+
* `ey-core help applications`
|
73
|
+
* `ey-core help deploy`
|
74
|
+
* `ey-core help environments`
|
75
|
+
|
76
|
+
### Client Library Usage ###
|
77
|
+
|
78
|
+
Uses [cistern](https://github.com/lanej/cistern) to wrap RESTful resources nicely.
|
79
|
+
|
80
|
+
```ruby
|
81
|
+
client.users.current # =>
|
82
|
+
<Ey::Core::Client::User
|
83
|
+
id="0037000000uLmCe",
|
84
|
+
name="Josh Lane",
|
85
|
+
email="jlane@engineyard.com",
|
86
|
+
accounts_url="https://api.engineyard.com/users/0037000000uLmCe/accounts"
|
87
|
+
>
|
88
|
+
```
|
89
|
+
|
90
|
+
#### Authentication ####
|
91
|
+
|
92
|
+
* Via Token
|
93
|
+
|
94
|
+
```ruby
|
95
|
+
Ey::Core::Client.new(token: "943662ea7d0fad349eeae9f69adb521d")
|
96
|
+
```
|
97
|
+
|
98
|
+
* Via HMAC
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
Ey::Core::Client.new(
|
102
|
+
:auth_id => "943662ea7d0fad",
|
103
|
+
:auth_key => "943662ea7d0fad349eeae9f69adb521d",
|
104
|
+
:logger => Logger.new(STDOUT),
|
105
|
+
)
|
106
|
+
```
|
107
|
+
|
108
|
+
#### Mock ####
|
109
|
+
|
110
|
+
Mock is disabled by default.
|
111
|
+
|
112
|
+
```ruby
|
113
|
+
Ey::Core::Client.mocking? # => false
|
114
|
+
Ey::Core::Client.mock!
|
115
|
+
Ey::Core::Client.mocking? # => true
|
116
|
+
```
|
117
|
+
|
118
|
+
Reset the mock
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
Ey::Core::Client.reset!
|
122
|
+
```
|
123
|
+
|
124
|
+
#### Testing ####
|
125
|
+
|
126
|
+
By default, specs are run against the core mock. In order to run them against awsm mocked mode instead, run `MOCK_CORE=false bundle exec rspec`
|
127
|
+
|
128
|
+
|
129
|
+
## Contributing
|
130
|
+
|
131
|
+
1. Fork it
|
132
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
133
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
134
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
135
|
+
5. Create new Pull Request
|
data/Rakefile
CHANGED
@@ -1,18 +1,18 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
require "bundler/gem_tasks"
|
3
|
-
require 'cucumber/rake/task'
|
4
|
-
|
5
|
-
namespace :spec do
|
6
|
-
task :mocked do
|
7
|
-
sh "env MOCK_CORE=true bundle exec rspec spec/"
|
8
|
-
end
|
9
|
-
task :unmocked do
|
10
|
-
sh "env MOCK_CORE=false CORE_URL=http://api-development.localdev.engineyard.com:9292 bundle exec rspec spec/"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
task :spec => ["spec:mocked", "spec:unmocked"]
|
15
|
-
|
16
|
-
Cucumber::Rake::Task.new
|
17
|
-
|
18
|
-
task default: ["spec:mocked", :cucumber]
|
1
|
+
#!/usr/bin/env rake
|
2
|
+
require "bundler/gem_tasks"
|
3
|
+
require 'cucumber/rake/task'
|
4
|
+
|
5
|
+
namespace :spec do
|
6
|
+
task :mocked do
|
7
|
+
sh "env MOCK_CORE=true bundle exec rspec spec/"
|
8
|
+
end
|
9
|
+
task :unmocked do
|
10
|
+
sh "env MOCK_CORE=false CORE_URL=http://api-development.localdev.engineyard.com:9292 bundle exec rspec spec/"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
task :spec => ["spec:mocked", "spec:unmocked"]
|
15
|
+
|
16
|
+
Cucumber::Rake::Task.new
|
17
|
+
|
18
|
+
task default: ["spec:mocked", :cucumber]
|
data/bin/ey-core
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require File.expand_path('../../lib/ey-core/cli/main', __FILE__)
|
3
|
-
|
4
|
-
Ey::Core::Cli::Main.new(ARGV).execute!
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require File.expand_path('../../lib/ey-core/cli/main', __FILE__)
|
3
|
+
|
4
|
+
Ey::Core::Cli::Main.new(ARGV).execute!
|
data/docs/development.md
ADDED
@@ -0,0 +1,6 @@
|
|
1
|
+
### Bundle ey-core locally
|
2
|
+
1. Modify `lib/ey-core/version.rb` to next minor version
|
3
|
+
2. Run `gem build ey-core.gemspec`
|
4
|
+
3. Run `gem install ./ey-core-<version>.gem`
|
5
|
+
4. Run `ey-core` and your latest update would be reflected
|
6
|
+
5. To cross check ey-core version locally, run `gem list | grep ey-core`, and you would see your version listed
|
data/examples/add_instance.rb
CHANGED
@@ -1,74 +1,74 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Very basic example of how to add an instance to a given environment.
|
4
|
-
# As is attempts to add a t2.micro, see new_server_specs below.
|
5
|
-
# For more info visit http://developer.engineyard.com
|
6
|
-
|
7
|
-
require 'ey-core'
|
8
|
-
require 'optparse'
|
9
|
-
require 'yaml'
|
10
|
-
|
11
|
-
options = {}
|
12
|
-
OptionParser.new do |opts|
|
13
|
-
opts.banner = "Usage: add_instance.rb [options]"
|
14
|
-
|
15
|
-
opts.on('-a', '--account NAME', 'Account name') { |v| options[:account_name] = v }
|
16
|
-
opts.on('-e', '--environment NAME', 'Environment name') { |v| options[:environment_name] = v }
|
17
|
-
opts.on('-n', '--iname NAME', 'Instance name') { |v| options[:instance_name] = v }
|
18
|
-
opts.on('-r', '--irole ROLE', 'Instance role (app, util)') { |v| options[:instance_role] = v }
|
19
|
-
|
20
|
-
end.parse!
|
21
|
-
|
22
|
-
# Token comes from '~/.eyrc'
|
23
|
-
eyrc = YAML.load_file(File.expand_path("~/.eyrc"))
|
24
|
-
|
25
|
-
client = Ey::Core::Client.new(token: eyrc['api_token'])
|
26
|
-
|
27
|
-
# Account name as shown in cloud.engineyard.com
|
28
|
-
account = client.accounts.first(name: options[:account_name])
|
29
|
-
|
30
|
-
# Environment's name
|
31
|
-
environment = account.environments.first(name: options[:environment_name])
|
32
|
-
|
33
|
-
# Instance's name
|
34
|
-
instance_name = options[:instance_name]
|
35
|
-
|
36
|
-
puts "Adding app instance #{instance_name} to environment #{environment.name}...."
|
37
|
-
|
38
|
-
# TO DO: read new_server_specs from a file provided as a parameter
|
39
|
-
new_server_specs = {
|
40
|
-
:environment => environment.id,
|
41
|
-
:flavor_id => "t2_micro",
|
42
|
-
:mnt_volume_size => "10",
|
43
|
-
:name => instance_name,
|
44
|
-
:role => options[:instance_role],
|
45
|
-
:volume_size => "10",
|
46
|
-
}
|
47
|
-
|
48
|
-
provision_request = client.servers.create!(new_server_specs)
|
49
|
-
|
50
|
-
# Provisioning the instance with a timeout of 1200sec.
|
51
|
-
# Adjust as necessary depending of the type/role of instance.
|
52
|
-
provision_request.ready!(1200)
|
53
|
-
|
54
|
-
ap provision_request.attributes
|
55
|
-
|
56
|
-
puts "Instance provisioned successfully"
|
57
|
-
puts "-------------------"
|
58
|
-
|
59
|
-
puts "Waiting for instance #{instance_name} to integrate into the environment #{environment.name}...."
|
60
|
-
new_server = provision_request.resource!
|
61
|
-
|
62
|
-
new_server.wait_for(1800) { |s| s.state == "running" || s.state == "error" }
|
63
|
-
|
64
|
-
if !new_server.enabled? then
|
65
|
-
puts "Adding of instance #{instance_name} into environment #{environment.name} FAILED!!!"
|
66
|
-
puts "Check cloud.engineyard.com for more details"
|
67
|
-
ap new_server.attributes
|
68
|
-
exit
|
69
|
-
end
|
70
|
-
|
71
|
-
puts "Adding of instance #{instance_name} into environment #{environment.name} SUCCEEDED!!!"
|
72
|
-
|
73
|
-
|
74
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Very basic example of how to add an instance to a given environment.
|
4
|
+
# As is attempts to add a t2.micro, see new_server_specs below.
|
5
|
+
# For more info visit http://developer.engineyard.com
|
6
|
+
|
7
|
+
require 'ey-core'
|
8
|
+
require 'optparse'
|
9
|
+
require 'yaml'
|
10
|
+
|
11
|
+
options = {}
|
12
|
+
OptionParser.new do |opts|
|
13
|
+
opts.banner = "Usage: add_instance.rb [options]"
|
14
|
+
|
15
|
+
opts.on('-a', '--account NAME', 'Account name') { |v| options[:account_name] = v }
|
16
|
+
opts.on('-e', '--environment NAME', 'Environment name') { |v| options[:environment_name] = v }
|
17
|
+
opts.on('-n', '--iname NAME', 'Instance name') { |v| options[:instance_name] = v }
|
18
|
+
opts.on('-r', '--irole ROLE', 'Instance role (app, util)') { |v| options[:instance_role] = v }
|
19
|
+
|
20
|
+
end.parse!
|
21
|
+
|
22
|
+
# Token comes from '~/.eyrc'
|
23
|
+
eyrc = YAML.load_file(File.expand_path("~/.eyrc"))
|
24
|
+
|
25
|
+
client = Ey::Core::Client.new(token: eyrc['api_token'])
|
26
|
+
|
27
|
+
# Account name as shown in cloud.engineyard.com
|
28
|
+
account = client.accounts.first(name: options[:account_name])
|
29
|
+
|
30
|
+
# Environment's name
|
31
|
+
environment = account.environments.first(name: options[:environment_name])
|
32
|
+
|
33
|
+
# Instance's name
|
34
|
+
instance_name = options[:instance_name]
|
35
|
+
|
36
|
+
puts "Adding app instance #{instance_name} to environment #{environment.name}...."
|
37
|
+
|
38
|
+
# TO DO: read new_server_specs from a file provided as a parameter
|
39
|
+
new_server_specs = {
|
40
|
+
:environment => environment.id,
|
41
|
+
:flavor_id => "t2_micro",
|
42
|
+
:mnt_volume_size => "10",
|
43
|
+
:name => instance_name,
|
44
|
+
:role => options[:instance_role],
|
45
|
+
:volume_size => "10",
|
46
|
+
}
|
47
|
+
|
48
|
+
provision_request = client.servers.create!(new_server_specs)
|
49
|
+
|
50
|
+
# Provisioning the instance with a timeout of 1200sec.
|
51
|
+
# Adjust as necessary depending of the type/role of instance.
|
52
|
+
provision_request.ready!(1200)
|
53
|
+
|
54
|
+
ap provision_request.attributes
|
55
|
+
|
56
|
+
puts "Instance provisioned successfully"
|
57
|
+
puts "-------------------"
|
58
|
+
|
59
|
+
puts "Waiting for instance #{instance_name} to integrate into the environment #{environment.name}...."
|
60
|
+
new_server = provision_request.resource!
|
61
|
+
|
62
|
+
new_server.wait_for(1800) { |s| s.state == "running" || s.state == "error" }
|
63
|
+
|
64
|
+
if !new_server.enabled? then
|
65
|
+
puts "Adding of instance #{instance_name} into environment #{environment.name} FAILED!!!"
|
66
|
+
puts "Check cloud.engineyard.com for more details"
|
67
|
+
ap new_server.attributes
|
68
|
+
exit
|
69
|
+
end
|
70
|
+
|
71
|
+
puts "Adding of instance #{instance_name} into environment #{environment.name} SUCCEEDED!!!"
|
72
|
+
|
73
|
+
|
74
|
+
|
data/examples/boot_env.rb
CHANGED
@@ -1,60 +1,60 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
# Very basic example of how to boot a given environment from a blueprint
|
4
|
-
# For more info visit http://developer.engineyard.com
|
5
|
-
|
6
|
-
require 'ey-core'
|
7
|
-
require 'optparse'
|
8
|
-
require 'yaml'
|
9
|
-
|
10
|
-
options = {}
|
11
|
-
OptionParser.new do |opts|
|
12
|
-
opts.banner = "Usage: boot_env.rb [options]"
|
13
|
-
|
14
|
-
opts.on('-a', '--account NAME', 'Account name') { |v| options[:account_name] = v }
|
15
|
-
opts.on('-e', '--environment NAME', 'Environment name') { |v| options[:environment_name] = v }
|
16
|
-
opts.on('-b', '--blueprint NAME', 'Blueprint name') { |v| options[:blueprint_name] = v }
|
17
|
-
|
18
|
-
end.parse!
|
19
|
-
|
20
|
-
# Token comes from '~/.eyrc'
|
21
|
-
eyrc = YAML.load_file(File.expand_path("~/.eyrc"))
|
22
|
-
|
23
|
-
#client = Ey::Core::Client.new(token: "abcdefghijklmnrstuvwxyz123456789")
|
24
|
-
client = Ey::Core::Client.new(token: eyrc['api_token'])
|
25
|
-
|
26
|
-
# Account name as shown in cloud.engineyard.com
|
27
|
-
account = client.accounts.first(name: options[:account_name])
|
28
|
-
|
29
|
-
# Environment's name
|
30
|
-
environment = account.environments.first(name: options[:environment_name])
|
31
|
-
|
32
|
-
if environment.servers.count > 0 then
|
33
|
-
puts "Environment has instances running, are you sure you want to boot it?"
|
34
|
-
exit
|
35
|
-
end
|
36
|
-
|
37
|
-
# Get blueprint's name for cloud.engineyard.com
|
38
|
-
blueprint = environment.blueprints.first(name: options[:blueprint_name])
|
39
|
-
if !blueprint then
|
40
|
-
puts "Could not find the specified blueprint."
|
41
|
-
puts "Check cloud.engineyard.com for more details."
|
42
|
-
exit
|
43
|
-
end
|
44
|
-
|
45
|
-
env_options = {"blueprint_id": blueprint.id}
|
46
|
-
puts "Booting environment using an specific blueprint...."
|
47
|
-
provision_request = environment.boot(env_options)
|
48
|
-
|
49
|
-
# Booting the environment instance with a timeout of 1800sec (30mins).
|
50
|
-
# Adjust as necessary depending of the size of the environment.
|
51
|
-
provision_request.ready!(1800)
|
52
|
-
|
53
|
-
puts "-------------------"
|
54
|
-
if !provision_request.successful? then
|
55
|
-
puts "Boot environment FAILED!!!"
|
56
|
-
puts "Check cloud.engineyard.com for more details"
|
57
|
-
exit
|
58
|
-
end
|
59
|
-
|
60
|
-
puts "Boot environment SUCCEDED!!!"
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Very basic example of how to boot a given environment from a blueprint
|
4
|
+
# For more info visit http://developer.engineyard.com
|
5
|
+
|
6
|
+
require 'ey-core'
|
7
|
+
require 'optparse'
|
8
|
+
require 'yaml'
|
9
|
+
|
10
|
+
options = {}
|
11
|
+
OptionParser.new do |opts|
|
12
|
+
opts.banner = "Usage: boot_env.rb [options]"
|
13
|
+
|
14
|
+
opts.on('-a', '--account NAME', 'Account name') { |v| options[:account_name] = v }
|
15
|
+
opts.on('-e', '--environment NAME', 'Environment name') { |v| options[:environment_name] = v }
|
16
|
+
opts.on('-b', '--blueprint NAME', 'Blueprint name') { |v| options[:blueprint_name] = v }
|
17
|
+
|
18
|
+
end.parse!
|
19
|
+
|
20
|
+
# Token comes from '~/.eyrc'
|
21
|
+
eyrc = YAML.load_file(File.expand_path("~/.eyrc"))
|
22
|
+
|
23
|
+
#client = Ey::Core::Client.new(token: "abcdefghijklmnrstuvwxyz123456789")
|
24
|
+
client = Ey::Core::Client.new(token: eyrc['api_token'])
|
25
|
+
|
26
|
+
# Account name as shown in cloud.engineyard.com
|
27
|
+
account = client.accounts.first(name: options[:account_name])
|
28
|
+
|
29
|
+
# Environment's name
|
30
|
+
environment = account.environments.first(name: options[:environment_name])
|
31
|
+
|
32
|
+
if environment.servers.count > 0 then
|
33
|
+
puts "Environment has instances running, are you sure you want to boot it?"
|
34
|
+
exit
|
35
|
+
end
|
36
|
+
|
37
|
+
# Get blueprint's name for cloud.engineyard.com
|
38
|
+
blueprint = environment.blueprints.first(name: options[:blueprint_name])
|
39
|
+
if !blueprint then
|
40
|
+
puts "Could not find the specified blueprint."
|
41
|
+
puts "Check cloud.engineyard.com for more details."
|
42
|
+
exit
|
43
|
+
end
|
44
|
+
|
45
|
+
env_options = {"blueprint_id": blueprint.id}
|
46
|
+
puts "Booting environment using an specific blueprint...."
|
47
|
+
provision_request = environment.boot(env_options)
|
48
|
+
|
49
|
+
# Booting the environment instance with a timeout of 1800sec (30mins).
|
50
|
+
# Adjust as necessary depending of the size of the environment.
|
51
|
+
provision_request.ready!(1800)
|
52
|
+
|
53
|
+
puts "-------------------"
|
54
|
+
if !provision_request.successful? then
|
55
|
+
puts "Boot environment FAILED!!!"
|
56
|
+
puts "Check cloud.engineyard.com for more details"
|
57
|
+
exit
|
58
|
+
end
|
59
|
+
|
60
|
+
puts "Boot environment SUCCEDED!!!"
|
data/examples/console/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
## Examples and snippets to use with the `ey-core console`
|
2
|
-
|
3
|
-
### Getting started
|
4
|
-
|
5
|
-
With the _ey-core_ gem comes the `ey-core console` utility which allows to query the CoreAPI interactively. Below are a series of snippets with commands that will allow actions that normally are done through the EY dashboard, and others which aren't implemented yet but the CoreAPI already supports.
|
6
|
-
|
7
|
-
The backend will automatically allow/reject actions based on the api token the console is using. Upon a successful `ey-core login` said token is written on `$HOME/.ey-core` and picked up from there by the console. It's a good practice to issue `ey-core whoami` before opening the console to double check that the desired user is logged in.
|
8
|
-
|
9
|
-
- Addresses
|
10
|
-
- [List addresses allocated to the account](address.md#list-addresses-on-an-account)
|
11
|
-
- [Provision a new address](address.md#provision-new-address)
|
12
|
-
- [Attach an address to an instance/server](address.md#attach-address-to-instance)
|
13
|
-
- [Detach an address from an instance/server](address.md#detach-address-from-instance)
|
14
|
-
|
1
|
+
## Examples and snippets to use with the `ey-core console`
|
2
|
+
|
3
|
+
### Getting started
|
4
|
+
|
5
|
+
With the _ey-core_ gem comes the `ey-core console` utility which allows to query the CoreAPI interactively. Below are a series of snippets with commands that will allow actions that normally are done through the EY dashboard, and others which aren't implemented yet but the CoreAPI already supports.
|
6
|
+
|
7
|
+
The backend will automatically allow/reject actions based on the api token the console is using. Upon a successful `ey-core login` said token is written on `$HOME/.ey-core` and picked up from there by the console. It's a good practice to issue `ey-core whoami` before opening the console to double check that the desired user is logged in.
|
8
|
+
|
9
|
+
- Addresses
|
10
|
+
- [List addresses allocated to the account](address.md#list-addresses-on-an-account)
|
11
|
+
- [Provision a new address](address.md#provision-new-address)
|
12
|
+
- [Attach an address to an instance/server](address.md#attach-address-to-instance)
|
13
|
+
- [Detach an address from an instance/server](address.md#detach-address-from-instance)
|
14
|
+
|