Add API(v2) to get all projects 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 delete_by_uuid(self, uuid):
126         container = self.get_by_uuid(uuid)
127         db_session.delete(container)
128         db_session.commit()
129
130
131 class V2ProjectHandler(object):
132
133     def list_all(self):
134         return V2Project.query.all()
135
136     def insert(self, kwargs):
137         project = V2Project(**kwargs)
138         db_session.add(project)
139         db_session.commit()
140         return project
141
142     def get_by_uuid(self, uuid):
143         project = V2Project.query.filter_by(uuid=uuid).first()
144         if not project:
145             raise ValueError
146         return project
147
148     def update_attr(self, uuid, attr):
149         project = self.get_by_uuid(uuid)
150         for k, v in attr.items():
151             setattr(project, k, v)
152         db_session.commit()
153
154     def append_attr(self, uuid, attr):
155         project = self.get_by_uuid(uuid)
156         for k, v in attr.items():
157             value = getattr(project, k)
158             new = '{},{}'.format(value, v) if value else v
159             setattr(project, k, new)
160         db_session.commit()
161
162     def delete_by_uuid(self, uuid):
163         project = self.get_by_uuid(uuid)
164         db_session.delete(project)
165         db_session.commit()
166
167
168 class V2TaskHandler(object):
169
170     def insert(self, kwargs):
171         task = V2Task(**kwargs)
172         db_session.add(task)
173         db_session.commit()
174         return task
175
176     def get_by_uuid(self, uuid):
177         task = V2Task.query.filter_by(uuid=uuid).first()
178         if not task:
179             raise ValueError
180         return task
181
182     def update_attr(self, uuid, attr):
183         task = self.get_by_uuid(uuid)
184         for k, v in attr.items():
185             setattr(task, k, v)
186         db_session.commit()
187
188     def delete_by_uuid(self, uuid):
189         task = self.get_by_uuid(uuid)
190         db_session.delete(task)
191         db_session.commit()