Add pod role in pod description in the API
[releng.git] / utils / test / result_collection_api / resources / pod_models.py
1 __author__ = '__serena__'
2
3 # name: name of the POD e.g. zte-1
4 # mode: metal or virtual
5 # details: any detail
6 # role: ci-pod or community-pod or single-node
7
8
9 class PodCreateRequest(object):
10     def __init__(self, name='', mode='', details='', role=""):
11         self.name = name
12         self.mode = mode
13         self.details = details
14         self.role = role
15
16     def format(self):
17         return {
18             "name": self.name,
19             "mode": self.mode,
20             "details": self.details,
21             "role": self.role,
22         }
23
24
25 class Pod(PodCreateRequest):
26     """ describes a POD platform """
27     def __init__(self, name='', mode='', details='', role="",
28                  _id='', create_date=''):
29         super(Pod, self).__init__(name, mode, details, role)
30         self._id = _id
31         self.creation_date = create_date
32
33     @staticmethod
34     def from_dict(pod_dict):
35         if pod_dict is None:
36             return None
37
38         p = Pod()
39         p._id = pod_dict.get('_id')
40         p.creation_date = str(pod_dict.get('creation_date'))
41         p.name = pod_dict.get('name')
42         p.mode = pod_dict.get('mode')
43         p.details = pod_dict.get('details')
44         p.role = pod_dict.get('role')
45         return p
46
47     def format(self):
48         f = super(Pod, self).format()
49         f['creation_date'] = str(self.creation_date)
50         return f
51
52     def format_http(self):
53         f = self.format()
54         f['_id'] = str(self._id)
55         return f
56
57
58 class Pods(object):
59     def __init__(self, pods=list()):
60         self.pods = pods
61
62     @staticmethod
63     def from_dict(res_dict):
64         if res_dict is None:
65             return None
66
67         res = Pods()
68         for pod in res_dict.get('pods'):
69             res.pods.append(Pod.from_dict(pod))
70         return res