Douglas Henrique Koerich 84b5114027 Images of ptp-notification containers for Debian
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
2022-07-19 15:01:27 -03:00

78 lines
2.3 KiB
Python

#
# Copyright (c) 2021 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import json
from notificationclientsdk.repository.node_repo import NodeRepo
class NodeInfoHelper(object):
BROKER_NODE_ALL = '*'
residing_node_name = None
@staticmethod
def set_residing_node(residing_node_name):
NodeInfoHelper.residing_node_name = residing_node_name
@staticmethod
def get_residing_node():
residing_node_name = NodeInfoHelper.residing_node_name
return residing_node_name
@staticmethod
def expand_node_name(node_name_pattern):
if node_name_pattern == '.':
return NodeInfoHelper.residing_node_name
elif node_name_pattern == NodeInfoHelper.BROKER_NODE_ALL:
return NodeInfoHelper.BROKER_NODE_ALL
else:
return node_name_pattern
@staticmethod
def default_node_name(node_name_pattern):
if node_name_pattern == '.' or node_name_pattern == '*':
return NodeInfoHelper.residing_node_name
else:
return node_name_pattern
@staticmethod
def match_node_name(node_name_pattern, target_node_name):
if node_name_pattern == '*':
return True
elif node_name_pattern == '.':
return NodeInfoHelper.residing_node_name == target_node_name
else:
return node_name_pattern == target_node_name
@staticmethod
def enumerate_nodes(node_name_pattern):
'''
enumerate nodes from node repo by pattern
'''
nodeinfos = []
if not node_name_pattern:
raise ValueError("node name pattern is invalid")
nodeinfo_repo = None
try:
nodeinfo_repo = NodeRepo(autocommit=True)
filter = {}
if node_name_pattern == '*':
pass
elif not node_name_pattern or node_name_pattern == '.':
filter = { 'NodeName': NodeInfoHelper.residing_node_name }
else:
filter = { 'NodeName': node_name_pattern }
nodeinfos = [x.NodeName for x in nodeinfo_repo.get(Status=1, **filter)]
except Exception as ex:
LOG.warning("Failed to enumerate nodes:{0}".format(str(ex)))
nodeinfos = None
finally:
if nodeinfo_repo:
del nodeinfo_repo
return nodeinfos