321 |
321 |
322 # keyname must be immediately followed by the "=" sign, so we |
322 # keyname must be immediately followed by the "=" sign, so we |
323 # verify that there is no whitespace into keyname |
323 # verify that there is no whitespace into keyname |
324 if keyname.isalnum(): |
324 if keyname.isalnum(): |
325 # value can be preceded and followed by whitespaces, so we escape them |
325 # value can be preceded and followed by whitespaces, so we escape them |
326 value = value.strip() |
326 value = value.strip().replace(" ", "") |
327 # First case, value starts with "$NODEID", then it's a formula |
327 # First case, value starts with "$NODEID", then it's a formula |
328 if value.upper().startswith("$NODEID"): |
328 if value.upper().startswith("$NODEID"): |
329 try: |
329 try: |
330 test = int(value.upper().replace("$NODEID+", ""), 16) |
330 test = int(value.upper().replace("$NODEID+", ""), 16) |
331 computed_value = "\"%s\""%value |
331 computed_value = "\"%s\""%value |
377 possible = set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"] + |
377 possible = set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"] + |
378 ENTRY_TYPES[values["OBJECTTYPE"]]["optional"]) |
378 ENTRY_TYPES[values["OBJECTTYPE"]]["optional"]) |
379 required = set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"]) |
379 required = set(ENTRY_TYPES[values["OBJECTTYPE"]]["require"]) |
380 # Verify that parameters defined contains all the parameters required |
380 # Verify that parameters defined contains all the parameters required |
381 if not keys.issuperset(required): |
381 if not keys.issuperset(required): |
382 missing = required.difference(keys) |
382 missing = required.difference(keys)._data.keys() |
383 if len(missing) > 1: |
383 if len(missing) > 1: |
384 attributes = _("Attributes %s are")%_(", ").join(["\"%s\""%attribute for attribute in missing]) |
384 attributes = _("Attributes %s are")%_(", ").join(["\"%s\""%attribute for attribute in missing]) |
385 else: |
385 else: |
386 attributes = _("Attribute \"%s\" is")%missing.pop() |
386 attributes = _("Attribute \"%s\" is")%missing[0] |
387 raise SyntaxError, _("Error on section \"[%s]\":\n%s required for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"]) |
387 raise SyntaxError, _("Error on section \"[%s]\":\n%s required for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"]) |
388 # Verify that parameters defined are all in the possible parameters |
388 # Verify that parameters defined are all in the possible parameters |
389 if not keys.issubset(possible): |
389 if not keys.issubset(possible): |
390 unsupported = keys.difference(possible) |
390 unsupported = keys.difference(possible)._data.keys() |
391 if len(unsupported) > 1: |
391 if len(unsupported) > 1: |
392 attributes = _("Attributes %s are")%_(", ").join(["\"%s\""%attribute for attribute in unsupported]) |
392 attributes = _("Attributes %s are")%_(", ").join(["\"%s\""%attribute for attribute in unsupported]) |
393 else: |
393 else: |
394 attributes = _("Attribute \"%s\" is")%unsupported.pop() |
394 attributes = _("Attribute \"%s\" is")%unsupported[0] |
395 raise SyntaxError, _("Error on section \"[%s]\":\n%s unsupported for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"]) |
395 raise SyntaxError, _("Error on section \"[%s]\":\n%s unsupported for a %s entry")%(section_name, attributes, ENTRY_TYPES[values["OBJECTTYPE"]]["name"]) |
396 |
396 |
397 VerifyValue(values, section_name, "ParameterValue") |
397 VerifyValue(values, section_name, "ParameterValue") |
398 VerifyValue(values, section_name, "DefaultValue") |
398 VerifyValue(values, section_name, "DefaultValue") |
399 |
399 |