Details
-
Bug
-
Status: In Progress
-
Medium
-
Resolution: Unresolved
-
3.0.2
Description
The following snippet, taken from openconfig-bgp-policy.yang:
typedef bgp-set-med-type {
type union {
type uint32;
type string {
pattern "^[+-][0-9]+";
}
type enumeration {
enum IGP {
description "set the MED value to the IGP cost toward the
next hop for the route";
}
}
}
description
"Type definition for specifying how the BGP MED can
be set in BGP policy actions. The three choices are to set
the MED directly, increment/decrement using +/- notation,
and setting it to the IGP cost (predefined value).";
}
results in the following code:
public static final List<String> PATTERN_CONSTANTS = ImmutableList.of("^(?:\\^[+-][0-9]+)$"); private static final Pattern patterns = Pattern.compile(PATTERN_CONSTANTS.get(0)); private static final String regexes = "^[+-][0-9]+"; private final Long _uint32; private final String _string; private final Enumeration _enumeration; private static void checkUint32Range(final long value) { if (value >= 0L && value <= 4294967295L) { return; } CodeHelpers.throwInvalidRange("[[0..4294967295]]", value); } public BgpSetMedType(Long _uint32) { super(); checkUint32Range(_uint32); this._uint32 = _uint32; this._string = null; this._enumeration = null; } private static void check_stringLength(final String value) { } public BgpSetMedType(String _string) { super(); check_stringLength(_string); this._string = _string; this._uint32 = null; this._enumeration = null; }
Note there is a useless check_stringLength() emitted, which is probably fine. What is not fine is that the String enforcement is completely missing, eventhough we have generated the appropriate regexs constant.
Attachments
Issue Links
Gerrit Reviews
| # | Subject | Branch | Project | Status | CR | V |
|---|---|---|---|---|---|---|
| 78797,3 | WIP: Handle leaf-based constants in ClassTemplate | master | mdsal | Status: NEW | 0 | -1 |
| 78798,3 | WIP: Correctly expand Union member pattern constants | master | mdsal | Status: NEW | 0 | -1 |
| 104042,23 | Generated unions patterns enforcement | master | mdsal | Status: NEW | -1 | -1 |