ey_cli 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -64,7 +64,7 @@ end
64
64
 
65
65
  desc "release a new version of ey_cli, tag the version and push the gem"
66
66
  task :release => :build do
67
- unless `git branch` =~ /^\* master$/
67
+ unless `git branch --no-color` =~ /^\* master$/
68
68
  puts "You must be on the master branch to release!"
69
69
  exit!
70
70
  end
data/bin/ey_cli CHANGED
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ $:.unshift(File.expand_path(File.dirname(__FILE__) + "/../lib"))
3
4
  require 'ey_cli'
4
5
 
5
6
  EYCli::CLI.new.run(ARGV)
data/ey_cli.gemspec CHANGED
@@ -13,8 +13,8 @@ Gem::Specification.new do |s|
13
13
  ## If your rubyforge_project name is different, then edit it and comment out
14
14
  ## the sub! line in the Rakefile
15
15
  s.name = 'ey_cli'
16
- s.version = '0.2.0'
17
- s.date = '2011-11-18'
16
+ s.version = '0.2.1'
17
+ s.date = '2012-04-09'
18
18
  s.rubyforge_project = 'ey_cli'
19
19
 
20
20
  ## Make sure your summary is short. The description may be as long
@@ -49,14 +49,14 @@ Gem::Specification.new do |s|
49
49
  s.add_dependency('hashie')
50
50
  s.add_dependency('json')
51
51
  s.add_dependency('multi_json')
52
- s.add_dependency('slop')
52
+ s.add_dependency('slop', '2.4.4')
53
53
 
54
54
  ## List your development dependencies here. Development dependencies are
55
55
  ## those that are only needed during development
56
56
  s.add_development_dependency('rake', '~> 0.9')
57
57
  s.add_development_dependency('rspec')
58
58
  s.add_development_dependency('webmock')
59
- s.add_development_dependency('fakefs')
59
+ s.add_development_dependency('fakefs', '~> 0.3.2')
60
60
 
61
61
  ## Leave this section as-is. It will be automatically generated from the
62
62
  ## contents of your Git repository via the gemspec task. DO NOT REMOVE
@@ -64,7 +64,6 @@ Gem::Specification.new do |s|
64
64
  # = MANIFEST =
65
65
  s.files = %w[
66
66
  Gemfile
67
- Gemfile.lock
68
67
  LICENSE
69
68
  README.md
70
69
  Rakefile
data/history.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.2.1 (12-04-09)
2
+
3
+ - Force slop 2.4.4; as slow 3.0+ introduces a regression
4
+ - Pass environment options thru correctly when booting an environment
5
+ - 'show' displays IP address
6
+
1
7
  ## 0.2.0 (11-18-2011)
2
8
 
3
9
  - Allow to deploy Node.js applications
data/lib/ey_cli/api.rb CHANGED
@@ -7,7 +7,7 @@ module EYCli
7
7
  attr_reader :endpoint
8
8
 
9
9
  def initialize(endpoint = nil)
10
- @endpoint = endpoint || 'https://cloud.engineyard.com/api/v2/'
10
+ @endpoint = endpoint || ENV['EY_ENDPOINT'] || 'https://cloud.engineyard.com/api/v2/'
11
11
  end
12
12
 
13
13
  def read_token(file = nil)
data/lib/ey_cli/cli.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  module EYCli
2
2
  class CLI
3
3
  def run(args)
4
- name = args.shift.downcase
4
+ name = (args.shift || 'help').downcase
5
5
  command = EYCli.command_manager[name]
6
6
  unless command
7
7
  EYCli.term.say <<-EOF
@@ -16,6 +16,7 @@ module EYCli
16
16
  command_name = name.to_sym
17
17
  return nil unless commands.key?(command_name)
18
18
  commands[command_name] = load_command(command_name) unless commands[command_name]
19
+ commands[command_name]
19
20
  end
20
21
 
21
22
  def load_command(name)
@@ -11,8 +11,13 @@ module EYCli
11
11
  account = @accounts.fetch_account(options.delete(:account))
12
12
  app = @apps.create(account, Dir.pwd, options)
13
13
  if app
14
- @envs.create(app, CreateEnv::EnvParser.new.fill_create_env_options(options)) unless options[:no_env]
15
- EYCli.term.say("You can run now 'ey_cli show #{app.name}' to know the status of the application")
14
+ env_parser = CreateEnv::EnvParser.new.fill_create_env_options(options)
15
+ if options[:no_env]
16
+ EYCli.term.say("Skipping creation of environment...")
17
+ else
18
+ environment = @envs.create(app, env_parser)
19
+ EYCli.term.say("You can run now 'ey_cli show #{app.name}' to know the status of the application")
20
+ end
16
21
  end
17
22
  app
18
23
  end
@@ -61,7 +66,7 @@ EOF
61
66
  on :db_instances, true, :as => :integer
62
67
  #on :util_instances, true, :as => :integer # FIXME: utils instances are handled differently
63
68
  on :solo, false, :default => false
64
- on :stack, true, :matches => /passenger|unicorn|trinidad/
69
+ on :stack, true, :matches => /passenger|unicorn|puma|thin|trinidad/
65
70
  on :no_env, false, :default => false
66
71
  on :app_size, true do |size|
67
72
  CreateEnv::EnvParser.check_instance_size(size)
@@ -8,9 +8,11 @@ module EYCli
8
8
  end
9
9
 
10
10
  def invoke
11
- account = @accounts.fetch_account(options[:account]) if options[:account]
12
- app = @apps.fetch_app(account, {:app_name => options[:app]})
13
- @environments.create(app, options_parser.fill_create_env_options(options))
11
+ account = @accounts.fetch_account(options[:account]) if options[:account]
12
+ app = @apps.fetch_app(account, {:app_name => options[:app]})
13
+ env_options = options_parser.fill_create_env_options(options)
14
+
15
+ @environments.create(app, env_options)
14
16
  end
15
17
 
16
18
  def help
@@ -51,7 +53,7 @@ EOF
51
53
  on :db_instances, true, :as => :integer
52
54
  #on :util_instances, true, :as => :integer # FIXME: utils instances are handled differently
53
55
  on :solo, false, :default => false
54
- on :stack, true, :matches => /passenger|unicorn|trinidad/
56
+ on :stack, true, :matches => /passenger|unicorn|puma|thin|trinidad/
55
57
  on :app_size, true do |size|
56
58
  EnvParser.check_instance_size(size)
57
59
  end
@@ -61,7 +63,7 @@ EOF
61
63
  end
62
64
  opts.to_hash
63
65
  end
64
-
66
+
65
67
  def self.check_instance_size(size)
66
68
  sizes_list = [
67
69
  'm1.small', 'm1.large', 'm1.xlarge',
@@ -76,12 +78,18 @@ EOF
76
78
  end
77
79
 
78
80
  def fill_create_env_options(options)
79
- opts = {:name => (options[:env_name] || options[:name]), :framework_env => options[:framework_env]}
80
- if options[:stack]
81
- case options[:stack].to_sym
82
- when :passenger then options[:stack] = 'nginx_passenger3'
83
- when :unicorn then options[:stack] = 'nginx_unicorn'
84
- when :trinidad then options[:ruby_version] = 'JRuby'
81
+ opts = {
82
+ :name => (options[:env_name] || options[:name]),
83
+ :framework_env => options[:framework_env],
84
+ :stack => options[:stack],
85
+ :ruby_version => options[:ruby_version]
86
+ }
87
+
88
+ if opts[:stack]
89
+ case opts[:stack].to_sym
90
+ when :passenger then opts[:stack] = 'nginx_passenger3'
91
+ when :unicorn then opts[:stack] = 'nginx_unicorn'
92
+ when :trinidad then opts[:ruby_version] = 'JRuby'
85
93
  end
86
94
  end
87
95
 
@@ -99,7 +107,7 @@ EOF
99
107
  else
100
108
  opts[:cluster_configuration] = {:configuration => 'cluster'}
101
109
  end
102
-
110
+
103
111
  opts
104
112
  end
105
113
  end
@@ -27,9 +27,10 @@ module EYCli
27
27
  app.environments.each do |env|
28
28
  status << %Q{
29
29
  + #{env.name}:
30
- - environment: #{env.framework_env}
31
- - stack: #{env.app_server_stack_name}
32
- - status: #{env.instance_status}}
30
+ - environment: #{env.framework_env}
31
+ - IP address: #{env.load_balancer_ip_address}
32
+ - stack: #{env.app_server_stack_name}
33
+ - status: #{env.instance_status}}
33
34
 
34
35
  if deploy = env.last_deployment(app)
35
36
  status << %Q{
data/lib/ey_cli.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module EYCli
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
 
4
4
  require 'hashie/mash'
5
5
  require 'json'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ey_cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-18 00:00:00.000000000 Z
12
+ date: 2012-04-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
16
- requirement: &2157796660 !ruby/object:Gem::Requirement
16
+ requirement: &70186120190660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157796660
24
+ version_requirements: *70186120190660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: faraday_middleware
27
- requirement: &2157796080 !ruby/object:Gem::Requirement
27
+ requirement: &70186120190120 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2157796080
35
+ version_requirements: *70186120190120
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: faraday-stack
38
- requirement: &2157795540 !ruby/object:Gem::Requirement
38
+ requirement: &70186120189660 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2157795540
46
+ version_requirements: *70186120189660
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: highline
49
- requirement: &2157794940 !ruby/object:Gem::Requirement
49
+ requirement: &70186120189200 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2157794940
57
+ version_requirements: *70186120189200
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hashie
60
- requirement: &2157794220 !ruby/object:Gem::Requirement
60
+ requirement: &70186120188660 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *2157794220
68
+ version_requirements: *70186120188660
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: json
71
- requirement: &2157793500 !ruby/object:Gem::Requirement
71
+ requirement: &70186120188120 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *2157793500
79
+ version_requirements: *70186120188120
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: multi_json
82
- requirement: &2157793040 !ruby/object:Gem::Requirement
82
+ requirement: &70186120187540 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,21 +87,21 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *2157793040
90
+ version_requirements: *70186120187540
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: slop
93
- requirement: &2157792580 !ruby/object:Gem::Requirement
93
+ requirement: &70186120186680 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
- - - ! '>='
96
+ - - =
97
97
  - !ruby/object:Gem::Version
98
- version: '0'
98
+ version: 2.4.4
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *2157792580
101
+ version_requirements: *70186120186680
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rake
104
- requirement: &2157791700 !ruby/object:Gem::Requirement
104
+ requirement: &70186120185640 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '0.9'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *2157791700
112
+ version_requirements: *70186120185640
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rspec
115
- requirement: &2157790760 !ruby/object:Gem::Requirement
115
+ requirement: &70186120184440 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *2157790760
123
+ version_requirements: *70186120184440
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: webmock
126
- requirement: &2157789700 !ruby/object:Gem::Requirement
126
+ requirement: &70186120183980 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,18 +131,18 @@ dependencies:
131
131
  version: '0'
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *2157789700
134
+ version_requirements: *70186120183980
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: fakefs
137
- requirement: &2157789200 !ruby/object:Gem::Requirement
137
+ requirement: &70186120199620 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
- - - ! '>='
140
+ - - ~>
141
141
  - !ruby/object:Gem::Version
142
- version: '0'
142
+ version: 0.3.2
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *2157789200
145
+ version_requirements: *70186120199620
146
146
  description: More user friendly CLI for Engine Yard cloud. Use undocumented APIs
147
147
  email: david.calavera@gmail.com
148
148
  executables:
@@ -153,7 +153,6 @@ extra_rdoc_files:
153
153
  - LICENSE
154
154
  files:
155
155
  - Gemfile
156
- - Gemfile.lock
157
156
  - LICENSE
158
157
  - README.md
159
158
  - Rakefile
@@ -213,7 +212,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
212
  version: '0'
214
213
  segments:
215
214
  - 0
216
- hash: 1484874266169118057
215
+ hash: -1956038389853527985
217
216
  required_rubygems_version: !ruby/object:Gem::Requirement
218
217
  none: false
219
218
  requirements:
@@ -222,7 +221,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
221
  version: '0'
223
222
  requirements: []
224
223
  rubyforge_project: ey_cli
225
- rubygems_version: 1.8.10
224
+ rubygems_version: 1.8.17
226
225
  signing_key:
227
226
  specification_version: 2
228
227
  summary: More user friendly CLI for Engine Yard cloud
data/Gemfile.lock DELETED
@@ -1,58 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- ey_cli (0.2.0)
5
- faraday
6
- faraday-stack
7
- faraday_middleware
8
- hashie
9
- highline
10
- json
11
- multi_json
12
- slop
13
-
14
- GEM
15
- remote: http://rubygems.org/
16
- specs:
17
- addressable (2.2.6)
18
- crack (0.3.1)
19
- diff-lcs (1.1.3)
20
- fakefs (0.3.2)
21
- faraday (0.7.4)
22
- addressable (~> 2.2.6)
23
- multipart-post (~> 1.1.0)
24
- rack (>= 1.1.0, < 2)
25
- faraday-stack (0.1.3)
26
- faraday (~> 0.6)
27
- faraday_middleware (0.7.0)
28
- faraday (~> 0.7.3)
29
- hashie (1.0.0)
30
- highline (1.6.2)
31
- json (1.6.1)
32
- multi_json (1.0.3)
33
- multipart-post (1.1.3)
34
- rack (1.3.5)
35
- rake (0.9.2)
36
- rspec (2.6.0)
37
- rspec-core (~> 2.6.0)
38
- rspec-expectations (~> 2.6.0)
39
- rspec-mocks (~> 2.6.0)
40
- rspec-core (2.6.4)
41
- rspec-expectations (2.6.0)
42
- diff-lcs (~> 1.1.2)
43
- rspec-mocks (2.6.0)
44
- slop (2.1.0)
45
- webmock (1.7.6)
46
- addressable (~> 2.2, > 2.2.5)
47
- crack (>= 0.1.7)
48
-
49
- PLATFORMS
50
- java
51
- ruby
52
-
53
- DEPENDENCIES
54
- ey_cli!
55
- fakefs
56
- rake (~> 0.9)
57
- rspec
58
- webmock