~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/webapp/console/service.py

  • Committer: William Grant
  • Date: 2009-05-13 03:15:26 UTC
  • mto: This revision was merged to the branch mainline in revision 1247.
  • Revision ID: grantw@unimelb.edu.au-20090513031526-l3knlkpgnldp6dgj
Attempting to view an SVN log when the repo is empty will not crash now.

svnlogservice now returns a 404 if the revision isn't found.

Show diffs side-by-side

added added

removed removed

Lines of Context:
52
52
        # Start the server
53
53
        jail_path = os.path.join(req.config['paths']['jails']['mounts'],
54
54
                                 req.user.login)
55
 
        cons = ivle.console.Console(req.config, uid, jail_path, working_dir)
 
55
        cons = ivle.console.Console(uid, jail_path, working_dir)
56
56
 
57
57
        # Assemble the key and return it. Yes, it is double-encoded.
58
58
        return {'key': cjson.encode({"host": cons.host,
96
96
                response = {"terminate":
97
97
                    "Communication to console process lost"}
98
98
            if "terminate" in response:
99
 
                response = restart_console(req.config, uid, jail_path,
100
 
                    working_dir, response["terminate"])
 
99
                response = restart_console(uid, jail_path, working_dir,
 
100
                    response["terminate"])
101
101
        except socket.error, (enumber, estring):
102
102
            if enumber == errno.ECONNREFUSED:
103
103
                # Timeout: Restart the session
104
 
                response = restart_console(req.config, uid, jail_path,
105
 
                    working_dir,
 
104
                response = restart_console(uid, jail_path, working_dir,
106
105
                    "The IVLE console has timed out due to inactivity")
107
106
            elif enumber == errno.ECONNRESET:
108
107
                # Communication issue: Restart the session
109
 
                response = restart_console(req.config, uid, jail_path,
110
 
                    working_dir,
 
108
                response = restart_console(uid, jail_path, working_dir,
111
109
                    "Connection with the console has been reset")
112
110
            else:
113
111
                # Some other error - probably serious
115
113
        return response
116
114
 
117
115
 
118
 
def restart_console(config, uid, jail_path, working_dir, reason):
 
116
def restart_console(uid, jail_path, working_dir, reason):
119
117
    """Tells the client that it must be issued a new console since the old 
120
118
    console is no longer availible. The client must accept the new key.
121
119
    Returns the JSON response to be given to the client.
122
120
    """
123
121
    # Start a new console server console
124
 
    cons = ivle.console.Console(config, uid, jail_path, working_dir)
 
122
    cons = ivle.console.Console(uid, jail_path, working_dir)
125
123
 
126
124
    # Make a JSON object to tell the browser to restart its console client
127
125
    new_key = cjson.encode(