of14: Fix OFPInstructionWriteMetadata JSON decode

This is in line with 4a394aae2f1a3b82
("Fix OFPInstructionWriteMetadata JSON decode") which fixes
the following for OF1.3:

CLS <class 'ryu.ofproto.ofproto_v1_3_parser.OFPInstructionWriteMetadata'>
ARG {u'metadata_mask': 18446744073709551615L, u'type': 2, u'len': 24, u'metadata': 18446744069414584320L}
KWARG {u'type_': 2, u'metadata_mask': 18446744073709551615L, u'len_': 24, u'metadata': 18446744069414584320L}
Traceback (most recent call last):
  File "a.py", line 19, in <module>
    msg = ofproto_parser.ofp_msg_from_jsondict(dp, m)
  File "/Users/fujita/git/ryu/ryu/ofproto/ofproto_parser.py", line 100, in ofp_msg_from_jsondict
    return cls.from_jsondict(v, datapath=dp)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 291, in from_jsondict
    kwargs = cls._restore_args(_mapdict_kv(decode, dict_))
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 46, in <lambda>
    _mapdict_kv = lambda f, d: dict([(k, f(k, v)) for k, v in d.items()])
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 290, in <lambda>
    decode = lambda k, x: cls._decode_value(k, x, decode_string)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 234, in _decode_value
    return cls._get_decoder(k, decode_string)(json_value)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 242, in _decode
    v = map(_decode, json_value)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 245, in _decode
    v = cls.obj_from_jsondict(json_value)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 223, in obj_from_jsondict
    return obj_cls.from_jsondict(v)
  File "/Users/fujita/git/ryu/ryu/lib/stringify.py", line 293, in from_jsondict
    return cls(**dict(kwargs, **additional_args))
TypeError: __init__() got an unexpected keyword argument 'type_'

Signed-off-by: Simon Horman <horms@verge.net.au>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
Simon Horman 2014-02-04 13:27:50 +09:00 committed by FUJITA Tomonori
parent 1350b96078
commit c8d6444e0c

View File

@ -3169,7 +3169,7 @@ class OFPInstructionWriteMetadata(OFPInstruction):
metadata_mask Metadata write bitmask
================ ======================================================
"""
def __init__(self, metadata, metadata_mask, len_=None):
def __init__(self, metadata, metadata_mask, type_=None, len_=None):
super(OFPInstructionWriteMetadata, self).__init__()
self.type = ofproto.OFPIT_WRITE_METADATA
self.len = ofproto.OFP_INSTRUCTION_WRITE_METADATA_SIZE