)]}'
{"ironic/drivers/modules/pxe.py":[{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"1efe787dd4cac3e5b75864ae8c104a0579fea40f","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    \"\"\""},{"line_number":363,"context_line":"    d_info \u003d _parse_driver_info(node)"},{"line_number":364,"context_line":"    fileutils.ensure_tree(_get_image_dir_path(node[\u0027instance_uuid\u0027]))"},{"line_number":365,"context_line":"    image_path \u003d _get_image_file_path(node[\u0027instance_uuid\u0027])"},{"line_number":366,"context_line":"    uuid \u003d d_info[\u0027image_source\u0027]"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FtVc%3D","line":364,"updated":"2014-01-09 11:06:56.000000000","message":"We have patch [1] to remove dict-like behavior of object properties accessing, so can you use object attributes as attributes instead of dictionary keys? Thanks.\n\n    fileutils.ensure_tree(_get_image_dir_path(node[\u0027instance_uuid\u0027]))\n\n[1] https://review.openstack.org/#/c/64108/","commit_id":"1faa1b941b0d30a3258002329aabac09416b4fa2"},{"author":{"_account_id":8412,"name":"Mike Durnosvistov","email":"glacierr.dev@gmail.com","username":"mdurnosvistov"},"change_message_id":"72b824d8127fda4ac85939e4d5f89c501ee73f05","unresolved":false,"context_lines":[{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    \"\"\""},{"line_number":363,"context_line":"    d_info \u003d _parse_driver_info(node)"},{"line_number":364,"context_line":"    fileutils.ensure_tree(_get_image_dir_path(node[\u0027instance_uuid\u0027]))"},{"line_number":365,"context_line":"    image_path \u003d _get_image_file_path(node[\u0027instance_uuid\u0027])"},{"line_number":366,"context_line":"    uuid \u003d d_info[\u0027image_source\u0027]"},{"line_number":367,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FtPo%3D","line":364,"in_reply_to":"AAAAUH%2F%2FtVc%3D","updated":"2014-01-09 11:18:58.000000000","message":"Hi, Haomeng. But this patch has not yet added.","commit_id":"1faa1b941b0d30a3258002329aabac09416b4fa2"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"1efe787dd4cac3e5b75864ae8c104a0579fea40f","unresolved":false,"context_lines":[{"line_number":362,"context_line":"    \"\"\""},{"line_number":363,"context_line":"    d_info \u003d _parse_driver_info(node)"},{"line_number":364,"context_line":"    fileutils.ensure_tree(_get_image_dir_path(node[\u0027instance_uuid\u0027]))"},{"line_number":365,"context_line":"    image_path \u003d _get_image_file_path(node[\u0027instance_uuid\u0027])"},{"line_number":366,"context_line":"    uuid \u003d d_info[\u0027image_source\u0027]"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    LOG.debug(_(\"Fetching image %(ami)s for instance %(name)s\") %"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FtVQ%3D","line":365,"updated":"2014-01-09 11:06:56.000000000","message":"ditto","commit_id":"1faa1b941b0d30a3258002329aabac09416b4fa2"},{"author":{"_account_id":8106,"name":"Haomeng,Wang","email":"wanghaomeng@gmail.com","username":"whaom"},"change_message_id":"1efe787dd4cac3e5b75864ae8c104a0579fea40f","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                  \u0027port\u0027: kwargs.get(\u0027port\u0027, \u00273260\u0027),"},{"line_number":595,"context_line":"                  \u0027iqn\u0027: kwargs.get(\u0027iqn\u0027),"},{"line_number":596,"context_line":"                  \u0027lun\u0027: kwargs.get(\u0027lun\u0027, \u00271\u0027),"},{"line_number":597,"context_line":"                  \u0027image_path\u0027: _get_image_file_path(node[\u0027instance_uuid\u0027]),"},{"line_number":598,"context_line":"                  \u0027pxe_config_path\u0027: _get_pxe_config_file_path("},{"line_number":599,"context_line":"                                                    node[\u0027instance_uuid\u0027]),"},{"line_number":600,"context_line":"                  \u0027root_mb\u0027: 1024 * int(d_info[\u0027root_gb\u0027]),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2FtVE%3D","line":597,"updated":"2014-01-09 11:06:56.000000000","message":"ditto","commit_id":"1faa1b941b0d30a3258002329aabac09416b4fa2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b777392b69c2d3f83afa8debe3c6cc670703023c","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":103,"context_line":"    d_info \u003d {}"},{"line_number":104,"context_line":"    d_info[\u0027instance_name\u0027] \u003d info.get(\u0027pxe_instance_name\u0027, None)"},{"line_number":105,"context_line":"    d_info[\u0027image_source\u0027] \u003d info.get(\u0027pxe_image_source\u0027, None)"},{"line_number":106,"context_line":"    d_info[\u0027deploy_kernel\u0027] \u003d info.get(\u0027pxe_deploy_kernel\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FQmg%3D","line":103,"updated":"2014-01-15 19:24:01.000000000","message":"By not using the instance_name to determine the image directory name\u0027s, do we need to know the instance_name at all? It\u0027s now only being used to do some logging seems.\n\n(Or at least it should not be mandatory)\n\nThoughts?","commit_id":"f8308113ff70b062a5185aef1033f1443dca26d2"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"aa767193faac5d1fd0cf480ff502242047a99c45","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":103,"context_line":"    d_info \u003d {}"},{"line_number":104,"context_line":"    d_info[\u0027instance_name\u0027] \u003d info.get(\u0027pxe_instance_name\u0027, None)"},{"line_number":105,"context_line":"    d_info[\u0027image_source\u0027] \u003d info.get(\u0027pxe_image_source\u0027, None)"},{"line_number":106,"context_line":"    d_info[\u0027deploy_kernel\u0027] \u003d info.get(\u0027pxe_deploy_kernel\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUH%2F%2FQdU%3D","line":103,"in_reply_to":"AAAAUH%2F%2FQmg%3D","updated":"2014-01-15 20:00:04.000000000","message":"I agree. instance_name is not needed at all and it\u0027s non-unique, so logging it is not useful at all.","commit_id":"f8308113ff70b062a5185aef1033f1443dca26d2"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"939f71b8df06424f2ba6e67e5fd4aa3b82a0db89","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":103,"context_line":"    d_info \u003d {}"},{"line_number":104,"context_line":"    d_info[\u0027instance_name\u0027] \u003d info.get(\u0027pxe_instance_name\u0027, None)"},{"line_number":105,"context_line":"    d_info[\u0027image_source\u0027] \u003d info.get(\u0027pxe_image_source\u0027, None)"},{"line_number":106,"context_line":"    d_info[\u0027deploy_kernel\u0027] \u003d info.get(\u0027pxe_deploy_kernel\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B7nc%3D","line":103,"updated":"2014-01-20 16:50:15.000000000","message":"Should instance_name be mandatory?","commit_id":"b9360579ac9edd95c0c50519e242611953b63a61"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"2f47ad3ddcc823f246564516052d11fa4767b015","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":103,"context_line":"    d_info \u003d {}"},{"line_number":104,"context_line":"    d_info[\u0027instance_name\u0027] \u003d info.get(\u0027pxe_instance_name\u0027, None)"},{"line_number":105,"context_line":"    d_info[\u0027image_source\u0027] \u003d info.get(\u0027pxe_image_source\u0027, None)"},{"line_number":106,"context_line":"    d_info[\u0027deploy_kernel\u0027] \u003d info.get(\u0027pxe_deploy_kernel\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B6C4%3D","line":103,"in_reply_to":"AAAAUH%2F%2B6%2FE%3D","updated":"2014-01-20 21:20:02.000000000","message":"Let\u0027s do that in a separate patch so we can land this today.","commit_id":"b9360579ac9edd95c0c50519e242611953b63a61"},{"author":{"_account_id":1726,"name":"Ghe Rivero","email":"ghe.rivero@gmail.com","username":"ghe.rivero"},"change_message_id":"1955edbb1a4fea545d9d93e0b134177fb42cdb35","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    \"\"\""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    info \u003d node.get(\u0027driver_info\u0027, {})"},{"line_number":103,"context_line":"    d_info \u003d {}"},{"line_number":104,"context_line":"    d_info[\u0027instance_name\u0027] \u003d info.get(\u0027pxe_instance_name\u0027, None)"},{"line_number":105,"context_line":"    d_info[\u0027image_source\u0027] \u003d info.get(\u0027pxe_image_source\u0027, None)"},{"line_number":106,"context_line":"    d_info[\u0027deploy_kernel\u0027] \u003d info.get(\u0027pxe_deploy_kernel\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F%2B6%2FE%3D","line":103,"in_reply_to":"AAAAUH%2F%2B7nc%3D","updated":"2014-01-20 18:17:24.000000000","message":"No. It was removed from being mandatory, but at some point between rebases that change get lost. :( I can update the patch, or wait until it lands (to avoid having the patch hanging around for more time) and prepare a new patch just with that.","commit_id":"b9360579ac9edd95c0c50519e242611953b63a61"}],"ironic/tests/drivers/test_pxe.py":[{"author":{"_account_id":6623,"name":"Roman Prykhodchenko","email":"me@romcheg.me","username":"prykhodchenko"},"change_message_id":"d1eff4fb2aa00f40e775ff37f6542a4b7b15cb5b","unresolved":false,"context_lines":[{"line_number":307,"context_line":"                         pxe._get_pxe_config_file_path(\u0027instance_uuid_123\u0027))"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    def test__get_image_dir_path(self):"},{"line_number":310,"context_line":"        self.assertEqual(\u0027/var/lib/ironic/images/\u0027 + self.node.uuid,"},{"line_number":311,"context_line":"                         pxe._get_image_dir_path(self.node.uuid))"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def test__get_image_file_path(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FF14%3D","line":310,"updated":"2014-01-17 14:55:38.000000000","message":"I\u0027d recommend using path.join for constructing paths here and bellow.","commit_id":"ecc61ef2cbd0853ce8ed3880da62fc423053774b"}]}
