Website Module¶
The website module uses Tornado, a fast and scalable python web server.
There are three groups of handlers:
- Main website
- This is the external website users will see when interacting with IceProd. It has been broken down into several sub-handlers for easier maintenance.
- JSONRPC
- This is the machine-readable portion of the website. Jobs talk to the server through this mechanism. The main website also uses this for various actions.
- lib downloads
- This is a directory of downloads local to the IceProd instance. Usually this will be the necessary software to run the iceprod core.
-
class
iceprod.server.modules.website.website(*args, **kwargs)[source]¶ The main website module.
Run the website, which is required for anything to work.
-
iceprod.server.modules.website.catch_error(method)[source]¶ Decorator to catch and handle errors on handlers
-
iceprod.server.modules.website.authenticated_secure(method)[source]¶ Decorate methods with this to require that the user be logged in to a secure area.
If the user is not logged in, they will be redirected to the configured login url <RequestHandler.get_login_url>.
If you configure a login url with a query parameter, Tornado will assume you know what you’re doing and use it as-is. If not, it will add a next parameter so the login page knows where to send you once you’re logged in.
-
class
iceprod.server.modules.website.MyHandler(application, request, **kwargs)[source]¶ Default Handler
-
class
iceprod.server.modules.website.JSONRPCHandler(application, request, **kwargs)[source]¶ JSONRPC 2.0 Handler.
Call DB methods using RPC over json.
-
class
iceprod.server.modules.website.LibHandler(application, request, **kwargs)[source]¶ Handler for iceprod library downloads.
These are straight http downloads like normal.
-
class
iceprod.server.modules.website.PublicHandler(application, request, **kwargs)[source]¶ Handler for public facing website
-
class
iceprod.server.modules.website.Submit(application, request, **kwargs)[source]¶ Handle /submit urls
-
class
iceprod.server.modules.website.Config(application, request, **kwargs)[source]¶ Handle /submit urls
-
class
iceprod.server.modules.website.Site(application, request, **kwargs)[source]¶ Handle /site urls
-
class
iceprod.server.modules.website.Dataset(application, request, **kwargs)[source]¶ Handle /dataset urls
-
class
iceprod.server.modules.website.Task(application, request, **kwargs)[source]¶ Handle /task urls
-
class
iceprod.server.modules.website.GroupsHandler(application, request, **kwargs)[source]¶ View/modify groups
-
class
iceprod.server.modules.website.UserAccount(application, request, **kwargs)[source]¶ View/modify a user account
-
class
iceprod.server.modules.website.Other(application, request, **kwargs)[source]¶ Handle any other urls - this is basically all 404