Passed
Push — master ( 151596...743f3c )
by Humberto
01:26 queued 12s
created

build.serializers.base.FlowSerializer.from_dict()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 3
ccs 1
cts 1
cp 1
rs 10
c 0
b 0
f 0
cc 1
nop 2
crap 1
1
"""Abstract class for serializing flows."""
2 1
from abc import ABC, abstractmethod
3
4 1
from pyof.v0x01.controller2switch.flow_mod import \
5
    FlowModCommand as CommonFlowModCommand
6
7
8 1
class FlowSerializer(ABC):
9
    """Common code for OF 1.0 and 1.3 flow serialization.
10
11
    For a FlowMod dictionary, create a FlowMod message and, for a FlowStats,
12
    create a dictionary.
13
    """
14
15
    # These values are the same in both versions 1.0 and 1.3
16 1
    OFPFC_ADD = CommonFlowModCommand.OFPFC_ADD
17 1
    OFPFC_DELETE = CommonFlowModCommand.OFPFC_DELETE
18
19 1
    def __init__(self):
20
        """Initialize common attributes of 1.0 and 1.3 versions."""
21 1
        self.flow_attributes = set(('priority', 'idle_timeout', 'hard_timeout',
22
                                    'cookie'))
23
24 1
    @abstractmethod
25
    def from_dict(self, dictionary):
26
        """Return a FlowMod instance created from a serialized dictionary."""
27
28 1
    @abstractmethod
29
    def to_dict(self, flow_stats):
30
        """Return a serialized dictionary for a FlowStats message."""
31