Beispiel #1
0
    def create_from_packed(cls, packed):
        ports = None
        ports_except = None
        if packed[cls.PORTS] is not None:
            ports = packed[cls.PORTS]
            ports_except = None
        else:
            ports_except = packed[cls.PORTS_EXCEPT]
            ports = None

        return cls(packed[cls.PACKET_ID], packed[cls.TYPE],
                   packed[cls.ATTRIBUTES],
                   packed[cls.NODE], ports, ports_except,
                   BasicFlowMatch.create_from_packed(packed[cls.HEADER]),
                   packed[cls.DATA])
Beispiel #2
0
    def create_from_packed(cls, packed):
        version = None
        if cls.VERSION in packed:
            version = packed[cls.VERSION]

        matches = []
        for match in packed[cls.MATCHES]:
            matches.append(BasicFlowMatch.create_from_packed(match))

        edge_actions = {}
        for node_id, basic_flow_actions in packed[cls.EDGE_ACTIONS].items():
            flow_action_list = []
            for flow_action in basic_flow_actions:
                flow_action_list.append(globals()[flow_action[
                    FlowAction.TYPE]].create_from_packed(flow_action))
            edge_actions[node_id] = flow_action_list

        return cls(packed[cls.TYPE], version, packed[cls.FLOW_ID],
                   packed[cls.OWNER], packed[cls.ENABLED],
                   packed[cls.PRIORITY], packed[cls.STATUS],
                   packed[cls.ATTRIBUTES], matches, packed[cls.PATH],
                   edge_actions)
Beispiel #3
0
    def create_from_packed(cls, packed):
        version = None
        if cls.VERSION in packed:
            version = packed[cls.VERSION]

        matches = []
        for match in packed[cls.MATCHES]:
            matches.append(BasicFlowMatch.create_from_packed(match))

        edge_actions = {}
        for node_id, basic_flow_actions in packed[cls.EDGE_ACTIONS].items():
            flow_action_list = []
            for flow_action in basic_flow_actions:
                flow_action_list.append(
                    globals()[flow_action[FlowAction.TYPE]].
                    create_from_packed(flow_action))
            edge_actions[node_id] = flow_action_list

        return cls(packed[cls.TYPE], version,
                   packed[cls.FLOW_ID], packed[cls.OWNER], packed[cls.ENABLED],
                   packed[cls.PRIORITY], packed[cls.STATUS],
                   packed[cls.ATTRIBUTES], matches,
                   packed[cls.PATH], edge_actions)
Beispiel #4
0
 def create_from_packed(cls, packed):
     return cls(packed[cls.PACKET_ID], packed[cls.TYPE],
                packed[cls.ATTRIBUTES], packed[cls.NODE], packed[cls.PORT],
                BasicFlowMatch.create_from_packed(packed[cls.HEADER]),
                packed[cls.DATA])
Beispiel #5
0
 def test_in_port_port_None(self):
     self.port_None_target = BasicFlowMatch(self.Type, self.In_node, None)
     self.assertIsNone(self.port_None_target.in_port)
Beispiel #6
0
 def setUp(self):
     self.target = BasicFlowMatch(self.Type, self.In_node, self.In_port)
Beispiel #7
0
class BasicFlowMatchTest(unittest.TestCase):
    Type = "BasicFlowMatch"
    In_node = "node_id"
    In_port = "ANY"

    def setUp(self):
        self.target = BasicFlowMatch(self.Type, self.In_node, self.In_port)

    def tearDown(self):
        self.target = None

    def test_constructor(self):
        self.assertEqual(self.target._body[self.target.TYPE], self.Type)
        self.assertEqual(self.target._body[self.target.IN_NODE], self.In_node)
        self.assertEqual(self.target._body[self.target.IN_PORT], self.In_port)

    def test_type_property(self):
        self.assertEqual(self.target.type, self.Type)

    def test_in_node_property(self):
        self.assertEqual(self.target.in_node, self.In_node)

    def test_in_node_setter(self):
        self.assertEqual(self.target._body[self.target.IN_NODE],
                         self.In_node)
        self.target.in_node = "node_id_second"
        self.assertEqual(self.target._body[self.target.IN_NODE],
                         "node_id_second")

    def test_in_port_port_NotNone(self):
        self.assertEqual(self.target.in_port, self.In_port)

    def test_in_port_port_None(self):
        self.port_None_target = BasicFlowMatch(self.Type, self.In_node, None)
        self.assertIsNone(self.port_None_target.in_port)

    def test_in_port_port_setter(self):
        self.assertEqual(self.target._body[self.target.IN_PORT], self.In_port)
        self.target.in_port = "port_id"
        self.assertEqual(self.target._body[self.target.IN_PORT],
                         "port_id")

    def test_create_from_packed_port_NotNone(self):
        self.value = {"type": self.Type,
                      "in_node": "In_node01",
                      "in_port": "In_port01"}
        self.result = self.target.create_from_packed(self.value)
        self.assertEqual(self.result._body[self.target.TYPE], self.Type)
        self.assertEqual(self.result._body[self.target.IN_NODE], "In_node01")
        self.assertEqual(self.result._body[self.target.IN_PORT], "In_port01")

    def test_create_from_packed_port_None(self):
        self.value = {"type": self.Type,
                      "in_node": "In_node01"}
        self.result = self.target.create_from_packed(self.value)
        self.assertEqual(self.result._body, self.value)

    def test_packed_object(self):
        self.result = self.target.packed_object()
        self.assertEqual(self.result[self.target.TYPE], self.Type)
        self.assertEqual(self.result[self.target.IN_NODE], self.In_node)
        self.assertEqual(self.result[self.target.IN_PORT], self.In_port)
Beispiel #8
0
 def create_from_packed(cls, packed):
     return cls(packed[cls.PACKET_ID], packed[cls.TYPE],
                packed[cls.ATTRIBUTES],
                packed[cls.NODE], packed[cls.PORT],
                BasicFlowMatch.create_from_packed(packed[cls.HEADER]),
                packed[cls.DATA])