The task at hand is to come up with a way to flag an application for an outage when MyUW is not down. If MyUW as a whole is down then they will be presented with the generic MyUW error page which is in place under /portal/500.html currently.
So right now the way people get into our MyUW applications is through /web. Which is handled by our layout manager. In uPortal 4.2 they introduced a life cycle of maintenance (uPortal-Project/uPortal#397). We could just flag the proper entity file for maintenance, and in the tomcat manager shut down the webapp. That should prevent people from seeing the application. Then if they deep link to it, it would show the 404 page which should suggest they go to / to find what they are looking for. That could be a simple enough solution if a single app goes down when MyUW is still up. This seems to happen very rarely. We may have to tweak the /web/
to deal with things in a maintenance state.
We could also introduce a outage war that if there is an application that is out, we simply inject this war in the real war's place (or do some magic on the httpd side).
Once we introduce docker apps, then we could just redirect people to the outage page described in solution 2.
Create a generic outage page in uw-frame
. Then suggest people check for there outage/maintence state (they could have a server side flag that they set) and route all traffic there. Should be easy.
I am looking forward to
Docker
.So, the
JSR-286
version of this feature felt a lot like Access Control. As in, yanking access by reducing the groups able toSUBSCRIBE
(i.e., render) the content, bumping the content intoEXPIRED
lifecycle state (so that only Admins could render it), or in the newMAINTENANCE
lifecycle state which is a lot likeEXPIRED
but with user-facing messaging.So I wonder about an Access-Control-oriented solution at the
httpd
layer, as in in the Shibboleth SP configuration, to bounce users not in a sufficient Manifest group to an error page. This would have some nice properties in allowing continued access by privileged users working on the outaged app.