From 24d1eea554693247b6efe1c3897c7cb866e52f7d Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Fri, 9 Sep 2016 00:23:33 -0700 Subject: [PATCH 1/3] Support for custom 503 responses Added support for a custom 503 (temporary maintenance) page based upon the DISABLED file in an app folder --- applications/examples/static/503.html | 1 + applications/welcome/static/503.html | 1 + gluon/main.py | 8 ++++++-- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 applications/examples/static/503.html create mode 100644 applications/welcome/static/503.html diff --git a/applications/examples/static/503.html b/applications/examples/static/503.html new file mode 100644 index 00000000..b063a75b --- /dev/null +++ b/applications/examples/static/503.html @@ -0,0 +1 @@ +

Temporarily down for maintenance

\ No newline at end of file diff --git a/applications/welcome/static/503.html b/applications/welcome/static/503.html new file mode 100644 index 00000000..b063a75b --- /dev/null +++ b/applications/welcome/static/503.html @@ -0,0 +1 @@ +

Temporarily down for maintenance

\ No newline at end of file diff --git a/gluon/main.py b/gluon/main.py index 971c48a7..27fb2e51 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -25,7 +25,7 @@ import socket import random import string -from gluon._compat import Cookie, urllib2 +from pydal._compat import Cookie, urllib2 #from thread import allocate_lock from gluon.fileutils import abspath, write_file @@ -390,7 +390,11 @@ def wsgibase(environ, responder): % 'invalid request', web2py_error='invalid application') elif not request.is_local and exists(disabled): - raise HTTP(503, "

Temporarily down for maintenance

") + if os.path.exists(os.path.join(request.folder,'static','503.html')): + import urllib + raise HTTP(503, urllib.urlopen(os.path.join(request.folder,'static','503.html')).read()) + else: + raise HTTP(503, "

Temporarily down for maintenance

") # ################################################## # build missing folders From f8d62423e5b29a25d4d5541cabb1759e3fc16e12 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Mon, 10 Oct 2016 20:53:21 -0700 Subject: [PATCH 2/3] Update custom 503 page code to be less...idiotic --- gluon/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gluon/main.py b/gluon/main.py index 2c887c1c..97b49c9a 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -390,9 +390,9 @@ def wsgibase(environ, responder): % 'invalid request', web2py_error='invalid application') elif not request.is_local and exists(disabled): - if os.path.exists(os.path.join(request.folder,'static','503.html')): - import urllib - raise HTTP(503, urllib.urlopen(os.path.join(request.folder,'static','503.html')).read()) + five0three = os.path.join(request.folder,'static','503.html') + if os.path.exists(five0three): + raise HTTP(503, file(five0three, 'r').read()) else: raise HTTP(503, "

Temporarily down for maintenance

") From 63c494c24d422a6b9fbd325291624335f7463941 Mon Sep 17 00:00:00 2001 From: Vinyl Darkscratch Date: Mon, 10 Oct 2016 20:59:31 -0700 Subject: [PATCH 3/3] Fixed accidental module-to-import swap --- gluon/main.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gluon/main.py b/gluon/main.py index 97b49c9a..24327a89 100644 --- a/gluon/main.py +++ b/gluon/main.py @@ -25,7 +25,7 @@ import socket import random import string -from pydal._compat import Cookie, urllib2 +from gluon._compat import Cookie, urllib2 #from thread import allocate_lock from gluon.fileutils import abspath, write_file