############################################################################## # Copyright (c) 2017 Huawei Technologies Co.,Ltd. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## from api.database import db_session from api.database.v2.models import V2Environment from api.database.v2.models import V2Openrc from api.database.v2.models import V2Image from api.database.v2.models import V2Pod from api.database.v2.models import V2Container from api.database.v2.models import V2Project from api.database.v2.models import V2Task class V2EnvironmentHandler(object): def insert(self, kwargs): environment = V2Environment(**kwargs) db_session.add(environment) db_session.commit() return environment def list_all(self): return V2Environment.query.all() def get_by_uuid(self, uuid): environment = V2Environment.query.filter_by(uuid=uuid).first() if not environment: raise ValueError return environment def update_attr(self, uuid, attr): environment = self.get_by_uuid(uuid) for k, v in attr.items(): setattr(environment, k, v) db_session.commit() def append_attr(self, uuid, attr): environment = self.get_by_uuid(uuid) for k, v in attr.items(): value = getattr(environment, k) new = '{},{}'.format(value, v) if value else v setattr(environment, k, new) db_session.commit() def delete_by_uuid(self, uuid): environment = self.get_by_uuid(uuid) db_session.delete(environment) db_session.commit() class V2OpenrcHandler(object): def insert(self, kwargs): openrc = V2Openrc(**kwargs) db_session.add(openrc) db_session.commit() return openrc def get_by_uuid(self, uuid): openrc = V2Openrc.query.filter_by(uuid=uuid).first() if not openrc: raise ValueError return openrc def delete_by_uuid(self, uuid): openrc = self.get_by_uuid(uuid) db_session.delete(openrc) db_session.commit() class V2ImageHandler(object): def insert(self, kwargs): image = V2Image(**kwargs) db_session.add(image) db_session.commit() return image def get_by_uuid(self, uuid): image = V2Image.query.filter_by(uuid=uuid).first() if not image: raise ValueError return image def delete_by_uuid(self, uuid): image = self.get_by_uuid(uuid) db_session.delete(image) db_session.commit() class V2PodHandler(object): def insert(self, kwargs): pod = V2Pod(**kwargs) db_session.add(pod) db_session.commit() return pod def get_by_uuid(self, uuid): pod = V2Pod.query.filter_by(uuid=uuid).first() if not pod: raise ValueError return pod def delete_by_uuid(self, uuid): pod = self.get_by_uuid(uuid) db_session.delete(pod) db_session.commit() class V2ContainerHandler(object): def insert(self, kwargs): container = V2Container(**kwargs) db_session.add(container) db_session.commit() return container def get_by_uuid(self, uuid): container = V2Container.query.filter_by(uuid=uuid).first() if not container: raise ValueError return container def update_attr(self, uuid, attr): container = self.get_by_uuid(uuid) for k, v in attr.items(): setattr(container, k, v) db_session.commit() def delete_by_uuid(self, uuid): container = self.get_by_uuid(uuid) db_session.delete(container) db_session.commit() class V2ProjectHandler(object): def list_all(self): return V2Project.query.all() def insert(self, kwargs): project = V2Project(**kwargs) db_session.add(project) db_session.commit() return project def get_by_uuid(self, uuid): project = V2Project.query.filter_by(uuid=uuid).first() if not project: raise ValueError return project def update_attr(self, uuid, attr): project = self.get_by_uuid(uuid) for k, v in attr.items(): setattr(project, k, v) db_session.commit() def append_attr(self, uuid, attr): project = self.get_by_uuid(uuid) for k, v in attr.items(): value = getattr(project, k) new = '{},{}'.format(value, v) if value else v setattr(project, k, new) db_session.commit() def delete_by_uuid(self, uuid): project = self.get_by_uuid(uuid) db_session.delete(project) db_session.commit() class V2TaskHandler(object): def list_all(self): return V2Task.query.all() def insert(self, kwargs): task = V2Task(**kwargs) db_session.add(task) db_session.commit() return task def get_by_uuid(self, uuid): task = V2Task.query.filter_by(uuid=uuid).first() if not task: raise ValueError return task def update_attr(self, uuid, attr): task = self.get_by_uuid(uuid) for k, v in attr.items(): setattr(task, k, v) db_session.commit() def delete_by_uuid(self, uuid): task = self.get_by_uuid(uuid) db_session.delete(task) db_session.commit()