From 3c23926bdc909932fb8b9d92f546de66537b45a3 Mon Sep 17 00:00:00 2001 From: Qian Deng Date: Mon, 27 Sep 2021 07:38:29 +0000 Subject: [PATCH] Add validation for tracing * add validation of tracing in validating process Signed-off-by: Qian Deng --- make/photon/prepare/models.py | 20 +++++++++++++------- make/photon/prepare/utils/configs.py | 2 ++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/make/photon/prepare/models.py b/make/photon/prepare/models.py index 36cb1f01f..833b36508 100644 --- a/make/photon/prepare/models.py +++ b/make/photon/prepare/models.py @@ -161,8 +161,10 @@ class JaegerExporter: self.agent_port = config.get('agent_port') def validate(self): - if not self.endpoint and self.agent_host is None: - raise Exception('Jaeger Colector Endpoint or Agent host not set') + if not self.endpoint and not self.agent_host: + raise Exception('Jaeger Colector Endpoint or Agent host not set, must set one') + if self.endpoint and self.agent_host: + raise Exception('Jaeger Colector Endpoint and Agent host both set, only can set one') class OtelExporter: def __init__(self, config: dict): @@ -192,9 +194,13 @@ class Trace: self.attributes = config.get('attributes') or {} def validate(self): - if not self.jaeger.enabled and not self.enabled: + if not self.enabled: + return + if not self.jaeger.enabled and not self.otel.enabled: raise Exception('Trace enabled but no trace exporter set') - if self.jaeger.enabled: - JaegerExporter(self.jaeger).validate() - if self.otel.enabled: - OtelExporter(self.otel).validate() + elif self.jaeger.enabled and self.otel.enabled: + raise Exception('Only can have one trace exporter at a time') + elif self.jaeger.enabled: + self.jaeger.validate() + elif self.otel.enabled: + self.otel.validate() diff --git a/make/photon/prepare/utils/configs.py b/make/photon/prepare/utils/configs.py index ae1b2ad4d..58355e1ae 100644 --- a/make/photon/prepare/utils/configs.py +++ b/make/photon/prepare/utils/configs.py @@ -76,6 +76,8 @@ def validate(conf: dict, **kwargs): # TODO: # If user enable trust cert dir, need check if the files in this dir is readable. + if conf.get('trace'): + conf['trace'].validate() def parse_versions(): if not versions_file_path.is_file():