summaryrefslogtreecommitdiffstats
path: root/utils/test/testapi/opnfv_testapi/resources/pod_models.py
blob: 7231806f6f1af621bfda61ce77f17a978c27ca76 (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
79
80
81
82
83
84
85
##############################################################################
# Copyright (c) 2015 Orange
# guyrodrigue.koffi@orange.com / koffirodrigue@gmail.com
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
from opnfv_testapi.tornado_swagger import swagger

# 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):
    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):
    """
        @property pods:
        @ptype pods: C{list} of L{Pod}
    """
    def __init__(self):
        self.pods = list()

    @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