1 ##############################################################################
2 # Copyright (c) 2017 Huawei Technologies Co.,Ltd.
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
19 class V2EnvironmentHandler(object):
21 def insert(self, kwargs):
22 environment = V2Environment(**kwargs)
23 db_session.add(environment)
28 return V2Environment.query.all()
30 def get_by_uuid(self, uuid):
31 environment = V2Environment.query.filter_by(uuid=uuid).first()
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)
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)
50 def delete_by_uuid(self, uuid):
51 environment = self.get_by_uuid(uuid)
52 db_session.delete(environment)
56 class V2OpenrcHandler(object):
58 def insert(self, kwargs):
59 openrc = V2Openrc(**kwargs)
60 db_session.add(openrc)
64 def get_by_uuid(self, uuid):
65 openrc = V2Openrc.query.filter_by(uuid=uuid).first()
70 def delete_by_uuid(self, uuid):
71 openrc = self.get_by_uuid(uuid)
72 db_session.delete(openrc)
76 class V2ImageHandler(object):
78 def insert(self, kwargs):
79 image = V2Image(**kwargs)
84 def get_by_uuid(self, uuid):
85 image = V2Image.query.filter_by(uuid=uuid).first()
90 def delete_by_uuid(self, uuid):
91 image = self.get_by_uuid(uuid)
92 db_session.delete(image)
96 class V2PodHandler(object):
98 def insert(self, kwargs):
104 def get_by_uuid(self, uuid):
105 pod = V2Pod.query.filter_by(uuid=uuid).first()
110 def delete_by_uuid(self, uuid):
111 pod = self.get_by_uuid(uuid)
112 db_session.delete(pod)
116 class V2ContainerHandler(object):
118 def insert(self, kwargs):
119 container = V2Container(**kwargs)
120 db_session.add(container)
124 def get_by_uuid(self, uuid):
125 container = V2Container.query.filter_by(uuid=uuid).first()
130 def update_attr(self, uuid, attr):
131 container = self.get_by_uuid(uuid)
132 for k, v in attr.items():
133 setattr(container, k, v)
136 def delete_by_uuid(self, uuid):
137 container = self.get_by_uuid(uuid)
138 db_session.delete(container)
142 class V2ProjectHandler(object):
145 return V2Project.query.all()
147 def insert(self, kwargs):
148 project = V2Project(**kwargs)
149 db_session.add(project)
153 def get_by_uuid(self, uuid):
154 project = V2Project.query.filter_by(uuid=uuid).first()
159 def update_attr(self, uuid, attr):
160 project = self.get_by_uuid(uuid)
161 for k, v in attr.items():
162 setattr(project, k, v)
165 def append_attr(self, uuid, attr):
166 project = self.get_by_uuid(uuid)
167 for k, v in attr.items():
168 value = getattr(project, k)
169 new = '{},{}'.format(value, v) if value else v
170 setattr(project, k, new)
173 def delete_by_uuid(self, uuid):
174 project = self.get_by_uuid(uuid)
175 db_session.delete(project)
179 class V2TaskHandler(object):
182 return V2Task.query.all()
184 def insert(self, kwargs):
185 task = V2Task(**kwargs)
190 def get_by_uuid(self, uuid):
191 task = V2Task.query.filter_by(uuid=uuid).first()
196 def update_attr(self, uuid, attr):
197 task = self.get_by_uuid(uuid)
198 for k, v in attr.items():
202 def delete_by_uuid(self, uuid):
203 task = self.get_by_uuid(uuid)
204 db_session.delete(task)