kensa 1.0.2 → 1.1.0.pre

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/Rakefile CHANGED
@@ -25,7 +25,7 @@ begin
25
25
  gemspec.add_development_dependency(%q<contest>, [">= 0"])
26
26
  gemspec.add_development_dependency(%q<timecop>, [">= 0.3.5"])
27
27
  gemspec.add_development_dependency(%q<sinatra>, [">= 0.9"])
28
- gemspec.add_dependency(%q<rest-client>, [">= 1.4.0", "< 1.7.0"])
28
+ gemspec.add_dependency(%q<rest-client>, ["~> 1.4.0"])
29
29
  gemspec.add_dependency(%q<yajl-ruby>, ["~> 0.6"])
30
30
  gemspec.add_dependency(%q<term-ansicolor>, ["~> 1.0"])
31
31
  gemspec.add_dependency(%q<launchy>, [">= 0.3.2"])
data/kensa.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{kensa}
8
- s.version = "1.0.2"
8
+ s.version = "1.1.0.pre"
9
9
 
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Blake Mizerany", "Pedro Belo", "Adam Wiggins"]
12
- s.date = %q{2011-01-16}
12
+ s.date = %q{2011-01-20}
13
13
  s.default_executable = %q{kensa}
14
14
  s.description = %q{Kensa is a command-line tool to help add-on providers integrating their services with Heroku. It manages manifest files, and provides a TDD-like approach for programmers to test and develop their APIs.}
15
15
  s.email = %q{pedro@heroku.com}
@@ -72,7 +72,7 @@ Gem::Specification.new do |s|
72
72
  s.add_development_dependency(%q<contest>, [">= 0"])
73
73
  s.add_development_dependency(%q<timecop>, [">= 0.3.5"])
74
74
  s.add_development_dependency(%q<sinatra>, [">= 0.9"])
75
- s.add_runtime_dependency(%q<rest-client>, [">= 1.4.0", "< 1.7.0"])
75
+ s.add_runtime_dependency(%q<rest-client>, ["~> 1.4.0"])
76
76
  s.add_runtime_dependency(%q<yajl-ruby>, ["~> 0.6"])
77
77
  s.add_runtime_dependency(%q<term-ansicolor>, ["~> 1.0"])
78
78
  s.add_runtime_dependency(%q<launchy>, [">= 0.3.2"])
@@ -82,7 +82,7 @@ Gem::Specification.new do |s|
82
82
  s.add_dependency(%q<contest>, [">= 0"])
83
83
  s.add_dependency(%q<timecop>, [">= 0.3.5"])
84
84
  s.add_dependency(%q<sinatra>, [">= 0.9"])
85
- s.add_dependency(%q<rest-client>, [">= 1.4.0", "< 1.7.0"])
85
+ s.add_dependency(%q<rest-client>, ["~> 1.4.0"])
86
86
  s.add_dependency(%q<yajl-ruby>, ["~> 0.6"])
87
87
  s.add_dependency(%q<term-ansicolor>, ["~> 1.0"])
88
88
  s.add_dependency(%q<launchy>, [">= 0.3.2"])
@@ -93,7 +93,7 @@ Gem::Specification.new do |s|
93
93
  s.add_dependency(%q<contest>, [">= 0"])
94
94
  s.add_dependency(%q<timecop>, [">= 0.3.5"])
95
95
  s.add_dependency(%q<sinatra>, [">= 0.9"])
96
- s.add_dependency(%q<rest-client>, [">= 1.4.0", "< 1.7.0"])
96
+ s.add_dependency(%q<rest-client>, ["~> 1.4.0"])
97
97
  s.add_dependency(%q<yajl-ruby>, ["~> 0.6"])
98
98
  s.add_dependency(%q<term-ansicolor>, ["~> 1.0"])
99
99
  s.add_dependency(%q<launchy>, [">= 0.3.2"])
data/lib/heroku/kensa.rb CHANGED
@@ -5,6 +5,6 @@ require 'heroku/kensa/sso'
5
5
 
6
6
  module Heroku
7
7
  module Kensa
8
- VERSION = "1.0.2"
8
+ VERSION = "1.1.0.pre"
9
9
  end
10
10
  end
@@ -99,9 +99,6 @@ module Heroku
99
99
  check "is a hash" do
100
100
  data["api"].is_a?(Hash)
101
101
  end
102
- check "contains username" do
103
- data["api"].has_key?("username") && data["api"]["username"] != ""
104
- end
105
102
  check "contains password" do
106
103
  data["api"].has_key?("password") && data["api"]["password"] != ""
107
104
  end
@@ -139,6 +136,12 @@ module Heroku
139
136
  end
140
137
  end
141
138
  end
139
+ check "deprecated fields" do
140
+ if data["api"].has_key?("username")
141
+ error "username is deprecated: Please authenticate using the add-on id."
142
+ end
143
+ true
144
+ end
142
145
  end
143
146
 
144
147
  end
@@ -206,7 +209,7 @@ module Heroku
206
209
  end
207
210
 
208
211
  def credentials
209
- %w( username password ).map { |attr| data["api"][attr] }
212
+ [ data['id'], data['api']['password'] ]
210
213
  end
211
214
  end
212
215
 
@@ -25,7 +25,7 @@ module Heroku
25
25
 
26
26
  def init
27
27
  Manifest.new(filename, @options).write
28
- Screen.new.message "Initialized new addon manifest in #{filename}"
28
+ Screen.new.message "Initialized new addon manifest in #{filename}\n"
29
29
  end
30
30
 
31
31
  def test
@@ -76,6 +76,8 @@ module Heroku
76
76
  resource['provider/addons'].post(resolve_manifest, headers)
77
77
  puts "-----> Manifest for \"#{data['id']}\" was pushed successfully"
78
78
  puts " Continue at https://provider.heroku.com/addons/#{data['id']}"
79
+ rescue RestClient::UnprocessableEntity => e
80
+ abort("FAILED: #{e.http_body}")
79
81
  rescue RestClient::Unauthorized
80
82
  abort("Authentication failure")
81
83
  rescue RestClient::Forbidden
@@ -12,8 +12,7 @@ module Heroku
12
12
  "id": "myaddon",
13
13
  "api": {
14
14
  "config_vars": [ "MYADDON_URL" ],
15
- "username": "heroku",
16
- "password": "b1EWrHYXE1R5J71D",#{ sso_key }
15
+ "password": "#{generate_password(16)}",#{ sso_key }
17
16
  "production": "https://yourapp.com/",
18
17
  "test": "http://localhost:4567/"
19
18
  }
@@ -5,7 +5,6 @@ class AllCheckTest < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  @data = Manifest.new.skeleton
8
- @data['api']['username'] = 'test'
9
8
  @data['api']['password'] = 'secret'
10
9
  @data['api']['test'] += "working"
11
10
  @file = File.dirname(__FILE__) + "/resources/runner.rb"
@@ -26,11 +26,6 @@ class ManifestCheckTest < Test::Unit::TestCase
26
26
  assert_invalid
27
27
  end
28
28
 
29
- test "api has a username" do
30
- @data["api"].delete("username")
31
- assert_invalid
32
- end
33
-
34
29
  test "api has a password" do
35
30
  @data["api"].delete("password")
36
31
  assert_invalid
@@ -77,4 +72,8 @@ class ManifestCheckTest < Test::Unit::TestCase
77
72
  assert_valid
78
73
  end
79
74
 
75
+ test "username is deprecated" do
76
+ @data["api"]["username"] = "heroku"
77
+ assert_invalid
78
+ end
80
79
  end
@@ -9,6 +9,18 @@ class ManifestTest < Test::Unit::TestCase
9
9
  test 'have sso salt' do
10
10
  assert_not_nil @manifest.skeleton['api']['sso_salt']
11
11
  end
12
+
13
+ test 'generates a new sso salt every time' do
14
+ assert @manifest.skeleton['api']['ssl_salt'] != Manifest.new.skeleton['api']['sso_salt']
15
+ end
16
+
17
+ test 'has an api password' do
18
+ assert_not_nil @manifest.skeleton['api']['password']
19
+ end
20
+
21
+ test 'generates a new password every time' do
22
+ assert @manifest.skeleton['api']['password'] != Manifest.new.skeleton['api']['password']
23
+ end
12
24
  end
13
25
 
14
26
  context 'manifest without sso' do
@@ -5,7 +5,6 @@ class PlanChangeCheckTest < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  @data = Manifest.new.skeleton.merge :id => 123, :plan => 'premium'
8
- @data['api']['username'] = 'test'
9
8
  @data['api']['password'] = 'secret'
10
9
  end
11
10
 
@@ -5,7 +5,6 @@ class ProvisionCheckTest < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  @data = Manifest.new.skeleton
8
- @data['api']['username'] = 'test'
9
8
  @data['api']['password'] = 'secret'
10
9
  end
11
10
 
@@ -14,7 +14,7 @@ helpers do
14
14
 
15
15
  def auth_heroku?
16
16
  @auth ||= Rack::Auth::Basic::Request.new(request.env)
17
- @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['test', 'secret']
17
+ @auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['myaddon', 'secret']
18
18
  end
19
19
 
20
20
  def unauthorized!(status=403)
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kensa
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ prerelease: true
5
5
  segments:
6
6
  - 1
7
+ - 1
7
8
  - 0
8
- - 2
9
- version: 1.0.2
9
+ - pre
10
+ version: 1.1.0.pre
10
11
  platform: ruby
11
12
  authors:
12
13
  - Blake Mizerany
@@ -16,7 +17,7 @@ autorequire:
16
17
  bindir: bin
17
18
  cert_chain: []
18
19
 
19
- date: 2011-01-16 00:00:00 -08:00
20
+ date: 2011-01-20 00:00:00 -08:00
20
21
  default_executable: kensa
21
22
  dependencies:
22
23
  - !ruby/object:Gem::Dependency
@@ -75,20 +76,13 @@ dependencies:
75
76
  prerelease: false
76
77
  requirement: &id005 !ruby/object:Gem::Requirement
77
78
  requirements:
78
- - - ">="
79
+ - - ~>
79
80
  - !ruby/object:Gem::Version
80
81
  segments:
81
82
  - 1
82
83
  - 4
83
84
  - 0
84
85
  version: 1.4.0
85
- - - <
86
- - !ruby/object:Gem::Version
87
- segments:
88
- - 1
89
- - 7
90
- - 0
91
- version: 1.7.0
92
86
  type: :runtime
93
87
  version_requirements: *id005
94
88
  - !ruby/object:Gem::Dependency
@@ -196,11 +190,13 @@ required_ruby_version: !ruby/object:Gem::Requirement
196
190
  version: "0"
197
191
  required_rubygems_version: !ruby/object:Gem::Requirement
198
192
  requirements:
199
- - - ">="
193
+ - - ">"
200
194
  - !ruby/object:Gem::Version
201
195
  segments:
202
- - 0
203
- version: "0"
196
+ - 1
197
+ - 3
198
+ - 1
199
+ version: 1.3.1
204
200
  requirements: []
205
201
 
206
202
  rubyforge_project: