)]}'
{"ironic/dhcp/neutron.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"57f3e619260452175b827c2917842619235a3786","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    def __init__(self, **kwargs):"},{"line_number":92,"context_line":"        if kwargs:"},{"line_number":93,"context_line":"            LOG.warn(_LW(\u0027Redundant arguments %s passed to NeutronDHCPApi\u0027),"},{"line_number":94,"context_line":"                         kwargs)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_port_dhcp_opts(self, port_id, dhcp_options, token\u003dNone):"},{"line_number":97,"context_line":"        \"\"\"Update a port\u0027s attributes."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_d049758f","line":94,"updated":"2014-09-19 15:16:08.000000000","message":"I presume this is here because we don\u0027t want to change method signature, but I question the usefulness.","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"25e6e545b1fccc1f0a01e18d0567a48e7eb773ab","unresolved":false,"context_lines":[{"line_number":91,"context_line":"    def __init__(self, **kwargs):"},{"line_number":92,"context_line":"        if kwargs:"},{"line_number":93,"context_line":"            LOG.warn(_LW(\u0027Redundant arguments %s passed to NeutronDHCPApi\u0027),"},{"line_number":94,"context_line":"                         kwargs)"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def update_port_dhcp_opts(self, port_id, dhcp_options, token\u003dNone):"},{"line_number":97,"context_line":"        \"\"\"Update a port\u0027s attributes."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_a329099d","line":94,"in_reply_to":"fa98f980_d049758f","updated":"2014-09-19 15:20:38.000000000","message":"Done","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"57f3e619260452175b827c2917842619235a3786","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            LOG.debug(\"Waiting 15 seconds for Neutron.\")"},{"line_number":184,"context_line":"            time.sleep(15)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _get_fixed_ip_address(self, port_uuid, client):"},{"line_number":187,"context_line":"        \"\"\"Get a port\u0027s fixed ip address."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        :param port_uuid: Neutron port id."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_0309f52b","line":186,"updated":"2014-09-19 15:16:08.000000000","message":"Need to add :param client: to the docstring.","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"25e6e545b1fccc1f0a01e18d0567a48e7eb773ab","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            LOG.debug(\"Waiting 15 seconds for Neutron.\")"},{"line_number":184,"context_line":"            time.sleep(15)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def _get_fixed_ip_address(self, port_uuid, client):"},{"line_number":187,"context_line":"        \"\"\"Get a port\u0027s fixed ip address."},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        :param port_uuid: Neutron port id."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_c317ed52","line":186,"in_reply_to":"fa98f980_0309f52b","updated":"2014-09-19 15:20:38.000000000","message":"Done","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"57f3e619260452175b827c2917842619235a3786","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                      port_uuid)"},{"line_number":220,"context_line":"            raise exception.FailedToGetIPAddressOnPort(port_id\u003dport_uuid)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _get_port_ip_address(self, task, port_uuid, client):"},{"line_number":223,"context_line":"        \"\"\"Get ip address of ironic port assigned by neutron."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        :param task: a TaskManager instance."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_e3015105","line":222,"updated":"2014-09-19 15:16:08.000000000","message":"Ditto","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"25e6e545b1fccc1f0a01e18d0567a48e7eb773ab","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                      port_uuid)"},{"line_number":220,"context_line":"            raise exception.FailedToGetIPAddressOnPort(port_id\u003dport_uuid)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def _get_port_ip_address(self, task, port_uuid, client):"},{"line_number":223,"context_line":"        \"\"\"Get ip address of ironic port assigned by neutron."},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"        :param task: a TaskManager instance."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_e31a317b","line":222,"in_reply_to":"fa98f980_e3015105","updated":"2014-09-19 15:20:38.000000000","message":"Done","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"}],"ironic/drivers/modules/agent.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"afeb6e968144756fb3228842156e78d0cd47e4d0","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        \"\"\""},{"line_number":246,"context_line":"        dhcp_opts \u003d pxe_utils.dhcp_options_for_instance(task)"},{"line_number":247,"context_line":"        provider \u003d dhcp_factory.DHCPFactory()"},{"line_number":248,"context_line":"        provider.update_dhcp(task, dhcp_opts, token\u003dtask.context.auth_token)"},{"line_number":249,"context_line":"        manager_utils.node_set_boot_device(task, \u0027pxe\u0027, persistent\u003dTrue)"},{"line_number":250,"context_line":"        manager_utils.node_power_action(task, states.REBOOT)"},{"line_number":251,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_f08af918","line":248,"updated":"2014-09-19 14:37:19.000000000","message":"do we need to pass token here? I mean you already have the task object you can just get it from there","commit_id":"0e3b7831473bfef719ba4bf606800d666cb5b028"}],"ironic/tests/dhcp/test_neutron.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"57f3e619260452175b827c2917842619235a3786","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    \u0027endpoint_url\u0027: \u0027test-url\u0027,"},{"line_number":70,"context_line":"                    \u0027auth_strategy\u0027: None}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        mock_client_init.return_value \u003d None"},{"line_number":73,"context_line":"        neutron._build_client(token\u003dtoken)"},{"line_number":74,"context_line":"        mock_client_init.assert_called_once_with(**expected)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_e376b1a2","line":72,"updated":"2014-09-19 15:16:08.000000000","message":"While you\u0027re in here, I don\u0027t think we need this.","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"25e6e545b1fccc1f0a01e18d0567a48e7eb773ab","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    \u0027endpoint_url\u0027: \u0027test-url\u0027,"},{"line_number":70,"context_line":"                    \u0027auth_strategy\u0027: None}"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        mock_client_init.return_value \u003d None"},{"line_number":73,"context_line":"        neutron._build_client(token\u003dtoken)"},{"line_number":74,"context_line":"        mock_client_init.assert_called_once_with(**expected)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_e3331111","line":72,"in_reply_to":"fa98f980_e376b1a2","updated":"2014-09-19 15:20:38.000000000","message":"we do:\n\n TypeError: __init__() should return None, not \u0027MagicMock\u0027","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"57f3e619260452175b827c2917842619235a3786","unresolved":false,"context_lines":[{"line_number":84,"context_line":"                    \u0027password\u0027: \u0027test-admin-password\u0027,"},{"line_number":85,"context_line":"                    \u0027auth_url\u0027: \u0027test-auth-uri\u0027}"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        mock_client_init.return_value \u003d None"},{"line_number":88,"context_line":"        neutron._build_client(token\u003dNone)"},{"line_number":89,"context_line":"        mock_client_init.assert_called_once_with(**expected)"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_237199a8","line":87,"updated":"2014-09-19 15:16:08.000000000","message":"Ditto","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"57f3e619260452175b827c2917842619235a3786","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                                  self.node.uuid) as task:"},{"line_number":290,"context_line":"            api \u003d dhcp_factory.DHCPFactory().provider"},{"line_number":291,"context_line":"            result \u003d api._get_port_ip_address(task, port.uuid,"},{"line_number":292,"context_line":"                                              mock.sentinel.client)"},{"line_number":293,"context_line":"            mock_gnvi.assert_called_once_with(task)"},{"line_number":294,"context_line":"        self.assertEqual(expected, result)"},{"line_number":295,"context_line":"        mock_gfia.assert_called_once_with(\u0027vif-uuid\u0027, mock.sentinel.client)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_23d439bc","line":292,"updated":"2014-09-19 15:16:08.000000000","message":"Why not use `client \u003d mock.Mock()` like the other tests?","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"bcbb1891f1e1897fbd470729bebc6fcc8bc96df5","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                                  self.node.uuid) as task:"},{"line_number":290,"context_line":"            api \u003d dhcp_factory.DHCPFactory().provider"},{"line_number":291,"context_line":"            result \u003d api._get_port_ip_address(task, port.uuid,"},{"line_number":292,"context_line":"                                              mock.sentinel.client)"},{"line_number":293,"context_line":"            mock_gnvi.assert_called_once_with(task)"},{"line_number":294,"context_line":"        self.assertEqual(expected, result)"},{"line_number":295,"context_line":"        mock_gfia.assert_called_once_with(\u0027vif-uuid\u0027, mock.sentinel.client)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa98f980_660d6f35","line":292,"in_reply_to":"fa98f980_23d439bc","updated":"2014-09-19 15:22:31.000000000","message":"because I don\u0027t call assert_* on it, like in other tests, it\u0027s just passed in and compared on line #295","commit_id":"479854615fedbe4a88b775c2fdd2582b1cfd7ae9"}]}
