杨模型剩余运行(%)

时间:2017-12-13 03:47:35

标签: ietf-netmod-yang

我想用一些整数范围创建yang模型,例如从1000到最大值,并且值必须以500为单位输入。有没有办法可以在yang或range函数中使用余数(模数)%运算符python与步骤。

或者我只需要使用带有一些正则表达式的模式。

1 个答案:

答案 0 :(得分:4)

使用must约束来进一步约束已使用range约束的整数类型值。

module modulus {
    yang-version 1.1;
    namespace "org:so:modulus";
    prefix "som";

    leaf value {
        type int32 {            
            range "1000..max";
        }
        must ". mod 500 = 0" {
            error-message "values must be entered in steps of 500";
        }
    }
}

XPath规范提供mod运算符。

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <som:value xmlns:som="org:so:modulus">1501</som:value>
</data>

结果:

    Error at (3:3): failed assert at "/nc:data/som:value": values must be entered in steps of 500

虽然

<?xml version="1.0" encoding="utf-8"?>
<data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
  <som:value xmlns:som="org:so:modulus">2000</som:value>
</data>

没关系。