Merge "Add API(v2) to get all test case info"
[yardstick.git] / api / database / v2 / handlers.py
1 ##############################################################################
2 # Copyright (c) 2017 Huawei Technologies Co.,Ltd.
3 #
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9 from api.database import db_session
10 from api.database.v2.models import V2Environment
11 from api.database.v2.models import V2Openrc
12 from api.database.v2.models import V2Image
13 from api.database.v2.models import V2Pod
14 from api.database.v2.models import V2Container
15 from api.database.v2.models import V2Project
16 from api.database.v2.models import V2Task
17
18
19 class V2EnvironmentHandler(object):
20
21     def insert(self, kwargs):
22         environment = V2Environment(**kwargs)
23         db_session.add(environment)
24         db_session.commit()
25         return environment
26
27     def list_all(self):
28         return V2Environment.query.all()
29
30     def get_by_uuid(self, uuid):
31         environment = V2Environment.query.filter_by(uuid=uuid).first()
32         if not environment:
33             raise ValueError
34         return environment
35
36     def update_attr(self, uuid, attr):
37         environment = self.get_by_uuid(uuid)
38         for k, v in attr.items():
39             setattr(environment, k, v)
40         db_session.commit()
41
42     def append_attr(self, uuid, attr):
43         environment = self.get_by_uuid(uuid)
44         for k, v in attr.items():
45             value = getattr(environment, k)
46             new = '{},{}'.format(value, v) if value else v
47             setattr(environment, k, new)
48         db_session.commit()
49
50     def delete_by_uuid(self, uuid):
51         environment = self.get_by_uuid(uuid)
52         db_session.delete(environment)
53         db_session.commit()
54
55
56 class V2OpenrcHandler(object):
57
58     def insert(self, kwargs):
59         openrc = V2Openrc(**kwargs)
60         db_session.add(openrc)
61         db_session.commit()
62         return openrc
63
64     def get_by_uuid(self, uuid):
65         openrc = V2Openrc.query.filter_by(uuid=uuid).first()
66         if not openrc:
67             raise ValueError
68         return openrc
69
70     def delete_by_uuid(self, uuid):
71         openrc = self.get_by_uuid(uuid)
72         db_session.delete(openrc)
73         db_session.commit()
74
75
76 class V2ImageHandler(object):
77
78     def insert(self, kwargs):
79         image = V2Image(**kwargs)
80         db_session.add(image)
81         db_session.commit()
82         return image
83
84     def get_by_uuid(self, uuid):
85         image = V2Image.query.filter_by(uuid=uuid).first()
86         if not image:
87             raise ValueError
88         return image
89
90
91 class V2PodHandler(object):
92
93     def insert(self, kwargs):
94         pod = V2Pod(**kwargs)
95         db_session.add(pod)
96         db_session.commit()
97         return pod
98
99     def get_by_uuid(self, uuid):
100         pod = V2Pod.query.filter_by(uuid=uuid).first()
101         if not pod:
102             raise ValueError
103         return pod
104
105     def delete_by_uuid(self, uuid):
106         pod = self.get_by_uuid(uuid)
107         db_session.delete(pod)
108         db_session.commit()
109
110
111 class V2ContainerHandler(object):
112
113     def insert(self, kwargs):
114         container = V2Container(**kwargs)
115         db_session.add(container)
116         db_session.commit()
117         return container
118
119     def get_by_uuid(self, uuid):
120         container = V2Container.query.filter_by(uuid=uuid).first()
121         if not container:
122             raise ValueError
123         return container
124
125     def update_attr(self, uuid, attr):
126         container = self.get_by_uuid(uuid)
127         for k, v in attr.items():
128             setattr(container, k, v)
129         db_session.commit()
130
131     def delete_by_uuid(self, uuid):
132         container = self.get_by_uuid(uuid)
133         db_session.delete(container)
134         db_session.commit()
135
136
137 class V2ProjectHandler(object):
138
139     def list_all(self):
140         return V2Project.query.all()
141
142     def insert(self, kwargs):
143         project = V2Project(**kwargs)
144         db_session.add(project)
145         db_session.commit()
146         return project
147
148     def get_by_uuid(self, uuid):
149         project = V2Project.query.filter_by(uuid=uuid).first()
150         if not project:
151             raise ValueError
152         return project
153
154     def update_attr(self, uuid, attr):
155         project = self.get_by_uuid(uuid)
156         for k, v in attr.items():
157             setattr(project, k, v)
158         db_session.commit()
159
160     def append_attr(self, uuid, attr):
161         project = self.get_by_uuid(uuid)
162         for k, v in attr.items():
163             value = getattr(project, k)
164             new = '{},{}'.format(value, v) if value else v
165             setattr(project, k, new)
166         db_session.commit()
167
168     def delete_by_uuid(self, uuid):
169         project = self.get_by_uuid(uuid)
170         db_session.delete(project)
171         db_session.commit()
172
173
174 class V2TaskHandler(object):
175
176     def insert(self, kwargs):
177         task = V2Task(**kwargs)
178         db_session.add(task)
179         db_session.commit()
180         return task
181
182     def get_by_uuid(self, uuid):
183         task = V2Task.query.filter_by(uuid=uuid).first()
184         if not task:
185             raise ValueError
186         return task
187
188     def update_attr(self, uuid, attr):
189         task = self.get_by_uuid(uuid)
190         for k, v in attr.items():
191             setattr(task, k, v)
192         db_session.commit()
193
194     def delete_by_uuid(self, uuid):
195         task = self.get_by_uuid(uuid)
196         db_session.delete(task)
197         db_session.commit()