Statistics
| Branch: | Tag: | Revision:

root / api / handlers.py @ 00b4f1be

History | View | Annotate | Download (2.5 kB)

1
# vim: ts=4 sts=4 et ai sw=4 fileencoding=utf-8
2
#
3
# Copyright © 2010 Greek Research and Technology Network
4
#
5

    
6
from piston.handler import BaseHandler, AnonymousBaseHandler
7
from synnefo.api.faults import fault, noContent, accepted
8

    
9
VERSIONS = [
10
    {
11
        "status": "CURRENT",
12
        "id": "v1.0",
13
        "docURL" : "http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide-20090714.pdf ",
14
        "wadl" : "http://docs.rackspacecloud.com/servers/api/v1.0/application.wadl"
15
    },
16
]
17

    
18
class VersionHandler(AnonymousBaseHandler):
19
    allowed_methods = ('GET',)
20

    
21
    def read(self, request, number=None):
22
        if number is None:
23
            versions = map(lambda v: {
24
                        "status": v["status"],
25
                        "id": v["id"],
26
                    }, VERSIONS)
27
            return { "versions": versions }
28
        else:
29
            for version in VERSIONS:
30
                if version["id"] == number:
31
                    return { "version": version }
32
            return fault.itemNotFound
33

    
34

    
35
# XXX: incomplete
36
class ServerHandler(BaseHandler):
37
    def read(self, request, id=None):
38
        if id is None:
39
            return self.read_all(request)
40
        elif id is "detail":
41
            return self.read_all(request, detail=True)
42
        else:
43
            return self.read_one(request, id)
44

    
45
    def read_one(self, request, id):
46
        print ("server info %s" % id)
47
        return {}
48

    
49
    def read_all(self, request, detail=False):
50
        if not detail:
51
            print "server info all"
52
        else:
53
            print "server info all detail"
54
        return {}
55

    
56
    def create(self, request):
57
        return accepted
58

    
59
    def update(self, request, id):
60
        return noContent
61

    
62
    def delete(self, request, id):
63
        return accepted
64

    
65

    
66
class ServerAddressHandler(BaseHandler):
67
    allowed_methods = ('GET', 'PUT', 'DELETE')
68

    
69
    def read(self, request, id, type=None):
70
        """List IP addresses for a server"""
71
        if type is None:
72
            pass
73
        elif type == "private":
74
            pass
75
        elif type == "public":
76
            pass
77
        return {}
78

    
79
    def update(self, request, id, address):
80
        """Share an IP address to another in the group"""
81
        return accepted
82

    
83
    def delete(self, request, id, address):
84
        """Unshare an IP address"""
85
        return accepted
86

    
87

    
88
class ServerActionHandler(BaseHandler):
89
    allowed_methods = ('POST',)
90

    
91
    def create(self, request, id):
92
        """Reboot, rebuild, resize, confirm resized, revert resized"""
93
        print ("server action %s" % id)
94
        return accepted