)]}'
{"neutron/agent/linux/dhcp.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"0dd462b7016761a5809e5f4cd4e5501333b4afd8","unresolved":false,"context_lines":[{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"},{"line_number":460,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_15a30901","line":457,"updated":"2016-09-07 19:37:57.000000000","message":"Strange that I did not see this in any of the functional test\u0027s q-dhcp.log","commit_id":"223871827675f1bf6191a8164dabeaceb55fe227"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d21085aa6921789c7758cce2e14aa29aed378dc1","unresolved":false,"context_lines":[{"line_number":445,"context_line":"                                      monitored_process\u003dpm)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def _is_dhcp_release6_present(self):"},{"line_number":448,"context_line":"        if self._IS_DHCP_RELEASE6_PRESENT is None:"},{"line_number":449,"context_line":"            try:"},{"line_number":450,"context_line":"                cmd \u003d [\u0027dhcp_release6\u0027, \u0027--help\u0027]"},{"line_number":451,"context_line":"                env \u003d {\u0027LC_ALL\u0027: \u0027C\u0027}"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_39e57608","line":448,"updated":"2016-09-13 10:01:30.000000000","message":"I believe this hack should go away right when our base platforms (centos7 and xenial?) deliver the tool. Please add TODO so that we don\u0027t forget to handle it in Ocata.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d21085aa6921789c7758cce2e14aa29aed378dc1","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            try:"},{"line_number":450,"context_line":"                cmd \u003d [\u0027dhcp_release6\u0027, \u0027--help\u0027]"},{"line_number":451,"context_line":"                env \u003d {\u0027LC_ALL\u0027: \u0027C\u0027}"},{"line_number":452,"context_line":"                agent_common_utils.execute(cmd, addl_env\u003denv,"},{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_59007aab","line":452,"updated":"2016-09-13 10:01:30.000000000","message":"could we reuse the check from neutron/cmd/sanity/checks.py here? Or, I believe better, just catch NoFilterMatched below in line 477.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"36987b9680ec57b55c2062c9d9f1d40153523871","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            try:"},{"line_number":450,"context_line":"                cmd \u003d [\u0027dhcp_release6\u0027, \u0027--help\u0027]"},{"line_number":451,"context_line":"                env \u003d {\u0027LC_ALL\u0027: \u0027C\u0027}"},{"line_number":452,"context_line":"                agent_common_utils.execute(cmd, addl_env\u003denv,"},{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_75d2835d","line":452,"in_reply_to":"9a89bdaa_59007aab","updated":"2016-09-13 17:20:11.000000000","message":"I thought about using the sanity check code, but didn\u0027t see other cases of anything including it so just did this.\n\nCatching NoFilterMatched seems like an answer, but I can\u0027t find other code in Neutron or Nova that does it, and the comment in execute_rootwrap_daemon() seems to recommend against it:\n\n    # In practice, no neutron code should be trying to execute something that\n    # would throw those errors, and if it does it should be fixed as opposed to\n    # just logging the execution error.\n\nSo we\u0027re in that place where people that have the newer dnsmasq want to use this functionality, and people that don\u0027t want to ignore the error.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c99c8cc9c857d7189c7823155d1fdbe60a7a7957","unresolved":false,"context_lines":[{"line_number":449,"context_line":"            try:"},{"line_number":450,"context_line":"                cmd \u003d [\u0027dhcp_release6\u0027, \u0027--help\u0027]"},{"line_number":451,"context_line":"                env \u003d {\u0027LC_ALL\u0027: \u0027C\u0027}"},{"line_number":452,"context_line":"                agent_common_utils.execute(cmd, addl_env\u003denv,"},{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_2736bf03","line":452,"in_reply_to":"9a89bdaa_75d2835d","updated":"2016-09-14 07:55:12.000000000","message":"Well, your use case directly contradicts to the comment: you actually WANT to catch the error and swallow it. So I believe it\u0027s a legit use.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"97a629f1819f0060705c31bbf41ed597d2f8873b","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_ce4b1d2a","line":456,"updated":"2016-09-12 11:25:45.000000000","message":"runtime checks are not part of agents. We have sanity-check tool that should validate that kind of behaviour BEFORE users run our software.\n\nIf we have this tool missing in gate, we should make sure it\u0027s installed, not swallow the error.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"8701fadfc849155af36b68425d9c840a76157c48","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_4d560e2b","line":456,"in_reply_to":"9a89bdaa_0d7966c8","updated":"2016-09-12 23:03:26.000000000","message":"first surface is meant to be issue :)","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"6b51d6a190c9ef6857552ac9309d365d05bad878","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_0d7966c8","line":456,"in_reply_to":"9a89bdaa_0eedeeb6","updated":"2016-09-12 23:02:26.000000000","message":"While I appreciate the intent of cleaning the log you\u0027re masking here (not even at error level) that it\u0027s \u0027okay\u0027 to have a broken dependency. What\u0027s worse is that the surface does not even surface at the API layer clearly making this issue very hard to detect.\n\nThe fix in the gate would be to have the right dependency installed.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"b8405b9f52e884305ea0b242b506cc9c3e0a907e","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_73866ddc","line":456,"in_reply_to":"9a89bdaa_62f3fd0a","updated":"2016-09-12 14:19:08.000000000","message":"The code to correctly release a DHCPv6 lease was just added, so it was broken before then, even if you had the latest dnsmasq installed.  Now that we have the code to correctly call dhcp_release6, we could cause errors, but not exceptions, with an old version of dnsmasq.  So we\u0027re at that chicken/egg place right now.\n\nSo maybe Gary\u0027s change to print a more useful error message, https://review.openstack.org/#/c/364131/ is the best option, and assume users will see it and figure out an upgrade to dnsmasq is necessary.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"bd67936582a38b8999044a48a3836e323ffacd88","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_cf1a2d6f","line":456,"in_reply_to":"9a89bdaa_73866ddc","updated":"2016-09-12 14:24:25.000000000","message":"Before Newton, we did not have this runtime requirement. Now we do. The right response is to bump it (\u003d\u003drequire new feature in code and validate its presence with sanity-check tool).\n\nThat would be a problem if you would try to backport the fix without leaving any graceful handling of older dnsmasq version. But it\u0027s Newton, there is no need to be graceful here. Instead, be explicit about the dependency (in release note, in sanity-check tool).","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c2b4acf519ae00c8aa238dfd65d4960bcbbedb35","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_e790ff97","line":456,"in_reply_to":"9a89bdaa_ce4b1d2a","updated":"2016-09-12 13:17:30.000000000","message":"*This tool* in the last sentence is dhcp_release6, not sanity-check.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":21228,"name":"Sergey Nechaev","email":"spnechaev@gmail.com","username":"spnechaev"},"change_message_id":"f20845627e55817191aab5ef1760a83c227e838c","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_795ad984","line":456,"in_reply_to":"9a89bdaa_ce4b1d2a","updated":"2016-09-12 13:20:23.000000000","message":"Here we consider dhcp_release6 presence optional, because users with IPv4 only networks and users who have stateless DHCPv6 don\u0027t need it. That\u0027s why we check presence of the dhcp_release6 in runtime before calling it.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"284d9cbcb9b5407682fd469abc3ba965ca151a28","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_e758ff58","line":456,"in_reply_to":"9a89bdaa_ce4b1d2a","updated":"2016-09-12 13:27:27.000000000","message":"The problem is it\u0027s not a requirement to have dhcp_release6 installed as most people will not use DHCPv6 stateful addressing, so forcing a later version of dnsmasq isn\u0027t always necessary.\n\nThis seemed better than putting in a new config option to control it\u0027s usage.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"baa9852cacc0617794b1b55d4caa5319ba2d6ee9","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_cf486d5f","line":456,"in_reply_to":"9a89bdaa_cf1a2d6f","updated":"2016-09-12 14:25:29.000000000","message":"It may be useful to understand which platforms we target don\u0027t have the needed features, and why they cannot backport the missing dhcp-release6 tool to their package.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"36f7dc448ab3904f745337136d2ac6357ea931f1","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_0eedeeb6","line":456,"in_reply_to":"9a89bdaa_cf486d5f","updated":"2016-09-12 16:46:42.000000000","message":"Actually, we already have a check for that tool in sanity-check. I don\u0027t think the change is needed at all.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"871473ab82b3d4aea889e1d8283e6549c8fc4997","unresolved":false,"context_lines":[{"line_number":453,"context_line":"                                           log_fail_as_error\u003dFalse)"},{"line_number":454,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d True"},{"line_number":455,"context_line":"            except (OSError, RuntimeError):"},{"line_number":456,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":457,"context_line":"                             \"will not attempt to call it.\"))"},{"line_number":458,"context_line":"                self._IS_DHCP_RELEASE6_PRESENT \u003d False"},{"line_number":459,"context_line":"        return self._IS_DHCP_RELEASE6_PRESENT"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_62f3fd0a","line":456,"in_reply_to":"9a89bdaa_e758ff58","updated":"2016-09-12 13:30:11.000000000","message":"I don\u0027t think we should consider it optional. You basically say that operators may be ok exposing a half-broken API feature (DHCP stateful) to their users. I would say all API cases should be fixed unconditionally.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"d21085aa6921789c7758cce2e14aa29aed378dc1","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.network.namespace)"},{"line_number":475,"context_line":"        try:"},{"line_number":476,"context_line":"            ip_wrapper.netns.execute(cmd, run_as_root\u003dTrue)"},{"line_number":477,"context_line":"        except RuntimeError as e:"},{"line_number":478,"context_line":"            # when failed to release single lease there\u0027s"},{"line_number":479,"context_line":"            # no need to propagate error further"},{"line_number":480,"context_line":"            LOG.warning(e)"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a89bdaa_79529e36","line":477,"updated":"2016-09-13 10:01:30.000000000","message":"I would better avoid all the caching above and just catch NoFilterFound here too. That will give us the warning log message without bubbling it up. In the end, this special casing should go away in a next release.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c99c8cc9c857d7189c7823155d1fdbe60a7a7957","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.network.namespace)"},{"line_number":475,"context_line":"        try:"},{"line_number":476,"context_line":"            ip_wrapper.netns.execute(cmd, run_as_root\u003dTrue)"},{"line_number":477,"context_line":"        except RuntimeError as e:"},{"line_number":478,"context_line":"            # when failed to release single lease there\u0027s"},{"line_number":479,"context_line":"            # no need to propagate error further"},{"line_number":480,"context_line":"            LOG.warning(e)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_6717e751","line":477,"in_reply_to":"7a8ec9b2_5ef1f5cc","updated":"2016-09-14 07:55:12.000000000","message":"I suggest we stay specific, catching \u0027just\u0027 RuntimeError and NotFilterMatched (and only in case of ipv6).","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"36987b9680ec57b55c2062c9d9f1d40153523871","unresolved":false,"context_lines":[{"line_number":474,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(namespace\u003dself.network.namespace)"},{"line_number":475,"context_line":"        try:"},{"line_number":476,"context_line":"            ip_wrapper.netns.execute(cmd, run_as_root\u003dTrue)"},{"line_number":477,"context_line":"        except RuntimeError as e:"},{"line_number":478,"context_line":"            # when failed to release single lease there\u0027s"},{"line_number":479,"context_line":"            # no need to propagate error further"},{"line_number":480,"context_line":"            LOG.warning(e)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a8ec9b2_5ef1f5cc","line":477,"in_reply_to":"9a89bdaa_79529e36","updated":"2016-09-13 17:20:11.000000000","message":"I hate to change this to the very generic \"except Exception\" but that might be the best thing to catch all and not cause any side-effects.","commit_id":"f1e512eee511a1777a7f36998db3b1ecbffc6b39"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"e9ea13e42c62d8a879ea88a634e2ce50f8e2b62a","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        if self._IS_DHCP_RELEASE6_SUPPORTED is None:"},{"line_number":451,"context_line":"            self._IS_DHCP_RELEASE6_SUPPORTED \u003d checks.dhcp_release6_supported()"},{"line_number":452,"context_line":"            if not self._IS_DHCP_RELEASE6_SUPPORTED:"},{"line_number":453,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":454,"context_line":"                             \"will not call it again.\"))"},{"line_number":455,"context_line":"        return self._IS_DHCP_RELEASE6_SUPPORTED"},{"line_number":456,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"7a8ec9b2_8fd7b7be","line":453,"range":{"start_line":453,"start_character":20,"end_line":453,"end_character":24},"updated":"2016-09-19 16:55:45.000000000","message":"Should this be higher than info? I\u0027m thinking maybe it should be error level. I mean, we got here because something pretty bad is going on: someone\u0027s got a stateful IPv6 subnet and they\u0027re trying to release IPs. Bad things are going to happen from now on. The operator really should consider upgrading dnsmasq at this point, shouldn\u0027t they? Why not yell at them a little bit louder? But, I guess if they\u0027ve already ignored the sanity checks....","commit_id":"d3b20cf69fcb6ee2865608770d87673de47491b5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2bc9b73a71e021c9f2db332135750ca068e5db9c","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        if self._IS_DHCP_RELEASE6_SUPPORTED is None:"},{"line_number":451,"context_line":"            self._IS_DHCP_RELEASE6_SUPPORTED \u003d checks.dhcp_release6_supported()"},{"line_number":452,"context_line":"            if not self._IS_DHCP_RELEASE6_SUPPORTED:"},{"line_number":453,"context_line":"                LOG.info(_LI(\"dhcp_release6 is not present on this system, \""},{"line_number":454,"context_line":"                             \"will not call it again.\"))"},{"line_number":455,"context_line":"        return self._IS_DHCP_RELEASE6_SUPPORTED"},{"line_number":456,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a8bc5a2_42de1d6e","line":453,"range":{"start_line":453,"start_character":20,"end_line":453,"end_character":24},"in_reply_to":"7a8ec9b2_8fd7b7be","updated":"2016-09-23 13:13:27.000000000","message":"+ for using warn","commit_id":"d3b20cf69fcb6ee2865608770d87673de47491b5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2bc9b73a71e021c9f2db332135750ca068e5db9c","unresolved":false,"context_lines":[{"line_number":477,"context_line":"        except wrapper.FilterMatchNotExecutable as e:"},{"line_number":478,"context_line":"            # TODO(haleyb): this can go away when all distros are shipping"},{"line_number":479,"context_line":"            # a dhcp_release6 with dnsmasq"},{"line_number":480,"context_line":"            with excutils.save_and_reraise_exception() as ctx:"},{"line_number":481,"context_line":"                LOG.warning(e)"},{"line_number":482,"context_line":"                if netaddr.IPAddress(ip).version \u003d\u003d constants.IP_VERSION_6:"},{"line_number":483,"context_line":"                    # check if dhcp_release6 is present, so we don\u0027t try,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a8bc5a2_c2e94d1c","line":480,"updated":"2016-09-23 13:13:27.000000000","message":"Not sure why we need that except block at all since we checked, warned, and bailed out in line 462 already.","commit_id":"d3b20cf69fcb6ee2865608770d87673de47491b5"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"79df1d62c432b9108f1b5675eac7be8554525adb","unresolved":false,"context_lines":[{"line_number":293,"context_line":""},{"line_number":294,"context_line":"    _ID \u003d \u0027id:\u0027"},{"line_number":295,"context_line":""},{"line_number":296,"context_line":"    _IS_DHCP_RELEASE6_SUPPORTED \u003d None"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    @classmethod"},{"line_number":299,"context_line":"    def check_version(cls):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a8bc5a2_7b09f6dc","line":296,"updated":"2016-09-23 17:40:26.000000000","message":"it sucks that this variable cannot be reloaded on SIGHUP.","commit_id":"d4f92ede9ed52cd0b9059d993e3cf1f42d5ff57e"}],"neutron/tests/unit/agent/linux/test_dhcp.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"0ccb3b6e411bc18e952e67218e634ac1ac90e26e","unresolved":false,"context_lines":[{"line_number":1714,"context_line":"                          })"},{"line_number":1715,"context_line":"        ipw \u003d mock.patch("},{"line_number":1716,"context_line":"            \u0027neutron.agent.linux.ip_lib.IpNetnsCommand.execute\u0027).start()"},{"line_number":1717,"context_line":"        dnsmasq._is_dhcp_release6_present \u003d mock.Mock(return_value\u003dFalse)"},{"line_number":1718,"context_line":"        dnsmasq._release_unused_leases()"},{"line_number":1719,"context_line":"        # Verify that dhcp_release6 is not called when it is not present"},{"line_number":1720,"context_line":"        self.assertEqual(0, ipw.call_count)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a8bc5a2_05589f31","line":1717,"range":{"start_line":1717,"start_character":17,"end_line":1717,"end_character":41},"updated":"2016-09-23 13:14:33.000000000","message":"it\u0027s upper case in code","commit_id":"d3b20cf69fcb6ee2865608770d87673de47491b5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a8a97cac341361e8c80da921c8602872b113584b","unresolved":false,"context_lines":[{"line_number":1714,"context_line":"                          })"},{"line_number":1715,"context_line":"        ipw \u003d mock.patch("},{"line_number":1716,"context_line":"            \u0027neutron.agent.linux.ip_lib.IpNetnsCommand.execute\u0027).start()"},{"line_number":1717,"context_line":"        dnsmasq._is_dhcp_release6_present \u003d mock.Mock(return_value\u003dFalse)"},{"line_number":1718,"context_line":"        dnsmasq._release_unused_leases()"},{"line_number":1719,"context_line":"        # Verify that dhcp_release6 is not called when it is not present"},{"line_number":1720,"context_line":"        self.assertEqual(0, ipw.call_count)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a8bc5a2_6547a31d","line":1717,"range":{"start_line":1717,"start_character":44,"end_line":1717,"end_character":73},"updated":"2016-09-23 13:25:06.000000000","message":"no need for the mock, you can safely set it to False because you will set instance specific attribute, not class one.","commit_id":"d3b20cf69fcb6ee2865608770d87673de47491b5"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a8a97cac341361e8c80da921c8602872b113584b","unresolved":false,"context_lines":[{"line_number":1714,"context_line":"                          })"},{"line_number":1715,"context_line":"        ipw \u003d mock.patch("},{"line_number":1716,"context_line":"            \u0027neutron.agent.linux.ip_lib.IpNetnsCommand.execute\u0027).start()"},{"line_number":1717,"context_line":"        dnsmasq._is_dhcp_release6_present \u003d mock.Mock(return_value\u003dFalse)"},{"line_number":1718,"context_line":"        dnsmasq._release_unused_leases()"},{"line_number":1719,"context_line":"        # Verify that dhcp_release6 is not called when it is not present"},{"line_number":1720,"context_line":"        self.assertEqual(0, ipw.call_count)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a8bc5a2_4540e7a5","line":1717,"range":{"start_line":1717,"start_character":17,"end_line":1717,"end_character":41},"in_reply_to":"5a8bc5a2_05589f31","updated":"2016-09-23 13:25:06.000000000","message":"Actually, the name is completely wrong here, it\u0027s not just case.","commit_id":"d3b20cf69fcb6ee2865608770d87673de47491b5"}]}
