From 0cfa3472f7a2619f8dc299162ede167da733f1a3 Mon Sep 17 00:00:00 2001 From: checktheroads Date: Tue, 28 Jan 2020 10:03:51 -0700 Subject: [PATCH] move google analytics to params.web --- hyperglass/configuration/models/params.py | 1 - hyperglass/configuration/models/web.py | 24 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/hyperglass/configuration/models/params.py b/hyperglass/configuration/models/params.py index 338b1b4..5ed2135 100644 --- a/hyperglass/configuration/models/params.py +++ b/hyperglass/configuration/models/params.py @@ -51,7 +51,6 @@ class Params(HyperglassModel): "network", "isp", ] - google_analytics: StrictStr = "" requires_ipv6_cidr: List[StrictStr] = ["cisco_ios", "cisco_nxos"] request_timeout: StrictInt = 30 listen_address: Optional[Union[IPvAnyAddress, StrictStr]] diff --git a/hyperglass/configuration/models/web.py b/hyperglass/configuration/models/web.py index a21eb3e..584c5fb 100644 --- a/hyperglass/configuration/models/web.py +++ b/hyperglass/configuration/models/web.py @@ -23,6 +23,30 @@ from hyperglass.configuration.models.opengraph import OpenGraph class Web(HyperglassModel): """Validation model for params.branding.""" + class Analytics(HyperglassModel): + """Validation model for Google Analytics.""" + + enable: StrictBool = False + id: Optional[StrictStr] + + @validator("id") + def validate_id(cls, value, values): + """Ensure ID is set if analytics is enabled. + + Arguments: + value {str|None} -- Google Analytics ID + values {[type]} -- Already-validated model parameters + + Raises: + ValueError: Raised if analytics is enabled but no ID is set. + + Returns: + {str|None} -- Google Analytics ID if enabled. + """ + if values["enable"] and value is None: + raise ValueError("Analytics is enabled, but no ID is set.") + return value + class Colors(HyperglassModel): """Validation model for params.colors."""