1
0
mirror of https://github.com/checktheroads/hyperglass synced 2024-05-11 05:55:08 +00:00

start vrf data model; move models to dedicated module

This commit is contained in:
checktheroads
2019-09-11 01:35:31 -07:00
parent 094cfbc82b
commit ad3e368246
15 changed files with 916 additions and 807 deletions

View File

@@ -0,0 +1,44 @@
"""
Defines models for Credential config variables.
Imports config variables and overrides default class attributes.
Validates input for overridden parameters.
"""
# Third Party Imports
from pydantic import BaseSettings
from pydantic import SecretStr
# Project Imports
from hyperglass.configuration.models._utils import clean_name
class Credential(BaseSettings):
"""Model for per-credential config in devices.yaml"""
username: str
password: SecretStr
class Credentials(BaseSettings):
"""Base model for credentials class"""
@classmethod
def import_params(cls, input_params):
"""
Imports passed dict from YAML config, removes unsupported
characters from device names, dynamically sets attributes for
the credentials class.
"""
obj = Credentials()
for (credname, params) in input_params.items():
cred = clean_name(credname)
setattr(Credentials, cred, Credential(**params))
return obj
class Config:
"""Pydantic Config"""
validate_all = True
validate_assignment = True