Files
test/config/ptp/objects/ptp_config.py
croy 4c1729d066 PTP Config initial implementation
Change-Id: I138f4c7637a410234d016c2f8b9a9c8d4ec5456c
2025-02-26 14:23:58 +00:00

61 lines
1.4 KiB
Python

from typing import List
import json5
from config.ptp.objects.ptp_host import PTPHost
class PTPConfig:
"""
Class to hold configuration of the Cloud Platform's PTP Configuration.
"""
def __init__(self, config):
try:
json_data = open(config)
except FileNotFoundError:
print(f"Could not find the ptp config file: {config}")
raise
ptp_dict = json5.load(json_data)
self.ptp_hosts = []
for ptp_host in ptp_dict:
host = PTPHost(ptp_host, ptp_dict[ptp_host])
self.ptp_hosts.append(host)
def __str__(self):
"""
Returns the string representation for this class.
Returns: (str)
"""
return "PTPConfig"
def get_all_hosts(self) -> List[PTPHost]:
"""
Getter for the PTP information for every host defined in the config.
Returns:
List[PTPHost]: The list of all hosts.
"""
return self.ptp_hosts
def get_host(self, host_name: str) -> PTPHost:
"""
Getter for the PTP information about the specified host_name.
Args:
host_name (str): Name of the host in the config.
Returns:
PTPHost: PTPHost
"""
for host in self.ptp_hosts:
if host.get_name() == host_name:
return host
raise Exception(f"There is no PTP Host called {host_name} in the PTP config.")