X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/blobdiff_plain/b6054ddecbc4d4a9b8e822ff8f0ace386e5e6e00..92bbb6ddedd2d02abb7e1289f0a50827429593d5:/templates/main.py diff --git a/templates/main.py b/templates/main.py index 6ec853d..d7b557f 100755 --- a/templates/main.py +++ b/templates/main.py @@ -494,19 +494,13 @@ def parseCreate(user, fields): def create(user, fields): """Handler for create requests.""" - js = fields.getfirst('js') try: parsed_fields = parseCreate(user, fields) machine = createVm(**parsed_fields) except InvalidInput, err: - if not js: - raise + pass else: err = None - if not js: - d = dict(user=user, - machine=machine) - return Template(file='create.tmpl', searchList=[d]) g.clear() #Changed global state d = getListDict(user) d['err'] = err @@ -515,9 +509,7 @@ def create(user, fields): setattr(d['defaults'], field, fields.getfirst(field)) else: d['new_machine'] = parsed_fields['name'] - t = Template(file='list.tmpl', searchList=[d]) - return JsonDict(createtable=t.createTable(), - machinelist=t.machineList(d['machines'])) + return Template(file='list.tmpl', searchList=[d]) def getListDict(user): @@ -556,18 +548,7 @@ def getListDict(user): def listVms(user, fields): """Handler for list requests.""" d = getListDict(user) - t = Template(file='list.tmpl', searchList=[d]) - js = fields.getfirst('js') - if not js: - return t - if js == 'machinelist': - return t.machineList(d['machines']) - elif js.startswith('machinerow-'): - request_machine_id = int(js.split('-')[1]) - m = [x for x in d['machines'] if x.id == request_machine_id] - return t.machineRow(m) - elif js == 'createtable': - return t.createTable() + return Template(file='list.tmpl', searchList=[d]) def testMachineId(user, machineId, exists=True): """Parse, validate and check authorization for a given machineId. @@ -757,37 +738,32 @@ def commandResult(user, fields): def command(user, fields): """Handler for running commands like boot and delete on a VM.""" - js = fields.getfirst('js') + back = fields.getfirst('back') try: d = commandResult(user, fields) + if d['command'] == 'Delete VM': + back = 'list' except InvalidInput, err: - if not js: + if not back: raise + print >> sys.stderr, err result = None else: - err = None result = 'Success!' - if not js: + if not back: return Template(file='command.tmpl', searchList=[d]) - if js == 'list': + if back == 'list': g.clear() #Changed global state d = getListDict(user) - t = Template(file='list.tmpl', searchList=[d]) - return JsonDict(createtable=t.createTable(), - machinelist=t.machineList(d['machines']), - result=result, - err=err) - elif js == 'info': + d['result'] = result + return Template(file='list.tmpl', searchList=[d]) + elif back == 'info': machine = testMachineId(user, fields.getfirst('machine_id')) d = infoDict(user, machine) - t = Template(file='info.tmpl', searchList=[d]) - return JsonDict(info=t.infoTable(), - commands=t.commands(), - modify=t.modifyForm(), - result=result, - err=err) + d['result'] = result + return Template(file='info.tmpl', searchList=[d]) else: - raise InvalidInput('js', js, 'Not a known js type.') + raise InvalidInput('back', back, 'Not a known back page.') def testAdmin(user, admin, machine): if admin in (None, machine.administrator): @@ -799,8 +775,9 @@ def testAdmin(user, admin, machine): if getafsgroups.checkAfsGroup(user.username, 'system:'+admin, 'athena.mit.edu'): return 'system:'+admin - raise InvalidInput('administrator', admin, - 'You must control the group you move it to.') + return admin + #raise InvalidInput('administrator', admin, + # 'You must control the group you move it to.') def testOwner(user, owner, machine): if owner in (None, machine.owner): @@ -899,31 +876,22 @@ def modifyDict(user, fields): def modify(user, fields): """Handler for modifying attributes of a machine.""" - js = fields.getfirst('js') try: modify_dict = modifyDict(user, fields) except InvalidInput, err: - if not js: - raise - result = '' + result = None machine = testMachineId(user, fields.getfirst('machine_id')) else: machine = modify_dict['machine'] result='Success!' err = None - if not js: - return Template(file='command.tmpl', searchList=[modify_dict]) info_dict = infoDict(user, machine) info_dict['err'] = err if err: for field in fields.keys(): setattr(info_dict['defaults'], field, fields.getfirst(field)) - t = Template(file='info.tmpl', searchList=[info_dict]) - return JsonDict(info=t.infoTable(), - commands=t.commands(), - modify=t.modifyForm(), - result=result, - err=err) + info_dict['result'] = result + return Template(file='info.tmpl', searchList=[info_dict]) def helpHandler(user, fields):