)]}'
{"nova/conf/cinder.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7148441c2b0f5ff685e07d2cc5ee4499ba4f160a","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"cinder_opts \u003d ["},{"line_number":25,"context_line":"    cfg.StrOpt(\u0027catalog_info\u0027,"},{"line_number":26,"context_line":"            default\u003d\u0027volumev3:cinderv3:publicURL\u0027,"},{"line_number":27,"context_line":"            regex\u003d\u0027(\\w+):(\\w+):(.*?)\u0027,"},{"line_number":28,"context_line":"            help\u003d\"\"\""},{"line_number":29,"context_line":"Info to match when looking for cinder in the service catalog."}],"source_content_type":"text/x-python","patch_set":7,"id":"fa31d9ce_43472abb","line":26,"updated":"2017-02-10 20:35:18.000000000","message":"See http://lists.openstack.org/pipermail/openstack-dev/2017-February/111972.html - I think we might just want to make this default now in Pike. We\u0027d need a release note for that if we do - we\u0027re going to want a release note on this change regardless since it adds support for using nova with cinder v3.","commit_id":"8c7ce35a5665af3957e49c376f104c3c1e15f91d"}],"nova/volume/cinder.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4375ed75f6e11ac9d56f1c14acd48f4edf02e9e3","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"_SESSION \u003d None"},{"line_number":51,"context_line":"_V1_ERROR_RAISED \u003d False"},{"line_number":52,"context_line":"CINDER_API_MICROVERSION \u003d None"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"def reset_globals():"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a3c09a3_5d88f222","line":52,"updated":"2017-01-13 22:33:43.000000000","message":"Would have been cool to just do this new stuff in https://review.openstack.org/#/c/385682/ so we\u0027re not doing so many different WIPs and DNMs.","commit_id":"85c493dae83820d5f16c34c86a58847d860e61e4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1ac9b0af252c9d8a277c6ce3949e5ade4db321d1","unresolved":false,"context_lines":[{"line_number":48,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"_SESSION \u003d None"},{"line_number":51,"context_line":"_V1_ERROR_RAISED \u003d False"},{"line_number":52,"context_line":"CINDER_API_MICROVERSION \u003d None"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_2e7d6ae7","line":51,"updated":"2017-01-16 18:01:35.000000000","message":"This isn\u0027t used.","commit_id":"7610579cbfc2dd89802dabdd40c44147a66135ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0bd54b5c5bc13fcd7c42792776538e64f2ac05d","unresolved":false,"context_lines":[{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    if version \u003d\u003d \u00273\u0027:"},{"line_number":97,"context_line":"        min_api_version, max_api_version \u003d cinder_client.get_server_version(url)"},{"line_number":98,"context_line":"        #TODO add a cinderclient_max_version for nova.conf and determine which"},{"line_number":99,"context_line":"        # is lower. Use that for CINDER_API_MICROVERSION and set"},{"line_number":100,"context_line":"        # max_api_version to whichever is lowest"},{"line_number":101,"context_line":"        CINDER_API_MICROVERSION \u003d max_api_version"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a3c09a3_ae787a2c","line":98,"updated":"2017-01-16 17:57:20.000000000","message":"We don\u0027t want a config option for this. Nova knows exactly which microversion it needs for it\u0027s code to work, so it will hardcode it. If it\u0027s available, great, we do the new thing, if not, we can\u0027t do the new thing.","commit_id":"7610579cbfc2dd89802dabdd40c44147a66135ac"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"8fe843dc3492d93955ac87b994256e52c14f724f","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                cinder_client.get_server_version(url))"},{"line_number":98,"context_line":"            # FIXME(mriedem): This is actually a terrible idea. In practice"},{"line_number":99,"context_line":"            # nova will pin to a specific microversion that it needs or"},{"line_number":100,"context_line":"            # fallback to 3.0 for compat with the cinder 2.0 API."},{"line_number":101,"context_line":"            CINDER_API_MICROVERSION \u003d version \u003d max_api_version"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            # cinderclient is too old, default to 3.0"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a3c09a3_18162df1","line":100,"updated":"2017-01-16 21:18:02.000000000","message":"Right, so we still need to get the highest version supported by cinder and cinderclient.\nThen we need to see if that is high enough to meet the needs of the pinned version of cinderclient in nova.\nIf yes, use pinned version in Nova.\nIf no, use 3.0\nAnd then figure out the mechanism to store that info in a way that nova wants to consume, i.e with a Global, or getter or something.","commit_id":"0639831a06b96c66307133d856243dce8aad0470"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"265b1ed4316f1c860982dbda99257f8900151e28","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        if hasattr(cinder_client, \u0027get_server_version\u0027):"},{"line_number":96,"context_line":"            min_api_version, max_api_version \u003d ("},{"line_number":97,"context_line":"                cinder_client.get_server_version(url))"},{"line_number":98,"context_line":"            # FIXME(mriedem): This is actually a terrible idea. In practice"},{"line_number":99,"context_line":"            # nova will pin to a specific microversion that it needs or"},{"line_number":100,"context_line":"            # fallback to 3.0 for compat with the cinder 2.0 API."},{"line_number":101,"context_line":"            CINDER_API_MICROVERSION \u003d version \u003d max_api_version"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a3905b3_c422c0a2","line":98,"updated":"2017-01-23 18:09:48.000000000","message":"Now its merged, shall we just check everything supports the new flow version, otherwise I guess we should error out?","commit_id":"ea35b9f3ffa4da501873ae70735aa813ecee770f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"265b1ed4316f1c860982dbda99257f8900151e28","unresolved":false,"context_lines":[{"line_number":101,"context_line":"            CINDER_API_MICROVERSION \u003d version \u003d max_api_version"},{"line_number":102,"context_line":"        else:"},{"line_number":103,"context_line":"            # cinderclient is too old, default to 3.0"},{"line_number":104,"context_line":"            CINDER_API_MICROVERSION \u003d version \u003d \u00273.0\u0027"},{"line_number":105,"context_line":"        LOG.info(_LI(\u0027CINDER_API_MICROVERSION set to %s\u0027),"},{"line_number":106,"context_line":"                 CINDER_API_MICROVERSION)"},{"line_number":107,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5a3905b3_442fb087","line":104,"updated":"2017-01-23 18:09:48.000000000","message":"But I hear this will make the existing code fail?","commit_id":"ea35b9f3ffa4da501873ae70735aa813ecee770f"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2e5b8a9a27c2a20a3a0e55580360054171b2701","unresolved":false,"context_lines":[{"line_number":50,"context_line":"_SESSION \u003d None"},{"line_number":51,"context_line":"API_VERSION_SET \u003d False"},{"line_number":52,"context_line":"CINDER_NEW_API_VERSION \u003d 3.27"},{"line_number":53,"context_line":"SUPPORTS_NEW_CINDER_API \u003d False"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def reset_globals():"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_aa29baf4","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":23},"updated":"2017-02-09 17:48:02.000000000","message":"We\u0027re not going to want to make this a boolean, because what is the new API? That\u0027s going to change depending on what Nova needs to request. We should just store the max supported API version in the global and rely on that in the client side code based on need.","commit_id":"8c7ce35a5665af3957e49c376f104c3c1e15f91d"},{"author":{"_account_id":7173,"name":"Scott DAngelo","email":"scott.dangelo@gmail.com","username":"scottda"},"change_message_id":"28196e11d5c25b4f8c562e1bb12582b2dce1f95e","unresolved":false,"context_lines":[{"line_number":50,"context_line":"_SESSION \u003d None"},{"line_number":51,"context_line":"API_VERSION_SET \u003d False"},{"line_number":52,"context_line":"CINDER_NEW_API_VERSION \u003d 3.27"},{"line_number":53,"context_line":"SUPPORTS_NEW_CINDER_API \u003d False"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def reset_globals():"}],"source_content_type":"text/x-python","patch_set":7,"id":"da36d5c6_aec6bb97","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":23},"in_reply_to":"1a430d35_aa29baf4","updated":"2017-02-22 20:35:39.000000000","message":"Yes, probably remove L#52 \u0026 L#53 and have:\nCINDER_API_VERSION \u003d x\n\nAnd then reference that Global in Nova where we are actually needing to toggle on attach/detach APIs","commit_id":"8c7ce35a5665af3957e49c376f104c3c1e15f91d"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e2e5b8a9a27c2a20a3a0e55580360054171b2701","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        return SUPPORTS_NEW_CINDER_API"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"def cinderclient(context):"},{"line_number":74,"context_line":"    global _SESSION"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    if not _SESSION:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a430d35_adfd540a","line":73,"range":{"start_line":73,"start_character":4,"end_line":73,"end_character":16},"updated":"2017-02-09 17:48:02.000000000","message":"So this is constructed on every call in the API class below, which sort of surprises me since things like nova\u0027s ComputeAPI and ComputeManager hold a refernce to the volume API class, which is completely stateless and just passes through to this code which reconstructs the client on every call.\n\nOne upside to doing this is you don\u0027t need to restart services in case you upgrade cinder after nova, but the downside is we\u0027re redoing all of this work for every API call we make, which most of the time isn\u0027t going to change.\n\nI guess we have a similar pattern with how we deal with neutron though too:\n\nhttps://github.com/openstack/nova/blob/21e36a2c4c280ff3b1d42b7bee16ffe3f235281d/nova/network/neutronv2/api.py#L122","commit_id":"8c7ce35a5665af3957e49c376f104c3c1e15f91d"}],"releasenotes/notes/switch-to-cinder-v3-00bdf83e0937dbe5.yaml":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"71ad1ffad5050809a9477c7886eafea8f7157895","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - Nova is now configured to use the v3 version of the Cinder API. You need to"},{"line_number":4,"context_line":"    ensure that the v3 version of the Cinder API is available and listed in the"},{"line_number":5,"context_line":"    service catalog in order to use Nova wit the default configuration option."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The base ``3.0`` version is identical to v2 and it was introduced in the"},{"line_number":8,"context_line":"    Newton release of OpenStack. In case you need Nova to continue using the v2"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9a30ddce_96c6f214","line":5,"range":{"start_line":5,"start_character":41,"end_line":5,"end_character":44},"updated":"2017-03-07 00:38:55.000000000","message":"s/wit/with/","commit_id":"a795e0e545c05f7b9ea5ccf0fb33190d138816cf"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"b8a6f3cf4a97f62b3d53f38d7ef03e32262c9fbb","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - Nova is now configured to use the v3 version of the Cinder API. You need to"},{"line_number":4,"context_line":"    ensure that the v3 version of the Cinder API is available and listed in the"},{"line_number":5,"context_line":"    service catalog in order to use Nova wit the default configuration option."},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    The base ``3.0`` version is identical to v2 and it was introduced in the"},{"line_number":8,"context_line":"    Newton release of OpenStack. In case you need Nova to continue using the v2"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9a30ddce_41f676d8","line":5,"range":{"start_line":5,"start_character":41,"end_line":5,"end_character":44},"in_reply_to":"9a30ddce_96c6f214","updated":"2017-03-07 00:57:22.000000000","message":"Done","commit_id":"a795e0e545c05f7b9ea5ccf0fb33190d138816cf"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"71ad1ffad5050809a9477c7886eafea8f7157895","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    The base ``3.0`` version is identical to v2 and it was introduced in the"},{"line_number":8,"context_line":"    Newton release of OpenStack. In case you need Nova to continue using the v2"},{"line_number":9,"context_line":"    version you can point it towards that by setting the ``catalog_info``"},{"line_number":10,"context_line":"    option in the ``nova.conf`` file under the ``cinder`` section, like::"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"      [cinder]"},{"line_number":13,"context_line":"      catalog_info \u003d volumev2:cinderv2:publicURL"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9a30ddce_d69eaa06","line":10,"range":{"start_line":10,"start_character":71,"end_line":10,"end_character":73},"updated":"2017-03-07 00:38:55.000000000","message":"I think last time I tried to do proper formatting like this it failed since this has to conform to yaml syntax. Let\u0027s see what the tests have to say about it.","commit_id":"a795e0e545c05f7b9ea5ccf0fb33190d138816cf"},{"author":{"_account_id":9562,"name":"Ildiko Vancsa","email":"ildiko.vancsa@gmail.com","username":"ildikov"},"change_message_id":"b8a6f3cf4a97f62b3d53f38d7ef03e32262c9fbb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    The base ``3.0`` version is identical to v2 and it was introduced in the"},{"line_number":8,"context_line":"    Newton release of OpenStack. In case you need Nova to continue using the v2"},{"line_number":9,"context_line":"    version you can point it towards that by setting the ``catalog_info``"},{"line_number":10,"context_line":"    option in the ``nova.conf`` file under the ``cinder`` section, like::"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"      [cinder]"},{"line_number":13,"context_line":"      catalog_info \u003d volumev2:cinderv2:publicURL"}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9a30ddce_619ffa5f","line":10,"range":{"start_line":10,"start_character":71,"end_line":10,"end_character":73},"in_reply_to":"9a30ddce_d69eaa06","updated":"2017-03-07 00:57:22.000000000","message":"I copied it from another file. Will look into this tomorrow as it indeed made the test job fail...","commit_id":"a795e0e545c05f7b9ea5ccf0fb33190d138816cf"}]}
