turbot 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- ODM4NTgyMTg4MTczZWFhMjczYjhjMWYwNDQ4OGY0MzJmNTUxN2VkNA==
5
- data.tar.gz: !binary |-
6
- ZDcxZjdlZWI2ZTY1ODM2NmM3YWVkN2QxYjNhNjU0OGQ1MWZiNmI5Yw==
2
+ SHA1:
3
+ metadata.gz: 3cf3daf49d5e018577ce3e133bd39a12af0fe43b
4
+ data.tar.gz: 4e9f43adf2c1edf02022342b1b7ad0b5c580797e
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MjY0MjM5OWIxY2RhM2Q0ZmE2ZTRhZWQ1ZDVmMmM3ZWM2MTdlN2RlOTJlODUz
10
- ZjFiNjIzMjgxZWEwMTRiY2NhNjMwZTc1YWI0MzNkOGRhNWM1ZWUzZDlkMGU1
11
- YTM4MDc2MmI2NWRlYzIyMzc1NmNmNDNmZDEzOWYzNjEzMmQyNzM=
12
- data.tar.gz: !binary |-
13
- NjE2ZTNiZTUzODY3N2VkZWIwOTQxMDhhZGY3NDY0YzcwMWFjNGNjNThmNTg2
14
- ZDhhNTlkZTk4MDU2N2M3ZTA4ZDBiMWZkMDM4ZDg4YzYzNDliOTVkNmFmZjVh
15
- Nzc0ZjM4NWMxOTRkOTdmYjJlNjAwYTU2ZjRlZTU0ZTFmMmJlNzA=
6
+ metadata.gz: 98adba47aaa073fa1863f4fb64c57b7a312a8f3c4820ba83a8a7a9124a226cd808d36d3d4794297306f145ddee5708f4b7b1b9406242eaf2cbe6f32426bae298
7
+ data.tar.gz: 3863528ef0a9ebd0ded4e8e1d4a90f201df31e3b4e133412a52b6bacde6b108056acd791604c9ec92a96ace1f85c08041d54de081e1c28b39aa7acc202f9dca5
@@ -1,7 +1,7 @@
1
1
  module Turbot
2
2
  module Distribution
3
3
  def self.files
4
- (Dir[File.expand_path("../../../{Gemfile,turbot.gemspec,.gitmodules,schema}", __FILE__)] + Dir[File.expand_path("../../../{.git,bin,data,lib,templates}/**/*", __FILE__)]).select do |file|
4
+ Dir[File.expand_path("../../../{bin,data,lib}/**/*", __FILE__)].select do |file|
5
5
  File.file?(file)
6
6
  end
7
7
  end
@@ -1,3 +1,3 @@
1
1
  module Turbot
2
- VERSION = "0.1.2"
2
+ VERSION = "0.1.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Turbot
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-26 00:00:00.000000000 Z
11
+ date: 2014-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: netrc
@@ -42,42 +42,42 @@ dependencies:
42
42
  name: launchy
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.3.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.3.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rubyzip
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ! '>='
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.0.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ! '>='
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.0.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: json-schema
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
@@ -114,26 +114,26 @@ dependencies:
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 0.1.7
117
+ version: 0.1.11
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 0.1.7
124
+ version: 0.1.11
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: excon
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - ! '>='
129
+ - - '>='
130
130
  - !ruby/object:Gem::Version
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - ! '>='
136
+ - - '>='
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
139
  description: Client library and command-line tool to deploy and manage apps on Turbot.
@@ -175,28 +175,6 @@ files:
175
175
  - lib/turbot/updater.rb
176
176
  - lib/turbot/version.rb
177
177
  - lib/vendor/turbot/okjson.rb
178
- - schema/schemas/company-schema.json
179
- - schema/schemas/financial-payment-schema.json
180
- - schema/schemas/includes/address.json
181
- - schema/schemas/includes/alternative_name.json
182
- - schema/schemas/includes/company.json
183
- - schema/schemas/includes/filing.json
184
- - schema/schemas/includes/financial-payment-data-object.json
185
- - schema/schemas/includes/industry_code.json
186
- - schema/schemas/includes/licence-data-object.json
187
- - schema/schemas/includes/officer.json
188
- - schema/schemas/includes/previous_name.json
189
- - schema/schemas/includes/share-parcel-data.json
190
- - schema/schemas/includes/share-parcel.json
191
- - schema/schemas/includes/subsidiary-relationship-data.json
192
- - schema/schemas/includes/total-shares.json
193
- - schema/schemas/licence-schema.json
194
- - schema/schemas/primary-data-schema.json
195
- - schema/schemas/share-parcel-schema.json
196
- - schema/schemas/simple-financial-payment-schema.json
197
- - schema/schemas/simple-licence-schema.json
198
- - schema/schemas/simple-subsidiary-schema.json
199
- - schema/schemas/subsidiary-relationship-schema.json
200
178
  - spec/helper/legacy_help.rb
201
179
  - spec/helper/pg_dump_restore_spec.rb
202
180
  - spec/schemas/dummy_schema.json
@@ -215,11 +193,7 @@ files:
215
193
  - spec/turbot/command/auth_spec.rb
216
194
  - spec/turbot/command/base_spec.rb
217
195
  - spec/turbot/command/bots_spec.rb
218
- - spec/turbot/command/config_spec.rb
219
196
  - spec/turbot/command/help_spec.rb
220
- - spec/turbot/command/keys_spec.rb
221
- - spec/turbot/command/logs_spec.rb
222
- - spec/turbot/command/status_spec.rb
223
197
  - spec/turbot/command/version_spec.rb
224
198
  - spec/turbot/command_spec.rb
225
199
  - spec/turbot/helpers/turbot_postgresql_spec.rb
@@ -230,6 +204,28 @@ files:
230
204
  - templates/manifest.json
231
205
  - templates/python/scraper.py
232
206
  - templates/ruby/scraper.rb
207
+ - schema/schemas/company-schema.json
208
+ - schema/schemas/financial-payment-schema.json
209
+ - schema/schemas/includes/address.json
210
+ - schema/schemas/includes/alternative_name.json
211
+ - schema/schemas/includes/company.json
212
+ - schema/schemas/includes/filing.json
213
+ - schema/schemas/includes/financial-payment-data-object.json
214
+ - schema/schemas/includes/industry_code.json
215
+ - schema/schemas/includes/licence-data-object.json
216
+ - schema/schemas/includes/officer.json
217
+ - schema/schemas/includes/previous_name.json
218
+ - schema/schemas/includes/share-parcel-data.json
219
+ - schema/schemas/includes/share-parcel.json
220
+ - schema/schemas/includes/subsidiary-relationship-data.json
221
+ - schema/schemas/includes/total-shares.json
222
+ - schema/schemas/licence-schema.json
223
+ - schema/schemas/primary-data-schema.json
224
+ - schema/schemas/share-parcel-schema.json
225
+ - schema/schemas/simple-financial-payment-schema.json
226
+ - schema/schemas/simple-licence-schema.json
227
+ - schema/schemas/simple-subsidiary-schema.json
228
+ - schema/schemas/subsidiary-relationship-schema.json
233
229
  homepage: http://turbot.com/
234
230
  licenses:
235
231
  - MIT
@@ -240,19 +236,18 @@ require_paths:
240
236
  - lib
241
237
  required_ruby_version: !ruby/object:Gem::Requirement
242
238
  requirements:
243
- - - ! '>='
239
+ - - '>='
244
240
  - !ruby/object:Gem::Version
245
241
  version: 1.9.2
246
242
  required_rubygems_version: !ruby/object:Gem::Requirement
247
243
  requirements:
248
- - - ! '>='
244
+ - - '>='
249
245
  - !ruby/object:Gem::Version
250
246
  version: '0'
251
247
  requirements: []
252
248
  rubyforge_project:
253
- rubygems_version: 2.2.2
249
+ rubygems_version: 2.0.14
254
250
  signing_key:
255
251
  specification_version: 4
256
252
  summary: Client library and CLI to deploy apps on Turbot.
257
253
  test_files: []
258
- has_rdoc:
@@ -1,143 +0,0 @@
1
- require "spec_helper"
2
- require "turbot/command/config"
3
-
4
- module Turbot::Command
5
- describe Config do
6
- before(:each) do
7
- stub_core
8
- api.post_bot("name" => "example", "stack" => "cedar")
9
- end
10
-
11
- after(:each) do
12
- api.delete_bot("example")
13
- end
14
-
15
- it "shows all configs" do
16
- api.put_config_vars("example", { 'FOO_BAR' => 'one', 'BAZ_QUX' => 'two' })
17
- stderr, stdout = execute("config")
18
- stderr.should == ""
19
- stdout.should == <<-STDOUT
20
- === example Config Vars
21
- BAZ_QUX: two
22
- FOO_BAR: one
23
- STDOUT
24
- end
25
-
26
- it "does not trim long values" do
27
- api.put_config_vars("example", { 'LONG' => 'A' * 60 })
28
- stderr, stdout = execute("config")
29
- stderr.should == ""
30
- stdout.should == <<-STDOUT
31
- === example Config Vars
32
- LONG: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
33
- STDOUT
34
- end
35
-
36
- it "handles when value is nil" do
37
- api.put_config_vars("example", { 'FOO_BAR' => 'one', 'BAZ_QUX' => nil })
38
- stderr, stdout = execute("config")
39
- stderr.should == ""
40
- stdout.should == <<-STDOUT
41
- === example Config Vars
42
- BAZ_QUX: \nFOO_BAR: one
43
- STDOUT
44
- end
45
-
46
- it "handles when value is a boolean" do
47
- api.put_config_vars("example", { 'FOO_BAR' => 'one', 'BAZ_QUX' => true })
48
- stderr, stdout = execute("config")
49
- stderr.should == ""
50
- stdout.should == <<-STDOUT
51
- === example Config Vars
52
- BAZ_QUX: true
53
- FOO_BAR: one
54
- STDOUT
55
- end
56
-
57
- it "shows configs in a shell compatible format" do
58
- api.put_config_vars("example", { 'A' => 'one', 'B' => 'two three' })
59
- stderr, stdout = execute("config --shell")
60
- stderr.should == ""
61
- stdout.should == <<-STDOUT
62
- A=one
63
- B=two three
64
- STDOUT
65
- end
66
-
67
- it "shows a single config for get" do
68
- api.put_config_vars("example", { 'LONG' => 'A' * 60 })
69
- stderr, stdout = execute("config:get LONG")
70
- stderr.should == ""
71
- stdout.should == <<-STDOUT
72
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
73
- STDOUT
74
- end
75
-
76
- context("set") do
77
-
78
- it "sets config vars" do
79
- stderr, stdout = execute("config:set A=1 B=2")
80
- stderr.should == ""
81
- stdout.should == <<-STDOUT
82
- Setting config vars and restarting example... done
83
- A: 1
84
- B: 2
85
- STDOUT
86
- end
87
-
88
- it "allows config vars with = in the value" do
89
- stderr, stdout = execute("config:set A=b=c")
90
- stderr.should == ""
91
- stdout.should == <<-STDOUT
92
- Setting config vars and restarting example... done
93
- A: b=c
94
- STDOUT
95
- end
96
-
97
- it "sets config vars without changing case" do
98
- stderr, stdout = execute("config:set a=b")
99
- stderr.should == ""
100
- stdout.should == <<-STDOUT
101
- Setting config vars and restarting example... done
102
- a: b
103
- STDOUT
104
- end
105
-
106
- end
107
-
108
- describe "config:unset" do
109
-
110
- it "exits with a help notice when no keys are provides" do
111
- stderr, stdout = execute("config:unset")
112
- stderr.should == <<-STDERR
113
- ! Usage: turbot config:unset KEY1 [KEY2 ...]
114
- ! Must specify KEY to unset.
115
- STDERR
116
- stdout.should == ""
117
- end
118
-
119
- context "when one key is provided" do
120
-
121
- it "unsets a single key" do
122
- stderr, stdout = execute("config:unset A")
123
- stderr.should == ""
124
- stdout.should == <<-STDOUT
125
- Unsetting A and restarting example... done
126
- STDOUT
127
- end
128
- end
129
-
130
- context "when more than one key is provided" do
131
-
132
- it "unsets all given keys" do
133
- stderr, stdout = execute("config:unset A B")
134
- stderr.should == ""
135
- stdout.should == <<-STDOUT
136
- Unsetting A and restarting example... done
137
- Unsetting B and restarting example... done
138
- STDOUT
139
- end
140
- end
141
- end
142
- end
143
- end
@@ -1,117 +0,0 @@
1
- require "spec_helper"
2
- require "turbot/command/keys"
3
-
4
- module Turbot::Command
5
- describe Keys do
6
- KEY = "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp9AJD5QABmOcrkHm6SINuQkDefaR0MUrfgZ1Pxir3a4fM1fwa00dsUwbUaRuR7FEFD8n1E9WwDf8SwQTHtyZsJg09G9myNqUzkYXCmydN7oGr5IdVhRyv5ixcdiE0hj7dRnOJg2poSQ3Qi+Ka8SVJzF7nIw1YhuicHPSbNIFKi5s0D5a+nZb/E6MNGvhxoFCQX2IcNxaJMqhzy1ESwlixz45aT72mXYq0LIxTTpoTqma1HuKdRY8HxoREiivjmMQulYP+CxXFcMyV9kxTKIUZ/FXqlC6G5vSm3J4YScSatPOj9ID5HowpdlIx8F6y4p1/28r2tTl4CY40FFyoke4MQ== pedro@turbot"
7
-
8
- before(:each) do
9
- stub_core
10
- end
11
-
12
- after(:each) do
13
- api.delete_keys
14
- end
15
-
16
- context("add") do
17
- it "tries to find a key if no key filename is supplied" do
18
- Turbot::Auth.should_receive(:ask).and_return("y")
19
- Turbot::Auth.should_receive(:generate_ssh_key)
20
- File.should_receive(:exists?).with('/.ssh/id_rsa.pub').and_return(true)
21
- File.should_receive(:read).with('/.ssh/id_rsa.pub').and_return(KEY)
22
- stderr, stdout = execute("keys:add")
23
- stderr.should == ""
24
- stdout.should == <<-STDOUT
25
- Could not find an existing public key.
26
- Would you like to generate one? [Yn] Generating new SSH public key.
27
- Uploading SSH public key /.ssh/id_rsa.pub... done
28
- STDOUT
29
- end
30
-
31
- it "adds a key from a specified keyfile path" do
32
- File.should_receive(:exists?).with('/my/key.pub').and_return(true)
33
- File.should_receive(:read).with('/my/key.pub').and_return(KEY)
34
- stderr, stdout = execute("keys:add /my/key.pub")
35
- stderr.should == ""
36
- stdout.should == <<-STDOUT
37
- Uploading SSH public key /my/key.pub... done
38
- STDOUT
39
- end
40
-
41
- end
42
-
43
- context("index") do
44
-
45
- before do
46
- api.post_key(KEY)
47
- end
48
-
49
- after do
50
- api.delete_keys
51
- end
52
-
53
- it "list keys, trimming the hex code for better display" do
54
- stderr, stdout = execute("keys")
55
- stderr.should == ""
56
- stdout.should == <<-STDOUT
57
- === email@example.com Keys
58
- ssh-rsa AAAAB3NzaC...Fyoke4MQ== pedro@turbot
59
-
60
- STDOUT
61
- end
62
-
63
- it "list keys showing the whole key hex with --long" do
64
- stderr, stdout = execute("keys --long")
65
- stderr.should == ""
66
- stdout.should == <<-STDOUT
67
- === email@example.com Keys
68
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp9AJD5QABmOcrkHm6SINuQkDefaR0MUrfgZ1Pxir3a4fM1fwa00dsUwbUaRuR7FEFD8n1E9WwDf8SwQTHtyZsJg09G9myNqUzkYXCmydN7oGr5IdVhRyv5ixcdiE0hj7dRnOJg2poSQ3Qi+Ka8SVJzF7nIw1YhuicHPSbNIFKi5s0D5a+nZb/E6MNGvhxoFCQX2IcNxaJMqhzy1ESwlixz45aT72mXYq0LIxTTpoTqma1HuKdRY8HxoREiivjmMQulYP+CxXFcMyV9kxTKIUZ/FXqlC6G5vSm3J4YScSatPOj9ID5HowpdlIx8F6y4p1/28r2tTl4CY40FFyoke4MQ== pedro@turbot
69
-
70
- STDOUT
71
- end
72
-
73
- end
74
-
75
- context("remove") do
76
-
77
- context("success") do
78
-
79
- before(:each) do
80
- api.post_key(KEY)
81
- end
82
-
83
- it "succeeds" do
84
- stderr, stdout = execute("keys:remove pedro@turbot")
85
- stderr.should == ""
86
- stdout.should == <<-STDOUT
87
- Removing pedro@turbot SSH key... done
88
- STDOUT
89
- end
90
-
91
- end
92
-
93
- it "displays an error if no key is specified" do
94
- stderr, stdout = execute("keys:remove")
95
- stderr.should == <<-STDERR
96
- ! Usage: turbot keys:remove KEY
97
- ! Must specify KEY to remove.
98
- STDERR
99
- stdout.should == ""
100
- end
101
-
102
- end
103
-
104
- context("clear") do
105
-
106
- it "succeeds" do
107
- stderr, stdout = execute("keys:clear")
108
- stderr.should == ""
109
- stdout.should == <<-STDOUT
110
- Removing all SSH keys... done
111
- STDOUT
112
- end
113
-
114
- end
115
-
116
- end
117
- end
@@ -1,60 +0,0 @@
1
- require "spec_helper"
2
- require "turbot/command/logs"
3
-
4
- describe Turbot::Command::Logs do
5
- describe "logs" do
6
- it "runs with no options" do
7
- stub_core.read_logs("example", [])
8
- execute "logs"
9
- end
10
-
11
- it "runs with options" do
12
- stub_core.read_logs("example", [
13
- "tail=1",
14
- "num=2",
15
- "ps=ps.3",
16
- "source=source.4"
17
- ])
18
- execute "logs --tail --num 2 --ps ps.3 --source source.4"
19
- end
20
-
21
- describe "with log output" do
22
- before(:each) do
23
- stub_core.read_logs("example", []).yields("2011-01-01T00:00:00+00:00 bot[web.1]: test")
24
- end
25
-
26
- it "prettifies tty output" do
27
- old_stdout_isatty = $stdout.isatty
28
- stub($stdout).isatty.returns(true)
29
- stderr, stdout = execute("logs")
30
- stderr.should == ""
31
- stdout.should == <<-STDOUT
32
- \e[36m2011-01-01T00:00:00+00:00 bot[web.1]:\e[0m test
33
- STDOUT
34
- stub($stdout).isatty.returns(old_stdout_isatty)
35
- end
36
-
37
- it "does not use ansi if stdout is not a tty" do
38
- old_stdout_isatty = $stdout.isatty
39
- stub($stdout).isatty.returns(false)
40
- stderr, stdout = execute("logs")
41
- stderr.should == ""
42
- stdout.should == <<-STDOUT
43
- 2011-01-01T00:00:00+00:00 bot[web.1]: test
44
- STDOUT
45
- stub($stdout).isatty.returns(old_stdout_isatty)
46
- end
47
-
48
- it "does not use ansi if TERM is not set" do
49
- term = ENV.delete("TERM")
50
- stderr, stdout = execute("logs")
51
- stderr.should == ""
52
- stdout.should == <<-STDOUT
53
- 2011-01-01T00:00:00+00:00 bot[web.1]: test
54
- STDOUT
55
- ENV["TERM"] = term
56
- end
57
- end
58
- end
59
-
60
- end
@@ -1,48 +0,0 @@
1
- require "spec_helper"
2
- require "turbot/command/status"
3
-
4
- module Turbot::Command
5
- describe Status do
6
-
7
- before(:each) do
8
- stub_core
9
- end
10
-
11
- it "displays status information" do
12
- Excon.stub(
13
- {
14
- :host => 'status.turbot.com',
15
- :method => :get,
16
- :path => '/api/v3/current-status.json'
17
- },
18
- {
19
- :body => Turbot::OkJson.encode({"status"=>{"Production"=>"red", "Development"=>"red"}, "issues"=>[{"created_at"=>"2012-06-07T15:55:51Z", "id"=>372, "resolved"=>false, "title"=>"HTTP Routing Errors", "updated_at"=>"2012-06-07T16:14:37Z", "href"=>"https://status.turbot.com/api/v3/issues/372", "updates"=>[{"contents"=>"The number of applications seeing H99 errors is continuing to decrease as we continue to work toward a full resolution of the HTTP routing issues. The API is back online now as well. ", "created_at"=>"2012-06-07T17:47:26Z", "id"=>1088, "incident_id"=>372, "status_dev"=>"red", "status_prod"=>"red", "update_type"=>"update", "updated_at"=>"2012-06-07T17:47:26Z"}, {"contents"=>"Our engineers are continuing to work toward a full resolution of the HTTP routing issues. The API is currently in maintenance mode intentionally as we restore application operations. ", "created_at"=>"2012-06-07T17:16:40Z", "id"=>1086, "incident_id"=>372, "status_dev"=>"red", "status_prod"=>"red", "update_type"=>"update", "updated_at"=>"2012-06-07T17:26:55Z"}, {"contents"=>"Most applications are back online at this time. Our engineers are working on getting the remaining bots back online. ", "created_at"=>"2012-06-07T16:50:21Z", "id"=>1085, "incident_id"=>372, "status_dev"=>"red", "status_prod"=>"red", "update_type"=>"update", "updated_at"=>"2012-06-07T16:50:21Z"}, {"contents"=>"Our routing engineers have pushed out a patch to our routing tier. The platform is recovering and applications are coming back online. Our engineers are continuing to fully restore service.", "created_at"=>"2012-06-07T16:36:37Z", "id"=>1084, "incident_id"=>372, "status_dev"=>"red", "status_prod"=>"red", "update_type"=>"update", "updated_at"=>"2012-06-07T16:36:37Z"}, {"contents"=>"We have identified an issue with our routers that is causing errors on HTTP requests to applications. Engineers are working to resolve the issue.\r\n", "created_at"=>"2012-06-07T16:15:25Z", "id"=>1083, "incident_id"=>372, "status_dev"=>"red", "status_prod"=>"red", "update_type"=>"update", "updated_at"=>"2012-06-07T16:15:28Z"}, {"contents"=>"We have confirmed widespread errors on the platform. Our engineers are continuing to investigate.\r\n", "created_at"=>"2012-06-07T15:58:56Z", "id"=>1082, "incident_id"=>372, "status_dev"=>"red", "status_prod"=>"red", "update_type"=>"update", "updated_at"=>"2012-06-07T15:58:58Z"}, {"contents"=>"Our automated systems have detected potential platform errors. We are investigating.\r\n", "created_at"=>"2012-06-07T15:55:51Z", "id"=>1081, "incident_id"=>372, "status_dev"=>"yellow", "status_prod"=>"yellow", "update_type"=>"issue", "updated_at"=>"2012-06-07T15:55:55Z"}]}]}),
20
- :status => 200
21
- }
22
- )
23
-
24
- Turbot::Command::Status.any_instance.should_receive(:time_ago).and_return('2012/09/11 09:34:56 (~ 3h ago)', '2012/09/11 12:33:56 (~ 1m ago)', '2012/09/11 12:29:56 (~ 5m ago)', '2012/09/11 12:24:56 (~ 10m ago)', '2012/09/11 12:04:56 (~ 30m ago)', '2012/09/11 11:34:56 (~ 1h ago)', '2012/09/11 10:34:56 (~ 2h ago)', '2012/09/11 09:34:56 (~ 3h ago)')
25
-
26
- stderr, stdout = execute("status")
27
- stderr.should == ''
28
- stdout.should == <<-STDOUT
29
- === Turbot Status
30
- Development: red
31
- Production: red
32
-
33
- === HTTP Routing Errors 2012/09/11 09:34:56 (~ 3h+)
34
- 2012/09/11 12:33:56 (~ 1m ago) update The number of applications seeing H99 errors is continuing to decrease as we continue to work toward a full resolution of the HTTP routing issues. The API is back online now as well.
35
- 2012/09/11 12:29:56 (~ 5m ago) update Our engineers are continuing to work toward a full resolution of the HTTP routing issues. The API is currently in maintenance mode intentionally as we restore application operations.
36
- 2012/09/11 12:24:56 (~ 10m ago) update Most applications are back online at this time. Our engineers are working on getting the remaining bots back online.
37
- 2012/09/11 12:04:56 (~ 30m ago) update Our routing engineers have pushed out a patch to our routing tier. The platform is recovering and applications are coming back online. Our engineers are continuing to fully restore service.
38
- 2012/09/11 11:34:56 (~ 1h ago) update We have identified an issue with our routers that is causing errors on HTTP requests to applications. Engineers are working to resolve the issue.
39
- 2012/09/11 10:34:56 (~ 2h ago) update We have confirmed widespread errors on the platform. Our engineers are continuing to investigate.
40
- 2012/09/11 09:34:56 (~ 3h ago) issue Our automated systems have detected potential platform errors. We are investigating.
41
-
42
- STDOUT
43
-
44
- Excon.stubs.shift
45
- end
46
-
47
- end
48
- end