engineyard 1.1.3 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rdoc CHANGED
@@ -1,7 +1,138 @@
1
1
  = ey
2
2
 
3
- Description goes here.
4
3
 
5
- == Copyright
4
+ Command:
5
+ ey deploy
6
6
 
7
- Copyright (c) 2010 Engine Yard. See LICENSE for details.
7
+ Options:
8
+ -r, --branch, --tag, [--ref=REF] # Git ref to deploy. May be a branch, a tag, or a SHA.
9
+ [--ignore-bad-master] # Force a deploy even if the master is in a bad state
10
+ -v, [--verbose] # Be verbose
11
+ -a, [--app=APP] # Name of the application to deploy
12
+ -m, [--migrate=MIGRATE] # Run migrations via [MIGRATE], defaults to 'rake db:migrate'; use --no-migrate to avoid running migrations
13
+ [--ignore-default-branch] # Force a deploy of the specified branch even if a default is set
14
+ -e, [--environment=ENVIRONMENT] # Environment in which to deploy this application
15
+
16
+ Description:
17
+ This command must be run with the current directory containing the app to be deployed. If ey.yml specifies a default branch then the ref parameter can be omitted. Furthermore,
18
+ if a default branch is specified but a different command is supplied the deploy will fail unless --ignore-default-branch is used.
19
+
20
+ Migrations are run by default with 'rake db:migrate'. A different command can be specified via --migrate "ruby do_migrations.rb". Migrations can also be skipped entirely by
21
+ using --no-migrate.
22
+
23
+ Command:
24
+ ey environments
25
+
26
+ Options:
27
+ -s, [--simple]
28
+ -a, [--all]
29
+
30
+ Description:
31
+ By default, environments for this app are displayed. The --all option will display all environments, including those for this app.
32
+
33
+ Command:
34
+ ey logs
35
+
36
+ Options:
37
+ -e, [--environment=ENVIRONMENT] # Environment with the interesting logs
38
+
39
+ Description:
40
+ Displays Engine Yard configuration logs for all servers in the environment. If recipes were uploaded to the environment & run, their logs will also be displayed beneath the
41
+ main configuration logs.
42
+
43
+ Command:
44
+ ey rebuild
45
+
46
+ Options:
47
+ -e, [--environment=ENVIRONMENT] # Environment to rebuild
48
+
49
+ Description:
50
+ Engine Yard's main configuration run occurs on all servers. Mainly used to fix failed configuration of new or existing servers, or to update servers to latest Engine Yard stack
51
+ (e.g. to apply an Engine Yard supplied security patch).
52
+
53
+ Note that uploaded recipes are also run after the main configuration run has successfully completed.
54
+
55
+ Command:
56
+ ey rollback
57
+
58
+ Options:
59
+ -v, [--verbose] # Be verbose
60
+ -a, [--app=APP] # Name of the application to roll back
61
+ -e, [--environment=ENVIRONMENT] # Environment in which to roll back the application
62
+
63
+ Description:
64
+ Uses code from previous deploy in the "/data/APP_NAME/releases" directory on remote server(s) to restart application servers.
65
+
66
+ Command:
67
+ ey recipes apply
68
+
69
+ Options:
70
+ -e, [--environment=ENVIRONMENT] # Environment in which to apply recipes
71
+
72
+ Description:
73
+ This is similar to 'ey rebuild' except Engine Yard's main configuration step is skipped.
74
+
75
+ Command:
76
+ ey recipes upload
77
+
78
+ Options:
79
+ -e, [--environment=ENVIRONMENT] # Environment that will receive the recipes
80
+
81
+ Description:
82
+ The current directory should contain a subdirectory named "cookbooks" to be uploaded.
83
+
84
+ Command:
85
+ ey recipes download
86
+
87
+ Options:
88
+ -e, [--environment=ENVIRONMENT] # Environment for which to download the recipes
89
+
90
+ Description:
91
+ The recipes will be unpacked into a directory called "cookbooks" in the current directory.
92
+
93
+ If the cookbooks directory already exists, an error will be raised.
94
+
95
+ Command:
96
+ ey web enable
97
+
98
+ Options:
99
+ -v, [--verbose] # Be verbose
100
+ -a, [--app=APP] # Name of the application whose maintenance page will be removed
101
+ -e, [--environment=ENVIRONMENT] # Environment on which to take down the maintenance page
102
+
103
+ Remove the maintenance page for this application in the given environment.
104
+
105
+ Command:
106
+ ey web disable
107
+
108
+ Options:
109
+ -v, [--verbose] # Be verbose
110
+ -a, [--app=APP] # Name of the application whose maintenance page will be put up
111
+ -e, [--environment=ENVIRONMENT] # Environment on which to put up the maintenance page
112
+
113
+ Description:
114
+ The maintenance page is taken from the app currently being deployed. This means that you can customize maintenance pages to tell users the reason for downtime on every
115
+ particular deploy.
116
+
117
+ Maintenance pages searched for in order of decreasing priority: * public/maintenance.html.custom * public/maintenance.html.tmp * public/maintenance.html *
118
+ public/system/maintenance.html.default
119
+
120
+ Command:
121
+ ey ssh
122
+
123
+ Options:
124
+ [--utilities=one two three] # Run command on the utility servers with the given names. If no names are given, run on all utility servers.
125
+ [--app-servers] # Run command on all application servers
126
+ [--db-servers] # Run command on the database servers
127
+ [--db-master] # Run command on the master database server
128
+ -a, [--all] # Run command on all servers
129
+ [--db-slaves] # Run command on the slave database servers
130
+ -e, [--environment=ENVIRONMENT] # Environment to ssh into
131
+
132
+ Description:
133
+ If a command is supplied, it will be run, otherwise a session will be opened. The application master is used for environments with clusters. Option --all requires a command to
134
+ be supplied and runs it on all servers.
135
+
136
+ Note: this command is a bit picky about its ordering. To run a command with arguments on all servers, like "rm -f /some/file", you need to order it like so:
137
+
138
+ $ ey ssh "rm -f /some/file" -e my-environment --all
@@ -61,7 +61,7 @@ module EY
61
61
 
62
62
  EY.ui.info "Connecting to the server..."
63
63
 
64
- loudly_check_eydeploy(environment)
64
+ loudly_check_engineyard_serverside(environment)
65
65
 
66
66
  EY.ui.info "Beginning deploy for '#{app.name}' in '#{environment.name}' on server..."
67
67
 
@@ -143,7 +143,7 @@ module EY
143
143
  app = fetch_app(options[:app])
144
144
  env = fetch_environment(options[:environment], app)
145
145
 
146
- loudly_check_eydeploy(env)
146
+ loudly_check_engineyard_serverside(env)
147
147
 
148
148
  EY.ui.info("Rolling back '#{app.name}' in '#{env.name}'")
149
149
  if env.rollback(app, options[:verbose])
@@ -12,7 +12,7 @@ module EY
12
12
  def enable
13
13
  app = fetch_app(options[:app])
14
14
  environment = fetch_environment(options[:environment], app)
15
- loudly_check_eydeploy(environment)
15
+ loudly_check_engineyard_serverside(environment)
16
16
  EY.ui.info "Taking down maintenance page for '#{app.name}' in '#{environment.name}'"
17
17
  environment.take_down_maintenance_page(app, options[:verbose])
18
18
  end
@@ -39,7 +39,7 @@ module EY
39
39
  def disable
40
40
  app = fetch_app(options[:app])
41
41
  environment = fetch_environment(options[:environment], app)
42
- loudly_check_eydeploy(environment)
42
+ loudly_check_engineyard_serverside(environment)
43
43
  EY.ui.info "Putting up maintenance page for '#{app.name}' in '#{environment.name}'"
44
44
  environment.put_up_maintenance_page(app, options[:verbose])
45
45
  end
@@ -0,0 +1,23 @@
1
+ bmodule EY
2
+ module Model
3
+ class App < ApiStruct.new(:name, :repository_uri, :environments, :api)
4
+
5
+ def self.from_hash(hash)
6
+ super.tap do |app|
7
+ app.environments = Environment.from_array(app.environments, :api => app.api)
8
+ end
9
+ end
10
+
11
+ def sole_environment
12
+ if environments.size == 1
13
+ environments.first
14
+ end
15
+ end
16
+
17
+ def sole_environment!
18
+ sole_environment or raise NoSingleEnvironmentError.new(self)
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -31,8 +31,8 @@ module EY
31
31
  master
32
32
  end
33
33
 
34
- def ensure_eydeploy_present(&blk)
35
- app_master!.ensure_eydeploy_present(&blk)
34
+ def ensure_engineyard_serverside_present(&blk)
35
+ app_master!.ensure_engineyard_serverside_present(&blk)
36
36
  end
37
37
 
38
38
  def deploy(app, ref, deploy_options={})
@@ -3,11 +3,11 @@ require 'escape'
3
3
  module EY
4
4
  module Model
5
5
  class Instance < ApiStruct.new(:id, :role, :name, :status, :amazon_id, :public_hostname, :environment)
6
- EYDEPLOY_VERSION = ENV["EY_DEPLOY_VERSION"] || "1.1.3"
7
- EXIT_STATUS = Hash.new { |h,k| raise EY::Error, "ey-deploy version checker exited with unknown status code #{k}" }
6
+ ENGINEYARD_SERVERSIDE_VERSION = ENV["ENGINEYARD_SERVERSIDE_VERSION"] || "1.2.0"
7
+ EXIT_STATUS = Hash.new { |h,k| raise EY::Error, "engineyard-serverside version checker exited with unknown status code #{k}" }
8
8
  EXIT_STATUS.merge!({
9
9
  255 => :ssh_failed,
10
- 1 => :eydeploy_missing,
10
+ 1 => :engineyard_serverside_missing,
11
11
  0 => :ok,
12
12
  })
13
13
 
@@ -30,7 +30,7 @@ module EY
30
30
  deploy_args << "--migrate" << migration_command
31
31
  end
32
32
 
33
- invoke_ey_deploy(deploy_args, verbose)
33
+ invoke_engineyard_serverside(deploy_args, verbose)
34
34
  end
35
35
 
36
36
  def rollback(app, extra_configuration=nil, verbose=false)
@@ -43,16 +43,16 @@ module EY
43
43
  deploy_args << '--config' << extra_configuration.to_json
44
44
  end
45
45
 
46
- invoke_ey_deploy(deploy_args, verbose)
46
+ invoke_engineyard_serverside(deploy_args, verbose)
47
47
  end
48
48
 
49
49
 
50
50
  def put_up_maintenance_page(app, verbose=false)
51
- invoke_ey_deploy(['enable_maintenance_page', '--app', app.name], verbose)
51
+ invoke_engineyard_serverside(['enable_maintenance_page', '--app', app.name], verbose)
52
52
  end
53
53
 
54
54
  def take_down_maintenance_page(app, verbose=false)
55
- invoke_ey_deploy(['disable_maintenance_page', '--app', app.name], verbose)
55
+ invoke_engineyard_serverside(['disable_maintenance_page', '--app', app.name], verbose)
56
56
  end
57
57
 
58
58
 
@@ -60,32 +60,32 @@ module EY
60
60
  !["db_master", "db_slave"].include?(role.to_s)
61
61
  end
62
62
 
63
- def ensure_eydeploy_present
64
- case eydeploy_status = ey_deploy_check
63
+ def ensure_engineyard_serverside_present
64
+ case engineyard_serverside_status = engineyard_serverside_check
65
65
  when :ssh_failed
66
66
  raise EnvironmentError, "SSH connection to #{hostname} failed"
67
- when :eydeploy_missing
67
+ when :engineyard_serverside_missing
68
68
  yield :installing if block_given?
69
- install_ey_deploy
69
+ install_engineyard_serverside
70
70
  when :ok
71
71
  # no action needed
72
72
  else
73
- raise EY::Error, "Internal error: Unexpected status from Instance#ey_deploy_check; got #{eydeploy_status.inspect}"
73
+ raise EY::Error, "Internal error: Unexpected status from Instance#engineyard_serverside_check; got #{engineyard_serverside_status.inspect}"
74
74
  end
75
75
  end
76
76
 
77
- def ey_deploy_check
78
- escaped_eydeploy_version = EYDEPLOY_VERSION.gsub(/\./, '\.')
77
+ def engineyard_serverside_check
78
+ escaped_engineyard_serverside_version = ENGINEYARD_SERVERSIDE_VERSION.gsub(/\./, '\.')
79
79
 
80
80
  if ENV["NO_SSH"]
81
81
  :ok
82
82
  else
83
- ssh "#{gem_path} list ey-deploy | grep \"ey-deploy \" | egrep -q '#{escaped_eydeploy_version}[,)]'", false
83
+ ssh "#{gem_path} list engineyard-serverside | grep \"engineyard-serverside\" | egrep -q '#{escaped_engineyard_serverside_version}[,)]'", false
84
84
  EXIT_STATUS[$?.exitstatus]
85
85
  end
86
86
  end
87
87
 
88
- def install_ey_deploy
88
+ def install_engineyard_serverside
89
89
  ssh(Escape.shell_command([
90
90
  'sudo', 'sh', '-c',
91
91
  # rubygems looks at *.gem in its current directory for
@@ -94,7 +94,7 @@ module EY
94
94
  #
95
95
  # rubygems help suggests that --remote will disable this
96
96
  # behavior, but it doesn't.
97
- "cd `mktemp -d` && #{gem_path} install ey-deploy --no-rdoc --no-ri -v #{EYDEPLOY_VERSION}"]))
97
+ "cd `mktemp -d` && #{gem_path} install engineyard-serverside --no-rdoc --no-ri -v #{ENGINEYARD_SERVERSIDE_VERSION}"]))
98
98
  end
99
99
 
100
100
  private
@@ -112,8 +112,8 @@ module EY
112
112
  end
113
113
  end
114
114
 
115
- def invoke_ey_deploy(deploy_args, verbose=false)
116
- start = [eydeploy_path, "_#{EYDEPLOY_VERSION}_", 'deploy']
115
+ def invoke_engineyard_serverside(deploy_args, verbose=false)
116
+ start = [engineyard_serverside_path, "_#{ENGINEYARD_SERVERSIDE_VERSION}_", 'deploy']
117
117
  instance_args = environment.instances.find_all do |inst|
118
118
  inst.has_app_code?
119
119
  end.inject(['--instances']) do |command, inst|
@@ -132,8 +132,8 @@ module EY
132
132
  ssh cmd
133
133
  end
134
134
 
135
- def eydeploy_path
136
- "/usr/local/ey_resin/ruby/bin/ey-deploy"
135
+ def engineyard_serverside_path
136
+ "/usr/local/ey_resin/ruby/bin/engineyard-serverside"
137
137
  end
138
138
 
139
139
  def gem_path
@@ -11,8 +11,8 @@ module EY
11
11
  @repo ||= EY::Repo.new
12
12
  end
13
13
 
14
- def loudly_check_eydeploy(environment)
15
- environment.ensure_eydeploy_present do |action|
14
+ def loudly_check_engineyard_serverside(environment)
15
+ environment.ensure_engineyard_serverside_present do |action|
16
16
  case action
17
17
  when :installing
18
18
  EY.ui.warn "Instance does not have server-side component installed"
@@ -1,3 +1,3 @@
1
1
  module EY
2
- VERSION = '1.1.3'
2
+ VERSION = '1.2.0'
3
3
  end
@@ -37,13 +37,13 @@ describe "ey deploy" do
37
37
 
38
38
  def verify_ran(scenario)
39
39
  @out.should match(/Beginning deploy for.*#{scenario[:application]}.*#{scenario[:environment]}/)
40
- @ssh_commands.should have_command_like(/ey-deploy.*deploy.*--app #{scenario[:application]}/)
40
+ @ssh_commands.should have_command_like(/engineyard-serverside.*deploy.*--app #{scenario[:application]}/)
41
41
  end
42
42
 
43
43
  # common behavior
44
44
  it_should_behave_like "it takes an environment name"
45
45
  it_should_behave_like "it takes an app name"
46
- it_should_behave_like "it invokes ey-deploy"
46
+ it_should_behave_like "it invokes engineyard-serverside"
47
47
  end
48
48
 
49
49
  describe "ey deploy" do
@@ -81,20 +81,20 @@ describe "ey deploy" do
81
81
  api_scenario "one app, one environment"
82
82
  end
83
83
 
84
- it "finds ey-deploy despite its being buried in the filesystem" do
84
+ it "finds engineyard-serverside despite its being buried in the filesystem" do
85
85
  ey "deploy"
86
- @ssh_commands.last.should =~ %r{/usr/local/ey_resin/ruby/bin/ey-deploy}
86
+ @ssh_commands.last.should =~ %r{/usr/local/ey_resin/ruby/bin/engineyard-serverside}
87
87
  end
88
88
 
89
89
  it "defaults to 'rake db:migrate'" do
90
90
  ey "deploy"
91
- @ssh_commands.last.should =~ /ey-deploy.*deploy/
91
+ @ssh_commands.last.should =~ /engineyard-serverside.*deploy/
92
92
  @ssh_commands.last.should =~ /--migrate 'rake db:migrate'/
93
93
  end
94
94
 
95
95
  it "can be disabled with --no-migrate" do
96
96
  ey "deploy --no-migrate"
97
- @ssh_commands.last.should =~ /ey-deploy.*deploy/
97
+ @ssh_commands.last.should =~ /engineyard-serverside.*deploy/
98
98
  @ssh_commands.last.should_not =~ /--migrate/
99
99
  end
100
100
 
@@ -121,7 +121,7 @@ describe "ey deploy" do
121
121
 
122
122
  it "does not migrate by default" do
123
123
  ey "deploy"
124
- @ssh_commands.last.should =~ /ey-deploy.*deploy/
124
+ @ssh_commands.last.should =~ /engineyard-serverside.*deploy/
125
125
  @ssh_commands.last.should_not =~ /--migrate/
126
126
  end
127
127
 
@@ -221,7 +221,7 @@ describe "ey deploy" do
221
221
  File.unlink("ey.yml")
222
222
  end
223
223
 
224
- it "gets passed along to ey-deploy" do
224
+ it "gets passed along to engineyard-serverside" do
225
225
  ey "deploy"
226
226
  @ssh_commands.last.should =~ /--config '\{\"bert\":\"ernie\"\}'/
227
227
  end
@@ -298,14 +298,14 @@ describe "ey deploy" do
298
298
  before(:all) do
299
299
  api_scenario "one app, one environment", "user@git.host:path/to/repo.git"
300
300
  ey "deploy"
301
- @deploy_command = @ssh_commands.find {|c| c =~ /ey-deploy.*deploy/ }
301
+ @deploy_command = @ssh_commands.find {|c| c =~ /engineyard-serverside.*deploy/ }
302
302
  end
303
303
 
304
- it "passes along the repository URL to ey-deploy" do
304
+ it "passes along the repository URL to engineyard-serverside" do
305
305
  @deploy_command.should =~ /--repo user@git.host:path\/to\/repo.git/
306
306
  end
307
307
 
308
- it "passes along the web server stack to ey-deploy" do
308
+ it "passes along the web server stack to engineyard-serverside" do
309
309
  @deploy_command.should =~ /--stack nginx_mongrel/
310
310
  end
311
311
  end
@@ -14,14 +14,14 @@ describe "ey rollback" do
14
14
  def verify_ran(scenario)
15
15
  @out.should match(/Rolling back.*#{scenario[:application]}.*#{scenario[:environment]}/)
16
16
  @err.should be_empty
17
- @ssh_commands.last.should match(/ey-deploy.*deploy rollback.*--app #{scenario[:application]}/)
17
+ @ssh_commands.last.should match(/engineyard-serverside.*deploy rollback.*--app #{scenario[:application]}/)
18
18
  end
19
19
 
20
20
  it_should_behave_like "it takes an environment name"
21
21
  it_should_behave_like "it takes an app name"
22
- it_should_behave_like "it invokes ey-deploy"
22
+ it_should_behave_like "it invokes engineyard-serverside"
23
23
 
24
- it "passes along the web server stack to ey-deploy" do
24
+ it "passes along the web server stack to engineyard-serverside" do
25
25
  api_scenario "one app, one environment"
26
26
  ey "rollback"
27
27
  @ssh_commands.last.should =~ /--stack nginx_mongrel/
@@ -12,10 +12,10 @@ describe "ey web disable" do
12
12
  end
13
13
 
14
14
  def verify_ran(scenario)
15
- @ssh_commands.should have_command_like(/ey-deploy.*deploy enable_maintenance_page.*--app #{scenario[:application]}/)
15
+ @ssh_commands.should have_command_like(/engineyard-serverside.*deploy enable_maintenance_page.*--app #{scenario[:application]}/)
16
16
  end
17
17
 
18
18
  it_should_behave_like "it takes an environment name"
19
19
  it_should_behave_like "it takes an app name"
20
- it_should_behave_like "it invokes ey-deploy"
20
+ it_should_behave_like "it invokes engineyard-serverside"
21
21
  end
@@ -12,10 +12,10 @@ describe "ey web enable" do
12
12
  end
13
13
 
14
14
  def verify_ran(scenario)
15
- @ssh_commands.should have_command_like(/ey-deploy.*deploy disable_maintenance_page.*--app #{scenario[:application]}/)
15
+ @ssh_commands.should have_command_like(/engineyard-serverside.*deploy disable_maintenance_page.*--app #{scenario[:application]}/)
16
16
  end
17
17
 
18
18
  it_should_behave_like "it takes an environment name"
19
19
  it_should_behave_like "it takes an app name"
20
- it_should_behave_like "it invokes ey-deploy"
20
+ it_should_behave_like "it invokes engineyard-serverside"
21
21
  end
@@ -110,7 +110,7 @@ shared_examples_for "it takes an app name" do
110
110
 
111
111
  end
112
112
 
113
- shared_examples_for "it invokes ey-deploy" do
113
+ shared_examples_for "it invokes engineyard-serverside" do
114
114
  include Spec::Helpers::SharedIntegrationTestUtils
115
115
 
116
116
  context "with arguments" do
@@ -119,11 +119,11 @@ shared_examples_for "it invokes ey-deploy" do
119
119
  run_ey({:env => 'giblets', :verbose => true})
120
120
  end
121
121
 
122
- it "passes --verbose to ey-deploy" do
123
- @ssh_commands.should have_command_like(/ey-deploy.*deploy.*--verbose/)
122
+ it "passes --verbose to engineyard-serverside" do
123
+ @ssh_commands.should have_command_like(/engineyard-serverside.*deploy.*--verbose/)
124
124
  end
125
125
 
126
- it "passes along instance information to ey-deploy" do
126
+ it "passes along instance information to engineyard-serverside" do
127
127
  instance_args = [
128
128
  Regexp.quote("app_master_hostname.compute-1.amazonaws.com,app_master"),
129
129
  Regexp.quote("app_hostname.compute-1.amazonaws.com,app"),
@@ -151,7 +151,7 @@ shared_examples_for "it invokes ey-deploy" do
151
151
  end
152
152
 
153
153
 
154
- context "ey-deploy installation" do
154
+ context "engineyard-serverside installation" do
155
155
  before(:all) do
156
156
  api_scenario "one app, one environment"
157
157
  end
@@ -165,7 +165,7 @@ shared_examples_for "it invokes ey-deploy" do
165
165
  end
166
166
 
167
167
  def exiting_ssh(exit_code)
168
- "#!/usr/bin/env ruby\n exit!(#{exit_code}) if ARGV.to_s =~ /gem list ey-deploy/"
168
+ "#!/usr/bin/env ruby\n exit!(#{exit_code}) if ARGV.to_s =~ /gem list engineyard-serverside/"
169
169
  end
170
170
 
171
171
  it "raises an error if SSH fails" do
@@ -174,21 +174,21 @@ shared_examples_for "it invokes ey-deploy" do
174
174
  @err.should =~ /SSH connection to \S+ failed/
175
175
  end
176
176
 
177
- it "installs ey-deploy if it's missing" do
177
+ it "installs engineyard-serverside if it's missing" do
178
178
  run_ey({:env => 'giblets'}, {:prepend_to_path => {'ssh' => exiting_ssh(1)}})
179
179
 
180
180
  gem_install_command = @ssh_commands.find do |command|
181
- command =~ /gem install ey-deploy/
181
+ command =~ /gem install engineyard-serverside/
182
182
  end
183
183
  gem_install_command.should_not be_nil
184
- gem_install_command.should =~ %r{/usr/local/ey_resin/ruby/bin/gem install.*ey-deploy}
184
+ gem_install_command.should =~ %r{/usr/local/ey_resin/ruby/bin/gem install.*engineyard-serverside}
185
185
  end
186
186
 
187
- it "does not try to install ey-deploy if it's already there" do
187
+ it "does not try to install engineyard-serverside if it's already there" do
188
188
  run_ey({:env => 'giblets'}, {:prepend_to_path => {'ssh' => exiting_ssh(0)}})
189
- @ssh_commands.should_not have_command_like(/gem install ey-deploy/)
190
- ver = Regexp.quote(EY::Model::Instance::EYDEPLOY_VERSION)
191
- @ssh_commands.should have_command_like(/ey-deploy _#{ver}_ deploy/)
189
+ @ssh_commands.should_not have_command_like(/gem install engineyard-serverside/)
190
+ ver = Regexp.quote(EY::Model::Instance::ENGINEYARD_SERVERSIDE_VERSION)
191
+ @ssh_commands.should have_command_like(/engineyard-serverside _#{ver}_ deploy/)
192
192
  end
193
193
  end
194
194
  end
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
5
4
  prerelease: false
6
5
  segments:
7
6
  - 1
8
- - 1
9
- - 3
10
- version: 1.1.3
7
+ - 2
8
+ - 0
9
+ version: 1.2.0
11
10
  platform: ruby
12
11
  authors:
13
12
  - EY Cloud Team
@@ -15,101 +14,89 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-13 00:00:00 -07:00
17
+ date: 2010-08-16 00:00:00 -07:00
19
18
  default_executable: ey
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  version_requirements: &id001 !ruby/object:Gem::Requirement
23
- none: false
24
22
  requirements:
25
- - - ~>
23
+ - - ">="
26
24
  - !ruby/object:Gem::Version
27
- hash: 39
28
25
  segments:
29
26
  - 0
30
- - 14
31
- - 0
32
- version: 0.14.0
27
+ version: "0"
33
28
  requirement: *id001
34
- name: thor
35
29
  prerelease: false
30
+ name: termios
36
31
  type: :runtime
37
32
  - !ruby/object:Gem::Dependency
38
33
  version_requirements: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
34
  requirements:
41
35
  - - ~>
42
36
  - !ruby/object:Gem::Version
43
- hash: 7
44
37
  segments:
45
38
  - 1
46
- - 4
47
- version: "1.4"
39
+ - 5
40
+ - 2
41
+ version: 1.5.2
48
42
  requirement: *id002
49
- name: rest-client
50
43
  prerelease: false
44
+ name: highline
51
45
  type: :runtime
52
46
  - !ruby/object:Gem::Dependency
53
47
  version_requirements: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
48
  requirements:
56
49
  - - ~>
57
50
  - !ruby/object:Gem::Version
58
- hash: 7
59
51
  segments:
60
- - 1
61
- - 5
62
- - 2
63
- version: 1.5.2
52
+ - 0
53
+ - 14
54
+ - 0
55
+ version: 0.14.0
64
56
  requirement: *id003
65
- name: highline
66
57
  prerelease: false
58
+ name: thor
67
59
  type: :runtime
68
60
  - !ruby/object:Gem::Dependency
69
61
  version_requirements: &id004 !ruby/object:Gem::Requirement
70
- none: false
71
62
  requirements:
72
- - - ">="
63
+ - - ~>
73
64
  - !ruby/object:Gem::Version
74
- hash: 3
75
65
  segments:
76
66
  - 0
77
- version: "0"
67
+ - 0
68
+ - 4
69
+ version: 0.0.4
78
70
  requirement: *id004
79
- name: termios
80
71
  prerelease: false
72
+ name: escape
81
73
  type: :runtime
82
74
  - !ruby/object:Gem::Dependency
83
75
  version_requirements: &id005 !ruby/object:Gem::Requirement
84
- none: false
85
76
  requirements:
86
77
  - - ~>
87
78
  - !ruby/object:Gem::Version
88
- hash: 7
89
79
  segments:
90
80
  - 1
91
81
  - 4
92
82
  - 0
93
83
  version: 1.4.0
94
84
  requirement: *id005
95
- name: json
96
85
  prerelease: false
86
+ name: json
97
87
  type: :runtime
98
88
  - !ruby/object:Gem::Dependency
99
89
  version_requirements: &id006 !ruby/object:Gem::Requirement
100
- none: false
101
90
  requirements:
102
91
  - - ~>
103
92
  - !ruby/object:Gem::Version
104
- hash: 23
105
93
  segments:
106
- - 0
107
- - 0
94
+ - 1
108
95
  - 4
109
- version: 0.0.4
96
+ version: "1.4"
110
97
  requirement: *id006
111
- name: escape
112
98
  prerelease: false
99
+ name: rest-client
113
100
  type: :runtime
114
101
  description: This gem allows you to deploy your rails application to the Engine Yard cloud directly from the command line.
115
102
  email: cloud@engineyard.com
@@ -133,6 +120,7 @@ files:
133
120
  - lib/engineyard/collection.rb
134
121
  - lib/engineyard/config.rb
135
122
  - lib/engineyard/error.rb
123
+ - lib/engineyard/model/#app.rb#
136
124
  - lib/engineyard/model/api_struct.rb
137
125
  - lib/engineyard/model/app.rb
138
126
  - lib/engineyard/model/environment.rb
@@ -146,36 +134,6 @@ files:
146
134
  - lib/engineyard.rb
147
135
  - LICENSE
148
136
  - README.rdoc
149
- - spec/engineyard/api_spec.rb
150
- - spec/engineyard/cli/api_spec.rb
151
- - spec/engineyard/cli_spec.rb
152
- - spec/engineyard/collection/apps_spec.rb
153
- - spec/engineyard/collection/environments_spec.rb
154
- - spec/engineyard/config_spec.rb
155
- - spec/engineyard/model/api_struct_spec.rb
156
- - spec/engineyard/model/environment_spec.rb
157
- - spec/engineyard/model/instance_spec.rb
158
- - spec/engineyard/repo_spec.rb
159
- - spec/engineyard_spec.rb
160
- - spec/ey/deploy_spec.rb
161
- - spec/ey/ey_spec.rb
162
- - spec/ey/list_environments_spec.rb
163
- - spec/ey/logs_spec.rb
164
- - spec/ey/rebuild_spec.rb
165
- - spec/ey/recipes/apply_spec.rb
166
- - spec/ey/recipes/download_spec.rb
167
- - spec/ey/recipes/upload_spec.rb
168
- - spec/ey/rollback_spec.rb
169
- - spec/ey/ssh_spec.rb
170
- - spec/ey/web/disable_spec.rb
171
- - spec/ey/web/enable_spec.rb
172
- - spec/spec_helper.rb
173
- - spec/support/bundled_ey
174
- - spec/support/fake_awsm.ru
175
- - spec/support/git_repo.rb
176
- - spec/support/helpers.rb
177
- - spec/support/ruby_ext.rb
178
- - spec/support/shared_behavior.rb
179
137
  has_rdoc: true
180
138
  homepage: http://engineyard.com
181
139
  licenses: []
@@ -186,27 +144,23 @@ rdoc_options: []
186
144
  require_paths:
187
145
  - lib
188
146
  required_ruby_version: !ruby/object:Gem::Requirement
189
- none: false
190
147
  requirements:
191
148
  - - ">="
192
149
  - !ruby/object:Gem::Version
193
- hash: 3
194
150
  segments:
195
151
  - 0
196
152
  version: "0"
197
153
  required_rubygems_version: !ruby/object:Gem::Requirement
198
- none: false
199
154
  requirements:
200
155
  - - ">="
201
156
  - !ruby/object:Gem::Version
202
- hash: 3
203
157
  segments:
204
158
  - 0
205
159
  version: "0"
206
160
  requirements: []
207
161
 
208
162
  rubyforge_project:
209
- rubygems_version: 1.3.7
163
+ rubygems_version: 1.3.6
210
164
  signing_key:
211
165
  specification_version: 3
212
166
  summary: Command-line deployment for the Engine Yard cloud