domainname must not be an IP

This commit is contained in:
Emmanuel Garette 2016-08-31 15:50:10 +02:00
parent 6cfa0fc216
commit 3a5b1090c7
4 changed files with 584 additions and 552 deletions

View file

@ -34,6 +34,7 @@ def test_domainname():
c.f = 'd' c.f = 'd'
c.f = 'd.t' c.f = 'd.t'
# #
raises(ValueError, "c.f = '192.168.1.1'")
c.g = 'toto.com' c.g = 'toto.com'
c.g = '192.168.1.0' c.g = '192.168.1.0'
c.g = '192.168.1.29' c.g = '192.168.1.29'
@ -95,6 +96,7 @@ def test_domainname_warning():
c.f = 'd' c.f = 'd'
c.f = 'd.t' c.f = 'd.t'
# #
raises(ValueError, "c.f = '192.168.1.1'")
c.g = 'toto.com' c.g = 'toto.com'
c.g = '192.168.1.0' c.g = '192.168.1.0'
c.g = '192.168.1.29' c.g = '192.168.1.29'

View file

@ -503,6 +503,13 @@ class DomainnameOption(Option):
return return
except ValueError: except ValueError:
pass pass
else:
try:
IP('{0}/32'.format(value))
except ValueError:
pass
else:
raise ValueError(_('invalid domainname, must not be an IP'))
if self._get_extra('_dom_type') == 'netbios': if self._get_extra('_dom_type') == 'netbios':
part_name_length = 15 part_name_length = 15
else: else:

File diff suppressed because it is too large Load diff

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2015-10-12 17:04+CEST\n" "POT-Creation-Date: 2016-08-31 15:38+CEST\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -15,128 +15,132 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n" "Generated-By: pygettext.py 1.5\n"
#: tiramisu/autolib.py:176 #: tiramisu/autolib.py:171
msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}" msgid "unable to carry out a calculation, option {0} has properties: {1} for: {2}"
msgstr "" msgstr ""
#: tiramisu/config.py:61 #: tiramisu/autolib.py:239
msgid "callback cannot return a list for a slave option ({0})"
msgstr ""
#: tiramisu/config.py:64
msgid "descr must be an optiondescription, not {0}" msgid "descr must be an optiondescription, not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:141 #: tiramisu/config.py:148
msgid "unknown group_type: {0}" msgid "unknown group_type: {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:180 tiramisu/setting.py:326 tiramisu/value.py:54 #: tiramisu/config.py:187 tiramisu/setting.py:334 tiramisu/value.py:54
#: tiramisu/value.py:645 #: tiramisu/value.py:742
msgid "the context does not exist anymore" msgid "the context does not exist anymore"
msgstr "" msgstr ""
#: tiramisu/config.py:185 #: tiramisu/config.py:192
msgid "no option description found for this config (may be GroupConfig)" msgid "no option description found for this config (may be GroupConfig)"
msgstr "" msgstr ""
#: tiramisu/config.py:213 #: tiramisu/config.py:228
msgid "can't assign to an OptionDescription" msgid "can't assign to an OptionDescription"
msgstr "" msgstr ""
#: tiramisu/config.py:342 #: tiramisu/config.py:379
msgid "unknown type_ type {0}for _find" msgid "unknown type_ type {0}for _find"
msgstr "" msgstr ""
#: tiramisu/config.py:382 #: tiramisu/config.py:422
msgid "no option found in config with these criteria" msgid "no option found in config with these criteria"
msgstr "" msgstr ""
#: tiramisu/config.py:432 #: tiramisu/config.py:470
msgid "make_dict can't filtering with value without option" msgid "make_dict can't filtering with value without option"
msgstr "" msgstr ""
#: tiramisu/config.py:451 #: tiramisu/config.py:493
msgid "unexpected path {0}, should start with {1}" msgid "unexpected path {0}, should start with {1}"
msgstr "" msgstr ""
#: tiramisu/config.py:522 #: tiramisu/config.py:567
msgid "opt in getowner must be an option not {0}" msgid "opt in getowner must be an option not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:567 #: tiramisu/config.py:615
msgid "cannot serialize Config with MetaConfig" msgid "cannot serialize Config with MetaConfig"
msgstr "" msgstr ""
#: tiramisu/config.py:581 #: tiramisu/config.py:629
msgid "this storage is not serialisable, could be a none persistent storage" msgid "this storage is not serialisable, could be a none persistent storage"
msgstr "" msgstr ""
#: tiramisu/config.py:645 #: tiramisu/config.py:693
msgid "invalid name: {0} for config" msgid "invalid name: {0} for config"
msgstr "" msgstr ""
#: tiramisu/config.py:676 #: tiramisu/config.py:724
msgid "groupconfig's children must be a list" msgid "groupconfig's children must be a list"
msgstr "" msgstr ""
#: tiramisu/config.py:680 #: tiramisu/config.py:728
msgid "groupconfig's children must be Config, MetaConfig or GroupConfig" msgid "groupconfig's children must be Config, MetaConfig or GroupConfig"
msgstr "" msgstr ""
#: tiramisu/config.py:683 #: tiramisu/config.py:731
msgid "name must be set to config before creating groupconfig" msgid "name must be set to config before creating groupconfig"
msgstr "" msgstr ""
#: tiramisu/config.py:691 #: tiramisu/config.py:737
msgid "config name must be uniq in groupconfig for {0}" msgid "config name must be uniq in groupconfig for {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:806 #: tiramisu/config.py:846
msgid "metaconfig's children should be config, not {0}" msgid "metaconfig's children should be config, not {0}"
msgstr "" msgstr ""
#: tiramisu/config.py:810 #: tiramisu/config.py:850
msgid "child has already a metaconfig's" msgid "child has already a metaconfig's"
msgstr "" msgstr ""
#: tiramisu/config.py:814 #: tiramisu/config.py:854
msgid "all config in metaconfig must have the same optiondescription" msgid "all config in metaconfig must have the same optiondescription"
msgstr "" msgstr ""
#: tiramisu/config.py:826 #: tiramisu/config.py:869
msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config" msgid "force_default, force_default_if_same or force_dont_change_value cannot be set with only_config"
msgstr "" msgstr ""
#: tiramisu/config.py:832 #: tiramisu/config.py:875
msgid "force_default and force_dont_change_value cannot be set together" msgid "force_default and force_dont_change_value cannot be set together"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:57 #: tiramisu/option/baseoption.py:56
msgid "{0} must be a function" msgid "{0} must be a function"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:60 #: tiramisu/option/baseoption.py:59
msgid "{0}_params must be a dict" msgid "{0}_params must be a dict"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:63 #: tiramisu/option/baseoption.py:62
msgid "{0}_params with key {1} mustn't have length different to 1" msgid "{0}_params with key {1} mustn't have length different to 1"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:67 #: tiramisu/option/baseoption.py:66
msgid "{0}_params must be tuple for key \"{1}\"" msgid "{0}_params must be tuple for key \"{1}\""
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:73 #: tiramisu/option/baseoption.py:72
msgid "{0}_params with length of tuple as 1 must only have None as first value" msgid "{0}_params with length of tuple as 1 must only have None as first value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:77 #: tiramisu/option/baseoption.py:76
msgid "{0}_params must only have 1 or 2 as length" msgid "{0}_params must only have 1 or 2 as length"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:83 #: tiramisu/option/baseoption.py:82
msgid "{0}_params must have an option not a {0} for first argument" msgid "{0}_params must have an option not a {0} for first argument"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:87 #: tiramisu/option/baseoption.py:86
msgid "{0}_params must have a boolean not a {0} for second argument" msgid "{0}_params must have a boolean not a {0} for second argument"
msgstr "" msgstr ""
@ -144,155 +148,155 @@ msgstr ""
msgid "invalid name: {0} for option" msgid "invalid name: {0} for option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:111 #: tiramisu/option/baseoption.py:105
msgid "a default_multi is set whereas multi is False in option: {0}" msgid "default_multi is set whereas multi is False in option: {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:122 #: tiramisu/option/baseoption.py:117
msgid "invalid multi value"
msgstr ""
#: tiramisu/option/baseoption.py:127
msgid "invalid properties type {0} for {1}, must be a tuple" msgid "invalid properties type {0} for {1}, must be a tuple"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:147 #: tiramisu/option/baseoption.py:156
msgid "params defined for a callback function but no callback defined yet for option {0}" msgid "params defined for a callback function but no callback defined yet for option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:152 #: tiramisu/option/baseoption.py:161
msgid "a callback is already set for option {0}, cannot set another one's" msgid "a callback is already set for option {0}, cannot set another one's"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:279 #: tiramisu/option/baseoption.py:245
msgid "cannot serialize Option, only in OptionDescription" msgid "cannot serialize Option, only in OptionDescription"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:365 #: tiramisu/option/baseoption.py:326 tiramisu/storage/dictionary/option.py:117
msgid "'{0}' ({1}) object attribute '{2}' is read-only" msgid "'{0}' ({1}) object attribute '{2}' is read-only"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:391 #: tiramisu/option/baseoption.py:350 tiramisu/option/option.py:145
msgid "invalid string"
msgstr ""
#: tiramisu/option/baseoption.py:353
msgid "invalid unicode or string" msgid "invalid unicode or string"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:551 tiramisu/option/baseoption.py:592 #: tiramisu/option/baseoption.py:493 tiramisu/option/baseoption.py:526
msgid "invalid value for option {0}: {1}" msgid "invalid value for option {0}: {1}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:560 #: tiramisu/option/baseoption.py:500
msgid "do_validation for {0}: error in value" msgid "do_validation for {0}: error in value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:566 #: tiramisu/option/baseoption.py:518
msgid "do_validation for {0}: warning in value"
msgstr ""
#: tiramisu/option/baseoption.py:576
msgid "do_validation for {0}: error in consistency"
msgstr ""
#: tiramisu/option/baseoption.py:580
msgid "do_validation for {0}: warning in consistency"
msgstr ""
#: tiramisu/option/baseoption.py:584
msgid "warning on the value of the option {0}: {1}" msgid "warning on the value of the option {0}: {1}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:604 tiramisu/option/baseoption.py:613 #: tiramisu/option/baseoption.py:540 tiramisu/option/baseoption.py:550
msgid "invalid value {0} for option {1} which must be a list" msgid "invalid value {0} for option {1} which must be a list"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:619 #: tiramisu/option/baseoption.py:556
msgid "invalid value {0} for option {1} which must be a list of list" msgid "invalid value {0} for option {1} which must be a list of list"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:672 #: tiramisu/option/baseoption.py:599 tiramisu/option/baseoption.py:603
msgid "'{0}' ({1}) cannot add consistency, option is read-only" msgid "cannot add consistency with submulti option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:684 #: tiramisu/option/baseoption.py:605
msgid "unknow parameter {0} in consistency"
msgstr ""
#: tiramisu/option/baseoption.py:691
msgid "consistency must be set with an option" msgid "consistency must be set with an option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:694 tiramisu/option/baseoption.py:701 #: tiramisu/option/baseoption.py:608 tiramisu/option/baseoption.py:615
msgid "almost one option in consistency is in a dynoptiondescription but not all" msgid "almost one option in consistency is in a dynoptiondescription but not all"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:697 #: tiramisu/option/baseoption.py:611
msgid "option in consistency must be in same dynoptiondescription" msgid "option in consistency must be in same dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:704 #: tiramisu/option/baseoption.py:618
msgid "cannot add consistency with itself" msgid "cannot add consistency with itself"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:706 #: tiramisu/option/baseoption.py:620
msgid "every options in consistency must be multi or none" msgid "every options in consistency must be multi or none"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:710 #: tiramisu/option/baseoption.py:634
msgid "'{0}' ({1}) cannot add consistency, option is read-only"
msgstr ""
#: tiramisu/option/baseoption.py:641
msgid "consistency {0} not available for this option" msgid "consistency {0} not available for this option"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:739 #: tiramisu/option/baseoption.py:645
msgid "unknow parameter {0} in consistency"
msgstr ""
#: tiramisu/option/baseoption.py:695
msgid "same value for {0} and {1}, should be different" msgid "same value for {0} and {1}, should be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:741 #: tiramisu/option/baseoption.py:697
msgid "same value for {0} and {1}, must be different" msgid "same value for {0} and {1}, must be different"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:797 #: tiramisu/option/baseoption.py:755
msgid "default value not allowed if option: {0} is calculated" msgid "default value not allowed if option: {0} is calculated"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:819 #: tiramisu/option/baseoption.py:775
msgid "malformed requirements type for option: {0}, must be a dict" msgid "malformed requirements type for option: {0}, must be a dict"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:825 #: tiramisu/option/baseoption.py:781
msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}" msgid "malformed requirements for option: {0} unknown keys {1}, must only {2}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:836 #: tiramisu/option/baseoption.py:789
msgid "malformed requirements for option: {0} require must have option, expected and action keys" msgid "malformed requirements for option: {0} require must have option, expected and action keys"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:840 #: tiramisu/option/baseoption.py:796
msgid "malformed requirements for option: {0} action cannot be force_store_value" msgid "malformed requirements for option: {0} action cannot be force_store_value"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:845 #: tiramisu/option/baseoption.py:801
msgid "malformed requirements for option: {0} inverse must be boolean" msgid "malformed requirements for option: {0} inverse must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:849 #: tiramisu/option/baseoption.py:805
msgid "malformed requirements for option: {0} transitive must be boolean" msgid "malformed requirements for option: {0} transitive must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:853 #: tiramisu/option/baseoption.py:809
msgid "malformed requirements for option: {0} same_action must be boolean" msgid "malformed requirements for option: {0} same_action must be boolean"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:857 #: tiramisu/option/baseoption.py:813
msgid "malformed requirements must be an option in option {0}" msgid "malformed requirements must be an option in option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:860 #: tiramisu/option/baseoption.py:816
msgid "malformed requirements option {0} must not be a multi for {1}" msgid "malformed requirements multi option must not set as requires of non multi option {0}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:867 #: tiramisu/option/baseoption.py:822
msgid "malformed requirements second argument must be valid for option {0}: {1}" msgid "malformed requirements second argument must be valid for option {0}: {1}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:872 #: tiramisu/option/baseoption.py:827
msgid "inconsistency in action types for option: {0} action: {1}" msgid "inconsistency in action types for option: {0} action: {1}"
msgstr "" msgstr ""
#: tiramisu/option/baseoption.py:900 #: tiramisu/option/baseoption.py:855
msgid "malformed symlinkoption must be an option for symlink {0}" msgid "malformed symlinkoption must be an option for symlink {0}"
msgstr "" msgstr ""
@ -308,15 +312,19 @@ msgstr ""
msgid "not allowed option {0} in group {1}: this option is not a multi" msgid "not allowed option {0} in group {1}: this option is not a multi"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:53 #: tiramisu/option/masterslave.py:52
msgid "not allowed default value for option {0} in group {1}"
msgstr ""
#: tiramisu/option/masterslave.py:57
msgid "master group with wrong master name for {0}" msgid "master group with wrong master name for {0}"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:63 #: tiramisu/option/masterslave.py:67
msgid "callback of master's option shall not refered a slave's ones" msgid "callback of master's option shall not refered a slave's ones"
msgstr "" msgstr ""
#: tiramisu/option/masterslave.py:260 #: tiramisu/option/masterslave.py:283
msgid "invalid len for the slave: {0} which has {1} as master" msgid "invalid len for the slave: {0} which has {1} as master"
msgstr "" msgstr ""
@ -328,240 +336,271 @@ msgstr ""
msgid "values must be a tuple or a function for {0}" msgid "values must be a tuple or a function for {0}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:81 #: tiramisu/option/option.py:91
msgid "calculated values for {0} is not a list" msgid "calculated values for {0} is not a list"
msgstr "" msgstr ""
#: tiramisu/option/option.py:89 #: tiramisu/option/option.py:102
msgid "value {0} is not permitted, only {1} is allowed" msgid "value {0} is not permitted, only {1} is allowed"
msgstr "" msgstr ""
#: tiramisu/option/option.py:103 #: tiramisu/option/option.py:115
msgid "invalid boolean" msgid "invalid boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:112 #: tiramisu/option/option.py:125
msgid "invalid integer" msgid "invalid integer"
msgstr "" msgstr ""
#: tiramisu/option/option.py:121 #: tiramisu/option/option.py:135
msgid "invalid float" msgid "invalid float"
msgstr "" msgstr ""
#: tiramisu/option/option.py:130 #: tiramisu/option/option.py:162
msgid "invalid string"
msgstr ""
#: tiramisu/option/option.py:146
msgid "invalid unicode" msgid "invalid unicode"
msgstr "" msgstr ""
#: tiramisu/option/option.py:179 tiramisu/option/option.py:182 #: tiramisu/option/option.py:207 tiramisu/option/option.py:210
#: tiramisu/option/option.py:187 #: tiramisu/option/option.py:215
msgid "invalid IP" msgid "invalid IP"
msgstr "" msgstr ""
#: tiramisu/option/option.py:193 #: tiramisu/option/option.py:221
msgid "IP is in reserved class" msgid "IP is in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:195 #: tiramisu/option/option.py:223
msgid "invalid IP, mustn't be in reserved class" msgid "invalid IP, mustn't be in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:199 #: tiramisu/option/option.py:227
msgid "IP is not in private class" msgid "IP is not in private class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:201 #: tiramisu/option/option.py:229
msgid "invalid IP, must be in private class" msgid "invalid IP, must be in private class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:206 tiramisu/option/option.py:384 #: tiramisu/option/option.py:234 tiramisu/option/option.py:438
msgid "invalid len for vals" msgid "invalid len for vals"
msgstr "" msgstr ""
#: tiramisu/option/option.py:212 #: tiramisu/option/option.py:240
msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})" msgid "IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:215 #: tiramisu/option/option.py:243
msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})" msgid "invalid IP {0} ({1}) not in network {2} ({3}) with netmask {4} ({5})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:257 #: tiramisu/option/option.py:286
msgid "inconsistency in allowed range" msgid "inconsistency in allowed range"
msgstr "" msgstr ""
#: tiramisu/option/option.py:262 #: tiramisu/option/option.py:291
msgid "max value is empty" msgid "max value is empty"
msgstr "" msgstr ""
#: tiramisu/option/option.py:283 #: tiramisu/option/option.py:319
msgid "invalid port, range must have two values only" msgid "invalid port, range must have two values only"
msgstr "" msgstr ""
#: tiramisu/option/option.py:286 #: tiramisu/option/option.py:322
msgid "invalid port, first port in range must be smaller than the second one" msgid "invalid port, first port in range must be smaller than the second one"
msgstr "" msgstr ""
#: tiramisu/option/option.py:295 #: tiramisu/option/option.py:329
msgid "invalid port" msgid "invalid port"
msgstr "" msgstr ""
#: tiramisu/option/option.py:297 #: tiramisu/option/option.py:332
msgid "invalid port, must be an integer between {0} and {1}" msgid "invalid port, must be an integer between {0} and {1}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:311 #: tiramisu/option/option.py:347 tiramisu/option/option.py:350
#: tiramisu/option/option.py:354
msgid "invalid network address" msgid "invalid network address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:317 #: tiramisu/option/option.py:360
msgid "network address is in reserved class" msgid "network address is in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:319 #: tiramisu/option/option.py:362
msgid "invalid network address, mustn't be in reserved class" msgid "invalid network address, mustn't be in reserved class"
msgstr "" msgstr ""
#: tiramisu/option/option.py:332 #: tiramisu/option/option.py:376 tiramisu/option/option.py:379
#: tiramisu/option/option.py:383
msgid "invalid netmask address" msgid "invalid netmask address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:349 #: tiramisu/option/option.py:400
msgid "invalid len for opts" msgid "invalid len for opts"
msgstr "" msgstr ""
#: tiramisu/option/option.py:358 #: tiramisu/option/option.py:409
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network" msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a network"
msgstr "" msgstr ""
#: tiramisu/option/option.py:361 #: tiramisu/option/option.py:412
msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast" msgid "invalid IP {0} ({1}) with netmask {2}, this IP is a broadcast"
msgstr "" msgstr ""
#: tiramisu/option/option.py:366 #: tiramisu/option/option.py:417
msgid "invalid network {0} ({1}) with netmask {2}" msgid "invalid network {0} ({1}) with netmask {2}"
msgstr "" msgstr ""
#: tiramisu/option/option.py:380 #: tiramisu/option/option.py:434
msgid "invalid broadcast address" msgid "invalid broadcast address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:389 #: tiramisu/option/option.py:443
msgid "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})" msgid "invalid broadcast {0} ({1}) with network {2} ({3}) and netmask {4} ({5})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:410 #: tiramisu/option/option.py:464
msgid "unknown type_ {0} for hostname" msgid "unknown type_ {0} for hostname"
msgstr "" msgstr ""
#: tiramisu/option/option.py:413 #: tiramisu/option/option.py:467
msgid "allow_ip must be a boolean" msgid "allow_ip must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:415 #: tiramisu/option/option.py:469
msgid "allow_without_dot must be a boolean" msgid "allow_without_dot must be a boolean"
msgstr "" msgstr ""
#: tiramisu/option/option.py:437 #: tiramisu/option/option.py:495
msgid "invalid domainname's length (min 1)" msgid "invalid domainname's length (min 1)"
msgstr "" msgstr ""
#: tiramisu/option/option.py:439 #: tiramisu/option/option.py:497
msgid "invalid domainname's length (max {0})" msgid "invalid domainname's length (max {0})"
msgstr "" msgstr ""
#: tiramisu/option/option.py:454 #: tiramisu/option/option.py:512
msgid "invalid domainname, must not be an IP"
msgstr ""
#: tiramisu/option/option.py:519
msgid "invalid domainname, must have dot" msgid "invalid domainname, must have dot"
msgstr "" msgstr ""
#: tiramisu/option/option.py:456 #: tiramisu/option/option.py:521
msgid "invalid domainname's length (max 255)" msgid "invalid domainname's length (max 255)"
msgstr "" msgstr ""
#: tiramisu/option/option.py:465 #: tiramisu/option/option.py:532
msgid "some characters are uppercase" msgid "some characters are uppercase"
msgstr "" msgstr ""
#: tiramisu/option/option.py:468 #: tiramisu/option/option.py:535
msgid "some characters may cause problems" msgid "some characters may cause problems"
msgstr "" msgstr ""
#: tiramisu/option/option.py:470 #: tiramisu/option/option.py:537
msgid "invalid domainname" msgid "invalid domainname"
msgstr "" msgstr ""
#: tiramisu/option/option.py:495 #: tiramisu/option/option.py:563
msgid "invalid email address, must contains one @" msgid "invalid email address, must contains one @"
msgstr "" msgstr ""
#: tiramisu/option/option.py:498 #: tiramisu/option/option.py:566
msgid "invalid username in email address" msgid "invalid username in email address"
msgstr "" msgstr ""
#: tiramisu/option/option.py:515 #: tiramisu/option/option.py:588
msgid "invalid url, must start with http:// or https://" msgid "invalid url, must start with http:// or https://"
msgstr "" msgstr ""
#: tiramisu/option/option.py:534 #: tiramisu/option/option.py:606
msgid "invalid url, port must be an between 0 and 65536" msgid "invalid url, port must be an between 0 and 65536"
msgstr "" msgstr ""
#: tiramisu/option/option.py:541 #: tiramisu/option/option.py:617
msgid "invalid url, must ends with a valid resource name" msgid "invalid url, must ends with a valid resource name"
msgstr "" msgstr ""
#: tiramisu/option/option.py:556 #: tiramisu/option/option.py:635
msgid "invalid username" msgid "invalid username"
msgstr "" msgstr ""
#: tiramisu/option/option.py:567 #: tiramisu/option/option.py:649
msgid "invalid filename" msgid "invalid filename"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:68 #: tiramisu/option/optiondescription.py:73
msgid "duplicate option name: {0}" msgid "duplicate option name: {0}"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:73 #: tiramisu/option/optiondescription.py:78
msgid "option must not start as dynoptiondescription" msgid "option must not start as dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:117 #: tiramisu/option/optiondescription.py:134
msgid "consistency with option {0} which is not in Config" msgid "malformed consistency option {0} must be a master/slaves"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:143 #: tiramisu/option/optiondescription.py:141
msgid "malformed consistency option {0} must not be a multi for {1}"
msgstr ""
#: tiramisu/option/optiondescription.py:145
msgid "malformed consistency option {0} must be in same master/slaves for {1}"
msgstr ""
#: tiramisu/option/optiondescription.py:170
msgid "malformed requirements option {0} must be in same master/slaves for {1}"
msgstr ""
#: tiramisu/option/optiondescription.py:174
msgid "malformed requirements option {0} must not be a multi for {1}"
msgstr ""
#: tiramisu/option/optiondescription.py:183
msgid "duplicate option: {0}" msgid "duplicate option: {0}"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:154 #: tiramisu/option/optiondescription.py:188
msgid "consistency with option {0} which is not in Config"
msgstr ""
#: tiramisu/option/optiondescription.py:201
msgid "a slave ({0}) cannot have force_store_value property"
msgstr ""
#: tiramisu/option/optiondescription.py:204
msgid "a dynoption ({0}) cannot have force_store_value property"
msgstr ""
#: tiramisu/option/optiondescription.py:218
msgid "cannot change group_type if already set (old {0}, new {1})" msgid "cannot change group_type if already set (old {0}, new {1})"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:162 #: tiramisu/option/optiondescription.py:226
msgid "group_type: {0} not allowed" msgid "group_type: {0} not allowed"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:260 #: tiramisu/option/optiondescription.py:288
msgid "DynOptionDescription callback return not uniq value" msgid "DynOptionDescription callback return not uniq value"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:263 #: tiramisu/option/optiondescription.py:291
msgid "invalid suffix: {0} for option" msgid "invalid suffix: {0} for option"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:320 #: tiramisu/option/optiondescription.py:348
msgid "cannot set optiondescription in an dynoptiondescription" msgid "cannot set optiondescription in a dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:325 #: tiramisu/option/optiondescription.py:353
msgid "cannot set symlinkoption in an dynoptiondescription" #: tiramisu/option/optiondescription.py:356
msgid "cannot set symlinkoption in a dynoptiondescription"
msgstr "" msgstr ""
#: tiramisu/option/optiondescription.py:333 #: tiramisu/option/optiondescription.py:364
msgid "callback is mandatory for dynoptiondescription" msgid "callback is mandatory for dynoptiondescription"
msgstr "" msgstr ""
@ -573,105 +612,102 @@ msgstr ""
msgid "can't unbind {0}" msgid "can't unbind {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:260 #: tiramisu/setting.py:264
msgid "cannot append {0} property for option {1}: this property is calculated" msgid "cannot append {0} property for option {1}: this property is calculated"
msgstr "" msgstr ""
#: tiramisu/setting.py:349 #: tiramisu/setting.py:268 tiramisu/setting.py:434
msgid "you should only append/remove properties"
msgstr ""
#: tiramisu/setting.py:353
msgid "opt and all_properties must not be set together in reset"
msgstr ""
#: tiramisu/setting.py:373
msgid "if opt is not None, path should not be None in _getproperties"
msgstr ""
#: tiramisu/setting.py:417
msgid "cannot add those properties: {0}" msgid "cannot add those properties: {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:490 #: tiramisu/setting.py:357
msgid "cannot change the value for option {0} this option is frozen" msgid "you should only append/remove properties"
msgstr ""
#: tiramisu/setting.py:361
msgid "opt and all_properties must not be set together in reset"
msgstr ""
#: tiramisu/setting.py:382
msgid "if opt is not None, path should not be None in _getproperties"
msgstr "" msgstr ""
#: tiramisu/setting.py:500 #: tiramisu/setting.py:500
msgid "cannot change the value for option {0} this option is frozen"
msgstr ""
#: tiramisu/setting.py:510
msgid "trying to access to an {0} named: {1} with properties {2}" msgid "trying to access to an {0} named: {1} with properties {2}"
msgstr "" msgstr ""
#: tiramisu/setting.py:519 #: tiramisu/setting.py:529
msgid "permissive must be a tuple" msgid "permissive must be a tuple"
msgstr "" msgstr ""
#: tiramisu/setting.py:526 tiramisu/value.py:464 #: tiramisu/setting.py:536 tiramisu/value.py:536
msgid "invalid generic owner {0}" msgid "invalid generic owner {0}"
msgstr "" msgstr ""
#: tiramisu/setting.py:614 #: tiramisu/setting.py:630
msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'" msgid "malformed requirements imbrication detected for option: '{0}' with requirement on: '{1}'"
msgstr "" msgstr ""
#: tiramisu/setting.py:625 #: tiramisu/setting.py:647
msgid "option '{0}' has requirement's property error: {1} {2}" msgid "option '{0}' has requirement's property error: {1} {2}"
msgstr "" msgstr ""
#: tiramisu/storage/__init__.py:49 #: tiramisu/storage/__init__.py:52
msgid "storage_type is already set, cannot rebind it" msgid "storage_type is already set, cannot rebind it"
msgstr "" msgstr ""
#: tiramisu/storage/__init__.py:60 #: tiramisu/storage/__init__.py:63
msgid "cannot import the storage {0}" msgid "cannot import the storage {0}"
msgstr "" msgstr ""
#: tiramisu/storage/__init__.py:93 #: tiramisu/storage/__init__.py:96
msgid "option {0} not already exists in storage {1}" msgid "option {0} not already exists in storage {1}"
msgstr "" msgstr ""
#: tiramisu/storage/__init__.py:131 #: tiramisu/storage/dictionary/option.py:102
msgid "unable to get storages:"
msgstr ""
#: tiramisu/storage/dictionary/option.py:96
msgid "invalid default_multi value {0} for option {1}: {2}" msgid "invalid default_multi value {0} for option {1}: {2}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:138 #: tiramisu/storage/dictionary/option.py:142
#: tiramisu/storage/sqlalchemy/option.py:439 tiramisu/value.py:528 #: tiramisu/storage/dictionary/value.py:234
#: tiramisu/storage/sqlalchemy/option.py:441
msgid "information's item not found: {0}" msgid "information's item not found: {0}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:365 #: tiramisu/storage/dictionary/option.py:383
#: tiramisu/storage/sqlalchemy/option.py:483 msgid "use impl_get_opt_by_path only with root OptionDescription"
msgstr ""
#: tiramisu/storage/dictionary/option.py:385
#: tiramisu/storage/sqlalchemy/option.py:485
msgid "no option for path {0}" msgid "no option for path {0}"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:369 #: tiramisu/storage/dictionary/option.py:390
#: tiramisu/storage/sqlalchemy/option.py:492 #: tiramisu/storage/sqlalchemy/option.py:494
msgid "use impl_get_path_by_opt only with root OptionDescription" msgid "use impl_get_path_by_opt only with root OptionDescription"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:373 #: tiramisu/storage/dictionary/option.py:392
#: tiramisu/storage/sqlalchemy/option.py:493 #: tiramisu/storage/sqlalchemy/option.py:495
msgid "no option {0} found" msgid "no option {0} found"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:422 #: tiramisu/storage/dictionary/option.py:439
msgid "cannot find dynpath" msgid "cannot find dynpath"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:512 #: tiramisu/storage/dictionary/option.py:528
#: tiramisu/storage/sqlalchemy/option.py:638 #: tiramisu/storage/sqlalchemy/option.py:640
msgid "suffix and context needed if it's a dyn option" msgid "suffix and context needed if it's a dyn option"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/option.py:525 #: tiramisu/storage/dictionary/option.py:549
msgid "{0} instance has no attribute '_readonly'" #: tiramisu/storage/sqlalchemy/option.py:670
msgstr ""
#: tiramisu/storage/dictionary/option.py:539
#: tiramisu/storage/sqlalchemy/option.py:668
msgid "unknown Option {0} in OptionDescription {1}" msgid "unknown Option {0} in OptionDescription {1}"
msgstr "" msgstr ""
@ -680,63 +716,63 @@ msgid "dictionary storage cannot delete session"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/storage.py:48 #: tiramisu/storage/dictionary/storage.py:48
#: tiramisu/storage/sqlalchemy/storage.py:66
msgid "session already used" msgid "session already used"
msgstr "" msgstr ""
#: tiramisu/storage/dictionary/storage.py:50 #: tiramisu/storage/dictionary/storage.py:50
#: tiramisu/storage/dictionary/value.py:252
msgid "a dictionary cannot be persistent" msgid "a dictionary cannot be persistent"
msgstr "" msgstr ""
#: tiramisu/value.py:65 #: tiramisu/storage/dictionary/value.py:243
msgid "optiondescription has no value" msgid "information's item not found {0}"
msgstr "" msgstr ""
#: tiramisu/value.py:350 #: tiramisu/value.py:391
msgid "you should only set value with config" msgid "you should only set value with config"
msgstr "" msgstr ""
#: tiramisu/value.py:432 #: tiramisu/value.py:500
msgid "owner only avalaible for an option" msgid "owner only avalaible for an option"
msgstr "" msgstr ""
#: tiramisu/value.py:471 #: tiramisu/value.py:541
msgid "no value for {0} cannot change owner to {1}" msgid "no value for {0} cannot change owner to {1}"
msgstr "" msgstr ""
#: tiramisu/value.py:572 #: tiramisu/value.py:671
msgid "can force cache only if cache is actived in config" msgid "can force cache only if cache is actived in config"
msgstr "" msgstr ""
#: tiramisu/value.py:611 #: tiramisu/value.py:708
msgid "{0} is already a Multi " msgid "{0} is already a Multi "
msgstr "" msgstr ""
#: tiramisu/value.py:682 #: tiramisu/value.py:786
msgid "cannot append a value on a multi option {0} which is a slave" msgid "cannot append a value on a multi option {0} which is a slave"
msgstr "" msgstr ""
#: tiramisu/value.py:709 #: tiramisu/value.py:817
msgid "cannot sort multi option {0} if master or slave" msgid "cannot sort multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:713 #: tiramisu/value.py:821
msgid "cmp is not permitted in python v3 or greater" msgid "cmp is not permitted in python v3 or greater"
msgstr "" msgstr ""
#: tiramisu/value.py:722 #: tiramisu/value.py:830
msgid "cannot reverse multi option {0} if master or slave" msgid "cannot reverse multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:730 #: tiramisu/value.py:837
msgid "cannot insert multi option {0} if master or slave" msgid "cannot insert multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:746 #: tiramisu/value.py:854
msgid "cannot extend multi option {0} if master or slave" msgid "cannot extend multi option {0} if master or slave"
msgstr "" msgstr ""
#: tiramisu/value.py:781 #: tiramisu/value.py:889
msgid "cannot pop a value on a multi option {0} which is a slave" msgid "cannot pop a value on a multi option {0} which is a slave"
msgstr "" msgstr ""