【问题标题】:Yang model for remainder operation (%)余数运算的杨模型(%)
【发布时间】:2017-12-13 16:40:15
【问题描述】:

我想为某个整数范围创建 yang 模型,例如从 1000 到最大值,并且必须以 500 的步长输入值。有什么方法可以在 yang 或 range 函数中使用余数(模数)% 运算符带步骤的python。

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

【问题讨论】:

    标签: ietf-netmod-yang


    【解决方案1】:

    使用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>
    

    没问题。

    【讨论】:

    • 我是否必须在我的 YANG 模块中导入这部分,因为它不会给我相同的结果。或者我需要导入一些 org.so 库模块模数 { yang-version 1.1;命名空间“org:so:modulus”;前缀“som”;
    • @HPG,不,我的 YANG 示例是纯标准 YANG。您可以删除“yang-version”语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多