engineyard 1.1.3 → 1.2.0

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 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