)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"f51542a382e7bb81528ce9617faeff038babea6b","unresolved":true,"context_lines":[{"line_number":9,"context_line":"This option has been deprecated since Rocky."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8edc957ad50ec28d80a06e76912f4226cea53562"},{"line_number":12,"context_line":"Implements: bp deprecate-owner_is_tenant"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3587ca03_23af5725","line":12,"range":{"start_line":12,"start_character":15,"end_line":12,"end_character":40},"updated":"2021-02-11 06:01:45.000000000","message":"Either invalid reference or blueprint not exists","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5421ad09c4bd6621dd530680895dcf437be4671f","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This option has been deprecated since Rocky."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I8edc957ad50ec28d80a06e76912f4226cea53562"},{"line_number":12,"context_line":"Implements: bp deprecate-owner_is_tenant"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"10c35c09_e9164d1b","line":12,"range":{"start_line":12,"start_character":15,"end_line":12,"end_character":40},"in_reply_to":"3587ca03_23af5725","updated":"2021-02-11 20:48:01.000000000","message":"Oh you\u0027re right, there was no bp :) Oops.","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"}],"api-ref/source/v2/images-sharing-v2.inc":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"69c8264a676fdbeb8af9ffca767e1b88fc4a6074","unresolved":true,"context_lines":[{"line_number":8,"context_line":"Images may be shared among projects by creating *members* on the image.  Image"},{"line_number":9,"context_line":"members have read-only privileges on the image.  The following calls allow you"},{"line_number":10,"context_line":"to create, list, update, and delete image members."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. note::"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"   An image member is an identifier for a consumer with whom the image is"},{"line_number":15,"context_line":"   shared.  In most OpenStack clouds, where the value of the ``owner`` property"},{"line_number":16,"context_line":"   of an image is a project ID, the appropriate identifier to use for the"},{"line_number":17,"context_line":"   ``member_id`` is the consumer\u0027s project ID (also known as the \"tenant ID\")."},{"line_number":18,"context_line":"   In these clouds, image sharing is project-to-project, and all the individual"},{"line_number":19,"context_line":"   users in the consuming project have access to the image."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"   * Some deployments may choose instead to have the identifier of the user who"},{"line_number":22,"context_line":"     created the image as the value of the ``owner`` property.  In such clouds,"},{"line_number":23,"context_line":"     the appropriate identifier to use for the ``member_id`` is the user ID of"},{"line_number":24,"context_line":"     the person with whom you want to share the image.  In these clouds, image"},{"line_number":25,"context_line":"     sharing is user-to-user."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"   * Note that you, as an image owner, do not have a choice about what value to"},{"line_number":28,"context_line":"     use for the ``member_id``.  If, like most OpenStack clouds, your cloud"},{"line_number":29,"context_line":"     uses the tenant ID for the image ``owner``, sharing will not work if you"},{"line_number":30,"context_line":"     use a user ID as the ``member_id`` of an image (and vice-versa)."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   * Please consult your cloud\u0027s local documentation for details."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"When an image is shared, the member is given immediate access to the image."},{"line_number":35,"context_line":"In order to prevent spamming other users\u0027 image lists, a shared image does not"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"2258ada1_10ca972d","line":32,"range":{"start_line":11,"start_character":0,"end_line":32,"end_character":65},"updated":"2020-12-07 23:59:45.000000000","message":"This could use a rewrite.  I guess if we\u0027re confident that no one is using owner_is_tenant\u003dFalse, there\u0027s no need to mention that the owner could be a user_id.\n\nI suggest this:\n\n  .. note::\n  \n     An image member is an identifier for a consumer with whom the image is\n     shared.  In OpenStack clouds, where the value of the ``owner`` property\n     of an image is a project ID, the appropriate identifier to use for the\n     ``member_id`` is the consumer\u0027s project ID (which used to be called the\n     \"tenant ID\").\n  \n     * Image sharing is project-to-project.  Thus *all the individual users\n       in the consuming project have access to the image*.  You cannot share\n       an image with only one specific user in the target project.\n\nI think we should leave out the other 2 bullet points.  The problem is that if a user does supply a user_id instead of a project_id, glance will return a 200 because it doesn\u0027t validate the member_id to make sure it\u0027s an existing project ID.  Instead of warning the user about this, I think we should finally fix https://bugs.launchpad.net/glance/+bug/1308484 and validate that the member_id in the request is a tenant_id.  Rajat added code to do this for a cinder feature he worked on in Victoria [0]; it may be possible to do that with glance, too.  But if we don\u0027t prioritize that bug, we should probably warn about it here.\n\n[0] https://opendev.org/openstack/cinder/src/commit/95d00bd7a6658e2cd3066e5ae77d3a9a63bc0c8f/cinder/api/v3/default_types.py#L40","commit_id":"c68d139d1f465c448b46961bec4524e0077c3209"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"cf5a3be2d112c45d5b3b2b6ea8c13a53fadd21ee","unresolved":false,"context_lines":[{"line_number":8,"context_line":"Images may be shared among projects by creating *members* on the image.  Image"},{"line_number":9,"context_line":"members have read-only privileges on the image.  The following calls allow you"},{"line_number":10,"context_line":"to create, list, update, and delete image members."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. note::"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"   An image member is an identifier for a consumer with whom the image is"},{"line_number":15,"context_line":"   shared.  In most OpenStack clouds, where the value of the ``owner`` property"},{"line_number":16,"context_line":"   of an image is a project ID, the appropriate identifier to use for the"},{"line_number":17,"context_line":"   ``member_id`` is the consumer\u0027s project ID (also known as the \"tenant ID\")."},{"line_number":18,"context_line":"   In these clouds, image sharing is project-to-project, and all the individual"},{"line_number":19,"context_line":"   users in the consuming project have access to the image."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"   * Some deployments may choose instead to have the identifier of the user who"},{"line_number":22,"context_line":"     created the image as the value of the ``owner`` property.  In such clouds,"},{"line_number":23,"context_line":"     the appropriate identifier to use for the ``member_id`` is the user ID of"},{"line_number":24,"context_line":"     the person with whom you want to share the image.  In these clouds, image"},{"line_number":25,"context_line":"     sharing is user-to-user."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"   * Note that you, as an image owner, do not have a choice about what value to"},{"line_number":28,"context_line":"     use for the ``member_id``.  If, like most OpenStack clouds, your cloud"},{"line_number":29,"context_line":"     uses the tenant ID for the image ``owner``, sharing will not work if you"},{"line_number":30,"context_line":"     use a user ID as the ``member_id`` of an image (and vice-versa)."},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"   * Please consult your cloud\u0027s local documentation for details."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"When an image is shared, the member is given immediate access to the image."},{"line_number":35,"context_line":"In order to prevent spamming other users\u0027 image lists, a shared image does not"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"b19e7bb5_72d2f817","line":32,"range":{"start_line":11,"start_character":0,"end_line":32,"end_character":65},"in_reply_to":"2258ada1_10ca972d","updated":"2020-12-10 02:58:56.000000000","message":"Ack","commit_id":"c68d139d1f465c448b46961bec4524e0077c3209"}],"doc/source/user/glanceapi.rst":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d0560cc360c5a2d306fcba8c90f8ea96186b4bbe","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"  This header is optional and only meaningful for admins."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Glance normally sets the owner of an image to be the tenant of the"},{"line_number":583,"context_line":"  authenticated user issuing the request. However, if the authenticated user"},{"line_number":584,"context_line":"  has the Admin role, this default may be overridden by setting this header to"},{"line_number":585,"context_line":"  null or to a string identifying the owner of the image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"4c733afd_ac219cac","line":582,"range":{"start_line":582,"start_character":9,"end_line":582,"end_character":17},"updated":"2020-12-02 15:43:46.000000000","message":"Does normally apply anymore here? Technically, this will be the only way moving forward, right?","commit_id":"090750d2355f6e1d1a67c4b8f9470a7b9ef866de"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"3fd7579de73cb99c73f34cbc82b4a901e76bc8c6","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"  This header is optional and only meaningful for admins."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Glance normally sets the owner of an image to be the tenant of the"},{"line_number":583,"context_line":"  authenticated user issuing the request. However, if the authenticated user"},{"line_number":584,"context_line":"  has the Admin role, this default may be overridden by setting this header to"},{"line_number":585,"context_line":"  null or to a string identifying the owner of the image."}],"source_content_type":"text/x-rst","patch_set":4,"id":"160f7613_0c208239","line":582,"range":{"start_line":582,"start_character":9,"end_line":582,"end_character":17},"in_reply_to":"4c733afd_ac219cac","updated":"2020-12-02 20:01:02.000000000","message":"I guess you\u0027re right:)","commit_id":"090750d2355f6e1d1a67c4b8f9470a7b9ef866de"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"e1f3b78a12b7c1472e23ca051dd2fbd9440df668","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"  This header is optional and only meaningful for admins."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Glance sets the owner of an image to be the tenant of the"},{"line_number":583,"context_line":"  authenticated user issuing the request. However, if the authenticated user"},{"line_number":584,"context_line":"  has the Admin role, this default may be overridden by setting this header to"},{"line_number":585,"context_line":"  null or to a string identifying the owner of the image."}],"source_content_type":"text/x-rst","patch_set":13,"id":"eec94d9d_78d719db","line":582,"range":{"start_line":582,"start_character":46,"end_line":582,"end_character":52},"updated":"2021-02-01 21:39:53.000000000","message":"NIT: We probably should call it project here too.","commit_id":"32f08fb05161237fccbd7f54ce8f1cf467ace168"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0f699e328addc88c10458c7feb972e75e4b514fc","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"  This header is optional and only meaningful for admins."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Glance sets the owner of an image to be the tenant of the"},{"line_number":583,"context_line":"  authenticated user issuing the request. However, if the authenticated user"},{"line_number":584,"context_line":"  has the Admin role, this default may be overridden by setting this header to"},{"line_number":585,"context_line":"  null or to a string identifying the owner of the image."}],"source_content_type":"text/x-rst","patch_set":14,"id":"e2882c8a_f960f536","line":582,"range":{"start_line":582,"start_character":46,"end_line":582,"end_character":52},"updated":"2021-02-09 15:47:56.000000000","message":"Isn\u0027t this confusing the project/tenant thing still? I guess I\u0027m not sure how far to go in converting them all in this patch vs. a separate one.","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"470336cb666a6c4056781780a883e1d6ee2962b4","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"  This header is optional and only meaningful for admins."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Glance sets the owner of an image to be the tenant of the"},{"line_number":583,"context_line":"  authenticated user issuing the request. However, if the authenticated user"},{"line_number":584,"context_line":"  has the Admin role, this default may be overridden by setting this header to"},{"line_number":585,"context_line":"  null or to a string identifying the owner of the image."}],"source_content_type":"text/x-rst","patch_set":14,"id":"a19750fd_db7fcd5e","line":582,"range":{"start_line":582,"start_character":46,"end_line":582,"end_character":52},"in_reply_to":"60914e2b_602159d0","updated":"2021-02-11 21:41:16.000000000","message":"It\u0027s certainly fine with me, it\u0027s just that Erno called it out and I thought you were going to fix it. Happy to see it as a follow-up.","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5421ad09c4bd6621dd530680895dcf437be4671f","unresolved":true,"context_lines":[{"line_number":579,"context_line":""},{"line_number":580,"context_line":"  This header is optional and only meaningful for admins."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"  Glance sets the owner of an image to be the tenant of the"},{"line_number":583,"context_line":"  authenticated user issuing the request. However, if the authenticated user"},{"line_number":584,"context_line":"  has the Admin role, this default may be overridden by setting this header to"},{"line_number":585,"context_line":"  null or to a string identifying the owner of the image."}],"source_content_type":"text/x-rst","patch_set":14,"id":"60914e2b_602159d0","line":582,"range":{"start_line":582,"start_character":46,"end_line":582,"end_character":52},"in_reply_to":"e2882c8a_f960f536","updated":"2021-02-11 20:48:01.000000000","message":"This makes sense, but there are so many uses of \"tenant\" that I think this would be better in a separate patch. I\u0027ll leave this as-is for now, and we should work on a \"clean-up\" patch. Is that ok with you?","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0f699e328addc88c10458c7feb972e75e4b514fc","unresolved":true,"context_lines":[{"line_number":627,"context_line":"List Image Memberships"},{"line_number":628,"context_line":"**********************"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"We want to see a list of the other system tenants that may access a given"},{"line_number":631,"context_line":"virtual machine image that the Glance server knows about. We take the `uri`"},{"line_number":632,"context_line":"field of the image data, append ``/members`` to it, and issue a ``GET`` request"},{"line_number":633,"context_line":"on the resulting URL."}],"source_content_type":"text/x-rst","patch_set":14,"id":"51e16cef_1f6a5251","line":630,"range":{"start_line":630,"start_character":42,"end_line":630,"end_character":49},"updated":"2021-02-09 15:47:56.000000000","message":"...and here","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"5421ad09c4bd6621dd530680895dcf437be4671f","unresolved":true,"context_lines":[{"line_number":627,"context_line":"List Image Memberships"},{"line_number":628,"context_line":"**********************"},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"We want to see a list of the other system tenants that may access a given"},{"line_number":631,"context_line":"virtual machine image that the Glance server knows about. We take the `uri`"},{"line_number":632,"context_line":"field of the image data, append ``/members`` to it, and issue a ``GET`` request"},{"line_number":633,"context_line":"on the resulting URL."}],"source_content_type":"text/x-rst","patch_set":14,"id":"9972a468_a075b755","line":630,"range":{"start_line":630,"start_character":42,"end_line":630,"end_character":49},"in_reply_to":"51e16cef_1f6a5251","updated":"2021-02-11 20:48:01.000000000","message":"Ditto.","commit_id":"dd9abc4f5268cf0b69894f3d4a0a453c61ce8434"}],"glance/api/middleware/context.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"f16e2a66e8a1d054e045068094df555e123b3531","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"05a8f8f1_0c4cb12d","side":"PARENT","updated":"2020-12-07 14:21:19.000000000","message":"Just a note here what we discussed in the weekly meeting at Thu. I feel like we should move the config option from here to under glance/common/removed_config.py (or something around those lines) that would be imported by the service (and upgrade check) but not included in the configgen conf so we do not include it in the example configs. This way we could check if it actually set in the deployment configs and refuse to start to indicate that this is really not supported.","commit_id":"1344c45772c1a77107f621632642cf1488e431db"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"7a0be005f893fcf4a8f698bd3d7f7c15e2725cbf","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ad7717aa_3aaa0bcb","side":"PARENT","in_reply_to":"05a8f8f1_0c4cb12d","updated":"2020-12-07 19:32:20.000000000","message":"I\u0027ll add that to glance/common/removed_config.py","commit_id":"1344c45772c1a77107f621632642cf1488e431db"}],"glance/cmd/status.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0513c36dd50342ce465e6ee2032ef1f09ab593db","unresolved":true,"context_lines":[{"line_number":49,"context_line":"        return upgradecheck.Result(SUCCESS)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _check_owner_is_tenant(self):"},{"line_number":52,"context_line":"        if CONF.owner_is_tenant is False:"},{"line_number":53,"context_line":"            return upgradecheck.Result("},{"line_number":54,"context_line":"                FAILURE,"},{"line_number":55,"context_line":"                \u0027The \"owner_is_tenant\" option has been removed and there is \u0027"}],"source_content_type":"text/x-python","patch_set":11,"id":"05d3d0ba_133c5f84","line":52,"range":{"start_line":52,"start_character":11,"end_line":52,"end_character":31},"updated":"2021-01-15 20:48:07.000000000","message":"Will this actually work if we\u0027ve removed the opt? I thought we\u0027d ignore it in the file and it wouldn\u0027t be available in CONF, but I can\u0027t say I\u0027ve ever tried.\n\n\u003clater\u003e\n\nOh, I see.","commit_id":"5e3c2490a0de84568176b39717a0935dc924398f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0513c36dd50342ce465e6ee2032ef1f09ab593db","unresolved":true,"context_lines":[{"line_number":61,"context_line":"        # Added in Ussuri"},{"line_number":62,"context_line":"        (\u0027Sheepdog Driver Removal\u0027, _check_sheepdog_store),"},{"line_number":63,"context_line":"        # Removed in Wallaby"},{"line_number":64,"context_line":"        (\u0027Owner_is_tenant Removal\u0027, _check_owner_is_tenant),"},{"line_number":65,"context_line":"    )"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"46580f81_f2378305","line":64,"range":{"start_line":64,"start_character":10,"end_line":64,"end_character":15},"updated":"2021-01-15 20:48:07.000000000","message":"This drives me nuts because the conf option isn\u0027t capitalized. Maybe change this to \"Config owner_is_tenant Removal? :)","commit_id":"5e3c2490a0de84568176b39717a0935dc924398f"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fa6a9a3961422b9e3adb9b3162fe2c3b51611b78","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # Added in Ussuri"},{"line_number":62,"context_line":"        (\u0027Sheepdog Driver Removal\u0027, _check_sheepdog_store),"},{"line_number":63,"context_line":"        # Removed in Wallaby"},{"line_number":64,"context_line":"        (\u0027Owner_is_tenant Removal\u0027, _check_owner_is_tenant),"},{"line_number":65,"context_line":"    )"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"4edac5db_097ef0e8","line":64,"range":{"start_line":64,"start_character":10,"end_line":64,"end_character":15},"in_reply_to":"46580f81_f2378305","updated":"2021-01-20 02:53:02.000000000","message":"Yeah, it drove me crazy as well when I wrote it, but I did not want to start a \"sentence\" without a capital letter! You\u0027re right, let\u0027s workaround this :)","commit_id":"5e3c2490a0de84568176b39717a0935dc924398f"}],"glance/common/removed_config.py":[{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"3e7db0b839efa3f3c906470a179f565ccf98a9c2","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"from oslo_config import cfg"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"removed_opts \u003d ["},{"line_number":18,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027,"},{"line_number":19,"context_line":"                default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1f5fb4e6_a1078373","line":16,"updated":"2020-12-11 15:18:17.000000000","message":"from glance.i18n import _\n\nShould address the test failures.","commit_id":"49969c407bcba6a03a25ee99b3aa2683116426b4"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c9e2e85a888c3404df0e455adcd11a7f1715b9e0","unresolved":true,"context_lines":[{"line_number":20,"context_line":"removed_opts \u003d ["},{"line_number":21,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027,"},{"line_number":22,"context_line":"                default\u003dTrue,"},{"line_number":23,"context_line":"                deprecated_for_removal\u003dTrue,"},{"line_number":24,"context_line":"                deprecated_since\u003d\"Rocky\","},{"line_number":25,"context_line":"                deprecated_reason\u003d_(\"\"\""},{"line_number":26,"context_line":"The non-default setting for this option misaligns Glance with other"},{"line_number":27,"context_line":"OpenStack services with respect to resource ownership.  Further, surveys"},{"line_number":28,"context_line":"indicate that this option is not used by operators.  The option will be"},{"line_number":29,"context_line":"removed early in the \u0027S\u0027 development cycle following the standard OpenStack"},{"line_number":30,"context_line":"deprecation policy.  As the option is not in wide use, no migration path is"},{"line_number":31,"context_line":"proposed."},{"line_number":32,"context_line":"\"\"\"),"},{"line_number":33,"context_line":"                help\u003d_(\"\"\""},{"line_number":34,"context_line":"Set the image owner to tenant or the authenticated user."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"f0000767_a8fddc0c","line":32,"range":{"start_line":23,"start_character":0,"end_line":32,"end_character":4},"updated":"2020-12-17 14:17:00.000000000","message":"you need to check me on this, but I believe what triggers the deprecation announcement in the log is when the code accesses this config option.  we don\u0027t want that here because as far as a new installation goes, this option doesn\u0027t really exist--we\u0027re just defining it so we can probe the config file.  So I don\u0027t think we want to declare this deprecated.","commit_id":"8b43a6e95c98745caf97340d4d387ce9157f73c6"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"317a547faa33ac6a7c0d35e376c1206d3044be03","unresolved":false,"context_lines":[{"line_number":20,"context_line":"removed_opts \u003d ["},{"line_number":21,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027,"},{"line_number":22,"context_line":"                default\u003dTrue,"},{"line_number":23,"context_line":"                deprecated_for_removal\u003dTrue,"},{"line_number":24,"context_line":"                deprecated_since\u003d\"Rocky\","},{"line_number":25,"context_line":"                deprecated_reason\u003d_(\"\"\""},{"line_number":26,"context_line":"The non-default setting for this option misaligns Glance with other"},{"line_number":27,"context_line":"OpenStack services with respect to resource ownership.  Further, surveys"},{"line_number":28,"context_line":"indicate that this option is not used by operators.  The option will be"},{"line_number":29,"context_line":"removed early in the \u0027S\u0027 development cycle following the standard OpenStack"},{"line_number":30,"context_line":"deprecation policy.  As the option is not in wide use, no migration path is"},{"line_number":31,"context_line":"proposed."},{"line_number":32,"context_line":"\"\"\"),"},{"line_number":33,"context_line":"                help\u003d_(\"\"\""},{"line_number":34,"context_line":"Set the image owner to tenant or the authenticated user."},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"72503aa3_748f36c9","line":32,"range":{"start_line":23,"start_character":0,"end_line":32,"end_character":4},"in_reply_to":"f0000767_a8fddc0c","updated":"2021-01-13 19:06:30.000000000","message":"Ack","commit_id":"8b43a6e95c98745caf97340d4d387ce9157f73c6"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"c9e2e85a888c3404df0e455adcd11a7f1715b9e0","unresolved":true,"context_lines":[{"line_number":31,"context_line":"proposed."},{"line_number":32,"context_line":"\"\"\"),"},{"line_number":33,"context_line":"                help\u003d_(\"\"\""},{"line_number":34,"context_line":"Set the image owner to tenant or the authenticated user."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Assign a boolean value to determine the owner of an image. When set to"},{"line_number":37,"context_line":"True, the owner of the image is the tenant. When set to False, the"},{"line_number":38,"context_line":"owner of the image will be the authenticated user issuing the request."},{"line_number":39,"context_line":"Setting it to False makes the image private to the associated user and"},{"line_number":40,"context_line":"sharing with other users within the same tenant (or \"project\")"},{"line_number":41,"context_line":"requires explicit image sharing via image membership."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Possible values:"},{"line_number":44,"context_line":"    * True"},{"line_number":45,"context_line":"    * False"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Related options:"},{"line_number":48,"context_line":"    * None"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"\"\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ef2a1eb4_8b0f1b3f","line":49,"range":{"start_line":34,"start_character":0,"end_line":49,"end_character":0},"updated":"2020-12-17 14:17:00.000000000","message":"If the above is correct, I suggest changing this to say something like \"This option has been removed in Wallaby.  Because there is no migration path for installations that had owner_is_tenant\u003d\u003dFalse, we have defined this option so that the code can probe the config file and refuse to start the api service if the deployment has been using that setting.\"","commit_id":"8b43a6e95c98745caf97340d4d387ce9157f73c6"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"317a547faa33ac6a7c0d35e376c1206d3044be03","unresolved":false,"context_lines":[{"line_number":31,"context_line":"proposed."},{"line_number":32,"context_line":"\"\"\"),"},{"line_number":33,"context_line":"                help\u003d_(\"\"\""},{"line_number":34,"context_line":"Set the image owner to tenant or the authenticated user."},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"Assign a boolean value to determine the owner of an image. When set to"},{"line_number":37,"context_line":"True, the owner of the image is the tenant. When set to False, the"},{"line_number":38,"context_line":"owner of the image will be the authenticated user issuing the request."},{"line_number":39,"context_line":"Setting it to False makes the image private to the associated user and"},{"line_number":40,"context_line":"sharing with other users within the same tenant (or \"project\")"},{"line_number":41,"context_line":"requires explicit image sharing via image membership."},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"Possible values:"},{"line_number":44,"context_line":"    * True"},{"line_number":45,"context_line":"    * False"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"Related options:"},{"line_number":48,"context_line":"    * None"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"\"\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"395d6a3c_b2981984","line":49,"range":{"start_line":34,"start_character":0,"end_line":49,"end_character":0},"in_reply_to":"ef2a1eb4_8b0f1b3f","updated":"2021-01-13 19:06:30.000000000","message":"Ack","commit_id":"8b43a6e95c98745caf97340d4d387ce9157f73c6"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"bacbd0b142bf162ea5463186c1a20c810282dc85","unresolved":true,"context_lines":[{"line_number":48,"context_line":"    * None"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"\"\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"CONF \u003d cfg.CONF"},{"line_number":54,"context_line":"CONF.register_opts(removed_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"db156ea1_b62edfc6","line":54,"range":{"start_line":51,"start_character":0,"end_line":54,"end_character":32},"updated":"2020-12-17 07:22:24.000000000","message":"Are we going to add upgrade check in followup patch?\nAlso what should be the default_value now?","commit_id":"8b43a6e95c98745caf97340d4d387ce9157f73c6"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"317a547faa33ac6a7c0d35e376c1206d3044be03","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    * None"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"\"\"\")),"},{"line_number":51,"context_line":"]"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"CONF \u003d cfg.CONF"},{"line_number":54,"context_line":"CONF.register_opts(removed_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"44bd1d9d_df252ccd","line":54,"range":{"start_line":51,"start_character":0,"end_line":54,"end_character":32},"in_reply_to":"db156ea1_b62edfc6","updated":"2021-01-13 19:06:30.000000000","message":"I added an upgrade check that causes a failure if owner_is_tenant is set to False.","commit_id":"8b43a6e95c98745caf97340d4d387ce9157f73c6"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0513c36dd50342ce465e6ee2032ef1f09ab593db","unresolved":true,"context_lines":[{"line_number":15,"context_line":"from glance.i18n import _"},{"line_number":16,"context_line":"from oslo_config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"removed_opts \u003d ["},{"line_number":19,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027,"},{"line_number":20,"context_line":"                default\u003dTrue,"},{"line_number":21,"context_line":"                help\u003d_(\"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"4a743059_835f1851","line":18,"updated":"2021-01-15 20:48:07.000000000","message":"I guess this works ;)\n\nDo you know of anywhere else this pattern is utilized? I\u0027m sort of hesitant to say this is a good idea because:\n\n1. If I grep the tree, I find this opt (but granted the filename should be an indicator\n2. If we ever accidentally imported this, we could do something we don\u0027t want. What about putting this in a function called register_removed_options()? Then we\u0027d never accidentally register them, *and* your status would need to call it explicitly, avoiding the #noqa requirement.","commit_id":"5e3c2490a0de84568176b39717a0935dc924398f"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"fa6a9a3961422b9e3adb9b3162fe2c3b51611b78","unresolved":false,"context_lines":[{"line_number":15,"context_line":"from glance.i18n import _"},{"line_number":16,"context_line":"from oslo_config import cfg"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"removed_opts \u003d ["},{"line_number":19,"context_line":"    cfg.BoolOpt(\u0027owner_is_tenant\u0027,"},{"line_number":20,"context_line":"                default\u003dTrue,"},{"line_number":21,"context_line":"                help\u003d_(\"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"23e7d2c0_0ef9be80","line":18,"in_reply_to":"4a743059_835f1851","updated":"2021-01-20 02:53:02.000000000","message":"This was Erno\u0027s idea :) Also the option needs to be defined somewhere for the upgrade checks to work. I\u0027ve moved all this code into a separate function as you suggested.","commit_id":"5e3c2490a0de84568176b39717a0935dc924398f"}],"glance/context.py":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"a33d30dbe1c909a90c5d4aaa8684a76c6dc9963d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    @property"},{"line_number":66,"context_line":"    def owner(self):"},{"line_number":67,"context_line":"        \"\"\"Return the owner to correlate with an image.\"\"\""},{"line_number":68,"context_line":"        return self.project_id"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def can_see_deleted(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"b0d6e4ea_186a404a","line":68,"range":{"start_line":68,"start_character":15,"end_line":68,"end_character":30},"updated":"2020-11-24 07:02:49.000000000","message":"Do we need this property anymore, I can see that default owner_is_tenant is true that\u0027s why you returned self.project_id but if we need to keep this property then we need to find the way to return both.\n\nOr need to refactor this method\nhttps://github.com/openstack/glance/blob/master/glance/db/utils.py#L59\n\nto avoid failing functional tests.","commit_id":"09183d48c8a79cf57f67d8e46166bb1c56c1d7a9"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"bda1c03dbb46690cc3aa21d03851fe953b8c1cc3","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    @property"},{"line_number":66,"context_line":"    def owner(self):"},{"line_number":67,"context_line":"        \"\"\"Return the owner to correlate with an image.\"\"\""},{"line_number":68,"context_line":"        return self.project_id"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def can_see_deleted(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f8244b5_068fd769","line":68,"range":{"start_line":68,"start_character":15,"end_line":68,"end_character":30},"in_reply_to":"b0d6e4ea_186a404a","updated":"2020-11-24 07:19:31.000000000","message":"I think you should simply replace this line with (need confirmation from others as well)\nreturn self.project_id if self.project_id else self.user_id\n\nFunctional tests are passing with this change and hopefully tempest will also pass.","commit_id":"09183d48c8a79cf57f67d8e46166bb1c56c1d7a9"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f352b6c1632d8b71226e0cf2c453e6f1eef6ef1e","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    @property"},{"line_number":66,"context_line":"    def owner(self):"},{"line_number":67,"context_line":"        \"\"\"Return the owner to correlate with an image.\"\"\""},{"line_number":68,"context_line":"        return self.project_id or self.user_id"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def can_see_deleted(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"6216e18b_95de9928","line":68,"range":{"start_line":68,"start_character":15,"end_line":68,"end_character":46},"updated":"2020-11-25 02:17:21.000000000","message":"I disagree with Abhishek about this.  The only legitimate values for owner from Wallaby onward are a project ID or None.  The \u0027or self.user_id\u0027 makes sure that this will never be None, so I suspect there\u0027s a problem with the test.    Think of it this way ... we will *always* be treating owner as a project ID because there\u0027s nothing else it can be (other than None).  So if we stick a user ID in for owner, we\u0027ll have something that\u0027s syntactically correct, but it will never work because there is no actual project with that ID.","commit_id":"2806dca5d8b61534ec1fe15593309cfe50276452"},{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"64a84b7c0595bb54ebecc3ac3d50efe27f99027d","unresolved":true,"context_lines":[{"line_number":65,"context_line":"    @property"},{"line_number":66,"context_line":"    def owner(self):"},{"line_number":67,"context_line":"        \"\"\"Return the owner to correlate with an image.\"\"\""},{"line_number":68,"context_line":"        return self.project_id or self.user_id"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    @property"},{"line_number":71,"context_line":"    def can_see_deleted(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7e5adf77_9fc2f0fe","line":68,"range":{"start_line":68,"start_character":15,"end_line":68,"end_character":46},"in_reply_to":"6216e18b_95de9928","updated":"2020-11-25 05:45:44.000000000","message":"Understood, I was confused why earlier we were returning user_id so thought it should not be the case now.","commit_id":"2806dca5d8b61534ec1fe15593309cfe50276452"}],"glance/tests/functional/db/base.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f352b6c1632d8b71226e0cf2c453e6f1eef6ef1e","unresolved":true,"context_lines":[{"line_number":1098,"context_line":"        ctxt1 \u003d context.RequestContext(is_admin\u003dFalse, tenant\u003dTENANT1,"},{"line_number":1099,"context_line":"                                       auth_token\u003d\u0027user:%s:user\u0027 % TENANT1,"},{"line_number":1100,"context_line":"                                       owner_is_tenant\u003dTrue)"},{"line_number":1101,"context_line":"        ctxt2 \u003d context.RequestContext(is_admin\u003dFalse, user\u003dTENANT2,"},{"line_number":1102,"context_line":"                                       auth_token\u003d\u0027user:%s:user\u0027 % TENANT2,"},{"line_number":1103,"context_line":"                                       owner_is_tenant\u003dFalse)"},{"line_number":1104,"context_line":"        UUIDX \u003d str(uuid.uuid4())"},{"line_number":1105,"context_line":"        # We need a shared image and context.owner should not match image"},{"line_number":1106,"context_line":"        # owner"}],"source_content_type":"text/x-python","patch_set":2,"id":"d50d2329_fc082e1e","side":"PARENT","line":1103,"range":{"start_line":1101,"start_character":39,"end_line":1103,"end_character":60},"updated":"2020-11-25 02:17:21.000000000","message":"Notice that this context *does* have an owner in it.","commit_id":"1344c45772c1a77107f621632642cf1488e431db"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f352b6c1632d8b71226e0cf2c453e6f1eef6ef1e","unresolved":true,"context_lines":[{"line_number":1097,"context_line":"        TENANT2 \u003d str(uuid.uuid4())"},{"line_number":1098,"context_line":"        ctxt1 \u003d context.RequestContext(is_admin\u003dFalse, tenant\u003dTENANT1,"},{"line_number":1099,"context_line":"                                       auth_token\u003d\u0027user:%s:user\u0027 % TENANT1)"},{"line_number":1100,"context_line":"        ctxt2 \u003d context.RequestContext(is_admin\u003dFalse, user\u003dTENANT2,"},{"line_number":1101,"context_line":"                                       auth_token\u003d\u0027user:%s:user\u0027 % TENANT2)"},{"line_number":1102,"context_line":"        UUIDX \u003d str(uuid.uuid4())"},{"line_number":1103,"context_line":"        # We need a shared image and context.owner should not match image"}],"source_content_type":"text/x-python","patch_set":2,"id":"b5ec2fae_523975dd","line":1100,"range":{"start_line":1100,"start_character":55,"end_line":1100,"end_character":67},"updated":"2020-11-25 02:17:21.000000000","message":"This context doesn\u0027t have an tenant, so it doesn\u0027t contain anyone that can be an image owner.  I think this should be tenant\u003dTENANT2.","commit_id":"2806dca5d8b61534ec1fe15593309cfe50276452"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f352b6c1632d8b71226e0cf2c453e6f1eef6ef1e","unresolved":true,"context_lines":[{"line_number":1148,"context_line":"        TENANT2 \u003d str(uuid.uuid4())"},{"line_number":1149,"context_line":"        ctxt1 \u003d context.RequestContext(is_admin\u003dFalse, tenant\u003dTENANT1,"},{"line_number":1150,"context_line":"                                       auth_token\u003d\u0027user:%s:user\u0027 % TENANT1)"},{"line_number":1151,"context_line":"        ctxt2 \u003d context.RequestContext(is_admin\u003dFalse, user\u003dTENANT2,"},{"line_number":1152,"context_line":"                                       auth_token\u003d\u0027user:%s:user\u0027 % TENANT2)"},{"line_number":1153,"context_line":"        UUIDX \u003d str(uuid.uuid4())"},{"line_number":1154,"context_line":"        # We need a shared image and context.owner should not match image"}],"source_content_type":"text/x-python","patch_set":2,"id":"90dbfa46_ba1511b4","line":1151,"range":{"start_line":1151,"start_character":55,"end_line":1151,"end_character":67},"updated":"2020-11-25 02:17:21.000000000","message":"same change as line 1100","commit_id":"2806dca5d8b61534ec1fe15593309cfe50276452"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f352b6c1632d8b71226e0cf2c453e6f1eef6ef1e","unresolved":true,"context_lines":[{"line_number":1177,"context_line":"        owners_ctxt \u003d context.RequestContext(is_admin\u003dFalse, tenant\u003dTENANT1,"},{"line_number":1178,"context_line":"                                             auth_token\u003d\u0027user:%s:user\u0027"},{"line_number":1179,"context_line":"                                             % TENANT1)"},{"line_number":1180,"context_line":"        viewing_ctxt \u003d context.RequestContext(is_admin\u003dFalse, user\u003dTENANT2,"},{"line_number":1181,"context_line":"                                              auth_token\u003d\u0027user:%s:user\u0027"},{"line_number":1182,"context_line":"                                              % TENANT2)"},{"line_number":1183,"context_line":"        UUIDX \u003d str(uuid.uuid4())"}],"source_content_type":"text/x-python","patch_set":2,"id":"d478c43a_a610f8cb","line":1180,"range":{"start_line":1180,"start_character":62,"end_line":1180,"end_character":74},"updated":"2020-11-25 02:17:21.000000000","message":"So, you ask, why is this test passing without the change? I think it\u0027s because community images are visible to everybody, so it doesn\u0027t matter.  But you should change it anyway.","commit_id":"2806dca5d8b61534ec1fe15593309cfe50276452"}],"releasenotes/notes/remove-db-downgrade-0d1cc45b97605775.yaml":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cb334e3f84f1a6d0ee29924942f0f127cf246448","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ff9ce118_a23f304c","line":7,"range":{"start_line":2,"start_character":1,"end_line":7,"end_character":72},"updated":"2020-12-02 15:29:23.000000000","message":"Unrelated change","commit_id":"090750d2355f6e1d1a67c4b8f9470a7b9ef866de"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"3fd7579de73cb99c73f34cbc82b4a901e76bc8c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":4,"id":"110edd15_d9dac2d9","line":7,"range":{"start_line":2,"start_character":1,"end_line":7,"end_character":72},"in_reply_to":"ff9ce118_a23f304c","updated":"2020-12-02 20:01:02.000000000","message":"Done","commit_id":"090750d2355f6e1d1a67c4b8f9470a7b9ef866de"}],"releasenotes/notes/remove-owner_is_tenant-7b89921e1222f9b2.yaml":[{"author":{"_account_id":9303,"name":"Abhishek Kekane","email":"akekane@redhat.com","username":"abhishekkekane"},"change_message_id":"cb334e3f84f1a6d0ee29924942f0f127cf246448","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Replace this text with content to appear at the top of the section for this"},{"line_number":4,"context_line":"    release. All of the prelude content is merged together and then rendered"},{"line_number":5,"context_line":"    separately from the items listed in other parts of the file, so the text"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"f8c1e160_73744bdb","line":2,"updated":"2020-12-02 15:29:23.000000000","message":"I guess you added changes to previous release note file.","commit_id":"090750d2355f6e1d1a67c4b8f9470a7b9ef866de"}],"releasenotes/notes/remove-owner_is_tenant-b30150def293effc.yaml":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f6cc301828f8783284d0c18468689b5ec4cfd23a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"2213ccf7_5e8f4884","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":42},"updated":"2020-12-03 14:24:40.000000000","message":"I think the usual practice is that the PTL writes the prelude before release, you don\u0027t include one with the patch.","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"f16e2a66e8a1d054e045068094df555e123b3531","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"d58ad296_63641c57","line":4,"range":{"start_line":3,"start_character":64,"end_line":4,"end_character":29},"updated":"2020-12-07 14:21:19.000000000","message":"Shouldn\u0027t this be \"The tenant will always be owner from now on.\" Might be just my weird way of constructing sentences with Finnish accent still.","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"f16e2a66e8a1d054e045068094df555e123b3531","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"c9914e94_84f55807","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":42},"in_reply_to":"2213ccf7_5e8f4884","updated":"2020-12-07 14:21:19.000000000","message":"Yes was going to highlight this. The renos gets all messed up if the preludes are present in the milestones. 😞","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"7a0be005f893fcf4a8f698bd3d7f7c15e2725cbf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"eb6d51db_ba7532e0","line":4,"range":{"start_line":2,"start_character":0,"end_line":4,"end_character":42},"in_reply_to":"c9914e94_84f55807","updated":"2020-12-07 19:32:20.000000000","message":"Done","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"7a0be005f893fcf4a8f698bd3d7f7c15e2725cbf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Removed the deprecated \u0027owner_is_tenant\u0027 config option. The owner"},{"line_number":4,"context_line":"    will always be the tenant from now on."},{"line_number":5,"context_line":"upgrade:"},{"line_number":6,"context_line":"  - This option was always set to \"True\", which is now the only possible"},{"line_number":7,"context_line":"    behaviour. This option can be safely removed from the configuration."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"526fa758_bdb78cc1","line":4,"range":{"start_line":3,"start_character":64,"end_line":4,"end_character":29},"in_reply_to":"d58ad296_63641c57","updated":"2020-12-07 19:32:20.000000000","message":"I think both are correct, but I ended up using Brian\u0027s suggestion instead :)","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"f6cc301828f8783284d0c18468689b5ec4cfd23a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4d03006b_96fa47e1","line":8,"updated":"2020-12-03 14:24:40.000000000","message":"When the release notes are generated, no one will know what \"This option\" refers to.\n\nHere\u0027s some suggested text:\n\nThe ``owner_is_tenant`` configuration option, which was deprecated in Rocky, has been removed in this release.  As announced in the spec `Deprecate owner_is_tenant\n\u003chttps://specs.openstack.org/openstack/glance-specs/specs/rocky/implemented/glance/spec-lite-deprecate-owner_is_tenant.html\u003e`__, given that an operator survey indicated that this option was only used in its default value of ``True``, no database migration is included in this release.","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"},{"author":{"_account_id":8122,"name":"Cyril Roelandt","email":"cyril@redhat.com","username":"cyril.roelandt.enovance"},"change_message_id":"7a0be005f893fcf4a8f698bd3d7f7c15e2725cbf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"7d3abddc_1cfc6454","line":8,"in_reply_to":"4d03006b_96fa47e1","updated":"2020-12-07 19:32:20.000000000","message":"Done","commit_id":"6a9e69bba0d43feebd6cc51edd3195ab683df398"}]}
