)]}'
{"doc/source/deploy/install-guide.rst":[{"author":{"_account_id":12459,"name":"Stephanie Miller","email":"stephane@alum.mit.edu","username":"cinerama"},"change_message_id":"210a1fb5679d556a102d81f6391d8c07530b7b8c","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"* wwn (STRING): unique storage identifier"},{"line_number":1906,"context_line":"* wwn_with_extension (STRING): unique storage identifier with the vendor extension appended"},{"line_number":1907,"context_line":"* wwn_vendor_extension (STRING): unique vendor storage identifier"},{"line_number":1908,"context_line":"* rotational (BOOLEAN): whether it\u0027s a rotational device or not"},{"line_number":1909,"context_line":"* name (STRING): the device name, e.g /dev/md0"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_f65a804f","line":1908,"range":{"start_line":1908,"start_character":24,"end_line":1908,"end_character":63},"updated":"2016-07-08 18:49:16.000000000","message":"This is an OK explanation but it might be more clear to operators if we mention SSDs vs HDDs.","commit_id":"fc23e61880751f35b1e6aaed03d924b4d6d7a50d"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"3ed0dfff18cf585f273ad7a1fb84b5c3b775925f","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"* wwn (STRING): unique storage identifier"},{"line_number":1906,"context_line":"* wwn_with_extension (STRING): unique storage identifier with the vendor extension appended"},{"line_number":1907,"context_line":"* wwn_vendor_extension (STRING): unique vendor storage identifier"},{"line_number":1908,"context_line":"* rotational (BOOLEAN): whether it\u0027s a rotational device or not"},{"line_number":1909,"context_line":"* name (STRING): the device name, e.g /dev/md0"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_68b311ea","line":1908,"range":{"start_line":1908,"start_character":24,"end_line":1908,"end_character":63},"in_reply_to":"1aa78d24_631c0f78","updated":"2016-07-11 14:17:33.000000000","message":"Cool, I will update it","commit_id":"fc23e61880751f35b1e6aaed03d924b4d6d7a50d"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"31ec7d8539407e946b02379422d70e4a07d474df","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"* wwn (STRING): unique storage identifier"},{"line_number":1906,"context_line":"* wwn_with_extension (STRING): unique storage identifier with the vendor extension appended"},{"line_number":1907,"context_line":"* wwn_vendor_extension (STRING): unique vendor storage identifier"},{"line_number":1908,"context_line":"* rotational (BOOLEAN): whether it\u0027s a rotational device or not"},{"line_number":1909,"context_line":"* name (STRING): the device name, e.g /dev/md0"},{"line_number":1910,"context_line":""},{"line_number":1911,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1aa78d24_631c0f78","line":1908,"range":{"start_line":1908,"start_character":24,"end_line":1908,"end_character":63},"in_reply_to":"1aa78d24_f65a804f","updated":"2016-07-08 20:14:14.000000000","message":"Agreed. The goal here seems to be SSD vs HDD. We should make that explicit to people.","commit_id":"fc23e61880751f35b1e6aaed03d924b4d6d7a50d"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"2209682c8e094d564a9dbed3c38287b178d0ec73","unresolved":false,"context_lines":[{"line_number":1906,"context_line":"* wwn_with_extension (STRING): unique storage identifier with the vendor extension appended"},{"line_number":1907,"context_line":"* wwn_vendor_extension (STRING): unique vendor storage identifier"},{"line_number":1908,"context_line":"* rotational (BOOLEAN): whether it\u0027s a rotational device or not. This"},{"line_number":1909,"context_line":"  hint is makes it easier to distinguish HDDs (rotational) and SSDs (not"},{"line_number":1910,"context_line":"  rotational) when choosing which disk Ironic should deploy the image onto."},{"line_number":1911,"context_line":"* name (STRING): the device name, e.g /dev/md0"},{"line_number":1912,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"1aa78d24_73ae1d2f","line":1909,"range":{"start_line":1909,"start_character":2,"end_line":1909,"end_character":15},"updated":"2016-07-12 16:05:45.000000000","message":"nit: s/ hint is makes/ hint makes/","commit_id":"98937aec6b54ade7238c561adfdc86ef8e19a39d"}],"ironic/drivers/modules/deploy_utils.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d699dcc0c2f068f4825bc104fb7570cedb88ec3c","unresolved":false,"context_lines":[{"line_number":710,"context_line":"                _(\u0027Root device hint \"size\" is not an integer value.\u0027))"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    if \u0027rotational\u0027 in root_device:"},{"line_number":713,"context_line":"        if not isinstance(root_device[\u0027rotational\u0027], bool):"},{"line_number":714,"context_line":"            raise exception.InvalidParameterValue("},{"line_number":715,"context_line":"                _(\u0027Root device hint \"rotational\" is not a boolean value.\u0027))"},{"line_number":716,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_3f9efdb8","line":713,"updated":"2016-07-07 09:24:26.000000000","message":"If we pass size as string like \u0027128\u0027 it will work. Maybe to use strutils.bool_from_string(root_device[\u0027rotational\u0027], strict\u003dTrue) here for consistency?","commit_id":"410f0941cbb3101ee71c1c905d2cecd13801b33c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"36749519457608aca76aaea2428b1fee7a0defcc","unresolved":false,"context_lines":[{"line_number":710,"context_line":"                _(\u0027Root device hint \"size\" is not an integer value.\u0027))"},{"line_number":711,"context_line":""},{"line_number":712,"context_line":"    if \u0027rotational\u0027 in root_device:"},{"line_number":713,"context_line":"        if not isinstance(root_device[\u0027rotational\u0027], bool):"},{"line_number":714,"context_line":"            raise exception.InvalidParameterValue("},{"line_number":715,"context_line":"                _(\u0027Root device hint \"rotational\" is not a boolean value.\u0027))"},{"line_number":716,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_9f8731b4","line":713,"in_reply_to":"1aa78d24_3f9efdb8","updated":"2016-07-07 10:03:01.000000000","message":"great point, will do it","commit_id":"410f0941cbb3101ee71c1c905d2cecd13801b33c"}],"ironic/tests/unit/drivers/modules/test_deploy_utils.py":[{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"d699dcc0c2f068f4825bc104fb7570cedb88ec3c","unresolved":false,"context_lines":[{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"    def test_parse_root_device_hints(self):"},{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: 123456, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: 123456111, \u0027wwn_vendor_extension\u0027: 111,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_d41a40c5","line":1217,"range":{"start_line":1217,"start_character":19,"end_line":1217,"end_character":25},"updated":"2016-07-07 09:24:26.000000000","message":"nit: wwn is string by documentation","commit_id":"410f0941cbb3101ee71c1c905d2cecd13801b33c"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"36749519457608aca76aaea2428b1fee7a0defcc","unresolved":false,"context_lines":[{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"    def test_parse_root_device_hints(self):"},{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: 123456, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: 123456111, \u0027wwn_vendor_extension\u0027: 111,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_5f6f89fb","line":1217,"range":{"start_line":1217,"start_character":19,"end_line":1217,"end_character":25},"in_reply_to":"1aa78d24_d41a40c5","updated":"2016-07-07 10:03:01.000000000","message":"seems a bit outside the scope of this patch, but I will change it","commit_id":"410f0941cbb3101ee71c1c905d2cecd13801b33c"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"881547b8de2517adbdeb7ab9851618ecfc2dedae","unresolved":false,"context_lines":[{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"    def test_parse_root_device_hints(self):"},{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: \u0027123456\u0027, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_b5cb3ba3","line":1217,"range":{"start_line":1217,"start_character":19,"end_line":1217,"end_character":27},"updated":"2016-07-12 21:18:04.000000000","message":"This change seems unrelated to the patch.","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0dec3707920eeb2c9bdd02c79b7f5e266d34882a","unresolved":false,"context_lines":[{"line_number":1214,"context_line":""},{"line_number":1215,"context_line":"    def test_parse_root_device_hints(self):"},{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: \u0027123456\u0027, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_3330f155","line":1217,"range":{"start_line":1217,"start_character":19,"end_line":1217,"end_character":27},"in_reply_to":"1aa78d24_b5cb3ba3","updated":"2016-07-13 08:33:06.000000000","message":"It was requested by a reviewer. I can take it out if you prefer:\n\nhttps://review.openstack.org/#/c/338264/1/ironic/tests/unit/drivers/modules/test_deploy_utils.py","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"881547b8de2517adbdeb7ab9851618ecfc2dedae","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: \u0027123456\u0027, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"},{"line_number":1221,"context_line":"        }"},{"line_number":1222,"context_line":"        expected \u003d (\u0027model\u003dfoo-model,name\u003d/dev/sda,rotational\u003dTrue,\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_55bdb700","line":1219,"range":{"start_line":1219,"start_character":34,"end_line":1219,"end_character":45},"updated":"2016-07-12 21:18:04.000000000","message":"This change seems unrelated to the patch.","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"881547b8de2517adbdeb7ab9851618ecfc2dedae","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: \u0027123456\u0027, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"},{"line_number":1221,"context_line":"        }"},{"line_number":1222,"context_line":"        expected \u003d (\u0027model\u003dfoo-model,name\u003d/dev/sda,rotational\u003dTrue,\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_9539dfa6","line":1219,"range":{"start_line":1219,"start_character":71,"end_line":1219,"end_character":77},"updated":"2016-07-12 21:18:04.000000000","message":"This change seems unrelated to the patch.","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0dec3707920eeb2c9bdd02c79b7f5e266d34882a","unresolved":false,"context_lines":[{"line_number":1216,"context_line":"        self.node.properties[\u0027root_device\u0027] \u003d {"},{"line_number":1217,"context_line":"            \u0027wwn\u0027: \u0027123456\u0027, \u0027model\u0027: \u0027foo-model\u0027, \u0027size\u0027: 123,"},{"line_number":1218,"context_line":"            \u0027serial\u0027: \u0027foo-serial\u0027, \u0027vendor\u0027: \u0027foo-vendor\u0027, \u0027name\u0027: \u0027/dev/sda\u0027,"},{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"},{"line_number":1221,"context_line":"        }"},{"line_number":1222,"context_line":"        expected \u003d (\u0027model\u003dfoo-model,name\u003d/dev/sda,rotational\u003dTrue,\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_d341adaa","line":1219,"range":{"start_line":1219,"start_character":71,"end_line":1219,"end_character":77},"in_reply_to":"1aa78d24_9539dfa6","updated":"2016-07-13 08:33:06.000000000","message":"ditto L1217","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"},{"author":{"_account_id":13295,"name":"Mario Villaplana","email":"mario.villaplana@gmail.com","username":"mariojv"},"change_message_id":"881547b8de2517adbdeb7ab9851618ecfc2dedae","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"},{"line_number":1221,"context_line":"        }"},{"line_number":1222,"context_line":"        expected \u003d (\u0027model\u003dfoo-model,name\u003d/dev/sda,rotational\u003dTrue,\u0027"},{"line_number":1223,"context_line":"                    \u0027serial\u003dfoo-serial,size\u003d123,vendor\u003dfoo-vendor,wwn\u003d123456,\u0027"},{"line_number":1224,"context_line":"                    \u0027wwn_vendor_extension\u003d111,wwn_with_extension\u003d123456111\u0027)"},{"line_number":1225,"context_line":"        result \u003d utils.parse_root_device_hints(self.node)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_154e8f3a","line":1222,"updated":"2016-07-12 21:18:04.000000000","message":"Is this order guaranteed?","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"0dec3707920eeb2c9bdd02c79b7f5e266d34882a","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"            \u0027wwn_with_extension\u0027: \u0027123456111\u0027, \u0027wwn_vendor_extension\u0027: \u0027111\u0027,"},{"line_number":1220,"context_line":"            \u0027rotational\u0027: True,"},{"line_number":1221,"context_line":"        }"},{"line_number":1222,"context_line":"        expected \u003d (\u0027model\u003dfoo-model,name\u003d/dev/sda,rotational\u003dTrue,\u0027"},{"line_number":1223,"context_line":"                    \u0027serial\u003dfoo-serial,size\u003d123,vendor\u003dfoo-vendor,wwn\u003d123456,\u0027"},{"line_number":1224,"context_line":"                    \u0027wwn_vendor_extension\u003d111,wwn_with_extension\u003d123456111\u0027)"},{"line_number":1225,"context_line":"        result \u003d utils.parse_root_device_hints(self.node)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1aa78d24_f31949d2","line":1222,"in_reply_to":"1aa78d24_154e8f3a","updated":"2016-07-13 08:33:06.000000000","message":"Yes, we sort the data when parsing to make it predictable: https://github.com/openstack/ironic/blob/12363a201f029801b9a8a3b0e4e24d980d3446aa/ironic/drivers/modules/deploy_utils.py#L714","commit_id":"170ba4f29520b338f8b54b1225541db974b40a86"}]}
