aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSeb Bacon <seb.bacon@gmail.com>2012-04-20 19:10:10 +0100
committerSeb Bacon <seb.bacon@gmail.com>2012-04-20 19:10:10 +0100
commit4533b28661d6ce6973becf5877e82ca5656c37d2 (patch)
treee3df319f2d3a3d7a458c5637dee74db02f15bcff /lib
parent8fcafad78e2fba5a09f7ad45542d906e0cdda19b (diff)
More changes and refactoring to make purges work.
Diffstat (limited to 'lib')
-rw-r--r--lib/quiet_opener.rb34
-rw-r--r--lib/varnish_purge.rb11
2 files changed, 34 insertions, 11 deletions
diff --git a/lib/quiet_opener.rb b/lib/quiet_opener.rb
new file mode 100644
index 000000000..a077ca323
--- /dev/null
+++ b/lib/quiet_opener.rb
@@ -0,0 +1,34 @@
+require 'open-uri'
+require 'net-purge'
+
+def quietly_try_to_open(url)
+ begin
+ result = open(url).read.strip
+ rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH
+ logger.warn("Unable to open third-party URL #{url}")
+ result = ""
+ end
+ return result
+end
+
+def quietly_try_to_purge(host, url)
+ begin
+ result = ""
+ result_body = ""
+ Net::HTTP.start(host) {|http|
+ request = Net::HTTP::Purge.new(url)
+ response = http.request(request)
+ result = response.code
+ result_body = response.body
+ }
+ rescue OpenURI::HTTPError, SocketError, Errno::ETIMEDOUT, Errno::ECONNREFUSED, Errno::EHOSTUNREACH
+ logger.warn("Unable to reach host #{host}")
+ end
+ if result == "200"
+ logger.info("Purged URL #{url} at #{host}: #{result}")
+ else
+ logger.warn("Unable to purge URL #{url} at #{host}: status #{result}")
+ end
+ return result
+end
+
diff --git a/lib/varnish_purge.rb b/lib/varnish_purge.rb
deleted file mode 100644
index ef0cbd7ea..000000000
--- a/lib/varnish_purge.rb
+++ /dev/null
@@ -1,11 +0,0 @@
-require 'open-uri'
-
-def purge(url)
- config = MySociety::Config.load_default()
- varnish_url = config['VARNISH_URL']
- url = "#{varnish_url}#{url}"
- result = open(url).read
- if result != "OK"
- raise
- end
-end