)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"6bdab3576ac2c3285f308e8e6e761611533689eb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bcff3719_4f7a1e70","updated":"2022-12-26 20:30:51.000000000","message":"recheck failures not realted to this change","commit_id":"4f59a24183c6545ad868963ec9b70f3c21506135"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"35f9f111ce61bac7bee3c0321b7542ae4687b110","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"494619aa_f753bee2","updated":"2023-01-02 13:37:11.000000000","message":"recheck","commit_id":"456cf229575d2d355cbc93469863d71de5e8d614"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"5f43f9b497fe8fa3825383a13e074d89dfb0c4fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"9dd52ca9_ab8358f0","updated":"2023-01-03 08:23:00.000000000","message":"recheck vmedia is flaky, let\u0027s try to make it pass while we troubleshoot it","commit_id":"456cf229575d2d355cbc93469863d71de5e8d614"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"1a56d5c8851bafc0d680a23194063bfe0f9f31f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"50488fb5_39eb4985","updated":"2023-01-05 08:32:40.000000000","message":"need to update unit tests","commit_id":"5aa9487baa83f81c1e049e91b02d5da1e6384619"},{"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":"3bfbdda227e137ffe79151a202e6ec6309c94ba5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0a5a0092_66cb370a","updated":"2023-01-05 15:11:18.000000000","message":"I like it if it passes CI.","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"}],"ironic/drivers/modules/image_utils.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"7f949cf527ebbeeb4c8a218e53205970be90051a","unresolved":true,"context_lines":[{"line_number":218,"context_line":"                    LOG.debug("},{"line_number":219,"context_line":"                        \"Could not restore SELinux context on %(public_dir)s: \""},{"line_number":220,"context_line":"                        \"%(error)s\", {\u0027public_dir\u0027: public_dir,"},{"line_number":221,"context_line":"                                      \u0027error\u0027: exc})"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            except OSError as exc:"},{"line_number":224,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":5,"id":"d3cce196_c8cbdb33","line":221,"updated":"2023-01-04 14:12:32.000000000","message":"Could it not be argued that should this occur, that we should just fall back to the copy?","commit_id":"2e0e3779805397481ee0a5fdb1f9cc349cafe304"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"0ff72fdf1ceb1e8164f9aaa461532683b56a5c1e","unresolved":false,"context_lines":[{"line_number":218,"context_line":"                    LOG.debug("},{"line_number":219,"context_line":"                        \"Could not restore SELinux context on %(public_dir)s: \""},{"line_number":220,"context_line":"                        \"%(error)s\", {\u0027public_dir\u0027: public_dir,"},{"line_number":221,"context_line":"                                      \u0027error\u0027: exc})"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"            except OSError as exc:"},{"line_number":224,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":5,"id":"f4fa985e_ab2649b3","line":221,"in_reply_to":"d3cce196_c8cbdb33","updated":"2023-01-04 14:34:29.000000000","message":"Ack","commit_id":"2e0e3779805397481ee0a5fdb1f9cc349cafe304"},{"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":"df144a125e16bf55af76e37a4ceb92b2c00feeb2","unresolved":true,"context_lines":[{"line_number":223,"context_line":"                         \u0027published_file\u0027: published_file,"},{"line_number":224,"context_line":"                         \u0027error\u0027: exc})"},{"line_number":225,"context_line":"                    os.unlink(published_file)"},{"line_number":226,"context_line":"                    raise OSError"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            except OSError as exc:"},{"line_number":229,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":6,"id":"a7dfbf39_9d5362a2","line":226,"updated":"2023-01-04 15:42:15.000000000","message":"This is not OK -- this will break hard on any system that doesn\u0027t have selinux utilities installed. We cannot add a hard dependency on SELinux to our ramdisk.","commit_id":"7c9ec1676e4085558a074b790851419550c73e55"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"d35b608ebc4fea0f9ed6eb3af8222b382daa8935","unresolved":true,"context_lines":[{"line_number":223,"context_line":"                         \u0027published_file\u0027: published_file,"},{"line_number":224,"context_line":"                         \u0027error\u0027: exc})"},{"line_number":225,"context_line":"                    os.unlink(published_file)"},{"line_number":226,"context_line":"                    raise OSError"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            except OSError as exc:"},{"line_number":229,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":6,"id":"9ef99661_121f8fb8","line":226,"in_reply_to":"7ba6c71c_2c801efb","updated":"2023-01-04 16:50:44.000000000","message":"alright, will do that","commit_id":"7c9ec1676e4085558a074b790851419550c73e55"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"82868dae63246d94d25b1b281d89d8c435f16782","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                         \u0027published_file\u0027: published_file,"},{"line_number":224,"context_line":"                         \u0027error\u0027: exc})"},{"line_number":225,"context_line":"                    os.unlink(published_file)"},{"line_number":226,"context_line":"                    raise OSError"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            except OSError as exc:"},{"line_number":229,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":6,"id":"bea07939_84f2e9a5","line":226,"in_reply_to":"9ef99661_121f8fb8","updated":"2023-01-05 11:22:56.000000000","message":"Done","commit_id":"7c9ec1676e4085558a074b790851419550c73e55"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"ee450e754c92a60f3b4ef23be8bd4d338af9f951","unresolved":true,"context_lines":[{"line_number":223,"context_line":"                         \u0027published_file\u0027: published_file,"},{"line_number":224,"context_line":"                         \u0027error\u0027: exc})"},{"line_number":225,"context_line":"                    os.unlink(published_file)"},{"line_number":226,"context_line":"                    raise OSError"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            except OSError as exc:"},{"line_number":229,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":6,"id":"f45b1716_f2369cb1","line":226,"in_reply_to":"a7dfbf39_9d5362a2","updated":"2023-01-04 16:39:17.000000000","message":"it won\u0027t break, it will fallback to the copy instead of the hardlink","commit_id":"7c9ec1676e4085558a074b790851419550c73e55"},{"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":"c4af53787419c133fddec1598edad91739a289a5","unresolved":true,"context_lines":[{"line_number":223,"context_line":"                         \u0027published_file\u0027: published_file,"},{"line_number":224,"context_line":"                         \u0027error\u0027: exc})"},{"line_number":225,"context_line":"                    os.unlink(published_file)"},{"line_number":226,"context_line":"                    raise OSError"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"            except OSError as exc:"},{"line_number":229,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":6,"id":"7ba6c71c_2c801efb","line":226,"in_reply_to":"f45b1716_f2369cb1","updated":"2023-01-04 16:42:12.000000000","message":"That\u0027s still a non-trivial performance loss for non-selinux (non-redhat) distributions. \n\nIs there a reason we can\u0027t look for restorecon, and don\u0027t call it at all if it doesn\u0027t exist (implying the machine is not using selinux at all)?","commit_id":"7c9ec1676e4085558a074b790851419550c73e55"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"509d9c4792936ddbd79ccb609efd1ae55173de0b","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                os.link(image_file, published_file)"},{"line_number":213,"context_line":"                os.chmod(image_file, self._file_permission)"},{"line_number":214,"context_line":"                restorecon_cmd \u003d \u0027/usr/sbin/restorecon\u0027"},{"line_number":215,"context_line":"                if os.path.exists(restorecon_cmd):"},{"line_number":216,"context_line":"                    try:"},{"line_number":217,"context_line":"                        utils.execute("},{"line_number":218,"context_line":"                            restorecon_cmd, \u0027-i\u0027, \u0027-R\u0027, \u0027v\u0027, public_dir)"}],"source_content_type":"text/x-python","patch_set":10,"id":"76dc2f13_dacde111","line":215,"updated":"2023-01-07 10:31:57.000000000","message":"Instead of hardcoding a path, you could catch FileNotFoundError from execute(\u0027restorecon\u0027)","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"331ce3b2fa683d57bc3bb874f479b1fbb2925f08","unresolved":false,"context_lines":[{"line_number":212,"context_line":"                os.link(image_file, published_file)"},{"line_number":213,"context_line":"                os.chmod(image_file, self._file_permission)"},{"line_number":214,"context_line":"                restorecon_cmd \u003d \u0027/usr/sbin/restorecon\u0027"},{"line_number":215,"context_line":"                if os.path.exists(restorecon_cmd):"},{"line_number":216,"context_line":"                    try:"},{"line_number":217,"context_line":"                        utils.execute("},{"line_number":218,"context_line":"                            restorecon_cmd, \u0027-i\u0027, \u0027-R\u0027, \u0027v\u0027, public_dir)"}],"source_content_type":"text/x-python","patch_set":10,"id":"8a0edda1_6290d60a","line":215,"in_reply_to":"2a6e80ef_bd307b8c","updated":"2023-01-09 15:08:26.000000000","message":"oh, I see, alright","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"ede938f45eab0834bd3d4416fc9918e37c95772a","unresolved":true,"context_lines":[{"line_number":212,"context_line":"                os.link(image_file, published_file)"},{"line_number":213,"context_line":"                os.chmod(image_file, self._file_permission)"},{"line_number":214,"context_line":"                restorecon_cmd \u003d \u0027/usr/sbin/restorecon\u0027"},{"line_number":215,"context_line":"                if os.path.exists(restorecon_cmd):"},{"line_number":216,"context_line":"                    try:"},{"line_number":217,"context_line":"                        utils.execute("},{"line_number":218,"context_line":"                            restorecon_cmd, \u0027-i\u0027, \u0027-R\u0027, \u0027v\u0027, public_dir)"}],"source_content_type":"text/x-python","patch_set":10,"id":"c1f0bcb0_d48232f1","line":215,"in_reply_to":"76dc2f13_dacde111","updated":"2023-01-09 09:49:48.000000000","message":"if we try to catch FileNotFoundError we exclude all operating systems without selinux to use the hardlink instead of the copy\nthis was discussed above with Jay as well, that\u0027s why I changed it","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"c9316645128366625741f3295991db12b6c348ef","unresolved":true,"context_lines":[{"line_number":212,"context_line":"                os.link(image_file, published_file)"},{"line_number":213,"context_line":"                os.chmod(image_file, self._file_permission)"},{"line_number":214,"context_line":"                restorecon_cmd \u003d \u0027/usr/sbin/restorecon\u0027"},{"line_number":215,"context_line":"                if os.path.exists(restorecon_cmd):"},{"line_number":216,"context_line":"                    try:"},{"line_number":217,"context_line":"                        utils.execute("},{"line_number":218,"context_line":"                            restorecon_cmd, \u0027-i\u0027, \u0027-R\u0027, \u0027v\u0027, public_dir)"}],"source_content_type":"text/x-python","patch_set":10,"id":"2a6e80ef_bd307b8c","line":215,"in_reply_to":"c1f0bcb0_d48232f1","updated":"2023-01-09 14:58:27.000000000","message":"That\u0027s not exactly what I mean. You could catch it before line 219 and just ignore/log, but not raise OSError.","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"509d9c4792936ddbd79ccb609efd1ae55173de0b","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                        LOG.debug("},{"line_number":221,"context_line":"                            \"Could not restore SELinux context on \""},{"line_number":222,"context_line":"                            \"%(public_dir)s, removing hardlink \""},{"line_number":223,"context_line":"                            \"%{published_file}s\\n\""},{"line_number":224,"context_line":"                            \"Error: %(error)s\","},{"line_number":225,"context_line":"                            {\u0027public_dir\u0027: public_dir,"},{"line_number":226,"context_line":"                             \u0027published_file\u0027: published_file,"}],"source_content_type":"text/x-python","patch_set":10,"id":"84e1c9c4_75ab28e3","line":223,"updated":"2023-01-07 10:31:57.000000000","message":"wrong brackets","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"ede938f45eab0834bd3d4416fc9918e37c95772a","unresolved":false,"context_lines":[{"line_number":220,"context_line":"                        LOG.debug("},{"line_number":221,"context_line":"                            \"Could not restore SELinux context on \""},{"line_number":222,"context_line":"                            \"%(public_dir)s, removing hardlink \""},{"line_number":223,"context_line":"                            \"%{published_file}s\\n\""},{"line_number":224,"context_line":"                            \"Error: %(error)s\","},{"line_number":225,"context_line":"                            {\u0027public_dir\u0027: public_dir,"},{"line_number":226,"context_line":"                             \u0027published_file\u0027: published_file,"}],"source_content_type":"text/x-python","patch_set":10,"id":"646d6dbe_8ef4604d","line":223,"in_reply_to":"84e1c9c4_75ab28e3","updated":"2023-01-09 09:49:48.000000000","message":"thanks!","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"509d9c4792936ddbd79ccb609efd1ae55173de0b","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                             \u0027published_file\u0027: published_file,"},{"line_number":227,"context_line":"                             \u0027error\u0027: exc})"},{"line_number":228,"context_line":"                        os.unlink(published_file)"},{"line_number":229,"context_line":"                        raise OSError"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"            except OSError as exc:"},{"line_number":232,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":10,"id":"3243a966_1e4db574","line":229,"updated":"2023-01-07 10:31:57.000000000","message":"This will produce a terrible error message below, could you add specifics? Maybe instead of logging on line 220, pass an error message so that it\u0027s logged on line 232","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"ede938f45eab0834bd3d4416fc9918e37c95772a","unresolved":false,"context_lines":[{"line_number":226,"context_line":"                             \u0027published_file\u0027: published_file,"},{"line_number":227,"context_line":"                             \u0027error\u0027: exc})"},{"line_number":228,"context_line":"                        os.unlink(published_file)"},{"line_number":229,"context_line":"                        raise OSError"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"            except OSError as exc:"},{"line_number":232,"context_line":"                LOG.debug("}],"source_content_type":"text/x-python","patch_set":10,"id":"3a032b92_d856880e","line":229,"in_reply_to":"3243a966_1e4db574","updated":"2023-01-09 09:49:48.000000000","message":"right, will do","commit_id":"db581d1ed8540704267bf150f0ee9ce2823c9e1e"}]}
