engineyard 1.3.7 → 1.3.10
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/lib/engineyard/cli/recipes.rb +14 -9
- data/lib/engineyard/cli/web.rb +2 -2
- data/lib/engineyard/cli.rb +5 -5
- data/lib/engineyard/model/deployment.rb +51 -0
- data/lib/engineyard/model/environment.rb +1 -1
- data/lib/engineyard/model/instance.rb +20 -6
- data/lib/engineyard/model.rb +1 -0
- data/lib/engineyard/version.rb +1 -1
- data/spec/engineyard/model/environment_spec.rb +2 -2
- data/spec/ey/deploy_spec.rb +1 -0
- data/spec/support/fake_awsm.ru +5 -1
- metadata +76 -109
@@ -2,16 +2,19 @@ module EY
|
|
2
2
|
class CLI
|
3
3
|
class Recipes < EY::Thor
|
4
4
|
desc "apply [--environment ENVIRONMENT]",
|
5
|
-
"Run uploaded
|
5
|
+
"Run chef recipes uploaded by the 'recipes upload' command on the specified environment."
|
6
6
|
long_desc <<-DESC
|
7
7
|
This is similar to '#{banner_base} rebuild' except Engine Yard's main
|
8
8
|
configuration step is skipped.
|
9
|
+
|
10
|
+
The cookbook uploaded by the 'recipes upload' command will be run when
|
11
|
+
you run 'recipes apply'.
|
9
12
|
DESC
|
10
13
|
|
11
14
|
method_option :environment, :type => :string, :aliases => %w(-e),
|
12
15
|
:desc => "Environment in which to apply recipes"
|
13
16
|
method_option :account, :type => :string, :aliases => %w(-c),
|
14
|
-
:desc => "Name of the account
|
17
|
+
:desc => "Name of the account in which the environment can be found"
|
15
18
|
def apply
|
16
19
|
environment = fetch_environment(options[:environment], options[:account])
|
17
20
|
environment.run_custom_recipes
|
@@ -19,16 +22,18 @@ module EY
|
|
19
22
|
end
|
20
23
|
|
21
24
|
desc "upload [--environment ENVIRONMENT]",
|
22
|
-
"Upload custom chef recipes to specified environment."
|
25
|
+
"Upload custom chef recipes to specified environment so they can be applied."
|
23
26
|
long_desc <<-DESC
|
24
|
-
The current directory should contain a subdirectory named "cookbooks"
|
25
|
-
uploaded.
|
27
|
+
The current working directory should contain a subdirectory named "cookbooks"
|
28
|
+
that is the collection of recipes to be uploaded.
|
29
|
+
|
30
|
+
The uploaded cookbook will be run when executing 'recipes apply'.
|
26
31
|
DESC
|
27
32
|
|
28
33
|
method_option :environment, :type => :string, :aliases => %w(-e),
|
29
34
|
:desc => "Environment that will receive the recipes"
|
30
35
|
method_option :account, :type => :string, :aliases => %w(-c),
|
31
|
-
:desc => "Name of the account
|
36
|
+
:desc => "Name of the account in which the environment can be found"
|
32
37
|
def upload
|
33
38
|
environment = fetch_environment(options[:environment], options[:account])
|
34
39
|
environment.upload_recipes
|
@@ -36,17 +41,17 @@ module EY
|
|
36
41
|
end
|
37
42
|
|
38
43
|
desc "download [--environment ENVIRONMENT]",
|
39
|
-
"Download custom chef recipes from
|
44
|
+
"Download a copy of the custom chef recipes from this environment into the current directory."
|
40
45
|
long_desc <<-DESC
|
41
46
|
The recipes will be unpacked into a directory called "cookbooks" in the
|
42
|
-
current directory.
|
47
|
+
current directory. This is the opposite of 'recipes upload'.
|
43
48
|
|
44
49
|
If the cookbooks directory already exists, an error will be raised.
|
45
50
|
DESC
|
46
51
|
method_option :environment, :type => :string, :aliases => %w(-e),
|
47
52
|
:desc => "Environment for which to download the recipes"
|
48
53
|
method_option :account, :type => :string, :aliases => %w(-c),
|
49
|
-
:desc => "Name of the account
|
54
|
+
:desc => "Name of the account in which the environment can be found"
|
50
55
|
def download
|
51
56
|
environment = fetch_environment(options[:environment], options[:account])
|
52
57
|
environment.download_recipes
|
data/lib/engineyard/cli/web.rb
CHANGED
@@ -10,7 +10,7 @@ module EY
|
|
10
10
|
method_option :verbose, :type => :boolean, :aliases => %w(-v),
|
11
11
|
:desc => "Be verbose"
|
12
12
|
method_option :account, :type => :string, :aliases => %w(-c),
|
13
|
-
:desc => "Name of the account
|
13
|
+
:desc => "Name of the account in which the environment can be found"
|
14
14
|
def enable
|
15
15
|
app, environment = fetch_app_and_environment(options[:app], options[:environment], options[:account])
|
16
16
|
EY.ui.info "Taking down maintenance page for '#{app.name}' in '#{environment.name}'"
|
@@ -37,7 +37,7 @@ module EY
|
|
37
37
|
method_option :verbose, :type => :boolean, :aliases => %w(-v),
|
38
38
|
:desc => "Be verbose"
|
39
39
|
method_option :account, :type => :string, :aliases => %w(-c),
|
40
|
-
:desc => "Name of the account
|
40
|
+
:desc => "Name of the account in which the environment can be found"
|
41
41
|
def disable
|
42
42
|
app, environment = fetch_app_and_environment(options[:app], options[:environment], options[:account])
|
43
43
|
EY.ui.info "Putting up maintenance page for '#{app.name}' in '#{environment.name}'"
|
data/lib/engineyard/cli.rb
CHANGED
@@ -43,7 +43,7 @@ module EY
|
|
43
43
|
method_option :app, :type => :string, :aliases => %w(-a),
|
44
44
|
:desc => "Name of the application to deploy"
|
45
45
|
method_option :account, :type => :string, :aliases => %w(-c),
|
46
|
-
:desc => "Name of the account
|
46
|
+
:desc => "Name of the account in which the environment can be found"
|
47
47
|
method_option :verbose, :type => :boolean, :aliases => %w(-v),
|
48
48
|
:desc => "Be verbose"
|
49
49
|
method_option :extra_deploy_hook_options, :type => :hash, :default => {},
|
@@ -120,7 +120,7 @@ module EY
|
|
120
120
|
method_option :environment, :type => :string, :aliases => %w(-e),
|
121
121
|
:desc => "Environment to rebuild"
|
122
122
|
method_option :account, :type => :string, :aliases => %w(-c),
|
123
|
-
:desc => "Name of the account
|
123
|
+
:desc => "Name of the account in which the environment can be found"
|
124
124
|
def rebuild
|
125
125
|
environment = fetch_environment(options[:environment], options[:account])
|
126
126
|
EY.ui.debug("Rebuilding #{environment.name}")
|
@@ -138,7 +138,7 @@ module EY
|
|
138
138
|
method_option :app, :type => :string, :aliases => %w(-a),
|
139
139
|
:desc => "Name of the application to roll back"
|
140
140
|
method_option :account, :type => :string, :aliases => %w(-c),
|
141
|
-
:desc => "Name of the account
|
141
|
+
:desc => "Name of the account in which the environment can be found"
|
142
142
|
method_option :verbose, :type => :boolean, :aliases => %w(-v),
|
143
143
|
:desc => "Be verbose"
|
144
144
|
method_option :extra_deploy_hook_options, :type => :hash, :default => {},
|
@@ -168,7 +168,7 @@ module EY
|
|
168
168
|
method_option :environment, :type => :string, :aliases => %w(-e),
|
169
169
|
:desc => "Environment to ssh into"
|
170
170
|
method_option :account, :type => :string, :aliases => %w(-c),
|
171
|
-
:desc => "Name of the account
|
171
|
+
:desc => "Name of the account in which the environment can be found"
|
172
172
|
method_option :all, :type => :boolean, :aliases => %(-a),
|
173
173
|
:desc => "Run command on all servers"
|
174
174
|
method_option :app_servers, :type => :boolean,
|
@@ -231,7 +231,7 @@ module EY
|
|
231
231
|
method_option :environment, :type => :string, :aliases => %w(-e),
|
232
232
|
:desc => "Environment with the interesting logs"
|
233
233
|
method_option :account, :type => :string, :aliases => %w(-c),
|
234
|
-
:desc => "Name of the account
|
234
|
+
:desc => "Name of the account in which the environment can be found"
|
235
235
|
def logs
|
236
236
|
environment = fetch_environment(options[:environment], options[:account])
|
237
237
|
environment.logs.each do |log|
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'escape'
|
2
|
+
|
3
|
+
module EY
|
4
|
+
module Model
|
5
|
+
class Deployment < ApiStruct.new(:id, :app, :created_at, :environment, :finished_at, :migration_command, :output, :ref, :successful)
|
6
|
+
def self.started(environment, app, ref, migration_command)
|
7
|
+
from_hash({
|
8
|
+
:app => app,
|
9
|
+
:environment => environment,
|
10
|
+
:migration_command => migration_command,
|
11
|
+
:ref => ref,
|
12
|
+
:created_at => Time.now.utc,
|
13
|
+
})
|
14
|
+
end
|
15
|
+
|
16
|
+
def finished(successful, output)
|
17
|
+
self.successful = successful
|
18
|
+
self.output = output
|
19
|
+
self.finished_at = Time.now.utc
|
20
|
+
post_to_appcloud!
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def post_to_appcloud!
|
26
|
+
api.request(api_uri, :method => :post, :params => params)
|
27
|
+
EY.ui.info "Deployment recorded in AppCloud"
|
28
|
+
end
|
29
|
+
|
30
|
+
def params
|
31
|
+
{:deployment => {
|
32
|
+
:created_at => created_at,
|
33
|
+
:finished_at => finished_at,
|
34
|
+
:migrate => !!migration_command,
|
35
|
+
:migrate_command => migration_command,
|
36
|
+
:output => output,
|
37
|
+
:ref => ref,
|
38
|
+
:successful => successful,
|
39
|
+
}}
|
40
|
+
end
|
41
|
+
|
42
|
+
def api_uri
|
43
|
+
"/apps/#{app.id}/environments/#{environment.id}/deployments"
|
44
|
+
end
|
45
|
+
|
46
|
+
def api
|
47
|
+
app.api
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'escape'
|
2
|
+
require 'open4'
|
2
3
|
|
3
4
|
module EY
|
4
5
|
module Model
|
@@ -19,13 +20,17 @@ module EY
|
|
19
20
|
private :adapter
|
20
21
|
|
21
22
|
def deploy(app, ref, migration_command=nil, extra_configuration=nil, verbose=false)
|
23
|
+
deployment = Deployment.started(environment, app, ref, migration_command)
|
24
|
+
|
22
25
|
deploy_command = adapter(app, verbose).deploy do |args|
|
23
26
|
args.config = extra_configuration if extra_configuration
|
24
27
|
args.migrate = migration_command if migration_command
|
25
28
|
args.ref = ref
|
26
29
|
end
|
27
30
|
|
28
|
-
|
31
|
+
successful, output = invoke_with_output(deploy_command)
|
32
|
+
deployment.finished(successful, output)
|
33
|
+
successful
|
29
34
|
end
|
30
35
|
|
31
36
|
def rollback(app, extra_configuration=nil, verbose=false)
|
@@ -62,20 +67,29 @@ module EY
|
|
62
67
|
|
63
68
|
private
|
64
69
|
|
65
|
-
def ssh(remote_command
|
70
|
+
def ssh(remote_command)
|
66
71
|
user = environment.username
|
72
|
+
out = ""
|
73
|
+
tee = lambda do |chunk|
|
74
|
+
out << chunk
|
75
|
+
$stdout << chunk
|
76
|
+
end
|
67
77
|
|
68
78
|
cmd = Escape.shell_command(%w[ssh -o StrictHostKeyChecking=no -q] << "#{user}@#{hostname}" << remote_command)
|
69
|
-
cmd << " > /dev/null" unless output
|
70
79
|
EY.ui.debug(cmd)
|
71
|
-
|
72
|
-
|
80
|
+
if ENV["NO_SSH"]
|
81
|
+
[true, "NO_SSH is set."]
|
73
82
|
else
|
74
|
-
true
|
83
|
+
status = Open4.spawn(cmd, :out => tee, :err => tee, :quiet => true)
|
84
|
+
[status.success?, out]
|
75
85
|
end
|
76
86
|
end
|
77
87
|
|
78
88
|
def invoke(action)
|
89
|
+
invoke_with_output(action).first
|
90
|
+
end
|
91
|
+
|
92
|
+
def invoke_with_output(action)
|
79
93
|
action.call do |cmd|
|
80
94
|
puts cmd if action.verbose
|
81
95
|
ssh cmd
|
data/lib/engineyard/model.rb
CHANGED
@@ -3,6 +3,7 @@ module EY
|
|
3
3
|
autoload :ApiStruct, 'engineyard/model/api_struct'
|
4
4
|
autoload :Account, 'engineyard/model/account'
|
5
5
|
autoload :App, 'engineyard/model/app'
|
6
|
+
autoload :Deployment, 'engineyard/model/deployment'
|
6
7
|
autoload :Environment, 'engineyard/model/environment'
|
7
8
|
autoload :Log, 'engineyard/model/log'
|
8
9
|
autoload :Instance, 'engineyard/model/instance'
|
data/lib/engineyard/version.rb
CHANGED
@@ -11,13 +11,13 @@ describe "EY::Model::Environment#rebuild" do
|
|
11
11
|
|
12
12
|
FakeWeb.register_uri(
|
13
13
|
:put,
|
14
|
-
"https://cloud.engineyard.com/api/v2/environments/#{env.id}/
|
14
|
+
"https://cloud.engineyard.com/api/v2/environments/#{env.id}/update_instances",
|
15
15
|
:body => ''
|
16
16
|
)
|
17
17
|
|
18
18
|
env.rebuild
|
19
19
|
|
20
|
-
FakeWeb.should have_requested(:put, "https://cloud.engineyard.com/api/v2/environments/#{env.id}/
|
20
|
+
FakeWeb.should have_requested(:put, "https://cloud.engineyard.com/api/v2/environments/#{env.id}/update_instances")
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
data/spec/ey/deploy_spec.rb
CHANGED
@@ -38,6 +38,7 @@ describe "ey deploy" do
|
|
38
38
|
|
39
39
|
def verify_ran(scenario)
|
40
40
|
@out.should match(/Beginning deploy for.*#{scenario[:application]}.*#{scenario[:environment]}/)
|
41
|
+
@out.should match(/Deployment recorded in AppCloud/)
|
41
42
|
@ssh_commands.should have_command_like(/engineyard-serverside.*deploy.*--app #{scenario[:application]}/)
|
42
43
|
end
|
43
44
|
|
data/spec/support/fake_awsm.ru
CHANGED
@@ -96,7 +96,7 @@ class FakeAwsm < Sinatra::Base
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
|
99
|
-
put "/api/v2/environments/:env_id/
|
99
|
+
put "/api/v2/environments/:env_id/update_instances" do
|
100
100
|
status(202)
|
101
101
|
""
|
102
102
|
end
|
@@ -106,6 +106,10 @@ class FakeAwsm < Sinatra::Base
|
|
106
106
|
""
|
107
107
|
end
|
108
108
|
|
109
|
+
post "/api/v2/apps/:app_id/environments/:environment_id/deployments" do
|
110
|
+
{"deployment" => params[:deployment].merge({"id" => 2, "commit" => 'a'*40})}.to_json
|
111
|
+
end
|
112
|
+
|
109
113
|
post "/api/v2/authenticate" do
|
110
114
|
if valid_user?
|
111
115
|
{"api_token" => "deadbeef", "ok" => true}.to_json
|
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
7
|
- 3
|
9
|
-
-
|
10
|
-
version: 1.3.
|
8
|
+
- 10
|
9
|
+
version: 1.3.10
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- EY Cloud Team
|
@@ -15,102 +14,104 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2010-
|
17
|
+
date: 2010-12-28 00:00:00 -08:00
|
19
18
|
default_executable: ey
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
23
|
-
|
21
|
+
prerelease: false
|
22
|
+
name: thor
|
23
|
+
type: :runtime
|
24
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
25
|
requirements:
|
25
26
|
- - ~>
|
26
27
|
- !ruby/object:Gem::Version
|
27
|
-
hash: 43
|
28
28
|
segments:
|
29
29
|
- 0
|
30
30
|
- 14
|
31
31
|
- 6
|
32
32
|
version: 0.14.6
|
33
|
-
|
33
|
+
requirement: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
34
35
|
prerelease: false
|
36
|
+
name: rest-client
|
35
37
|
type: :runtime
|
36
|
-
version_requirements:
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
38
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
40
39
|
requirements:
|
41
40
|
- - ~>
|
42
41
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 7
|
44
42
|
segments:
|
45
43
|
- 1
|
46
44
|
- 4
|
47
45
|
version: "1.4"
|
48
|
-
|
46
|
+
requirement: *id002
|
47
|
+
- !ruby/object:Gem::Dependency
|
49
48
|
prerelease: false
|
49
|
+
name: highline
|
50
50
|
type: :runtime
|
51
|
-
version_requirements:
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
54
|
-
none: false
|
51
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
55
52
|
requirements:
|
56
53
|
- - ~>
|
57
54
|
- !ruby/object:Gem::Version
|
58
|
-
hash: 13
|
59
55
|
segments:
|
60
56
|
- 1
|
61
57
|
- 6
|
62
58
|
- 1
|
63
59
|
version: 1.6.1
|
64
|
-
|
60
|
+
requirement: *id003
|
61
|
+
- !ruby/object:Gem::Dependency
|
65
62
|
prerelease: false
|
63
|
+
name: json_pure
|
66
64
|
type: :runtime
|
67
|
-
version_requirements:
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
65
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
71
66
|
requirements:
|
72
67
|
- - ">="
|
73
68
|
- !ruby/object:Gem::Version
|
74
|
-
hash: 3
|
75
69
|
segments:
|
76
70
|
- 0
|
77
71
|
version: "0"
|
78
|
-
|
72
|
+
requirement: *id004
|
73
|
+
- !ruby/object:Gem::Dependency
|
79
74
|
prerelease: false
|
75
|
+
name: escape
|
80
76
|
type: :runtime
|
81
|
-
version_requirements:
|
82
|
-
- !ruby/object:Gem::Dependency
|
83
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
84
|
-
none: false
|
77
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
85
78
|
requirements:
|
86
79
|
- - ~>
|
87
80
|
- !ruby/object:Gem::Version
|
88
|
-
hash: 23
|
89
81
|
segments:
|
90
82
|
- 0
|
91
83
|
- 0
|
92
84
|
- 4
|
93
85
|
version: 0.0.4
|
94
|
-
|
86
|
+
requirement: *id005
|
87
|
+
- !ruby/object:Gem::Dependency
|
95
88
|
prerelease: false
|
89
|
+
name: engineyard-serverside-adapter
|
96
90
|
type: :runtime
|
97
|
-
version_requirements:
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
91
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
101
92
|
requirements:
|
102
93
|
- - "="
|
103
94
|
- !ruby/object:Gem::Version
|
104
|
-
hash: 7
|
105
95
|
segments:
|
106
96
|
- 1
|
107
97
|
- 4
|
108
98
|
- 0
|
109
99
|
version: 1.4.0
|
110
|
-
|
100
|
+
requirement: *id006
|
101
|
+
- !ruby/object:Gem::Dependency
|
111
102
|
prerelease: false
|
103
|
+
name: open4
|
112
104
|
type: :runtime
|
113
|
-
version_requirements:
|
105
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
segments:
|
110
|
+
- 1
|
111
|
+
- 0
|
112
|
+
- 1
|
113
|
+
version: 1.0.1
|
114
|
+
requirement: *id007
|
114
115
|
description: This gem allows you to deploy your rails application to the Engine Yard cloud directly from the command line.
|
115
116
|
email: cloud@engineyard.com
|
116
117
|
executables:
|
@@ -122,63 +123,33 @@ extra_rdoc_files: []
|
|
122
123
|
files:
|
123
124
|
- bin/ey
|
124
125
|
- lib/engineyard/cli.rb
|
125
|
-
- lib/engineyard/
|
126
|
+
- lib/engineyard/api.rb
|
126
127
|
- lib/engineyard/error.rb
|
127
|
-
- lib/engineyard/
|
128
|
+
- lib/engineyard/ruby_ext.rb
|
129
|
+
- lib/engineyard/cli/api.rb
|
130
|
+
- lib/engineyard/cli/web.rb
|
131
|
+
- lib/engineyard/cli/recipes.rb
|
132
|
+
- lib/engineyard/cli/ui.rb
|
133
|
+
- lib/engineyard/model/log.rb
|
134
|
+
- lib/engineyard/model/instance.rb
|
135
|
+
- lib/engineyard/model/environment.rb
|
136
|
+
- lib/engineyard/model/app.rb
|
137
|
+
- lib/engineyard/model/deployment.rb
|
138
|
+
- lib/engineyard/model/account.rb
|
139
|
+
- lib/engineyard/model/api_struct.rb
|
140
|
+
- lib/engineyard/thor.rb
|
141
|
+
- lib/engineyard/model.rb
|
142
|
+
- lib/engineyard/repo.rb
|
128
143
|
- lib/engineyard/collection/abstract.rb
|
129
144
|
- lib/engineyard/collection/apps.rb
|
130
145
|
- lib/engineyard/collection/environments.rb
|
131
146
|
- lib/engineyard/collection.rb
|
132
147
|
- lib/engineyard/config.rb
|
133
|
-
- lib/engineyard/repo.rb
|
134
|
-
- lib/engineyard/thor.rb
|
135
|
-
- lib/engineyard/api.rb
|
136
|
-
- lib/engineyard/cli/recipes.rb
|
137
|
-
- lib/engineyard/cli/web.rb
|
138
|
-
- lib/engineyard/cli/ui.rb
|
139
|
-
- lib/engineyard/cli/api.rb
|
140
148
|
- lib/engineyard/version.rb
|
141
|
-
- lib/engineyard/
|
142
|
-
- lib/engineyard/model/account.rb
|
143
|
-
- lib/engineyard/model/instance.rb
|
144
|
-
- lib/engineyard/model/api_struct.rb
|
145
|
-
- lib/engineyard/model/app.rb
|
146
|
-
- lib/engineyard/model/environment.rb
|
147
|
-
- lib/engineyard/model/log.rb
|
149
|
+
- lib/engineyard/resolver.rb
|
148
150
|
- lib/engineyard.rb
|
149
151
|
- LICENSE
|
150
152
|
- README.rdoc
|
151
|
-
- spec/support/shared_behavior.rb
|
152
|
-
- spec/support/helpers.rb
|
153
|
-
- spec/support/bundled_ey
|
154
|
-
- spec/support/ruby_ext.rb
|
155
|
-
- spec/support/git_repo.rb
|
156
|
-
- spec/support/fake_awsm.ru
|
157
|
-
- spec/engineyard/resolver_spec.rb
|
158
|
-
- spec/engineyard/api_spec.rb
|
159
|
-
- spec/engineyard/repo_spec.rb
|
160
|
-
- spec/engineyard/cli_spec.rb
|
161
|
-
- spec/engineyard/config_spec.rb
|
162
|
-
- spec/engineyard/collection/environments_spec.rb
|
163
|
-
- spec/engineyard/collection/apps_spec.rb
|
164
|
-
- spec/engineyard/cli/api_spec.rb
|
165
|
-
- spec/engineyard/model/environment_spec.rb
|
166
|
-
- spec/engineyard/model/instance_spec.rb
|
167
|
-
- spec/engineyard/model/api_struct_spec.rb
|
168
|
-
- spec/ey/rollback_spec.rb
|
169
|
-
- spec/ey/rebuild_spec.rb
|
170
|
-
- spec/ey/web/enable_spec.rb
|
171
|
-
- spec/ey/web/disable_spec.rb
|
172
|
-
- spec/ey/deploy_spec.rb
|
173
|
-
- spec/ey/ey_spec.rb
|
174
|
-
- spec/ey/ssh_spec.rb
|
175
|
-
- spec/ey/list_environments_spec.rb
|
176
|
-
- spec/ey/logs_spec.rb
|
177
|
-
- spec/ey/recipes/upload_spec.rb
|
178
|
-
- spec/ey/recipes/download_spec.rb
|
179
|
-
- spec/ey/recipes/apply_spec.rb
|
180
|
-
- spec/spec_helper.rb
|
181
|
-
- spec/engineyard_spec.rb
|
182
153
|
has_rdoc: true
|
183
154
|
homepage: http://github.com/engineyard/engineyard
|
184
155
|
licenses: []
|
@@ -189,59 +160,55 @@ rdoc_options: []
|
|
189
160
|
require_paths:
|
190
161
|
- lib
|
191
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
192
|
-
none: false
|
193
163
|
requirements:
|
194
164
|
- - ">="
|
195
165
|
- !ruby/object:Gem::Version
|
196
|
-
hash: 3
|
197
166
|
segments:
|
198
167
|
- 0
|
199
168
|
version: "0"
|
200
169
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
201
|
-
none: false
|
202
170
|
requirements:
|
203
171
|
- - ">="
|
204
172
|
- !ruby/object:Gem::Version
|
205
|
-
hash: 3
|
206
173
|
segments:
|
207
174
|
- 0
|
208
175
|
version: "0"
|
209
176
|
requirements: []
|
210
177
|
|
211
178
|
rubyforge_project:
|
212
|
-
rubygems_version: 1.3.
|
179
|
+
rubygems_version: 1.3.6
|
213
180
|
signing_key:
|
214
181
|
specification_version: 3
|
215
182
|
summary: Command-line deployment for the Engine Yard cloud
|
216
183
|
test_files:
|
217
|
-
- spec/support/shared_behavior.rb
|
218
|
-
- spec/support/helpers.rb
|
219
|
-
- spec/support/bundled_ey
|
220
|
-
- spec/support/ruby_ext.rb
|
221
184
|
- spec/support/git_repo.rb
|
222
185
|
- spec/support/fake_awsm.ru
|
223
|
-
- spec/
|
224
|
-
- spec/
|
225
|
-
- spec/
|
186
|
+
- spec/support/ruby_ext.rb
|
187
|
+
- spec/support/helpers.rb
|
188
|
+
- spec/support/bundled_ey
|
189
|
+
- spec/support/shared_behavior.rb
|
226
190
|
- spec/engineyard/cli_spec.rb
|
227
191
|
- spec/engineyard/config_spec.rb
|
228
|
-
- spec/engineyard/collection/environments_spec.rb
|
229
|
-
- spec/engineyard/collection/apps_spec.rb
|
230
192
|
- spec/engineyard/cli/api_spec.rb
|
193
|
+
- spec/engineyard/model/api_struct_spec.rb
|
231
194
|
- spec/engineyard/model/environment_spec.rb
|
232
195
|
- spec/engineyard/model/instance_spec.rb
|
233
|
-
- spec/engineyard/
|
196
|
+
- spec/engineyard/resolver_spec.rb
|
197
|
+
- spec/engineyard/collection/apps_spec.rb
|
198
|
+
- spec/engineyard/collection/environments_spec.rb
|
199
|
+
- spec/engineyard/repo_spec.rb
|
200
|
+
- spec/engineyard/api_spec.rb
|
201
|
+
- spec/ey/list_environments_spec.rb
|
234
202
|
- spec/ey/rollback_spec.rb
|
203
|
+
- spec/ey/logs_spec.rb
|
235
204
|
- spec/ey/rebuild_spec.rb
|
236
|
-
- spec/ey/
|
237
|
-
- spec/ey/
|
205
|
+
- spec/ey/recipes/download_spec.rb
|
206
|
+
- spec/ey/recipes/apply_spec.rb
|
207
|
+
- spec/ey/recipes/upload_spec.rb
|
238
208
|
- spec/ey/deploy_spec.rb
|
239
209
|
- spec/ey/ey_spec.rb
|
210
|
+
- spec/ey/web/disable_spec.rb
|
211
|
+
- spec/ey/web/enable_spec.rb
|
240
212
|
- spec/ey/ssh_spec.rb
|
241
|
-
- spec/ey/list_environments_spec.rb
|
242
|
-
- spec/ey/logs_spec.rb
|
243
|
-
- spec/ey/recipes/upload_spec.rb
|
244
|
-
- spec/ey/recipes/download_spec.rb
|
245
|
-
- spec/ey/recipes/apply_spec.rb
|
246
|
-
- spec/spec_helper.rb
|
247
213
|
- spec/engineyard_spec.rb
|
214
|
+
- spec/spec_helper.rb
|