예제 #1
0
    def test_create_gre_tunnel_on_demand(self):
        enable_logging(logging.ERROR)

        from ydk.models.ydktest import ydktest_sanity as ysanity
        from ydk.providers import NetconfServiceProvider
        from ydk.services  import CRUDService

        provider = NetconfServiceProvider(
            "127.0.0.1",
            "admin",
            "admin",
            12022)

        native = ysanity.Native()

        tunnel = native.interface.Tunnel()
        tunnel.name = 521
        tunnel.description = "test tunnel"
        
        # Configure protocol-over-protocol tunneling
        tunnel.tunnel.source = "1.2.3.4"
        tunnel.tunnel.destination = "4.3.2.1"
        tunnel.tunnel.bandwidth.receive = 100000
        tunnel.tunnel.bandwidth.transmit = 100000
        
        native.interface.tunnel.append(tunnel)
        
        crud_service = CRUDService();
        crud_service.create(provider, native)
예제 #2
0
    def test_config_add_del(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        config = Config()
        config.append(runner)
        self.assertEqual(len(config), 1)
        self.assertEqual(
            format(config),
            "Entities in Config: ['ydk.models.ydktest.ydktest_sanity.Runner']")

        config.append(native)
        self.assertEqual(len(config), 2)
        self.assertEqual(config.has_key(runner.path()), True)
        self.assertEqual(
            format(config),
            "Entities in Config: ['ydk.models.ydktest.ydktest_sanity.Runner', 'ydk.models.ydktest.ydktest_sanity.Native']"
        )

        del config[native.path()]
        self.assertEqual(len(config), 1)
        self.assertEqual(config.has_key(native.path()), False)

        del config[runner]
        self.assertEqual(len(config), 0)
예제 #3
0
    def test_access_config_by_item_no(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        config = Config([runner, native])
        self.assertEqual(format(config[0]), "ydk.models.ydktest.ydktest_sanity.Runner")
        self.assertEqual(format(config[1]), "ydk.models.ydktest.ydktest_sanity.Native")
        config.clear()
예제 #4
0
    def test_access_config_by_iter(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        config = Config(runner, native)
        for entity in config:
            print(entity)

        self.assertEqual(len(config), 2)
        config.clear()
예제 #5
0
    def test_edit_get_config_collection(self):
        runner = ysanity.Runner()
        runner.two.number = 2
        runner.two.name = 'runner-two-name'

        native = ysanity.Native()
        native.hostname = 'NewHostName'
        native.version = '0.1.0a'

        edit_config = Config([runner, native])

        op = self.netconf_service.edit_config(self.ncc, Datastore.candidate, edit_config)
        self.assertEqual(True, op)

        get_filter = Filter([ysanity.Runner(), ysanity.Native()])
        config = self.netconf_service.get_config(self.ncc, Datastore.candidate, get_filter)
        self.assertEqual(edit_config, config)

        op = self.netconf_service.discard_changes(self.ncc)
예제 #6
0
    def test_access_config_by_key(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        config = Config(runner, native)
        for key in config.keys():
            if key=='ydktest-sanity:runner':
                self.assertEqual(config[key].path(), 'ydktest-sanity:runner')
            else:
                self.assertEqual(config[key].path(), 'ydktest-sanity:native')
        config.clear()
예제 #7
0
    def test_crud_read_collection(self):
        crud = CRUDService()

        # Build configuration of multiple objects
        create_list = Config()

        native = ysanity.Native()
        native.hostname = 'NativeHost'
        native.version = '0.1.0'
        create_list.append(native)

        bgp = openconfig.Bgp()
        bgp.global_.config.as_ = 65001
        bgp.global_.config.router_id = "1.2.3.4"
        create_list.append(bgp)

        create_list = Config([native, bgp])

        # Configure device
        result = crud.create(self.ncc, create_list)
        self.assertEqual(result, True)

        # Read configuration
        read_filter = Filter([ysanity.Native(),
                              openconfig.Bgp()])
        read_config = crud.read(self.ncc, read_filter)
        self.assertEqual(isinstance(read_config, Config), True)
        self.assertEqual(len(read_config), 2)

        # Print configuration
        codec_service = CodecService()
        codec_provider = CodecServiceProvider()
        codec_provider.encoding = EncodingFormat.XML
        for entity in read_config:
            xml = codec_service.encode(codec_provider, entity)
            print('\n===== Printing entity: {}'.format(entity))
            print(xml)

        # Delete configuration
        result = crud.delete(self.ncc, create_list)
        self.assertEqual(result, True)
예제 #8
0
    def test_filter_list(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        read_filter = Filter(runner, native)

        self.assertEqual(read_filter.keys(), ['ydktest-sanity:runner', 'ydktest-sanity:native'])
        all_entities = read_filter.entities()
        self.assertEqual(format(all_entities[0]), 'ydk.models.ydktest.ydktest_sanity.Runner')
        self.assertEqual(format(all_entities[1]), 'ydk.models.ydktest.ydktest_sanity.Native')

        self.assertEqual(format(read_filter[runner]), 'ydk.models.ydktest.ydktest_sanity.Runner')
        self.assertEqual(format(read_filter[runner.path()]), 'ydk.models.ydktest.ydktest_sanity.Runner')
        read_filter.clear()
예제 #9
0
    def test_sanity_crud_read_interface(self):
        enable_logging(logging.ERROR)

        address = ysanity.Native.Interface.Loopback.Ipv4.Address();
        address.ip = "2.2.2.2"
        address.netmask = "255.255.255.255"

        loopback = ysanity.Native.Interface.Loopback()
        loopback.name = 2222
        loopback.ipv4.address.append(address)

        native = ysanity.Native()
        native.interface.loopback.append(loopback)

        crud = CRUDService()
        result = crud.create(self.ncc, native)

        native_read = ysanity.Native()
        interfaces = crud.read(self.ncc, native_read)

        codec_service = CodecService()
        codec_provider = CodecServiceProvider()
        codec_provider.encoding = EncodingFormat.XML
        xml_encode = codec_service.encode(codec_provider, interfaces)
예제 #10
0
    def test_init_delete(self):
        runner = ysanity.Runner()
        native = ysanity.Native()

        anydata = Config(runner)
        deleted = anydata.pop(0)
        self.assertEqual(deleted.__class__.__name__, "Runner")

        anydata = Config()
        anydata.append([runner, native])

        deleted = anydata.pop('ydktest-sanity:native')
        self.assertEqual(len(anydata), 1)
        self.assertEqual(deleted.__class__.__name__, "Native")

        deleted = anydata.pop('ydktest-sanity:native')
        self.assertEqual(deleted, None)

        deleted = anydata.pop(runner)
        self.assertEqual(deleted.__class__.__name__, "Runner")