-def command(username, state, path, fields):
- """Handler for running commands like boot and delete on a VM."""
- back = fields.getfirst('back')
- try:
- d = controls.commandResult(username, state, fields)
- if d['command'] == 'Delete VM':
- back = 'list'
- except InvalidInput, err:
- if not back:
- raise
- print >> sys.stderr, err
- result = err
- else:
- result = 'Success!'
- if not back:
- return templates.command(searchList=[d])
- if back == 'list':
- state.clear() #Changed global state
- d = getListDict(username, state)
- d['result'] = result
- return templates.list(searchList=[d])
- elif back == 'info':
- machine = validation.Validate(username, state, machine_id=fields.getfirst('machine_id')).machine
- return ({'Status': '303 See Other',
- 'Location': 'info?machine_id=%d' % machine.machine_id},
- "You shouldn't see this message.")
- else:
- raise InvalidInput('back', back, 'Not a known back page.')
-