# Info: KCL core lib server schemas for provisioning (Provisioning) # Author: JesusPerezLorenzo # Release: 0.0.4 # Date: 15-12-2023 import regex import .defaults import .lib schema Server(defaults.ServerDefaults): """ server settings """ not_use: bool = False # Hostname as reference for resource if is changed later inside server, change will not be updated in resource inventory hostname: str title: str network_private_id?: str # extra hostnames for server local resolution extra_hostnames?: [str] delete_lock: bool = False taskservs?: [lib.TaskServDef] cluster?: [lib.ClusterDef] check: len(hostname) > 0, "Check hostname value" len(title) > 0, "Check titlevalue" priv_cidr_block == Undefined or regex.match(priv_cidr_block, "^(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}\/(?:3[0-2]|[0-2]?[0-9])$"), "'priv_cidr_block = ${priv_cidr_block}' check value definition" #network_private_ip == Undefined or regex.match(network_private_ip,"^\$.*$") or regex.match(network_private_ip, "^((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$"), "'network_private_ip = ${network_private_ip}' check value definition (use $vaule or xx.xx.xx.xx)" #liveness_ip == Undefined or regex.match(liveness_ip,"^\$.*$") or regex.match(liveness_ip, "^((25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[0-1]?[0-9]?[0-9])$"), "'liveness_ip = ${liveness_ip}' check value definition (use $vaule or xx.xx.xx.xx)" # len(adm_user.password) > 0, "Check Admin User password 'adm_user.password'" # len(adm_user.email) > 0, "Check Admin User email 'adm_user.email'" # len(db.name) > 0, "Check DB name"