)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f55c13e3b3664d678b1cf61dba0cc31d5b53c6a4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Matt Riedemann \u003cmriedem.os@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-01-24 20:53:50 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix bug case by none token context"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When set reclaim_instance_interval \u003e 0, and then delete an"},{"line_number":10,"context_line":"instance which booted from volume with `delete_on_termination`"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5f93b717_680cc140","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":34},"updated":"2018-01-31 15:19:15.000000000","message":"this should really describe what the patch is doing... something like this would be good:\n\n detach BFV root disk on instance terminate","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f55c13e3b3664d678b1cf61dba0cc31d5b53c6a4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When set reclaim_instance_interval \u003e 0, and then delete an"},{"line_number":10,"context_line":"instance which booted from volume with `delete_on_termination`"},{"line_number":11,"context_line":"set as true. After reclaim_instance_interval time pass,"},{"line_number":12,"context_line":"all volumes boot instance will with state: attached and in-use,"},{"line_number":13,"context_line":"but attached instances was deleted."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This bug case as admin context from"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5f93b717_f360c6d1","line":12,"range":{"start_line":12,"start_character":26,"end_line":12,"end_character":41},"updated":"2018-01-31 15:19:15.000000000","message":"not sure what \"boot instance will with state\" means? Did you mean \"all volumes will still be attached and in-use\"?","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"50587fddd327b3bebfd1a456e648805d365bbe38","unresolved":false,"context_lines":[{"line_number":10,"context_line":"instance which booted from volume with `delete_on_termination`"},{"line_number":11,"context_line":"set as true. After reclaim_instance_interval time pass,"},{"line_number":12,"context_line":"all volumes boot instance will with state: attached and in-use,"},{"line_number":13,"context_line":"but attached instances was deleted."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This bug case as admin context from"},{"line_number":16,"context_line":"`nova.compute.manager._reclaim_queued_deletes` did not have"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5f93b717_a8df2938","line":13,"updated":"2018-01-31 15:00:12.000000000","message":"That\u0027s just the descrption of the user impact, not really the solved problem, but okay.","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"f55c13e3b3664d678b1cf61dba0cc31d5b53c6a4","unresolved":false,"context_lines":[{"line_number":12,"context_line":"all volumes boot instance will with state: attached and in-use,"},{"line_number":13,"context_line":"but attached instances was deleted."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This bug case as admin context from"},{"line_number":16,"context_line":"`nova.compute.manager._reclaim_queued_deletes` did not have"},{"line_number":17,"context_line":"any token info, then call cinder api would be failed."},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"5f93b717_13b3f24e","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":13},"updated":"2018-01-31 15:19:15.000000000","message":"The cause of the bug was the admin_context from...","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"}],"nova/tests/unit/volume/test_cinder.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4df90b015e62ccf11ef478ebf595140bc7ec81ce","unresolved":false,"context_lines":[{"line_number":949,"context_line":"                                         get_volume_api,"},{"line_number":950,"context_line":"                                         mock_admin_auth):"},{"line_number":951,"context_line":""},{"line_number":952,"context_line":"        def token_vals(*args, **kwargs):"},{"line_number":953,"context_line":"            return \u0027new_token\u0027"},{"line_number":954,"context_line":""},{"line_number":955,"context_line":"        mock_admin_auth.get_token.side_effect \u003d token_vals"},{"line_number":956,"context_line":"        admin_ctx \u003d context.get_admin_context()"},{"line_number":957,"context_line":"        client \u003d cinder.cinderclient(admin_ctx)"},{"line_number":958,"context_line":"        self.assertEqual(\u0027new_token\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_8c3f0bb3","line":955,"range":{"start_line":952,"start_character":8,"end_line":955,"end_character":58},"updated":"2017-11-24 10:07:11.000000000","message":"can xxx.return_value be used here instead of another function?","commit_id":"f2c61e71db4441c317489e09c2d733da81bd724f"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"05c11dd62a75335830d5cfc7ad0afdfa3c190f1b","unresolved":false,"context_lines":[{"line_number":952,"context_line":"        mock_admin_auth.return_value \u003d \u0027_FAKE_ADMIN_AUTH\u0027"},{"line_number":953,"context_line":"        admin_ctx \u003d context.get_admin_context()"},{"line_number":954,"context_line":"        client \u003d cinder.cinderclient(admin_ctx)"},{"line_number":955,"context_line":"        self.assertEqual(_FAKE_ADMIN_AUTH,"},{"line_number":956,"context_line":"                         client.client.auth)"},{"line_number":957,"context_line":"        get_volume_api.assert_called_once_with("},{"line_number":958,"context_line":"            self.mock_session.get_endpoint.return_value)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff82abbf_d63a6bca","line":955,"range":{"start_line":955,"start_character":25,"end_line":955,"end_character":41},"updated":"2017-11-27 03:48:20.000000000","message":"nit: not defined","commit_id":"747e785e0dd95d52ca260ea78470da28f957895e"}],"nova/volume/cinder.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"7f09c9d2827c658d08d7ec1e91bb443c280be38d","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        _SESSION \u003d ks_loading.load_session_from_conf_options("},{"line_number":115,"context_line":"            CONF, nova.conf.cinder.cinder_group.name)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":118,"context_line":"        if not _ADMIN_AUTH:"},{"line_number":119,"context_line":"            _ADMIN_AUTH \u003d _load_auth_plugin(CONF)"},{"line_number":120,"context_line":"        auth \u003d _ADMIN_AUTH"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_ca28b7e3","line":117,"range":{"start_line":117,"start_character":4,"end_line":117,"end_character":50},"updated":"2017-11-23 03:48:47.000000000","message":"Would you mind to add a testcase for ensure the auth plugin load from conf when context.is_admin \u003d True and no token?","commit_id":"a82cedcca9d1624e0fd0618bd7416ef52d54bc6f"},{"author":{"_account_id":16289,"name":"Li Xipeng","email":"lixipeng@prophetech.cn","username":"hahaps"},"change_message_id":"56cf890634a715b7687350793837968866ac514c","unresolved":false,"context_lines":[{"line_number":114,"context_line":"        _SESSION \u003d ks_loading.load_session_from_conf_options("},{"line_number":115,"context_line":"            CONF, nova.conf.cinder.cinder_group.name)"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":118,"context_line":"        if not _ADMIN_AUTH:"},{"line_number":119,"context_line":"            _ADMIN_AUTH \u003d _load_auth_plugin(CONF)"},{"line_number":120,"context_line":"        auth \u003d _ADMIN_AUTH"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_5090d843","line":117,"range":{"start_line":117,"start_character":4,"end_line":117,"end_character":50},"in_reply_to":"ff82abbf_ca28b7e3","updated":"2017-11-23 07:33:02.000000000","message":"Done","commit_id":"a82cedcca9d1624e0fd0618bd7416ef52d54bc6f"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"4df90b015e62ccf11ef478ebf595140bc7ec81ce","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        auth \u003d _ADMIN_AUTH"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    else:"},{"line_number":123,"context_line":"        auth \u003d service_auth.get_auth_plugin(context)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    url \u003d None"},{"line_number":126,"context_line":"    endpoint_override \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_6cde476e","line":123,"range":{"start_line":123,"start_character":7,"end_line":123,"end_character":52},"updated":"2017-11-24 10:07:11.000000000","message":"are we sure context.auth_token is not None here?","commit_id":"f2c61e71db4441c317489e09c2d733da81bd724f"},{"author":{"_account_id":16289,"name":"Li Xipeng","email":"lixipeng@prophetech.cn","username":"hahaps"},"change_message_id":"31026b579ddf8e89338ae5b3f37a54e9c27c0321","unresolved":false,"context_lines":[{"line_number":120,"context_line":"        auth \u003d _ADMIN_AUTH"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    else:"},{"line_number":123,"context_line":"        auth \u003d service_auth.get_auth_plugin(context)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    url \u003d None"},{"line_number":126,"context_line":"    endpoint_override \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"ff82abbf_9d29669c","line":123,"range":{"start_line":123,"start_character":7,"end_line":123,"end_character":52},"in_reply_to":"ff82abbf_6cde476e","updated":"2017-12-14 00:11:13.000000000","message":"auth_token would be none when call cinder API from compute periodic tasks which set is_admin\u003dTrue for context, or fake context when we do unit tests.\n\nI have add a comment and commit again","commit_id":"f2c61e71db4441c317489e09c2d733da81bd724f"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"90d954cbb8a011e3eff50e0d1e5819cb1e0d0c86","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        _SESSION \u003d ks_loading.load_session_from_conf_options("},{"line_number":103,"context_line":"            CONF, nova.conf.cinder.cinder_group.name)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # NOTE(lixipeng): Auth token is none when call"},{"line_number":106,"context_line":"    # cinder API from compute periodic tasks, context"},{"line_number":107,"context_line":"    # from them generated from \u0027context.get_admin_context\u0027"},{"line_number":108,"context_line":"    # which only set is_admin\u003dTrue but is without token."},{"line_number":109,"context_line":"    # So add load_auth_plugin when this condition appear."},{"line_number":110,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":111,"context_line":"        if not _ADMIN_AUTH:"},{"line_number":112,"context_line":"            _ADMIN_AUTH \u003d _load_auth_plugin(CONF)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9f91af0f_108364ce","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":57},"updated":"2018-01-02 22:11:30.000000000","message":"This is a good comment; suggest reword for readability:\n\n    # NOTE(lixipeng): When calling\n    # cinder API from compute periodic tasks, context\n    # is generated by \u0027context.get_admin_context\u0027\n    # which sets is_admin\u003dTrue but doesn\u0027t include a token.\n    # Support loading an admin auth token from the conf in\n    # this case.\n\n(I\u0027m not sure I\u0027ve represented this accurately - please double check me.)","commit_id":"21e37a9c4d74c540a29573286b50b27e94975527"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"18700a32792b90fb5a1a8f59a24ca25717f97c9e","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        _SESSION \u003d ks_loading.load_session_from_conf_options("},{"line_number":103,"context_line":"            CONF, nova.conf.cinder.cinder_group.name)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    # NOTE(lixipeng): Auth token is none when call"},{"line_number":106,"context_line":"    # cinder API from compute periodic tasks, context"},{"line_number":107,"context_line":"    # from them generated from \u0027context.get_admin_context\u0027"},{"line_number":108,"context_line":"    # which only set is_admin\u003dTrue but is without token."},{"line_number":109,"context_line":"    # So add load_auth_plugin when this condition appear."},{"line_number":110,"context_line":"    if context.is_admin and not context.auth_token:"},{"line_number":111,"context_line":"        if not _ADMIN_AUTH:"},{"line_number":112,"context_line":"            _ADMIN_AUTH \u003d _load_auth_plugin(CONF)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5f93b717_0b24bcc5","line":109,"range":{"start_line":105,"start_character":0,"end_line":109,"end_character":57},"in_reply_to":"9f91af0f_108364ce","updated":"2018-01-25 01:10:05.000000000","message":"Or copy the comment from the neutron client API code since this is all very similar:\n\nhttps://github.com/openstack/nova/blob/87ea686f9f2cc706205d188922bb14272625e7be/nova/network/neutronv2/api.py#L138","commit_id":"21e37a9c4d74c540a29573286b50b27e94975527"}],"releasenotes/notes/config-cinder-admin-creds-b86038a3e87a1021.yaml":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"50587fddd327b3bebfd1a456e648805d365bbe38","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    It is now possible to configure the ``[cinder]`` section of nova.conf to"},{"line_number":5,"context_line":"    allow setting admin-role credentials for scenarios where a user token is"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f93b717_e890d14c","line":2,"updated":"2018-01-31 15:00:12.000000000","message":"While it fixes the original problems, I think we can also add that as a feature saying you can have admin-role creds defined by config between nova and cinder.","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"50587fddd327b3bebfd1a456e648805d365bbe38","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    It is now possible to configure the ``[cinder]`` section of nova.conf to"},{"line_number":5,"context_line":"    allow setting admin-role credentials for scenarios where a user token is"},{"line_number":6,"context_line":"    not available to perform actions on a volume. For example, when"},{"line_number":7,"context_line":"    ``reclaim_instance_interval`` is a positive integer, instances are"},{"line_number":8,"context_line":"    soft deleted until the nova-compute service periodic task removes them."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f93b717_88a82d8c","line":5,"range":{"start_line":4,"start_character":10,"end_line":5,"end_character":41},"updated":"2018-01-31 15:00:12.000000000","message":"I\u0027d have appreciated if we could be explicit about which specific config options are now available for passing those creds, but okay.","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ebe639d84941504e9939c3c8eec11492f7931309","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"fixes:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    It is now possible to configure the ``[cinder]`` section of nova.conf to"},{"line_number":5,"context_line":"    allow setting admin-role credentials for scenarios where a user token is"},{"line_number":6,"context_line":"    not available to perform actions on a volume. For example, when"},{"line_number":7,"context_line":"    ``reclaim_instance_interval`` is a positive integer, instances are"},{"line_number":8,"context_line":"    soft deleted until the nova-compute service periodic task removes them."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"5f93b717_79b5757d","line":5,"range":{"start_line":4,"start_character":10,"end_line":5,"end_character":41},"in_reply_to":"5f93b717_88a82d8c","updated":"2018-01-31 16:41:33.000000000","message":"There are a buttload of keystoneauth1 options, so it\u0027d be annoying to list them here. We have the config sample:\n\nhttp://logs.openstack.org/12/522112/9/check/build-openstack-sphinx-docs/2119b6e/html/configuration/config.html#cinder","commit_id":"ca6daf148debb9c9646fcf6db9660c830da5a594"}]}
