)]}'
{"ironic_python_agent/extensions/image.py":[{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"cdc1a8393da08afc83660ea3972660154808ddd7","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # Install grub"},{"line_number":109,"context_line":"        # Add /bin to PATH variable as grub requires it to find efibootmgr"},{"line_number":110,"context_line":"        # when running in uefi boot mode."},{"line_number":111,"context_line":"        utils.execute(\u0027PATH\u003d$PATH:/bin chroot %(path)s /bin/bash -c \u0027"},{"line_number":112,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-install %(dev)s\"\u0027 %"},{"line_number":113,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name, \u0027dev\u0027: device},"},{"line_number":114,"context_line":"                      shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_3e11ef5d","line":111,"updated":"2015-03-17 15:14:01.000000000","message":"Nit: setting path here seem out of place, as all but chroot command seem to have a full path.","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"d6c7e30ed5169d9e3bd27308e1215ab60155fb00","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # Install grub"},{"line_number":109,"context_line":"        # Add /bin to PATH variable as grub requires it to find efibootmgr"},{"line_number":110,"context_line":"        # when running in uefi boot mode."},{"line_number":111,"context_line":"        utils.execute(\u0027PATH\u003d$PATH:/bin chroot %(path)s /bin/bash -c \u0027"},{"line_number":112,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-install %(dev)s\"\u0027 %"},{"line_number":113,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name, \u0027dev\u0027: device},"},{"line_number":114,"context_line":"                      shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_e4026a71","line":111,"in_reply_to":"9a80dd14_3e11ef5d","updated":"2015-03-17 15:54:52.000000000","message":"This won\u0027t work as expected; execute() takes environment variables as a separate argument. \n\nhttps://github.com/openstack/oslo.concurrency/blob/master/oslo_concurrency/processutils.py#L110-112","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"260e99678311ad9ca3ee9b26f19ae56e36471ccc","unresolved":false,"context_lines":[{"line_number":108,"context_line":"        # Install grub"},{"line_number":109,"context_line":"        # Add /bin to PATH variable as grub requires it to find efibootmgr"},{"line_number":110,"context_line":"        # when running in uefi boot mode."},{"line_number":111,"context_line":"        utils.execute(\u0027PATH\u003d$PATH:/bin chroot %(path)s /bin/bash -c \u0027"},{"line_number":112,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-install %(dev)s\"\u0027 %"},{"line_number":113,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name, \u0027dev\u0027: device},"},{"line_number":114,"context_line":"                      shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_81e27bff","line":111,"in_reply_to":"9a80dd14_e4026a71","updated":"2015-03-17 16:32:39.000000000","message":"Chris, the path setting was required because grub uses it to find efibootmgr when running in uefi mode.\n\nJim, this actually works.\n\nhttp://paste.openstack.org/show/192820/ (ipa in debug log, see lines 75,82).  Actually if the command didn\u0027t run with /bin added to the path it would have failed. So it actually ran :)\n\nNow coming to the environment variables, only thing I thought was I needed to get the current environment variable and then append /bin and then provide that as the key.  I can do that, but since this works it seemed a lot simpler.  Let me know if you like me to change this.","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"cdc1a8393da08afc83660ea3972660154808ddd7","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                      shell\u003dTrue)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # Generate the grub configuration file"},{"line_number":117,"context_line":"        utils.execute(\u0027PATH\u003d$PATH:/bin chroot %(path)s /bin/bash -c \u0027"},{"line_number":118,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-mkconfig -o \u0027"},{"line_number":119,"context_line":"                      \u0027/boot/%(bin)s/grub.cfg\"\u0027 %"},{"line_number":120,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name}, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_7e0a8728","line":117,"updated":"2015-03-17 15:14:01.000000000","message":"ditto","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"d6c7e30ed5169d9e3bd27308e1215ab60155fb00","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                      shell\u003dTrue)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # Generate the grub configuration file"},{"line_number":117,"context_line":"        utils.execute(\u0027PATH\u003d$PATH:/bin chroot %(path)s /bin/bash -c \u0027"},{"line_number":118,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-mkconfig -o \u0027"},{"line_number":119,"context_line":"                      \u0027/boot/%(bin)s/grub.cfg\"\u0027 %"},{"line_number":120,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name}, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_af75abfb","line":117,"in_reply_to":"9a80dd14_7e0a8728","updated":"2015-03-17 15:54:52.000000000","message":"Ditto","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"260e99678311ad9ca3ee9b26f19ae56e36471ccc","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                      shell\u003dTrue)"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        # Generate the grub configuration file"},{"line_number":117,"context_line":"        utils.execute(\u0027PATH\u003d$PATH:/bin chroot %(path)s /bin/bash -c \u0027"},{"line_number":118,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-mkconfig -o \u0027"},{"line_number":119,"context_line":"                      \u0027/boot/%(bin)s/grub.cfg\"\u0027 %"},{"line_number":120,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name}, shell\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_c1ec73f6","line":117,"in_reply_to":"9a80dd14_af75abfb","updated":"2015-03-17 16:32:39.000000000","message":"ditto as above.","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"d6c7e30ed5169d9e3bd27308e1215ab60155fb00","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        # the changes were written back to the failsystem."},{"line_number":138,"context_line":"        if efi_partition:"},{"line_number":139,"context_line":"            utils.execute(\u0027umount\u0027, efi_partition_mount_point, attempts\u003d3,"},{"line_number":140,"context_line":"                          delay_on_retry\u003dTrue)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        for fs in BIND_MOUNTS:"},{"line_number":143,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_cfe01f99","line":140,"updated":"2015-03-17 15:54:52.000000000","message":"Should this be wrapped in a try/except?","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"260e99678311ad9ca3ee9b26f19ae56e36471ccc","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        # the changes were written back to the failsystem."},{"line_number":138,"context_line":"        if efi_partition:"},{"line_number":139,"context_line":"            utils.execute(\u0027umount\u0027, efi_partition_mount_point, attempts\u003d3,"},{"line_number":140,"context_line":"                          delay_on_retry\u003dTrue)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        for fs in BIND_MOUNTS:"},{"line_number":143,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_c1c39355","line":140,"in_reply_to":"9a80dd14_cfe01f99","updated":"2015-03-17 16:32:39.000000000","message":"Done","commit_id":"abf0c4a98c3c1b37a2b0e54449f1c816f2e3cb7d"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5de695e6803528132506227435b796f640e17af","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _get_partition(device, uuid):"},{"line_number":38,"context_line":"    \"\"\"Find the root partition of a given device.\"\"\""},{"line_number":39,"context_line":"    LOG.debug(\"Find the partition %(uuid)s on device %(dev)s\","},{"line_number":40,"context_line":"              {\u0027dev\u0027: device, \u0027uuid\u0027: uuid})"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_c32ab32e","line":38,"updated":"2015-03-17 18:17:53.000000000","message":"nit: s/root //","commit_id":"e4cbb5dd44366bf57c96b1e2dcd3c44724b4b7eb"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"7b047f4621b897050e8e87d57221b62b51beec7c","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"def _get_partition(device, uuid):"},{"line_number":38,"context_line":"    \"\"\"Find the root partition of a given device.\"\"\""},{"line_number":39,"context_line":"    LOG.debug(\"Find the partition %(uuid)s on device %(dev)s\","},{"line_number":40,"context_line":"              {\u0027dev\u0027: device, \u0027uuid\u0027: uuid})"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_430a4328","line":38,"in_reply_to":"9a80dd14_c32ab32e","updated":"2015-03-17 18:21:56.000000000","message":"Done","commit_id":"e4cbb5dd44366bf57c96b1e2dcd3c44724b4b7eb"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5de695e6803528132506227435b796f640e17af","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        umount_binds_fail \u003d False"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # If umount fails for efi partition, then we cannot be sure that all"},{"line_number":141,"context_line":"        # the changes were written back to the failsystem."},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            if efi_partition:"},{"line_number":144,"context_line":"                utils.execute(\u0027umount\u0027, efi_partition_mount_point, attempts\u003d3,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_03b3eb0a","line":141,"updated":"2015-03-17 18:17:53.000000000","message":"Maybe a freudian thing here ;)\n\ns/failsystem/filessystem/","commit_id":"e4cbb5dd44366bf57c96b1e2dcd3c44724b4b7eb"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"7b047f4621b897050e8e87d57221b62b51beec7c","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        umount_binds_fail \u003d False"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        # If umount fails for efi partition, then we cannot be sure that all"},{"line_number":141,"context_line":"        # the changes were written back to the failsystem."},{"line_number":142,"context_line":"        try:"},{"line_number":143,"context_line":"            if efi_partition:"},{"line_number":144,"context_line":"                utils.execute(\u0027umount\u0027, efi_partition_mount_point, attempts\u003d3,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_a32a1f8e","line":141,"in_reply_to":"9a80dd14_03b3eb0a","updated":"2015-03-17 18:21:56.000000000","message":"Done","commit_id":"e4cbb5dd44366bf57c96b1e2dcd3c44724b4b7eb"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"b5de695e6803528132506227435b796f640e17af","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                              delay_on_retry\u003dTrue)"},{"line_number":146,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":147,"context_line":"            error_msg \u003d (\u0027Umounting efi system partition failed. \u0027"},{"line_number":148,"context_line":"                         \u0027Error: %s\u0027 % e)"},{"line_number":149,"context_line":"            LOG.error(error_msg)"},{"line_number":150,"context_line":"            raise errors.CommandExecutionError(error_msg)"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_a344dfb7","line":148,"updated":"2015-03-17 18:17:53.000000000","message":"the other error msg above mentions \u0027Attempted 3 times.\u0027 Don\u0027t know if we want that here too.","commit_id":"e4cbb5dd44366bf57c96b1e2dcd3c44724b4b7eb"},{"author":{"_account_id":9315,"name":"ramesh","email":"rameshg87@gmail.com","username":"rameshg87"},"change_message_id":"7b047f4621b897050e8e87d57221b62b51beec7c","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                              delay_on_retry\u003dTrue)"},{"line_number":146,"context_line":"        except processutils.ProcessExecutionError as e:"},{"line_number":147,"context_line":"            error_msg \u003d (\u0027Umounting efi system partition failed. \u0027"},{"line_number":148,"context_line":"                         \u0027Error: %s\u0027 % e)"},{"line_number":149,"context_line":"            LOG.error(error_msg)"},{"line_number":150,"context_line":"            raise errors.CommandExecutionError(error_msg)"},{"line_number":151,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_e31b377e","line":148,"in_reply_to":"9a80dd14_a344dfb7","updated":"2015-03-17 18:21:56.000000000","message":"Done","commit_id":"e4cbb5dd44366bf57c96b1e2dcd3c44724b4b7eb"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"3e5bd9b3fd4a1abb2f496a1a497ffadbce65ed74","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        utils.execute(\u0027chroot %(path)s /bin/bash -c \u0027"},{"line_number":115,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-install %(dev)s\"\u0027 %"},{"line_number":116,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name, \u0027dev\u0027: device},"},{"line_number":117,"context_line":"                      shell\u003dTrue, env_variables\u003d{\u0027PATH\u0027: path_variable})"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        # Generate the grub configuration file"},{"line_number":120,"context_line":"        utils.execute(\u0027chroot %(path)s /bin/bash -c \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_9208022a","line":117,"updated":"2015-03-17 18:41:04.000000000","message":"Would like to remove the need for a shell here, But not as part of this patch. Just making note of it.","commit_id":"ac4e9901d688a6efd39ddc9b20c724e6b24082bf"},{"author":{"_account_id":5805,"name":"Chris Krelle","email":"nobodycam@gmail.com","username":"nobodycam"},"change_message_id":"3e5bd9b3fd4a1abb2f496a1a497ffadbce65ed74","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                      \u0027\"/usr/sbin/%(bin)s-mkconfig -o \u0027"},{"line_number":122,"context_line":"                      \u0027/boot/%(bin)s/grub.cfg\"\u0027 %"},{"line_number":123,"context_line":"                      {\u0027path\u0027: path, \u0027bin\u0027: binary_name}, shell\u003dTrue,"},{"line_number":124,"context_line":"                      env_variables\u003d{\u0027PATH\u0027: path_variable})"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        LOG.info(\"GRUB2 successfully installed on %s\", device)"},{"line_number":127,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9a80dd14_d2119a54","line":124,"updated":"2015-03-17 18:41:04.000000000","message":"ditto","commit_id":"ac4e9901d688a6efd39ddc9b20c724e6b24082bf"}]}
