)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"d4662103a5df6f76b51276c1e5db747a5cae74df","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-03-17 16:21:34 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add support for partition images in agent driver."},{"line_number":8,"context_line":"It also adds the ironic-lib in the requirements"},{"line_number":9,"context_line":"list of the IPA package."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Partial-bug: 1526289"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"1af94dfe_eca545a2","line":8,"updated":"2016-03-17 16:38:25.000000000","message":"Nit: need a space between first and second line.","commit_id":"a593e28bc0a9aefb579ffbc4c6d0c4865b523f3c"}],"ironic_python_agent/extensions/standby.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        ephemeral_format \u003d image_info[\u0027ephemeral_format\u0027]"},{"line_number":60,"context_line":"        node_uuid \u003d image_info[\u0027id\u0027]"},{"line_number":61,"context_line":"        preserve_ep \u003d image_info[\u0027preserve_ephemeral\u0027]"},{"line_number":62,"context_line":"        configdrive \u003d image_info[\u0027configdrive\u0027]"},{"line_number":63,"context_line":"        boot_option \u003d image_info.get(\u0027boot_option\u0027)"},{"line_number":64,"context_line":"        boot_mode \u003d image_info.get(\u0027deploy_boot_mode\u0027)"},{"line_number":65,"context_line":"        if not boot_option:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_5e453fb1","line":62,"updated":"2016-03-02 12:49:46.000000000","message":"nit:\n\nMost of these values are used only once, I don\u0027t think we need to copy them to a variable if that\u0027s the case","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        configdrive \u003d image_info[\u0027configdrive\u0027]"},{"line_number":63,"context_line":"        boot_option \u003d image_info.get(\u0027boot_option\u0027)"},{"line_number":64,"context_line":"        boot_mode \u003d image_info.get(\u0027deploy_boot_mode\u0027)"},{"line_number":65,"context_line":"        if not boot_option:"},{"line_number":66,"context_line":"            boot_option \u003d \u0027netboot\u0027"},{"line_number":67,"context_line":"        if not boot_mode:"},{"line_number":68,"context_line":"            boot_mode \u003d \u0027bios\u0027"},{"line_number":69,"context_line":"        image_mb \u003d disk_utils.get_image_mb(image)"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_7e4f5bbd","line":66,"range":{"start_line":65,"start_character":8,"end_line":66,"end_character":35},"updated":"2016-03-02 12:49:46.000000000","message":"This conditional is not needed, you can pass \u0027netboot\u0027 as a default value for get(), e.g:\n\nboot_option \u003d image_info.get(\u0027boot_option\u0027, \u0027netboot\u0027)","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        boot_mode \u003d image_info.get(\u0027deploy_boot_mode\u0027)"},{"line_number":65,"context_line":"        if not boot_option:"},{"line_number":66,"context_line":"            boot_option \u003d \u0027netboot\u0027"},{"line_number":67,"context_line":"        if not boot_mode:"},{"line_number":68,"context_line":"            boot_mode \u003d \u0027bios\u0027"},{"line_number":69,"context_line":"        image_mb \u003d disk_utils.get_image_mb(image)"},{"line_number":70,"context_line":"        if image_mb \u003e int(root_mb):"},{"line_number":71,"context_line":"            root_mb \u003d image_mb"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_fed1abce","line":68,"range":{"start_line":67,"start_character":8,"end_line":68,"end_character":30},"updated":"2016-03-02 12:49:46.000000000","message":"ditto comment L66","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        if not boot_mode:"},{"line_number":68,"context_line":"            boot_mode \u003d \u0027bios\u0027"},{"line_number":69,"context_line":"        image_mb \u003d disk_utils.get_image_mb(image)"},{"line_number":70,"context_line":"        if image_mb \u003e int(root_mb):"},{"line_number":71,"context_line":"            root_mb \u003d image_mb"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            uuids \u003d disk_utils.work_on_disk(device,"},{"line_number":74,"context_line":"                                            root_mb, swap_mb, ephemeral_mb,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_de478f75","line":71,"range":{"start_line":70,"start_character":8,"end_line":71,"end_character":29},"updated":"2016-03-02 12:49:46.000000000","message":"I find this misleading, user requested for a root partition of a given size and we are re-sizing it under the hood. \n\nI think we should fail the deployment explaining the error to the user in this case. We also do that in the iSCSI deployment [0]\n\n[0] https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/iscsi_deploy.py#L248-L252","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        if image_mb \u003e int(root_mb):"},{"line_number":71,"context_line":"            root_mb \u003d image_mb"},{"line_number":72,"context_line":"        try:"},{"line_number":73,"context_line":"            uuids \u003d disk_utils.work_on_disk(device,"},{"line_number":74,"context_line":"                                            root_mb, swap_mb, ephemeral_mb,"},{"line_number":75,"context_line":"                                            ephemeral_format, image,"},{"line_number":76,"context_line":"                                            node_uuid,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_7e30fb01","line":73,"updated":"2016-03-02 12:49:46.000000000","message":"nit:\n\nreturn disk_utils.work_on_disk(...","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":82,"context_line":"            raise errors.ImageWriteError(device, e.exit_code, e.stdout,"},{"line_number":83,"context_line":"                                         e.stderr)"},{"line_number":84,"context_line":"        return uuids"},{"line_number":85,"context_line":"    else:"},{"line_number":86,"context_line":"        script \u003d _path_to_script(\u0027shell/write_image.sh\u0027)"},{"line_number":87,"context_line":"        command \u003d [\u0027/bin/bash\u0027, script, image, device]"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_5e025f0c","line":84,"updated":"2016-03-02 12:49:46.000000000","message":"nit: return statement not needed, see comment L73","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":257,"context_line":""},{"line_number":258,"context_line":"    def _cache_and_write_image(self, image_info, device):"},{"line_number":259,"context_line":"        _download_image(image_info)"},{"line_number":260,"context_line":"        self.write_result \u003d _write_image(image_info, device)"},{"line_number":261,"context_line":"        self.cached_image_id \u003d image_info[\u0027id\u0027]"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"    def _stream_raw_image_onto_device(self, image_info, device):"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_19abd1d7","line":260,"updated":"2016-03-02 12:49:46.000000000","message":"Maybe:\n\ns/write_result/partition_uuids ?\n\nSince this will store the uuids of the disk partitions or None if it\u0027s a whole disk image. WDYT?","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":291,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":292,"context_line":"            result_msg \u003d (\u0027image ({0}) cached to device {1} root_uuid\u003d{2} \u0027"},{"line_number":293,"context_line":"                          \u0027efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":294,"context_line":"        if self.write_result:"},{"line_number":295,"context_line":"            root_uuid \u003d self.write_result.get(\u0027root uuid\u0027)"},{"line_number":296,"context_line":"            efi_system_partition_uuid \u003d ("},{"line_number":297,"context_line":"                self.write_result.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_79bf75fb","line":294,"updated":"2016-03-02 12:49:46.000000000","message":"if self.write_result is not None:\n\nSince None is the placeholder","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"ac850b94a0b64408f140c76aa05991fd68f1460d","unresolved":false,"context_lines":[{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        if configdrive is not None:"},{"line_number":328,"context_line":"            _write_configdrive_to_partition(configdrive, device)"},{"line_number":329,"context_line":"        if self.write_result:"},{"line_number":330,"context_line":"            root_uuid \u003d self.write_result.get(\u0027root uuid\u0027)"},{"line_number":331,"context_line":"            efi_system_partition_uuid \u003d ("},{"line_number":332,"context_line":"                self.write_result.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":8,"id":"7af24918_1947511e","line":329,"updated":"2016-03-02 12:49:46.000000000","message":"This could actually be refactored in a small helper function right? We have the same code at L294","commit_id":"2c1fe7c00a10118afbba7cb1f2e0ff4d7e40d271"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"13ee9fc73a12798fdf8b4d76fe93b0059b8b40e6","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                                                     root_mb)"},{"line_number":67,"context_line":"            raise errors.InvalidCommandParamsError(msg)"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            return(disk_utils.work_on_disk(device, root_mb,"},{"line_number":70,"context_line":"                                           image_info[\u0027swap_mb\u0027],"},{"line_number":71,"context_line":"                                           image_info[\u0027ephemeral_mb\u0027],"},{"line_number":72,"context_line":"                                           image_info[\u0027ephemeral_format\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_e7b65e89","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":42},"updated":"2016-03-13 12:17:07.000000000","message":"This function returns a dictionary. In the \u0027else\u0027 path (L81) it would return \u0027None\u0027.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"89b1894637042048f2b4babd611fe9d243536988","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                                                     root_mb)"},{"line_number":67,"context_line":"            raise errors.InvalidCommandParamsError(msg)"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            return(disk_utils.work_on_disk(device, root_mb,"},{"line_number":70,"context_line":"                                           image_info[\u0027swap_mb\u0027],"},{"line_number":71,"context_line":"                                           image_info[\u0027ephemeral_mb\u0027],"},{"line_number":72,"context_line":"                                           image_info[\u0027ephemeral_format\u0027],"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_521b8b1b","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":42},"in_reply_to":"3afc51ec_e7b65e89","updated":"2016-03-13 17:14:36.000000000","message":"Yes. Thats expected when it is not a partition image.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"13ee9fc73a12798fdf8b4d76fe93b0059b8b40e6","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":151,"context_line":"        efi_system_partition_uuid \u003d ("},{"line_number":152,"context_line":"            partition_uuids.get(\u0027efi system partition uuid\u0027))"},{"line_number":153,"context_line":"    else:"},{"line_number":154,"context_line":"        root_uuid \u003d None"},{"line_number":155,"context_line":"        efi_system_partition_uuid \u003d None"},{"line_number":156,"context_line":"    return (root_uuid, efi_system_partition_uuid)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_d909862e","line":155,"range":{"start_line":153,"start_character":4,"end_line":155,"end_character":40},"updated":"2016-03-13 12:17:07.000000000","message":"With \u0027partition_uuids\u0027 of type dict, you will not need this part.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"89b1894637042048f2b4babd611fe9d243536988","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":151,"context_line":"        efi_system_partition_uuid \u003d ("},{"line_number":152,"context_line":"            partition_uuids.get(\u0027efi system partition uuid\u0027))"},{"line_number":153,"context_line":"    else:"},{"line_number":154,"context_line":"        root_uuid \u003d None"},{"line_number":155,"context_line":"        efi_system_partition_uuid \u003d None"},{"line_number":156,"context_line":"    return (root_uuid, efi_system_partition_uuid)"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_32c23f34","line":155,"range":{"start_line":153,"start_character":4,"end_line":155,"end_character":40},"in_reply_to":"3afc51ec_d909862e","updated":"2016-03-13 17:14:36.000000000","message":"partition_uuids is a dictionary only if it is not None.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"13ee9fc73a12798fdf8b4d76fe93b0059b8b40e6","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        super(StandbyExtension, self).__init__(agent\u003dagent)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.cached_image_id \u003d None"},{"line_number":263,"context_line":"        self.partition_uuids \u003d None"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def _cache_and_write_image(self, image_info, device):"},{"line_number":266,"context_line":"        _download_image(image_info)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_c717e24f","line":263,"range":{"start_line":263,"start_character":13,"end_line":263,"end_character":28},"updated":"2016-03-13 12:17:07.000000000","message":"This should be of type dictionary","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"89b1894637042048f2b4babd611fe9d243536988","unresolved":false,"context_lines":[{"line_number":260,"context_line":"        super(StandbyExtension, self).__init__(agent\u003dagent)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.cached_image_id \u003d None"},{"line_number":263,"context_line":"        self.partition_uuids \u003d None"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    def _cache_and_write_image(self, image_info, device):"},{"line_number":266,"context_line":"        _download_image(image_info)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_52aeeb85","line":263,"range":{"start_line":263,"start_character":13,"end_line":263,"end_character":28},"in_reply_to":"3afc51ec_c717e24f","updated":"2016-03-13 17:14:36.000000000","message":"This can be None if it is not partition image.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"13ee9fc73a12798fdf8b4d76fe93b0059b8b40e6","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        device \u003d hardware.dispatch_to_managers(\u0027get_os_install_device\u0027)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        result_msg \u003d (\u0027image ({0}) already present on device {1} \u0027"},{"line_number":295,"context_line":"                      \u0027root_uuid\u003d{2} efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":296,"context_line":"        if self.cached_image_id !\u003d image_info[\u0027id\u0027] or force:"},{"line_number":297,"context_line":"            LOG.debug(\u0027Already had %s cached, overwriting\u0027,"},{"line_number":298,"context_line":"                      self.cached_image_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_5963b6dc","line":295,"range":{"start_line":295,"start_character":22,"end_line":295,"end_character":67},"updated":"2016-03-13 12:17:07.000000000","message":"\u0027root_uuid\u0027 and \u0027efi_system_partition_uuid\u0027 will not be available if it does not enter \u0027if\u0027 path @ L296.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"89b1894637042048f2b4babd611fe9d243536988","unresolved":false,"context_lines":[{"line_number":292,"context_line":"        device \u003d hardware.dispatch_to_managers(\u0027get_os_install_device\u0027)"},{"line_number":293,"context_line":""},{"line_number":294,"context_line":"        result_msg \u003d (\u0027image ({0}) already present on device {1} \u0027"},{"line_number":295,"context_line":"                      \u0027root_uuid\u003d{2} efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":296,"context_line":"        if self.cached_image_id !\u003d image_info[\u0027id\u0027] or force:"},{"line_number":297,"context_line":"            LOG.debug(\u0027Already had %s cached, overwriting\u0027,"},{"line_number":298,"context_line":"                      self.cached_image_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_32ab5f76","line":295,"range":{"start_line":295,"start_character":22,"end_line":295,"end_character":67},"in_reply_to":"3afc51ec_5963b6dc","updated":"2016-03-13 17:14:36.000000000","message":"Even the values are not populated, the message will return None in their values. The message returned will be consistent with all types of images. That doesnt harm.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"13ee9fc73a12798fdf8b4d76fe93b0059b8b40e6","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":300,"context_line":"            result_msg \u003d (\u0027image ({0}) cached to device {1} root_uuid\u003d{2} \u0027"},{"line_number":301,"context_line":"                          \u0027efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":302,"context_line":"        root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":303,"context_line":"            _populate_partition_uuids(self.partition_uuids))"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_19b00e43","line":302,"range":{"start_line":302,"start_character":8,"end_line":302,"end_character":44},"updated":"2016-03-13 12:17:07.000000000","message":"It makes sense to make this call only if path @L297 is taken.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"89b1894637042048f2b4babd611fe9d243536988","unresolved":false,"context_lines":[{"line_number":299,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":300,"context_line":"            result_msg \u003d (\u0027image ({0}) cached to device {1} root_uuid\u003d{2} \u0027"},{"line_number":301,"context_line":"                          \u0027efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":302,"context_line":"        root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":303,"context_line":"            _populate_partition_uuids(self.partition_uuids))"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_72bb27c5","line":302,"range":{"start_line":302,"start_character":8,"end_line":302,"end_character":44},"in_reply_to":"3afc51ec_19b00e43","updated":"2016-03-13 17:14:36.000000000","message":"This is done for the message \"msg\" at line number 305 which is out of \u0027if\u0027 clause of L296. The message format is same at L294 and 300, hence this method makes sense here.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"13ee9fc73a12798fdf8b4d76fe93b0059b8b40e6","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        if configdrive is not None:"},{"line_number":332,"context_line":"            _write_configdrive_to_partition(configdrive, device)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":335,"context_line":"            _populate_partition_uuids(self.partition_uuids))"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_99d09e55","line":332,"range":{"start_line":332,"start_character":12,"end_line":332,"end_character":64},"updated":"2016-03-13 12:17:07.000000000","message":"I think this is not required for partition image as config drive would be created by work_on_disk() called from _write_image() (L50)\n https://github.com/openstack/ironic-lib/blob/master/ironic_lib/disk_utils.py#L501-L506","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"89b1894637042048f2b4babd611fe9d243536988","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        if configdrive is not None:"},{"line_number":332,"context_line":"            _write_configdrive_to_partition(configdrive, device)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":335,"context_line":"            _populate_partition_uuids(self.partition_uuids))"}],"source_content_type":"text/x-python","patch_set":11,"id":"3afc51ec_12cbc354","line":332,"range":{"start_line":332,"start_character":12,"end_line":332,"end_character":64},"in_reply_to":"3afc51ec_99d09e55","updated":"2016-03-13 17:14:36.000000000","message":"Valid point . wil take care not to call for partition image.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"cc210d1d68485f440db476d334b05d6d92e74ebc","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    image \u003d _image_location(image_info)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":55,"context_line":"        # Call disk_util to create partion and write the partiton image"},{"line_number":56,"context_line":"        node_uuid \u003d image_info[\u0027id\u0027]"},{"line_number":57,"context_line":"        preserve_ep \u003d image_info[\u0027preserve_ephemeral\u0027]"},{"line_number":58,"context_line":"        configdrive \u003d image_info[\u0027configdrive\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_2450045d","line":55,"updated":"2016-03-14 21:43:07.000000000","message":"Nit: s/partion/partition/, s/partiton/partition/","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aceef7157f08603322e1cbd4f61b6263abcd1ee2","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    image \u003d _image_location(image_info)"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":55,"context_line":"        # Call disk_util to create partion and write the partiton image"},{"line_number":56,"context_line":"        node_uuid \u003d image_info[\u0027id\u0027]"},{"line_number":57,"context_line":"        preserve_ep \u003d image_info[\u0027preserve_ephemeral\u0027]"},{"line_number":58,"context_line":"        configdrive \u003d image_info[\u0027configdrive\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_efc26d33","line":55,"in_reply_to":"3afc51ec_2450045d","updated":"2016-03-15 05:46:59.000000000","message":"ok","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"cc210d1d68485f440db476d334b05d6d92e74ebc","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                                                     root_mb)"},{"line_number":67,"context_line":"            raise errors.InvalidCommandParamsError(msg)"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            return(disk_utils.work_on_disk(device, root_mb,"},{"line_number":70,"context_line":"                                           image_info[\u0027swap_mb\u0027],"},{"line_number":71,"context_line":"                                           image_info[\u0027ephemeral_mb\u0027],"},{"line_number":72,"context_line":"                                           image_info[\u0027ephemeral_format\u0027],"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_04c1882e","line":69,"updated":"2016-03-14 21:43:07.000000000","message":"Nit: no need for the outer () here.","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aceef7157f08603322e1cbd4f61b6263abcd1ee2","unresolved":false,"context_lines":[{"line_number":66,"context_line":"                                                                     root_mb)"},{"line_number":67,"context_line":"            raise errors.InvalidCommandParamsError(msg)"},{"line_number":68,"context_line":"        try:"},{"line_number":69,"context_line":"            return(disk_utils.work_on_disk(device, root_mb,"},{"line_number":70,"context_line":"                                           image_info[\u0027swap_mb\u0027],"},{"line_number":71,"context_line":"                                           image_info[\u0027ephemeral_mb\u0027],"},{"line_number":72,"context_line":"                                           image_info[\u0027ephemeral_format\u0027],"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_2fb8d5c7","line":69,"in_reply_to":"3afc51ec_04c1882e","updated":"2016-03-15 05:46:59.000000000","message":"ok","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"cc210d1d68485f440db476d334b05d6d92e74ebc","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                           boot_mode\u003dboot_mode))"},{"line_number":78,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":79,"context_line":"            raise errors.ImageWriteError(device, e.exit_code, e.stdout,"},{"line_number":80,"context_line":"                                         e.stderr)"},{"line_number":81,"context_line":"    else:"},{"line_number":82,"context_line":"        script \u003d _path_to_script(\u0027shell/write_image.sh\u0027)"},{"line_number":83,"context_line":"        command \u003d [\u0027/bin/bash\u0027, script, image, device]"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_84b478d1","line":80,"updated":"2016-03-14 21:43:07.000000000","message":"Could we break this block out into a separate function, just to keep methods tiny? Maybe both blocks...\n\nif image_type \u003d\u003d partition:\n    _write_partition_image(image_info, device)\nelse:\n    _write_disk_image(image_info, device)","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aceef7157f08603322e1cbd4f61b6263abcd1ee2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                                           boot_mode\u003dboot_mode))"},{"line_number":78,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":79,"context_line":"            raise errors.ImageWriteError(device, e.exit_code, e.stdout,"},{"line_number":80,"context_line":"                                         e.stderr)"},{"line_number":81,"context_line":"    else:"},{"line_number":82,"context_line":"        script \u003d _path_to_script(\u0027shell/write_image.sh\u0027)"},{"line_number":83,"context_line":"        command \u003d [\u0027/bin/bash\u0027, script, image, device]"}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_cfa8517a","line":80,"in_reply_to":"3afc51ec_84b478d1","updated":"2016-03-15 05:46:59.000000000","message":"Yes, sure. :)","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"cc210d1d68485f440db476d334b05d6d92e74ebc","unresolved":false,"context_lines":[{"line_number":145,"context_line":"             totaltime))"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"def _populate_partition_uuids(partition_uuids):"},{"line_number":149,"context_line":"    if partition_uuids:"},{"line_number":150,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":151,"context_line":"        efi_system_partition_uuid \u003d ("}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_a48414d4","line":148,"updated":"2016-03-14 21:43:07.000000000","message":"Maybe s/populate/parse/? This doesn\u0027t really \"populate\" these.","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aceef7157f08603322e1cbd4f61b6263abcd1ee2","unresolved":false,"context_lines":[{"line_number":145,"context_line":"             totaltime))"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"def _populate_partition_uuids(partition_uuids):"},{"line_number":149,"context_line":"    if partition_uuids:"},{"line_number":150,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":151,"context_line":"        efi_system_partition_uuid \u003d ("}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_2fdf350e","line":148,"in_reply_to":"3afc51ec_a48414d4","updated":"2016-03-15 05:46:59.000000000","message":"Ok.","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"cc210d1d68485f440db476d334b05d6d92e74ebc","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            else:"},{"line_number":329,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        if image_info.get(\u0027image_type\u0027) is not \u0027partition\u0027:"},{"line_number":332,"context_line":"            if configdrive is not None:"},{"line_number":333,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_64616c39","line":331,"updated":"2016-03-14 21:43:07.000000000","message":"s/is not/!\u003d/","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aceef7157f08603322e1cbd4f61b6263abcd1ee2","unresolved":false,"context_lines":[{"line_number":328,"context_line":"            else:"},{"line_number":329,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        if image_info.get(\u0027image_type\u0027) is not \u0027partition\u0027:"},{"line_number":332,"context_line":"            if configdrive is not None:"},{"line_number":333,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":334,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_4f01e169","line":331,"in_reply_to":"3afc51ec_64616c39","updated":"2016-03-15 05:46:59.000000000","message":"ok","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"eb0e42c25a4bcdae8772f57c753630499f832c80","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        result_msg \u003d (\u0027image ({0}) written to device {1} root_uuid\u003d{2} \u0027"},{"line_number":339,"context_line":"                      \u0027efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":340,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"},{"line_number":341,"context_line":"                                efi_system_partition_uuid)"},{"line_number":342,"context_line":"        LOG.info(msg)"},{"line_number":343,"context_line":"        return msg"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_4e7d9f6d","line":341,"range":{"start_line":340,"start_character":0,"end_line":341,"end_character":58},"updated":"2016-03-14 07:42:04.000000000","message":"in the case of non-partition image, \nthis msg will be something like \u0027image xxx written to device xxx root_uuid\u003dNone efi_system_partition_uuid\u003dNone\u0027, is this something you want? the last two thing are useless...what about use two different but clearer msg for partition image and non-partition image?","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"cc210d1d68485f440db476d334b05d6d92e74ebc","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        result_msg \u003d (\u0027image ({0}) written to device {1} root_uuid\u003d{2} \u0027"},{"line_number":339,"context_line":"                      \u0027efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":340,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"},{"line_number":341,"context_line":"                                efi_system_partition_uuid)"},{"line_number":342,"context_line":"        LOG.info(msg)"},{"line_number":343,"context_line":"        return msg"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_c43b2037","line":341,"range":{"start_line":340,"start_character":0,"end_line":341,"end_character":58},"in_reply_to":"3afc51ec_4e7d9f6d","updated":"2016-03-14 21:43:07.000000000","message":"+1, I\u0027d prefer not to put junk in the message for whole disk images","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"aceef7157f08603322e1cbd4f61b6263abcd1ee2","unresolved":false,"context_lines":[{"line_number":337,"context_line":""},{"line_number":338,"context_line":"        result_msg \u003d (\u0027image ({0}) written to device {1} root_uuid\u003d{2} \u0027"},{"line_number":339,"context_line":"                      \u0027efi_system_partition_uuid\u003d{3}\u0027)"},{"line_number":340,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"},{"line_number":341,"context_line":"                                efi_system_partition_uuid)"},{"line_number":342,"context_line":"        LOG.info(msg)"},{"line_number":343,"context_line":"        return msg"},{"line_number":344,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"3afc51ec_0f0b598f","line":341,"range":{"start_line":340,"start_character":0,"end_line":341,"end_character":58},"in_reply_to":"3afc51ec_c43b2037","updated":"2016-03-15 05:46:59.000000000","message":"Ok.","commit_id":"226a44791496d91cf1c636fffded01805e6ff431"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                                       preserve_ephemeral\u003dpreserve_ep,"},{"line_number":71,"context_line":"                                       configdrive\u003dconfigdrive,"},{"line_number":72,"context_line":"                                       boot_option\u003dboot_option,"},{"line_number":73,"context_line":"                                       boot_mode\u003dboot_mode)"},{"line_number":74,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":75,"context_line":"        raise errors.ImageWriteError(device, e.exit_code, e.stdout,"},{"line_number":76,"context_line":"                                     e.stderr)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_4d12dcb5","line":73,"range":{"start_line":73,"start_character":39,"end_line":73,"end_character":59},"updated":"2016-03-16 05:00:24.000000000","message":"It is useful to add a info message about time taken to write the image as doen for whole disk image.\nhttps://github.com/openstack/ironic-python-agent/blob/master/ironic_python_agent/extensions/standby.py#L61-L62","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fe674cc69f2a7ebc2289a9f15b20300bbb4bf0eb","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                                       preserve_ephemeral\u003dpreserve_ep,"},{"line_number":71,"context_line":"                                       configdrive\u003dconfigdrive,"},{"line_number":72,"context_line":"                                       boot_option\u003dboot_option,"},{"line_number":73,"context_line":"                                       boot_mode\u003dboot_mode)"},{"line_number":74,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":75,"context_line":"        raise errors.ImageWriteError(device, e.exit_code, e.stdout,"},{"line_number":76,"context_line":"                                     e.stderr)"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_3a6e9f2f","line":73,"range":{"start_line":73,"start_character":39,"end_line":73,"end_character":59},"in_reply_to":"1af94dfe_4d12dcb5","updated":"2016-03-16 07:06:53.000000000","message":"ok","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                     e.stderr)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def _write_whole_disk_image(image, image_info, device):"},{"line_number":80,"context_line":"    starttime \u003d time.time()"},{"line_number":81,"context_line":"    script \u003d _path_to_script(\u0027shell/write_image.sh\u0027)"},{"line_number":82,"context_line":"    command \u003d [\u0027/bin/bash\u0027, script, image, device]"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_cdb0ac8e","line":79,"range":{"start_line":79,"start_character":4,"end_line":79,"end_character":27},"updated":"2016-03-16 05:00:24.000000000","message":"For consistency define a retun value for this method that returns empty dictionary to be consitent with the return values between flashing partition or whole disk image.\n\n\u0027return {}\u0027","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fe674cc69f2a7ebc2289a9f15b20300bbb4bf0eb","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                                     e.stderr)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"def _write_whole_disk_image(image, image_info, device):"},{"line_number":80,"context_line":"    starttime \u003d time.time()"},{"line_number":81,"context_line":"    script \u003d _path_to_script(\u0027shell/write_image.sh\u0027)"},{"line_number":82,"context_line":"    command \u003d [\u0027/bin/bash\u0027, script, image, device]"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_1a6be31f","line":79,"range":{"start_line":79,"start_character":4,"end_line":79,"end_character":27},"in_reply_to":"1af94dfe_cdb0ac8e","updated":"2016-03-16 07:06:53.000000000","message":"Not required.","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":94,"context_line":"def _write_image(image_info, device):"},{"line_number":95,"context_line":"    image \u003d _image_location(image_info)"},{"line_number":96,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":97,"context_line":"        _write_partition_image(image, image_info, device)"},{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        _write_whole_disk_image(image, image_info, device)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_6d8878e8","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":57},"updated":"2016-03-16 05:00:24.000000000","message":"You need to return the dictionary from here.","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fe674cc69f2a7ebc2289a9f15b20300bbb4bf0eb","unresolved":false,"context_lines":[{"line_number":94,"context_line":"def _write_image(image_info, device):"},{"line_number":95,"context_line":"    image \u003d _image_location(image_info)"},{"line_number":96,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":97,"context_line":"        _write_partition_image(image, image_info, device)"},{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        _write_whole_disk_image(image, image_info, device)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_3a55ff4f","line":97,"range":{"start_line":97,"start_character":8,"end_line":97,"end_character":57},"in_reply_to":"1af94dfe_6d8878e8","updated":"2016-03-16 07:06:53.000000000","message":"ya this is a miss in refactoring the code.","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"def _write_image(image_info, device):"},{"line_number":95,"context_line":"    image \u003d _image_location(image_info)"},{"line_number":96,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":97,"context_line":"        _write_partition_image(image, image_info, device)"},{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        _write_whole_disk_image(image, image_info, device)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def _configdrive_is_url(configdrive):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_8d6d0407","line":99,"range":{"start_line":96,"start_character":4,"end_line":99,"end_character":58},"updated":"2016-03-16 05:00:24.000000000","message":"Return value of the method should not depend on the argument type so that user of this method do not need to perform extra check to see if the return value is \u0027None\u0027 :-\n\nret \u003d {}\nif image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:\n    ret \u003d _write_partition_image(image, image_info, device)\nelse:\n    ret \u003d _write_whole_disk_image(image, image_info, device)\nreturn ret","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fe674cc69f2a7ebc2289a9f15b20300bbb4bf0eb","unresolved":false,"context_lines":[{"line_number":93,"context_line":""},{"line_number":94,"context_line":"def _write_image(image_info, device):"},{"line_number":95,"context_line":"    image \u003d _image_location(image_info)"},{"line_number":96,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":97,"context_line":"        _write_partition_image(image, image_info, device)"},{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        _write_whole_disk_image(image, image_info, device)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"def _configdrive_is_url(configdrive):"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_7a4f87bd","line":99,"range":{"start_line":96,"start_character":4,"end_line":99,"end_character":58},"in_reply_to":"1af94dfe_8d6d0407","updated":"2016-03-16 07:06:53.000000000","message":"taken care in next patch","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"def _parse_partition_uuids(partition_uuids):"},{"line_number":156,"context_line":"    if partition_uuids:"},{"line_number":157,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":158,"context_line":"        efi_system_partition_uuid \u003d ("},{"line_number":159,"context_line":"            partition_uuids.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_d125e6ab","line":156,"range":{"start_line":156,"start_character":7,"end_line":156,"end_character":22},"updated":"2016-03-16 05:00:24.000000000","message":"\u0027partition_uuids\u0027 can be always a dictionary to avoid checks like this.\nEx.\ndef _parse_partition_uuids(partition_uuids):\n    root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)\n    efi_system_partition_uuid \u003d (partition_uuids.get(\u0027efi system partition uuid\u0027))\n    return (root_uuid, efi_system_partition_uuid)  \n\nIf you have \u0027partition_uuids\u0027 as dictionary, you might not need this function.","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fe674cc69f2a7ebc2289a9f15b20300bbb4bf0eb","unresolved":false,"context_lines":[{"line_number":153,"context_line":""},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"def _parse_partition_uuids(partition_uuids):"},{"line_number":156,"context_line":"    if partition_uuids:"},{"line_number":157,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":158,"context_line":"        efi_system_partition_uuid \u003d ("},{"line_number":159,"context_line":"            partition_uuids.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_fad1d7ce","line":156,"range":{"start_line":156,"start_character":7,"end_line":156,"end_character":22},"in_reply_to":"1af94dfe_d125e6ab","updated":"2016-03-16 07:06:53.000000000","message":"ok","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                _parse_partition_uuids(self.partition_uuids))"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"},{"line_number":328,"context_line":"                                efi_system_partition_uuid)"},{"line_number":329,"context_line":"        LOG.info(msg)"},{"line_number":330,"context_line":"        return msg"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_314c0a42","line":328,"range":{"start_line":328,"start_character":32,"end_line":328,"end_character":57},"updated":"2016-03-16 05:00:24.000000000","message":"As per _get_message_format() method, \u0027efi_system_partition_uuid\u0027 will be passed as an argument to result_msg\u0027 only in UEFI boot mode. \nHere it would pass \u0027efi_system_partition_uuid\u0027 even in BIOS boot mode. \nNot sure if this can cause error in any python environment. Better to avoid it.","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"fe674cc69f2a7ebc2289a9f15b20300bbb4bf0eb","unresolved":false,"context_lines":[{"line_number":325,"context_line":"                _parse_partition_uuids(self.partition_uuids))"},{"line_number":326,"context_line":""},{"line_number":327,"context_line":"        msg \u003d result_msg.format(image_info[\u0027id\u0027], device, root_uuid,"},{"line_number":328,"context_line":"                                efi_system_partition_uuid)"},{"line_number":329,"context_line":"        LOG.info(msg)"},{"line_number":330,"context_line":"        return msg"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_e5577c00","line":328,"range":{"start_line":328,"start_character":32,"end_line":328,"end_character":57},"in_reply_to":"1af94dfe_314c0a42","updated":"2016-03-16 07:06:53.000000000","message":"I tested this on python shell and it works without errors. It simply ignores extra arguments.","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"65e085b61df55b28ac4c60a99fe45b73def0cacc","unresolved":false,"context_lines":[{"line_number":353,"context_line":"            else:"},{"line_number":354,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        if image_info.get(\u0027image_type\u0027) is not \u0027partition\u0027:"},{"line_number":357,"context_line":"            if configdrive is not None:"},{"line_number":358,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"1af94dfe_5460a4ce","line":356,"range":{"start_line":356,"start_character":40,"end_line":356,"end_character":46},"updated":"2016-03-16 05:00:24.000000000","message":"s/ \u0027is not\u0027 / \u0027!\u003d\u0027/","commit_id":"1b25064d58767e147df03af7a9610d9ac7bd6d5b"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"43ae1790cba80079becb2232b0995651df30d57c","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                      self.cached_image_id)"},{"line_number":330,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":331,"context_line":"            msg \u003d (\u0027image ({0}) cached to device {1} \u0027)"},{"line_number":332,"context_line":"            result_msg \u003d _get_message_format(image_info, msg)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":335,"context_line":"            root_uuid, efi_system_partition_uuid \u003d ("}],"source_content_type":"text/x-python","patch_set":17,"id":"1af94dfe_ea926e9e","line":332,"range":{"start_line":332,"start_character":0,"end_line":332,"end_character":61},"updated":"2016-03-17 02:12:15.000000000","message":"this is kind of duplicate with L325, we only need one before L337.","commit_id":"3097d684575c4b873e50951ebe6f1159b5d222f1"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"e15092919870df746ad935804c7c852d5cb3f13d","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                      self.cached_image_id)"},{"line_number":330,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":331,"context_line":"            msg \u003d (\u0027image ({0}) cached to device {1} \u0027)"},{"line_number":332,"context_line":"            result_msg \u003d _get_message_format(image_info, msg)"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":335,"context_line":"            root_uuid, efi_system_partition_uuid \u003d ("}],"source_content_type":"text/x-python","patch_set":17,"id":"1af94dfe_8c24a5af","line":332,"range":{"start_line":332,"start_character":0,"end_line":332,"end_character":61},"in_reply_to":"1af94dfe_ea926e9e","updated":"2016-03-17 04:05:37.000000000","message":"Ok.","commit_id":"3097d684575c4b873e50951ebe6f1159b5d222f1"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"43ae1790cba80079becb2232b0995651df30d57c","unresolved":false,"context_lines":[{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":335,"context_line":"            root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":336,"context_line":"                _parse_partition_uuids(self.partition_uuids))"},{"line_number":337,"context_line":"        msg \u003d _populate_msg_arguments(result_msg, image_info, device,"},{"line_number":338,"context_line":"                                      root_uuid, efi_system_partition_uuid)"},{"line_number":339,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1af94dfe_eaca6e6d","line":336,"updated":"2016-03-17 02:12:15.000000000","message":"if you think my above advise is valid, I would even suggest you combine _populate_msg_arguments and _get_message_format into one function, because they could share a same if/else condition.","commit_id":"3097d684575c4b873e50951ebe6f1159b5d222f1"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"e15092919870df746ad935804c7c852d5cb3f13d","unresolved":false,"context_lines":[{"line_number":333,"context_line":""},{"line_number":334,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":335,"context_line":"            root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":336,"context_line":"                _parse_partition_uuids(self.partition_uuids))"},{"line_number":337,"context_line":"        msg \u003d _populate_msg_arguments(result_msg, image_info, device,"},{"line_number":338,"context_line":"                                      root_uuid, efi_system_partition_uuid)"},{"line_number":339,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"1af94dfe_cc3d0dbd","line":336,"in_reply_to":"1af94dfe_eaca6e6d","updated":"2016-03-17 04:05:37.000000000","message":"Your above advise is valid. Let me try. I had tried it earlier. If i can make that work i will post the new patch with your suggestion.","commit_id":"3097d684575c4b873e50951ebe6f1159b5d222f1"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"75d1edee993564c6c74ba8a110c1555601528ca6","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    boot_mode \u003d image_info.get(\u0027deploy_boot_mode\u0027, \u0027bios\u0027)"},{"line_number":57,"context_line":"    image_mb \u003d disk_utils.get_image_mb(image)"},{"line_number":58,"context_line":"    root_mb \u003d image_info[\u0027root_mb\u0027]"},{"line_number":59,"context_line":"    if image_mb \u003e int(root_mb):"},{"line_number":60,"context_line":"        msg \u003d (\u0027Root partition is too small for requested image. Image \u0027"},{"line_number":61,"context_line":"               \u0027virtual size: {0} MB, Root size: {1} MB\u0027).format(image_mb,"},{"line_number":62,"context_line":"                                                                 root_mb)"},{"line_number":63,"context_line":"        raise errors.InvalidCommandParamsError(msg)"},{"line_number":64,"context_line":"    try:"},{"line_number":65,"context_line":"        return disk_utils.work_on_disk(device, root_mb,"},{"line_number":66,"context_line":"                                       image_info[\u0027swap_mb\u0027],"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af94dfe_be789f2c","line":63,"range":{"start_line":59,"start_character":4,"end_line":63,"end_character":51},"updated":"2016-03-17 08:18:02.000000000","message":"Add a testcase for this path.","commit_id":"e481935a3b760028ce00299be924fd092051c103"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"75d1edee993564c6c74ba8a110c1555601528ca6","unresolved":false,"context_lines":[{"line_number":324,"context_line":"            msg \u003d (\u0027image ({0}) cached to device {1} \u0027)"},{"line_number":325,"context_line":""},{"line_number":326,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":327,"context_line":"            root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":328,"context_line":"                _parse_partition_uuids(self.partition_uuids))"},{"line_number":329,"context_line":"        result_msg \u003d _message_format(msg, image_info, device,"},{"line_number":330,"context_line":"                                     root_uuid, efi_system_partition_uuid)"},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"        LOG.info(result_msg)"},{"line_number":333,"context_line":"        return result_msg"}],"source_content_type":"text/x-python","patch_set":18,"id":"1af94dfe_1e1c3311","line":330,"range":{"start_line":327,"start_character":12,"end_line":330,"end_character":74},"updated":"2016-03-17 08:18:02.000000000","message":"You do not need method _parse_partition_uuids() as you are just reading dictionary there. You can just write:-\n   result_msg \u003d _message_format(msg, image_info, device,\n                                partition_uuids.get(\u0027root uuid\u0027),\n                                partition_uuids.get(\u0027efi system partition uuid\u0027))","commit_id":"e481935a3b760028ce00299be924fd092051c103"},{"author":{"_account_id":11076,"name":"Shivanand Tendulker","email":"stendulker@gmail.com","username":"stendulker"},"change_message_id":"75d1edee993564c6c74ba8a110c1555601528ca6","unresolved":false,"context_lines":[{"line_number":361,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":364,"context_line":"            root_uuid, efi_system_partition_uuid \u003d ("},{"line_number":365,"context_line":"                _parse_partition_uuids(self.partition_uuids))"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":"        msg \u003d (\u0027image ({0}) written to device {1} \u0027)"},{"line_number":368,"context_line":"        result_msg \u003d _message_format(msg, image_info, device,"},{"line_number":369,"context_line":"                                     root_uuid, efi_system_partition_uuid)"},{"line_number":370,"context_line":"        LOG.info(result_msg)"},{"line_number":371,"context_line":"        return result_msg"},{"line_number":372,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"1af94dfe_5e899b25","line":369,"range":{"start_line":364,"start_character":8,"end_line":369,"end_character":74},"updated":"2016-03-17 08:18:02.000000000","message":"ditto","commit_id":"e481935a3b760028ce00299be924fd092051c103"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"fe744042ecc69f8b02cb67a5d31bf847f7982948","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"def _write_partition_image(image, image_info, device):"},{"line_number":51,"context_line":"    # Call disk_util to create partition and write the partiton image"},{"line_number":52,"context_line":"    node_uuid \u003d image_info[\u0027id\u0027]"},{"line_number":53,"context_line":"    preserve_ep \u003d image_info[\u0027preserve_ephemeral\u0027]"},{"line_number":54,"context_line":"    configdrive \u003d image_info[\u0027configdrive\u0027]"}],"source_content_type":"text/x-python","patch_set":23,"id":"1af94dfe_e332660f","line":51,"range":{"start_line":51,"start_character":55,"end_line":51,"end_character":63},"updated":"2016-03-17 22:00:32.000000000","message":"nit:  s/partiton/partition/\n\nAlso could be a docstring.","commit_id":"43bf688f2f42f730185d39c75d64f88422bdd947"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"fe744042ecc69f8b02cb67a5d31bf847f7982948","unresolved":false,"context_lines":[{"line_number":83,"context_line":"    try:"},{"line_number":84,"context_line":"        stdout, stderr \u003d utils.execute(*command, check_exit_code\u003d[0])"},{"line_number":85,"context_line":"    except processutils.ProcessExecutionError as e:"},{"line_number":86,"context_line":"        raise errors.ImageWriteError(device, e.exit_code, e.stdout,"},{"line_number":87,"context_line":"                                     e.stderr)"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"1af94dfe_de00dd03","line":86,"updated":"2016-03-17 22:00:32.000000000","message":"nit: doesn\u0027t seem like whitespace needed to change.","commit_id":"43bf688f2f42f730185d39c75d64f88422bdd947"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"fe744042ecc69f8b02cb67a5d31bf847f7982948","unresolved":false,"context_lines":[{"line_number":316,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":317,"context_line":"            msg \u003d (\u0027image ({0}) cached to device {1} \u0027)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":320,"context_line":"            root_uuid \u003d self.partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":321,"context_line":"            efi_system_partition_uuid \u003d ("},{"line_number":322,"context_line":"                self.partition_uuids.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":23,"id":"1af94dfe_3e258108","line":319,"updated":"2016-03-17 22:00:32.000000000","message":"Possible bikeshedding:\n\nThis block and the block at line 357 seem like they should just be incorporated into the message_format() function.\n\nmessage_format() is checking if image_type \u003d\u003d \u0027partition\u0027.\n\nSeems like could just pass self.partition_uuids to message_format() to reduce code duplication.","commit_id":"43bf688f2f42f730185d39c75d64f88422bdd947"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"fe744042ecc69f8b02cb67a5d31bf847f7982948","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            if configdrive is not None:"},{"line_number":355,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":358,"context_line":"            root_uuid \u003d self.partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":359,"context_line":"            efi_system_partition_uuid \u003d ("},{"line_number":360,"context_line":"                self.partition_uuids.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":23,"id":"1af94dfe_a32dfea9","line":357,"updated":"2016-03-17 22:00:32.000000000","message":"nit:\n\nSeems like this could just be an else\n\n else:","commit_id":"43bf688f2f42f730185d39c75d64f88422bdd947"},{"author":{"_account_id":13362,"name":"Tan Lin","email":"lin.tan@intel.com","username":"zero"},"change_message_id":"3f5dcb65406ac46ce013629f96cfef70c9f28b42","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            if configdrive is not None:"},{"line_number":355,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"        if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":358,"context_line":"            root_uuid \u003d self.partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":359,"context_line":"            efi_system_partition_uuid \u003d ("},{"line_number":360,"context_line":"                self.partition_uuids.get(\u0027efi system partition uuid\u0027))"}],"source_content_type":"text/x-python","patch_set":23,"id":"1af94dfe_11019338","line":357,"in_reply_to":"1af94dfe_a32dfea9","updated":"2016-03-18 02:01:42.000000000","message":"+1 agree","commit_id":"43bf688f2f42f730185d39c75d64f88422bdd947"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"fe744042ecc69f8b02cb67a5d31bf847f7982948","unresolved":false,"context_lines":[{"line_number":359,"context_line":"            efi_system_partition_uuid \u003d ("},{"line_number":360,"context_line":"                self.partition_uuids.get(\u0027efi system partition uuid\u0027))"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        msg \u003d (\u0027image ({0}) written to device {1} \u0027)"},{"line_number":363,"context_line":"        result_msg \u003d _message_format(msg, image_info, device,"},{"line_number":364,"context_line":"                                     root_uuid, efi_system_partition_uuid)"},{"line_number":365,"context_line":"        LOG.info(result_msg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"1af94dfe_be887172","line":362,"updated":"2016-03-17 22:00:32.000000000","message":"nit: Parenthesis unneeded","commit_id":"43bf688f2f42f730185d39c75d64f88422bdd947"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"69a48fd971e4bb9d868c3a5bbc4fe29098645cf1","unresolved":false,"context_lines":[{"line_number":156,"context_line":"    \"\"\"Helper method to get and populate different messages.\"\"\""},{"line_number":157,"context_line":"    message \u003d None"},{"line_number":158,"context_line":"    result_msg \u003d msg"},{"line_number":159,"context_line":"    root_uuid \u003d None"},{"line_number":160,"context_line":"    efi_system_partition_uuid \u003d None"},{"line_number":161,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":162,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"}],"source_content_type":"text/x-python","patch_set":24,"id":"1af94dfe_c25f5be3","line":159,"updated":"2016-03-18 03:57:58.000000000","message":"Doesn\u0027t seem needed.","commit_id":"c9c96f0168097cee29724d824e974931b35a7940"},{"author":{"_account_id":14760,"name":"John L. Villalovos","email":"openstack.org@sodarock.com","username":"jlvillal"},"change_message_id":"69a48fd971e4bb9d868c3a5bbc4fe29098645cf1","unresolved":false,"context_lines":[{"line_number":157,"context_line":"    message \u003d None"},{"line_number":158,"context_line":"    result_msg \u003d msg"},{"line_number":159,"context_line":"    root_uuid \u003d None"},{"line_number":160,"context_line":"    efi_system_partition_uuid \u003d None"},{"line_number":161,"context_line":"    if image_info.get(\u0027image_type\u0027) \u003d\u003d \u0027partition\u0027:"},{"line_number":162,"context_line":"        root_uuid \u003d partition_uuids.get(\u0027root uuid\u0027)"},{"line_number":163,"context_line":"        efi_system_partition_uuid \u003d ("}],"source_content_type":"text/x-python","patch_set":24,"id":"1af94dfe_025663cd","line":160,"updated":"2016-03-18 03:57:58.000000000","message":"Doesn\u0027t seem needed.","commit_id":"c9c96f0168097cee29724d824e974931b35a7940"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f05ae23e23c5856c9121421a908198dad304e6b","unresolved":false,"context_lines":[{"line_number":314,"context_line":"            LOG.debug(\u0027Already had %s cached, overwriting\u0027,"},{"line_number":315,"context_line":"                      self.cached_image_id)"},{"line_number":316,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":317,"context_line":"            msg \u003d (\u0027image ({0}) cached to device {1} \u0027)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        result_msg \u003d _message_format(msg, image_info, device,"},{"line_number":320,"context_line":"                                     self.partition_uuids)"}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_c74488b8","line":317,"updated":"2016-03-18 06:55:04.000000000","message":"nit: redundant brackets","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f2beabd23234c1bd7a6fdf7e787492918d6c09c7","unresolved":false,"context_lines":[{"line_number":314,"context_line":"            LOG.debug(\u0027Already had %s cached, overwriting\u0027,"},{"line_number":315,"context_line":"                      self.cached_image_id)"},{"line_number":316,"context_line":"            self._cache_and_write_image(image_info, device)"},{"line_number":317,"context_line":"            msg \u003d (\u0027image ({0}) cached to device {1} \u0027)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        result_msg \u003d _message_format(msg, image_info, device,"},{"line_number":320,"context_line":"                                     self.partition_uuids)"}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_ea6a2980","line":317,"in_reply_to":"1af94dfe_c74488b8","updated":"2016-03-18 07:17:51.000000000","message":"Ok.","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ff6be65816be958dd8bea8839aa55b75055b45f1","unresolved":false,"context_lines":[{"line_number":338,"context_line":"                LOG.debug(\u0027Already had %s cached, overwriting\u0027,"},{"line_number":339,"context_line":"                          self.cached_image_id)"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"            if stream_raw_images and disk_format \u003d\u003d \u0027raw\u0027:"},{"line_number":342,"context_line":"                self._stream_raw_image_onto_device(image_info, device)"},{"line_number":343,"context_line":"            else:"},{"line_number":344,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":345,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_2ad5311b","line":342,"range":{"start_line":341,"start_character":12,"end_line":342,"end_character":70},"updated":"2016-03-18 07:25:52.000000000","message":"I think this should not happen when image type is partition, right?","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f05ae23e23c5856c9121421a908198dad304e6b","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            else:"},{"line_number":344,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        if image_info.get(\u0027image_type\u0027) !\u003d \u0027partition\u0027:"},{"line_number":347,"context_line":"            if configdrive is not None:"},{"line_number":348,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_27144c9e","line":346,"updated":"2016-03-18 06:55:04.000000000","message":"Why don\u0027t we support configdrives with partitions? I think we should at least raise an exception if image type is partition and configdrive is requested.","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f2beabd23234c1bd7a6fdf7e787492918d6c09c7","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            else:"},{"line_number":344,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        if image_info.get(\u0027image_type\u0027) !\u003d \u0027partition\u0027:"},{"line_number":347,"context_line":"            if configdrive is not None:"},{"line_number":348,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_4a5b5df6","line":346,"in_reply_to":"1af94dfe_27144c9e","updated":"2016-03-18 07:17:51.000000000","message":"configdrive support is handled by ironic_lib/disk_utils.work_on_disk(). Since we call work_on_disk() for partition images, it shouldnt be caleed again here in IPA.","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"ff6be65816be958dd8bea8839aa55b75055b45f1","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            else:"},{"line_number":344,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        if image_info.get(\u0027image_type\u0027) !\u003d \u0027partition\u0027:"},{"line_number":347,"context_line":"            if configdrive is not None:"},{"line_number":348,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_8a1f2507","line":346,"in_reply_to":"1af94dfe_4a5b5df6","updated":"2016-03-18 07:25:52.000000000","message":"Got it, thanks. Please leave a comment here about that.","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"9dad554779c8ed0620543adf584c8d47244b881e","unresolved":false,"context_lines":[{"line_number":343,"context_line":"            else:"},{"line_number":344,"context_line":"                self._cache_and_write_image(image_info, device)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"        if image_info.get(\u0027image_type\u0027) !\u003d \u0027partition\u0027:"},{"line_number":347,"context_line":"            if configdrive is not None:"},{"line_number":348,"context_line":"                _write_configdrive_to_partition(configdrive, device)"},{"line_number":349,"context_line":""}],"source_content_type":"text/x-python","patch_set":25,"id":"1af94dfe_152e9642","line":346,"in_reply_to":"1af94dfe_8a1f2507","updated":"2016-03-18 08:12:45.000000000","message":"Ok","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"}],"releasenotes/notes/agent_partition_image-91941adc6683c673.yaml":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"1fa888c4192d10ed2ec6c4e0c95ff92e43e9a456","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add support for partition images in IPA. "}],"source_content_type":"text/x-yaml","patch_set":20,"id":"1af94dfe_00283a99","line":3,"range":{"start_line":3,"start_character":44,"end_line":3,"end_character":45},"updated":"2016-03-17 15:54:38.000000000","message":"nit: white space\n\nalso we should note that ironic-lib is added to requirements.txt","commit_id":"48f407c20ff02f939272e4c6e032104d05dbad71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f4a45ebd64baedb7726947854edf0fae171f2b42","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Add support for partition images in IPA. "}],"source_content_type":"text/x-yaml","patch_set":20,"id":"1af94dfe_861aa27b","line":3,"range":{"start_line":3,"start_character":44,"end_line":3,"end_character":45},"in_reply_to":"1af94dfe_00283a99","updated":"2016-03-17 16:17:11.000000000","message":"Ok","commit_id":"48f407c20ff02f939272e4c6e032104d05dbad71"}],"requirements.txt":[{"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":"e86bdff6bec4fefacad4585e1da771e3d5f504b3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":23,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":24,"context_line":"WSME\u003e\u003d0.8 # MIT"},{"line_number":25,"context_line":"ironic-lib\u003e\u003d1.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"5aef4532_572838e2","line":25,"updated":"2016-03-09 17:03:17.000000000","message":"I believe this needs to be added to global-requirements and have the version locked there. I\u0027m not 100% sure if the same rules apply given this is an \"internal\" library, but it seems like just updating the requirements without touching global-requirements is wrong.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"c34572a87032742c896aa4c2fb1574c9d2f9ebf9","unresolved":false,"context_lines":[{"line_number":22,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":23,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":24,"context_line":"WSME\u003e\u003d0.8 # MIT"},{"line_number":25,"context_line":"ironic-lib\u003e\u003d1.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":11,"id":"5aef4532_e561ca3a","line":25,"in_reply_to":"5aef4532_572838e2","updated":"2016-03-09 17:24:31.000000000","message":"the global requirements already have this version. I copied it from there as requirements gate was failing.","commit_id":"22e47be7aaa199fd326e6149351db083342a69bf"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"1fa888c4192d10ed2ec6c4e0c95ff92e43e9a456","unresolved":false,"context_lines":[{"line_number":22,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":23,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":24,"context_line":"WSME\u003e\u003d0.8 # MIT"},{"line_number":25,"context_line":"ironic-lib\u003e\u003d1.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":20,"id":"1af94dfe_637b088d","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":30},"updated":"2016-03-17 15:54:38.000000000","message":"I think it should be noted in the commit message that this patch adds ironic-lib to requirements.txt","commit_id":"48f407c20ff02f939272e4c6e032104d05dbad71"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"f4a45ebd64baedb7726947854edf0fae171f2b42","unresolved":false,"context_lines":[{"line_number":22,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":23,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":24,"context_line":"WSME\u003e\u003d0.8 # MIT"},{"line_number":25,"context_line":"ironic-lib\u003e\u003d1.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":20,"id":"1af94dfe_46053a12","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":30},"in_reply_to":"1af94dfe_637b088d","updated":"2016-03-17 16:17:11.000000000","message":"Ok","commit_id":"48f407c20ff02f939272e4c6e032104d05dbad71"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1f05ae23e23c5856c9121421a908198dad304e6b","unresolved":false,"context_lines":[{"line_number":22,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":23,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":24,"context_line":"WSME\u003e\u003d0.8 # MIT"},{"line_number":25,"context_line":"ironic-lib\u003e\u003d1.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":25,"id":"1af94dfe_e74704ba","line":25,"updated":"2016-03-18 06:55:04.000000000","message":"could you please keep this list sorted?","commit_id":"c6a9b78844a836e88cf2a60ffd51837f1cfe82fa"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"1932d586c5fcbc55b5213e6f067425cc5b874387","unresolved":false,"context_lines":[{"line_number":22,"context_line":"six\u003e\u003d1.9.0 # MIT"},{"line_number":23,"context_line":"stevedore\u003e\u003d1.5.0 # Apache-2.0"},{"line_number":24,"context_line":"WSME\u003e\u003d0.8 # MIT"},{"line_number":25,"context_line":"ironic-lib\u003e\u003d1.1.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":26,"id":"1af94dfe_4a56b8ce","line":25,"updated":"2016-03-18 09:31:15.000000000","message":"nit: I\u0027d prefer this list to be sorted","commit_id":"944595a69d7268bdb89948fdd8f878750a2164f3"}]}
