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 update_attr(self, uuid, attr):
126 container = self.get_by_uuid(uuid)
127 for k, v in attr.items():
128 setattr(container, k, v)
131 def delete_by_uuid(self, uuid):
132 container = self.get_by_uuid(uuid)
133 db_session.delete(container)
137 class V2ProjectHandler(object):
140 return V2Project.query.all()
142 def insert(self, kwargs):
143 project = V2Project(**kwargs)
144 db_session.add(project)
148 def get_by_uuid(self, uuid):
149 project = V2Project.query.filter_by(uuid=uuid).first()
154 def update_attr(self, uuid, attr):
155 project = self.get_by_uuid(uuid)
156 for k, v in attr.items():
157 setattr(project, k, v)
160 def append_attr(self, uuid, attr):
161 project = self.get_by_uuid(uuid)
162 for k, v in attr.items():
163 value = getattr(project, k)
164 new = '{},{}'.format(value, v) if value else v
165 setattr(project, k, new)
168 def delete_by_uuid(self, uuid):
169 project = self.get_by_uuid(uuid)
170 db_session.delete(project)
174 class V2TaskHandler(object):
177 return V2Task.query.all()
179 def insert(self, kwargs):
180 task = V2Task(**kwargs)
185 def get_by_uuid(self, uuid):
186 task = V2Task.query.filter_by(uuid=uuid).first()
191 def update_attr(self, uuid, attr):
192 task = self.get_by_uuid(uuid)
193 for k, v in attr.items():
197 def delete_by_uuid(self, uuid):
198 task = self.get_by_uuid(uuid)
199 db_session.delete(task)