Douglas Henrique Koerich e8b4375bb6 Avoid duplicate subscriptions for PTP notification
Currently both v1 and v2 of PTP notification APIs have no check for
existing subscription when responding to a new request, then creating a
duplicated one. The (undesirable) side effect of that is the multiple
notification messages for the same application.

Test Plan:
PASS: Submitting consecutive POST requests to APIs v1 & v2.
PASS: For v2, issued consecutive POST requests using '.' and the actual
      nodename.

Closes-Bug: #1996233
Signed-off-by: Douglas Henrique Koerich <douglashenrique.koerich@windriver.com>
Change-Id: Ia15476411ba493b2c1168757c4b01d1a7f168b38
2022-11-17 11:06:40 -03:00

49 lines
1.2 KiB
Python

#
# Copyright (c) 2021-2022 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
class NodeNotAvailable(Exception):
def __init__(self, node_name):
self.node_name = node_name
def __str__(self):
return "Node:{0} not available".format(self.node_name)
class ResourceNotAvailable(Exception):
def __init__(self, node_name, resource_type):
self.node_name = node_name
self.resource_type = resource_type
def __str__(self):
return "Resource with type:{0} is not available on node:{1}".format(
self.resource_type, self.node_name)
class InvalidEndpoint(Exception):
def __init__(self, endpoint_uri):
self.endpoint_uri = endpoint_uri
def __str__(self):
return "Endpoint is invalid:{0}".format(self.endpoint_uri)
class InvalidSubscription(Exception):
def __init__(self, subscriptioninfo):
self.subscriptioninfo = subscriptioninfo
def __str__(self):
return "Subscription is invalid:{0}".format(
self.subscriptioninfo.to_dict())
class ServiceError(Exception):
def __init__(self, code, *args):
super().__init__(args)
self.code = code
def __str__(self):
return str(self.code)