wfstatus 0.0.1
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 +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +56 -0
- data/Rakefile +1 -0
- data/bin/wfstatus +10 -0
- data/lib/wfstatus.rb +44 -0
- data/lib/wfstatus/builder.rb +19 -0
- data/lib/wfstatus/parser.rb +33 -0
- data/lib/wfstatus/version.rb +3 -0
- data/lib/wfstatus/wfmessage.rb +37 -0
- data/spec/builder_spec.rb +76 -0
- data/spec/fixtures/config.yml +28 -0
- data/spec/fixtures/config_dow.yml +30 -0
- data/spec/fixtures/sample.htm +576 -0
- data/spec/parser_spec.rb +39 -0
- data/spec/spec_helper.rb +1 -0
- data/spec/wfmessage_spec.rb +48 -0
- data/wfstatus.gemspec +27 -0
- metadata +127 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e14146abcef202bb5477e0877a457e23156c8c01
|
4
|
+
data.tar.gz: 009c1a6f256ec5bd85e363bc542dac54e88e929f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 585fd9625d69e4d6048909169b1fe376f6bb7e0cf6636e2ecfdb7bf0856a6aa754488070aebf45073ba63ac8a0056ab52ebf0ebf1e0eabfb6d80588e56dc1307
|
7
|
+
data.tar.gz: 790092e81020c3c9cbb835b2c6bd72d8ff8c91a837a2dfa223207b6e91c98d47c333c5f0e188ee677776beba0cf5f8cb853ed22c047c83b2dc040e1d24351b1a
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 dow
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
# Wfstatus
|
2
|
+
|
3
|
+
This gem is designed to help developers who are responsible for managing applications on multiple Webfaction servers. The Webfaction Status Blog is an excellent resource, but requires a developer to remember the names of all servers for which she is responsible. This gem allows the developer to specify a hash of servers of interest keyed to site names or other information in a YAML config file. When the gem executes, it selects recent posts from the status blog which mention any of the configured servers and emails the developer with the information.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
$ gem install wfstatus
|
8
|
+
|
9
|
+
## Sample config.yml
|
10
|
+
|
11
|
+
~~~
|
12
|
+
# the webfaction status blog url
|
13
|
+
blog_url: http://statusblog.webfaction.com
|
14
|
+
|
15
|
+
# server name: a description of your sites hosted at the server
|
16
|
+
servers:
|
17
|
+
web313: 'wibble.com, myclient.com'
|
18
|
+
web369: 'pigsinhelicopters.com'
|
19
|
+
web344: 'bigclient.com (main server)'
|
20
|
+
web406: 'bigclient.com (server 2)'
|
21
|
+
|
22
|
+
# smtp email settings
|
23
|
+
smtp:
|
24
|
+
address: smtp.webfaction.com
|
25
|
+
port: 587
|
26
|
+
domain: mydomain.com
|
27
|
+
user_name: myusername
|
28
|
+
password: mypassword
|
29
|
+
authentication: plain
|
30
|
+
enable_starttls_auto: true
|
31
|
+
|
32
|
+
# mail settings
|
33
|
+
mail:
|
34
|
+
from: myusername@mydomain.com
|
35
|
+
to: me@gmail.com
|
36
|
+
subject: Webfaction status Update
|
37
|
+
|
38
|
+
# your time zone offset
|
39
|
+
utc_offset: -08:00
|
40
|
+
~~~
|
41
|
+
|
42
|
+
## Usage
|
43
|
+
|
44
|
+
$ wfstatus config.yml
|
45
|
+
|
46
|
+
## Todo
|
47
|
+
|
48
|
+
Add some options to allow the user to prevent multiple emails about the same post.
|
49
|
+
|
50
|
+
## Contributing
|
51
|
+
|
52
|
+
1. Fork it
|
53
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
54
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
55
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
56
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/bin/wfstatus
ADDED
data/lib/wfstatus.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require "wfstatus/version"
|
2
|
+
require "wfstatus/parser.rb"
|
3
|
+
require "wfstatus/builder.rb"
|
4
|
+
require 'mail'
|
5
|
+
require 'open-uri'
|
6
|
+
|
7
|
+
module Wfstatus
|
8
|
+
|
9
|
+
class Wfstatus
|
10
|
+
|
11
|
+
def self.process(config)
|
12
|
+
|
13
|
+
options = {
|
14
|
+
address: config['smtp']['address'],
|
15
|
+
port: config['smtp']['port'],
|
16
|
+
domain: config['smtp']['domain'],
|
17
|
+
user_name: config['smtp']['user_name'],
|
18
|
+
password: config['smtp']['password'],
|
19
|
+
authentication: config['smtp']['authentication'],
|
20
|
+
enable_starttls_auto: config['smtp']['enable_starttls_auto']
|
21
|
+
}
|
22
|
+
url = config['blog_url']
|
23
|
+
puts url
|
24
|
+
parser = Parser.new( open(url), config )
|
25
|
+
builder = Builder.new(config, parser.messages)
|
26
|
+
return unless builder.relevant_messages.count > 0
|
27
|
+
|
28
|
+
Mail.defaults do
|
29
|
+
delivery_method :smtp, options
|
30
|
+
end
|
31
|
+
|
32
|
+
mail = Mail.new do
|
33
|
+
from config['mail']['from']
|
34
|
+
to config['mail']['to']
|
35
|
+
subject config['mail']['subject']
|
36
|
+
body builder.content
|
37
|
+
end
|
38
|
+
|
39
|
+
puts mail.to_s
|
40
|
+
mail.deliver!
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'wfstatus/wfmessage'
|
2
|
+
|
3
|
+
class Wfstatus::Builder
|
4
|
+
attr_reader :config, :messages
|
5
|
+
def initialize(config, messages)
|
6
|
+
@config = config
|
7
|
+
@messages = messages
|
8
|
+
end
|
9
|
+
|
10
|
+
def relevant_messages
|
11
|
+
@relevant_messages ||= @messages.select { |m| m.relevant? }
|
12
|
+
end
|
13
|
+
|
14
|
+
def content
|
15
|
+
relevant_messages.join("\n")
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'wfstatus/wfmessage'
|
3
|
+
|
4
|
+
class Wfstatus::Parser
|
5
|
+
attr_reader :html, :page
|
6
|
+
def initialize(html, config)
|
7
|
+
@html = html
|
8
|
+
@config = config
|
9
|
+
@page = Nokogiri::HTML(@html)
|
10
|
+
end
|
11
|
+
|
12
|
+
def messages
|
13
|
+
@messages ||= parse
|
14
|
+
end
|
15
|
+
|
16
|
+
def parse
|
17
|
+
messages = []
|
18
|
+
posts.each do |p|
|
19
|
+
posted = p.at_css('div.entry-date abbr').attributes['title']
|
20
|
+
message = p.at_css('div.entry-content').text
|
21
|
+
title_link = p.at_css('.entry-title a')
|
22
|
+
url = title_link.attributes['href']
|
23
|
+
title = title_link.text
|
24
|
+
messages << Wfmessage.new(posted, title, message, url, @config)
|
25
|
+
end
|
26
|
+
messages
|
27
|
+
end
|
28
|
+
|
29
|
+
def posts
|
30
|
+
@posts ||= @page.css('div.post')
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
class Wfstatus::Wfmessage
|
2
|
+
|
3
|
+
attr_reader :posted, :title, :message, :url
|
4
|
+
|
5
|
+
def initialize(posted, title, message, url, config)
|
6
|
+
@posted = DateTime.strptime(posted)
|
7
|
+
@title = title
|
8
|
+
@message = message
|
9
|
+
@url = url
|
10
|
+
@config = config
|
11
|
+
end
|
12
|
+
|
13
|
+
def servers
|
14
|
+
@servers ||= find_servers(@title) | find_servers(@message)
|
15
|
+
end
|
16
|
+
|
17
|
+
def find_servers(str)
|
18
|
+
str.to_enum(:scan, /web\d+/i).map { Regexp.last_match.to_s.downcase }
|
19
|
+
end
|
20
|
+
|
21
|
+
def relevant?
|
22
|
+
servers.detect { |s| @config['servers'].keys.include?(s) }
|
23
|
+
end
|
24
|
+
|
25
|
+
def server_info
|
26
|
+
@config['servers'].values_at(*servers).compact.join(", ")
|
27
|
+
end
|
28
|
+
|
29
|
+
def to_s
|
30
|
+
["SERVER INFO: #{server_info}\n" , posted_str, @title, @message, @url].join("\n") + "\n\n"
|
31
|
+
end
|
32
|
+
|
33
|
+
def posted_str
|
34
|
+
@posted.to_time.localtime(@config['utc_offset']).strftime("%l:%M:%S %p %A, %b %d %Y %z")
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
# require 'debugger'
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'wfstatus/builder'
|
4
|
+
require 'wfstatus/wfmessage'
|
5
|
+
|
6
|
+
include Wfstatus
|
7
|
+
|
8
|
+
describe "Builder" do
|
9
|
+
before :each do
|
10
|
+
@config = {
|
11
|
+
'servers' => {"web309" => "wibble.com", "web444" => "microsoft.com", "web103" => "campers.net"},
|
12
|
+
'utc_offset' => '-08:00'
|
13
|
+
}
|
14
|
+
@message1 = Wfmessage.new(
|
15
|
+
"2013-08-25T16:42:14+0000",
|
16
|
+
"Intermittent delays on web321 and web103",
|
17
|
+
"Network issues are causing intermittent delays on the following servers: web321 and web103",
|
18
|
+
"http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/",
|
19
|
+
@config
|
20
|
+
)
|
21
|
+
@message2 = Wfmessage.new(
|
22
|
+
"2013-08-25T16:42:14+0000",
|
23
|
+
"Intermittent delays on web321 and web143",
|
24
|
+
"Network issues are causing intermittent delays on the following web321 and web143",
|
25
|
+
"http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/",
|
26
|
+
@config
|
27
|
+
)
|
28
|
+
@message3 = Wfmessage.new(
|
29
|
+
"2013-08-25T16:42:14+0000",
|
30
|
+
"Intermittent delays on web321, web444 and web103",
|
31
|
+
"Network issues are causing intermittent delays on the following servers: web321, web444 and web103",
|
32
|
+
"http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/",
|
33
|
+
@config
|
34
|
+
)
|
35
|
+
|
36
|
+
@messages = [@message1, @message2, @message3]
|
37
|
+
@builder = Builder.new(@config, @messages)
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should have remember the messages and config" do
|
42
|
+
@builder.config.should eql(@config)
|
43
|
+
@builder.messages.should eql(@messages)
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "#relevant_messages" do
|
47
|
+
it "should return messages only for servers specified in the configuration" do
|
48
|
+
@builder.relevant_messages.count.should eql(2)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "#content" do
|
53
|
+
it "should generate the content for an email" do
|
54
|
+
@builder.content.should eql(
|
55
|
+
<<-STR
|
56
|
+
SERVER INFO: campers.net
|
57
|
+
|
58
|
+
8:42:14 AM Sunday, Aug 25 2013 -0800
|
59
|
+
Intermittent delays on web321 and web103
|
60
|
+
Network issues are causing intermittent delays on the following servers: web321 and web103
|
61
|
+
http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/
|
62
|
+
|
63
|
+
|
64
|
+
SERVER INFO: microsoft.com, campers.net
|
65
|
+
|
66
|
+
8:42:14 AM Sunday, Aug 25 2013 -0800
|
67
|
+
Intermittent delays on web321, web444 and web103
|
68
|
+
Network issues are causing intermittent delays on the following servers: web321, web444 and web103
|
69
|
+
http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/
|
70
|
+
|
71
|
+
STR
|
72
|
+
)
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# the webfaction status blog url
|
2
|
+
blog_url: http://statusblog.webfaction.com
|
3
|
+
|
4
|
+
# server name: a description of your sites hosted at the server
|
5
|
+
servers:
|
6
|
+
web313: 'wibble.com, myclient.com'
|
7
|
+
web369: 'pigsinhelicopters.com'
|
8
|
+
web344: 'bigclient.com (main server)'
|
9
|
+
web406: 'bigclient.com (server 2)'
|
10
|
+
|
11
|
+
# smtp email settings
|
12
|
+
smtp:
|
13
|
+
address: smtp.webfaction.com
|
14
|
+
port: 587
|
15
|
+
domain: mydomain.com
|
16
|
+
user_name: myusername
|
17
|
+
password: mypassword
|
18
|
+
authentication: plain
|
19
|
+
enable_starttls_auto: true
|
20
|
+
|
21
|
+
# mail settings
|
22
|
+
mail:
|
23
|
+
from: myusername@mydomain.com
|
24
|
+
to: me@gmail.com
|
25
|
+
subject: Webfaction status Update
|
26
|
+
|
27
|
+
# your time zone offset
|
28
|
+
utc_offset: -08:00
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# the webfaction message blog url
|
2
|
+
blog_url: http://messageblog.webfaction.com
|
3
|
+
|
4
|
+
# server name: <any description you like>
|
5
|
+
servers:
|
6
|
+
web313: dowdrake.com
|
7
|
+
web369: opsmailer.com
|
8
|
+
web344: optomec.com main server
|
9
|
+
web406: optomec.com server 2
|
10
|
+
web309: speedvagen-orders.com
|
11
|
+
web342: ahi-upkeep.com
|
12
|
+
|
13
|
+
# smtp email settings
|
14
|
+
smtp:
|
15
|
+
address: smtp.webfaction.com
|
16
|
+
port: 587
|
17
|
+
domain: ahi-upkeep.com
|
18
|
+
user_name: ahiupkeep
|
19
|
+
password: j0kerm@n
|
20
|
+
authentication: plain
|
21
|
+
enable_starttls_auto: true
|
22
|
+
|
23
|
+
# mail settings
|
24
|
+
mail:
|
25
|
+
from: ahiupkeep@ahi-upkeep.com
|
26
|
+
to: dowdrake@msn.com
|
27
|
+
subject: Webfaction message Update
|
28
|
+
|
29
|
+
# your time zone offset
|
30
|
+
utc_offset: -08:00
|
@@ -0,0 +1,576 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
3
|
+
<!--
|
4
|
+
generated in 0.256 seconds
|
5
|
+
38701 bytes batcached for 300 seconds
|
6
|
+
-->
|
7
|
+
<head profile="http://gmpg.org/xfn/11">
|
8
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
9
|
+
<title> WebFaction Status Blog</title>
|
10
|
+
|
11
|
+
<link rel="pingback" href="http://statusblog.webfaction.com/xmlrpc.php" />
|
12
|
+
<link rel="start" href="http://statusblog.webfaction.com/" title="WebFaction Status Blog" />
|
13
|
+
<link rel="stylesheet" type="text/css" media="all" href="http://s0.wp.com/wp-content/themes/pub/sandbox/skins/2c-l.css?m=1158640643g" title="Sandbox" />
|
14
|
+
<meta name='robots' content='noindex,nofollow' />
|
15
|
+
<script src='http://r-login.wordpress.com/remote-login.php?action=js&host=statusblog.webfaction.com&id=4987698&t=1377479228&back=statusblog.webfaction.com%2F' type="text/javascript"></script>
|
16
|
+
<script type="text/javascript">
|
17
|
+
/* <![CDATA[ */
|
18
|
+
if ( 'function' === typeof WPRemoteLogin ) {
|
19
|
+
document.cookie = "wordpress_test_cookie=test; path=/";
|
20
|
+
if ( document.cookie.match( /(;|^)\s*wordpress_test_cookie\=/ ) ) {
|
21
|
+
WPRemoteLogin();
|
22
|
+
}
|
23
|
+
}
|
24
|
+
/* ]]> */
|
25
|
+
</script>
|
26
|
+
<link rel="alternate" type="application/rss+xml" title="WebFaction Status Blog » Feed" href="http://statusblog.webfaction.com/feed/" />
|
27
|
+
<link rel="alternate" type="application/rss+xml" title="WebFaction Status Blog » Comments Feed" href="http://statusblog.webfaction.com/comments/feed/" />
|
28
|
+
<script type="text/javascript">
|
29
|
+
/* <![CDATA[ */
|
30
|
+
function addLoadEvent(func){var oldonload=window.onload;if(typeof window.onload!='function'){window.onload=func;}else{window.onload=function(){oldonload();func();}}}
|
31
|
+
/* ]]> */
|
32
|
+
</script>
|
33
|
+
<link rel='stylesheet' id='all-css-0' href='http://s2.wp.com/_static/??-eJxlzsEOwiAQBNAfEtcGtSfjt1C6UtqFJe4S0r+3erFJj5O8yQy0YjxnxayQqilUQ8wCFBcUmFGL84v5pbMXOcGOD8ThX+AQcOSq5sVE3KDFMaAeSruNwrJpcvENoivhweqEaXsxXSEQD46+4Jkene37i7W3ezd/ANfwRes=' type='text/css' media='all' />
|
34
|
+
<script type='text/javascript'>
|
35
|
+
/* <![CDATA[ */
|
36
|
+
var LoggedOutFollow = {"invalid_email":"Your subscription did not succeed, please try again with a valid email address."};
|
37
|
+
/* ]]> */
|
38
|
+
</script>
|
39
|
+
<script type='text/javascript' src='http://s2.wp.com/_static/??-eJyFjVsKAjEMRTdkp/jA4oe4lnlkSmqb1Ka16OqtoKAozFdCcu49ukY1MmWgrJ3owAN6UEUg9bbdFNLMnZOVbhzS6MsE8gTdpUC6vcYioALa1GfoAtIb/rBGlhxApCn/fL9VSFeEuog5yLEfzyqB4P2ndfBsVfTFIoluu4WJS1Yze89VV5ws5JY5heN6a8xmbw5m5x49qG/C'></script>
|
40
|
+
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://webfaction.wordpress.com/xmlrpc.php?rsd" />
|
41
|
+
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://webfaction.wordpress.com/wp-includes/wlwmanifest.xml" />
|
42
|
+
<meta name="generator" content="WordPress.com" />
|
43
|
+
<link rel='shortlink' href='http://wp.me/kVwK' />
|
44
|
+
|
45
|
+
<!-- Jetpack Open Graph Tags -->
|
46
|
+
<meta property="og:type" content="blog" />
|
47
|
+
<meta property="og:title" content="WebFaction Status Blog" />
|
48
|
+
<meta property="og:url" content="http://statusblog.webfaction.com/" />
|
49
|
+
<meta property="og:site_name" content="WebFaction Status Blog" />
|
50
|
+
<meta property="og:image" content="http://1.gravatar.com/blavatar/ba79f216381b64617bc3f60e949d06ca?s=200" />
|
51
|
+
<meta name="twitter:site" content="@wordpressdotcom" />
|
52
|
+
<link rel="shortcut icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/2cfba9aabc6bd72bac687d30c2412511?s=16" sizes="16x16" />
|
53
|
+
<link rel="icon" type="image/x-icon" href="http://0.gravatar.com/blavatar/2cfba9aabc6bd72bac687d30c2412511?s=16" sizes="16x16" />
|
54
|
+
<link rel="apple-touch-icon-precomposed" href="http://1.gravatar.com/blavatar/ba79f216381b64617bc3f60e949d06ca?s=114" />
|
55
|
+
<link rel='openid.server' href='http://webfaction.wordpress.com/?openidserver=1' />
|
56
|
+
<link rel='openid.delegate' href='http://webfaction.wordpress.com/' />
|
57
|
+
<link rel="search" type="application/opensearchdescription+xml" href="http://statusblog.webfaction.com/osd.xml" title="WebFaction Status Blog" />
|
58
|
+
<link rel="search" type="application/opensearchdescription+xml" href="http://wordpress.com/opensearch.xml" title="WordPress.com" />
|
59
|
+
<style>
|
60
|
+
/* <![CDATA[ */
|
61
|
+
/* Block: reblog */
|
62
|
+
|
63
|
+
.reblog-from img { margin: 0 10px 0 0; vertical-align: middle; padding: 0; border: 0; }
|
64
|
+
.reblogger-note img.avatar { float: left; padding: 0; border: 0; }
|
65
|
+
.reblogger-note-content { margin: 0 0 20px; }
|
66
|
+
.reblog-post .wpcom-enhanced-excerpt-content { border-left: 3px solid #eee; padding-left: 15px; }
|
67
|
+
.reblog-post ul.thumb-list { display: block; list-style: none; margin: 2px 0; padding: 0; clear: both; }
|
68
|
+
.reblog-post ul.thumb-list li { display: inline; margin: 0; padding: 0 1px; border: 0; }
|
69
|
+
.reblog-post ul.thumb-list li a { margin: 0; padding: 0; border: 0; }
|
70
|
+
.reblog-post ul.thumb-list li img { margin: 0; padding: 0; border: 0; }
|
71
|
+
|
72
|
+
.reblog-post .wpcom-enhanced-excerpt { clear: both; }
|
73
|
+
|
74
|
+
.reblog-post .wpcom-enhanced-excerpt address,
|
75
|
+
.reblog-post .wpcom-enhanced-excerpt li,
|
76
|
+
.reblog-post .wpcom-enhanced-excerpt h1,
|
77
|
+
.reblog-post .wpcom-enhanced-excerpt h2,
|
78
|
+
.reblog-post .wpcom-enhanced-excerpt h3,
|
79
|
+
.reblog-post .wpcom-enhanced-excerpt h4,
|
80
|
+
.reblog-post .wpcom-enhanced-excerpt h5,
|
81
|
+
.reblog-post .wpcom-enhanced-excerpt h6,
|
82
|
+
.reblog-post .wpcom-enhanced-excerpt p { font-size: 100% !important; }
|
83
|
+
|
84
|
+
.reblog-post .wpcom-enhanced-excerpt blockquote,
|
85
|
+
.reblog-post .wpcom-enhanced-excerpt pre,
|
86
|
+
.reblog-post .wpcom-enhanced-excerpt code,
|
87
|
+
.reblog-post .wpcom-enhanced-excerpt q { font-size: 98% !important; }
|
88
|
+
|
89
|
+
|
90
|
+
/* ]]> */
|
91
|
+
</style>
|
92
|
+
<meta name="application-name" content="WebFaction Status Blog" /><meta name="msapplication-window" content="width=device-width;height=device-height" /><meta name="msapplication-task" content="name=Subscribe;action-uri=http://statusblog.webfaction.com/feed/;icon-uri=http://0.gravatar.com/blavatar/2cfba9aabc6bd72bac687d30c2412511?s=16" /><meta name="msapplication-task" content="name=Sign up for a free blog;action-uri=http://wordpress.com/signup/;icon-uri=http://s2.wp.com/i/favicon.ico" /><meta name="msapplication-task" content="name=WordPress.com Support;action-uri=http://support.wordpress.com/;icon-uri=http://s2.wp.com/i/favicon.ico" /><meta name="msapplication-task" content="name=WordPress.com Forums;action-uri=http://forums.wordpress.com/;icon-uri=http://s2.wp.com/i/favicon.ico" /><meta name="title" content="WebFaction Status Blog on WordPress.com" />
|
93
|
+
<meta name="description" content="" />
|
94
|
+
<style id="syntaxhighlighteranchor"></style>
|
95
|
+
<link rel="stylesheet" id="custom-css-css" type="text/css" href="http://statusblog.webfaction.com/?custom-css=1&csblog=kVwK&cscache=6&csrev=14" />
|
96
|
+
|
97
|
+
</head>
|
98
|
+
|
99
|
+
<body class="wordpress y2013 m08 d26 h01 home typekit-enabled mp6 highlander-enabled highlander-light">
|
100
|
+
|
101
|
+
<div id="wrapper">
|
102
|
+
<div id="header">
|
103
|
+
<h1 id="blog-title"><a href="http://statusblog.webfaction.com/" title="WebFaction Status Blog">WebFaction Status Blog</a></h1>
|
104
|
+
<div id="blog-description"></div>
|
105
|
+
</div><!-- #header -->
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
<div id="container">
|
110
|
+
<div id="content" class="hfeed">
|
111
|
+
|
112
|
+
<div id="nav-above" class="navigation">
|
113
|
+
<div class="nav-previous"><a href="http://statusblog.webfaction.com/page/2/" >« Older posts</a></div>
|
114
|
+
<div class="nav-next"></div>
|
115
|
+
</div>
|
116
|
+
|
117
|
+
|
118
|
+
<div id="post-3575" class="post-3575 post type-post status-publish format-standard hentry category-downtime p1 publish author-dddjl y2013 m08 d25 h04">
|
119
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/25/chassis-swap-on-web364-on-monday-august-26th/" title="Permanent link to Chassis swap on web364 on Monday, August 26th" rel="bookmark">Chassis swap on web364 on Monday, August 26th</a></h2>
|
120
|
+
<div class="entry-date"><abbr class="published" title="2013-08-25T16:42:14+0000">August 25, 2013 – 16:42 UTC</abbr></div>
|
121
|
+
<div class="entry-content">
|
122
|
+
<p>web364 will be taken down on Monday, August 26th for a routine chassis swap between 6am-11am UTC. Expected downtime is less 30 minutes.</p>
|
123
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
124
|
+
</div>
|
125
|
+
<div class="entry-meta">
|
126
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/dddjl/" title="View all posts by David L.">David L.</a></span>
|
127
|
+
<span class="metasep">|</span>
|
128
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
129
|
+
<span class="metasep">|</span>
|
130
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
131
|
+
</div>
|
132
|
+
</div><!-- .post -->
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
<div id="post-3630" class="post-3630 post type-post status-publish format-standard hentry category-downtime tag-downtime tag-web364 p2 publish author-wfpeter y2013 m08 d25 h02 alt">
|
137
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/25/web364-down/" title="Permanent link to [Fixed] Web364 down" rel="bookmark">[Fixed] Web364 down</a></h2>
|
138
|
+
<div class="entry-date"><abbr class="published" title="2013-08-25T14:16:33+0000">August 25, 2013 – 14:16 UTC</abbr></div>
|
139
|
+
<div class="entry-content">
|
140
|
+
<p>Web364 has suddenly gone down and we are currently working to bring it back online ASAP.</p>
|
141
|
+
<p>2013-08-25 16:53 UTC: Web364 is back and operating normally.</p>
|
142
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
143
|
+
</div>
|
144
|
+
<div class="entry-meta">
|
145
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/wfpeter/" title="View all posts by webfaction">webfaction</a></span>
|
146
|
+
<span class="metasep">|</span>
|
147
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
148
|
+
<span class="metasep">|</span> <span class="tag-links">Tags: <a href="http://statusblog.webfaction.com/tag/downtime/" rel="tag">Downtime</a>, <a href="http://statusblog.webfaction.com/tag/web364/" rel="tag">web364</a></span> <span class="metasep">|</span>
|
149
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
150
|
+
</div>
|
151
|
+
</div><!-- .post -->
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
<div id="post-3627" class="post-3627 post type-post status-publish format-standard hentry category-downtime category-problems tag-web226 p3 publish author-webfactionneeravk y2013 m08 d25 h09">
|
156
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/25/emergency-maintenance-on-web226-3/" title="Permanent link to [Done] Emergency maintenance on Web226" rel="bookmark">[Done] Emergency maintenance on Web226</a></h2>
|
157
|
+
<div class="entry-date"><abbr class="published" title="2013-08-25T09:41:18+0000">August 25, 2013 – 09:41 UTC</abbr></div>
|
158
|
+
<div class="entry-content">
|
159
|
+
<p>Filesystem on Web226 had gone read-only so we have booted it into rescue now to run a full filesystem check.</p>
|
160
|
+
<p>We will update this post as the check progresses.</p>
|
161
|
+
<p>[Aug 25 10:14] The check is done and the server is back and OK now.</p>
|
162
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
163
|
+
</div>
|
164
|
+
<div class="entry-meta">
|
165
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/webfactionneeravk/" title="View all posts by webfactionneeravk">webfactionneeravk</a></span>
|
166
|
+
<span class="metasep">|</span>
|
167
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a>, <a href="http://statusblog.webfaction.com/category/problems/" title="View all posts in Problems" rel="category tag">Problems</a></span>
|
168
|
+
<span class="metasep">|</span> <span class="tag-links">Tags: <a href="http://statusblog.webfaction.com/tag/web226/" rel="tag">web226</a></span> <span class="metasep">|</span>
|
169
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
170
|
+
</div>
|
171
|
+
</div><!-- .post -->
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
<div id="post-3620" class="post-3620 post type-post status-publish format-standard hentry category-downtime p4 publish author-webfaction y2013 m08 d24 h05 alt">
|
176
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/24/intermittent-network-routing-issues-affecting-several-servers/" title="Permanent link to [Fixed] Intermittent network routing issues affecting several servers" rel="bookmark">[Fixed] Intermittent network routing issues affecting several servers</a></h2>
|
177
|
+
<div class="entry-date"><abbr class="published" title="2013-08-24T17:24:32+0000">August 24, 2013 – 17:24 UTC</abbr></div>
|
178
|
+
<div class="entry-content">
|
179
|
+
<p>Several of our servers are currently experiencing intermittent network routing issues. Affected servers may include:<br />
|
180
|
+
Web34, Web42, Web48, Web83, Web91, Web95, Web99, Web102, Web105, Web143, Web148, Web151, Web155, Web162, Web182, Web243</p>
|
181
|
+
<p>We’re working to resolve this issue and will update this post when we have more information.</p>
|
182
|
+
<p>2013-08-24 17:45 UTC: The problem has been identified as a rack switch that failed and has gone offline.</p>
|
183
|
+
<p>2013-08-24 18:05 UTC: The problem was an issue with an upstream network carrier and has been resolved.</p>
|
184
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
185
|
+
</div>
|
186
|
+
<div class="entry-meta">
|
187
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/webfaction/" title="View all posts by webfaction">webfaction</a></span>
|
188
|
+
<span class="metasep">|</span>
|
189
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
190
|
+
<span class="metasep">|</span>
|
191
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
192
|
+
</div>
|
193
|
+
</div><!-- .post -->
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
<div id="post-3616" class="post-3616 post type-post status-publish format-standard hentry category-downtime category-problems p5 publish author-wfsean y2013 m08 d22 h08">
|
198
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/22/control-panel-and-api-offline/" title="Permanent link to [Fixed] Control panel and API offline" rel="bookmark">[Fixed] Control panel and API offline</a></h2>
|
199
|
+
<div class="entry-date"><abbr class="published" title="2013-08-22T20:25:15+0000">August 22, 2013 – 20:25 UTC</abbr></div>
|
200
|
+
<div class="entry-content">
|
201
|
+
<p>Our control panel and API server is currently offline. We’re working to restore service and will update this post as soon as we have more information.</p>
|
202
|
+
<p>2013-08-22 21:35 UTC – The control panel and API are back online.</p>
|
203
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
204
|
+
</div>
|
205
|
+
<div class="entry-meta">
|
206
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/wfsean/" title="View all posts by wfsean">wfsean</a></span>
|
207
|
+
<span class="metasep">|</span>
|
208
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a>, <a href="http://statusblog.webfaction.com/category/problems/" title="View all posts in Problems" rel="category tag">Problems</a></span>
|
209
|
+
<span class="metasep">|</span>
|
210
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
211
|
+
</div>
|
212
|
+
</div><!-- .post -->
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
<div id="post-3611" class="post-3611 post type-post status-publish format-standard hentry category-downtime tag-downtime tag-web313 p6 publish author-webfaction y2013 m08 d15 h08 alt">
|
217
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/15/web313-down-2/" title="Permanent link to [Done]Web313 down" rel="bookmark">[Done]Web313 down</a></h2>
|
218
|
+
<div class="entry-date"><abbr class="published" title="2013-08-15T08:57:04+0000">August 15, 2013 – 08:57 UTC</abbr></div>
|
219
|
+
<div class="entry-content">
|
220
|
+
<p>Web313 has gone down and we are working urgently to bring it back online ASAP.</p>
|
221
|
+
<p>—</p>
|
222
|
+
<p>09:34:17 Aug 15 2013 UTC: Web313 is back and operating normally.</p>
|
223
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
224
|
+
</div>
|
225
|
+
<div class="entry-meta">
|
226
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/webfaction/" title="View all posts by webfaction">webfaction</a></span>
|
227
|
+
<span class="metasep">|</span>
|
228
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
229
|
+
<span class="metasep">|</span> <span class="tag-links">Tags: <a href="http://statusblog.webfaction.com/tag/downtime/" rel="tag">Downtime</a>, <a href="http://statusblog.webfaction.com/tag/web313/" rel="tag">web313</a></span> <span class="metasep">|</span>
|
230
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
231
|
+
</div>
|
232
|
+
</div><!-- .post -->
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
<div id="post-3607" class="post-3607 post type-post status-publish format-standard hentry category-downtime p7 publish author-klyntonj y2013 m08 d10 h11">
|
237
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/10/emergency-maintenance-on-web329/" title="Permanent link to [Done]Emergency maintenance on Web329." rel="bookmark">[Done]Emergency maintenance on Web329.</a></h2>
|
238
|
+
<div class="entry-date"><abbr class="published" title="2013-08-10T23:24:18+0000">August 10, 2013 – 23:24 UTC</abbr></div>
|
239
|
+
<div class="entry-content">
|
240
|
+
<p>The file system on Web329 has gone read only. We’ve taken the machine offline and we are starting a file system check. We’ll update this post as we have more information.</p>
|
241
|
+
<p>2013-08-11 00:26 UTC: The file system check has finished and the server is now back online and operational.</p>
|
242
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
243
|
+
</div>
|
244
|
+
<div class="entry-meta">
|
245
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/klyntonj/" title="View all posts by klyntonj">klyntonj</a></span>
|
246
|
+
<span class="metasep">|</span>
|
247
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
248
|
+
<span class="metasep">|</span>
|
249
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
250
|
+
</div>
|
251
|
+
</div><!-- .post -->
|
252
|
+
|
253
|
+
|
254
|
+
|
255
|
+
<div id="post-3600" class="post-3600 post type-post status-publish format-standard hentry category-downtime p8 publish author-wfpeter y2013 m08 d10 h11 alt">
|
256
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/10/emergency-maintenance-on-web247/" title="Permanent link to [Done] Emergency maintenance on Web247" rel="bookmark">[Done] Emergency maintenance on Web247</a></h2>
|
257
|
+
<div class="entry-date"><abbr class="published" title="2013-08-10T11:07:18+0000">August 10, 2013 – 11:07 UTC</abbr></div>
|
258
|
+
<div class="entry-content">
|
259
|
+
<p>Web247 filesystem is showing inconsistencies. We’re taking the server down to run a fsck. We’ll update this post as the maintenance progresses.</p>
|
260
|
+
<p>2013-08-10 11:59 UTC: The fsck first pass is complete, second pass underway.<br />
|
261
|
+
2013-08-10 12:34 UTC: Second pass at 60%.<br />
|
262
|
+
2013-08-10 13:48 UTC: Second pass complete, scan 1C is underway.<br />
|
263
|
+
2013-08-10 14:46 UTC: Fsck completed and the server is back at operational status.</p>
|
264
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
265
|
+
</div>
|
266
|
+
<div class="entry-meta">
|
267
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/wfpeter/" title="View all posts by webfaction">webfaction</a></span>
|
268
|
+
<span class="metasep">|</span>
|
269
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
270
|
+
<span class="metasep">|</span>
|
271
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
272
|
+
</div>
|
273
|
+
</div><!-- .post -->
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
<div id="post-3593" class="post-3593 post type-post status-publish format-standard hentry category-downtime p9 publish author-webfaction y2013 m08 d06 h02">
|
278
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/06/emergency-maintenance-on-web226-2/" title="Permanent link to [Done] Emergency maintenance on Web226" rel="bookmark">[Done] Emergency maintenance on Web226</a></h2>
|
279
|
+
<div class="entry-date"><abbr class="published" title="2013-08-06T14:19:48+0000">August 6, 2013 – 14:19 UTC</abbr></div>
|
280
|
+
<div class="entry-content">
|
281
|
+
<p>Web226′s filesytem went read-only. We’re currently taking the server down to run a fsck. We will update this post as maintenance progresses.</p>
|
282
|
+
<p>2013-08-06 15:23 UTC: We are still running fsck on the server.<br />
|
283
|
+
2013-08-06 15:43 UTC: The fsck first pass is complete, second pass underway.<br />
|
284
|
+
2013-08-06 16:40 UTC: Fsck completed and the server is back at operational status</p>
|
285
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
286
|
+
</div>
|
287
|
+
<div class="entry-meta">
|
288
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/webfaction/" title="View all posts by webfaction">webfaction</a></span>
|
289
|
+
<span class="metasep">|</span>
|
290
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
291
|
+
<span class="metasep">|</span>
|
292
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
293
|
+
</div>
|
294
|
+
</div><!-- .post -->
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
<div id="post-3588" class="post-3588 post type-post status-publish format-standard hentry category-downtime p10 publish author-webfactiongianlucar y2013 m08 d05 h02 alt">
|
299
|
+
<h2 class="entry-title"><a href="http://statusblog.webfaction.com/2013/08/05/emergency-maintenance-on-web400-july-5th-2013/" title="Permanent link to [Done]Emergency maintenance on Web400, August 5th, 2013." rel="bookmark">[Done]Emergency maintenance on Web400, August 5th, 2013.</a></h2>
|
300
|
+
<div class="entry-date"><abbr class="published" title="2013-08-05T14:15:22+0000">August 5, 2013 – 14:15 UTC</abbr></div>
|
301
|
+
<div class="entry-content">
|
302
|
+
<p>Web400 filesystem went read only. We’re currently taking down the server to run a fsck. We will update this post as maintenance progresses.</p>
|
303
|
+
<p>2013-08-05 14:35 UTC Fsck completed and the server is back at operational status</p>
|
304
|
+
<div id="jp-post-flair" class="sharedaddy sd-like-enabled"></div>
|
305
|
+
</div>
|
306
|
+
<div class="entry-meta">
|
307
|
+
<span class="entry-author author vcard">By <a class="url fn" href="http://statusblog.webfaction.com/author/webfactiongianlucar/" title="View all posts by webfactiongianlucar">webfactiongianlucar</a></span>
|
308
|
+
<span class="metasep">|</span>
|
309
|
+
<span class="entry-category">Posted in <a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts in Downtime" rel="category tag">Downtime</a></span>
|
310
|
+
<span class="metasep">|</span>
|
311
|
+
<span class="entry-commentlink"><span>Comments Off</span></span>
|
312
|
+
</div>
|
313
|
+
</div><!-- .post -->
|
314
|
+
|
315
|
+
|
316
|
+
|
317
|
+
<div id="nav-below" class="navigation">
|
318
|
+
<div class="nav-previous"><a href="http://statusblog.webfaction.com/page/2/" >« Older posts</a></div>
|
319
|
+
<div class="nav-next"></div>
|
320
|
+
</div>
|
321
|
+
|
322
|
+
</div><!-- #content .hfeed -->
|
323
|
+
</div><!-- #container -->
|
324
|
+
|
325
|
+
<div id="primary" class="sidebar">
|
326
|
+
<ul>
|
327
|
+
<li class="pagenav"><h3>Pages</h3><ul><li class="page_item page-item-2"><a href="http://statusblog.webfaction.com/about/">About</a></li>
|
328
|
+
</ul></li>
|
329
|
+
<li class="category-links">
|
330
|
+
<h3>Categories</h3>
|
331
|
+
<ul>
|
332
|
+
<li class="cat-item cat-item-56228"><a href="http://statusblog.webfaction.com/category/downtime/" title="View all posts filed under Downtime">Downtime</a>
|
333
|
+
</li>
|
334
|
+
<li class="cat-item cat-item-54"><a href="http://statusblog.webfaction.com/category/general/" title="View all posts filed under General">General</a>
|
335
|
+
</li>
|
336
|
+
<li class="cat-item cat-item-6615"><a href="http://statusblog.webfaction.com/category/problems/" title="View all posts filed under Problems">Problems</a>
|
337
|
+
</li>
|
338
|
+
<li class="cat-item cat-item-5753895"><a href="http://statusblog.webfaction.com/category/scheduled-downtime/" title="View all posts filed under Scheduled downtime">Scheduled downtime</a>
|
339
|
+
</li>
|
340
|
+
<li class="cat-item cat-item-736642"><a href="http://statusblog.webfaction.com/category/service-change/" title="View all posts filed under Service change">Service change</a>
|
341
|
+
</li>
|
342
|
+
|
343
|
+
</ul>
|
344
|
+
</li>
|
345
|
+
<li class="archive-links">
|
346
|
+
<h3>Archives</h3>
|
347
|
+
<ul>
|
348
|
+
<li><a href='http://statusblog.webfaction.com/2013/08/' title='August 2013'>August 2013</a></li>
|
349
|
+
<li><a href='http://statusblog.webfaction.com/2013/07/' title='July 2013'>July 2013</a></li>
|
350
|
+
<li><a href='http://statusblog.webfaction.com/2013/06/' title='June 2013'>June 2013</a></li>
|
351
|
+
<li><a href='http://statusblog.webfaction.com/2013/05/' title='May 2013'>May 2013</a></li>
|
352
|
+
<li><a href='http://statusblog.webfaction.com/2013/04/' title='April 2013'>April 2013</a></li>
|
353
|
+
<li><a href='http://statusblog.webfaction.com/2013/03/' title='March 2013'>March 2013</a></li>
|
354
|
+
<li><a href='http://statusblog.webfaction.com/2013/02/' title='February 2013'>February 2013</a></li>
|
355
|
+
<li><a href='http://statusblog.webfaction.com/2013/01/' title='January 2013'>January 2013</a></li>
|
356
|
+
<li><a href='http://statusblog.webfaction.com/2012/12/' title='December 2012'>December 2012</a></li>
|
357
|
+
<li><a href='http://statusblog.webfaction.com/2012/11/' title='November 2012'>November 2012</a></li>
|
358
|
+
<li><a href='http://statusblog.webfaction.com/2012/10/' title='October 2012'>October 2012</a></li>
|
359
|
+
<li><a href='http://statusblog.webfaction.com/2012/09/' title='September 2012'>September 2012</a></li>
|
360
|
+
<li><a href='http://statusblog.webfaction.com/2012/08/' title='August 2012'>August 2012</a></li>
|
361
|
+
<li><a href='http://statusblog.webfaction.com/2012/07/' title='July 2012'>July 2012</a></li>
|
362
|
+
<li><a href='http://statusblog.webfaction.com/2012/06/' title='June 2012'>June 2012</a></li>
|
363
|
+
<li><a href='http://statusblog.webfaction.com/2012/05/' title='May 2012'>May 2012</a></li>
|
364
|
+
<li><a href='http://statusblog.webfaction.com/2012/04/' title='April 2012'>April 2012</a></li>
|
365
|
+
<li><a href='http://statusblog.webfaction.com/2012/03/' title='March 2012'>March 2012</a></li>
|
366
|
+
<li><a href='http://statusblog.webfaction.com/2012/02/' title='February 2012'>February 2012</a></li>
|
367
|
+
<li><a href='http://statusblog.webfaction.com/2012/01/' title='January 2012'>January 2012</a></li>
|
368
|
+
<li><a href='http://statusblog.webfaction.com/2011/12/' title='December 2011'>December 2011</a></li>
|
369
|
+
<li><a href='http://statusblog.webfaction.com/2011/11/' title='November 2011'>November 2011</a></li>
|
370
|
+
<li><a href='http://statusblog.webfaction.com/2011/10/' title='October 2011'>October 2011</a></li>
|
371
|
+
<li><a href='http://statusblog.webfaction.com/2011/09/' title='September 2011'>September 2011</a></li>
|
372
|
+
<li><a href='http://statusblog.webfaction.com/2011/08/' title='August 2011'>August 2011</a></li>
|
373
|
+
<li><a href='http://statusblog.webfaction.com/2011/07/' title='July 2011'>July 2011</a></li>
|
374
|
+
<li><a href='http://statusblog.webfaction.com/2011/06/' title='June 2011'>June 2011</a></li>
|
375
|
+
<li><a href='http://statusblog.webfaction.com/2011/05/' title='May 2011'>May 2011</a></li>
|
376
|
+
<li><a href='http://statusblog.webfaction.com/2011/04/' title='April 2011'>April 2011</a></li>
|
377
|
+
<li><a href='http://statusblog.webfaction.com/2011/03/' title='March 2011'>March 2011</a></li>
|
378
|
+
<li><a href='http://statusblog.webfaction.com/2011/02/' title='February 2011'>February 2011</a></li>
|
379
|
+
<li><a href='http://statusblog.webfaction.com/2011/01/' title='January 2011'>January 2011</a></li>
|
380
|
+
<li><a href='http://statusblog.webfaction.com/2010/12/' title='December 2010'>December 2010</a></li>
|
381
|
+
<li><a href='http://statusblog.webfaction.com/2010/11/' title='November 2010'>November 2010</a></li>
|
382
|
+
<li><a href='http://statusblog.webfaction.com/2010/10/' title='October 2010'>October 2010</a></li>
|
383
|
+
<li><a href='http://statusblog.webfaction.com/2010/09/' title='September 2010'>September 2010</a></li>
|
384
|
+
<li><a href='http://statusblog.webfaction.com/2010/08/' title='August 2010'>August 2010</a></li>
|
385
|
+
<li><a href='http://statusblog.webfaction.com/2010/07/' title='July 2010'>July 2010</a></li>
|
386
|
+
<li><a href='http://statusblog.webfaction.com/2010/06/' title='June 2010'>June 2010</a></li>
|
387
|
+
<li><a href='http://statusblog.webfaction.com/2010/05/' title='May 2010'>May 2010</a></li>
|
388
|
+
<li><a href='http://statusblog.webfaction.com/2010/04/' title='April 2010'>April 2010</a></li>
|
389
|
+
<li><a href='http://statusblog.webfaction.com/2010/03/' title='March 2010'>March 2010</a></li>
|
390
|
+
<li><a href='http://statusblog.webfaction.com/2010/02/' title='February 2010'>February 2010</a></li>
|
391
|
+
<li><a href='http://statusblog.webfaction.com/2010/01/' title='January 2010'>January 2010</a></li>
|
392
|
+
<li><a href='http://statusblog.webfaction.com/2009/12/' title='December 2009'>December 2009</a></li>
|
393
|
+
<li><a href='http://statusblog.webfaction.com/2009/11/' title='November 2009'>November 2009</a></li>
|
394
|
+
<li><a href='http://statusblog.webfaction.com/2009/10/' title='October 2009'>October 2009</a></li>
|
395
|
+
<li><a href='http://statusblog.webfaction.com/2009/09/' title='September 2009'>September 2009</a></li>
|
396
|
+
<li><a href='http://statusblog.webfaction.com/2009/08/' title='August 2009'>August 2009</a></li>
|
397
|
+
<li><a href='http://statusblog.webfaction.com/2009/07/' title='July 2009'>July 2009</a></li>
|
398
|
+
<li><a href='http://statusblog.webfaction.com/2009/06/' title='June 2009'>June 2009</a></li>
|
399
|
+
<li><a href='http://statusblog.webfaction.com/2009/05/' title='May 2009'>May 2009</a></li>
|
400
|
+
<li><a href='http://statusblog.webfaction.com/2009/04/' title='April 2009'>April 2009</a></li>
|
401
|
+
<li><a href='http://statusblog.webfaction.com/2009/03/' title='March 2009'>March 2009</a></li>
|
402
|
+
<li><a href='http://statusblog.webfaction.com/2009/02/' title='February 2009'>February 2009</a></li>
|
403
|
+
<li><a href='http://statusblog.webfaction.com/2006/08/' title='August 2006'>August 2006</a></li>
|
404
|
+
|
405
|
+
</ul>
|
406
|
+
</li>
|
407
|
+
</ul>
|
408
|
+
</div><!-- #primary .sidebar -->
|
409
|
+
|
410
|
+
<div id="secondary" class="sidebar">
|
411
|
+
<ul>
|
412
|
+
<li class="blog-search">
|
413
|
+
<h3><label for="s">Search</label></h3>
|
414
|
+
<form id="searchform" method="get" action="http://statusblog.webfaction.com/">
|
415
|
+
<div>
|
416
|
+
<input id="s" name="s" type="text" value="" size="10" />
|
417
|
+
<input id="searchsubmit" name="searchsubmit" type="submit" value="Find »" />
|
418
|
+
</div>
|
419
|
+
</form>
|
420
|
+
</li>
|
421
|
+
<li id="linkcat-1356" class="linkcat"><h3>Blogroll</h3>
|
422
|
+
<ul class='xoxo blogroll'>
|
423
|
+
<li><a href="http://wordpress.com/">WordPress.com</a></li>
|
424
|
+
<li><a href="http://wordpress.org/">WordPress.org</a></li>
|
425
|
+
|
426
|
+
</ul>
|
427
|
+
</li>
|
428
|
+
|
429
|
+
<li class="feed-links">
|
430
|
+
<h3>RSS Feeds</h3>
|
431
|
+
<ul>
|
432
|
+
<li><a href="http://statusblog.webfaction.com/feed/" title="WebFaction Status Blog RSS 2.0 Feed" rel="alternate" type="application/rss+xml">All posts</a></li>
|
433
|
+
<li><a href="http://statusblog.webfaction.com/comments/feed/" title="WebFaction Status Blog Comments RSS 2.0 Feed" rel="alternate" type="application/rss+xml">All comments</a></li>
|
434
|
+
</ul>
|
435
|
+
</li>
|
436
|
+
<li class="meta-links">
|
437
|
+
<h3>Meta</h3>
|
438
|
+
<ul>
|
439
|
+
<li><a href="http://wordpress.com/signup/?ref=wplogin">Register</a></li> <li><a href="http://webfaction.wordpress.com/wp-login.php">Log in</a></li>
|
440
|
+
</ul>
|
441
|
+
</li>
|
442
|
+
</ul>
|
443
|
+
</div><!-- #secondary .sidebar -->
|
444
|
+
<div id="footer">
|
445
|
+
<span id="generator-link"><a href="http://wordpress.com/?ref=footer" rel="generator">Blog at WordPress.com</a>.</span>
|
446
|
+
<span class="metasep">|</span>
|
447
|
+
<span id="theme-link">Theme: <a href="http://www.plaintxt.org/themes/sandbox/" rel="designer">Sandbox 0.6.1</a>.</span>
|
448
|
+
</div><!-- #footer -->
|
449
|
+
|
450
|
+
</div><!-- #wrapper -->
|
451
|
+
|
452
|
+
|
453
|
+
<script type="text/javascript">
|
454
|
+
var _qevents = _qevents || [], wpcomQuantcastData = {"qacct":"p-18-mFEk4J448M","labels":",language.en,type.wpcom"};
|
455
|
+
function wpcomQuantcastPixel( labels, options ) {
|
456
|
+
var i, defaults = wpcomQuantcastData, data = { event: 'ajax' };
|
457
|
+
|
458
|
+
labels = labels || '';
|
459
|
+
options = options || {};
|
460
|
+
|
461
|
+
if ( typeof labels != 'string' )
|
462
|
+
options = labels;
|
463
|
+
|
464
|
+
for ( i in defaults ) {
|
465
|
+
data[i] = defaults[i];
|
466
|
+
}
|
467
|
+
|
468
|
+
for ( i in options ) {
|
469
|
+
data[i] = options[i];
|
470
|
+
}
|
471
|
+
|
472
|
+
if ( data.labels ) {
|
473
|
+
data.labels += ',' + labels;
|
474
|
+
} else {
|
475
|
+
data.labels = labels;
|
476
|
+
}
|
477
|
+
|
478
|
+
_qevents.push( data );
|
479
|
+
};
|
480
|
+
(function() {var elem = document.createElement('script');elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js";elem.async = true;elem.type = "text/javascript";var scpt = document.getElementsByTagName('script')[0];scpt.parentNode.insertBefore(elem, scpt); })();
|
481
|
+
_qevents.push( wpcomQuantcastData );
|
482
|
+
</script>
|
483
|
+
<noscript><div style="display: none;"><img src="//pixel.quantserve.com/pixel/p-18-mFEk4J448M.gif?labels=%2Clanguage.en%2Ctype.wpcom" height="1" width="1" alt="" /></div></noscript>
|
484
|
+
|
485
|
+
<script type='text/javascript' src='//0.gravatar.com/js/gprofiles.js?ver=201335ac'></script>
|
486
|
+
<script type='text/javascript'>
|
487
|
+
/* <![CDATA[ */
|
488
|
+
var WPGroHo = {"my_hash":""};
|
489
|
+
/* ]]> */
|
490
|
+
</script>
|
491
|
+
<script type='text/javascript' src='http://s0.wp.com/wp-content/mu-plugins/gravatar-hovercards/wpgroho.js?m=1351637563g'></script>
|
492
|
+
<script>jQuery(document).ready(function($){ Gravatar.profile_cb = function( h, d ) { WPGroHo.syncProfileData( h, d ); }; Gravatar.my_hash = WPGroHo.my_hash; Gravatar.init( 'body', '#wp-admin-bar-my-account' ); });</script> <div style="display:none">
|
493
|
+
</div>
|
494
|
+
|
495
|
+
<div id="bit" class="loggedout-follow-normal">
|
496
|
+
<a class="bsub" href="javascript:void(0)"><span id='bsub-text'>Follow</span></a>
|
497
|
+
<div id="bitsubscribe">
|
498
|
+
|
499
|
+
<h3><label for="loggedout-follow-field">Follow “WebFaction Status Blog”</label></h3>
|
500
|
+
|
501
|
+
<form action="https://subscribe.wordpress.com" method="post" accept-charset="utf-8" id="loggedout-follow">
|
502
|
+
<p>Get every new post delivered to your Inbox.</p>
|
503
|
+
|
504
|
+
<p id="loggedout-follow-error" style="display: none;"></p>
|
505
|
+
|
506
|
+
<p class="bit-follow-count">Join 696 other followers</p>
|
507
|
+
<p><input type="email" name="email" style="width: 95%; padding: 1px 2px" value="Enter your email address" onfocus='this.value=(this.value=="Enter your email address") ? "" : this.value;' onblur='this.value=(this.value=="") ? "Enter email address" : this.value;' id="loggedout-follow-field"/></p>
|
508
|
+
|
509
|
+
<input type="hidden" name="action" value="subscribe"/>
|
510
|
+
<input type="hidden" name="blog_id" value="4987698"/>
|
511
|
+
<input type="hidden" name="source" value="http://statusblog.webfaction.com/"/>
|
512
|
+
<input type="hidden" name="sub-type" value="loggedout-follow"/>
|
513
|
+
|
514
|
+
<input type="hidden" id="_wpnonce" name="_wpnonce" value="1ecf36cdcb" /><input type="hidden" name="_wp_http_referer" value="/" />
|
515
|
+
<p id='bsub-subscribe-button'><input type="submit" value="Sign me up" /></p>
|
516
|
+
</form>
|
517
|
+
<div id='bsub-credit'><a href="http://wordpress.com/signup/?ref=lof">Powered by WordPress.com</a></div>
|
518
|
+
</div><!-- #bitsubscribe -->
|
519
|
+
</div><!-- #bit -->
|
520
|
+
<script type='text/javascript' src='http://s1.wp.com/wp-content/js/devicepx.js?m=1373391538g'></script>
|
521
|
+
<script type="text/javascript">
|
522
|
+
// <![CDATA[
|
523
|
+
(function() {
|
524
|
+
try{
|
525
|
+
if ( window.external &&'msIsSiteMode' in window.external) {
|
526
|
+
if (window.external.msIsSiteMode()) {
|
527
|
+
var jl = document.createElement('script');
|
528
|
+
jl.type='text/javascript';
|
529
|
+
jl.async=true;
|
530
|
+
jl.src='/wp-content/plugins/ie-sitemode/custom-jumplist.php';
|
531
|
+
var s = document.getElementsByTagName('script')[0];
|
532
|
+
s.parentNode.insertBefore(jl, s);
|
533
|
+
}
|
534
|
+
}
|
535
|
+
}catch(e){}
|
536
|
+
})();
|
537
|
+
// ]]>
|
538
|
+
</script><script src="http://s.stats.wordpress.com/w.js?21" type="text/javascript"></script>
|
539
|
+
<script type="text/javascript">
|
540
|
+
st_go({'blog':'4987698','v':'wpcom','tz':'0','user_id':'0','subd':'webfaction'});
|
541
|
+
ex_go({'crypt':'UE40eW5QN0p8M2Y/RE1oV0pFNEwueXFaVXlyMGwvVG9bYmZXaDJ1Nmx+ankzUUUvVlg4OF92Y0gwNXlOMVYwc1FKb3pmcFJbN3dUWmc5WldXR0Z+Vy8rJXJxdzR+ZE4saTV6V2NLTU84Q1piZHc0a2h5ZEd0cGc0aUlDMmZBSnZdM2V8Nk53RkFRLzQ0TEpEaHh8P3BJUDlYb2hFS3JjdHViJUxwY2U3OEdwblEtemJbdUZRVUVML0MmfHx0WWVHYklmSnFvWDF+Q3RHTWwyNFl5LHE9aW5NfFBDPXV3QXRGP25ddlhCRi5oRHZMeGZMbms3Y35RUEswa0Fpa0dnVHQyfkNGayZdY0NYT2ssdjRPX3x1TGhmXyxhQlIz'});
|
542
|
+
addLoadEvent(function(){linktracker_init('4987698',0);});
|
543
|
+
</script>
|
544
|
+
<noscript><img src="http://stats.wordpress.com/b.gif?v=noscript" style="height:0px;width:0px;overflow:hidden" alt="" /></noscript>
|
545
|
+
<script type="text/javascript">
|
546
|
+
// Trigger Quantcast pixel for each Infinite Scroll post load
|
547
|
+
if ( 'function' === typeof( jQuery ) ) {
|
548
|
+
jQuery( document.body ).on( 'post-load', function() {
|
549
|
+
if ( 'function' === typeof( wpcomQuantcastPixel ) )
|
550
|
+
wpcomQuantcastPixel();
|
551
|
+
} );
|
552
|
+
}
|
553
|
+
</script>
|
554
|
+
<script>
|
555
|
+
if ( 'object' === typeof wpcom_mobile_user_agent_info ) {
|
556
|
+
|
557
|
+
wpcom_mobile_user_agent_info.init();
|
558
|
+
var mobileStatsQueryString = "";
|
559
|
+
|
560
|
+
if( false !== wpcom_mobile_user_agent_info.matchedPlatformName )
|
561
|
+
mobileStatsQueryString += "&x_" + 'mobile_platforms' + '=' + wpcom_mobile_user_agent_info.matchedPlatformName;
|
562
|
+
|
563
|
+
if( false !== wpcom_mobile_user_agent_info.matchedUserAgentName )
|
564
|
+
mobileStatsQueryString += "&x_" + 'mobile_devices' + '=' + wpcom_mobile_user_agent_info.matchedUserAgentName;
|
565
|
+
|
566
|
+
if( wpcom_mobile_user_agent_info.isIPad() )
|
567
|
+
mobileStatsQueryString += "&x_" + 'ipad_views' + '=' + 'views';
|
568
|
+
|
569
|
+
if( "" != mobileStatsQueryString ) {
|
570
|
+
new Image().src = document.location.protocol + '//stats.wordpress.com/g.gif?v=wpcom-no-pv' + mobileStatsQueryString + '&baba=' + Math.random();
|
571
|
+
}
|
572
|
+
|
573
|
+
}
|
574
|
+
</script>
|
575
|
+
</body>
|
576
|
+
</html>
|
data/spec/parser_spec.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'nokogiri'
|
2
|
+
require 'wfstatus/parser'
|
3
|
+
|
4
|
+
include Wfstatus
|
5
|
+
|
6
|
+
describe "parser" do
|
7
|
+
|
8
|
+
before :each do
|
9
|
+
@html = IO.read(File.expand_path("fixtures/sample.htm",File.dirname(__FILE__)))
|
10
|
+
@config = {}
|
11
|
+
@parser = Parser.new(@html, @config)
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should remember the html string" do
|
15
|
+
@parser.html.should eql(@html)
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should have a nokogiri page" do
|
19
|
+
@parser.page.class.should eql(Nokogiri::HTML::Document)
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "#posts" do
|
23
|
+
before :each do
|
24
|
+
@posts = @parser.posts
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should find some posts" do
|
28
|
+
@posts.count.should eql(10)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe "#messages" do
|
33
|
+
it "should populate an array of Wfmessage objects for each post" do
|
34
|
+
@parser.messages.count.should eql(10)
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'rspec'
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'wfstatus/wfmessage'
|
3
|
+
|
4
|
+
include Wfstatus
|
5
|
+
|
6
|
+
describe "wfmessage" do
|
7
|
+
before :each do
|
8
|
+
@posted_str = "2013-08-25T16:42:14+0000"
|
9
|
+
@title = "Intermittent delays on web321, web103"
|
10
|
+
@message = "Network issues are causing intermittent delays on the following servers: web103 and web444"
|
11
|
+
@url = "http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/"
|
12
|
+
@config = {
|
13
|
+
'servers' => {"web309" => "wibble.com", "web444" => "microsoft.com", "web103" => "campers.net"},
|
14
|
+
'utc_offset' => '-08:00'
|
15
|
+
}
|
16
|
+
@wfmessage = Wfmessage.new(@posted_str, @title, @message, @url, @config)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should hold on to the data" do
|
20
|
+
@wfmessage.posted.should eql(DateTime.strptime(@posted_str))
|
21
|
+
@wfmessage.title.should eql(@title)
|
22
|
+
@wfmessage.message.should eql(@message)
|
23
|
+
@wfmessage.url.should eql(@url)
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should get the servers from the title and message" do
|
27
|
+
@wfmessage.servers.count.should eql(3)
|
28
|
+
%w(web321 web103 web444).each do|svr|
|
29
|
+
@wfmessage.servers.include?(svr).should be_true()
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "#to_s" do
|
34
|
+
it "should combine the posted string, title, message and url" do
|
35
|
+
@wfmessage.to_s.should eql(
|
36
|
+
<<-STR
|
37
|
+
SERVER INFO: campers.net, microsoft.com
|
38
|
+
|
39
|
+
8:42:14 AM Sunday, Aug 25 2013 -0800
|
40
|
+
Intermittent delays on web321, web103
|
41
|
+
Network issues are causing intermittent delays on the following servers: web103 and web444
|
42
|
+
http://messageblog.webfaction.com/2013/08/25/intermittent-delays-on-august-25th/
|
43
|
+
|
44
|
+
STR
|
45
|
+
)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/wfstatus.gemspec
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'wfstatus/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "wfstatus"
|
8
|
+
spec.version = Wfstatus::VERSION
|
9
|
+
spec.author = "Dow Drake"
|
10
|
+
spec.email = "dowdrake@msn.com"
|
11
|
+
spec.homepage = "https://github.com/ddrake/wfstatus"
|
12
|
+
spec.description = %q{Webfaction server status tool}
|
13
|
+
spec.executables = "wfstatus"
|
14
|
+
spec.summary = %q{Retrieves Webfaction Status Blog posts mentioning your servers and emails you with the results.}
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files`.split($/)
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
22
|
+
spec.add_development_dependency "rake"
|
23
|
+
|
24
|
+
spec.add_dependency "nokogiri"
|
25
|
+
spec.add_dependency "mail"
|
26
|
+
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: wfstatus
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dow Drake
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2013-08-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: nokogiri
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mail
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: Webfaction server status tool
|
70
|
+
email: dowdrake@msn.com
|
71
|
+
executables:
|
72
|
+
- wfstatus
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .gitignore
|
77
|
+
- Gemfile
|
78
|
+
- LICENSE.txt
|
79
|
+
- README.md
|
80
|
+
- Rakefile
|
81
|
+
- bin/wfstatus
|
82
|
+
- lib/wfstatus.rb
|
83
|
+
- lib/wfstatus/builder.rb
|
84
|
+
- lib/wfstatus/parser.rb
|
85
|
+
- lib/wfstatus/version.rb
|
86
|
+
- lib/wfstatus/wfmessage.rb
|
87
|
+
- spec/builder_spec.rb
|
88
|
+
- spec/fixtures/config.yml
|
89
|
+
- spec/fixtures/config_dow.yml
|
90
|
+
- spec/fixtures/sample.htm
|
91
|
+
- spec/parser_spec.rb
|
92
|
+
- spec/spec_helper.rb
|
93
|
+
- spec/wfmessage_spec.rb
|
94
|
+
- wfstatus.gemspec
|
95
|
+
homepage: https://github.com/ddrake/wfstatus
|
96
|
+
licenses:
|
97
|
+
- MIT
|
98
|
+
metadata: {}
|
99
|
+
post_install_message:
|
100
|
+
rdoc_options: []
|
101
|
+
require_paths:
|
102
|
+
- lib
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
108
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
requirements: []
|
114
|
+
rubyforge_project:
|
115
|
+
rubygems_version: 2.0.6
|
116
|
+
signing_key:
|
117
|
+
specification_version: 4
|
118
|
+
summary: Retrieves Webfaction Status Blog posts mentioning your servers and emails
|
119
|
+
you with the results.
|
120
|
+
test_files:
|
121
|
+
- spec/builder_spec.rb
|
122
|
+
- spec/fixtures/config.yml
|
123
|
+
- spec/fixtures/config_dow.yml
|
124
|
+
- spec/fixtures/sample.htm
|
125
|
+
- spec/parser_spec.rb
|
126
|
+
- spec/spec_helper.rb
|
127
|
+
- spec/wfmessage_spec.rb
|