コード例 #1
0
ファイル: MoveTest.py プロジェクト: zyboy2000/sysrepo
    def setUp(self):
        if not TestModule.create_referenced_data_module():
            self.remove_modules(self)
            self.skipTest(self, "Test environment is not clean!")
            print("Environment is not clean!")
            return
        if not TestModule.create_test_module():
            self.remove_modules(self)
            self.skipTest(self, "Test environment is not clean!")
            print("Environment is not clean!")
            return
        conn = sr.Connection(sr.SR_CONN_DEFAULT)
        session = sr.Session(conn, sr.SR_DS_STARTUP)
        session.delete_item("/test-module:user[name='A']")
        session.delete_item("/test-module:user[name='B']")
        session.delete_item("/test-module:user[name='C']")
        session.delete_item("/test-module:user[name='D']")
        session.apply_changes()
        session.set_item("/test-module:user[name='A']",
                         sr.Val(None, sr.SR_LIST_T))
        session.set_item("/test-module:user[name='B']",
                         sr.Val(None, sr.SR_LIST_T))
        session.set_item("/test-module:user[name='C']",
                         sr.Val(None, sr.SR_LIST_T))
        session.set_item("/test-module:user[name='D']",
                         sr.Val(None, sr.SR_LIST_T))
        session.apply_changes()

        session.session_stop()

        conn = None
コード例 #2
0
    def set(self, xpath, value, valtype=10, nodetype=4):
        """
        Set an individual item by XPATH.
          e.g. / path/to/item

        It is required to provide the value and the type of the field in most cases.
        In the case of Decimal64 we cannot use a value type
            v=sr.Val(2.344)
        """
        self.log.trace('SET: %s => %s (%s)' % (xpath, value, valtype))
        if valtype:
            valtype = self.SYSREPO_DATA_ABSTRACTION_MAPPING[valtype]
        elif nodetype:
            valtype = self.SYSREPO_NODE_MAPPING[nodetype]
        self.dirty = True
        if valtype in (10, 22):
            valtype = None
        if valtype == 5:
            value = None
        if valtype:
            v = sr.Val(value, valtype)
        else:
            v = sr.Val(value)

        try:
            self.session.set_item(xpath, v)
            return value
        except RuntimeError as err:
            self._handle_error(xpath, err)
コード例 #3
0
    def test_delete_default_node(self):
        tm = TestManager()

        tester = SysrepoTester("Tester", sr.SR_DS_RUNNING, False)
        subscriber = NotificationTester("Subscriber")

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.subscribeStep, "ietf-interfaces",
                            "/ietf-interfaces:interfaces")

        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/type",
            sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T))
        subscriber.add_step(subscriber.waitStep)

        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled",
            sr.Val(False, sr.SR_BOOL_T))
        subscriber.add_step(subscriber.waitStep)

        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)

        tester.add_step(
            tester.deleteItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled"
        )
        subscriber.add_step(subscriber.waitStep)

        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/forwarding"
        ]])

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.cancelSubscriptionStep)

        tester.add_step(tester.stopSession)
        subscriber.add_step(subscriber.stopSession)

        tester.add_step(tester.disconnect)
        subscriber.add_step(subscriber.disconnect)

        tm.add_tester(tester)
        tm.add_tester(subscriber)

        tm.run()
コード例 #4
0
def perf_set_delete_100_test(state, op_num, items):

    conn = state["connection"]
    assert conn is not None, "Unable to get connection."
    sess = sr.Session(conn, state['datastore'])
    assert sess is not None, "Unable to get session."

    xpath = "/example-module:container/list[key1='set_del'][key2='set_1']/leaf"

    sess.apply_changes()

    for i in range(op_num):
        sess.apply_changes()
        for j in range(100):
            xpath = "/example-module:container/list[key1='set_del'][key2='set_" + str(
                j) + "']/leaf"
            val = sr.Val("Leaf", sr.SR_STRING_T)
            sess.set_item(xpath, val)
        sess.apply_changes()
        for j in range(100):
            xpath = "/example-module:container/list[key1='set_del'][key2='set_" + str(
                j) + "']/leaf"
            sess.delete_item(xpath)
        sess.apply_changes()

    return 100 * 1 * 3 * 2
コード例 #5
0
def create_example_module():
    connection = sr.Connection(sr.SR_CONN_DEFAULT)
    try:
        connection.install_module(
            os.environ['TESTS_DIR'] + "/files/example-module.yang",
            os.environ['TESTS_DIR'] + "/files", [])
    except Exception as e:
        print(e)
        connection = None
        return False

    connection = None

    try:
        connection = sr.Connection(sr.SR_CONN_DEFAULT)
        session = sr.Session(connection, sr.SR_DS_STARTUP)

        delete_all_items_example(session)
        v = sr.Val("Leaf value", sr.SR_STRING_T)
        session.set_item(
            "/example-module:container/list[key1='key1'][key2='key2']/leaf", v)
        session.apply_changes()
        session.session_stop()
        connection = None
        return True
    except Exception as e:
        print(e)
        connection = None
        return False
コード例 #6
0
 def test_set_item(self):
     xpath = "/example-module:container/list[key1='abc'][key2='def']/leaf"
     v = sr.Val("Hey hou", sr.SR_STRING_T)
     self.session.set_item(xpath, v)
     self.session.apply_changes()
     new_value = self.session.get_item(xpath)
     self.assertEqual(new_value.type(), sr.SR_STRING_T)
     self.assertEqual(new_value.data().get_string(), v.data().get_string())
コード例 #7
0
ファイル: TestModule.py プロジェクト: ultichipxinfu/sysrepo
def create_example_module():
    connection = sr.Connection("test-module")

    session = sr.Session(connection, sr.SR_DS_STARTUP)
    session.delete_item("/example-module:*")
    v = sr.Val("Leaf value", sr.SR_STRING_T)
    session.set_item("/example-module:container/list[key1='key1'][key2='key2']/leaf", v)
    session.commit()
コード例 #8
0
 def test_delete_item(self):
     lists = ["/test-module:user[name='A']", "/test-module:user[name='B']", "/test-module:user[name='C']" ]
     v = sr.Val("", sr.SR_STRING_T)
     for l in lists:
         self.session.set_item(l+'/type', v)
         self.session.set_item(l+'/full-name', v)
         # set_item(None...)
     items = self.session.get_items("/test-module:user")
     self.assertEqual(len(lists), items.val_cnt())
     self.session.delete_item("/test-module:user")
コード例 #9
0
ファイル: MoveTest.py プロジェクト: ivor911/ihung-netopeer2
    def setUp(self):
        TestModule.create_referenced_data_module()
        TestModule.create_test_module()
        conn = sr.Connection(sr.SR_CONN_DEFAULT)
        session = sr.Session(conn, sr.SR_DS_STARTUP)
        session.delete_item("/test-module:user[name='A']")
        session.delete_item("/test-module:user[name='B']")
        session.delete_item("/test-module:user[name='C']")
        session.delete_item("/test-module:user[name='D']")
        session.apply_changes()
        session.set_item("/test-module:user[name='A']",
                         sr.Val(None, sr.SR_LIST_T))
        session.set_item("/test-module:user[name='B']",
                         sr.Val(None, sr.SR_LIST_T))
        session.set_item("/test-module:user[name='C']",
                         sr.Val(None, sr.SR_LIST_T))
        session.set_item("/test-module:user[name='D']",
                         sr.Val(None, sr.SR_LIST_T))
        session.apply_changes()

        session.session_stop()

        conn = None
コード例 #10
0
def createDataTreeLargeExampleModule(count, datastore):
    """
    Add data to example-module.
    """
    conn = sr.Connection("load test")
    sess = sr.Session(conn, datastore)
    subs = sr.Subscribe(sess)

    for i in xrange(count):
        xpath = "/example-module:container/list[key1='key" + str(i) + "'][key2='key" + str(i) +"']/leaf"
        val = sr.Val("leaf" + str(i), sr.SR_STRING_T)

        sess.set_item(xpath, val)

    sess.commit()
コード例 #11
0
def perf_set_delete_test(state, op_num, items):

    conn = state["connection"]
    assert conn is not None, "Unable to get connection."
    sess = sr.Session(conn, state['datastore'])
    assert sess is not None, "Unable to get session."

    xpath = "/example-module:container/list[key1='set_del'][key2='set_1']/leaf"

    for i in xrange(op_num):
        val = sr.Val("Leaf", sr.SR_STRING_T)
        sess.set_item(xpath, val)

        sess.delete_item(xpath)

    return 1 * 3 * 2
コード例 #12
0
ファイル: subscriber.py プロジェクト: hbarawkar/integration
def handle_set_state(conn, key_id, state_str):
    sess = sr.Session(conn)
    try:
        state = sr.Val(state_str, sr.SR_ENUM_T)
        sess.set_item(xpath_of(key_id, 'current-status'), state)
        on_enter = STATE_MACHINE[state_str].get('on_enter', None)
        if on_enter:
            # noinspection PyCallingNonCallable
            on_enter(sess, key_id)
        sess.commit()
        delay, next_state_str = STATE_MACHINE[state_str].get(
            'timed_transition', [0, None])
        if delay:
            Timer(delay, handle_set_state,
                  (conn, key_id, next_state_str)).start()
    finally:
        sess.session_stop()
コード例 #13
0
    def test_move_item(self):
        lists = ["/test-module:user[name='A']", "/test-module:user[name='B']", "/test-module:user[name='C']" ]
        for l in lists:
            v = sr.Val(None, sr.SR_LIST_T)
            self.session.set_item(l, v)

        self.session.apply_changes()
        items = self.session.get_items("/test-module:user")
        for i in range(0, len(lists)):
            self.assertEqual(items.val(i).xpath(), lists[i])

        self.session.move_item(lists[1], sr.SR_MOVE_FIRST)

        lists.insert(0, lists.pop(1))

        items = self.session.get_items("/test-module:user")
        for i in range(0, len(lists)):
            self.assertEqual(items.val(i).xpath(), lists[i])
コード例 #14
0
def perf_commit_test(state, op_num, items):

    conn = state["connection"]
    assert conn is not None, "Unable to get connection."
    sess = sr.Session(conn, state['datastore'])
    assert sess is not None, "Unable to get session."

    xpath = "/example-module:container/list[key1='key0'][key2='key0']/leaf"
    sess.apply_changes()
    for i in range(op_num):
        if (i % 2 == 0):
            val = sr.Val("Leaf", sr.SR_STRING_T)
            sess.set_item(xpath, val)
        else:
            sess.delete_item(xpath)

        sess.apply_changes()

    return 1
コード例 #15
0
def try_change_state(conn, key_id, state_str):
    sess = sr.Session(conn)
    try:
        try:
            sess.lock_module(YANG_MODULE_NAME)
        except RuntimeError:
            logger.warning(f"Retrying after {PAUSE_TO_LOCK}s")
            Timer(PAUSE_TO_LOCK, try_change_state, (conn, key_id, state_str)).start()
            return
        try:
            state = sr.Val(state_str, sr.SR_ENUM_T)
            sess.set_item(xpath_of(key_id, 'current-status'), state)
            on_enter = STATE_MACHINE[state_str].get('on_enter', None)
            if callable(on_enter):
                on_enter(sess, key_id)
            sess.commit()
        finally:
            sess.unlock_module(YANG_MODULE_NAME)
        delay, next_state_str = STATE_MACHINE[state_str].get('timed_transition', [0, None])
        if delay:
            Timer(delay, try_change_state, (conn, key_id, next_state_str)).start()
    finally:
        sess.session_stop()
コード例 #16
0
def createDataTreeLargeIETFinterfacesModule(count, datastore):
    """
    Add data to ietf-interfaces.
    """
    conn = sr.Connection(sr.SR_CONN_DEFAULT)
    sess = sr.Session(conn, datastore)
    subs = sr.Subscribe(sess)

    for i in range(count):
        xpath = "/ietf-interfaces:interfaces/interface[name='eth" + str(
            i) + "']"
        xpath_ip = xpath + "/ietf-ip:ipv4/address[ip='192.168.1." + str(
            i) + "]"
        x_name = xpath + "/name"
        x_type = xpath + "/type"
        x_desc = xpath + "/description"
        x_enabled = xpath + "/enabled"

        x_ipv4_enabled = xpath + "/ietf-ip:ipv4/enabled"
        x_ipv4_mtu = xpath + "/ietf-ip:ipv4/mtu"
        x_ipv4_forward = xpath + "/ietf-ip:ipv4/forwarding"

        x_prefix_len = xpath_ip + "/prefix-length"

        val = sr.Val("Ethernet 0", sr.SR_STRING_T)
        sess.set_item(x_desc, val)

        val = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
        sess.set_item(x_type, val)

        val = sr.Val(True, sr.SR_BOOL_T)
        sess.set_item(x_enabled, val)

        val = sr.Val(True, sr.SR_BOOL_T)
        sess.set_item(x_ipv4_enabled, val)

        val = sr.Val(1500, sr.SR_UINT16_T)
        sess.set_item(x_ipv4_mtu, val)

        val = sr.Val(False, sr.SR_BOOL_T)
        sess.set_item(x_ipv4_forward, val)

    sess.apply_changes()
コード例 #17
0
def create_ietf_interfaces():
    connection = sr.Connection(sr.SR_CONN_DEFAULT)

    session = sr.Session(connection, sr.SR_DS_STARTUP)
    delete_all_items_ietf(session)

    v = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/type",
                     v)

    v = sr.Val("Ethernet 0", sr.SR_STRING_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth0']/description", v)

    v = sr.Val(True, sr.SR_BOOL_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth0']/enabled", v)

    v = sr.Val(24, sr.SR_UINT8_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/address[ip='192.168.2.100']/prefix-length",
        v)

    v = sr.Val(True, sr.SR_BOOL_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled",
        v)

    v = sr.Val(1500, sr.SR_UINT16_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/mtu",
        v)

    v = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth1']/type",
                     v)

    v = sr.Val("Ethernet 1", sr.SR_STRING_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth1']/description", v)

    v = sr.Val(True, sr.SR_BOOL_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth1']/ietf-ip:ipv4/enabled",
        v)

    v = sr.Val(1500, sr.SR_UINT16_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='eth1']/ietf-ip:ipv4/mtu",
        v)

    v = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='gigaeth0']/type", v)

    v = sr.Val("GigabitEthernet 0", sr.SR_STRING_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='gigaeth0']/description",
        v)

    v = sr.Val(False, sr.SR_BOOL_T)
    session.set_item(
        "/ietf-interfaces:interfaces/interface[name='gigaeth0']/enabled", v)

    session.apply_changes()
    session.session_stop()

    connection = None
コード例 #18
0
def create_test_module():
    connection = sr.Connection(sr.SR_CONN_DEFAULT)
    try:
        connection.install_module(
            os.environ['TESTS_DIR'] + "/files/test-module.yang",
            os.environ['TESTS_DIR'] + "/files", [])
    except Exception as e:
        print(e)

    connection = None

    connection = sr.Connection(sr.SR_CONN_DEFAULT)
    session = sr.Session(connection, sr.SR_DS_STARTUP)

    delete_all_items_test(session)

    v = sr.Val(XP_TEST_MODULE_ENUM_VALUE, sr.SR_ENUM_T)
    session.set_item(XP_TEST_MODULE_ENUM, v)

    v = sr.Val(XP_TEST_MODULE_RAW_VALUE, sr.SR_BINARY_T)
    session.set_item(XP_TEST_MODULE_RAW, v)

    v = sr.Val(XP_TEST_MODULE_BITS_VALUE, sr.SR_BITS_T)
    session.set_item(XP_TEST_MODULE_BITS, v)

    v = sr.Val(XP_TEST_MODULE_BOOL_VALUE_T, sr.SR_BOOL_T)
    session.set_item(XP_TEST_MODULE_BOOL, v)

    v = sr.Val(format(XP_TEST_MODULE_DEC64_VALUE_T, '.2f'))
    session.set_item(XP_TEST_MODULE_DEC64, v)

    v = sr.Val(None, sr.SR_LEAF_EMPTY_T)
    session.set_item(XP_TEST_MODULE_EMPTY, v)

    v = sr.Val(XP_TEST_MODULE_IDREF_VALUE, sr.SR_IDENTITYREF_T)
    session.set_item(XP_TEST_MODULE_IDREF, v)

    v = sr.Val(XP_TEST_MODULE_STRING_VALUE, sr.SR_STRING_T)
    session.set_item(XP_TEST_MODULE_STRING, v)

    v = sr.Val(XP_TEST_MODULE_INT8_VALUE_T, sr.SR_INT8_T)
    session.set_item(XP_TEST_MODULE_INT8, v)

    v = sr.Val(XP_TEST_MODULE_INT16_VALUE_T, sr.SR_INT16_T)
    session.set_item(XP_TEST_MODULE_INT16, v)

    v = sr.Val(XP_TEST_MODULE_INT32_VALUE_T, sr.SR_INT32_T)
    session.set_item(XP_TEST_MODULE_INT32, v)

    v = sr.Val(XP_TEST_MODULE_INT64_VALUE_T, sr.SR_INT64_T)
    session.set_item(XP_TEST_MODULE_INT64, v)

    v = sr.Val(XP_TEST_MODULE_UINT8_VALUE_T, sr.SR_UINT8_T)
    session.set_item(XP_TEST_MODULE_UINT8, v)

    v = sr.Val(XP_TEST_MODULE_UINT16_VALUE_T, sr.SR_UINT16_T)
    session.set_item(XP_TEST_MODULE_UINT16, v)

    v = sr.Val(XP_TEST_MODULE_UINT32_VALUE_T, sr.SR_UINT32_T)
    session.set_item(XP_TEST_MODULE_UINT32, v)

    v = sr.Val(XP_TEST_MODULE_UINT64_VALUE_T, sr.SR_UINT64_T)
    session.set_item(XP_TEST_MODULE_UINT64, v)

    for num in [1, 2, 42]:
        v = sr.Val(num, sr.SR_UINT8_T)
        session.set_item("/test-module:main/numbers", v)

    v = sr.Val(None, sr.SR_LIST_T)
    session.set_item("/test-module:list[key='k1']", v)

    v = sr.Val("id_1", sr.SR_IDENTITYREF_T)
    session.set_item("/test-module:list[key='k1']/id_ref", v)

    v = sr.Val(None, sr.SR_CONTAINER_PRESENCE_T)
    session.set_item("/test-module:list[key='k1']/wireless", v)

    v = sr.Val(None, sr.SR_LIST_T)
    session.set_item("/test-module:list[key='k2']", v)

    v = sr.Val("id_2", sr.SR_IDENTITYREF_T)
    session.set_item("/test-module:list[key='k2']/id_ref", v)

    session.apply_changes()
    session.session_stop()

    connection = None
コード例 #19
0
ファイル: TestModule.py プロジェクト: ultichipxinfu/sysrepo
def create_test_module():
    connection = sr.Connection("test-module")

    session = sr.Session(connection, sr.SR_DS_STARTUP)
    session.delete_item("/test-module:*")

    v = sr.Val(XP_TEST_MODULE_ENUM_VALUE, sr.SR_ENUM_T)
    session.set_item(XP_TEST_MODULE_ENUM, v)

    v = sr.Val(XP_TEST_MODULE_RAW_VALUE, sr.SR_BINARY_T)
    session.set_item(XP_TEST_MODULE_RAW, v)

    v = sr.Val(XP_TEST_MODULE_BITS_VALUE, sr.SR_BITS_T)
    session.set_item(XP_TEST_MODULE_BITS, v)

    v = sr.Val(XP_TEST_MODULE_BOOL_VALUE_T, sr.SR_BOOL_T)
    session.set_item(XP_TEST_MODULE_BOOL, v)

    v = sr.Val(XP_TEST_MODULE_DEC64_VALUE_T)
    session.set_item(XP_TEST_MODULE_DEC64, v)

    v = sr.Val(None, sr.SR_LEAF_EMPTY_T)
    session.set_item(XP_TEST_MODULE_EMPTY, v)

    v = sr.Val(XP_TEST_MODULE_IDREF_VALUE, sr.SR_IDENTITYREF_T)
    session.set_item(XP_TEST_MODULE_IDREF, v)

    v = sr.Val(XP_TEST_MODULE_STRING_VALUE, sr.SR_STRING_T)
    session.set_item(XP_TEST_MODULE_STRING, v)

    v = sr.Val(XP_TEST_MODULE_INT8_VALUE_T, sr.SR_INT8_T)
    session.set_item(XP_TEST_MODULE_INT8, v)

    v = sr.Val(XP_TEST_MODULE_INT16_VALUE_T, sr.SR_INT16_T)
    session.set_item(XP_TEST_MODULE_INT16, v)

    v = sr.Val(XP_TEST_MODULE_INT32_VALUE_T, sr.SR_INT32_T)
    session.set_item(XP_TEST_MODULE_INT32, v)

    v = sr.Val(XP_TEST_MODULE_INT64_VALUE_T, sr.SR_INT64_T)
    session.set_item(XP_TEST_MODULE_INT64, v)

    v = sr.Val(XP_TEST_MODULE_UINT8_VALUE_T, sr.SR_UINT8_T)
    session.set_item(XP_TEST_MODULE_UINT8, v)

    v = sr.Val(XP_TEST_MODULE_UINT16_VALUE_T, sr.SR_UINT16_T)
    session.set_item(XP_TEST_MODULE_UINT16, v)

    v = sr.Val(XP_TEST_MODULE_UINT32_VALUE_T, sr.SR_UINT32_T)
    session.set_item(XP_TEST_MODULE_UINT32, v)

    v = sr.Val(XP_TEST_MODULE_UINT64_VALUE_T, sr.SR_UINT64_T)
    session.set_item(XP_TEST_MODULE_UINT64, v)

    for num in [1, 2, 42]:
        v = sr.Val(num, sr.SR_UINT8_T)
        session.set_item("/test-module:main/numbers", v)

    session.set_item("/test-module:list[key='k1']", None)
    v = sr.Val("id_1", sr.SR_IDENTITYREF_T)
    session.set_item("/test-module:list[key='k1']/id_ref", v)

    v = sr.Val(None, sr.SR_CONTAINER_PRESENCE_T)
    session.set_item("/test-module:list[key='k1']/wireless", v)

    session.set_item("/test-module:list[key='k2']", None)
    v = sr.Val("id_2", sr.SR_IDENTITYREF_T)
    session.set_item("/test-module:list[key='k2']/id_ref", v)

    session.commit()
コード例 #20
0
ファイル: TestModule.py プロジェクト: ultichipxinfu/sysrepo
def create_ietf_interfaces():
    connection = sr.Connection("ietf-interfaces")

    session = sr.Session(connection, sr.SR_DS_STARTUP)
    session.delete_item("/ietf-interfaces:*")

    v = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/type", v)

    v = sr.Val("Ethernet 0", sr.SR_STRING_T);
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/description", v)

    v = sr.Val(True, sr.SR_BOOL_T);
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/enabled", v)

    v = sr.Val(24, sr.SR_UINT8_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/address[ip='192.168.2.100']/prefix-length", v)

    v = sr.Val(True, sr.SR_BOOL_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled", v)

    v = sr.Val(1500, sr.SR_UINT16_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/mtu", v)

    v = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth1']/type", v)

    v = sr.Val("Ethernet 1", sr.SR_STRING_T);
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth1']/description", v)

    v = sr.Val(True, sr.SR_BOOL_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth1']/ietf-ip:ipv4/enabled", v)

    v = sr.Val(1500, sr.SR_UINT16_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='eth1']/ietf-ip:ipv4/mtu", v)

    v = sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T)
    session.set_item("/ietf-interfaces:interfaces/interface[name='gigaeth0']/type", v)

    v = sr.Val("GigabitEthernet 0", sr.SR_STRING_T);
    session.set_item("/ietf-interfaces:interfaces/interface[name='gigaeth0']/description", v)

    v = sr.Val(False, sr.SR_BOOL_T);
    session.set_item("/ietf-interfaces:interfaces/interface[name='gigaeth0']/enabled", v)

    session.commit()
コード例 #21
0
    def test_notify_modify(self):
        tm = TestManager()

        srd = SysrepodDaemonTester("Srd")
        tester = SysrepoTester("Tester", sr.SR_DS_RUNNING,
                               sr.SR_CONN_DAEMON_REQUIRED, False)
        subscriber = NotificationTester("Subscriber")
        subscriber2 = NotificationTester("Subscriber2")
        subscriber3 = NotificationTester("Subscriber3")

        srd.add_step(srd.startDaemonStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.restartConnection)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.subscribeStep,
                            "/ietf-interfaces:interfaces")
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.subscribeStep,
                             "/example-module:container")

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(
            subscriber2.subscribeStep,
            "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4")
        subscriber3.add_step(subscriber3.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled",
            sr.Val(False, sr.SR_BOOL_T))
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitTimeoutStep, 0.4)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled"
        ]])
        subscriber2.add_step(subscriber2.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled"
        ]])
        subscriber3.add_step(subscriber3.checkNoNotificationArrived)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.cancelSubscriptionStep)
        subscriber2.add_step(subscriber2.cancelSubscriptionStep)
        subscriber3.add_step(subscriber3.cancelSubscriptionStep)

        srd.add_step(srd.stopDaemonStep)

        tm.add_tester(srd)
        tm.add_tester(tester)
        tm.add_tester(subscriber)
        tm.add_tester(subscriber2)
        tm.add_tester(subscriber3)
        tm.run()
コード例 #22
0
#!/usr/bin/env python3
import sysrepo as sr
conn = sr.Connection("test-client")
session = sr.Session(conn)

# Set item
val = sr.Val(True, sr.SR_BOOL_T)
session.set_item('/oven:oven/turned-on', val)
session.validate()
session.commit()

# Get Items
session.get_items("/oven:oven/*")
for val_num in range(vals.val_cnt()):
    val = vals.val(val_num)
    print(val.xpath())
    print(val.type())
    # to lookup at getting data. frmo val.data()

# This crashes on ARMv7 - it's the oper call.
session.get_items("/oven:*")
コード例 #23
0
 def test_validate(self):
     v = sr.Val(42, sr.SR_UINT8_T)
     self.session.set_item("/test-module:main/numbers", v)
コード例 #24
0
ファイル: CommitTest.py プロジェクト: zyboy2000/sysrepo
 def setItemStep(self):
     v = sr.Val(99, sr.SR_INT8_T)
     self.session.set_item("/test-module:main/i8", v)
コード例 #25
0
    def test_notify_modify(self):
        tm = TestManager()

        tester = SysrepoTester("Tester", sr.SR_DS_RUNNING, False)
        subscriber = NotificationTester("Subscriber")
        subscriber2 = NotificationTester("Subscriber2")
        subscriber3 = NotificationTester("Subscriber3")

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.subscribeStep, "ietf-interfaces",
                            "/ietf-interfaces:interfaces")
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.subscribeStep, "example-module",
                             "/example-module:container")

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(
            subscriber2.subscribeStep, "ietf-interfaces",
            "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4")
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/type",
            sr.Val("iana-if-type:ethernetCsmacd", sr.SR_IDENTITYREF_T))
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled",
            sr.Val(False, sr.SR_BOOL_T))
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled"
        ]])
        subscriber2.add_step(subscriber2.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled"
        ]])
        subscriber3.add_step(subscriber3.checkNoNotificationArrived)

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.cancelSubscriptionStep)
        subscriber2.add_step(subscriber2.cancelSubscriptionStep)
        subscriber3.add_step(subscriber3.cancelSubscriptionStep)

        tester.add_step(tester.stopSession)
        subscriber.add_step(subscriber.stopSession)
        subscriber2.add_step(subscriber2.stopSession)
        subscriber3.add_step(subscriber3.stopSession)

        tester.add_step(tester.disconnect)
        subscriber.add_step(subscriber.disconnect)
        subscriber2.add_step(subscriber2.disconnect)
        subscriber3.add_step(subscriber3.disconnect)

        tm.add_tester(tester)
        tm.add_tester(subscriber)
        tm.add_tester(subscriber2)
        tm.add_tester(subscriber3)
        tm.run()
コード例 #26
0
    def test_notify_changes_in_multiple_modules(self):
        tm = TestManager()

        tester = SysrepoTester("Tester", sr.SR_DS_RUNNING, False)
        subscriber = NotificationTester("Subscriber")
        subscriber2 = NotificationTester("Subscriber2")
        subscriber3 = NotificationTester("Subscriber3")

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.subscribeStep, "ietf-interfaces",
                            "/ietf-interfaces:interfaces")
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.subscribeStep, "example-module",
                             "/example-module:container")

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(
            subscriber2.subscribeStep, "ietf-interfaces",
            "/ietf-interfaces:interfaces/interface/ietf-ip:ipv4/address")
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled",
            sr.Val(False, sr.SR_BOOL_T))
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(
            tester.setItemStep,
            "/example-module:container/list[key1='abc'][key2='def']/leaf",
            sr.Val("new value", sr.SR_STRING_T))
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(
            tester.deleteItemStep,
            "/example-module:container/list[key1='key1'][key2='key2']/leaf")
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)
        subscriber2.add_step(subscriber2.waitStep)
        subscriber3.add_step(subscriber3.waitStep)

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/enabled"
        ]])
        subscriber2.add_step(subscriber2.checkNoNotificationArrived)
        subscriber3.add_step(
            subscriber3.checkNotificationStep,
            [[
                "DELETED",
                "/example-module:container/list[key1='key1'][key2='key2']/leaf"
            ],
             [
                 "CREATED",
                 "/example-module:container/list[key1='abc'][key2='def']"
             ],
             [
                 "CREATED",
                 "/example-module:container/list[key1='abc'][key2='def']/key1"
             ],
             [
                 "CREATED",
                 "/example-module:container/list[key1='abc'][key2='def']/key2"
             ],
             [
                 "CREATED",
                 "/example-module:container/list[key1='abc'][key2='def']/leaf"
             ]])

        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.cancelSubscriptionStep)
        subscriber2.add_step(subscriber2.cancelSubscriptionStep)
        subscriber3.add_step(subscriber3.cancelSubscriptionStep)

        tester.add_step(tester.stopSession)
        subscriber.add_step(subscriber.stopSession)
        subscriber2.add_step(subscriber2.stopSession)
        subscriber3.add_step(subscriber3.stopSession)

        tester.add_step(tester.disconnect)
        subscriber.add_step(subscriber.disconnect)
        subscriber2.add_step(subscriber2.disconnect)
        subscriber3.add_step(subscriber3.disconnect)

        tm.add_tester(tester)
        tm.add_tester(subscriber)
        tm.add_tester(subscriber2)
        tm.add_tester(subscriber3)
        tm.run()
コード例 #27
0
ファイル: subscriber.py プロジェクト: hbarawkar/integration
def timestamper(sess, key_id):
    xpath = xpath_of(key_id, 'state-change-time')
    now = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())
    state = sr.Val(now, sr.SR_STRING_T)
    sess.set_item(xpath, state)
コード例 #28
0
ファイル: RunningDSTest.py プロジェクト: trotux/sysrepo
 def changeRunning(self):
     # Modify the running and apply
     v = sr.Val("in_running", sr.SR_STRING_T)
     self.session.set_item(TEST_PATH, v)
     self.commitStep()
コード例 #29
0
    def test_change_default_node(self):

        TestModule.create_ietf_interfaces()
        tm = TestManager()
        srd = SysrepodDaemonTester("Srd")
        tester = SysrepoTester("Tester", sr.SR_DS_RUNNING,
                               sr.SR_CONN_DAEMON_REQUIRED, False)
        subscriber = NotificationTester("Subscriber")

        srd.add_step(srd.startDaemonStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.restartConnection)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.subscribeStep,
                            "/ietf-interfaces:interfaces")

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(
            tester.setItemStep,
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/forwarding",
            sr.Val(True, sr.SR_BOOL_T))
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.commitStep)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitTimeoutStep, 0.4)
        subscriber.add_step(subscriber.waitStep)

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        #setting a leaf with default value -> MODIFIED
        subscriber.add_step(subscriber.checkNotificationStep, [[
            "MODIFIED",
            "/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/forwarding"
        ]])

        srd.add_step(srd.waitStep)
        tester.add_step(tester.waitStep)
        subscriber.add_step(subscriber.cancelSubscriptionStep)

        srd.add_step(srd.stopDaemonStep)

        tm.add_tester(srd)
        tm.add_tester(tester)
        tm.add_tester(subscriber)

        tm.run()