Exemplo n.º 1
0
    def test_for_bad_node_in_lsp_data(self):

        err_msg = "No Node with name Y in Model"

        with self.assertRaises(ModelException) as context:
            PerformanceModel.load_model_file('test/model_bad_node_in_lsp.csv')
        self.assertIn(err_msg, context.exception.args[0])
 def test_interface_fields_missing_model_file_load(self):
     err_msg = "node_name, remote_node_name, name, cost, and capacity must be defined for line"
     with self.assertRaises(ModelException) as context:
         PerformanceModel.load_model_file(
             "test/interface_field_info_missing_routing_topology.csv"
         )
     self.assertTrue(err_msg in err_msg in context.exception.args[0])
Exemplo n.º 3
0
    def test_traffic_non_failed_int(self):
        model = PerformanceModel.load_model_file('test/igp_routing_topology.csv')
        model.update_simulation()

        int_a_b = model.get_interface_object('A-to-B', 'A')

        self.assertTrue(int_a_b.traffic, 20)
Exemplo n.º 4
0
    def test_equality(self):
        model = PerformanceModel.load_model_file('test/igp_routing_topology.csv')
        model.update_simulation()
        ckt_1 = model.get_circuit_object_from_interface('A-to-B', 'A')
        int_a, int_b = ckt_1.get_circuit_interfaces(model)

        self.assertNotEqual(int_a, int_b)
Exemplo n.º 5
0
    def test_ckt_non_failure(self):
        model = PerformanceModel.load_model_file('test/igp_routing_topology.csv')
        model.update_simulation()

        ckt_1 = model.get_circuit_object_from_interface('A-to-B', 'A')

        self.assertFalse(ckt_1.failed(model))
Exemplo n.º 6
0
 def test_ckt_mismatch_int_capacity_file_load(self):
     err_msg = 'circuits_with_mismatched_interface_capacity'
     model = PerformanceModel.load_model_file(
         'test/mismatched_ckt_int_capacity_topology_file.csv')
     with self.assertRaises(ModelException) as context:
         model.update_simulation()
     self.assertTrue(err_msg in context.exception.args[0][1][0].keys())
Exemplo n.º 7
0
    def test_remove_interface_from_srlg(self):
        model = PerformanceModel.load_model_file(
            "test/model_test_topology.csv")
        model.update_simulation()
        int_a_b = model.get_interface_object("A-to-B", "A")
        int_b_a = int_a_b.get_remote_interface(model)

        model.add_srlg("new_srlg")
        model.update_simulation()

        int_a_b.add_to_srlg("new_srlg", model)
        model.update_simulation()

        srlg = model.get_srlg_object("new_srlg")

        self.assertIn(int_a_b, srlg.interface_objects)
        self.assertIn(int_b_a, srlg.interface_objects)
        self.assertIn(srlg, int_a_b.srlgs)
        self.assertIn(srlg, int_b_a.srlgs)

        int_b_a.remove_from_srlg("new_srlg", model)
        model.update_simulation()

        self.assertNotIn(int_a_b, srlg.interface_objects)
        self.assertNotIn(int_b_a, srlg.interface_objects)
        self.assertNotIn(srlg, int_a_b.srlgs)
        self.assertNotIn(srlg, int_b_a.srlgs)
Exemplo n.º 8
0
    def test_int_in_two_SRLGs(self):
        model = PerformanceModel.load_model_file(
            "test/igp_routing_topology.csv")
        int_a_b = model.get_interface_object("A-to-B", "A")
        model.update_simulation()

        int_a_b.add_to_srlg("new_srlg", model, create_if_not_present=True)
        int_a_b.add_to_srlg("new_srlg_2", model, create_if_not_present=True)
        new_srlg = model.get_srlg_object("new_srlg")
        new_srlg_2 = model.get_srlg_object("new_srlg_2")

        model.fail_srlg("new_srlg")
        model.fail_srlg("new_srlg_2")
        model.update_simulation()

        self.assertTrue(new_srlg.failed)
        self.assertTrue(new_srlg_2.failed)
        self.assertTrue(int_a_b.failed)

        model.unfail_srlg("new_srlg")
        model.update_simulation()

        # node_a should stay failed since it's part of another SRLG
        # that is still failed
        self.assertTrue(int_a_b.failed)
Exemplo n.º 9
0
 def test_get_unfailed_ints_2(self):
     model = PerformanceModel.load_model_file(
         'test/model_test_topology.csv')
     model.update_simulation()
     model.fail_interface('A-to-B', 'A')
     model.update_simulation()
     self.assertEqual(len(model.get_unfailed_interface_objects()), 16)
Exemplo n.º 10
0
 def test_fail_node(self):
     model = PerformanceModel.load_model_file(
         'test/model_test_topology.csv')
     model.update_simulation()
     model.fail_node('A')
     model.update_simulation()
     self.assertTrue(model.get_node_object('A').failed)
Exemplo n.º 11
0
    def test_demand_behavior(self):
        model = PerformanceModel.load_model_file(
            "test/igp_routing_topology.csv")

        model.update_simulation()

        dmd_a_f = model.get_demand_object("A", "F", "dmd_a_f_1")

        # Demand routes initially
        self.assertNotEqual(dmd_a_f.path, "Unrouted")

        # Demand should not route if source node is down
        model.fail_node("A")
        model.update_simulation()
        self.assertEqual(dmd_a_f.path, "Unrouted")

        # Demand should route when source node unfails
        model.unfail_node("A")
        model.update_simulation()
        self.assertNotEqual(dmd_a_f.path, "Unrouted")

        # Demand should not route when dest node fails
        model.fail_node("F")
        model.update_simulation()
        self.assertEqual(dmd_a_f.path, "Unrouted")

        # Demand should route when dest node unfails
        model.unfail_node("F")
        model.update_simulation()
        self.assertNotEqual(dmd_a_f.path, "Unrouted")
Exemplo n.º 12
0
 def test_failed_node_interfaces(self):
     model = PerformanceModel.load_model_file(
         'test/model_test_topology.csv')
     model.update_simulation()
     model.fail_node('A')
     model.update_simulation()
     self.assertEqual(len(model.get_failed_interface_objects()), 8)
    def test_model_load_perf_model(self):
        model = PerformanceModel.load_model_file(
            'test/lsp_manual_metric_test_model.csv')
        model.update_simulation()
        lsp_a_d_1 = model.get_rsvp_lsp('A', 'D', 'lsp_a_d_1')
        lsp_a_d_2 = model.get_rsvp_lsp('A', 'D', 'lsp_a_d_2')
        lsp_a_d_3 = model.get_rsvp_lsp('A', 'D', 'lsp_a_d_3')
        lsp_a_d_4 = model.get_rsvp_lsp('A', 'D', 'lsp_a_d_4')

        self.assertEqual(lsp_a_d_1.effective_metric(model), 5)
        self.assertEqual(lsp_a_d_1.manual_metric, 5)
        self.assertEqual(lsp_a_d_1.topology_metric(model), 40)
        self.assertEqual(lsp_a_d_1.configured_setup_bandwidth, 4)
        self.assertEqual(lsp_a_d_1.setup_bandwidth, 4)
        self.assertNotEqual(lsp_a_d_1.path, 'Unrouted')

        self.assertEqual(lsp_a_d_2.effective_metric(model), 10)
        self.assertEqual(lsp_a_d_2.manual_metric, 10)
        self.assertEqual(lsp_a_d_2.topology_metric(model), 40)
        self.assertNotEqual(lsp_a_d_2.path, 'Unrouted')

        self.assertEqual(lsp_a_d_3.effective_metric(model), 40)
        self.assertEqual(lsp_a_d_3.topology_metric(model), 40)
        self.assertEqual(lsp_a_d_3.manual_metric, 'not set')
        self.assertNotEqual(lsp_a_d_3.path, 'Unrouted')

        self.assertEqual(lsp_a_d_4.effective_metric(model), 40)
        self.assertEqual(lsp_a_d_4.manual_metric, 'not set')
        self.assertEqual(lsp_a_d_4.topology_metric(model), 40)
        self.assertEqual(lsp_a_d_4.configured_setup_bandwidth, 4)
        self.assertEqual(lsp_a_d_4.setup_bandwidth, 4)
        self.assertNotEqual(lsp_a_d_4.path, 'Unrouted')
Exemplo n.º 14
0
    def test_int_in_SRLG_failed_node(self):
        model = PerformanceModel.load_model_file(
            "test/igp_routing_topology.csv")
        model.update_simulation()

        int_a_b = model.get_interface_object("A-to-B", "A")
        int_b_a = int_a_b.get_remote_interface(model)

        int_a_b.add_to_srlg("new_srlg", model, create_if_not_present=True)
        int_a_b.add_to_srlg("new_srlg_2", model, create_if_not_present=True)
        new_srlg = model.get_srlg_object("new_srlg")

        model.fail_node("A")
        model.fail_srlg("new_srlg")
        model.update_simulation()

        self.assertTrue(new_srlg.failed)
        self.assertTrue(int_a_b.failed)

        model.unfail_srlg("new_srlg")
        model.update_simulation()

        # int_a_b and int_b_a should stay failed since Node('A') is also failed
        self.assertTrue(int_a_b.failed)
        self.assertTrue(int_b_a.failed)
Exemplo n.º 15
0
    def test_failed_int_node_srlg(self):
        model = PerformanceModel.load_model_file(
            "test/model_test_topology.csv")
        model.update_simulation()
        int_a_b = model.get_interface_object("A-to-B", "A")
        int_b_a = int_a_b.get_remote_interface(model)
        node_a = model.get_node_object("A")

        model.add_srlg("new_srlg")
        model.update_simulation()

        int_a_b.add_to_srlg("new_srlg", model)
        model.update_simulation()

        srlg = model.get_srlg_object("new_srlg")

        model.fail_node("A")
        model.fail_srlg("new_srlg")
        model.update_simulation()

        self.assertTrue(int_a_b.failed)
        self.assertTrue(int_b_a.failed)

        # Unfail the SRLG, int_a_b and int_b_a should stay failed
        model.unfail_srlg("new_srlg")
        model.update_simulation()

        self.assertFalse(srlg.failed)
        self.assertTrue(node_a.failed)
        self.assertTrue(int_a_b.failed)
        self.assertTrue(int_b_a.failed)
Exemplo n.º 16
0
    def test_get_bad_srlg_no_exception(self):
        model = PerformanceModel.load_model_file(
            "test/igp_routing_topology.csv")

        bad_srlg = model.get_srlg_object("bad_srlg", raise_exception=False)

        self.assertEqual(bad_srlg, None)
    def test_get_ckt(self):
        model = PerformanceModel.load_model_file("test/igp_routing_topology.csv")
        model.update_simulation()

        ckt = model.get_circuit_object_from_interface("A-to-B", "A")

        self.assertIn(ckt, model.circuit_objects)
    def test_model_load_perf_model(self):
        model = PerformanceModel.load_model_file(
            "test/lsp_manual_metric_test_model.csv")
        model.update_simulation()
        lsp_a_d_1 = model.get_rsvp_lsp("A", "D", "lsp_a_d_1")
        lsp_a_d_2 = model.get_rsvp_lsp("A", "D", "lsp_a_d_2")
        lsp_a_d_3 = model.get_rsvp_lsp("A", "D", "lsp_a_d_3")
        lsp_a_d_4 = model.get_rsvp_lsp("A", "D", "lsp_a_d_4")

        self.assertEqual(lsp_a_d_1.effective_metric(model), 5)
        self.assertEqual(lsp_a_d_1.manual_metric, 5)
        self.assertEqual(lsp_a_d_1.topology_metric(model), 40)
        self.assertEqual(lsp_a_d_1.configured_setup_bandwidth, 4)
        self.assertEqual(lsp_a_d_1.setup_bandwidth, 4)
        self.assertNotEqual(lsp_a_d_1.path, "Unrouted")

        self.assertEqual(lsp_a_d_2.effective_metric(model), 10)
        self.assertEqual(lsp_a_d_2.manual_metric, 10)
        self.assertEqual(lsp_a_d_2.topology_metric(model), 40)
        self.assertNotEqual(lsp_a_d_2.path, "Unrouted")

        self.assertEqual(lsp_a_d_3.effective_metric(model), 40)
        self.assertEqual(lsp_a_d_3.topology_metric(model), 40)
        self.assertEqual(lsp_a_d_3.manual_metric, "not set")
        self.assertNotEqual(lsp_a_d_3.path, "Unrouted")

        self.assertEqual(lsp_a_d_4.effective_metric(model), 40)
        self.assertEqual(lsp_a_d_4.manual_metric, "not set")
        self.assertEqual(lsp_a_d_4.topology_metric(model), 40)
        self.assertEqual(lsp_a_d_4.configured_setup_bandwidth, 4)
        self.assertEqual(lsp_a_d_4.setup_bandwidth, 4)
        self.assertNotEqual(lsp_a_d_4.path, "Unrouted")
    def test_interface_in_failed_srlg(self):
        model = PerformanceModel.load_model_file(
            'test/model_test_topology.csv')
        model.update_simulation()
        int_a_b = model.get_interface_object('A-to-B', 'A')
        int_b_a = int_a_b.get_remote_interface(model)

        model.add_srlg('new_srlg')
        model.update_simulation()

        int_a_b.add_to_srlg('new_srlg', model)
        model.update_simulation()

        srlg = model.get_srlg_object('new_srlg')

        self.assertIn(int_a_b, srlg.interface_objects)
        self.assertIn(int_b_a, srlg.interface_objects)
        self.assertIn(srlg, int_a_b.srlgs)
        self.assertIn(srlg, int_b_a.srlgs)
        self.assertFalse(int_a_b.failed)
        self.assertFalse(int_b_a.failed)

        model.fail_srlg('new_srlg')
        model.update_simulation()

        self.assertTrue(int_a_b.failed)
        self.assertTrue(int_b_a.failed)
    def test_node_in_two_srlgs(self):
        model = PerformanceModel.load_model_file(
            'test/igp_routing_topology.csv')
        node_a = model.get_node_object('A')
        model.update_simulation()

        node_a.add_to_srlg('new_srlg', model, create_if_not_present=True)
        node_a.add_to_srlg('new_srlg_2', model, create_if_not_present=True)
        new_srlg = model.get_srlg_object('new_srlg')
        new_srlg_2 = model.get_srlg_object('new_srlg_2')

        model.fail_srlg('new_srlg')
        model.fail_srlg('new_srlg_2')
        model.update_simulation()

        self.assertTrue(new_srlg.failed)
        self.assertTrue(new_srlg_2.failed)
        self.assertTrue(node_a.failed)

        model.unfail_srlg('new_srlg')
        model.update_simulation()

        # node_a should stay failed since it's part of another SRLG
        # that is still failed
        self.assertTrue(node_a.failed)
    def test_get_bad_dmd(self):
        model = PerformanceModel.load_model_file("test/igp_routing_topology.csv")
        model.update_simulation()

        with self.assertRaises(ModelException) as context:
            model.get_demand_object("F", "A", "bad_demand")
        self.assertIn("no matching demand", context.exception.args[0])
Exemplo n.º 22
0
    def test_get_bad_srlg(self):
        model = PerformanceModel.load_model_file(
            "test/igp_routing_topology.csv")

        err_msg = "No SRLG with name bad_srlg exists in Model"
        with self.assertRaises(ModelException) as context:
            model.get_srlg_object("bad_srlg")
        self.assertTrue(err_msg in context.exception.args[0])
 def test_duplicate_srlg(self):
     model = PerformanceModel.load_model_file(
         'test/igp_routing_topology.csv')
     SRLG('new_srlg', model)
     err_msg = 'SRLG with name new_srlg already exists in Model'
     with self.assertRaises(ModelException) as context:
         SRLG('new_srlg', model)
     self.assertTrue(err_msg in context.exception.args[0])
Exemplo n.º 24
0
 def test_duplicate_srlg_2(self):
     model = PerformanceModel.load_model_file(
         "test/igp_routing_topology.csv")
     model.add_srlg("new_srlg")
     err_msg = "SRLG with name new_srlg already exists in Model"
     with self.assertRaises(ModelException) as context:
         model.add_srlg("new_srlg")
     self.assertTrue(err_msg in context.exception.args[0])
Exemplo n.º 25
0
    def test_get_bad_dmd(self):
        model = PerformanceModel.load_model_file(
            'test/igp_routing_topology.csv')
        model.update_simulation()

        with self.assertRaises(ModelException) as context:
            model.get_demand_object('F', 'A', 'bad_demand')
        self.assertIn('no matching demand', context.exception.args[0])
Exemplo n.º 26
0
    def test_shortest_path(self):
        model = PerformanceModel.load_model_file(
            'test/lsp_configured_setup_bw_model.csv')
        model.update_simulation()
        lsp_a_d_3 = model.get_rsvp_lsp('A', 'D', 'lsp_a_d_3')

        self.assertEqual(len(lsp_a_d_3.path['interfaces']), 1)
        self.assertEqual(lsp_a_d_3.path['interfaces'][0]._key, ('A-to-D', 'A'))
Exemplo n.º 27
0
    def test_demands_non_failed(self):
        model = PerformanceModel.load_model_file('test/igp_routing_topology.csv')
        model.update_simulation()

        int_a_b = model.get_interface_object('A-to-B', 'A')
        dmd_a_f_1 = model.get_demand_object('A', 'F', 'dmd_a_f_1')

        self.assertEqual(int_a_b.demands(model), [dmd_a_f_1])
    def test_get_unrouted_dmds(self):
        model = PerformanceModel.load_model_file("test/igp_routing_topology.csv")
        model.update_simulation()
        model.fail_node("D")
        model.update_simulation()
        dmd_a_f = model.get_demand_object("A", "F", "dmd_a_f_1")

        self.assertTrue(dmd_a_f, model.get_unrouted_demand_objects())
Exemplo n.º 29
0
 def test_config_setup_bw_model_load(self):
     model = PerformanceModel.load_model_file(
         'test/lsp_configured_setup_bw_model.csv')
     model.update_simulation()
     self.assertEqual(
         model.__repr__(),
         'PerformanceModel(Interfaces: 18, Nodes: 7, Demands: 4, RSVP_LSPs: 4)'
     )
 def test_all_paths_needed_bw(self):
     model = PerformanceModel.load_model_file("test/model_test_topology.csv")
     model.update_simulation()
     all_paths = model.get_all_paths_reservable_bw("A", "D", False, 10)
     self.assertEqual(len(all_paths["path"]), 4)
     path_lengths = [len(path) for path in all_paths["path"]]
     path_lengths.sort()
     self.assertEqual(path_lengths, [1, 2, 2, 3])