summaryrefslogtreecommitdiffstats
path: root/utils/test/result_collection_api/resources/pod_models.py
blob: fcb4ddbbdda5ae8d11c960d8bf01c8fced8ad2e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
from tornado_swagger_ui.tornado_swagger import swagger

__author__ = '__serena__'

# name: name of the POD e.g. zte-1
# mode: metal or virtual
# details: any detail
# role: ci-pod or community-pod or single-node


@swagger.model()
class PodCreateRequest(object):
    def __init__(self, name, mode='', details='', role=""):
        self.name = name
        self.mode = mode
        self.details = details
        self.role = role

    def format(self):
        return {
            "name": self.name,
            "mode": self.mode,
            "details": self.details,
            "role": self.role,
        }


@swagger.model()
class Pod(PodCreateRequest):
    """ describes a POD platform """
    def __init__(self, name='', mode='', details='', role="",
                 _id='', create_date=''):
        super(Pod, self).__init__(name, mode, details, role)
        self._id = _id
        self.creation_date = create_date

    @staticmethod
    def from_dict(pod_dict):
        if pod_dict is None:
            return None

        p = Pod()
        p._id = pod_dict.get('_id')
        p.creation_date = str(pod_dict.get('creation_date'))
        p.name = pod_dict.get('name')
        p.mode = pod_dict.get('mode')
        p.details = pod_dict.get('details')
        p.role = pod_dict.get('role')
        return p

    def format(self):
        f = super(Pod, self).format()
        f['creation_date'] = str(self.creation_date)
        return f

    def format_http(self):
        f = self.format()
        f['_id'] = str(self._id)
        return f


@swagger.model()
class Pods(object):
    """
        @ptype pods: C{list} of L{Pod}
    """
    def __init__(self, pods=list()):
        self.pods = pods

    @staticmethod
    def from_dict(res_dict):
        if res_dict is None:
            return None

        res = Pods()
        for pod in res_dict.get('pods'):
            res.pods.append(Pod.from_dict(pod))
        return res