turbot 0.1.2 → 0.1.3

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.
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