Accessing Alfred Jobs via the Web
In this document:
Introduction
Alfred has the built-in ability to function as a limited HTTP server
which can generate current job status in HTML format. Users can
retrieve this information remotely using a standard web browser
such as Netscape.
The maitre-d functions as the Alfred "homepage" and
so there must be an Alfred running in -maitre_d
mode for the HTTP interface to work.
It is important to understand that this mode is a stand-alone
feature of Alfred. There is no requirement to install scripts
or links into your site's standard HTTP server directories.
Alfred listens for HTTP connections on a specific TCP port and
responds directly to the requesting browser.
Since there is support for previewing rendered frames, which
involves a limited form of file transfer, it is also important
to review the security settings in the alfred.ini
file.
Configuring for HTTP Access
The alfred.ini file defines the host and
TCP port used by the maitre-d. For example, if the file is modified
to have these settings:
set alfConfig(maitredHost) {snappy.busy.com}
set alfConfig(maitredPort) 9000
set alfConfig(allowHTTP) 1
then the URL for the maitre-d homepage would be
http://snappy.busy.com:9000
(assuming that a maitre-d is running on snappy).
A more general approach, which also supports
fall-back maitre-ds, is
to install the provided
maitre-d.cgi script, which can automatically redirect users
to the appropriate maitre-d and TCP port. Note that this option
does require integration with the site's standard HTTP server.
After the script has been installed, the Alfred URL would be:
http://snappy.busy.com/cgi-bin/maitre_d.cgi
This cgi script approach is preferable, although it may be
impractical at many sites since superuser permissions are
required to install the script into the site HTTP server.
Connecting to the Maitre-d
When a browser connects to the maitre-d it will be given
a list of the currently active dispatchers from around the
network. By clicking on the link for a particular dispatcher,
the user can get a list of the jobs in that dispatcher's queue.
Note that access to each dispatcher is password protected.
Individual users must enable access to their dispatcher using
the Session->Preferences->Web Access
properties dialog from the regular Alfred monitor.
In order to support the broadest range of web browsers, Alfred
uses a fairly simple format for its status information. It does
make use of HTML tables for structured layout, and HTML forms for
a few situations in which user input is required. See the
limitations section for more details
on browser requirements.
A few example status pages are included below to illustrate
the interface.
Note: the following examples are not fully functional since there
is no running Alfred to act as a status server.In particular,
the links which would normally query Alfred for new information only
point to other illustrations within this document.
All Dispatchers on the Network
Current Alfred Dispatchers
Wed, 08 Apr 1998 13:45:10 |
|
|
|
Jobs |
|
|
Dispatchers
----------- |
Waiting
------- |
Active
------ |
Done
----- |
|
dana@drizzle |
0 |
1 |
2 |
|
david@grotto |
2 |
1 |
0 |
|
ned@area51 |
0 |
1 |
0 |
Errors |
bones@lluvia |
0 |
0 |
3 |
|
|
Jobs on a Specific Dispatcher
Clicking on the job title will cause Alfred to generate an HTML
version of the detailed task tree for entire job.
Alternatively, if a job is active, the word Active will
also be highlighted as a link, clicking it will put the dispatcher
into a special mode in which it constantly generates status updates
limited to the active portions of the job tree.
The Task Hierarchy
Alfred Job Status |
00:12:53 / 01:31:05 |
errors: no |
preview (mtor job) |
|
output: yes |
- Expand.JobPreflight __ Done
- Expand.0000 __ Blocked
- @Expand.JobPreflight __ Done
- Frame.0000 __ Active
- 6% - alembic
- FramePreflight.0000 __
Done
- Textures.0000 __
Done
- Shadows.0000 __ Done
- directionalLightShape1.shd.0000 __
Done
- @JobPreflight __ Done
- @Textures.0000 __ Done
Expand.0001 __ Blocked
- @Expand.JobPreflight __ Done
- Frame.0001 _i_
Active - 15% - animus
- FramePreflight.0001 __
Done
- Textures.0001 __
Done
- Shadows.0001 __ Done
- directionalLightShape1.shd.0001 _i_
Done
- @JobPreflight __ Done
- @Textures.0001 __ Done
Expand.0002 __ Blocked
- @Expand.JobPreflight __ Done
- Frame.0002 _i_
Active - 55% - grotto
- FramePreflight.0002 __
Done
- Textures.0002 __
Done
- Shadows.0002 __ Done
- directionalLightShape1.shd.0002 _i_
Done
- @JobPreflight __ Done
- @Textures.0002 __ Done
Expand.0003 __ Blocked
- @Expand.JobPreflight __ Done
- Frame.0003 _i_
Active - 18% - cerberus
- FramePreflight.0003 __
Done
- Textures.0003 __
Done
- Shadows.0003 __ Done
- directionalLightShape1.shd.0003 _i_
Done
- @JobPreflight __ Done
- @Textures.0003 __ Done
Expand.0004 __ Blocked
- @Expand.JobPreflight __ Done
- Frame.0004 __ Blocked
- FramePreflight.0004 __
Blocked
- Textures.0004 __
Done
- Shadows.0004 __
Blocked
- directionalLightShape1.shd.0004 __
Ready
- @JobPreflight __ Done
- @Textures.0004 __ Done
Expand.0005 __ Blocked
- @Expand.JobPreflight __ Done
- Frame.0005 __ Blocked
- FramePreflight.0005 __
Blocked
- Textures.0005 __
Done
- Shadows.0005 __
Blocked
- directionalLightShape1.shd.0005 __
Ready
- @JobPreflight __ Done
- @Textures.0005 __ Done
|
In this job status view, clicking on the short "___" link
between the task title and its status brings up a page showing the
current task "guts" and any task output logs. A link
formatted as "_i_" indicates that there has been output.
Finished frames can be downloaded to the browser (for preview, etc).
If there are frames available they will be indicated by
"[image]
" links in the
job status listing (above). To enable this feature the httpImgRoot
parameter in the alfred.ini file must be set
and the job script must specify a special
chaser command for the final
frame tasks.
Details of a Particular Task
Command Internals
Commands:
[Active]: netrender -f -Progress %H rib/preview.0003.rib
[keys]: pixarNrm
[tags]: prman
[hosts]: cerberus
[start]: Wed Apr 08 13:37:42 1998
[end]: (still active, pid=18150)
Clean-up:
(none)
Chaser Cmd:
sho rmanpix/preview.0003.tif
Command Output
S01001 cannot load shader "alien-marble". (WARNING)
|
Wrangler Mode
Sometimes it can be useful for an alfred "superuser" to
have access to every user's active job queue. This mode can be useful
as a simple mechanism for periodically monitoring all of the active
alfred jobs; and it can be especially useful to the
"render wranglers" of the world who need to make sure that
jobs get done, even after the artists who submit them go home for the day.
See the configuration discussion
for details on enabling wrangler mode at your site.
To enter wrangler mode:
- Point a web browser at the maitre-d URL.
- Click on the Alfred icon to go to the "About..." page.
- A login form will be displayed, enter your name and the
wrangler password.
- The maitre-d will respond with a special version of the current
dispatcher listing which contains expanded job information.
The wrangler will also be able to browse any user's jobs in detail.
- Note: the maitre-d generates an encoded http "cookie"
as part of the wrangler login process, it is used to authenticate
subsequent requests to the maitre-d and dispatchers. The cookie
remains valid for a limited time (usually a day); it is not saved
when the browser exits.
- To end wrangler mode, return to the "About..." page and
press the "Leave" button (which unsets the cookie).
The wrangler session also ends if an administrator uses
"alfred -wpasswd" to change the current password.
Limitations of the Web Interface
- The web browser UI supports
a limited subset of the functions available via the regular alfred
monitor. Release 3.0 provides a simple mechanism for reordering job
queues and changing individual job priority. However there is currently
no web-based mechanism for modifying crew and server definitions
(very experienced administrators might be able to accomplish
emergency changes by logging in to the maitre-d host and editing the
schedule file directly, this should be a last resort though).
- The HTTP support requires a running maitre-d which manages the
initial browser connections and lists all running dispatchers on
the network. See the alfred.ini file for details
on specifying the maitre-d's URL.
- The alfred HTTP support assumes a fairly up-to-date
browser (Netscape 2.0, MSIE 3.0, or better). Specifically, the HTML
is level 2.0 (includes tables and forms);
and it relies on proper handling of the no-cache directive: that is,
the interface assumes that reloading an alfred-generated page will
retrieve fresh job status, rather than continuously redisplaying old
(cached) status.
- The server-push update mechanism is used only for
Netscape clients, client-pull otherwise. These are mechanisms whereby
the HTML for the status page is either refreshed periodically by
alfred (server-push), or by the browser automatically "pushing
the reload button" itself (client-pull). Automatic updates of
active jobs can be interrupted by going to another page (the
"full" job mode, for example), or by pushing the browser
"Stop" button in server-push mode.
- Since the HTTP mode is self-contained, alfred does not need,
look for, or abide by, any other web server configurations
or restrictions which may be in force at a site.
-
The alfred.ini file controls whether alfred
HTTP connections are allowed at all, for the site. If connections are
globally enabled, then users can connect to dispatchers (via the maitre-d)
after "logging in" from their browser. There is only very simple
security on HTTP connections. Since it is difficult (by design) to
authenticate the owner of a browser, alfred uses the "Basic"
WWW authentication mechanism to prompt connecting web users for an
alfred password. The password must initially be set using the regular
alfred UI ("Web Password" on the Preferences dialog).
The encrypted password is stored in
~/.pixarPrefs/alfred.prefs
,
although an encoded but essentially clear-text version is transmitted
over the network during the initial browser connection. If the
encrypted user password (in the prefs file) is the empty string
"{}
" then connections are not allowed;
if the encrypted password is asterisk "*
"
then password checking is disabled, this feature should be used with
caution, i.e. on trusted networks behind a firewall.
The alfred.ini file also defines the location of the
wrangler-mode password file. The initial wrangler authentication
(with the maitre-d) is done using a one-time HTML form (about as
secure as telnet or ftp), however subsequent per-dispatcher
wrangler authentication is done using a fairly secure, encrypted
HTTP cookie, which is generated by
the maitre-d. This avoids requiring separate logins for each
dispatcher or sending insecure Basic authentication strings
with each wrangler transaction.
Pixar Animation Studios
(510) 752-3000 (voice)
(510) 752-3151 (fax)
Copyright © 1996-
Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar. |