summaryrefslogtreecommitdiffstats
path: root/oti/event-handler/otihandler/dbclient
diff options
context:
space:
mode:
Diffstat (limited to 'oti/event-handler/otihandler/dbclient')
-rw-r--r--oti/event-handler/otihandler/dbclient/__init__.py19
-rw-r--r--oti/event-handler/otihandler/dbclient/apis/__init__.py18
-rw-r--r--oti/event-handler/otihandler/dbclient/apis/db_access.py50
-rw-r--r--oti/event-handler/otihandler/dbclient/apis/event_db_access.py154
-rw-r--r--oti/event-handler/otihandler/dbclient/db_dao.py33
-rw-r--r--oti/event-handler/otihandler/dbclient/models/__init__.py19
-rw-r--r--oti/event-handler/otihandler/dbclient/models/event.py40
-rw-r--r--oti/event-handler/otihandler/dbclient/models/event_ack.py51
8 files changed, 0 insertions, 384 deletions
diff --git a/oti/event-handler/otihandler/dbclient/__init__.py b/oti/event-handler/otihandler/dbclient/__init__.py
deleted file mode 100644
index ee3ec3e..0000000
--- a/oti/event-handler/otihandler/dbclient/__init__.py
+++ /dev/null
@@ -1,19 +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 .models import Event
-from .models import EventAck
-from .db_dao import DaoBase
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
diff --git a/oti/event-handler/otihandler/dbclient/db_dao.py b/oti/event-handler/otihandler/dbclient/db_dao.py
deleted file mode 100644
index 78fa058..0000000
--- a/oti/event-handler/otihandler/dbclient/db_dao.py
+++ /dev/null
@@ -1,33 +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=========================================================
-
-""" SqlAlchemy ORM engine for postgresSql dti database """
-
-from sqlalchemy import create_engine
-
-class DaoBase:
- _engine = None
-
- @staticmethod
- def init_db(dbConStr):
- if DaoBase._engine:
- return
- DaoBase._engine = create_engine(dbConStr)
-
- @staticmethod
- def getDbEngine():
- return DaoBase._engine
-
diff --git a/oti/event-handler/otihandler/dbclient/models/__init__.py b/oti/event-handler/otihandler/dbclient/models/__init__.py
deleted file mode 100644
index bc802f5..0000000
--- a/oti/event-handler/otihandler/dbclient/models/__init__.py
+++ /dev/null
@@ -1,19 +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 .event import Event
-from .event_ack import EventAck
diff --git a/oti/event-handler/otihandler/dbclient/models/event.py b/oti/event-handler/otihandler/dbclient/models/event.py
deleted file mode 100644
index 553bec2..0000000
--- a/oti/event-handler/otihandler/dbclient/models/event.py
+++ /dev/null
@@ -1,40 +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=========================================================
-
-""" ORM - mapping class for dtih_event table """
-
-from sqlalchemy import Column, String, Integer, ForeignKey, func
-from sqlalchemy.dialects.postgresql import JSONB, TIMESTAMP
-from sqlalchemy.ext.declarative import declarative_base
-import datetime
-
-
-Base = declarative_base()
-
-class Event(Base):
- __tablename__ = 'dtih_event'
- __table_args__ = {'schema': 'dti'}
- dtih_event_id = Column(Integer, primary_key=True)
- event = Column(JSONB)
- create_ts = Column(TIMESTAMP(timezone=True), default=func.now())
- last_modified_ts = Column(TIMESTAMP(timezone=True), default=func.now())
- target_name = Column(String)
- target_type = Column(String)
- location_clli = Column(String)
- # def __repr__(self):
- # return "<Event(event_id='%s', target_type='%s', target_name='%s')" % (
- # self.event_id, self.target_type, self.target_name
- # )
diff --git a/oti/event-handler/otihandler/dbclient/models/event_ack.py b/oti/event-handler/otihandler/dbclient/models/event_ack.py
deleted file mode 100644
index 2b19316..0000000
--- a/oti/event-handler/otihandler/dbclient/models/event_ack.py
+++ /dev/null
@@ -1,51 +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=========================================================
-
-""" ORM - mapping class for dtih_event_ack table """
-
-import datetime
-from sqlalchemy import Column, String, Integer, ForeignKey, func
-from sqlalchemy.dialects.postgresql import JSONB, TIMESTAMP
-from sqlalchemy.orm import relationship
-from sqlalchemy.ext.declarative import declarative_base
-from ..models import Event
-
-Base = declarative_base()
-
-class EventAck(Base):
- __tablename__ = 'dtih_event_ack'
- __table_args__ = {'schema': 'dti'}
- dtih_event_ack_id = Column(Integer, primary_key=True)
- create_ts = Column(TIMESTAMP(timezone=True), default=func.now())
- last_modified_ts = Column(TIMESTAMP(timezone=True), default=func.now())
- action = Column(String)
- k8s_namespace = Column(String)
- k8s_service_name = Column(String)
- k8s_service_port = Column(String)
- k8s_cluster_fqdn = Column(String)
- k8s_proxy_fqdn = Column(String)
- k8s_pod_id = Column(String)
- service_component = Column(String)
- deployment_id = Column(String)
- container_type = Column(String)
- docker_host = Column(String)
- container_id = Column(String)
- reconfig_script = Column(String)
- dtih_event_id = Column(Integer, ForeignKey(Event.dtih_event_id))
- event = relationship(Event)
-
- def update_action(self, action):
- setattr(self, 'action', action)