eb732817d89ac824d0d2ac3eae1b2f7e8b04f409
[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 get_by_uuid(self, uuid):
28         environment = V2Environment.query.filter_by(uuid=uuid).first()
29         if not environment:
30             raise ValueError
31         return environment
32
33     def update_attr(self, uuid, attr):
34         environment = self.get_by_uuid(uuid)
35         for k, v in attr.items():
36             setattr(environment, k, v)
37         db_session.commit()
38
39     def append_attr(self, uuid, attr):
40         environment = self.get_by_uuid(uuid)
41         for k, v in attr.items():
42             value = getattr(environment, k)
43             new = '{},{}'.format(value, v) if value else v
44             setattr(environment, k, new)
45         db_session.commit()
46
47     def delete_by_uuid(self, uuid):
48         environment = self.get_by_uuid(uuid)
49         db_session.delete(environment)
50         db_session.commit()
51
52
53 class V2OpenrcHandler(object):
54
55     def insert(self, kwargs):
56         openrc = V2Openrc(**kwargs)
57         db_session.add(openrc)
58         db_session.commit()
59         return openrc
60
61     def get_by_uuid(self, uuid):
62         openrc = V2Openrc.query.filter_by(uuid=uuid).first()
63         if not openrc:
64             raise ValueError
65         return openrc
66
67     def delete_by_uuid(self, uuid):
68         openrc = self.get_by_uuid(uuid)
69         db_session.delete(openrc)
70         db_session.commit()
71
72
73 class V2ImageHandler(object):
74
75     def insert(self, kwargs):
76         image = V2Image(**kwargs)
77         db_session.add(image)
78         db_session.commit()
79         return image
80
81     def get_by_uuid(self, uuid):
82         image = V2Image.query.filter_by(uuid=uuid).first()
83         if not image:
84             raise ValueError
85         return image
86
87
88 class V2PodHandler(object):
89
90     def insert(self, kwargs):
91         pod = V2Pod(**kwargs)
92         db_session.add(pod)
93         db_session.commit()
94         return pod
95
96     def get_by_uuid(self, uuid):
97         pod = V2Pod.query.filter_by(uuid=uuid).first()
98         if not pod:
99             raise ValueError
100         return pod
101
102     def delete_by_uuid(self, uuid):
103         pod = self.get_by_uuid(uuid)
104         db_session.delete(pod)
105         db_session.commit()
106
107
108 class V2ContainerHandler(object):
109
110     def insert(self, kwargs):
111         container = V2Container(**kwargs)
112         db_session.add(container)
113         db_session.commit()
114         return container
115
116     def get_by_uuid(self, uuid):
117         container = V2Container.query.filter_by(uuid=uuid).first()
118         if not container:
119             raise ValueError
120         return container
121
122     def delete_by_uuid(self, uuid):
123         container = self.get_by_uuid(uuid)
124         db_session.delete(container)
125         db_session.commit()
126
127
128 class V2ProjectHandler(object):
129
130     def insert(self, kwargs):
131         project = V2Project(**kwargs)
132         db_session.add(project)
133         db_session.commit()
134         return project
135
136     def get_by_uuid(self, uuid):
137         project = V2Project.query.filter_by(uuid=uuid).first()
138         if not project:
139             raise ValueError
140         return project
141
142     def update_attr(self, uuid, attr):
143         project = self.get_by_uuid(uuid)
144         for k, v in attr.items():
145             setattr(project, k, v)
146         db_session.commit()
147
148     def append_attr(self, uuid, attr):
149         project = self.get_by_uuid(uuid)
150         for k, v in attr.items():
151             value = getattr(project, k)
152             new = '{},{}'.format(value, v) if value else v
153             setattr(project, k, new)
154         db_session.commit()
155
156     def delete_by_uuid(self, uuid):
157         project = self.get_by_uuid(uuid)
158         db_session.delete(project)
159         db_session.commit()
160
161
162 class V2TaskHandler(object):
163
164     def insert(self, kwargs):
165         task = V2Task(**kwargs)
166         db_session.add(task)
167         db_session.commit()
168         return task
169
170     def get_by_uuid(self, uuid):
171         task = V2Task.query.filter_by(uuid=uuid).first()
172         if not task:
173             raise ValueError
174         return task
175
176     def update_attr(self, uuid, attr):
177         task = self.get_by_uuid(uuid)
178         for k, v in attr.items():
179             setattr(task, k, v)
180         db_session.commit()
181
182     def delete_by_uuid(self, uuid):
183         task = self.get_by_uuid(uuid)
184         db_session.delete(task)
185         db_session.commit()