Loading src/nbi/service/sse_telemetry/create_subscription.py→src/nbi/service/sse_telemetry/CreateSubscription.py +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,7 @@ class CreateSubscription(Resource): identifier=r.identifier, uri=r.uri, xpath=xpath_filter, sampling_interval=sampling_interval, main_subscription=False, main_subscription_id=request_identifier, ) Loading @@ -157,6 +158,7 @@ class CreateSubscription(Resource): xpath=request_data['ietf-subscribed-notifications:input'][ 'ietf-yang-push:datastore-xpath-filter' ], sampling_interval=sampling_interval, main_subscription=True, main_subscription_id=None, ) Loading src/nbi/service/sse_telemetry/delete_subscription.py→src/nbi/service/sse_telemetry/DeleteSubscription.py +0 −0 File moved. View file src/nbi/service/sse_telemetry/__init__.py +2 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ from nbi.service.NbiApplication import NbiApplication from .create_subscription import CreateSubscription from .delete_subscription import DeleteSubscription from .CreateSubscription import CreateSubscription from .DeleteSubscription import DeleteSubscription def register_telemetry_subscription(nbi_app: NbiApplication): Loading src/nbi/service/sse_telemetry/database/Subscription.py +9 −4 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ class SSESubsciprionDict(TypedDict): identifier: str uri: str xpath: str sampling_interval : float main_subscription: bool main_subscription_id: Optional[str] Loading @@ -44,6 +45,7 @@ def set_subscription(db_engine: Engine, request: SSESubsciprionDict) -> None: identifier=stmt.excluded.identifier, uri=stmt.excluded.uri, xpath=stmt.excluded.xpath, sampling_interval=stmt.excluded.sampling_interval, main_subscription=stmt.excluded.main_subscription, main_subscription_id=stmt.excluded.main_subscription_id, ), Loading @@ -67,11 +69,11 @@ def delete_subscription(db_engine: Engine, request: str, main_subscription: bool _ = run_transaction(sessionmaker(bind=db_engine), callback) def get_main_subscription(db_engine: Engine, request: str) -> Optional[SSESubsciprionDict]: def get_main_subscription(db_engine: Engine, subscription_id: str) -> Optional[SSESubsciprionDict]: def callback(session: Session) -> Optional[SSESubsciprionDict]: obj: Optional[SSESubscriptionModel] = ( session.query(SSESubscriptionModel) .filter_by(identifier=request, main_subscription=True) .filter_by(identifier=subscription_id, main_subscription=True) .one_or_none() ) return ( Loading @@ -82,6 +84,7 @@ def get_main_subscription(db_engine: Engine, request: str) -> Optional[SSESubsci identifier=obj.identifier, uri=obj.uri, xpath=obj.xpath, sampling_interval=obj.sampling_interval, main_subscription=obj.main_subscription, main_subscription_id=obj.main_subscription_id, ) Loading @@ -90,11 +93,11 @@ def get_main_subscription(db_engine: Engine, request: str) -> Optional[SSESubsci return run_transaction(sessionmaker(bind=db_engine), callback) def get_sub_subscription(db_engine: Engine, request: str) -> List[SSESubsciprionDict]: def get_sub_subscription(db_engine: Engine, subscription_id: str) -> List[SSESubsciprionDict]: def callback(session: Session) -> List[SSESubsciprionDict]: obj: List[SSESubscriptionModel] = ( session.query(SSESubscriptionModel) .filter_by(main_subscription_id=request, main_subscription=False) .filter_by(main_subscription_id=subscription_id, main_subscription=False) .all() ) return [ Loading @@ -103,6 +106,7 @@ def get_sub_subscription(db_engine: Engine, request: str) -> List[SSESubsciprion identifier=o.identifier, uri=o.uri, xpath=o.xpath, sampling_interval=obj.sampling_interval, main_subscription=o.main_subscription, main_subscription_id=o.main_subscription_id, ) Loading @@ -121,6 +125,7 @@ def get_subscriptions(db_engine: Engine) -> List[SSESubsciprionDict]: identifier=obj.identifier, uri=obj.uri, xpath=obj.xpath, sampling_interval=obj.sampling_interval, main_subscription=obj.main_subscription, main_subscription_id=obj.main_subscription_id, ) Loading src/nbi/service/sse_telemetry/database/models/Subscription.py +2 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ import sqlalchemy from sqlalchemy import Column, Integer, String, JSON, Boolean from sqlalchemy import Column, Float, Integer, String, JSON, Boolean from sqlalchemy.dialects.postgresql import UUID Loading @@ -32,6 +32,7 @@ class SSESubscriptionModel(_Base): identifier = Column(String, nullable=False, unique=False) uri = Column(String, nullable=False, unique=False) xpath = Column(String, nullable=False, unique=False) sampling_interval = Column(Float, nullable=True) main_subscription = Column(Boolean, default=False) main_subscription_id = Column(String, nullable=True) Loading Loading
src/nbi/service/sse_telemetry/create_subscription.py→src/nbi/service/sse_telemetry/CreateSubscription.py +2 −0 Original line number Diff line number Diff line Loading @@ -143,6 +143,7 @@ class CreateSubscription(Resource): identifier=r.identifier, uri=r.uri, xpath=xpath_filter, sampling_interval=sampling_interval, main_subscription=False, main_subscription_id=request_identifier, ) Loading @@ -157,6 +158,7 @@ class CreateSubscription(Resource): xpath=request_data['ietf-subscribed-notifications:input'][ 'ietf-yang-push:datastore-xpath-filter' ], sampling_interval=sampling_interval, main_subscription=True, main_subscription_id=None, ) Loading
src/nbi/service/sse_telemetry/delete_subscription.py→src/nbi/service/sse_telemetry/DeleteSubscription.py +0 −0 File moved. View file
src/nbi/service/sse_telemetry/__init__.py +2 −2 Original line number Diff line number Diff line Loading @@ -17,8 +17,8 @@ from nbi.service.NbiApplication import NbiApplication from .create_subscription import CreateSubscription from .delete_subscription import DeleteSubscription from .CreateSubscription import CreateSubscription from .DeleteSubscription import DeleteSubscription def register_telemetry_subscription(nbi_app: NbiApplication): Loading
src/nbi/service/sse_telemetry/database/Subscription.py +9 −4 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ class SSESubsciprionDict(TypedDict): identifier: str uri: str xpath: str sampling_interval : float main_subscription: bool main_subscription_id: Optional[str] Loading @@ -44,6 +45,7 @@ def set_subscription(db_engine: Engine, request: SSESubsciprionDict) -> None: identifier=stmt.excluded.identifier, uri=stmt.excluded.uri, xpath=stmt.excluded.xpath, sampling_interval=stmt.excluded.sampling_interval, main_subscription=stmt.excluded.main_subscription, main_subscription_id=stmt.excluded.main_subscription_id, ), Loading @@ -67,11 +69,11 @@ def delete_subscription(db_engine: Engine, request: str, main_subscription: bool _ = run_transaction(sessionmaker(bind=db_engine), callback) def get_main_subscription(db_engine: Engine, request: str) -> Optional[SSESubsciprionDict]: def get_main_subscription(db_engine: Engine, subscription_id: str) -> Optional[SSESubsciprionDict]: def callback(session: Session) -> Optional[SSESubsciprionDict]: obj: Optional[SSESubscriptionModel] = ( session.query(SSESubscriptionModel) .filter_by(identifier=request, main_subscription=True) .filter_by(identifier=subscription_id, main_subscription=True) .one_or_none() ) return ( Loading @@ -82,6 +84,7 @@ def get_main_subscription(db_engine: Engine, request: str) -> Optional[SSESubsci identifier=obj.identifier, uri=obj.uri, xpath=obj.xpath, sampling_interval=obj.sampling_interval, main_subscription=obj.main_subscription, main_subscription_id=obj.main_subscription_id, ) Loading @@ -90,11 +93,11 @@ def get_main_subscription(db_engine: Engine, request: str) -> Optional[SSESubsci return run_transaction(sessionmaker(bind=db_engine), callback) def get_sub_subscription(db_engine: Engine, request: str) -> List[SSESubsciprionDict]: def get_sub_subscription(db_engine: Engine, subscription_id: str) -> List[SSESubsciprionDict]: def callback(session: Session) -> List[SSESubsciprionDict]: obj: List[SSESubscriptionModel] = ( session.query(SSESubscriptionModel) .filter_by(main_subscription_id=request, main_subscription=False) .filter_by(main_subscription_id=subscription_id, main_subscription=False) .all() ) return [ Loading @@ -103,6 +106,7 @@ def get_sub_subscription(db_engine: Engine, request: str) -> List[SSESubsciprion identifier=o.identifier, uri=o.uri, xpath=o.xpath, sampling_interval=obj.sampling_interval, main_subscription=o.main_subscription, main_subscription_id=o.main_subscription_id, ) Loading @@ -121,6 +125,7 @@ def get_subscriptions(db_engine: Engine) -> List[SSESubsciprionDict]: identifier=obj.identifier, uri=obj.uri, xpath=obj.xpath, sampling_interval=obj.sampling_interval, main_subscription=obj.main_subscription, main_subscription_id=obj.main_subscription_id, ) Loading
src/nbi/service/sse_telemetry/database/models/Subscription.py +2 −1 Original line number Diff line number Diff line Loading @@ -14,7 +14,7 @@ import sqlalchemy from sqlalchemy import Column, Integer, String, JSON, Boolean from sqlalchemy import Column, Float, Integer, String, JSON, Boolean from sqlalchemy.dialects.postgresql import UUID Loading @@ -32,6 +32,7 @@ class SSESubscriptionModel(_Base): identifier = Column(String, nullable=False, unique=False) uri = Column(String, nullable=False, unique=False) xpath = Column(String, nullable=False, unique=False) sampling_interval = Column(Float, nullable=True) main_subscription = Column(Boolean, default=False) main_subscription_id = Column(String, nullable=True) Loading