)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f4e2130476d6d2eaec7e3f78f942825686f8c0d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"546a349f_efcb4ddf","updated":"2022-07-11 16:19:34.000000000","message":"Some suggestions inline for the release note.  Code LGTM, and as far as I can tell, you\u0027ve found all the appropriate places to change.\n","commit_id":"497097b72e9791e576f242d230cb9843cb18e961"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c889aee4f1ae9e2ce5764408a87ccf52a17a762e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2c8504fd_5554745d","updated":"2022-07-13 20:29:27.000000000","message":"I\u0027m +2 on this after Eric\u0027s issue is addressed.  With the failsafe for Zed, if the new config option isn\u0027t populated and the consuming service neglects to call os_brick.setup(), you get the current behavior (so there won\u0027t be a regression).\n\nMy only concern is that right now the only documentation about os_brick.setup() is in the commit message and the release note.  (And in Gorka\u0027s patches for each of the services!)  I think maybe a \"Synchronization\" section in the docs saying that os-brick uses file-based locking and how the default value for [os_brick]/lock_path is determined and that the consuming service needs to call os_brick.setup() could be added as a followup patch.  Or that might be overkill.  Let\u0027s see what other reviewers think.","commit_id":"4cea494b53082130542b5953175b13e5aca25ea9"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"d523a270d8fa7e3410d893ec5b7fe925ca517837","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"deb75131_0ba38a27","updated":"2022-07-13 19:57:37.000000000","message":"run Pure Storage CI","commit_id":"4cea494b53082130542b5953175b13e5aca25ea9"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"815ecb9504d7a865e7ee3b48cd948abbf7521c86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"35ae6a36_c2f5440d","in_reply_to":"2c8504fd_5554745d","updated":"2022-07-14 11:09:11.000000000","message":"The ask is reasonable, though probably won\u0027t make that much of a difference, considering that os-brick\u0027s documentation is so poor that it\u0027s mostly useless.\n\nI\u0027ll add it so that at least we don\u0027t incur in more documentation debt.","commit_id":"4cea494b53082130542b5953175b13e5aca25ea9"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"43bfee2a2fe88f537ca297f2cedb1a62bbfa935b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"2f5db36d_7fd40ba8","updated":"2022-07-14 21:48:41.000000000","message":"Caught a typo when I was testing genconfig on the cinder patch.","commit_id":"f8fd2cf3fa35df0ac996eba5db2bb9dc9d169fe6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"b73c04ddb41f9e74c2d29e4670762b6e496974a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"244d987b_e50ed516","updated":"2022-07-14 18:44:53.000000000","message":"Thanks for adding the documentation!  LGTM.","commit_id":"f8fd2cf3fa35df0ac996eba5db2bb9dc9d169fe6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c53777b6b9a086ce79b7bcdedc8e5b3b8394fae8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"70eb8668_544feaf3","updated":"2022-07-15 08:54:01.000000000","message":"Few questions unrelated to the patch but a -1 for the same reason as in previous patchset, no copyright header in os_brick/opts.py file.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"9df2c6c92ad926caa04a0ed5e01121a07213ace4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e6adfeca_dd224e2d","updated":"2022-07-14 21:52:17.000000000","message":"Fixed a typo in a help string, so carrying over my +2 from the previous patch set.  Zuul should have no objections.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"954f61f669173053f4bdf3bcb98c30e42b0dac86","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f4eed4e4_c270427a","updated":"2022-07-15 12:12:00.000000000","message":"Changes since last review LGTM.","commit_id":"b72c034885e76a258cad0b3b4e2a79eadc424480"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6462eaa8ca7cf91961a7e15c129075e6bde3cab8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"67b85332_ef5cf200","updated":"2022-07-15 09:22:49.000000000","message":"minor change: added the copyright line\nLGTM.","commit_id":"b72c034885e76a258cad0b3b4e2a79eadc424480"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"04b6f325ae6b9890d7d71b53b8e78f189afd0cf4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0769beac_f2348ffc","updated":"2022-07-15 14:40:51.000000000","message":"recheck\n\nunrelated identity tests failure\n\ntempest.api.identity.admin.v3.test_projects.ProjectsTestJSON","commit_id":"b72c034885e76a258cad0b3b4e2a79eadc424480"}],"os_brick/__init__.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"d1952e29ace496ba96df39cea03f94481918a6d0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"ab41e89b_a3e93561","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"updated":"2022-07-13 19:10:06.000000000","message":"There\u0027s no copyright info listed here, so this line shouldn\u0027t be here.","commit_id":"4cea494b53082130542b5953175b13e5aca25ea9"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"815ecb9504d7a865e7ee3b48cd948abbf7521c86","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":3,"id":"6fb032fc_cf57f072","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"in_reply_to":"ab41e89b_a3e93561","updated":"2022-07-14 11:09:11.000000000","message":"Done","commit_id":"4cea494b53082130542b5953175b13e5aca25ea9"}],"os_brick/initiator/connectors/lightos.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c53777b6b9a086ce79b7bcdedc8e5b3b8394fae8","unresolved":true,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    @utils.trace"},{"line_number":257,"context_line":"    @utils.connect_volume_prepare_result"},{"line_number":258,"context_line":"    @base.synchronized(\u0027volume_op\u0027)"},{"line_number":259,"context_line":"    def connect_volume(self, connection_properties):"},{"line_number":260,"context_line":"        \"\"\"Discover and attach the volume."},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"8972c8bd_c55fa254","line":258,"range":{"start_line":258,"start_character":23,"end_line":258,"end_character":34},"updated":"2022-07-15 08:54:01.000000000","message":"why no external\u003dTrue here?","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"8caba6657bcc455370320625a613add8bfcf7104","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    @utils.trace"},{"line_number":257,"context_line":"    @utils.connect_volume_prepare_result"},{"line_number":258,"context_line":"    @base.synchronized(\u0027volume_op\u0027)"},{"line_number":259,"context_line":"    def connect_volume(self, connection_properties):"},{"line_number":260,"context_line":"        \"\"\"Discover and attach the volume."},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"02992519_786e99e5","line":258,"range":{"start_line":258,"start_character":23,"end_line":258,"end_character":34},"in_reply_to":"31dc555b_6f0052db","updated":"2022-07-15 09:32:16.000000000","message":"Yes, as mentioned in my last comment, these are unrelated but caught my vision so flagged here.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"8dca2c1391cf98deebeb4b6d142e53b70465a858","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":"    @utils.trace"},{"line_number":257,"context_line":"    @utils.connect_volume_prepare_result"},{"line_number":258,"context_line":"    @base.synchronized(\u0027volume_op\u0027)"},{"line_number":259,"context_line":"    def connect_volume(self, connection_properties):"},{"line_number":260,"context_line":"        \"\"\"Discover and attach the volume."},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"31dc555b_6f0052db","line":258,"range":{"start_line":258,"start_character":23,"end_line":258,"end_character":34},"in_reply_to":"8972c8bd_c55fa254","updated":"2022-07-15 09:27:04.000000000","message":"I don´t know anything about this connector, though you are probably right and this is not correct.  In this patch I\u0027m not going to touch how the locks are being used though.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"}],"os_brick/initiator/connectors/scaleio.py":[{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c53777b6b9a086ce79b7bcdedc8e5b3b8394fae8","unresolved":true,"context_lines":[{"line_number":526,"context_line":"                LOG.error(msg)"},{"line_number":527,"context_line":"                raise exception.BrickException(message\u003dmsg)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    @utils.connect_volume_undo_prepare_result"},{"line_number":530,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":531,"context_line":"        \"\"\"Update the local kernel\u0027s size information."},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"95e89c0d_6974e825","line":529,"range":{"start_line":529,"start_character":4,"end_line":529,"end_character":45},"updated":"2022-07-15 08:54:01.000000000","message":"no lock decorator here","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"8caba6657bcc455370320625a613add8bfcf7104","unresolved":false,"context_lines":[{"line_number":526,"context_line":"                LOG.error(msg)"},{"line_number":527,"context_line":"                raise exception.BrickException(message\u003dmsg)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    @utils.connect_volume_undo_prepare_result"},{"line_number":530,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":531,"context_line":"        \"\"\"Update the local kernel\u0027s size information."},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"55a7e00d_e9e145a1","line":529,"range":{"start_line":529,"start_character":4,"end_line":529,"end_character":45},"in_reply_to":"8f430aea_49cb0ce4","updated":"2022-07-15 09:32:16.000000000","message":"I thought all volume related operations like connect, disconnect, extend are required to have locks, though it could be my personal thought and not from any documentation.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"8dca2c1391cf98deebeb4b6d142e53b70465a858","unresolved":false,"context_lines":[{"line_number":526,"context_line":"                LOG.error(msg)"},{"line_number":527,"context_line":"                raise exception.BrickException(message\u003dmsg)"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"    @utils.connect_volume_undo_prepare_result"},{"line_number":530,"context_line":"    def extend_volume(self, connection_properties):"},{"line_number":531,"context_line":"        \"\"\"Update the local kernel\u0027s size information."},{"line_number":532,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"8f430aea_49cb0ce4","line":529,"range":{"start_line":529,"start_character":4,"end_line":529,"end_character":45},"in_reply_to":"95e89c0d_6974e825","updated":"2022-07-15 09:27:04.000000000","message":"It\u0027s probably not needed, but I don\u0027t really know how the ScaleIO connector works.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"}],"os_brick/opts.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"43bfee2a2fe88f537ca297f2cedb1a62bbfa935b","unresolved":true,"context_lines":[{"line_number":19,"context_line":"               default\u003dNone,  # Set by set_defaults method below on setup"},{"line_number":20,"context_line":"               help\u003d\u0027Directory to use for os-brick lock files. Defaults to \u0027"},{"line_number":21,"context_line":"                    \u0027oslo_concurrency.lock_path which is a sensible default \u0027"},{"line_number":22,"context_line":"                    \u0027for compute notes, but not for HCI deployments or \u0027"},{"line_number":23,"context_line":"                    \u0027controllers where Glance uses Cinder as a backend, as \u0027"},{"line_number":24,"context_line":"                    \u0027locks should use the same directory.\u0027),"},{"line_number":25,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"dce41b59_b1d0825c","line":22,"range":{"start_line":22,"start_character":33,"end_line":22,"end_character":38},"updated":"2022-07-14 21:48:41.000000000","message":"nodes","commit_id":"f8fd2cf3fa35df0ac996eba5db2bb9dc9d169fe6"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c53777b6b9a086ce79b7bcdedc8e5b3b8394fae8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"cf6fca5b_a8753c10","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"updated":"2022-07-15 08:54:01.000000000","message":"Requires copyright statement here as well\n\n# Copyright (c) 2022, Red Hat, Inc.","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"d279fe93f63ee1f8d7b1d89de1c496a88c263cb8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"59e6122a_449b47fa","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"in_reply_to":"75a82b46_9873eacb","updated":"2022-07-15 12:11:11.000000000","message":"Thanks for fixing it, I had forgotten!","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"6462eaa8ca7cf91961a7e15c129075e6bde3cab8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":5,"id":"75a82b46_9873eacb","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"in_reply_to":"cf6fca5b_a8753c10","updated":"2022-07-15 09:22:49.000000000","message":"Done","commit_id":"09b4cb08ac53e4d8e2f951a016596b58878953e1"}],"releasenotes/notes/lock_path-c1c58a253391b41c.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f4e2130476d6d2eaec7e3f78f942825686f8c0d2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Specific location for os-brick file locks using the ``lock_path``"},{"line_number":5,"context_line":"    configuration option in the ``os_brick`` configuration group.  Requires"},{"line_number":6,"context_line":"    service to call ``os_brick.setup`` method after service configuration"},{"line_number":7,"context_line":"    options have been called."},{"line_number":8,"context_line":"upgrade:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    To use os-brick specific file lock location the ``os_brick.setup`` method"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"d6a095d5_ef802120","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":29},"updated":"2022-07-11 16:19:34.000000000","message":"How about:\n\n  Specific location for os-brick file locks using the ``lock_path`` configuration option in the ``os_brick`` configuration group.  Previously, os-brick used the consuming service\u0027s lock_path for its locks, but there are some deployment configurations (for example, Nova and Cinder collocated on the same host) where this would result in anomalous behavior.  Default is to use the consuming service\u0027s lock_path.\n\n  This change requires a consuming service to call the ``os_brick.setup`` method after service configuration options have been called.","commit_id":"497097b72e9791e576f242d230cb9843cb18e961"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ad1b54249d4353c7b23aa295ca56c961c056bdc2","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Specific location for os-brick file locks using the ``lock_path``"},{"line_number":5,"context_line":"    configuration option in the ``os_brick`` configuration group.  Requires"},{"line_number":6,"context_line":"    service to call ``os_brick.setup`` method after service configuration"},{"line_number":7,"context_line":"    options have been called."},{"line_number":8,"context_line":"upgrade:"},{"line_number":9,"context_line":"  - |"},{"line_number":10,"context_line":"    To use os-brick specific file lock location the ``os_brick.setup`` method"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"1f6472d2_d8c584e7","line":7,"range":{"start_line":4,"start_character":0,"end_line":7,"end_character":29},"in_reply_to":"d6a095d5_ef802120","updated":"2022-07-12 09:23:57.000000000","message":"Sounds great!","commit_id":"497097b72e9791e576f242d230cb9843cb18e961"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f4e2130476d6d2eaec7e3f78f942825686f8c0d2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"308b6551_8868c164","line":12,"range":{"start_line":10,"start_character":3,"end_line":12,"end_character":0},"updated":"2022-07-11 16:19:34.000000000","message":"How about:\n\n  To use the os-brick specific file lock location introduced in this release, an external service using the library must call the ``os_brick.setup`` method.\n  \n(just to make it clear that this isn\u0027t an operator action we\u0027re talking about).","commit_id":"497097b72e9791e576f242d230cb9843cb18e961"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"ad1b54249d4353c7b23aa295ca56c961c056bdc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"295aa461_723849d1","line":12,"range":{"start_line":10,"start_character":3,"end_line":12,"end_character":0},"in_reply_to":"308b6551_8868c164","updated":"2022-07-12 09:23:57.000000000","message":"Done","commit_id":"497097b72e9791e576f242d230cb9843cb18e961"}]}
