)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":19072,"name":"Xavier","email":"marcusrafael@lsd.ufcg.edu.br","username":"marcusrafael"},"change_message_id":"8fb2000a14760a04126ae282d0c605e87b073d8e","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend root device hints to support \"rotational\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is extedning the root device hints to also consider if a disk"},{"line_number":10,"context_line":"is a rotational device or not. This hint makes it easier to separate"},{"line_number":11,"context_line":"SSDs and HDDs when selecting the device to deploy the image onto."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"1aa78d24_e5053e7a","line":9,"range":{"start_line":9,"start_character":14,"end_line":9,"end_character":23},"updated":"2016-07-06 13:28:28.000000000","message":"s/extedning/extending/","commit_id":"a86f99c5d6a551a9f520fb7979fde1fd45ed23d6"},{"author":{"_account_id":14525,"name":"Vasyl Saienko","email":"vsaienko@mirantis.com","username":"vsaienko"},"change_message_id":"6e192888a56e0d44c49ba91735d184d91c957045","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend root device hints to support \"rotational\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is extedning the root device hints to also consider if a disk"},{"line_number":10,"context_line":"is a rotational device or not. This hint makes it easier to separate"},{"line_number":11,"context_line":"SSDs and HDDs when selecting the device to deploy the image onto."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aa78d24_a8c2eb31","line":9,"range":{"start_line":9,"start_character":14,"end_line":9,"end_character":23},"updated":"2016-07-06 13:37:11.000000000","message":"s/extedning/extending/","commit_id":"1fbc5528ff523d46adb1a0f410674bd95bb12223"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"313b1e93c4b20cb8e32f5bb31e0e127e1e1b8466","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Extend root device hints to support \"rotational\""},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch is extedning the root device hints to also consider if a disk"},{"line_number":10,"context_line":"is a rotational device or not. This hint makes it easier to separate"},{"line_number":11,"context_line":"SSDs and HDDs when selecting the device to deploy the image onto."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1aa78d24_d466ee4f","line":9,"range":{"start_line":9,"start_character":14,"end_line":9,"end_character":23},"in_reply_to":"1aa78d24_a8c2eb31","updated":"2016-07-06 14:39:09.000000000","message":"ops... thanks, I will fix it if I happen to submit a new patch set.","commit_id":"1fbc5528ff523d46adb1a0f410674bd95bb12223"}],"ironic_python_agent/hardware.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"237e4fa19abac213f8ecf84038da1775dd78de20","unresolved":false,"context_lines":[{"line_number":164,"context_line":"class BlockDevice(encoding.SerializableComparable):"},{"line_number":165,"context_line":"    serializable_fields \u003d (\u0027name\u0027, \u0027model\u0027, \u0027size\u0027, \u0027rotational\u0027,"},{"line_number":166,"context_line":"                           \u0027wwn\u0027, \u0027serial\u0027, \u0027vendor\u0027, \u0027wwn_with_extension\u0027,"},{"line_number":167,"context_line":"                           \u0027wwn_vendor_extension\u0027, \u0027rotational\u0027)"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def __init__(self, name, model, size, rotational, wwn\u003dNone, serial\u003dNone,"},{"line_number":170,"context_line":"                 vendor\u003dNone, wwn_with_extension\u003dNone,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_a51e96b8","line":167,"updated":"2016-07-06 13:21:54.000000000","message":"ops included it twice","commit_id":"a86f99c5d6a551a9f520fb7979fde1fd45ed23d6"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eca4501eeadadd0b47c9ea71a7f1068876ce0253","unresolved":false,"context_lines":[{"line_number":622,"context_line":"                        continue"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"                    value \u003d getattr(device, key)"},{"line_number":625,"context_line":"                    if not value:"},{"line_number":626,"context_line":"                        return False"},{"line_number":627,"context_line":"                    value \u003d utils.normalize(value)"},{"line_number":628,"context_line":"                    if not match(key, value, device.name):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_4529a036","line":625,"updated":"2016-07-06 17:59:48.000000000","message":"we should change this to \"if value is None\" and then add \"rotational\" to the list above","commit_id":"1fbc5528ff523d46adb1a0f410674bd95bb12223"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b33dff42151eeb0ce2250c0ca412dfb483c1c29c","unresolved":false,"context_lines":[{"line_number":622,"context_line":"                        continue"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"                    value \u003d getattr(device, key)"},{"line_number":625,"context_line":"                    if not value:"},{"line_number":626,"context_line":"                        return False"},{"line_number":627,"context_line":"                    value \u003d utils.normalize(value)"},{"line_number":628,"context_line":"                    if not match(key, value, device.name):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_6e9bbd66","line":625,"in_reply_to":"1aa78d24_4529a036","updated":"2016-07-07 08:34:42.000000000","message":"Done.\n\nWe also need to check if it\u0027s a string before normalize (L627).","commit_id":"1fbc5528ff523d46adb1a0f410674bd95bb12223"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"eca4501eeadadd0b47c9ea71a7f1068876ce0253","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":"                if \u0027rotational\u0027 in root_device_hints:"},{"line_number":644,"context_line":"                    if not match(\u0027rotational\u0027, dev.rotational, dev.name):"},{"line_number":645,"context_line":"                        continue"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"                if check_device_attrs(dev):"},{"line_number":648,"context_line":"                    return dev.name"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_a5220450","line":645,"updated":"2016-07-06 17:59:48.000000000","message":"see above - I believe rotational can be handled just as other root hints","commit_id":"1fbc5528ff523d46adb1a0f410674bd95bb12223"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"b33dff42151eeb0ce2250c0ca412dfb483c1c29c","unresolved":false,"context_lines":[{"line_number":642,"context_line":""},{"line_number":643,"context_line":"                if \u0027rotational\u0027 in root_device_hints:"},{"line_number":644,"context_line":"                    if not match(\u0027rotational\u0027, dev.rotational, dev.name):"},{"line_number":645,"context_line":"                        continue"},{"line_number":646,"context_line":""},{"line_number":647,"context_line":"                if check_device_attrs(dev):"},{"line_number":648,"context_line":"                    return dev.name"}],"source_content_type":"text/x-python","patch_set":2,"id":"1aa78d24_aea12596","line":645,"in_reply_to":"1aa78d24_a5220450","updated":"2016-07-07 08:34:42.000000000","message":"Done","commit_id":"1fbc5528ff523d46adb1a0f410674bd95bb12223"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"83b6d51945668a4f248434492a15b9d234dc57cf","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import shlex"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"import netifaces"},{"line_number":24,"context_line":"from oslo_concurrency import processutils"},{"line_number":25,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_2074bdfb","line":22,"updated":"2016-07-08 20:10:48.000000000","message":"nit: Extra line","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"6366c7c0f8dd4332093ef7e42a25b1ac86dd47c0","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            def match(hint, current_value, device):"},{"line_number":608,"context_line":"                hint_value \u003d root_device_hints[hint]"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"                if hint \u003d\u003d \u0027rotational\u0027:"},{"line_number":611,"context_line":"                    hint_value \u003d strutils.bool_from_string(hint_value)"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"                if hint_value !\u003d current_value:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_87a7e709","line":610,"updated":"2016-07-07 10:49:56.000000000","message":"Are all other hints strings? It seems awkward to special-case this, but I guess it\u0027s the path of least resistance if it\u0027s the only non-string. If we acquire more non-string hints in the future, we could refactor this into a table of types and a lookup.","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5d4164dd5b0544e7b33a9d352a96e8e6d2a11968","unresolved":false,"context_lines":[{"line_number":607,"context_line":"            def match(hint, current_value, device):"},{"line_number":608,"context_line":"                hint_value \u003d root_device_hints[hint]"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"                if hint \u003d\u003d \u0027rotational\u0027:"},{"line_number":611,"context_line":"                    hint_value \u003d strutils.bool_from_string(hint_value)"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"                if hint_value !\u003d current_value:"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_674d9b99","line":610,"in_reply_to":"1aa78d24_87a7e709","updated":"2016-07-07 11:04:53.000000000","message":"Yeah, this was a suggestion by yuriyz in the Ironic patch [0] to support converting string to bool for rotational, which is the only boolean supported.\n\n[0] https://review.openstack.org/#/c/338264/1/ironic/drivers/modules/deploy_utils.py","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"}],"ironic_python_agent/tests/unit/test_hardware.py":[{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"6366c7c0f8dd4332093ef7e42a25b1ac86dd47c0","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            hardware.BlockDevice(name\u003d\u0027/dev/sda\u0027,"},{"line_number":440,"context_line":"                                 model\u003d\u0027TinyUSB Drive\u0027,"},{"line_number":441,"context_line":"                                 size\u003d3116853504,"},{"line_number":442,"context_line":"                                 rotational\u003dFalse,"},{"line_number":443,"context_line":"                                 vendor\u003d\u0027Super Vendor\u0027,"},{"line_number":444,"context_line":"                                 wwn\u003d\u0027wwn0\u0027,"},{"line_number":445,"context_line":"                                 wwn_with_extension\u003d\u0027wwn0ven0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_07e2d72e","line":442,"updated":"2016-07-07 10:49:56.000000000","message":"I\u0027m a little confused that this line was already here...","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"},{"author":{"_account_id":18893,"name":"Miles Gould","email":"mgould@redhat.com","username":"pozorvlak"},"change_message_id":"979f2e1bd1be1b9cf99a84a7e067cca03b28bfe8","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            hardware.BlockDevice(name\u003d\u0027/dev/sda\u0027,"},{"line_number":440,"context_line":"                                 model\u003d\u0027TinyUSB Drive\u0027,"},{"line_number":441,"context_line":"                                 size\u003d3116853504,"},{"line_number":442,"context_line":"                                 rotational\u003dFalse,"},{"line_number":443,"context_line":"                                 vendor\u003d\u0027Super Vendor\u0027,"},{"line_number":444,"context_line":"                                 wwn\u003d\u0027wwn0\u0027,"},{"line_number":445,"context_line":"                                 wwn_with_extension\u003d\u0027wwn0ven0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_7de9a8b6","line":442,"in_reply_to":"1aa78d24_0753f739","updated":"2016-07-07 11:34:00.000000000","message":"Ah, OK.","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5d4164dd5b0544e7b33a9d352a96e8e6d2a11968","unresolved":false,"context_lines":[{"line_number":439,"context_line":"            hardware.BlockDevice(name\u003d\u0027/dev/sda\u0027,"},{"line_number":440,"context_line":"                                 model\u003d\u0027TinyUSB Drive\u0027,"},{"line_number":441,"context_line":"                                 size\u003d3116853504,"},{"line_number":442,"context_line":"                                 rotational\u003dFalse,"},{"line_number":443,"context_line":"                                 vendor\u003d\u0027Super Vendor\u0027,"},{"line_number":444,"context_line":"                                 wwn\u003d\u0027wwn0\u0027,"},{"line_number":445,"context_line":"                                 wwn_with_extension\u003d\u0027wwn0ven0\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_0753f739","line":442,"in_reply_to":"1aa78d24_07e2d72e","updated":"2016-07-07 11:04:53.000000000","message":"Rotational was already part of the block device created by IPA but it wasn\u0027t exposed as a root device hint.","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"83b6d51945668a4f248434492a15b9d234dc57cf","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            {\u0027name\u0027: \u0027/dev/sdb\u0027}, \u0027/dev/sdb\u0027)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def test_get_os_install_device_root_device_hints_rotational(self):"},{"line_number":489,"context_line":"        for value in (True, \u0027true\u0027, \u0027on\u0027, \u0027y\u0027, \u0027yes\u0027):"},{"line_number":490,"context_line":"            self._get_os_install_device_root_device_hints("},{"line_number":491,"context_line":"                {\u0027rotational\u0027: value}, \u0027/dev/sdb\u0027)"},{"line_number":492,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_632feff6","line":489,"updated":"2016-07-08 20:10:48.000000000","message":"Not sure what this is for. Seems like trying to test the olso_utils.strutils.bool_from_string() function. Which I\u0027m not sure if that should be here.","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"db1c04f2e79619c2678a5830c1dd3a795f792a26","unresolved":false,"context_lines":[{"line_number":486,"context_line":"            {\u0027name\u0027: \u0027/dev/sdb\u0027}, \u0027/dev/sdb\u0027)"},{"line_number":487,"context_line":""},{"line_number":488,"context_line":"    def test_get_os_install_device_root_device_hints_rotational(self):"},{"line_number":489,"context_line":"        for value in (True, \u0027true\u0027, \u0027on\u0027, \u0027y\u0027, \u0027yes\u0027):"},{"line_number":490,"context_line":"            self._get_os_install_device_root_device_hints("},{"line_number":491,"context_line":"                {\u0027rotational\u0027: value}, \u0027/dev/sdb\u0027)"},{"line_number":492,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_77a4574a","line":489,"in_reply_to":"1aa78d24_632feff6","updated":"2016-07-12 12:19:07.000000000","message":"I see it more as helping to validate conditions in which it is expected so a failure is identified should there be an underlying change.","commit_id":"acd7fc75d3f19e8bb95a1811917a64b1d4b27a55"}]}
