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

« back to all changes in this revision

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

ivle.webapp.console.service: Clean up.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
'''
25
25
 
26
 
import cStringIO
27
 
import md5
28
26
import os
29
 
import random
30
27
import socket
31
 
import sys
32
 
import uuid
33
28
 
34
29
import cjson
35
30
import errno
36
31
 
37
 
from ivle import (util, studpath, chat, console)
 
32
import ivle.console
 
33
import ivle.chat
38
34
import ivle.conf
39
35
from ivle.webapp.base.views import JSONRESTView, named_operation
40
36
 
49
45
 
50
46
        # Start the server
51
47
        jail_path = os.path.join(ivle.conf.jail_base, req.user.login)
52
 
        cons = console.Console(uid, jail_path, working_dir)
 
48
        cons = ivle.console.Console(uid, jail_path, working_dir)
53
49
 
54
50
        # Assemble the key and return it. Yes, it is double-encoded.
55
51
        return {'key': cjson.encode({"host": cons.host,
79
75
 
80
76
        msg = {'cmd':kind, 'text':text}
81
77
        try:
82
 
            json_response = chat.chat(host, port, msg, magic, decode = False)
 
78
            json_response = ivle.chat.chat(host, port, msg, magic,decode=False)
83
79
 
84
80
            # Snoop the response from python-console to check that it's valid
85
81
            try:
105
101
                raise socket.error, (enumber, estring)
106
102
        return response
107
103
 
108
 
def handle(req):
109
 
    """Handler for the Console Service AJAX backend application."""
110
 
    if len(req.path) > 0 and req.path[-1] == os.sep:
111
 
        path = req.path[:-1]
112
 
    else:
113
 
        path = req.path
114
 
    # The path determines which "command" we are receiving
115
 
    if req.path == "start":
116
 
        handle_start(req)
117
 
    elif req.path == "interrupt":
118
 
        handle_chat(req, kind='interrupt')
119
 
    elif req.path == "restart":
120
 
        handle_chat(req, kind='terminate')
121
 
    elif req.path == "chat":
122
 
        handle_chat(req)
123
 
    elif req.path == "block":
124
 
        handle_chat(req, kind="block")
125
 
    elif req.path == "flush":
126
 
        handle_chat(req, kind="flush")
127
 
    elif req.path == "inspect":
128
 
        handle_chat(req, kind="inspect")
129
 
    else:
130
 
        req.throw_error(req.HTTP_BAD_REQUEST)
131
 
 
132
 
 
133
104
 
134
105
def restart_console(uid, jail_path, working_dir, reason):
135
106
    """Tells the client that it must be issued a new console since the old 
137
108
    Returns the JSON response to be given to the client.
138
109
    """
139
110
    # Start a new console server console
140
 
    cons = console.Console(uid, jail_path, working_dir)
 
111
    cons = ivle.console.Console(uid, jail_path, working_dir)
141
112
 
142
113
    # Make a JSON object to tell the browser to restart its console client
143
114
    new_key = cjson.encode(