engineyard 1.3.12 → 1.3.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -42,7 +42,7 @@ module EY
42
42
  def update_with_response(response)
43
43
  data = response['deployment']
44
44
  data.each do |key,val|
45
- self[key] = val if members.include?(key)
45
+ self.send("#{key}=", val) if respond_to?("#{key}=")
46
46
  end
47
47
  end
48
48
 
@@ -1,3 +1,3 @@
1
1
  module EY
2
- VERSION = '1.3.12'
2
+ VERSION = '1.3.13'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 12
10
- version: 1.3.12
9
+ - 13
10
+ version: 1.3.13
11
11
  platform: ruby
12
12
  authors:
13
13
  - EY Cloud Team
@@ -30,9 +30,9 @@ dependencies:
30
30
  - 14
31
31
  - 6
32
32
  version: 0.14.6
33
+ requirement: *id001
33
34
  name: thor
34
35
  prerelease: false
35
- requirement: *id001
36
36
  type: :runtime
37
37
  - !ruby/object:Gem::Dependency
38
38
  version_requirements: &id002 !ruby/object:Gem::Requirement
@@ -40,15 +40,15 @@ dependencies:
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- hash: 3
43
+ hash: 15
44
44
  segments:
45
45
  - 1
46
- - 4
47
- - 2
48
- version: 1.4.2
46
+ - 6
47
+ - 0
48
+ version: 1.6.0
49
+ requirement: *id002
49
50
  name: rest-client
50
51
  prerelease: false
51
- requirement: *id002
52
52
  type: :runtime
53
53
  - !ruby/object:Gem::Dependency
54
54
  version_requirements: &id003 !ruby/object:Gem::Requirement
@@ -62,9 +62,9 @@ dependencies:
62
62
  - 6
63
63
  - 1
64
64
  version: 1.6.1
65
+ requirement: *id003
65
66
  name: highline
66
67
  prerelease: false
67
- requirement: *id003
68
68
  type: :runtime
69
69
  - !ruby/object:Gem::Dependency
70
70
  version_requirements: &id004 !ruby/object:Gem::Requirement
@@ -76,9 +76,9 @@ dependencies:
76
76
  segments:
77
77
  - 0
78
78
  version: "0"
79
+ requirement: *id004
79
80
  name: json_pure
80
81
  prerelease: false
81
- requirement: *id004
82
82
  type: :runtime
83
83
  - !ruby/object:Gem::Dependency
84
84
  version_requirements: &id005 !ruby/object:Gem::Requirement
@@ -92,9 +92,9 @@ dependencies:
92
92
  - 0
93
93
  - 4
94
94
  version: 0.0.4
95
+ requirement: *id005
95
96
  name: escape
96
97
  prerelease: false
97
- requirement: *id005
98
98
  type: :runtime
99
99
  - !ruby/object:Gem::Dependency
100
100
  version_requirements: &id006 !ruby/object:Gem::Requirement
@@ -108,9 +108,9 @@ dependencies:
108
108
  - 4
109
109
  - 0
110
110
  version: 1.4.0
111
+ requirement: *id006
111
112
  name: engineyard-serverside-adapter
112
113
  prerelease: false
113
- requirement: *id006
114
114
  type: :runtime
115
115
  - !ruby/object:Gem::Dependency
116
116
  version_requirements: &id007 !ruby/object:Gem::Requirement
@@ -124,9 +124,9 @@ dependencies:
124
124
  - 0
125
125
  - 1
126
126
  version: 1.0.1
127
+ requirement: *id007
127
128
  name: open4
128
129
  prerelease: false
129
- requirement: *id007
130
130
  type: :runtime
131
131
  description: This gem allows you to deploy your rails application to the Engine Yard cloud directly from the command line.
132
132
  email: cloud@engineyard.com
@@ -149,7 +149,6 @@ files:
149
149
  - lib/engineyard/collection/environments.rb
150
150
  - lib/engineyard/collection.rb
151
151
  - lib/engineyard/config.rb
152
- - lib/engineyard/connection/system.rb
153
152
  - lib/engineyard/error.rb
154
153
  - lib/engineyard/model/account.rb
155
154
  - lib/engineyard/model/api_struct.rb
@@ -1,96 +0,0 @@
1
- require 'escape'
2
-
3
- module EY
4
- module Connection
5
- class System
6
- def adapter(app, instances, verbose)
7
- require 'engineyard-serverside-adapter'
8
- EY::Serverside::Adapter.new("/usr/local/ey_resin/ruby/bin") do |args|
9
- args.app = app.name
10
- args.repo = app.repository_uri
11
- args.instances = instances
12
- args.verbose = verbose || ENV['DEBUG']
13
- end
14
- end
15
- private :adapter
16
-
17
- def deploy(app, ref, instances, stack_name, framework_env, migration_command=nil, extra_configuration=nil, verbose=false)
18
- deploy_command = adapter(app, instances, verbose).deploy do |args|
19
- args.ref = ref
20
- args.stack = stack_name
21
- args.framework_env = framework_env
22
- args.migrate = migration_command if migration_command
23
- args.config = extra_configuration if extra_configuration
24
- end
25
-
26
- invoke deploy_command
27
- end
28
-
29
- def rollback(app, instances, stack_name, framework_env, extra_configuration=nil, verbose=false)
30
- rollback = adapter(app, instances, verbose).rollback do |args|
31
- args.stack = stack_name
32
- args.framework_env = framework_env
33
- args.config = extra_configuration if extra_configuration
34
- end
35
- invoke rollback
36
- end
37
-
38
-
39
- def put_up_maintenance_page(app, instances, verbose=false)
40
- invoke adapter(app, instances, verbose).enable_maintenance_page
41
- end
42
-
43
- def take_down_maintenance_page(app, instances, verbose=false)
44
- invoke adapter(app, instances, verbose).disable_maintenance_page
45
- end
46
-
47
- protected
48
-
49
- def engineyard_serverside_hostname
50
- # If we tell engineyard-serverside to use 'localhost', it'll run
51
- # commands on the instance directly (#system). If we give it the
52
- # instance's actual hostname, it'll SSH to itself.
53
- #
54
- # Using 'localhost' instead of its EC2 hostname speeds up
55
- # deploys on solos and single-app-server clusters significantly.
56
- app_master? ? 'localhost' : hostname
57
- end
58
-
59
- private
60
-
61
- def ssh(remote_command, output = true)
62
- user = environment.username
63
-
64
- cmd = Escape.shell_command(%w[ssh -o StrictHostKeyChecking=no -q] << "#{user}@#{hostname}" << remote_command)
65
- cmd << " > /dev/null" unless output
66
- EY.ui.debug(cmd)
67
- unless ENV["NO_SSH"]
68
- system cmd
69
- else
70
- true
71
- end
72
- end
73
-
74
- def invoke(action)
75
- action.call do |cmd|
76
- puts cmd if action.verbose
77
- ssh cmd
78
- end
79
- end
80
-
81
- def instances_data
82
- environment.instances.select { |inst| inst.has_app_code? }.map do |i|
83
- {
84
- :hostname => i.engineyard_serverside_hostname,
85
- :roles => [i.role],
86
- :name => i.name,
87
- }
88
- end
89
- end
90
-
91
- def app_master?
92
- environment.app_master == self
93
- end
94
- end
95
- end
96
- end