)]}'
{"quantum/agent/linux/dhcp.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"6c41d7b173afdae8a14a65f6fc691cc4ed2a4c71","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        try:"},{"line_number":236,"context_line":"            cmd \u003d [\u0027dnsmasq\u0027, \u0027--version\u0027]"},{"line_number":237,"context_line":"            out \u003d utils.execute(cmd)"},{"line_number":238,"context_line":"            ver \u003d re.findall(\"\\d+.\\d+\", out)[0]"},{"line_number":239,"context_line":"            is_valid_version \u003d float(ver) \u003e\u003d cls.MINIMUM_VERSION"},{"line_number":240,"context_line":"            if not is_valid_version:"},{"line_number":241,"context_line":"                LOG.warning(_(\u0027FAILED VERSION REQUIREMENT FOR DNSMASQ. \u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F6z8%3D","line":238,"updated":"2013-05-20 10:40:31.000000000","message":"could convert to float here, rather than twice below...","commit_id":"3339f96afefb569dde450888493aaa0307f0406e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"6c41d7b173afdae8a14a65f6fc691cc4ed2a4c71","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                # TODO (mark): how do we indicate other options"},{"line_number":301,"context_line":"                # ra-only, slaac, ra-nameservers, and ra-stateless."},{"line_number":302,"context_line":"                mode \u003d \u0027static\u0027"},{"line_number":303,"context_line":"            if self.version \u003e\u003d self.MINIMUM_VERSION:"},{"line_number":304,"context_line":"                set_tag \u003d \u0027set:\u0027"},{"line_number":305,"context_line":"            else:"},{"line_number":306,"context_line":"                set_tag \u003d \u0027\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F6zg%3D","line":303,"updated":"2013-05-20 10:40:31.000000000","message":"Could move outside of for loop, to save re-evaluation on each subnet.","commit_id":"3339f96afefb569dde450888493aaa0307f0406e"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"6c41d7b173afdae8a14a65f6fc691cc4ed2a4c71","unresolved":false,"context_lines":[{"line_number":305,"context_line":"            else:"},{"line_number":306,"context_line":"                set_tag \u003d \u0027\u0027"},{"line_number":307,"context_line":"            cmd.append(\u0027--dhcp-range\u003d%s%s,%s,%s,%ss\u0027 %"},{"line_number":308,"context_line":"                       (set_tag, self._TAG_PREFIX % i,"},{"line_number":309,"context_line":"                        netaddr.IPNetwork(subnet.cidr).network,"},{"line_number":310,"context_line":"                        mode,"},{"line_number":311,"context_line":"                        self.conf.dhcp_lease_time))"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F6yc%3D","line":308,"updated":"2013-05-20 10:40:31.000000000","message":"It seems like set_tag and self._TAG_PREFIX are used several times (inside loops) and are static. Could you make a member that gets set with \"tag%d\" or \"set:tag%d\" and use that here and in _format_option()?","commit_id":"3339f96afefb569dde450888493aaa0307f0406e"}],"quantum/tests/unit/test_linux_dhcp.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"6c41d7b173afdae8a14a65f6fc691cc4ed2a4c71","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        with mock.patch.object(dhcp.Dnsmasq, \u0027get_conf_file_name\u0027) as conf_fn:"},{"line_number":491,"context_line":"            conf_fn.return_value \u003d \u0027/foo/opts\u0027"},{"line_number":492,"context_line":"            dm \u003d dhcp.Dnsmasq(self.conf, FakeDualNetwork(),"},{"line_number":493,"context_line":"                              version\u003dfloat(2.59))"},{"line_number":494,"context_line":"            dm._output_opts_file()"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"        self.safe.assert_called_once_with(\u0027/foo/opts\u0027, expected)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2F6x8%3D","line":493,"updated":"2013-05-20 10:40:31.000000000","message":"Will the minimum version every get updated? If so, it may make sense to use the literal in these tests. It also would be more expressive as to what is going on (e.g. MINIMUM_VERSION - 0.11 would indicate that the value is below min, better than 2.48).","commit_id":"3339f96afefb569dde450888493aaa0307f0406e"}]}
