From 1d2008fd84df7dbbf1ffb9d4be632626a3a94512 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 26 Sep 2013 22:27:39 +0200 Subject: [PATCH] error message for ip/broadcast/netmask/network validation --- tiramisu/option.py | 20 +++- translations/fr/tiramisu.po | 227 +++++++++++++++++++----------------- translations/tiramisu.pot | 196 ++++++++++++++++--------------- 3 files changed, 240 insertions(+), 203 deletions(-) diff --git a/tiramisu/option.py b/tiramisu/option.py index 6fd0568..cf35508 100644 --- a/tiramisu/option.py +++ b/tiramisu/option.py @@ -782,7 +782,10 @@ class IPOption(Option): only_warning=only_warning) def _validate(self, value): - IP('{0}/32'.format(value)) + try: + IP('{0}/32'.format(value)) + except ValueError: + raise ValueError(_('invalid IP {0}').format(self._name)) def _second_level_validation(self, value): ip = IP('{0}/32'.format(value)) @@ -868,7 +871,10 @@ class NetworkOption(Option): _opt_type = 'network' def _validate(self, value): - IP(value) + try: + IP(value) + except ValueError: + raise ValueError(_('invalid network address {0}').format(self._name)) def _second_level_validation(self, value): ip = IP(value) @@ -882,7 +888,10 @@ class NetmaskOption(Option): _opt_type = 'netmask' def _validate(self, value): - IP('0.0.0.0/{0}'.format(value)) + try: + IP('0.0.0.0/{0}'.format(value)) + except ValueError: + raise ValueError(_('invalid netmask address {0}').format(self._name)) def _cons_network_netmask(self, optname, value, value_): #opts must be (netmask, network) options @@ -924,7 +933,10 @@ class NetmaskOption(Option): class BroadcastOption(Option): def _validate(self, value): - IP('{0}/32'.format(value)) + try: + IP('{0}/32'.format(value)) + except ValueError: + raise ValueError(_('invalid broadcast address {0}').format(self._name)) class DomainnameOption(Option): diff --git a/translations/fr/tiramisu.po b/translations/fr/tiramisu.po index e1cc0b3..a81e14e 100644 --- a/translations/fr/tiramisu.po +++ b/translations/fr/tiramisu.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-23 20:59+CEST\n" +"POT-Creation-Date: 2013-09-26 22:24+CEST\n" "PO-Revision-Date: \n" "Last-Translator: Emmanuel Garette \n" "Language-Team: LANGUAGE \n" @@ -11,270 +11,279 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.5.4\n" -#: tiramisu/autolib.py:131 +#: tiramisu/autolib.py:145 msgid "" "unable to carry out a calculation, option {0} has properties: {1} for: {2}" msgstr "" "impossible d'effectuer le calcul, l'option {0} a les propriétés : {1} pour : " "{2}" -#: tiramisu/autolib.py:140 +#: tiramisu/autolib.py:154 msgid "" "unable to carry out a calculation, option value with multi types must have " "same length for: {0}" msgstr "" -"impossible d'effectuer le calcul, la valeur d'une option avec le type multi doit " -"avoir la même longueur pour : {0}" +"impossible d'effectuer le calcul, la valeur d'une option avec le type multi " +"doit avoir la même longueur pour : {0}" -#: tiramisu/config.py:48 +#: tiramisu/config.py:52 msgid "descr must be an optiondescription, not {0}" msgstr "descr doit être une optiondescription pas un {0}" -#: tiramisu/config.py:122 +#: tiramisu/config.py:127 msgid "unknown group_type: {0}" msgstr "group_type inconnu: {0}" -#: tiramisu/config.py:158 +#: tiramisu/config.py:163 msgid "" "no option description found for this config (may be metaconfig without meta)" msgstr "" -"pas d'option description trouvé pour cette config (peut être une metaconfig sans " -"meta)" +"pas d'option description trouvé pour cette config (peut être une metaconfig " +"sans meta)" -#: tiramisu/config.py:313 +#: tiramisu/config.py:318 msgid "unknown type_ type {0}for _find" msgstr "type_ type {0} pour _find inconnu" -#: tiramisu/config.py:352 +#: tiramisu/config.py:357 msgid "no option found in config with these criteria" msgstr "aucune option trouvée dans la config avec ces critères" -#: tiramisu/config.py:402 +#: tiramisu/config.py:407 msgid "make_dict can't filtering with value without option" msgstr "make_dict ne peut filtrer sur une valeur mais sans option" -#: tiramisu/config.py:423 +#: tiramisu/config.py:428 msgid "unexpected path {0}, should start with {1}" msgstr "chemin imprévu {0}, devrait commencer par {1}" -#: tiramisu/config.py:483 +#: tiramisu/config.py:488 msgid "opt in getowner must be an option not {0}" msgstr "opt dans getowner doit être une option pas {0}" -#: tiramisu/option.py:69 +#: tiramisu/option.py:70 msgid "invalid name: {0} for option" msgstr "nom invalide : {0} pour l'option" -#: tiramisu/option.py:79 +#: tiramisu/option.py:80 msgid "invalid properties type {0} for {1}, must be a tuple" msgstr "type des properties invalide {0} pour {1}, doit être un tuple" -#: tiramisu/option.py:121 +#: tiramisu/option.py:122 msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgstr "l'attribut {2} de l'objet '{0}' ({1}) est en lecture seule" -#: tiramisu/option.py:148 tiramisu/value.py:361 +#: tiramisu/option.py:149 tiramisu/value.py:362 msgid "information's item not found: {0}" msgstr "aucune config spécifié alors que c'est nécessaire" -#: tiramisu/option.py:265 +#: tiramisu/option.py:266 msgid "cannot serialize Option, only in OptionDescription" msgstr "ne peut serialiser une Option, seulement via une OptionDescription" -#: tiramisu/option.py:364 +#: tiramisu/option.py:367 msgid "a default_multi is set whereas multi is False in option: {0}" msgstr "" -"une default_multi est renseignée alors que multi est False dans l'option : {0}" +"une default_multi est renseignée alors que multi est False dans l'option : " +"{0}" -#: tiramisu/option.py:370 +#: tiramisu/option.py:373 msgid "invalid default_multi value {0} for option {1}: {2}" msgstr "la valeur default_multi est invalide {0} pour l'option {1} : {2}" -#: tiramisu/option.py:375 +#: tiramisu/option.py:378 msgid "default value not allowed if option: {0} is calculated" msgstr "la valeur par défaut n'est pas possible si l'option {0} est calculée" -#: tiramisu/option.py:378 +#: tiramisu/option.py:381 msgid "" "params defined for a callback function but no callback defined yet for " "option {0}" msgstr "" -"params définis pour une fonction callback mais par de callback encore définis " -"pour l'option {0}" +"params définis pour une fonction callback mais par de callback encore " +"définis pour l'option {0}" -#: tiramisu/option.py:463 -msgid "validator should return a boolean, not {0}" -msgstr "le validator devrait retourner un boolean, pas un {0}" - -#: tiramisu/option.py:473 -msgid "invalid value {0} for option {1} for object {2}" -msgstr "valeur invalide {0} pour l'option {1} pour l'objet {2}" - -#: tiramisu/option.py:481 tiramisu/value.py:542 +#: tiramisu/option.py:486 tiramisu/value.py:547 msgid "invalid value {0} for option {1}: {2}" msgstr "valeur invalide {0} pour l'option {1} : {2}" -#: tiramisu/option.py:493 +#: tiramisu/option.py:506 msgid "invalid value {0} for option {1} which must be a list" msgstr "valeur invalide {0} pour l'option {1} qui doit être une liste" -#: tiramisu/option.py:562 +#: tiramisu/option.py:577 msgid "invalid value {0} for option {1} must be different as {2} option" msgstr "" "valeur invalide {0} pour l'option {1} doit être différente de l'option {2}" -#: tiramisu/option.py:618 +#: tiramisu/option.py:636 msgid "values must be a tuple for {0}" msgstr "values doit être un tuple pour {0}" -#: tiramisu/option.py:621 +#: tiramisu/option.py:639 msgid "open_values must be a boolean for {0}" msgstr "open_values doit être un booléen pour {0}" -#: tiramisu/option.py:642 +#: tiramisu/option.py:661 msgid "value {0} is not permitted, only {1} is allowed" msgstr "valeur {0} n'est pas permis, seules {1} sont autorisées" -#: tiramisu/option.py:654 +#: tiramisu/option.py:673 msgid "value must be a boolean" msgstr "valeur doit être un booléen" -#: tiramisu/option.py:664 +#: tiramisu/option.py:683 msgid "value must be an integer" msgstr "valeur doit être un nombre entier" -#: tiramisu/option.py:674 +#: tiramisu/option.py:693 msgid "value must be a float" msgstr "valeur doit être un nombre flottant" -#: tiramisu/option.py:684 +#: tiramisu/option.py:703 msgid "value must be a string, not {0}" msgstr "valeur doit être une chaîne, pas {0}" -#: tiramisu/option.py:702 +#: tiramisu/option.py:721 msgid "value must be an unicode" msgstr "valeur doit être une valeur unicode" -#: tiramisu/option.py:714 +#: tiramisu/option.py:733 msgid "malformed symlinkoption must be an option for symlink {0}" msgstr "symlinkoption mal formé, doit être une option pour symlink {0}" -#: tiramisu/option.py:766 +#: tiramisu/option.py:788 +msgid "invalid IP {0}" +msgstr "adresse IP invalide {0}" + +#: tiramisu/option.py:793 msgid "IP mustn't not be in reserved class" msgstr "IP ne doit pas être d'une classe reservée" -#: tiramisu/option.py:768 +#: tiramisu/option.py:795 msgid "IP must be in private class" msgstr "IP doit être dans la classe privée" -#: tiramisu/option.py:806 +#: tiramisu/option.py:833 msgid "inconsistency in allowed range" msgstr "inconsistence dans la plage autorisée" -#: tiramisu/option.py:811 +#: tiramisu/option.py:838 msgid "max value is empty" msgstr "la valeur maximum est vide" -#: tiramisu/option.py:848 +#: tiramisu/option.py:877 +msgid "invalid network address {0}" +msgstr "adresse réseau invalide {0}" + +#: tiramisu/option.py:882 msgid "network shall not be in reserved class" msgstr "le réseau ne doit pas être dans la classe reservée" -#: tiramisu/option.py:880 +#: tiramisu/option.py:894 +msgid "invalid netmask address {0}" +msgstr "masque de sous-réseau invalide {0}" + +#: tiramisu/option.py:916 msgid "invalid network {0} ({1}) with netmask {2} ({3}), this network is an IP" msgstr "réseau invalide {0} ({1}) avec masque {2} ({3}), ce réseau est une IP" -#: tiramisu/option.py:885 +#: tiramisu/option.py:921 msgid "invalid IP {0} ({1}) with netmask {2} ({3}), this IP is a network" msgstr "IP invalide {0} ({1}) avec masque {2} ({3}), cette IP est un réseau" -#: tiramisu/option.py:890 +#: tiramisu/option.py:926 msgid "invalid IP {0} ({1}) with netmask {2} ({3})" msgstr "IP invalide {0} ({1}) avec masque {2} ({3})" -#: tiramisu/option.py:892 +#: tiramisu/option.py:928 msgid "invalid network {0} ({1}) with netmask {2} ({3})" msgstr "réseau invalide {0} ({1}) avec masque {2} ({3})" -#: tiramisu/option.py:912 +#: tiramisu/option.py:939 +msgid "invalid broadcast address {0}" +msgstr "adresse de broadcast invalide {0}" + +#: tiramisu/option.py:957 msgid "unknown type_ {0} for hostname" msgstr "type_ inconnu {0} pour le nom d'hôte" -#: tiramisu/option.py:915 +#: tiramisu/option.py:960 msgid "allow_ip must be a boolean" msgstr "allow_ip doit être un booléen" -#: tiramisu/option.py:944 +#: tiramisu/option.py:990 msgid "invalid value for {0}, must have dot" msgstr "valeur invalide pour {0}, doit avoir un point" -#: tiramisu/option.py:947 +#: tiramisu/option.py:993 msgid "invalid domainname's length for {0} (max {1})" msgstr "longueur du nom de domaine invalide pour {0} (maximum {1})" -#: tiramisu/option.py:950 +#: tiramisu/option.py:996 msgid "invalid domainname's length for {0} (min 2)" msgstr "longueur du nom de domaine invalide pour {0} (minimum 2)" -#: tiramisu/option.py:954 +#: tiramisu/option.py:1000 msgid "invalid domainname" msgstr "nom de domaine invalide" -#: tiramisu/option.py:981 +#: tiramisu/option.py:1027 msgid "duplicate option name: {0}" msgstr "nom de l'option dupliqué : {0}" -#: tiramisu/option.py:998 +#: tiramisu/option.py:1044 msgid "unknown Option {0} in OptionDescription {1}" msgstr "Option {0} inconnue pour l'OptionDescription {1}" -#: tiramisu/option.py:1049 +#: tiramisu/option.py:1095 msgid "duplicate option: {0}" msgstr "option dupliquée : {0}" -#: tiramisu/option.py:1083 +#: tiramisu/option.py:1129 msgid "no option for path {0}" msgstr "pas d'option pour le chemin {0}" -#: tiramisu/option.py:1089 +#: tiramisu/option.py:1135 msgid "no option {0} found" msgstr "pas d'option {0} trouvée" -#: tiramisu/option.py:1099 +#: tiramisu/option.py:1145 msgid "cannot change group_type if already set (old {0}, new {1})" msgstr "ne peut changer group_type si déjà spécifié (ancien {0}, nouveau {1})" -#: tiramisu/option.py:1112 +#: tiramisu/option.py:1158 msgid "master group {0} shall not have a subgroup" msgstr "groupe maître {0} ne doit pas avoir de sous-groupe" -#: tiramisu/option.py:1115 +#: tiramisu/option.py:1161 msgid "master group {0} shall not have a symlinkoption" msgstr "groupe maître {0} ne doit pas avoir de symlinkoption" -#: tiramisu/option.py:1118 +#: tiramisu/option.py:1164 msgid "not allowed option {0} in group {1}: this option is not a multi" msgstr "" "option non autorisée {0} dans le groupe {1} : cette option n'est pas une " "multi" -#: tiramisu/option.py:1129 +#: tiramisu/option.py:1175 msgid "master group with wrong master name for {0}" msgstr "le groupe maître avec un nom de maître érroné pour {0}" -#: tiramisu/option.py:1138 +#: tiramisu/option.py:1184 msgid "no child has same nom has master group for: {0}" msgstr "pas d'enfant avec le nom du groupe maître pour {0} " -#: tiramisu/option.py:1141 +#: tiramisu/option.py:1187 msgid "group_type: {0} not allowed" msgstr "group_type : {0} non autorisé" -#: tiramisu/option.py:1231 +#: tiramisu/option.py:1277 msgid "malformed requirements type for option: {0}, must be a dict" msgstr "" "type requirements malformé pour l'option : {0}, doit être un dictionnaire" -#: tiramisu/option.py:1248 +#: tiramisu/option.py:1294 msgid "" "malformed requirements for option: {0} require must have option, expected " "and action keys" @@ -282,64 +291,66 @@ msgstr "" "requirements malformé pour l'option : {0} l'exigence doit avoir les clefs " "option, expected et action" -#: tiramisu/option.py:1253 +#: tiramisu/option.py:1299 msgid "malformed requirements for option: {0} inverse must be boolean" -msgstr "requirements mal formés pour l'option : {0} inverse doit être un booléen" +msgstr "" +"requirements mal formés pour l'option : {0} inverse doit être un booléen" -#: tiramisu/option.py:1257 +#: tiramisu/option.py:1303 msgid "malformed requirements for option: {0} transitive must be boolean" -msgstr "requirements mal formés pour l'option : {0} transitive doit être booléen" +msgstr "" +"requirements mal formés pour l'option : {0} transitive doit être booléen" -#: tiramisu/option.py:1261 +#: tiramisu/option.py:1307 msgid "malformed requirements for option: {0} same_action must be boolean" msgstr "" "requirements mal formés pour l'option : {0} same_action doit être un booléen" -#: tiramisu/option.py:1265 +#: tiramisu/option.py:1311 msgid "malformed requirements must be an option in option {0}" msgstr "requirements mal formés doit être une option dans l'option {0}" -#: tiramisu/option.py:1268 +#: tiramisu/option.py:1314 msgid "malformed requirements option {0} should not be a multi" msgstr "requirements mal formés l'option {0} ne doit pas être une multi" -#: tiramisu/option.py:1274 +#: tiramisu/option.py:1320 msgid "" "malformed requirements second argument must be valid for option {0}: {1}" msgstr "" -"requirements mal formés deuxième argument doit être valide pour l'option {0} : " -"{1}" +"requirements mal formés deuxième argument doit être valide pour l'option " +"{0} : {1}" -#: tiramisu/option.py:1279 +#: tiramisu/option.py:1325 msgid "inconsistency in action types for option: {0} action: {1}" msgstr "incohérence dans les types action pour l'option : {0} action {1}" -#: tiramisu/option.py:1304 +#: tiramisu/option.py:1350 msgid "{0} should be a function" msgstr "{0} doit être une fonction" -#: tiramisu/option.py:1307 +#: tiramisu/option.py:1353 msgid "{0}_params should be a dict" msgstr "{0}_params devrait être un dict" -#: tiramisu/option.py:1310 +#: tiramisu/option.py:1356 msgid "{0}_params with key {1} should not have length different to 1" msgstr "" "{0}_params avec la clef {1} devrait ne pas avoir une longueur différent de 1" -#: tiramisu/option.py:1314 +#: tiramisu/option.py:1360 msgid "{0}_params should be tuple for key \"{1}\"" msgstr "{0}_params devrait être un tuple pour la clef \"{1}\"" -#: tiramisu/option.py:1320 +#: tiramisu/option.py:1366 msgid "validator not support tuple" msgstr "validator n'accepte pas de tuple" -#: tiramisu/option.py:1323 +#: tiramisu/option.py:1369 msgid "{0}_params should have an option not a {0} for first argument" msgstr "{0}_params devrait avoir une option pas un {0} pour premier argument" -#: tiramisu/option.py:1327 +#: tiramisu/option.py:1373 msgid "{0}_params should have a boolean not a {0} for second argument" msgstr "{0}_params devrait avoir un boolean pas un {0} pour second argument" @@ -379,7 +390,7 @@ msgstr "tentative d'accès à une option nommée : {0} avec les propriétés {1} msgid "permissive must be a tuple" msgstr "permissive doit être un tuple" -#: tiramisu/setting.py:471 tiramisu/value.py:300 +#: tiramisu/setting.py:471 tiramisu/value.py:301 msgid "invalid generic owner {0}" msgstr "invalide owner générique {0}" @@ -416,48 +427,54 @@ msgstr "session déjà utilisée" msgid "a dictionary cannot be persistent" msgstr "un espace de stockage dictionary ne peut être persistant" -#: tiramisu/value.py:307 +#: tiramisu/value.py:308 msgid "no value for {0} cannot change owner to {1}" msgstr "pas de valeur pour {0} ne peut changer d'utilisateur pour {1}" -#: tiramisu/value.py:414 +#: tiramisu/value.py:416 msgid "invalid len for the slave: {0} which has {1} as master" msgstr "longueur invalide pour une esclave : {0} qui a {1} comme maître" -#: tiramisu/value.py:438 +#: tiramisu/value.py:440 msgid "invalid len for the master: {0} which has {1} as slave with greater len" msgstr "" "longueur invalide pour un maître : {0} qui a {1} une esclave avec une plus " "grande longueur" -#: tiramisu/value.py:468 +#: tiramisu/value.py:470 msgid "cannot append a value on a multi option {0} which is a slave" msgstr "ne peut ajouter une valeur sur l'option multi {0} qui est une esclave" -#: tiramisu/value.py:503 +#: tiramisu/value.py:507 msgid "cannot sort multi option {0} if master or slave" msgstr "ne peut trier une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:507 +#: tiramisu/value.py:511 msgid "cmp is not permitted in python v3 or greater" msgstr "cmp n'est pas permis en python v3 ou supérieure" -#: tiramisu/value.py:516 +#: tiramisu/value.py:520 msgid "cannot reverse multi option {0} if master or slave" msgstr "ne peut inverser une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:524 +#: tiramisu/value.py:528 msgid "cannot insert multi option {0} if master or slave" msgstr "ne peut insérer une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:532 +#: tiramisu/value.py:536 msgid "cannot extend multi option {0} if master or slave" msgstr "ne peut étendre une option multi {0} pour une maître ou une esclave" -#: tiramisu/value.py:559 +#: tiramisu/value.py:564 msgid "cannot pop a value on a multi option {0} which is a slave" msgstr "ne peut supprimer une valeur dans l'option multi {0} qui est esclave" +#~ msgid "validator should return a boolean, not {0}" +#~ msgstr "le validator devrait retourner un boolean, pas un {0}" + +#~ msgid "invalid value {0} for option {1} for object {2}" +#~ msgstr "valeur invalide {0} pour l'option {1} pour l'objet {2}" + #~ msgid "no config specified but needed" #~ msgstr "aucune config spécifié alors que c'est nécessaire" diff --git a/translations/tiramisu.pot b/translations/tiramisu.pot index 8b37d6a..7304c9f 100644 --- a/translations/tiramisu.pot +++ b/translations/tiramisu.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2013-09-23 20:59+CEST\n" +"POT-Creation-Date: 2013-09-26 22:24+CEST\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -15,307 +15,315 @@ msgstr "" "Generated-By: pygettext.py 1.5\n" -#: tiramisu/autolib.py:131 +#: tiramisu/autolib.py:145 msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}" msgstr "" -#: tiramisu/autolib.py:140 +#: tiramisu/autolib.py:154 msgid "unable to carry out a calculation, option value with multi types must have same length for: {0}" msgstr "" -#: tiramisu/config.py:48 +#: tiramisu/config.py:52 msgid "descr must be an optiondescription, not {0}" msgstr "" -#: tiramisu/config.py:122 +#: tiramisu/config.py:127 msgid "unknown group_type: {0}" msgstr "" -#: tiramisu/config.py:158 +#: tiramisu/config.py:163 msgid "no option description found for this config (may be metaconfig without meta)" msgstr "" -#: tiramisu/config.py:313 +#: tiramisu/config.py:318 msgid "unknown type_ type {0}for _find" msgstr "" -#: tiramisu/config.py:352 +#: tiramisu/config.py:357 msgid "no option found in config with these criteria" msgstr "" -#: tiramisu/config.py:402 +#: tiramisu/config.py:407 msgid "make_dict can't filtering with value without option" msgstr "" -#: tiramisu/config.py:423 +#: tiramisu/config.py:428 msgid "unexpected path {0}, should start with {1}" msgstr "" -#: tiramisu/config.py:483 +#: tiramisu/config.py:488 msgid "opt in getowner must be an option not {0}" msgstr "" -#: tiramisu/option.py:69 +#: tiramisu/option.py:70 msgid "invalid name: {0} for option" msgstr "" -#: tiramisu/option.py:79 +#: tiramisu/option.py:80 msgid "invalid properties type {0} for {1}, must be a tuple" msgstr "" -#: tiramisu/option.py:121 +#: tiramisu/option.py:122 msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgstr "" -#: tiramisu/option.py:148 tiramisu/value.py:361 +#: tiramisu/option.py:149 tiramisu/value.py:362 msgid "information's item not found: {0}" msgstr "" -#: tiramisu/option.py:265 +#: tiramisu/option.py:266 msgid "cannot serialize Option, only in OptionDescription" msgstr "" -#: tiramisu/option.py:364 +#: tiramisu/option.py:367 msgid "a default_multi is set whereas multi is False in option: {0}" msgstr "" -#: tiramisu/option.py:370 +#: tiramisu/option.py:373 msgid "invalid default_multi value {0} for option {1}: {2}" msgstr "" -#: tiramisu/option.py:375 +#: tiramisu/option.py:378 msgid "default value not allowed if option: {0} is calculated" msgstr "" -#: tiramisu/option.py:378 +#: tiramisu/option.py:381 msgid "params defined for a callback function but no callback defined yet for option {0}" msgstr "" -#: tiramisu/option.py:463 -msgid "validator should return a boolean, not {0}" -msgstr "" - -#: tiramisu/option.py:473 -msgid "invalid value {0} for option {1} for object {2}" -msgstr "" - -#: tiramisu/option.py:481 tiramisu/value.py:542 +#: tiramisu/option.py:486 tiramisu/value.py:547 msgid "invalid value {0} for option {1}: {2}" msgstr "" -#: tiramisu/option.py:493 +#: tiramisu/option.py:506 msgid "invalid value {0} for option {1} which must be a list" msgstr "" -#: tiramisu/option.py:562 +#: tiramisu/option.py:577 msgid "invalid value {0} for option {1} must be different as {2} option" msgstr "" -#: tiramisu/option.py:618 +#: tiramisu/option.py:636 msgid "values must be a tuple for {0}" msgstr "" -#: tiramisu/option.py:621 +#: tiramisu/option.py:639 msgid "open_values must be a boolean for {0}" msgstr "" -#: tiramisu/option.py:642 +#: tiramisu/option.py:661 msgid "value {0} is not permitted, only {1} is allowed" msgstr "" -#: tiramisu/option.py:654 +#: tiramisu/option.py:673 msgid "value must be a boolean" msgstr "" -#: tiramisu/option.py:664 +#: tiramisu/option.py:683 msgid "value must be an integer" msgstr "" -#: tiramisu/option.py:674 +#: tiramisu/option.py:693 msgid "value must be a float" msgstr "" -#: tiramisu/option.py:684 +#: tiramisu/option.py:703 msgid "value must be a string, not {0}" msgstr "" -#: tiramisu/option.py:702 +#: tiramisu/option.py:721 msgid "value must be an unicode" msgstr "" -#: tiramisu/option.py:714 +#: tiramisu/option.py:733 msgid "malformed symlinkoption must be an option for symlink {0}" msgstr "" -#: tiramisu/option.py:766 +#: tiramisu/option.py:788 +msgid "invalid IP {0}" +msgstr "" + +#: tiramisu/option.py:793 msgid "IP mustn't not be in reserved class" msgstr "" -#: tiramisu/option.py:768 +#: tiramisu/option.py:795 msgid "IP must be in private class" msgstr "" -#: tiramisu/option.py:806 +#: tiramisu/option.py:833 msgid "inconsistency in allowed range" msgstr "" -#: tiramisu/option.py:811 +#: tiramisu/option.py:838 msgid "max value is empty" msgstr "" -#: tiramisu/option.py:848 +#: tiramisu/option.py:877 +msgid "invalid network address {0}" +msgstr "" + +#: tiramisu/option.py:882 msgid "network shall not be in reserved class" msgstr "" -#: tiramisu/option.py:880 +#: tiramisu/option.py:894 +msgid "invalid netmask address {0}" +msgstr "" + +#: tiramisu/option.py:916 msgid "invalid network {0} ({1}) with netmask {2} ({3}), this network is an IP" msgstr "" -#: tiramisu/option.py:885 +#: tiramisu/option.py:921 msgid "invalid IP {0} ({1}) with netmask {2} ({3}), this IP is a network" msgstr "" -#: tiramisu/option.py:890 +#: tiramisu/option.py:926 msgid "invalid IP {0} ({1}) with netmask {2} ({3})" msgstr "" -#: tiramisu/option.py:892 +#: tiramisu/option.py:928 msgid "invalid network {0} ({1}) with netmask {2} ({3})" msgstr "" -#: tiramisu/option.py:912 +#: tiramisu/option.py:939 +msgid "invalid broadcast address {0}" +msgstr "" + +#: tiramisu/option.py:957 msgid "unknown type_ {0} for hostname" msgstr "" -#: tiramisu/option.py:915 +#: tiramisu/option.py:960 msgid "allow_ip must be a boolean" msgstr "" -#: tiramisu/option.py:944 +#: tiramisu/option.py:990 msgid "invalid value for {0}, must have dot" msgstr "" -#: tiramisu/option.py:947 +#: tiramisu/option.py:993 msgid "invalid domainname's length for {0} (max {1})" msgstr "" -#: tiramisu/option.py:950 +#: tiramisu/option.py:996 msgid "invalid domainname's length for {0} (min 2)" msgstr "" -#: tiramisu/option.py:954 +#: tiramisu/option.py:1000 msgid "invalid domainname" msgstr "" -#: tiramisu/option.py:981 +#: tiramisu/option.py:1027 msgid "duplicate option name: {0}" msgstr "" -#: tiramisu/option.py:998 +#: tiramisu/option.py:1044 msgid "unknown Option {0} in OptionDescription {1}" msgstr "" -#: tiramisu/option.py:1049 +#: tiramisu/option.py:1095 msgid "duplicate option: {0}" msgstr "" -#: tiramisu/option.py:1083 +#: tiramisu/option.py:1129 msgid "no option for path {0}" msgstr "" -#: tiramisu/option.py:1089 +#: tiramisu/option.py:1135 msgid "no option {0} found" msgstr "" -#: tiramisu/option.py:1099 +#: tiramisu/option.py:1145 msgid "cannot change group_type if already set (old {0}, new {1})" msgstr "" -#: tiramisu/option.py:1112 +#: tiramisu/option.py:1158 msgid "master group {0} shall not have a subgroup" msgstr "" -#: tiramisu/option.py:1115 +#: tiramisu/option.py:1161 msgid "master group {0} shall not have a symlinkoption" msgstr "" -#: tiramisu/option.py:1118 +#: tiramisu/option.py:1164 msgid "not allowed option {0} in group {1}: this option is not a multi" msgstr "" -#: tiramisu/option.py:1129 +#: tiramisu/option.py:1175 msgid "master group with wrong master name for {0}" msgstr "" -#: tiramisu/option.py:1138 +#: tiramisu/option.py:1184 msgid "no child has same nom has master group for: {0}" msgstr "" -#: tiramisu/option.py:1141 +#: tiramisu/option.py:1187 msgid "group_type: {0} not allowed" msgstr "" -#: tiramisu/option.py:1231 +#: tiramisu/option.py:1277 msgid "malformed requirements type for option: {0}, must be a dict" msgstr "" -#: tiramisu/option.py:1248 +#: tiramisu/option.py:1294 msgid "malformed requirements for option: {0} require must have option, expected and action keys" msgstr "" -#: tiramisu/option.py:1253 +#: tiramisu/option.py:1299 msgid "malformed requirements for option: {0} inverse must be boolean" msgstr "" -#: tiramisu/option.py:1257 +#: tiramisu/option.py:1303 msgid "malformed requirements for option: {0} transitive must be boolean" msgstr "" -#: tiramisu/option.py:1261 +#: tiramisu/option.py:1307 msgid "malformed requirements for option: {0} same_action must be boolean" msgstr "" -#: tiramisu/option.py:1265 +#: tiramisu/option.py:1311 msgid "malformed requirements must be an option in option {0}" msgstr "" -#: tiramisu/option.py:1268 +#: tiramisu/option.py:1314 msgid "malformed requirements option {0} should not be a multi" msgstr "" -#: tiramisu/option.py:1274 +#: tiramisu/option.py:1320 msgid "malformed requirements second argument must be valid for option {0}: {1}" msgstr "" -#: tiramisu/option.py:1279 +#: tiramisu/option.py:1325 msgid "inconsistency in action types for option: {0} action: {1}" msgstr "" -#: tiramisu/option.py:1304 +#: tiramisu/option.py:1350 msgid "{0} should be a function" msgstr "" -#: tiramisu/option.py:1307 +#: tiramisu/option.py:1353 msgid "{0}_params should be a dict" msgstr "" -#: tiramisu/option.py:1310 +#: tiramisu/option.py:1356 msgid "{0}_params with key {1} should not have length different to 1" msgstr "" -#: tiramisu/option.py:1314 +#: tiramisu/option.py:1360 msgid "{0}_params should be tuple for key \"{1}\"" msgstr "" -#: tiramisu/option.py:1320 +#: tiramisu/option.py:1366 msgid "validator not support tuple" msgstr "" -#: tiramisu/option.py:1323 +#: tiramisu/option.py:1369 msgid "{0}_params should have an option not a {0} for first argument" msgstr "" -#: tiramisu/option.py:1327 +#: tiramisu/option.py:1373 msgid "{0}_params should have a boolean not a {0} for second argument" msgstr "" @@ -351,7 +359,7 @@ msgstr "" msgid "permissive must be a tuple" msgstr "" -#: tiramisu/setting.py:471 tiramisu/value.py:300 +#: tiramisu/setting.py:471 tiramisu/value.py:301 msgid "invalid generic owner {0}" msgstr "" @@ -383,43 +391,43 @@ msgstr "" msgid "a dictionary cannot be persistent" msgstr "" -#: tiramisu/value.py:307 +#: tiramisu/value.py:308 msgid "no value for {0} cannot change owner to {1}" msgstr "" -#: tiramisu/value.py:414 +#: tiramisu/value.py:416 msgid "invalid len for the slave: {0} which has {1} as master" msgstr "" -#: tiramisu/value.py:438 +#: tiramisu/value.py:440 msgid "invalid len for the master: {0} which has {1} as slave with greater len" msgstr "" -#: tiramisu/value.py:468 +#: tiramisu/value.py:470 msgid "cannot append a value on a multi option {0} which is a slave" msgstr "" -#: tiramisu/value.py:503 +#: tiramisu/value.py:507 msgid "cannot sort multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:507 +#: tiramisu/value.py:511 msgid "cmp is not permitted in python v3 or greater" msgstr "" -#: tiramisu/value.py:516 +#: tiramisu/value.py:520 msgid "cannot reverse multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:524 +#: tiramisu/value.py:528 msgid "cannot insert multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:532 +#: tiramisu/value.py:536 msgid "cannot extend multi option {0} if master or slave" msgstr "" -#: tiramisu/value.py:559 +#: tiramisu/value.py:564 msgid "cannot pop a value on a multi option {0} which is a slave" msgstr ""