)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e394b9dc59ba0c9b0bde02fcef00682613260fed","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     67f063e3 (Move add-option part when receiving  DHCP-packet to function)"},{"line_number":2,"context_line":"Author:     Eyal Leshem \u003ceyal.leshem@toganetworks.com\u003e"},{"line_number":3,"context_line":"AuthorDate: 2017-06-20 12:42:59 +0300"},{"line_number":4,"context_line":"Commit:     Eyal Leshem \u003ceyal.leshem@toganetworks.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"ff346bd7_9499d620","line":1,"range":{"start_line":1,"start_character":12,"end_line":1,"end_character":20},"updated":"2017-07-23 08:54:40.000000000","message":"I think the rebase moved the changes in this patch into the parent patch.","commit_id":"647759dab2b590364b6ab7584f766fedcbca1678"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Answer to \"Parameter Request List\" option in DHCP app"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to RFC 2131 the dhcp-server should try to answer"},{"line_number":10,"context_line":"as many of the  requested parametrs as possibole."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This commit implement this behaviour by answering according"},{"line_number":13,"context_line":"to the extra-dhcp-opts that defined by neutron."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff346bd7_b4884c1f","line":10,"range":{"start_line":10,"start_character":39,"end_line":10,"end_character":48},"updated":"2017-07-24 11:29:25.000000000","message":"Possible","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"2c9210f2df9b021bf45c7a5f64f65f8a36ad4561","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Answer to \"Parameter Request List\" option in DHCP app"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"According to RFC 2131 the dhcp-server should try to answer"},{"line_number":10,"context_line":"as many of the  requested parametrs as possibole."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This commit implement this behaviour by answering according"},{"line_number":13,"context_line":"to the extra-dhcp-opts that defined by neutron."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff346bd7_3fd1b3fc","line":10,"range":{"start_line":10,"start_character":26,"end_line":10,"end_character":35},"updated":"2017-07-25 06:25:48.000000000","message":"parameters","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":9,"context_line":"According to RFC 2131 the dhcp-server should try to answer"},{"line_number":10,"context_line":"as many of the  requested parametrs as possibole."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This commit implement this behaviour by answering according"},{"line_number":13,"context_line":"to the extra-dhcp-opts that defined by neutron."},{"line_number":14,"context_line":"(https://specs.openstack.org/openstack/neutron-specs/specs/api/extra_dhcp_options__extra-dhcp-opt_.html)"},{"line_number":15,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff346bd7_34745c35","line":12,"range":{"start_line":12,"start_character":12,"end_line":12,"end_character":21},"updated":"2017-07-24 11:29:25.000000000","message":"implements","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"2c9210f2df9b021bf45c7a5f64f65f8a36ad4561","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to the extra-dhcp-opts that defined by neutron."},{"line_number":14,"context_line":"(https://specs.openstack.org/openstack/neutron-specs/specs/api/extra_dhcp_options__extra-dhcp-opt_.html)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"that should enable PXE boot - by answring the \"TFTP server name\""},{"line_number":17,"context_line":"and \"Bootfile name\" accodring to the user configuration"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: If513ece70d409cabb71a46f14cd8b1e8c8325e1c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff346bd7_bf06c385","line":16,"range":{"start_line":16,"start_character":0,"end_line":16,"end_character":4},"updated":"2017-07-25 06:25:48.000000000","message":"This","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":13,"context_line":"to the extra-dhcp-opts that defined by neutron."},{"line_number":14,"context_line":"(https://specs.openstack.org/openstack/neutron-specs/specs/api/extra_dhcp_options__extra-dhcp-opt_.html)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"that should enable PXE boot - by answring the \"TFTP server name\""},{"line_number":17,"context_line":"and \"Bootfile name\" accodring to the user configuration"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: If513ece70d409cabb71a46f14cd8b1e8c8325e1c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff346bd7_34a9fc7a","line":16,"range":{"start_line":16,"start_character":33,"end_line":16,"end_character":41},"updated":"2017-07-24 11:29:25.000000000","message":"answering","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":14,"context_line":"(https://specs.openstack.org/openstack/neutron-specs/specs/api/extra_dhcp_options__extra-dhcp-opt_.html)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"that should enable PXE boot - by answring the \"TFTP server name\""},{"line_number":17,"context_line":"and \"Bootfile name\" accodring to the user configuration"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Change-Id: If513ece70d409cabb71a46f14cd8b1e8c8325e1c"},{"line_number":20,"context_line":"Related-bug: #1585170"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"ff346bd7_b4b60cd9","line":17,"range":{"start_line":17,"start_character":20,"end_line":17,"end_character":29},"updated":"2017-07-24 11:29:25.000000000","message":"according","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"}],"dragonflow/controller/dhcp_app.py":[{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"7d0aba9d57e863ab076152479007fe4c661302cd","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        options_dict \u003d {}"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        # explicitly configured options"},{"line_number":204,"context_line":"        self._build_response_default_options(response_type, lport,"},{"line_number":205,"context_line":"                                             subnet, options_dict, srv_addr)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        # requested options"},{"line_number":208,"context_line":"        self._build_requested_parmter_list(dhcp_request, lport, options_dict)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        option_list \u003d [dhcp.option(tag, value)"},{"line_number":211,"context_line":"                       for tag, value in options_dict.items()]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_dc570e58","line":208,"range":{"start_line":204,"start_character":8,"end_line":208,"end_character":77},"updated":"2017-06-26 11:32:43.000000000","message":"Why are you modifying options_dict, instead of receiving a dictionary from each method, and build the options here? I think it will make the code a bit more easy to understand","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"bf63609ff5798d8879babf917852134727ad2ce3","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        options_dict \u003d {}"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        # explicitly configured options"},{"line_number":204,"context_line":"        self._build_response_default_options(response_type, lport,"},{"line_number":205,"context_line":"                                             subnet, options_dict, srv_addr)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        # requested options"},{"line_number":208,"context_line":"        self._build_requested_parmter_list(dhcp_request, lport, options_dict)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        option_list \u003d [dhcp.option(tag, value)"},{"line_number":211,"context_line":"                       for tag, value in options_dict.items()]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_30c503f2","line":208,"range":{"start_line":204,"start_character":8,"end_line":208,"end_character":77},"in_reply_to":"5f201791_dc570e58","updated":"2017-06-26 13:16:58.000000000","message":"I see here 3 option : \n\n1.build the dict inside the _build_response_default_options and pass it to _build_requested_parmter_list but it\u0027s look like little bit mess for me. \n2. create 2 different dict and merge them - but i think that required unnecessary merge work \n3. allocate the dict in the caller function and passed him to the function that using it.. \n\nFor me the third option looks the cleanest, but if there is other convention i can changed it ..  (maybe i am used to C -  \"allocate it in the same place that you free it\" )","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"ce9fd47e672075fb7496c901126a54f51461bcbb","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            mtu_bin \u003d struct.pack(\u0027!H\u0027, intreface_mtu)"},{"line_number":243,"context_line":"            options_dict[dhcp.DHCP_INTERFACE_MTU_OPT] \u003d mtu_bin"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def _build_requested_parmter_list(self, dhcp_request, lport, option_dict):"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        req_list_opt \u003d dhcp.DHCP_PARAMETER_REQUEST_LIST_OPT"},{"line_number":248,"context_line":"        requested_opts \u003d self._get_dhcp_option_by_tag(dhcp_request,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_a8dc0de4","line":245,"range":{"start_line":245,"start_character":8,"end_line":245,"end_character":37},"updated":"2017-06-26 11:14:10.000000000","message":"Why not calling it \"_build_response_requested_options\", or something similar to the method that constructs the default values?","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"ce9fd47e672075fb7496c901126a54f51461bcbb","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            mtu_bin \u003d struct.pack(\u0027!H\u0027, intreface_mtu)"},{"line_number":243,"context_line":"            options_dict[dhcp.DHCP_INTERFACE_MTU_OPT] \u003d mtu_bin"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def _build_requested_parmter_list(self, dhcp_request, lport, option_dict):"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        req_list_opt \u003d dhcp.DHCP_PARAMETER_REQUEST_LIST_OPT"},{"line_number":248,"context_line":"        requested_opts \u003d self._get_dhcp_option_by_tag(dhcp_request,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_bc11f254","line":245,"range":{"start_line":245,"start_character":65,"end_line":245,"end_character":76},"updated":"2017-06-26 11:14:10.000000000","message":"options_dict","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"bf63609ff5798d8879babf917852134727ad2ce3","unresolved":false,"context_lines":[{"line_number":242,"context_line":"            mtu_bin \u003d struct.pack(\u0027!H\u0027, intreface_mtu)"},{"line_number":243,"context_line":"            options_dict[dhcp.DHCP_INTERFACE_MTU_OPT] \u003d mtu_bin"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def _build_requested_parmter_list(self, dhcp_request, lport, option_dict):"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        req_list_opt \u003d dhcp.DHCP_PARAMETER_REQUEST_LIST_OPT"},{"line_number":248,"context_line":"        requested_opts \u003d self._get_dhcp_option_by_tag(dhcp_request,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_d0612f07","line":245,"range":{"start_line":245,"start_character":65,"end_line":245,"end_character":76},"in_reply_to":"5f201791_bc11f254","updated":"2017-06-26 13:16:58.000000000","message":"will do ..","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":23235,"name":"Lihi Wishnitzer","email":"lihiwish@gmail.com","username":"lihiwish"},"change_message_id":"ce9fd47e672075fb7496c901126a54f51461bcbb","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            if opt_int in option_dict:"},{"line_number":256,"context_line":"                # already answered by the default options"},{"line_number":257,"context_line":"                continue"},{"line_number":258,"context_line":"            print(str(ord(opt)))"},{"line_number":259,"context_line":"            print(lport.extra_dhcp_options)"},{"line_number":260,"context_line":"            value \u003d lport.extra_dhcp_options.get(str(ord(opt)))"},{"line_number":261,"context_line":"            if value:"},{"line_number":262,"context_line":"                option_dict[opt_int] \u003d value"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_e880c5c1","line":259,"range":{"start_line":258,"start_character":12,"end_line":259,"end_character":43},"updated":"2017-06-26 11:14:10.000000000","message":"Is this required?","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"bf63609ff5798d8879babf917852134727ad2ce3","unresolved":false,"context_lines":[{"line_number":255,"context_line":"            if opt_int in option_dict:"},{"line_number":256,"context_line":"                # already answered by the default options"},{"line_number":257,"context_line":"                continue"},{"line_number":258,"context_line":"            print(str(ord(opt)))"},{"line_number":259,"context_line":"            print(lport.extra_dhcp_options)"},{"line_number":260,"context_line":"            value \u003d lport.extra_dhcp_options.get(str(ord(opt)))"},{"line_number":261,"context_line":"            if value:"},{"line_number":262,"context_line":"                option_dict[opt_int] \u003d value"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f201791_10120763","line":259,"range":{"start_line":258,"start_character":12,"end_line":259,"end_character":43},"in_reply_to":"5f201791_e880c5c1","updated":"2017-06-26 13:16:58.000000000","message":"ops...\nwill be deleted...","commit_id":"286a37b76a068cbd62d858c0a2fc03f3a7b9e37d"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61228cd4068aa22b5b41e46c99c14c6f6cd44cf6","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        req_list_opt \u003d dhcp.DHCP_PARAMETER_REQUEST_LIST_OPT"},{"line_number":250,"context_line":"        requested_opts \u003d self._get_dhcp_option_by_tag(dhcp_request,"},{"line_number":251,"context_line":"                                                      req_list_opt)"},{"line_number":252,"context_line":"        if not requested_opts:"},{"line_number":253,"context_line":"            return"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        for opt in requested_opts:"},{"line_number":256,"context_line":"            opt_int \u003d ord(opt)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_c09a3412","line":253,"range":{"start_line":252,"start_character":8,"end_line":253,"end_character":18},"updated":"2017-06-28 08:10:19.000000000","message":"Not needed","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"45c1e8972c5104971afb6b7f16bc964b10409b80","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        req_list_opt \u003d dhcp.DHCP_PARAMETER_REQUEST_LIST_OPT"},{"line_number":250,"context_line":"        requested_opts \u003d self._get_dhcp_option_by_tag(dhcp_request,"},{"line_number":251,"context_line":"                                                      req_list_opt)"},{"line_number":252,"context_line":"        if not requested_opts:"},{"line_number":253,"context_line":"            return"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"        for opt in requested_opts:"},{"line_number":256,"context_line":"            opt_int \u003d ord(opt)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_0bd4cde7","line":253,"range":{"start_line":252,"start_character":8,"end_line":253,"end_character":18},"in_reply_to":"5f201791_c09a3412","updated":"2017-07-02 08:39:56.000000000","message":"Yep, it\u0027s leftover from old code (when option build can failed .. ) , will be removed ..","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61228cd4068aa22b5b41e46c99c14c6f6cd44cf6","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        return routes_bin"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def _get_dhcp_option_by_tag(self, dhcp_packet, tag):"},{"line_number":323,"context_line":"        if dhcp_packet.options:"},{"line_number":324,"context_line":"            for opt in dhcp_packet.options.option_list:"},{"line_number":325,"context_line":"                if opt.tag \u003d\u003d tag:"},{"line_number":326,"context_line":"                    return opt.value"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_4053c46b","line":323,"range":{"start_line":323,"start_character":8,"end_line":323,"end_character":31},"updated":"2017-06-28 08:10:19.000000000","message":"I\u0027m not sure it is needed, dhcp_packet.options is always iterable","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"45c1e8972c5104971afb6b7f16bc964b10409b80","unresolved":false,"context_lines":[{"line_number":320,"context_line":"        return routes_bin"},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"    def _get_dhcp_option_by_tag(self, dhcp_packet, tag):"},{"line_number":323,"context_line":"        if dhcp_packet.options:"},{"line_number":324,"context_line":"            for opt in dhcp_packet.options.option_list:"},{"line_number":325,"context_line":"                if opt.tag \u003d\u003d tag:"},{"line_number":326,"context_line":"                    return opt.value"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_fc29f69a","line":323,"range":{"start_line":323,"start_character":8,"end_line":323,"end_character":31},"in_reply_to":"5f201791_4053c46b","updated":"2017-07-02 08:39:56.000000000","message":"If ryu lib try to parse dhcp-packet without  option -  then dhcp_packet.option will be None - see ryu/lib/packet/dhcp.py:184","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61228cd4068aa22b5b41e46c99c14c6f6cd44cf6","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    def _get_dhcp_message_type_opt(self, dhcp_packet):"},{"line_number":329,"context_line":"        opt_value \u003d self._get_dhcp_option_by_tag(dhcp_packet,"},{"line_number":330,"context_line":"                                                 dhcp.DHCP_MESSAGE_TYPE_OPT)"},{"line_number":331,"context_line":"        if opt_value:"},{"line_number":332,"context_line":"            return ord(opt_value)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def _get_port_gateway_address(self, subnet, lport):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_40018437","line":331,"range":{"start_line":331,"start_character":11,"end_line":331,"end_character":20},"updated":"2017-06-28 08:10:19.000000000","message":"I think this is always a string","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"45c1e8972c5104971afb6b7f16bc964b10409b80","unresolved":false,"context_lines":[{"line_number":328,"context_line":"    def _get_dhcp_message_type_opt(self, dhcp_packet):"},{"line_number":329,"context_line":"        opt_value \u003d self._get_dhcp_option_by_tag(dhcp_packet,"},{"line_number":330,"context_line":"                                                 dhcp.DHCP_MESSAGE_TYPE_OPT)"},{"line_number":331,"context_line":"        if opt_value:"},{"line_number":332,"context_line":"            return ord(opt_value)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"    def _get_port_gateway_address(self, subnet, lport):"}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_7c172653","line":331,"range":{"start_line":331,"start_character":11,"end_line":331,"end_character":20},"in_reply_to":"5f201791_40018437","updated":"2017-07-02 08:39:56.000000000","message":"Indeed , but it\u0027s still can be None in cases the opt will not appear at the packet at all .","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"}],"dragonflow/tests/unit/test_dhcp_app.py":[{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"76b8756ddf1cd69969728844e9fa2d58d55b2cac","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        fake_loprt \u003d test_app_base.make_fake_local_port("},{"line_number":154,"context_line":"            lswitch\u003dtest_app_base.fake_logic_switch1,"},{"line_number":155,"context_line":"            subnets\u003dtest_app_base.fake_lswitch_default_subnets,"},{"line_number":156,"context_line":"            ips\u003d(\u00271.2.3.4\u0027,),"},{"line_number":157,"context_line":"            extra_dhcp_opts\u003dextra_dhcp_opts"},{"line_number":158,"context_line":"        )"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_a4362302","line":156,"range":{"start_line":156,"start_character":18,"end_line":156,"end_character":25},"updated":"2017-06-28 12:35:13.000000000","message":"Please make this a private IP in the subnet, e.g. 10.0.0.3","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"45c1e8972c5104971afb6b7f16bc964b10409b80","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        fake_loprt \u003d test_app_base.make_fake_local_port("},{"line_number":154,"context_line":"            lswitch\u003dtest_app_base.fake_logic_switch1,"},{"line_number":155,"context_line":"            subnets\u003dtest_app_base.fake_lswitch_default_subnets,"},{"line_number":156,"context_line":"            ips\u003d(\u00271.2.3.4\u0027,),"},{"line_number":157,"context_line":"            extra_dhcp_opts\u003dextra_dhcp_opts"},{"line_number":158,"context_line":"        )"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3f1d235d_cd1d6674","line":156,"range":{"start_line":156,"start_character":18,"end_line":156,"end_character":25},"in_reply_to":"5f201791_a4362302","updated":"2017-07-02 08:39:56.000000000","message":"done","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61228cd4068aa22b5b41e46c99c14c6f6cd44cf6","unresolved":false,"context_lines":[{"line_number":192,"context_line":"            \"1\": \"error\","},{"line_number":193,"context_line":"            \"31\": \"a\","},{"line_number":194,"context_line":"            \"32\": \"b\""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        }"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        fake_loprt \u003d self._build_dhcp_test_fake_lport(extra_dhcp_opts)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_2091e8f1","line":195,"updated":"2017-06-28 08:10:19.000000000","message":"extra line","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"61228cd4068aa22b5b41e46c99c14c6f6cd44cf6","unresolved":false,"context_lines":[{"line_number":207,"context_line":"                                                       option_list)"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":"        dhcp_res \u003d dhcp_response_pkt.get_protocol(dhcp.dhcp)"},{"line_number":210,"context_line":"        print(dhcp_res)"},{"line_number":211,"context_line":"        self.assertTrue(dhcp_res.options)"},{"line_number":212,"context_line":"        self.assertTrue(dhcp_res.options.option_list)"},{"line_number":213,"context_line":"        # don\u0027t override default config"}],"source_content_type":"text/x-python","patch_set":11,"id":"5f201791_e04e5095","line":210,"range":{"start_line":210,"start_character":0,"end_line":210,"end_character":23},"updated":"2017-06-28 08:10:19.000000000","message":"Leftovers","commit_id":"8438e5af20aa881960aab0e18330a7d7c6844c75"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"59c4118948dac9bce1d87463717f035079217c0c","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        self.assertNotEqual(val, \"error\")"},{"line_number":216,"context_line":"        # normal behaviour"},{"line_number":217,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":218,"context_line":"        self.assertEqual(val, \"a\")"},{"line_number":219,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":220,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":221,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f1d235d_8020def8","line":218,"range":{"start_line":218,"start_character":30,"end_line":218,"end_character":33},"updated":"2017-07-06 05:26:24.000000000","message":"Since it\u0027s encoded to ascii, it has to be b\u0027a\u0027 (For the py35 test).","commit_id":"a00deb10621f5ffde9148052bb9a2722226711f0"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"28b4c516c405f2258f29dfc3dc650806e20c7649","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        self.assertNotEqual(val, \"error\")"},{"line_number":209,"context_line":"        # normal behaviour"},{"line_number":210,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":211,"context_line":"        self.assertEqual(val.decode(\"ascii\"), \"a\")"},{"line_number":212,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":213,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":214,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1f1a1f67_1f90bdec","line":211,"range":{"start_line":211,"start_character":0,"end_line":211,"end_character":50},"updated":"2017-07-18 08:24:50.000000000","message":"Sorry I missed it last time, but the order should be (expected, actual). And I think self.assertEqual(b\u0027a\u0027, val) is better (The -1 is for the parameter manipulation.)","commit_id":"eea3293ef3cdf2200b66678a587c7ca8058533dc"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"4945a57aa32e8f6ca28d81ff0bb89a78889c1e0a","unresolved":false,"context_lines":[{"line_number":208,"context_line":"        self.assertNotEqual(val, \"error\")"},{"line_number":209,"context_line":"        # normal behaviour"},{"line_number":210,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":211,"context_line":"        self.assertEqual(val.decode(\"ascii\"), \"a\")"},{"line_number":212,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":213,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":214,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":21,"id":"1f1a1f67_bf476077","line":211,"range":{"start_line":211,"start_character":0,"end_line":211,"end_character":50},"in_reply_to":"1f1a1f67_1f90bdec","updated":"2017-07-19 07:08:40.000000000","message":"done","commit_id":"eea3293ef3cdf2200b66678a587c7ca8058533dc"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"e394b9dc59ba0c9b0bde02fcef00682613260fed","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.assertNotEqual(val, \"error\")"},{"line_number":222,"context_line":"        # normal behaviour"},{"line_number":223,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":224,"context_line":"        self.assertEqual(val, b\u0027a\u0027)"},{"line_number":225,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ff346bd7_b494dae9","line":224,"range":{"start_line":224,"start_character":0,"end_line":224,"end_character":35},"updated":"2017-07-23 08:54:40.000000000","message":"nit: Parameter order is still actual, expected, instead of expected, actual.","commit_id":"647759dab2b590364b6ab7584f766fedcbca1678"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"178c4b1cdd9958d6a40a5f0e77c3b3f5187ebaf4","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.assertNotEqual(val, \"error\")"},{"line_number":222,"context_line":"        # normal behaviour"},{"line_number":223,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":224,"context_line":"        self.assertEqual(val, b\u0027a\u0027)"},{"line_number":225,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":23,"id":"ff346bd7_b52df447","line":224,"range":{"start_line":224,"start_character":0,"end_line":224,"end_character":35},"in_reply_to":"ff346bd7_b494dae9","updated":"2017-07-23 14:34:17.000000000","message":"fixed, didn\u0027t know that it the convention.","commit_id":"647759dab2b590364b6ab7584f766fedcbca1678"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def test_dhcp_repsonse(self):"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        fake_loprt \u003d self._build_dhcp_test_fake_lport()"},{"line_number":189,"context_line":"        dhcp_response_pkt \u003d self._send_dhcp_req_to_app(fake_loprt)"},{"line_number":190,"context_line":"        self.assertTrue(dhcp_response_pkt)"},{"line_number":191,"context_line":"        dhcp_response \u003d dhcp_response_pkt.get_protocol(dhcp.dhcp)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_c371d0e2","line":188,"range":{"start_line":188,"start_character":8,"end_line":188,"end_character":18},"updated":"2017-07-24 11:29:25.000000000","message":"lport","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"52b1cecb4e2a1fcd740f1bf55afd63d989cc4f81","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def test_dhcp_repsonse(self):"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"        fake_loprt \u003d self._build_dhcp_test_fake_lport()"},{"line_number":189,"context_line":"        dhcp_response_pkt \u003d self._send_dhcp_req_to_app(fake_loprt)"},{"line_number":190,"context_line":"        self.assertTrue(dhcp_response_pkt)"},{"line_number":191,"context_line":"        dhcp_response \u003d dhcp_response_pkt.get_protocol(dhcp.dhcp)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_81b836c8","line":188,"range":{"start_line":188,"start_character":8,"end_line":188,"end_character":18},"in_reply_to":"ff346bd7_c371d0e2","updated":"2017-07-25 12:24:37.000000000","message":"fixed","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        dhcp_response \u003d dhcp_response_pkt.get_protocol(dhcp.dhcp)"},{"line_number":192,"context_line":"        self.assertEqual(\u002710.0.0.1\u0027, str(dhcp_response.yiaddr))"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_dhcp_request_parmas_response(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        dhcp_opts \u003d {"},{"line_number":197,"context_line":"            \"1\": \"error\","}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_c318b082","line":194,"range":{"start_line":194,"start_character":8,"end_line":194,"end_character":16},"updated":"2017-07-24 11:29:25.000000000","message":"Just my personal preference, but if we\u0027re testing 4 scenarios, 4 tests are better.","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"2c9210f2df9b021bf45c7a5f64f65f8a36ad4561","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        dhcp_response \u003d dhcp_response_pkt.get_protocol(dhcp.dhcp)"},{"line_number":192,"context_line":"        self.assertEqual(\u002710.0.0.1\u0027, str(dhcp_response.yiaddr))"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_dhcp_request_parmas_response(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        dhcp_opts \u003d {"},{"line_number":197,"context_line":"            \"1\": \"error\","}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_bf2b63e9","line":194,"range":{"start_line":194,"start_character":26,"end_line":194,"end_character":32},"updated":"2017-07-25 06:25:48.000000000","message":"params","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"52b1cecb4e2a1fcd740f1bf55afd63d989cc4f81","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        dhcp_response \u003d dhcp_response_pkt.get_protocol(dhcp.dhcp)"},{"line_number":192,"context_line":"        self.assertEqual(\u002710.0.0.1\u0027, str(dhcp_response.yiaddr))"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_dhcp_request_parmas_response(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        dhcp_opts \u003d {"},{"line_number":197,"context_line":"            \"1\": \"error\","}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_41b24ee8","line":194,"range":{"start_line":194,"start_character":26,"end_line":194,"end_character":32},"in_reply_to":"ff346bd7_bf2b63e9","updated":"2017-07-25 12:24:37.000000000","message":"change to 4 tests","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_dhcp_request_parmas_response(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        dhcp_opts \u003d {"},{"line_number":197,"context_line":"            \"1\": \"error\","},{"line_number":198,"context_line":"            \"31\": \"a\","},{"line_number":199,"context_line":"            \"32\": \"b\""},{"line_number":200,"context_line":"        }"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        dhcp_params \u003d {\"opts\": dhcp_opts}"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_6380e48c","line":199,"range":{"start_line":196,"start_character":11,"end_line":199,"end_character":21},"updated":"2017-07-24 11:29:25.000000000","message":"Shouldn\u0027t keys by integers?","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"52b1cecb4e2a1fcd740f1bf55afd63d989cc4f81","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_dhcp_request_parmas_response(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        dhcp_opts \u003d {"},{"line_number":197,"context_line":"            \"1\": \"error\","},{"line_number":198,"context_line":"            \"31\": \"a\","},{"line_number":199,"context_line":"            \"32\": \"b\""},{"line_number":200,"context_line":"        }"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        dhcp_params \u003d {\"opts\": dhcp_opts}"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_21eaaaab","line":199,"range":{"start_line":196,"start_character":11,"end_line":199,"end_character":21},"in_reply_to":"ff346bd7_6380e48c","updated":"2017-07-25 12:24:37.000000000","message":"yep it\u0027s work because save them in the fake- lport converted them to int","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.assertNotEqual(\"error\", val)"},{"line_number":222,"context_line":"        # normal behaviour"},{"line_number":223,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":224,"context_line":"        self.assertEqual(b\u0027a\u0027, val)"},{"line_number":225,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_a3248cc7","line":224,"range":{"start_line":224,"start_character":25,"end_line":224,"end_character":29},"updated":"2017-07-24 11:29:25.000000000","message":"Why is this one prefixed with b and the one above not?","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"52b1cecb4e2a1fcd740f1bf55afd63d989cc4f81","unresolved":false,"context_lines":[{"line_number":221,"context_line":"        self.assertNotEqual(\"error\", val)"},{"line_number":222,"context_line":"        # normal behaviour"},{"line_number":223,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 31)"},{"line_number":224,"context_line":"        self.assertEqual(b\u0027a\u0027, val)"},{"line_number":225,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_c1dabe15","line":224,"range":{"start_line":224,"start_character":25,"end_line":224,"end_character":29},"in_reply_to":"ff346bd7_a3248cc7","updated":"2017-07-25 12:24:37.000000000","message":"change the above","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self.assertEqual(b\u0027a\u0027, val)"},{"line_number":225,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"},{"line_number":228,"context_line":"        # don\u0027t response on requested parameter that not configured"},{"line_number":229,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 33)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_4356002c","line":227,"range":{"start_line":227,"start_character":13,"end_line":227,"end_character":24},"updated":"2017-07-24 11:29:25.000000000","message":"assertIsNone","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"52b1cecb4e2a1fcd740f1bf55afd63d989cc4f81","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self.assertEqual(b\u0027a\u0027, val)"},{"line_number":225,"context_line":"        # don\u0027t reponse on parameter that not requested"},{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"},{"line_number":228,"context_line":"        # don\u0027t response on requested parameter that not configured"},{"line_number":229,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 33)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_a1d57ae7","line":227,"range":{"start_line":227,"start_character":13,"end_line":227,"end_character":24},"in_reply_to":"ff346bd7_4356002c","updated":"2017-07-25 12:24:37.000000000","message":"changed","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"897c4f68285ae4c459bf26c06f5f5469ff90885c","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"},{"line_number":228,"context_line":"        # don\u0027t response on requested parameter that not configured"},{"line_number":229,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 33)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_632ea4a6","line":229,"range":{"start_line":229,"start_character":6,"end_line":229,"end_character":60},"updated":"2017-07-24 11:29:25.000000000","message":"The return value is not checked.","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":26131,"name":"Eyal Leshem","email":"eyal.leshem@toganetworks.com","username":"leyal"},"change_message_id":"52b1cecb4e2a1fcd740f1bf55afd63d989cc4f81","unresolved":false,"context_lines":[{"line_number":226,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 32)"},{"line_number":227,"context_line":"        self.assertFalse(val)"},{"line_number":228,"context_line":"        # don\u0027t response on requested parameter that not configured"},{"line_number":229,"context_line":"        val \u003d self.app._get_dhcp_option_by_tag(dhcp_res, 33)"}],"source_content_type":"text/x-python","patch_set":24,"id":"ff346bd7_6109d293","line":229,"range":{"start_line":229,"start_character":6,"end_line":229,"end_character":60},"in_reply_to":"ff346bd7_632ea4a6","updated":"2017-07-25 12:24:37.000000000","message":"fixed","commit_id":"340ca465635ff3449b76254a938049a89cfb788e"},{"author":{"_account_id":23766,"name":"Dima Kuznetsov","email":"dima.kuznetsov@toganetworks.com","username":"dimak"},"change_message_id":"4f91c4ed792a9a2c3ed80b163ec87542d79e5a72","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            lswitch\u003dtest_app_base.fake_logic_switch1,"},{"line_number":160,"context_line":"            subnets\u003dtest_app_base.fake_lswitch_default_subnets,"},{"line_number":161,"context_line":"            ips\u003d(\u002710.0.0.1\u0027,),"},{"line_number":162,"context_line":"            dhcp_params \u003d dhcp_params"},{"line_number":163,"context_line":"        )"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        return fake_loprt"}],"source_content_type":"text/x-python","patch_set":26,"id":"ff346bd7_4a9ebe54","line":162,"range":{"start_line":162,"start_character":22,"end_line":162,"end_character":27},"updated":"2017-07-26 12:12:02.000000000","message":"not sure why pep8 job misses this, but there should be no whitespace here.","commit_id":"0fccb60ee12b86f153cf693a5ce5c2e10a3f6444"},{"author":{"_account_id":20229,"name":"Omer Anson","email":"omer.anson@toganetworks.com","username":"oanson"},"change_message_id":"0afcadedb764c605eb4231291dd58926519355ec","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    def _create_dhcp_reponse(self, dhcp_opts, requested):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        dhcp_params \u003d {\"opts\": {} if not dhcp_opts else dhcp_opts}"},{"line_number":197,"context_line":"        print(dhcp_params)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        fake_lport \u003d self._build_dhcp_test_fake_lport(dhcp_params)"},{"line_number":200,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"ff346bd7_6a418239","line":197,"range":{"start_line":197,"start_character":0,"end_line":197,"end_character":26},"updated":"2017-07-26 12:03:00.000000000","message":"This should be removed","commit_id":"0fccb60ee12b86f153cf693a5ce5c2e10a3f6444"}]}
