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()
91 class V2PodHandler(object):
93 def insert(self, kwargs):
99 def get_by_uuid(self, uuid):
100 pod = V2Pod.query.filter_by(uuid=uuid).first()
105 def delete_by_uuid(self, uuid):
106 pod = self.get_by_uuid(uuid)
107 db_session.delete(pod)
111 class V2ContainerHandler(object):
113 def insert(self, kwargs):
114 container = V2Container(**kwargs)
115 db_session.add(container)
119 def get_by_uuid(self, uuid):
120 container = V2Container.query.filter_by(uuid=uuid).first()
125 def delete_by_uuid(self, uuid):
126 container = self.get_by_uuid(uuid)
127 db_session.delete(container)
131 class V2ProjectHandler(object):
134 return V2Project.query.all()
136 def insert(self, kwargs):
137 project = V2Project(**kwargs)
138 db_session.add(project)
142 def get_by_uuid(self, uuid):
143 project = V2Project.query.filter_by(uuid=uuid).first()
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)
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)
162 def delete_by_uuid(self, uuid):
163 project = self.get_by_uuid(uuid)
164 db_session.delete(project)
168 class V2TaskHandler(object):
170 def insert(self, kwargs):
171 task = V2Task(**kwargs)
176 def get_by_uuid(self, uuid):
177 task = V2Task.query.filter_by(uuid=uuid).first()
182 def update_attr(self, uuid, attr):
183 task = self.get_by_uuid(uuid)
184 for k, v in attr.items():
188 def delete_by_uuid(self, uuid):
189 task = self.get_by_uuid(uuid)
190 db_session.delete(task)