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