コード例 #1
0
ファイル: api.py プロジェクト: masom/Puck
    def GET(self, id):
        vm = VirtualMachines.first(id=id)
        if not vm:
            raise cherrypy.HTTPError(status=404)

        try:
            config = json.loads(vm.config)
        except (ValueError,TypeError):
            return None
        return config
コード例 #2
0
ファイル: api.py プロジェクト: masom/Puck
    def PUT(self, id):
        vm = VirtualMachines.first(id=id)
        if not vm:
            raise cherrypy.HTTPError(status=404)

        data = cherrypy.request.json
        for k in ['id', 'status']:
            if not data.has_key(k):
                raise cherrypy.HTTPError(status=400)

        if not id == data['id']:
            raise cherrypy.HTTPError(status=400)

        if not vm.update(data, ['status']):
            raise cherrypy.HTTPError(status=500)

        return {'status': 200, 'message': 'Status updated.'}
コード例 #3
0
ファイル: api.py プロジェクト: masom/Puck
    def PUT(self, id, **post):

        vm = VirtualMachines.first(id=id)
        if not vm:
            raise cherrypy.HTTPError(status=404)

        try:
            config = json.loads(vm.config)
        except (ValueError,TypeError):
            config = {}

        for k in cherrypy.request.json:
            value = cherrypy.request.json[k]
            if value is None:
                del config[k]
                continue
            config[k] = value

        data = {'config': json.dumps(config)}
        vm.update(data, ['config'])
        return {'status': 200, 'message': 'Configuration updated.'}
コード例 #4
0
ファイル: api.py プロジェクト: masom/Puck
    def GET(self, id):
        vm = VirtualMachines.first(id=id)
        if not vm:
            raise cherrypy.HTTPError(status=404)

        return vm.to_dict()
コード例 #5
0
ファイル: virtual_machines.py プロジェクト: masom/Puck
 def _get_vm(self, id):
     vm = VirtualMachines.first(id=id)
     if not vm:
         cherrypy.session['flash'] = "Invalid virtual machine."
         raise cherrypy.HTTPRedirect('/virtual_machines')
     return vm