)]}'
{"ironicclient/osc/v1/baremetal.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"75bd9c5df97b3437a948c566fe88a1775f0b4a92","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            type\u003dint,"},{"line_number":43,"context_line":"            help\u003d\u0027Maximum number of nodes to return per request, \u0027"},{"line_number":44,"context_line":"                 \u00270 for no limit. Default is the maximum number used \u0027"},{"line_number":45,"context_line":"                 \u0027by the Ironic API Service.\u0027)"},{"line_number":46,"context_line":"        parser.add_argument("},{"line_number":47,"context_line":"            \u0027--marker\u0027,"},{"line_number":48,"context_line":"            metavar\u003d\u0027\u003cnode\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_7f7bcb28","line":45,"updated":"2015-04-09 19:01:53.000000000","message":"Baremetal API*\n\nIronic is a codename, not a service","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"ce6640b983c5ac7dc12cfb3e5ea160c821597ce9","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            type\u003dint,"},{"line_number":43,"context_line":"            help\u003d\u0027Maximum number of nodes to return per request, \u0027"},{"line_number":44,"context_line":"                 \u00270 for no limit. Default is the maximum number used \u0027"},{"line_number":45,"context_line":"                 \u0027by the Ironic API Service.\u0027)"},{"line_number":46,"context_line":"        parser.add_argument("},{"line_number":47,"context_line":"            \u0027--marker\u0027,"},{"line_number":48,"context_line":"            metavar\u003d\u0027\u003cnode\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_5a5375e2","line":45,"in_reply_to":"9aa53dc9_7f7bcb28","updated":"2015-04-09 19:23:20.000000000","message":"Missed that. Thanks.","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"75bd9c5df97b3437a948c566fe88a1775f0b4a92","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            help\u003d\u0027Node UUID (for example, of the last node in the list from \u0027"},{"line_number":50,"context_line":"                 \u0027a previous request). Returns the list of nodes after this \u0027"},{"line_number":51,"context_line":"                 \u0027UUID.\u0027)"},{"line_number":52,"context_line":"        parser.add_argument("},{"line_number":53,"context_line":"            \u0027--sort-key\u0027,"},{"line_number":54,"context_line":"            metavar\u003d\u0027\u003cfield\u003e\u0027,"},{"line_number":55,"context_line":"            help\u003d\u0027Node field that will be used for sorting.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_9f220f51","line":52,"updated":"2015-04-09 19:01:53.000000000","message":"might be worth seeing if you can leverage the sort we implemented for listing images. its basically a key and direction, just like what you have.\n\n\nparms: https://github.com/openstack/python-openstackclient/blob/6525c065a4e5ee0ff9ea3137a9ee57d58beb5cd5/openstackclient/image/v2/image.py#L108-L115\n\nsorting: https://github.com/openstack/python-openstackclient/blob/9ce112f1a1e05d18e590da20c268de967a7b4795/openstackclient/common/utils.py#L184","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"ce6640b983c5ac7dc12cfb3e5ea160c821597ce9","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            help\u003d\u0027Node UUID (for example, of the last node in the list from \u0027"},{"line_number":50,"context_line":"                 \u0027a previous request). Returns the list of nodes after this \u0027"},{"line_number":51,"context_line":"                 \u0027UUID.\u0027)"},{"line_number":52,"context_line":"        parser.add_argument("},{"line_number":53,"context_line":"            \u0027--sort-key\u0027,"},{"line_number":54,"context_line":"            metavar\u003d\u0027\u003cfield\u003e\u0027,"},{"line_number":55,"context_line":"            help\u003d\u0027Node field that will be used for sorting.\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_9a4d7d40","line":52,"in_reply_to":"9aa53dc9_9f220f51","updated":"2015-04-09 19:23:20.000000000","message":"Awesome. I was wondering. :) I will use that.","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"75bd9c5df97b3437a948c566fe88a1775f0b4a92","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        parser.add_argument("},{"line_number":62,"context_line":"            \u0027--maintenance\u0027,"},{"line_number":63,"context_line":"            metavar\u003d\u0027\u003cboolean\u003e\u0027,"},{"line_number":64,"context_line":"            choices\u003d[\u0027true\u0027, \u0027True\u0027, \u0027false\u0027, \u0027False\u0027],"},{"line_number":65,"context_line":"            help\u003d\"List nodes in maintenance mode: \u0027true\u0027 or \u0027false\u0027.\")"},{"line_number":66,"context_line":"        parser.add_argument("},{"line_number":67,"context_line":"            \u0027--associated\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_ff3d9b8f","line":64,"updated":"2015-04-09 19:01:53.000000000","message":"so instead of --maintenance true or --maintenance false.\nIn OSC we typically just treat them like flags with a reasonable default.\n\nif --maintenance appears, it\u0027s considered true, other wise it\u0027s false. most default to false. Like how you have your \u0027detail\u0027 option\n\nif you are against this, then create a single variable outside the parser for your choices, you have them written out as literals twice","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"ce6640b983c5ac7dc12cfb3e5ea160c821597ce9","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        parser.add_argument("},{"line_number":62,"context_line":"            \u0027--maintenance\u0027,"},{"line_number":63,"context_line":"            metavar\u003d\u0027\u003cboolean\u003e\u0027,"},{"line_number":64,"context_line":"            choices\u003d[\u0027true\u0027, \u0027True\u0027, \u0027false\u0027, \u0027False\u0027],"},{"line_number":65,"context_line":"            help\u003d\"List nodes in maintenance mode: \u0027true\u0027 or \u0027false\u0027.\")"},{"line_number":66,"context_line":"        parser.add_argument("},{"line_number":67,"context_line":"            \u0027--associated\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_1a604da4","line":64,"in_reply_to":"9aa53dc9_ff3d9b8f","updated":"2015-04-09 19:23:20.000000000","message":"I am not against it. I will change it.","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"75bd9c5df97b3437a948c566fe88a1775f0b4a92","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            choices\u003d[\u0027true\u0027, \u0027True\u0027, \u0027false\u0027, \u0027False\u0027],"},{"line_number":70,"context_line":"            help\u003d\"List nodes by instance association: \u0027true\u0027 or \u0027false\u0027.\")"},{"line_number":71,"context_line":"        parser.add_argument("},{"line_number":72,"context_line":"            \u0027--detail\u0027,"},{"line_number":73,"context_line":"            dest\u003d\u0027detail\u0027,"},{"line_number":74,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":75,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_1f9ddfbb","line":72,"updated":"2015-04-09 19:01:53.000000000","message":"typically we use --long in OSC","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"ce6640b983c5ac7dc12cfb3e5ea160c821597ce9","unresolved":false,"context_lines":[{"line_number":69,"context_line":"            choices\u003d[\u0027true\u0027, \u0027True\u0027, \u0027false\u0027, \u0027False\u0027],"},{"line_number":70,"context_line":"            help\u003d\"List nodes by instance association: \u0027true\u0027 or \u0027false\u0027.\")"},{"line_number":71,"context_line":"        parser.add_argument("},{"line_number":72,"context_line":"            \u0027--detail\u0027,"},{"line_number":73,"context_line":"            dest\u003d\u0027detail\u0027,"},{"line_number":74,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":75,"context_line":"            default\u003dFalse,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aa53dc9_1a072dcb","line":72,"in_reply_to":"9aa53dc9_1f9ddfbb","updated":"2015-04-09 19:23:20.000000000","message":"I will add --long and keep this as an alias","commit_id":"ecf0a5aff39c3bd822a1b898e3c0de7c6c219124"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b5d1018d789a963a474995993220627c5751a2f3","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \"--matching\","},{"line_number":37,"context_line":"            metavar\u003d\"\u003chostname\u003e\","},{"line_number":38,"context_line":"            help\u003d\"Filter hypervisors using \u003chostname\u003e substring\","},{"line_number":39,"context_line":"        )"},{"line_number":40,"context_line":"        parser.add_argument("},{"line_number":41,"context_line":"            \u0027--limit\u0027,"},{"line_number":42,"context_line":"            metavar\u003d\u0027\u003climit\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aa745d1_e4ad9089","line":39,"updated":"2015-04-16 14:05:05.000000000","message":"We don\u0027t seem to have \"hostname\" argument to node.list...","commit_id":"98e463e64eb1e72fc2178b0b6979c19e415920d4"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"abb396b6131c0f980c04e37a32f7e6a7a7ce8716","unresolved":false,"context_lines":[{"line_number":36,"context_line":"            \"--matching\","},{"line_number":37,"context_line":"            metavar\u003d\"\u003chostname\u003e\","},{"line_number":38,"context_line":"            help\u003d\"Filter hypervisors using \u003chostname\u003e substring\","},{"line_number":39,"context_line":"        )"},{"line_number":40,"context_line":"        parser.add_argument("},{"line_number":41,"context_line":"            \u0027--limit\u0027,"},{"line_number":42,"context_line":"            metavar\u003d\u0027\u003climit\u003e\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ab451fb_5ff66fd8","line":39,"in_reply_to":"5aa745d1_e4ad9089","updated":"2015-04-16 20:26:40.000000000","message":"Done","commit_id":"98e463e64eb1e72fc2178b0b6979c19e415920d4"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"b5d1018d789a963a474995993220627c5751a2f3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            params[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":106,"context_line":"        params[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":107,"context_line":"        params[\u0027associated\u0027] \u003d parsed_args.associated"},{"line_number":108,"context_line":"        params[\u0027maintenance\u0027] \u003d parsed_args.maintenance"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if parsed_args.detail:"},{"line_number":111,"context_line":"            columns \u003d tuple(res_fields.NODE_FIELD_LABELS)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5aa745d1_2496d84c","line":108,"updated":"2015-04-16 14:05:05.000000000","message":"shouldn\u0027t sort be split into sort_key and sort_dir?","commit_id":"98e463e64eb1e72fc2178b0b6979c19e415920d4"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"abb396b6131c0f980c04e37a32f7e6a7a7ce8716","unresolved":false,"context_lines":[{"line_number":105,"context_line":"            params[\u0027limit\u0027] \u003d parsed_args.limit"},{"line_number":106,"context_line":"        params[\u0027marker\u0027] \u003d parsed_args.marker"},{"line_number":107,"context_line":"        params[\u0027associated\u0027] \u003d parsed_args.associated"},{"line_number":108,"context_line":"        params[\u0027maintenance\u0027] \u003d parsed_args.maintenance"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        if parsed_args.detail:"},{"line_number":111,"context_line":"            columns \u003d tuple(res_fields.NODE_FIELD_LABELS)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3ab451fb_3f1a8318","line":108,"in_reply_to":"5aa745d1_2496d84c","updated":"2015-04-16 20:26:40.000000000","message":"If you are talking about sort.. no. This is using the sort util from OSC now.","commit_id":"98e463e64eb1e72fc2178b0b6979c19e415920d4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4947cba8909eb07381803db535072e859ea382d7","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":82,"context_line":"            default\u003dFalse,"},{"line_number":83,"context_line":"            help\u003d\"Show detailed information about the nodes. \""},{"line_number":84,"context_line":"                 \"Alias for --detail.\","},{"line_number":85,"context_line":"        )"},{"line_number":86,"context_line":"        return parser"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fabf19d9_dd939f4e","line":84,"updated":"2015-04-18 05:55:59.000000000","message":"actually, since cliff is based on argparse, you can specify an alias:\n\naliases\u003d[\u0027co\u0027] -- https://docs.python.org/3/library/argparse.html\n\nrather than the duplicated block.\n\nyou can fix this in a follow up patch if necessary, it\u0027s not a blocker","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"d734fb0abaf242089aa36290d70b7811a7fdb47d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            action\u003d\u0027store_true\u0027,"},{"line_number":82,"context_line":"            default\u003dFalse,"},{"line_number":83,"context_line":"            help\u003d\"Show detailed information about the nodes. \""},{"line_number":84,"context_line":"                 \"Alias for --detail.\","},{"line_number":85,"context_line":"        )"},{"line_number":86,"context_line":"        return parser"},{"line_number":87,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_43088591","line":84,"in_reply_to":"fabf19d9_dd939f4e","updated":"2015-04-21 12:58:54.000000000","message":"This does not appear to be available in Python 2.7.","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"4947cba8909eb07381803db535072e859ea382d7","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        columns \u003d tuple(res_fields.NODE_LIST_FIELD_LABELS)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        params \u003d {}"},{"line_number":95,"context_line":"        if parsed_args.limit is not None:"},{"line_number":96,"context_line":"            if parsed_args.limit \u003c 0:"},{"line_number":97,"context_line":"                raise exc.CommandError("},{"line_number":98,"context_line":"                    _(\u0027Expected non-negative --limit, got %s\u0027) %"}],"source_content_type":"text/x-python","patch_set":7,"id":"fabf19d9_bd98eb6b","line":95,"updated":"2015-04-18 05:55:59.000000000","message":"nit: you can write this in one line:\n\n  if parsed_args.limit is not None and parsed_args.limit \u003c 0:","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"d734fb0abaf242089aa36290d70b7811a7fdb47d","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        columns \u003d tuple(res_fields.NODE_LIST_FIELD_LABELS)"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        params \u003d {}"},{"line_number":95,"context_line":"        if parsed_args.limit is not None:"},{"line_number":96,"context_line":"            if parsed_args.limit \u003c 0:"},{"line_number":97,"context_line":"                raise exc.CommandError("},{"line_number":98,"context_line":"                    _(\u0027Expected non-negative --limit, got %s\u0027) %"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_4df2f470","line":95,"in_reply_to":"fabf19d9_bd98eb6b","updated":"2015-04-21 12:58:54.000000000","message":"Done","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8c94bc9fc11f00cf5af2a7eabe7337c0438d307","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        data \u003d oscutils.sort_items(data, parsed_args.sort)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        column_headers \u003d columns"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        return (column_headers,"},{"line_number":116,"context_line":"                (oscutils.get_item_properties(s, columns, formatters\u003d{"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_3b7dbfe7","line":113,"updated":"2015-04-21 10:20:08.000000000","message":"nit: No need to create a new variable here. Just use \"columns\" in the return on L114?\n\nreturn (columns, (oscutils.get_item_properties(...))","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"d734fb0abaf242089aa36290d70b7811a7fdb47d","unresolved":false,"context_lines":[{"line_number":110,"context_line":""},{"line_number":111,"context_line":"        data \u003d oscutils.sort_items(data, parsed_args.sort)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"        column_headers \u003d columns"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"        return (column_headers,"},{"line_number":116,"context_line":"                (oscutils.get_item_properties(s, columns, formatters\u003d{"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_ed030841","line":113,"in_reply_to":"dac4157f_3b7dbfe7","updated":"2015-04-21 12:58:54.000000000","message":"Done","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"}],"ironicclient/tests/unit/osc/v1/baremetal/test_baremetal.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"c8c94bc9fc11f00cf5af2a7eabe7337c0438d307","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            \u0027\u0027,"},{"line_number":90,"context_line":"            baremetal_fakes.baremetal_instance_uuid,"},{"line_number":91,"context_line":"            baremetal_fakes.baremetal_power_state,"},{"line_number":92,"context_line":"            \u0027\u0027,"},{"line_number":93,"context_line":"            baremetal_fakes.baremetal_maintenance,"},{"line_number":94,"context_line":"        ), )"},{"line_number":95,"context_line":"        self.assertEqual(datalist, tuple(data))"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_9bf28bd1","line":92,"updated":"2015-04-21 10:20:08.000000000","message":"Am I missing something? Why we needed to remove this?","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"},{"author":{"_account_id":7065,"name":"Brad P. Crochet","email":"brad@redhat.com","username":"bcrochet"},"change_message_id":"d734fb0abaf242089aa36290d70b7811a7fdb47d","unresolved":false,"context_lines":[{"line_number":89,"context_line":"            \u0027\u0027,"},{"line_number":90,"context_line":"            baremetal_fakes.baremetal_instance_uuid,"},{"line_number":91,"context_line":"            baremetal_fakes.baremetal_power_state,"},{"line_number":92,"context_line":"            \u0027\u0027,"},{"line_number":93,"context_line":"            baremetal_fakes.baremetal_maintenance,"},{"line_number":94,"context_line":"        ), )"},{"line_number":95,"context_line":"        self.assertEqual(datalist, tuple(data))"}],"source_content_type":"text/x-python","patch_set":7,"id":"dac4157f_de690c27","line":92,"in_reply_to":"dac4157f_9bf28bd1","updated":"2015-04-21 12:58:54.000000000","message":"It\u0027s fixed now... There was a mismatch between the label and the field name. I fixed the field name in resource_fields.py. The existing client continues to work with the change.","commit_id":"168e05594147d5fc75215da7f11fbebf4a7a10c4"}]}
