
This change reorganizes the source directories of the ptp-notification's containers: locationservice; notificationservice; notificationclient, to be reused by both CentOS and Debian Dockerfiles to build the images having the corresponding OS-specific base, together with the new files used to build images for Debian. Tests: PASS: Build images of the 3 containers for Debian PASS: Upload and apply changed ptp-notification application to pull Debian images from private repository (since final tag is not possible yet) in a Debian AIO-SX environment Regression: PASS: Build images of the 3 containers for CentOS Story: 2009831 Task: 45658 Signed-off-by: Douglas Henrique Koerich <douglashenrique.koerich@windriver.com> Change-Id: I4aa9650dbebe5ba68cd4d104ee0995e79681cfa4
66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
#coding=utf-8
|
|
#
|
|
# Copyright (c) 2021 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
import os
|
|
import json
|
|
import re
|
|
|
|
import requests
|
|
import logging
|
|
|
|
from notificationclientsdk.common.helpers.nodeinfo_helper import NodeInfoHelper
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
|
|
from notificationclientsdk.common.helpers import log_helper
|
|
log_helper.config_logger(LOG)
|
|
|
|
def notify(subscriptioninfo, notification, timeout=2, retry=3):
|
|
result = False
|
|
while True:
|
|
retry = retry - 1
|
|
try:
|
|
headers = {'Content-Type': 'application/json'}
|
|
data = json.dumps(notification)
|
|
url = subscriptioninfo.EndpointUri
|
|
response = requests.post(url, data=data, headers=headers, timeout=timeout)
|
|
response.raise_for_status()
|
|
result = True
|
|
return response
|
|
except requests.exceptions.ConnectionError as errc:
|
|
if retry > 0:
|
|
LOG.warning("Retry notifying due to: {0}".format(str(errc)))
|
|
continue
|
|
raise errc
|
|
except requests.exceptions.Timeout as errt:
|
|
if retry > 0:
|
|
LOG.warning("Retry notifying due to: {0}".format(str(errt)))
|
|
continue
|
|
raise errt
|
|
except requests.exceptions.RequestException as ex:
|
|
LOG.warning("Failed to notify due to: {0}".format(str(ex)))
|
|
raise ex
|
|
except requests.exceptions.HTTPError as ex:
|
|
LOG.warning("Failed to notify due to: {0}".format(str(ex)))
|
|
raise ex
|
|
except Exception as ex:
|
|
LOG.warning("Failed to notify due to: {0}".format(str(ex)))
|
|
raise ex
|
|
|
|
return result
|
|
|
|
def parse_resource_address(resource_address):
|
|
# The format of resource address is:
|
|
# /{clusterName}/{siteName}(/optional/hierarchy/..)/{nodeName}/{resource}
|
|
# Assume no optional hierarchy for now
|
|
clusterName = resource_address.split('/')[1]
|
|
nodeName = resource_address.split('/')[2]
|
|
resource_path = re.split('[/]', resource_address, 3)[3]
|
|
|
|
return clusterName, nodeName, resource_path
|
|
|