| @@ 133-163 (lines=31) @@ | ||
| 130 | ||
| 131 | return message_instance |
|
| 132 | ||
| 133 | ||
| 134 | def new_message_from_header(header): |
|
| 135 | """Given an OF Header, return an empty message of header's message_type. |
|
| 136 | ||
| 137 | Args: |
|
| 138 | header (:class:`~pyof.v0x04.common.header.Header`): |
|
| 139 | Unpacked OpenFlow Header. |
|
| 140 | ||
| 141 | Returns: |
|
| 142 | Empty OpenFlow message of the same type of message_type attribute from |
|
| 143 | the given header. |
|
| 144 | The header attribute of the message will be populated. |
|
| 145 | ||
| 146 | Raises: |
|
| 147 | KytosUndefinedMessageType: Unkown Message_Type. |
|
| 148 | """ |
|
| 149 | message_type = header.message_type |
|
| 150 | if not isinstance(message_type, Type): |
|
| 151 | try: |
|
| 152 | if isinstance(message_type, str): |
|
| 153 | # False positive https://github.com/PyCQA/pylint/issues/992 |
|
| 154 | # pylint: disable=E1136 |
|
| 155 | message_type = Type[message_type] |
|
| 156 | elif isinstance(message_type, int): |
|
| 157 | message_type = Type(message_type) |
|
| 158 | except ValueError: |
|
| 159 | raise ValueError |
|
| 160 | ||
| 161 | message = new_message_from_message_type(message_type) |
|
| 162 | message.header.xid = header.xid |
|
| 163 | message.header.length = header.length |
|
| 164 | ||
| 165 | return message |
|
| 166 | ||
| @@ 89-119 (lines=31) @@ | ||
| 86 | ||
| 87 | return message_instance |
|
| 88 | ||
| 89 | ||
| 90 | def new_message_from_header(header): |
|
| 91 | """Given an OF Header, return an empty message of header's message_type. |
|
| 92 | ||
| 93 | Args: |
|
| 94 | header (~pyof.v0x01.common.header.Header): Unpacked OpenFlow Header. |
|
| 95 | ||
| 96 | Returns: |
|
| 97 | Empty OpenFlow message of the same type of message_type attribute from |
|
| 98 | the given header. |
|
| 99 | The header attribute of the message will be populated. |
|
| 100 | ||
| 101 | Raises: |
|
| 102 | KytosUndefinedMessageType: Unkown Message_Type. |
|
| 103 | """ |
|
| 104 | message_type = header.message_type |
|
| 105 | if not isinstance(message_type, Type): |
|
| 106 | try: |
|
| 107 | if isinstance(message_type, str): |
|
| 108 | # False positive https://github.com/PyCQA/pylint/issues/992 |
|
| 109 | # pylint: disable=E1136 |
|
| 110 | message_type = Type[message_type] |
|
| 111 | elif isinstance(message_type, int): |
|
| 112 | message_type = Type(message_type) |
|
| 113 | except ValueError: |
|
| 114 | raise ValueError |
|
| 115 | ||
| 116 | message = new_message_from_message_type(message_type) |
|
| 117 | message.header.xid = header.xid |
|
| 118 | message.header.length = header.length |
|
| 119 | ||
| 120 | return message |
|
| 121 | ||
| 122 | ||