)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1b410b01b6fcec838ea9fa0b982458817f181b57","unresolved":false,"context_lines":[{"line_number":10,"context_line":"to the drivers:"},{"line_number":11,"context_line":"  * openstack baremetal driver show"},{"line_number":12,"context_line":"  * openstack baremetal driver list"},{"line_number":13,"context_line":"  * openstack baremetal driver properties show"},{"line_number":14,"context_line":"  * openstack baremetal driver passthru show"},{"line_number":15,"context_line":"  * openstack baremetal driver passthru call"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa7ab95a_5a04ee16","line":13,"updated":"2016-08-29 22:02:55.000000000","message":"What do you think about \u0027openstack baremetal driver show --properties\u0027? If --properties is specified, it only shows the properties.  I updated the spec [1]\n\n[1] http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/ironicclient-osc-plugin.html#openstack-baremetal-driver","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1b410b01b6fcec838ea9fa0b982458817f181b57","unresolved":false,"context_lines":[{"line_number":11,"context_line":"  * openstack baremetal driver show"},{"line_number":12,"context_line":"  * openstack baremetal driver list"},{"line_number":13,"context_line":"  * openstack baremetal driver properties show"},{"line_number":14,"context_line":"  * openstack baremetal driver passthru show"},{"line_number":15,"context_line":"  * openstack baremetal driver passthru call"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I68ae82d1ff7e2944c1d04f86c4362b6c0f499df1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"fa7ab95a_9c6753e8","line":14,"updated":"2016-08-29 22:02:55.000000000","message":"I decided it was better as \u0027list\u0027 because it was listing the available passthru methods, not showing one thing. (Also, similar to \u0027node passthru list\u0027 and \u0027node passthru call\u0027.) I updated the spec to reflect this: http://specs.openstack.org/openstack/ironic-specs/specs/not-implemented/ironicclient-osc-plugin.html#openstack-baremetal-driver","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"}],"ironicclient/osc/v1/baremetal_driver.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"14c3f1c27a7cd6ccaf2866b961a84b0732c06e9d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        drivers \u003d client.driver.list()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return (labels, (oscutils.get_item_properties(s, columns, formatters\u003d{"},{"line_number":46,"context_line":"            \u0027Properties\u0027: oscutils.format_dict},) for s in drivers))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class BaremetalDriverShow(show.ShowOne):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_04b8e7e4","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":23},"updated":"2016-08-12 12:08:26.000000000","message":"not sure what this means...\n\nhowever, can we print hosts not as str(list)?\n\nI.e. ironic driver-list:\n\n $ ironic driver-list\n +---------------------+-----------------------+\n | Supported driver(s) | Active host(s)        |\n +---------------------+-----------------------+\n | fake                | localhost.localdomain |\n | pxe_ipmitool        | localhost.localdomain |\n | pxe_ssh             | localhost.localdomain |\n +---------------------+-----------------------+\n\nthis command:\n\n $ env/bin/openstack baremetal driver list\n +---------------------+----------------------------+\n | Supported driver(s) | Active host(s)             |\n +---------------------+----------------------------+\n | pxe_ssh             | [u\u0027localhost.localdomain\u0027] |\n | pxe_ipmitool        | [u\u0027localhost.localdomain\u0027] |\n | fake                | [u\u0027localhost.localdomain\u0027] |\n +---------------------+----------------------------+","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"eac65f4e3d0e025b1a9320684a45d854315826ad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        drivers \u003d client.driver.list()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return (labels, (oscutils.get_item_properties(s, columns, formatters\u003d{"},{"line_number":46,"context_line":"            \u0027Properties\u0027: oscutils.format_dict},) for s in drivers))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class BaremetalDriverShow(show.ShowOne):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_fde952e7","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":23},"in_reply_to":"1ac06dbe_88a21c99","updated":"2016-08-29 16:39:39.000000000","message":"Done","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"773bbd778cb0bb5a14622d33f127c5418999db41","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        drivers \u003d client.driver.list()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return (labels, (oscutils.get_item_properties(s, columns, formatters\u003d{"},{"line_number":46,"context_line":"            \u0027Properties\u0027: oscutils.format_dict},) for s in drivers))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class BaremetalDriverShow(show.ShowOne):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ac06dbe_88a21c99","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":23},"in_reply_to":"9ad45d7e_04b8e7e4","updated":"2016-08-24 19:15:08.000000000","message":"+1 I agree this output should be human readable lists, not python lists","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"eac65f4e3d0e025b1a9320684a45d854315826ad","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        drivers \u003d client.driver.list()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        return (labels, (oscutils.get_item_properties(s, columns, formatters\u003d{"},{"line_number":46,"context_line":"            \u0027Properties\u0027: oscutils.format_dict},) for s in drivers))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class BaremetalDriverShow(show.ShowOne):"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_1de7d611","line":46,"range":{"start_line":46,"start_character":13,"end_line":46,"end_character":23},"in_reply_to":"9ad45d7e_04b8e7e4","updated":"2016-08-29 16:39:39.000000000","message":"Done","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"14c3f1c27a7cd6ccaf2866b961a84b0732c06e9d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver_name)._info"},{"line_number":67,"context_line":"        driver.pop(\"links\", None)"},{"line_number":68,"context_line":"        return zip(*sorted(driver.items()))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_a4c3db37","line":67,"updated":"2016-08-12 12:08:26.000000000","message":"ditto about not printing Python list, e.g.:\n\n driver[\u0027hosts\u0027] \u003d \u0027, \u0027.join(driver.get(\u0027hosts\u0027, ()))","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"eac65f4e3d0e025b1a9320684a45d854315826ad","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver_name)._info"},{"line_number":67,"context_line":"        driver.pop(\"links\", None)"},{"line_number":68,"context_line":"        return zip(*sorted(driver.items()))"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_7dd5421a","line":67,"in_reply_to":"9ad45d7e_a4c3db37","updated":"2016-08-29 16:39:39.000000000","message":"Done","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"14c3f1c27a7cd6ccaf2866b961a84b0732c06e9d","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        params \u003d []"},{"line_number":116,"context_line":"        for method, response in methods.items():"},{"line_number":117,"context_line":"            response[\u0027name\u0027] \u003d method"},{"line_number":118,"context_line":"            http_methods \u003d \u0027,\u0027.join(response[\u0027http_methods\u0027])"},{"line_number":119,"context_line":"            response[\u0027http_methods\u0027] \u003d http_methods"},{"line_number":120,"context_line":"            params.append(response)"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_e4779306","line":118,"updated":"2016-08-12 12:08:26.000000000","message":"\", \" instead of \",\"","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":19267,"name":"Rodion Promyshlennikov","email":"rpromyshlennikov@mirantis.com","username":"rodion"},"change_message_id":"eac65f4e3d0e025b1a9320684a45d854315826ad","unresolved":false,"context_lines":[{"line_number":115,"context_line":"        params \u003d []"},{"line_number":116,"context_line":"        for method, response in methods.items():"},{"line_number":117,"context_line":"            response[\u0027name\u0027] \u003d method"},{"line_number":118,"context_line":"            http_methods \u003d \u0027,\u0027.join(response[\u0027http_methods\u0027])"},{"line_number":119,"context_line":"            response[\u0027http_methods\u0027] \u003d http_methods"},{"line_number":120,"context_line":"            params.append(response)"},{"line_number":121,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"fa7ab95a_5d16bef1","line":118,"in_reply_to":"9ad45d7e_e4779306","updated":"2016-08-29 16:39:39.000000000","message":"Done","commit_id":"e1e8d63a98212de308e916da4bbfd1425c78e1b5"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3bfe7b3eec41c98193875c77b8b9f94cccb781a7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from ironicclient.v1 import resource_fields as res_fields"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"class BaremetalDriverList(command.Lister):"},{"line_number":27,"context_line":"    \"\"\"List the enabled drivers.\"\"\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    log \u003d logging.getLogger(__name__ + \".BaremetalDriverList\")"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_9c1f5307","line":26,"updated":"2016-08-29 22:27:42.000000000","message":"So I don\u0027t know why, but we seem to have classes named \u003caction\u003e\u003cobject\u003e. To be consistent, we should probably name these in a similar fashion, \u0027ListBaremetalDriver\u0027.","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3bfe7b3eec41c98193875c77b8b9f94cccb781a7","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    def get_parser(self, prog_name):"},{"line_number":56,"context_line":"        parser \u003d super(BaremetalDriverShow, self).get_parser(prog_name)"},{"line_number":57,"context_line":"        parser.add_argument("},{"line_number":58,"context_line":"            \u0027driver_name\u0027,"},{"line_number":59,"context_line":"            metavar\u003d\u0027\u003cdriver\u003e\u0027,"},{"line_number":60,"context_line":"            help\u003d\u0027Name of the driver.\u0027)"},{"line_number":61,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_dc7c7bb7","line":58,"updated":"2016-08-29 22:27:42.000000000","message":"Can we just use \u0027driver\u0027? The help string indicates that it is a name. I\u0027m not quite sure how we\u0027re going to handle with with the driver composition reform, so it seems safer to just use \u0027driver\u0027.","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"cb68bf9c38752c3ee34300e9f154c77a1c6cd62e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":65,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver_name)._info"},{"line_number":68,"context_line":"        driver.pop(\"links\", None)"},{"line_number":69,"context_line":"        driver[\u0027hosts\u0027] \u003d \u0027, \u0027.join(driver.get(\u0027hosts\u0027, ()))"},{"line_number":70,"context_line":"        return zip(*sorted(driver.items()))"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_e6289a88","line":67,"range":{"start_line":67,"start_character":70,"end_line":67,"end_character":75},"updated":"2016-08-30 14:34:48.000000000","message":"Let\u0027s not rely on the private _info attribute here, we could just as easy construct the dict we need","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"853f71b0b0bb9d75415be5f66f1046aecc262b33","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":65,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver_name)._info"},{"line_number":68,"context_line":"        driver.pop(\"links\", None)"},{"line_number":69,"context_line":"        driver[\u0027hosts\u0027] \u003d \u0027, \u0027.join(driver.get(\u0027hosts\u0027, ()))"},{"line_number":70,"context_line":"        return zip(*sorted(driver.items()))"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_e0ecfabc","line":67,"range":{"start_line":67,"start_character":70,"end_line":67,"end_character":75},"in_reply_to":"fa7ab95a_3582a6c8","updated":"2016-08-30 15:43:31.000000000","message":"ditto, update is coming anyway so why not do it here? .to_dict() is basically the same thing.","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"ef63b931d2ca9df6bf24b2731b3b5b76886ca14e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":65,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver_name)._info"},{"line_number":68,"context_line":"        driver.pop(\"links\", None)"},{"line_number":69,"context_line":"        driver[\u0027hosts\u0027] \u003d \u0027, \u0027.join(driver.get(\u0027hosts\u0027, ()))"},{"line_number":70,"context_line":"        return zip(*sorted(driver.items()))"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_3582a6c8","line":67,"range":{"start_line":67,"start_character":70,"end_line":67,"end_character":75},"in_reply_to":"fa7ab95a_e6289a88","updated":"2016-08-30 15:30:55.000000000","message":"Oh. ._info is already being used in the code, in baremetal_port, chassis, and node, so I\u0027m fine leaving this as-is, and changing them all (to do the same thing) in a separate patch.","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3bfe7b3eec41c98193875c77b8b9f94cccb781a7","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        parser \u003d super(BaremetalDriverPropertiesShow, self).get_parser("},{"line_number":80,"context_line":"            prog_name)"},{"line_number":81,"context_line":"        parser.add_argument("},{"line_number":82,"context_line":"            \u0027driver_name\u0027,"},{"line_number":83,"context_line":"            metavar\u003d\u0027\u003cdriver\u003e\u0027,"},{"line_number":84,"context_line":"            help\u003d\u0027Name of the driver.\u0027)"},{"line_number":85,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_fc321f0f","line":82,"updated":"2016-08-29 22:27:42.000000000","message":"ditto about \u0027driver\u0027","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3bfe7b3eec41c98193875c77b8b9f94cccb781a7","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    def get_parser(self, prog_name):"},{"line_number":100,"context_line":"        parser \u003d super(BaremetalDriverPassthruShow, self).get_parser(prog_name)"},{"line_number":101,"context_line":"        parser.add_argument("},{"line_number":102,"context_line":"            \u0027driver_name\u0027,"},{"line_number":103,"context_line":"            metavar\u003d\u0027\u003cdriver\u003e\u0027,"},{"line_number":104,"context_line":"            help\u003d\u0027Name of the driver.\u0027)"},{"line_number":105,"context_line":"        return parser"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_3c100759","line":102,"updated":"2016-08-29 22:27:42.000000000","message":"ditto","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"3bfe7b3eec41c98193875c77b8b9f94cccb781a7","unresolved":false,"context_lines":[{"line_number":126,"context_line":""},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"class BaremetalDriverPassthruCall(command.ShowOne):"},{"line_number":129,"context_line":"    \"\"\"Call a vendor-passthru extension for a driver.\"\"\""},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    log \u003d logging.getLogger(__name__ + \".BaremetalDriverPassthruCall\")"},{"line_number":132,"context_line":"    http_methods \u003d [\u0027POST\u0027, \u0027PUT\u0027, \u0027GET\u0027, \u0027DELETE\u0027, \u0027PATCH\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_9cf7538a","line":129,"updated":"2016-08-29 22:27:42.000000000","message":"in the node version of this [1], I did \u0027vendor passthru method\u0027 so we should be consistent. Dmitry didn\u0027t like the hyphen. I used \u0027method\u0027 since they are python methods. Do you think \u0027extension\u0027 is better?\n\n[1] https://review.openstack.org/#/c/357400/","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"cb68bf9c38752c3ee34300e9f154c77a1c6cd62e","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            choices\u003dself.http_methods,"},{"line_number":160,"context_line":"            help\u003d\"The HTTP method to use in the request. Valid HTTP \""},{"line_number":161,"context_line":"                 \"methods are: \u0027POST\u0027, \u0027PUT\u0027, \u0027GET\u0027, \u0027DELETE\u0027, and \u0027PATCH\u0027. \""},{"line_number":162,"context_line":"                 \"Defaults to \u0027POST\u0027.\""},{"line_number":163,"context_line":"        )"},{"line_number":164,"context_line":"        return parser"},{"line_number":165,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"fa7ab95a_86242e0d","line":162,"range":{"start_line":162,"start_character":18,"end_line":162,"end_character":36},"updated":"2016-08-30 14:34:48.000000000","message":"missing the default\u003d here","commit_id":"6614fc081b311bdfbf27c8f31b9caa8d347aad5f"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"174f06f02d54fc7e7177dd7947b99e770a06fee1","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            props \u003d baremetal_client.driver.properties(parsed_args.driver)"},{"line_number":165,"context_line":"            return zip(*sorted(props.items()))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver)._info"},{"line_number":168,"context_line":"        driver.pop(\"links\", None)"},{"line_number":169,"context_line":"        driver.pop(\"properties\", None)"},{"line_number":170,"context_line":"        # NOTE(rloo): this will show the hosts as a comma-separated string"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_53b6113e","line":167,"range":{"start_line":167,"start_character":65,"end_line":167,"end_character":70},"updated":"2016-08-31 16:53:50.000000000","message":"that\u0027s a private method, we should not access it like that\n\n(according with @vrok on the previous patch-set we could use to_dict() instead)","commit_id":"8a2f9f02e6b717a6bbd2f7311f7e1f27b08909f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a93430a93e4c229d579de266aa57eaeb2c4f4385","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            props \u003d baremetal_client.driver.properties(parsed_args.driver)"},{"line_number":165,"context_line":"            return zip(*sorted(props.items()))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver)._info"},{"line_number":168,"context_line":"        driver.pop(\"links\", None)"},{"line_number":169,"context_line":"        driver.pop(\"properties\", None)"},{"line_number":170,"context_line":"        # NOTE(rloo): this will show the hosts as a comma-separated string"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_49aae071","line":167,"range":{"start_line":167,"start_character":65,"end_line":167,"end_character":70},"in_reply_to":"fa7ab95a_53b6113e","updated":"2016-08-31 17:15:06.000000000","message":"Yes, we shouldn\u0027t. Since the ._info is used elsewhere, I think we might as well fix all that in a separate patch. I am not crazy about the .to_dict() because it makes a copy of it. Need to think about it :)","commit_id":"8a2f9f02e6b717a6bbd2f7311f7e1f27b08909f2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b1a6de41cf2200e6bbfaf75e9f97659cb1d8b724","unresolved":false,"context_lines":[{"line_number":154,"context_line":"        self.log.debug(\"take_action(%s)\", parsed_args)"},{"line_number":155,"context_line":"        baremetal_client \u003d self.app.client_manager.baremetal"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        driver \u003d baremetal_client.driver.get(parsed_args.driver)._info"},{"line_number":158,"context_line":"        driver.pop(\"links\", None)"},{"line_number":159,"context_line":"        driver.pop(\"properties\", None)"},{"line_number":160,"context_line":"        # NOTE(rloo): this will show the hosts as a comma-separated string"}],"source_content_type":"text/x-python","patch_set":15,"id":"fa7ab95a_09a0d88f","line":157,"updated":"2016-08-31 17:14:08.000000000","message":"please add a FIXME to stop relying on this private attribute in case you submit a new patch-set","commit_id":"e31544bf5d014b87a3b8585e3d27c4f81a591ce3"}],"ironicclient/tests/unit/osc/v1/test_baremetal_driver.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"174f06f02d54fc7e7177dd7947b99e770a06fee1","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        }"},{"line_number":103,"context_line":"        (self.baremetal_mock.driver.vendor_passthru."},{"line_number":104,"context_line":"            assert_called_once_with(*args, **kwargs))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_baremetal_driver_passthru_call_no_arg(self):"},{"line_number":107,"context_line":"        arglist \u003d []"},{"line_number":108,"context_line":"        verifylist \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_93a5f9b6","line":105,"updated":"2016-08-31 16:53:50.000000000","message":"Would be good to have a test validating the default http method here, just to make sure we don\u0027t accidentally introduce a programmatic error (like @vdrok found out in the previous review that it wasn\u0027t setting the default value)","commit_id":"8a2f9f02e6b717a6bbd2f7311f7e1f27b08909f2"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"a93430a93e4c229d579de266aa57eaeb2c4f4385","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        }"},{"line_number":103,"context_line":"        (self.baremetal_mock.driver.vendor_passthru."},{"line_number":104,"context_line":"            assert_called_once_with(*args, **kwargs))"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    def test_baremetal_driver_passthru_call_no_arg(self):"},{"line_number":107,"context_line":"        arglist \u003d []"},{"line_number":108,"context_line":"        verifylist \u003d []"}],"source_content_type":"text/x-python","patch_set":13,"id":"fa7ab95a_69b5e4ce","line":105,"in_reply_to":"fa7ab95a_93a5f9b6","updated":"2016-08-31 17:15:06.000000000","message":"Good idea. Done in patch set 15.","commit_id":"8a2f9f02e6b717a6bbd2f7311f7e1f27b08909f2"}]}
