engineyard 2.0.8 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +16 -0
- data/lib/engineyard/cli.rb +7 -5
- data/lib/engineyard/serverside_runner.rb +12 -11
- data/lib/engineyard/thor.rb +12 -2
- data/lib/engineyard/version.rb +1 -1
- data/spec/ey/deploy_spec.rb +20 -0
- metadata +6 -6
data/README.rdoc
CHANGED
@@ -231,6 +231,22 @@ Log in and verify access to EY Cloud. Use logout first if you need to switch use
|
|
231
231
|
Remove the current API key from ~/.eyrc or env variable $EYRC
|
232
232
|
|
233
233
|
|
234
|
+
== Global Options
|
235
|
+
|
236
|
+
All commands accept the following options.
|
237
|
+
|
238
|
+
--api-token=API_TOKEN # Use API-TOKEN to authenticate this command
|
239
|
+
--serverside-version=SERVERSIDE_VERSION # Please use with care! Override deploy system version
|
240
|
+
# (same as ENV variable ENGINEYARD_SERVERSIDE_VERSION)
|
241
|
+
|
242
|
+
Not all commands will make use of these options. For example,
|
243
|
+
ey status does not use, and will ignore the --serverside-version flag.
|
244
|
+
|
245
|
+
Also, please consider that it's usually not a good idea to override the
|
246
|
+
version of serverside unless you know what you're doing. CLI and serverside
|
247
|
+
versions are designed to work together and mixing them can cause errors.
|
248
|
+
|
249
|
+
|
234
250
|
== API Client
|
235
251
|
|
236
252
|
See https://github.com/engineyard/engineyard-cloud-client for the API client library.
|
data/lib/engineyard/cli.rb
CHANGED
@@ -36,6 +36,7 @@ module EY
|
|
36
36
|
end
|
37
37
|
|
38
38
|
class_option :api_token, :type => :string, :desc => "Use API-TOKEN to authenticate this command"
|
39
|
+
class_option :serverside_version, :type => :string, :desc => "Please use with care! Override deploy system version (same as ENV variable ENGINEYARD_SERVERSIDE_VERSION)"
|
39
40
|
|
40
41
|
desc "deploy [--environment ENVIRONMENT] [--ref GIT-REF]",
|
41
42
|
"Deploy specified branch, tag, or sha to specified environment."
|
@@ -81,13 +82,14 @@ module EY
|
|
81
82
|
deploy_config = EY::DeployConfig.new(options, env_config, repo, ui)
|
82
83
|
|
83
84
|
deployment = app_env.new_deployment({
|
84
|
-
:ref
|
85
|
-
:migrate
|
86
|
-
:migrate_command
|
87
|
-
:extra_config
|
85
|
+
:ref => deploy_config.ref,
|
86
|
+
:migrate => deploy_config.migrate,
|
87
|
+
:migrate_command => deploy_config.migrate_command,
|
88
|
+
:extra_config => deploy_config.extra_config,
|
89
|
+
:serverside_version => serverside_version,
|
88
90
|
})
|
89
91
|
|
90
|
-
runner = serverside_runner(app_env, deploy_config.verbose, options[:ignore_bad_master])
|
92
|
+
runner = serverside_runner(app_env, deploy_config.verbose, deployment.serverside_version, options[:ignore_bad_master])
|
91
93
|
|
92
94
|
out = EY::CLI::UI::Tee.new(ui.out, deployment.out)
|
93
95
|
err = EY::CLI::UI::Tee.new(ui.err, deployment.err)
|
@@ -4,13 +4,14 @@ require 'engineyard-serverside-adapter'
|
|
4
4
|
|
5
5
|
module EY
|
6
6
|
class ServersideRunner
|
7
|
-
def initialize(
|
8
|
-
@verbose
|
9
|
-
@
|
10
|
-
|
11
|
-
@hostname
|
12
|
-
@
|
13
|
-
@
|
7
|
+
def initialize(options)
|
8
|
+
@verbose = options[:verbose] || !!ENV['DEBUG']
|
9
|
+
@hostname = options[:bridge]
|
10
|
+
env = options[:environment]
|
11
|
+
@adapter = load_adapter(@hostname, options[:app], env, @verbose, options[:serverside_version])
|
12
|
+
@username = env.username
|
13
|
+
@hierarchy_name = env.hierarchy_name
|
14
|
+
@command = nil
|
14
15
|
end
|
15
16
|
|
16
17
|
def deploy(&block)
|
@@ -47,9 +48,9 @@ module EY
|
|
47
48
|
|
48
49
|
private
|
49
50
|
|
50
|
-
def load_adapter(bridge, app, environment)
|
51
|
+
def load_adapter(bridge, app, environment, verbose, serverside_version)
|
51
52
|
EY::Serverside::Adapter.new("/usr/local/ey_resin/ruby/bin") do |args|
|
52
|
-
args.serverside_version =
|
53
|
+
args.serverside_version = serverside_version
|
53
54
|
args.app = app.name
|
54
55
|
args.repo = app.repository_uri
|
55
56
|
args.instances = instances_data(environment.deploy_to_instances, bridge)
|
@@ -57,7 +58,7 @@ module EY
|
|
57
58
|
args.framework_env = environment.framework_env
|
58
59
|
args.environment_name = environment.name
|
59
60
|
args.account_name = app.account.name
|
60
|
-
args.verbose =
|
61
|
+
args.verbose = verbose
|
61
62
|
end
|
62
63
|
end
|
63
64
|
|
@@ -99,7 +100,7 @@ module EY
|
|
99
100
|
raise EY::Error, <<-ERROR
|
100
101
|
Authentication Failed. Things to fix:
|
101
102
|
1. Add your SSH key to your local SSH agent with `ssh-add path/to/key`.
|
102
|
-
2. Add your SSH key to #{@
|
103
|
+
2. Add your SSH key to #{@hierarchy_name} on Engine Yard Cloud and apply the changes.
|
103
104
|
(https://support.cloud.engineyard.com/entries/20996846-set-up-ssh-keys)
|
104
105
|
ERROR
|
105
106
|
end
|
data/lib/engineyard/thor.rb
CHANGED
@@ -29,8 +29,18 @@ module EY
|
|
29
29
|
@repo ||= EY::Repo.new
|
30
30
|
end
|
31
31
|
|
32
|
-
def
|
33
|
-
|
32
|
+
def serverside_version
|
33
|
+
respond_to?(:options) && options[:serverside_version] || EY::ENGINEYARD_SERVERSIDE_VERSION
|
34
|
+
end
|
35
|
+
|
36
|
+
def serverside_runner(app_env, verbose, serverside_version = serverside_version, ignore_bad_bridge = false)
|
37
|
+
ServersideRunner.new({
|
38
|
+
:bridge => app_env.environment.bridge!(ignore_bad_bridge).hostname,
|
39
|
+
:app => app_env.app,
|
40
|
+
:environment => app_env.environment,
|
41
|
+
:verbose => verbose,
|
42
|
+
:serverside_version => serverside_version
|
43
|
+
})
|
34
44
|
end
|
35
45
|
|
36
46
|
def use_default_environment
|
data/lib/engineyard/version.rb
CHANGED
data/spec/ey/deploy_spec.rb
CHANGED
@@ -431,6 +431,26 @@ describe "ey deploy" do
|
|
431
431
|
end
|
432
432
|
end
|
433
433
|
|
434
|
+
context "setting a specific serverside version" do
|
435
|
+
use_git_repo("deploy test")
|
436
|
+
|
437
|
+
before(:all) do
|
438
|
+
login_scenario "one app, one environment"
|
439
|
+
end
|
440
|
+
|
441
|
+
it "should send the correct serverside version when specified" do
|
442
|
+
fast_ey %w[deploy --no-migrate --serverside-version 1.6.4]
|
443
|
+
deploy_command = @ssh_commands.find {|c| c =~ /engineyard-serverside.*deploy/ }
|
444
|
+
deploy_command.should =~ /engineyard-serverside _1.6.4_ deploy/
|
445
|
+
end
|
446
|
+
|
447
|
+
it "should send the default serverside version when unspecified" do
|
448
|
+
fast_ey %w[deploy --no-migrate]
|
449
|
+
deploy_command = @ssh_commands.find {|c| c =~ /engineyard-serverside.*deploy/ }
|
450
|
+
deploy_command.should =~ /engineyard-serverside _#{EY::ENGINEYARD_SERVERSIDE_VERSION}_ deploy/
|
451
|
+
end
|
452
|
+
end
|
453
|
+
|
434
454
|
context "sending necessary information" do
|
435
455
|
use_git_repo("deploy test")
|
436
456
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: engineyard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -98,7 +98,7 @@ dependencies:
|
|
98
98
|
requirements:
|
99
99
|
- - ~>
|
100
100
|
- !ruby/object:Gem::Version
|
101
|
-
version: 1.0.
|
101
|
+
version: 1.0.7
|
102
102
|
type: :runtime
|
103
103
|
prerelease: false
|
104
104
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -106,7 +106,7 @@ dependencies:
|
|
106
106
|
requirements:
|
107
107
|
- - ~>
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.0.
|
109
|
+
version: 1.0.7
|
110
110
|
- !ruby/object:Gem::Dependency
|
111
111
|
name: net-ssh
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
@@ -425,7 +425,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
425
425
|
version: '0'
|
426
426
|
segments:
|
427
427
|
- 0
|
428
|
-
hash:
|
428
|
+
hash: 961483598276783294
|
429
429
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
430
430
|
none: false
|
431
431
|
requirements:
|
@@ -434,7 +434,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
434
434
|
version: '0'
|
435
435
|
segments:
|
436
436
|
- 0
|
437
|
-
hash:
|
437
|
+
hash: 961483598276783294
|
438
438
|
requirements: []
|
439
439
|
rubyforge_project:
|
440
440
|
rubygems_version: 1.8.24
|