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)
27 def get_by_uuid(self, uuid):
28 environment = V2Environment.query.filter_by(uuid=uuid).first()
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)
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)
47 def delete_by_uuid(self, uuid):
48 environment = self.get_by_uuid(uuid)
49 db_session.delete(environment)
53 class V2OpenrcHandler(object):
55 def insert(self, kwargs):
56 openrc = V2Openrc(**kwargs)
57 db_session.add(openrc)
61 def get_by_uuid(self, uuid):
62 openrc = V2Openrc.query.filter_by(uuid=uuid).first()
67 def delete_by_uuid(self, uuid):
68 openrc = self.get_by_uuid(uuid)
69 db_session.delete(openrc)
73 class V2ImageHandler(object):
75 def insert(self, kwargs):
76 image = V2Image(**kwargs)
81 def get_by_uuid(self, uuid):
82 image = V2Image.query.filter_by(uuid=uuid).first()
88 class V2PodHandler(object):
90 def insert(self, kwargs):
96 def get_by_uuid(self, uuid):
97 pod = V2Pod.query.filter_by(uuid=uuid).first()
102 def delete_by_uuid(self, uuid):
103 pod = self.get_by_uuid(uuid)
104 db_session.delete(pod)
108 class V2ContainerHandler(object):
110 def insert(self, kwargs):
111 container = V2Container(**kwargs)
112 db_session.add(container)
116 def get_by_uuid(self, uuid):
117 container = V2Container.query.filter_by(uuid=uuid).first()
122 def delete_by_uuid(self, uuid):
123 container = self.get_by_uuid(uuid)
124 db_session.delete(container)
128 class V2ProjectHandler(object):
130 def insert(self, kwargs):
131 project = V2Project(**kwargs)
132 db_session.add(project)
136 def get_by_uuid(self, uuid):
137 project = V2Project.query.filter_by(uuid=uuid).first()
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)
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)
156 def delete_by_uuid(self, uuid):
157 project = self.get_by_uuid(uuid)
158 db_session.delete(project)
162 class V2TaskHandler(object):
164 def insert(self, kwargs):
165 task = V2Task(**kwargs)
170 def get_by_uuid(self, uuid):
171 task = V2Task.query.filter_by(uuid=uuid).first()
176 def update_attr(self, uuid, attr):
177 task = self.get_by_uuid(uuid)
178 for k, v in attr.items():
182 def delete_by_uuid(self, uuid):
183 task = self.get_by_uuid(uuid)
184 db_session.delete(task)