diff options
Diffstat (limited to 'oti/event-handler/otihandler/dbclient/apis')
3 files changed, 0 insertions, 222 deletions
diff --git a/oti/event-handler/otihandler/dbclient/apis/__init__.py b/oti/event-handler/otihandler/dbclient/apis/__init__.py deleted file mode 100644 index 05e3800..0000000 --- a/oti/event-handler/otihandler/dbclient/apis/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END========================================================= - -from .db_access import DbAccess -from .event_db_access import EventDbAccess diff --git a/oti/event-handler/otihandler/dbclient/apis/db_access.py b/oti/event-handler/otihandler/dbclient/apis/db_access.py deleted file mode 100644 index f064b30..0000000 --- a/oti/event-handler/otihandler/dbclient/apis/db_access.py +++ /dev/null @@ -1,50 +0,0 @@ -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END========================================================= - -""" -Base class for APIs to interact with application database using sqlAlchemy ORM lib and postgresSql driver -""" - -from sqlalchemy.orm import sessionmaker -from ..db_dao import DaoBase -import psycopg2 -from psycopg2.extras import execute_values -import os -import logging - - -class DbAccess(object): - logger = logging.getLogger("dti_handler.DbAccess") - engine = None - session = None - - def __init__(self): - self.engine = DaoBase.getDbEngine() - # create a configured "Session" class - Session = sessionmaker(bind=self.engine) - - # create a Session - self.session = Session() - - def saveDomainObject(self, obj): - self.session.add(obj) - self.session.commit() - self.session.close() - - def deleteDomainObject(self,obj): - self.session.delete(obj) - self.session.commit() - self.session.close() diff --git a/oti/event-handler/otihandler/dbclient/apis/event_db_access.py b/oti/event-handler/otihandler/dbclient/apis/event_db_access.py deleted file mode 100644 index 898ee8e..0000000 --- a/oti/event-handler/otihandler/dbclient/apis/event_db_access.py +++ /dev/null @@ -1,154 +0,0 @@ -# ================================================================================ -# Copyright (c) 2019-2020 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# ============LICENSE_END========================================================= - -""" DB APIs to interact with application database using sqlAlchemy ORM lib and postgresSql driver""" - -from sqlalchemy import and_ -from sqlalchemy.orm.exc import NoResultFound - -from .db_access import DbAccess -from ..models import Event, EventAck - - -class EventDbAccess(DbAccess): - - def __init__(self): - DbAccess.__init__(self) - - def query_event_item(self, target_type, target_name): - try: - query = self.session.query(Event).filter(Event.target_type == target_type).\ - filter(Event.target_name == target_name) - evt = query.one() - except NoResultFound: - return None - else: - return evt - - def query_event_data(self, target_type, target_name): - try: - query = self.session.query(Event).filter(Event.target_type == target_type).\ - filter(Event.target_name == target_name) - evt = query.one() - except NoResultFound: - return [] - else: - try: - ack_result = self.session.query(EventAck).filter(EventAck.event == evt).all() - except NoResultFound: - return [] - else: - return ack_result - - def query_event_data_k8s(self, target_type, target_name): - try: - query = self.session.query(Event).filter(Event.target_type == target_type).\ - filter(Event.target_name == target_name) - evt = query.one() - except NoResultFound: - return [] - else: - try: - ack_result = self.session.query(EventAck).filter(EventAck.event == evt).\ - filter(EventAck.container_type != 'docker').all() - except NoResultFound: - return [] - else: - return ack_result - - def query_event_info_docker(self, prim_evt, service_component, deployment_id, container_id): - try: - query = self.session.query(EventAck).filter(EventAck.event == prim_evt).filter( - and_(EventAck.service_component == service_component, - EventAck.deployment_id == deployment_id, - EventAck.container_id == container_id, - EventAck.container_type == 'docker')) - evt = query.one() - except NoResultFound as nrf: - raise nrf - else: - return evt - - def update_event_item(self, dti_event, target_type, target_name): - self.session.query(Event).filter(Event.target_type == target_type). \ - filter(Event.target_name == target_name).update({Event.event:dti_event}) - self.session.commit() - - def query_raw_k8_events(self, cluster, pod, namespace): - """ - run an inner JOIN query to dtih_event and dtih_event_ack tables using supplied query predicates - - :param cluster: - :param pod: - :param namespace: - :return: - Set of event objects related to k8s pods - """ - try: - return self.session.query(Event).filter(Event.dtih_event_id.in_( - self.session.query(EventAck.dtih_event_id).filter(and_(EventAck.k8s_cluster_fqdn == cluster, - EventAck.k8s_pod_id == pod, - EventAck.k8s_namespace == namespace)))).all() - except NoResultFound: - print("invalid query or no data") - return () - - def query_raw_docker_events(self, target_types, locations): - """ - run a query to dtih_event table using supplied query predicates - - :param target_types: required - :param locations: optional - :return: - set of event objects related to docker container - """ - try: - if not locations or (len(locations) == 1 and locations[0] == ''): - return self.session.query(Event).filter(Event.target_type.in_(target_types)).all() - else: - return self.session.query(Event).filter(Event.target_type.in_(target_types)).filter( - Event.location_clli.in_(locations)).all() - except NoResultFound: - print("invalid query or no data") - return () - - def query_pod_info2(self, cluster): - try: - return self.session.query(EventAck).filter(EventAck.k8s_cluster_fqdn == cluster).all() - except NoResultFound: - print("invalid query or no data") - return () - - def query_pod_info(self, cluster): - try: - return self.session.query(EventAck.k8s_pod_id, EventAck.k8s_namespace, - EventAck.k8s_proxy_fqdn, EventAck.k8s_service_name, - EventAck.k8s_service_port)\ - .filter(EventAck.k8s_cluster_fqdn == cluster) \ - .distinct().order_by(EventAck.k8s_cluster_fqdn).all() - except NoResultFound: - print("invalid query or no data") - return () - - def query_event_data_k8s_pod(self, prim_evt, scn): - try: - query = self.session.query(EventAck).filter(EventAck.event == prim_evt).filter( - and_(EventAck.service_component == scn)) - event_info = query.one() - except NoResultFound: - return None - else: - return event_info |