)]}'
{"nova/volume/cinder.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ad9881c8ea703cfa70f6f37b602982f55fcfd3dc","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"_SESSION \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"_MAX_AVAILABLE_CINDER_VERSION \u003d 2"},{"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":2,"id":"1a1ced50_8ce8ab18","line":52,"updated":"2017-03-16 17:10:07.000000000","message":"Wouldn\u0027t we default this to None?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"_SESSION \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"_MAX_AVAILABLE_CINDER_VERSION \u003d 2"},{"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":2,"id":"1a1ced50_95f26299","line":52,"in_reply_to":"1a1ced50_8ce8ab18","updated":"2017-03-17 00:41:30.000000000","message":"Fine by me","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0952f6f910a59d9f129dd4bd0c20ce92c8135b5","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def cinderclient(context):"},{"line_number":63,"context_line":"    global _SESSION, _MAX_AVAILABLE_CINDER_VERSION"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    if not _SESSION:"},{"line_number":66,"context_line":"        _SESSION \u003d ks_loading.load_session_from_conf_options("}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_8cd26b33","line":63,"range":{"start_line":63,"start_character":20,"end_line":63,"end_character":50},"updated":"2017-03-16 17:13:30.000000000","message":"Can we keep this closer to where it\u0027s actually set?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":60,"context_line":""},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"def cinderclient(context):"},{"line_number":63,"context_line":"    global _SESSION, _MAX_AVAILABLE_CINDER_VERSION"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    if not _SESSION:"},{"line_number":66,"context_line":"        _SESSION \u003d ks_loading.load_session_from_conf_options("}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_b5ef5eaf","line":63,"range":{"start_line":63,"start_character":20,"end_line":63,"end_character":50},"in_reply_to":"1a1ced50_8cd26b33","updated":"2017-03-17 00:41:30.000000000","message":"sure, that\u0027s easy enough","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0952f6f910a59d9f129dd4bd0c20ce92c8135b5","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    # values."},{"line_number":89,"context_line":"    version \u003d cinder_client.get_volume_api_from_url(url)"},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        _MAX_AVAILABLE_CINDER_VERSION \u003d ("},{"line_number":92,"context_line":"            cinder_client.get_highest_client_server_version(url))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # NOTE(jdg): This assumes we always want to use latest and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_2ce4170c","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":37},"updated":"2017-03-16 17:13:30.000000000","message":"If this is already set once, do we need to check it again?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ad9881c8ea703cfa70f6f37b602982f55fcfd3dc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    # values."},{"line_number":89,"context_line":"    version \u003d cinder_client.get_volume_api_from_url(url)"},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        _MAX_AVAILABLE_CINDER_VERSION \u003d ("},{"line_number":92,"context_line":"            cinder_client.get_highest_client_server_version(url))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # NOTE(jdg): This assumes we always want to use latest and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_cc0e23e5","line":91,"updated":"2017-03-16 17:10:07.000000000","message":"does this always fail if version \u003d\u003d 1 or version \u003d\u003d3?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    # values."},{"line_number":89,"context_line":"    version \u003d cinder_client.get_volume_api_from_url(url)"},{"line_number":90,"context_line":"    try:"},{"line_number":91,"context_line":"        _MAX_AVAILABLE_CINDER_VERSION \u003d ("},{"line_number":92,"context_line":"            cinder_client.get_highest_client_server_version(url))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # NOTE(jdg): This assumes we always want to use latest and"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_35e28e04","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":37},"in_reply_to":"1a1ced50_2ce4170c","updated":"2017-03-17 00:41:30.000000000","message":"yes, for things like upgrades etc, at least I thought that\u0027s what we discussed, making sure that we detect an advancement on the Cinder side automatically.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee033ae9f94757e28dd4f695790b69d5d570c793","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        _MAX_AVAILABLE_CINDER_VERSION \u003d ("},{"line_number":92,"context_line":"            cinder_client.get_highest_client_server_version(url))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # NOTE(jdg): This assumes we always want to use latest and"},{"line_number":95,"context_line":"        # no longer have to do updates here, of course that may not"},{"line_number":96,"context_line":"        # be the right way to go."},{"line_number":97,"context_line":"        version \u003d _MAX_AVAILABLE_CINDER_VERSION"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Now we have the latest version supported and can use it"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_2c9337a5","line":96,"range":{"start_line":94,"start_character":8,"end_line":96,"end_character":33},"updated":"2017-03-16 17:07:30.000000000","message":"We definitely do not want the latest. As the client, we want to pin (opt-in) to the version we know how to handle, and I think we\u0027re shooting for 3.26 right?\n\nFor example, say we know how to deal with 3.26 but we\u0027re getting 3.40, and 3.40 made some backward incompatible change to the response of some API we\u0027re using, or now requires some new field, or removed something from a request body, we\u0027ll get a 400 from the server, or incorrectly handle a changed response.\n\nThis is exactly why we have the API user (client) opt-in to the versions it knows about so it can write it\u0027s code to deal with the changes.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        _MAX_AVAILABLE_CINDER_VERSION \u003d ("},{"line_number":92,"context_line":"            cinder_client.get_highest_client_server_version(url))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        # NOTE(jdg): This assumes we always want to use latest and"},{"line_number":95,"context_line":"        # no longer have to do updates here, of course that may not"},{"line_number":96,"context_line":"        # be the right way to go."},{"line_number":97,"context_line":"        version \u003d _MAX_AVAILABLE_CINDER_VERSION"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Now we have the latest version supported and can use it"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_35b9aeea","line":96,"range":{"start_line":94,"start_character":8,"end_line":96,"end_character":33},"in_reply_to":"1a1ced50_2c9337a5","updated":"2017-03-17 00:41:30.000000000","message":"I specifically asked this question I thought, but that\u0027s no problem.  Based on conversation in the meeting today I\u0027ll give that interpretation a go.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ad9881c8ea703cfa70f6f37b602982f55fcfd3dc","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Now we have the latest version supported and can use it"},{"line_number":100,"context_line":"        # easily to determine what attachment API\u0027s etc to use"},{"line_number":101,"context_line":"        # ie _MAX_AVAILABLE \u003e\u003d 3.27"},{"line_number":102,"context_line":"    except AttributeError:"},{"line_number":103,"context_line":"        LOG.info(_LI(\"cinder api version is %s and does not report \""},{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_ac3ba79b","line":101,"updated":"2017-03-16 17:10:07.000000000","message":"I was expecting to see us use either 3.0 or 3.27 right?\n\nI guess for the moment we kinda have to always use 3.0 or doesn\u0027t everything break?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        # Now we have the latest version supported and can use it"},{"line_number":100,"context_line":"        # easily to determine what attachment API\u0027s etc to use"},{"line_number":101,"context_line":"        # ie _MAX_AVAILABLE \u003e\u003d 3.27"},{"line_number":102,"context_line":"    except AttributeError:"},{"line_number":103,"context_line":"        LOG.info(_LI(\"cinder api version is %s and does not report \""},{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_9576e23c","line":101,"in_reply_to":"1a1ced50_ac3ba79b","updated":"2017-03-17 00:41:30.000000000","message":"Ok, now I\u0027m more than a tad confused.  It seems nobody really knows how they want to use micro-versions.  Here\u0027s what I took away from todays meeting:\n1. Always use V3.0 now\n2. Check with Cinder if it supports \u003e\u003d3.27 everywhere\n3. If YES use 3.27 specifically and explicitly where and ONLY where we have decided to use for the new attach/detach work.\n\nIf this is not correct (again) just write it up here and I\u0027ll give ya whatever you like.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d0952f6f910a59d9f129dd4bd0c20ce92c8135b5","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        # easily to determine what attachment API\u0027s etc to use"},{"line_number":101,"context_line":"        # ie _MAX_AVAILABLE \u003e\u003d 3.27"},{"line_number":102,"context_line":"    except AttributeError:"},{"line_number":103,"context_line":"        LOG.info(_LI(\"cinder api version is %s and does not report \""},{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    if version \u003d\u003d \u00271\u0027:"},{"line_number":107,"context_line":"        raise exception.UnsupportedCinderAPIVersion(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_4cc87375","line":104,"range":{"start_line":103,"start_character":21,"end_line":104,"end_character":56},"updated":"2017-03-16 17:13:30.000000000","message":"This is sort of misleading, we do get 3.0, I think the AttributeError is for get_highest_client_server_version not being on the client yet? We need the minimum bump in g-r for that.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ad9881c8ea703cfa70f6f37b602982f55fcfd3dc","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        # ie _MAX_AVAILABLE \u003e\u003d 3.27"},{"line_number":102,"context_line":"    except AttributeError:"},{"line_number":103,"context_line":"        LOG.info(_LI(\"cinder api version is %s and does not report \""},{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    if version \u003d\u003d \u00271\u0027:"},{"line_number":107,"context_line":"        raise exception.UnsupportedCinderAPIVersion(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_4c6233da","line":104,"updated":"2017-03-16 17:10:07.000000000","message":"Why not just set _MAX_AVAILABLE_CINDER_VERSION \u003d 2 here?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":101,"context_line":"        # ie _MAX_AVAILABLE \u003e\u003d 3.27"},{"line_number":102,"context_line":"    except AttributeError:"},{"line_number":103,"context_line":"        LOG.info(_LI(\"cinder api version is %s and does not report \""},{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    if version \u003d\u003d \u00271\u0027:"},{"line_number":107,"context_line":"        raise exception.UnsupportedCinderAPIVersion(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_75c7a645","line":104,"in_reply_to":"1a1ced50_4c6233da","updated":"2017-03-17 00:41:30.000000000","message":"Ok, but why not set it to 3?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":100,"context_line":"        # easily to determine what attachment API\u0027s etc to use"},{"line_number":101,"context_line":"        # ie _MAX_AVAILABLE \u003e\u003d 3.27"},{"line_number":102,"context_line":"    except AttributeError:"},{"line_number":103,"context_line":"        LOG.info(_LI(\"cinder api version is %s and does not report \""},{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    if version \u003d\u003d \u00271\u0027:"},{"line_number":107,"context_line":"        raise exception.UnsupportedCinderAPIVersion(version\u003dversion)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_35b52ecd","line":104,"range":{"start_line":103,"start_character":21,"end_line":104,"end_character":56},"in_reply_to":"1a1ced50_4cc87375","updated":"2017-03-17 00:41:30.000000000","message":"I\u0027m not sure what\u0027s misleading?  It is in fact here for the case of calling a Cinder that does not have a get_highest_client_server_version\n\nIf you\u0027d rather go for a bump in g-r that\u0027s fine, but this still seems safe and I don\u0027t know why it\u0027s confusing or problematic.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"ad9881c8ea703cfa70f6f37b602982f55fcfd3dc","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    if version \u003d\u003d \u00271\u0027:"},{"line_number":107,"context_line":"        raise exception.UnsupportedCinderAPIVersion(version\u003dversion)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    return cinder_client.Client(version,"},{"line_number":110,"context_line":"                                session\u003d_SESSION,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_ec13df0b","line":107,"updated":"2017-03-16 17:10:07.000000000","message":"Don\u0027t we want this before the detection logic above?","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"77b8970e96f62912584cd1e57f5c961de302492d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                     \"support for V3 and micro-versions\"), version)"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"    if version \u003d\u003d \u00271\u0027:"},{"line_number":107,"context_line":"        raise exception.UnsupportedCinderAPIVersion(version\u003dversion)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    return cinder_client.Client(version,"},{"line_number":110,"context_line":"                                session\u003d_SESSION,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_f508f693","line":107,"in_reply_to":"1a1ced50_ec13df0b","updated":"2017-03-17 00:41:30.000000000","message":"This will be irrelevant given the other changes suggested.  The reason it was here however was because if for some odd reason Nova is upgraded, the client or Cinder is not and is somehow on V1 then version will not have been modified by any of the new code introduced.  I specifically intended to NOT muck with the existing code path checks that are in place here. Happy to move it wherever it makes you happiest though.","commit_id":"a7d877c95272dccd212be8738bb3fb6d9782dbc6"}]}
