)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Store volume encryption metadata on each volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Volume encryption is currently tracked through the use of volume"},{"line_number":10,"context_line":"types. If the volume type is changed or deleted, the user is"},{"line_number":11,"context_line":"then unable to access old volumes originally configured with that"},{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da86d52c_29c312ee","line":10,"updated":"2015-02-11 12:55:41.000000000","message":"If I recall correctly, the encryption metadata for a volume type cannot be modified if any volumes use that volume type. So accessing existing volumes shouldn\u0027t be a problem -- except perhaps if restoring from a backup.\n\nBetter to say that encryption metadata cannot be modified once used, and this patch allows an administrator to change the cipher, key size, etc. without affecting existing volumes.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Store volume encryption metadata on each volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Volume encryption is currently tracked through the use of volume"},{"line_number":10,"context_line":"types. If the volume type is changed or deleted, the user is"},{"line_number":11,"context_line":"then unable to access old volumes originally configured with that"},{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da86d52c_acf43055","line":10,"in_reply_to":"da86d52c_29c312ee","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"efc2bd0e6a64a4d8851db177d9df5a6b11b55776","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Store volume encryption metadata on each volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Volume encryption is currently tracked through the use of volume"},{"line_number":10,"context_line":"types. If the volume type is changed or deleted, the user is"},{"line_number":11,"context_line":"then unable to access old volumes originally configured with that"},{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":"This proposed change copies the encryption metadata from an"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba7be1f8_f9fda33c","line":10,"updated":"2015-02-22 22:42:09.000000000","message":"volume type currently can\u0027t be deleted if there are any existing volumes assigned to it.  Should probably clarify that, or omit it.\n\nAlso, honestly... this seems like an AWFUL lot of code to save somebody from doing something they \"shouldn\u0027t\" do, and that retype without overrides shouldn\u0027t let you do anyway.\n\nWould it be better maybe to put some protections around encrypted types as opposed to stuffing things in new metadata tables?\n\nOne idea is that perhaps encryption shouldn\u0027t be a \"volume-type\" at all but it\u0027s own independent *thing*, sort of like how we broke out qos_specs... This might not work at all and would take some thought but just something to think about as a possible alternative.","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"9987a7e786c6ed4b65e18ff2e3a54d8ed4631d87","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Volume encryption is currently tracked through the use of volume"},{"line_number":10,"context_line":"types. If the volume type is changed or deleted, the user is"},{"line_number":11,"context_line":"then unable to access old volumes originally configured with that"},{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":14,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":15,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"da86d52c_4ceaf8d8","line":12,"updated":"2015-02-18 20:57:28.000000000","message":"I would add a blank line between paragraphs.","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Volume encryption is currently tracked through the use of volume"},{"line_number":10,"context_line":"types. If the volume type is changed or deleted, the user is"},{"line_number":11,"context_line":"then unable to access old volumes originally configured with that"},{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":14,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":15,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa963961_68527015","line":12,"updated":"2015-03-27 13:56:57.000000000","message":"nit: include blank link between paragraphs","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Volume encryption is currently tracked through the use of volume"},{"line_number":10,"context_line":"types. If the volume type is changed or deleted, the user is"},{"line_number":11,"context_line":"then unable to access old volumes originally configured with that"},{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":14,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":15,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"da9b358b_74ed9f8a","line":12,"in_reply_to":"fa963961_68527015","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":12,"context_line":"volume type."},{"line_number":13,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":14,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":15,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"},{"line_number":16,"context_line":"there is no need to retain the original volume\u0027s type."},{"line_number":17,"context_line":"Change-Id: I5fc2fdaec999f9e84862c807a7754925f0c713d9"},{"line_number":18,"context_line":"Implements: blueprint volume-encryption-metadata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa963961_689a7016","line":15,"updated":"2015-03-27 13:56:57.000000000","message":"Perhaps I missed it when skimming through this change, but I didn\u0027t see any association between the volume encryption metadata and snapshots, clones, backups, etc.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":13,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":14,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":15,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"},{"line_number":16,"context_line":"there is no need to retain the original volume\u0027s type."},{"line_number":17,"context_line":"Change-Id: I5fc2fdaec999f9e84862c807a7754925f0c713d9"},{"line_number":18,"context_line":"Implements: blueprint volume-encryption-metadata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fa963961_0842c43e","line":16,"updated":"2015-03-27 13:56:57.000000000","message":"Ditto","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":15,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":16,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"},{"line_number":17,"context_line":"there is no need to retain the original volume\u0027s type."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint volume-encryption-metadata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"9aa53dc9_96b5ccce","line":16,"updated":"2015-04-07 14:12:39.000000000","message":"Perhaps I missed it when skimming through this change, but I didn\u0027t see any association between the volume encryption metadata and snapshots, clones, backups, etc.","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"1cb6076c2d7493c1d37fdb0d27fba3480969bae1","unresolved":false,"context_lines":[{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This proposed change copies the encryption metadata from an"},{"line_number":15,"context_line":"encrypted volume type when a volume is created. The encryption"},{"line_number":16,"context_line":"metadata is then stored with snapshots, clones, backups, etc., but"},{"line_number":17,"context_line":"there is no need to retain the original volume\u0027s type."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Implements: blueprint volume-encryption-metadata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"3acd31a7_91e74b12","line":16,"updated":"2015-04-29 17:14:30.000000000","message":"Missing associations for snapshots, clones, and backups (or at least I don\u0027t see it in the current patch).","commit_id":"adcc9a5153955082bac0fbd393a49653d0ad81f8"}],"cinder/db/api.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":508,"context_line":"                                                  session)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"#----------------------------------------------------"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"def volume_encryption_metadata_get(context, volume_encryption_metadata_id,"},{"line_number":514,"context_line":"                                session\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_8244f0b7","line":511,"updated":"2015-02-03 23:11:25.000000000","message":"It would be best to use the section break \"###################\" both before and after this section (as is done in the rest of this file).","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"####################"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"def volume_encryption_metadata_get(context, vol_enc_meta_id, session\u003dNone):"},{"line_number":514,"context_line":"    return IMPL.volume_encryption_metadata_get(context,"},{"line_number":515,"context_line":"                                               vol_enc_meta_id, session)"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_e952da33","line":513,"updated":"2015-02-11 12:55:41.000000000","message":"Given that the volume encryption metadata is tightly coupled to the volume, it might be better to use the volume id as the parameter.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":510,"context_line":""},{"line_number":511,"context_line":"####################"},{"line_number":512,"context_line":""},{"line_number":513,"context_line":"def volume_encryption_metadata_get(context, vol_enc_meta_id, session\u003dNone):"},{"line_number":514,"context_line":"    return IMPL.volume_encryption_metadata_get(context,"},{"line_number":515,"context_line":"                                               vol_enc_meta_id, session)"},{"line_number":516,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_22584930","line":513,"in_reply_to":"da86d52c_e952da33","updated":"2015-03-05 21:25:17.000000000","message":"Agreed. This is actually a bug. The actual code on /cinder/db/sqlalchemy/api.py uses the volume id as the parameter. Thanks for the catch.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"},{"line_number":546,"context_line":"    return IMPL.volume_encryption_metadata_get(context,"},{"line_number":547,"context_line":"                                               volume_id, session)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"def volume_encryption_metadata_delete(context, volume_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_889b74c9","line":547,"updated":"2015-03-27 13:56:57.000000000","message":"Don\u0027t break line unless necessary. (Also below.)","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":544,"context_line":""},{"line_number":545,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"},{"line_number":546,"context_line":"    return IMPL.volume_encryption_metadata_get(context,"},{"line_number":547,"context_line":"                                               volume_id, session)"},{"line_number":548,"context_line":""},{"line_number":549,"context_line":""},{"line_number":550,"context_line":"def volume_encryption_metadata_delete(context, volume_id):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_b3555d51","line":547,"in_reply_to":"fa963961_889b74c9","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                                                  session)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"####################"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"},{"line_number":560,"context_line":"    return IMPL.volume_encryption_metadata_get(context, volume_id, session)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_ffa46a4b","line":557,"updated":"2015-05-29 08:45:50.000000000","message":"I do not think this line is really needed.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":554,"context_line":"                                                  session)"},{"line_number":555,"context_line":""},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"####################"},{"line_number":558,"context_line":""},{"line_number":559,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"},{"line_number":560,"context_line":"    return IMPL.volume_encryption_metadata_get(context, volume_id, session)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_619ff45f","line":557,"in_reply_to":"7a016987_ffa46a4b","updated":"2015-07-07 15:02:50.000000000","message":"this line separates volume type encryption methods from volume encryption metadata methods","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"}],"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"    volume_type_id \u003d values.get(\u0027volume_type_id\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"#    if vol_type_ref[\u0027volume_type_id\u0027]:"},{"line_number":1008,"context_line":"    if volume_type_id is not None:"},{"line_number":1009,"context_line":"        encryption_ref \u003d volume_type_encryption_get(context, volume_type_id)"},{"line_number":1010,"context_line":"        if encryption_ref is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_428838c5","line":1007,"updated":"2015-02-03 23:11:25.000000000","message":"Commented-out code should be removed.","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":1004,"context_line":""},{"line_number":1005,"context_line":"    volume_type_id \u003d values.get(\u0027volume_type_id\u0027)"},{"line_number":1006,"context_line":""},{"line_number":1007,"context_line":"#    if vol_type_ref[\u0027volume_type_id\u0027]:"},{"line_number":1008,"context_line":"    if volume_type_id is not None:"},{"line_number":1009,"context_line":"        encryption_ref \u003d volume_type_encryption_get(context, volume_type_id)"},{"line_number":1010,"context_line":"        if encryption_ref is not None:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_04af63e4","line":1007,"in_reply_to":"da86d52c_428838c5","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"        ]"},{"line_number":2438,"context_line":"    \"\"\""},{"line_number":2439,"context_line":"    filters \u003d filters or {}"},{"line_number":2440,"context_line":"    # TODO(zhiteng) Add filters for \u0027consumer\u0027"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    read_deleted \u003d \"yes\" if inactive else \"no\""},{"line_number":2443,"context_line":"    rows \u003d model_query(context, models.QualityOfServiceSpecs,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_02bac06d","line":2440,"updated":"2015-02-03 23:11:25.000000000","message":"extra space","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"        ]"},{"line_number":2438,"context_line":"    \"\"\""},{"line_number":2439,"context_line":"    filters \u003d filters or {}"},{"line_number":2440,"context_line":"    # TODO(zhiteng) Add filters for \u0027consumer\u0027"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    read_deleted \u003d \"yes\" if inactive else \"no\""},{"line_number":2443,"context_line":"    rows \u003d model_query(context, models.QualityOfServiceSpecs,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_e40c0f3e","line":2440,"in_reply_to":"da86d52c_02bac06d","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":2631,"context_line":"        filter_by(volume_type_id\u003dvolume_type_id).\\"},{"line_number":2632,"context_line":"        all()"},{"line_number":2633,"context_line":"    return volume_list"},{"line_number":2634,"context_line":""},{"line_number":2635,"context_line":""},{"line_number":2636,"context_line":"@require_context"},{"line_number":2637,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_e26becee","line":2634,"updated":"2015-02-03 23:11:25.000000000","message":"Please add the section break back.","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":2631,"context_line":"        filter_by(volume_type_id\u003dvolume_type_id).\\"},{"line_number":2632,"context_line":"        all()"},{"line_number":2633,"context_line":"    return volume_list"},{"line_number":2634,"context_line":""},{"line_number":2635,"context_line":""},{"line_number":2636,"context_line":"@require_context"},{"line_number":2637,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_849b53c8","line":2634,"in_reply_to":"da86d52c_e26becee","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                 \u0027key_size\u0027: encrypt_ref[\u0027key_size\u0027],"},{"line_number":1015,"context_line":"                 \u0027provider\u0027: encrypt_ref[\u0027provider\u0027],"},{"line_number":1016,"context_line":"                 \u0027control_location\u0027: encrypt_ref[\u0027control_location\u0027"},{"line_number":1017,"context_line":"                                                 ]})"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    volume_ref.update(values)"},{"line_number":1020,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_695d0a79","line":1017,"updated":"2015-02-11 12:55:41.000000000","message":"Looks like there\u0027s just enough space to squeeze the \u0027[})\u0027 on the previous line.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":1014,"context_line":"                 \u0027key_size\u0027: encrypt_ref[\u0027key_size\u0027],"},{"line_number":1015,"context_line":"                 \u0027provider\u0027: encrypt_ref[\u0027provider\u0027],"},{"line_number":1016,"context_line":"                 \u0027control_location\u0027: encrypt_ref[\u0027control_location\u0027"},{"line_number":1017,"context_line":"                                                 ]})"},{"line_number":1018,"context_line":""},{"line_number":1019,"context_line":"    volume_ref.update(values)"},{"line_number":1020,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_82c5755d","line":1017,"in_reply_to":"da86d52c_695d0a79","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"        ]"},{"line_number":2438,"context_line":"    \"\"\""},{"line_number":2439,"context_line":"    filters \u003d filters or {}"},{"line_number":2440,"context_line":"    # TODO(zhiteng) Add filters for \u0027consumer\u0027"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    read_deleted \u003d \"yes\" if inactive else \"no\""},{"line_number":2443,"context_line":"    rows \u003d model_query(context, models.QualityOfServiceSpecs,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_e4578500","line":2440,"updated":"2015-02-10 17:18:34.000000000","message":"This shouldn\u0027t be fixed/changed in this patch.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"        ]"},{"line_number":2438,"context_line":"    \"\"\""},{"line_number":2439,"context_line":"    filters \u003d filters or {}"},{"line_number":2440,"context_line":"    # TODO(zhiteng) Add filters for \u0027consumer\u0027"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    read_deleted \u003d \"yes\" if inactive else \"no\""},{"line_number":2443,"context_line":"    rows \u003d model_query(context, models.QualityOfServiceSpecs,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_2967924e","line":2440,"in_reply_to":"da86d52c_e4578500","updated":"2015-02-11 12:55:41.000000000","message":"Agreed.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":2437,"context_line":"        ]"},{"line_number":2438,"context_line":"    \"\"\""},{"line_number":2439,"context_line":"    filters \u003d filters or {}"},{"line_number":2440,"context_line":"    # TODO(zhiteng) Add filters for \u0027consumer\u0027"},{"line_number":2441,"context_line":""},{"line_number":2442,"context_line":"    read_deleted \u003d \"yes\" if inactive else \"no\""},{"line_number":2443,"context_line":"    rows \u003d model_query(context, models.QualityOfServiceSpecs,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_58f112cc","line":2440,"in_reply_to":"da86d52c_e4578500","updated":"2015-03-05 21:25:17.000000000","message":"was getting PEP8 warnings because of this","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":2617,"context_line":"                                                session)"},{"line_number":2618,"context_line":""},{"line_number":2619,"context_line":"        if not encryption:"},{"line_number":2620,"context_line":"            raise exception.\\"},{"line_number":2621,"context_line":"                VolumeTypeEncryptionNotFound(type_id\u003dvolume_type_id)"},{"line_number":2622,"context_line":""},{"line_number":2623,"context_line":"        encryption.update(values)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_440e9133","line":2620,"updated":"2015-02-10 17:18:34.000000000","message":"It is preferable to use parenthesis instead of backslashes for long lines (http://docs.openstack.org/developer/hacking/)","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":2633,"context_line":"    return volume_list"},{"line_number":2634,"context_line":""},{"line_number":2635,"context_line":""},{"line_number":2636,"context_line":"###############################"},{"line_number":2637,"context_line":""},{"line_number":2638,"context_line":""},{"line_number":2639,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_443cd1bf","line":2636,"updated":"2015-02-10 17:18:34.000000000","message":"Additional #\u0027s shouldn\u0027t be added.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":2633,"context_line":"    return volume_list"},{"line_number":2634,"context_line":""},{"line_number":2635,"context_line":""},{"line_number":2636,"context_line":"###############################"},{"line_number":2637,"context_line":""},{"line_number":2638,"context_line":""},{"line_number":2639,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_5876723f","line":2636,"in_reply_to":"da86d52c_443cd1bf","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":2637,"context_line":""},{"line_number":2638,"context_line":""},{"line_number":2639,"context_line":"@require_context"},{"line_number":2640,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"},{"line_number":2641,"context_line":""},{"line_number":2642,"context_line":"    volume_ref \u003d _volume_get(context, volume_id, session)"},{"line_number":2643,"context_line":"    vol_enc_meta_id \u003d volume_ref[\u0027volume_encryption_metadata_id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_6986eadc","line":2640,"updated":"2015-02-11 12:55:41.000000000","message":"Would be nice to include docstrings for these functions.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":2637,"context_line":""},{"line_number":2638,"context_line":""},{"line_number":2639,"context_line":"@require_context"},{"line_number":2640,"context_line":"def volume_encryption_metadata_get(context, volume_id, session\u003dNone):"},{"line_number":2641,"context_line":""},{"line_number":2642,"context_line":"    volume_ref \u003d _volume_get(context, volume_id, session)"},{"line_number":2643,"context_line":"    vol_enc_meta_id \u003d volume_ref[\u0027volume_encryption_metadata_id\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_bd27fcb4","line":2640,"in_reply_to":"da86d52c_6986eadc","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":2663,"context_line":""},{"line_number":2664,"context_line":"@require_admin_context"},{"line_number":2665,"context_line":"def volume_encryption_metadata_create(context, volume_encryption_metadata_id,"},{"line_number":2666,"context_line":"                                      values):"},{"line_number":2667,"context_line":"    session \u003d get_session()"},{"line_number":2668,"context_line":"    with session.begin():"},{"line_number":2669,"context_line":"        encryption \u003d models.VolumeEncryptionMetadata()"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_a96b821c","line":2666,"updated":"2015-02-11 12:55:41.000000000","message":"ditto","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":2663,"context_line":""},{"line_number":2664,"context_line":"@require_admin_context"},{"line_number":2665,"context_line":"def volume_encryption_metadata_create(context, volume_encryption_metadata_id,"},{"line_number":2666,"context_line":"                                      values):"},{"line_number":2667,"context_line":"    session \u003d get_session()"},{"line_number":2668,"context_line":"    with session.begin():"},{"line_number":2669,"context_line":"        encryption \u003d models.VolumeEncryptionMetadata()"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_9d15d83e","line":2666,"in_reply_to":"da86d52c_a96b821c","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":2679,"context_line":""},{"line_number":2680,"context_line":"@require_admin_context"},{"line_number":2681,"context_line":"def volume_encryption_metadata_update(context, vol_enc_meta_id,"},{"line_number":2682,"context_line":"                                      values):"},{"line_number":2683,"context_line":"    session \u003d get_session()"},{"line_number":2684,"context_line":"    with session.begin():"},{"line_number":2685,"context_line":"        encryption \u003d volume_encryption_metadata_get(context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_e971fa0c","line":2682,"updated":"2015-02-11 12:55:41.000000000","message":"ditto","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":2679,"context_line":""},{"line_number":2680,"context_line":"@require_admin_context"},{"line_number":2681,"context_line":"def volume_encryption_metadata_update(context, vol_enc_meta_id,"},{"line_number":2682,"context_line":"                                      values):"},{"line_number":2683,"context_line":"    session \u003d get_session()"},{"line_number":2684,"context_line":"    with session.begin():"},{"line_number":2685,"context_line":"        encryption \u003d volume_encryption_metadata_get(context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_dd2af07c","line":2682,"in_reply_to":"da86d52c_e971fa0c","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"9987a7e786c6ed4b65e18ff2e3a54d8ed4631d87","unresolved":false,"context_lines":[{"line_number":2581,"context_line":"def volume_type_encryption_get(context, volume_type_id, session\u003dNone):"},{"line_number":2582,"context_line":"    return (model_query(context, models.Encryption, session\u003dsession,"},{"line_number":2583,"context_line":"                        read_deleted\u003d\"no\")."},{"line_number":2584,"context_line":"            filter_by(volume_type_id\u003dvolume_type_id).first())"},{"line_number":2585,"context_line":""},{"line_number":2586,"context_line":""},{"line_number":2587,"context_line":"@require_admin_context"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_ecd00cf9","line":2584,"updated":"2015-02-18 20:57:28.000000000","message":"I don\u0027t think this change should be made in this patch.","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"5f7bc5f6b56e2bc9cddd82d4c3ac1b452e408e71","unresolved":false,"context_lines":[{"line_number":2581,"context_line":"def volume_type_encryption_get(context, volume_type_id, session\u003dNone):"},{"line_number":2582,"context_line":"    return (model_query(context, models.Encryption, session\u003dsession,"},{"line_number":2583,"context_line":"                        read_deleted\u003d\"no\")."},{"line_number":2584,"context_line":"            filter_by(volume_type_id\u003dvolume_type_id).first())"},{"line_number":2585,"context_line":""},{"line_number":2586,"context_line":""},{"line_number":2587,"context_line":"@require_admin_context"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_402c54ac","line":2584,"in_reply_to":"da86d52c_ecd00cf9","updated":"2015-03-05 21:19:46.000000000","message":"Done","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"9987a7e786c6ed4b65e18ff2e3a54d8ed4631d87","unresolved":false,"context_lines":[{"line_number":2695,"context_line":""},{"line_number":2696,"context_line":"        encryption.update(values)"},{"line_number":2697,"context_line":""},{"line_number":2698,"context_line":"        return encryption"},{"line_number":2699,"context_line":""},{"line_number":2700,"context_line":""},{"line_number":2701,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_6c2b3ceb","line":2698,"updated":"2015-02-18 20:57:28.000000000","message":"a \"####################\" is missing here","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"5f7bc5f6b56e2bc9cddd82d4c3ac1b452e408e71","unresolved":false,"context_lines":[{"line_number":2695,"context_line":""},{"line_number":2696,"context_line":"        encryption.update(values)"},{"line_number":2697,"context_line":""},{"line_number":2698,"context_line":"        return encryption"},{"line_number":2699,"context_line":""},{"line_number":2700,"context_line":""},{"line_number":2701,"context_line":"@require_context"}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_a3035a0b","line":2698,"in_reply_to":"da86d52c_6c2b3ceb","updated":"2015-03-05 21:19:46.000000000","message":"Done","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":1047,"context_line":"    if volume_type_id is not None:"},{"line_number":1048,"context_line":"        encrypt_ref \u003d volume_type_encryption_get(context, volume_type_id)"},{"line_number":1049,"context_line":"        if encrypt_ref is not None:"},{"line_number":1050,"context_line":"            values[\u0027volume_encryption_metadata_id\u0027] \u003d str(uuid.uuid4())"},{"line_number":1051,"context_line":"            volume_encryption_metadata_create("},{"line_number":1052,"context_line":"                context, values[\u0027volume_encryption_metadata_id\u0027],"},{"line_number":1053,"context_line":"                {\u0027cipher\u0027: encrypt_ref[\u0027cipher\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_48356c44","line":1050,"updated":"2015-03-27 13:56:57.000000000","message":"Suggest pushing this line into the volume_encryption_metadata_create function (which follows the pattern of other functions like volume_create).","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":1047,"context_line":"    if volume_type_id is not None:"},{"line_number":1048,"context_line":"        encrypt_ref \u003d volume_type_encryption_get(context, volume_type_id)"},{"line_number":1049,"context_line":"        if encrypt_ref is not None:"},{"line_number":1050,"context_line":"            values[\u0027volume_encryption_metadata_id\u0027] \u003d str(uuid.uuid4())"},{"line_number":1051,"context_line":"            volume_encryption_metadata_create("},{"line_number":1052,"context_line":"                context, values[\u0027volume_encryption_metadata_id\u0027],"},{"line_number":1053,"context_line":"                {\u0027cipher\u0027: encrypt_ref[\u0027cipher\u0027],"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_93fed936","line":1050,"in_reply_to":"fa963961_48356c44","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":1159,"context_line":"    now \u003d timeutils.utcnow()"},{"line_number":1160,"context_line":"    with session.begin():"},{"line_number":1161,"context_line":""},{"line_number":1162,"context_line":"        volume_encryption_metadata_delete(context, volume_id)"},{"line_number":1163,"context_line":"        model_query(context, models.Volume, session\u003dsession).\\"},{"line_number":1164,"context_line":"            filter_by(id\u003dvolume_id).\\"},{"line_number":1165,"context_line":"            update({\u0027status\u0027: \u0027deleted\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_2846a823","line":1162,"updated":"2015-03-27 13:56:57.000000000","message":"Invocation creates nested sessions -- deleting the encryption metadata should be in the same session as the deletion of the volume.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":2876,"context_line":"        filter_by(volume_type_id\u003dvolume_type_id).first()"},{"line_number":2877,"context_line":""},{"line_number":2878,"context_line":""},{"line_number":2879,"context_line":"@require_context"},{"line_number":2880,"context_line":"def volume_type_encryption_delete(context, volume_type_id):"},{"line_number":2881,"context_line":"    session \u003d get_session()"},{"line_number":2882,"context_line":"    with session.begin():"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_c8e73c3f","line":2879,"updated":"2015-03-27 13:56:57.000000000","message":"This operation should still require an admin context (unless there\u0027s a specific reason not to).","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":2876,"context_line":"        filter_by(volume_type_id\u003dvolume_type_id).first()"},{"line_number":2877,"context_line":""},{"line_number":2878,"context_line":""},{"line_number":2879,"context_line":"@require_context"},{"line_number":2880,"context_line":"def volume_type_encryption_delete(context, volume_type_id):"},{"line_number":2881,"context_line":"    session \u003d get_session()"},{"line_number":2882,"context_line":"    with session.begin():"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_2a3d6c2b","line":2879,"in_reply_to":"fa963961_c8e73c3f","updated":"2015-04-02 21:16:16.000000000","message":"Done\n\nHad been changed by mistake","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":2887,"context_line":"                           \u0027updated_at\u0027: literal_column(\u0027updated_at\u0027)})"},{"line_number":2888,"context_line":""},{"line_number":2889,"context_line":""},{"line_number":2890,"context_line":"@require_context"},{"line_number":2891,"context_line":"def volume_type_encryption_create(context, volume_type_id, values):"},{"line_number":2892,"context_line":"    session \u003d get_session()"},{"line_number":2893,"context_line":"    with session.begin():"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_a8e4f83a","line":2890,"updated":"2015-03-27 13:56:57.000000000","message":"Ditto.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":2887,"context_line":"                           \u0027updated_at\u0027: literal_column(\u0027updated_at\u0027)})"},{"line_number":2888,"context_line":""},{"line_number":2889,"context_line":""},{"line_number":2890,"context_line":"@require_context"},{"line_number":2891,"context_line":"def volume_type_encryption_create(context, volume_type_id, values):"},{"line_number":2892,"context_line":"    session \u003d get_session()"},{"line_number":2893,"context_line":"    with session.begin():"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_6a1134ac","line":2890,"in_reply_to":"fa963961_a8e4f83a","updated":"2015-04-02 21:16:16.000000000","message":"Done\n\nHad been changed by mistake","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":2905,"context_line":"        return encryption"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":""},{"line_number":2908,"context_line":"@require_context"},{"line_number":2909,"context_line":"def volume_type_encryption_update(context, volume_type_id, values):"},{"line_number":2910,"context_line":"    session \u003d get_session()"},{"line_number":2911,"context_line":"    with session.begin():"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_88d01455","line":2908,"updated":"2015-03-27 13:56:57.000000000","message":"Ditto.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":2905,"context_line":"        return encryption"},{"line_number":2906,"context_line":""},{"line_number":2907,"context_line":""},{"line_number":2908,"context_line":"@require_context"},{"line_number":2909,"context_line":"def volume_type_encryption_update(context, volume_type_id, values):"},{"line_number":2910,"context_line":"    session \u003d get_session()"},{"line_number":2911,"context_line":"    with session.begin():"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_ca7960fe","line":2908,"in_reply_to":"fa963961_88d01455","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":2942,"context_line":"                       session\u003dsession,"},{"line_number":2943,"context_line":"                       read_deleted\u003d\"no\").filter_by(id\u003dvol_enc_meta_id).first()"},{"line_number":2944,"context_line":""},{"line_number":2945,"context_line":""},{"line_number":2946,"context_line":"@require_context"},{"line_number":2947,"context_line":"def volume_encryption_metadata_delete(context, volume_id, session\u003dNone):"},{"line_number":2948,"context_line":"    \"\"\"Delete the encryption metadata for a given volume \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_beaaf217","line":2945,"updated":"2015-03-27 13:56:57.000000000","message":"Missing test cases for the new functions defined below.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":2942,"context_line":"                       session\u003dsession,"},{"line_number":2943,"context_line":"                       read_deleted\u003d\"no\").filter_by(id\u003dvol_enc_meta_id).first()"},{"line_number":2944,"context_line":""},{"line_number":2945,"context_line":""},{"line_number":2946,"context_line":"@require_context"},{"line_number":2947,"context_line":"def volume_encryption_metadata_delete(context, volume_id, session\u003dNone):"},{"line_number":2948,"context_line":"    \"\"\"Delete the encryption metadata for a given volume \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_1a5c344a","line":2945,"in_reply_to":"fa963961_beaaf217","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":2959,"context_line":""},{"line_number":2960,"context_line":""},{"line_number":2961,"context_line":"@require_context"},{"line_number":2962,"context_line":"def volume_encryption_metadata_create(context, volume_encryption_metadata_id,"},{"line_number":2963,"context_line":"                                      values):"},{"line_number":2964,"context_line":"    \"\"\"Create volume encryption metadata for a given volume \"\"\""},{"line_number":2965,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_d99390f9","line":2962,"updated":"2015-03-27 13:56:57.000000000","message":"Suggest removing the volume_encryption_metadata_id parameter and generating the value if it doesn\u0027t existing the values dictionary.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":2959,"context_line":""},{"line_number":2960,"context_line":""},{"line_number":2961,"context_line":"@require_context"},{"line_number":2962,"context_line":"def volume_encryption_metadata_create(context, volume_encryption_metadata_id,"},{"line_number":2963,"context_line":"                                      values):"},{"line_number":2964,"context_line":"    \"\"\"Create volume encryption metadata for a given volume \"\"\""},{"line_number":2965,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_7bb443d0","line":2962,"in_reply_to":"fa963961_d99390f9","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"    session \u003d get_session()"},{"line_number":1161,"context_line":"    now \u003d timeutils.utcnow()"},{"line_number":1162,"context_line":"    with session.begin():"},{"line_number":1163,"context_line":"        volume_encryption_metadata_delete(context, volume_id)"},{"line_number":1164,"context_line":"        model_query(context, models.Volume, session\u003dsession).\\"},{"line_number":1165,"context_line":"            filter_by(id\u003dvolume_id).\\"},{"line_number":1166,"context_line":"            update({\u0027status\u0027: \u0027deleted\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_76f92880","line":1163,"updated":"2015-04-07 14:12:39.000000000","message":"Invocation creates nested sessions -- deleting the encryption metadata should be in the same session as the deletion of the volume.","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":1160,"context_line":"    session \u003d get_session()"},{"line_number":1161,"context_line":"    now \u003d timeutils.utcnow()"},{"line_number":1162,"context_line":"    with session.begin():"},{"line_number":1163,"context_line":"        volume_encryption_metadata_delete(context, volume_id)"},{"line_number":1164,"context_line":"        model_query(context, models.Volume, session\u003dsession).\\"},{"line_number":1165,"context_line":"            filter_by(id\u003dvolume_id).\\"},{"line_number":1166,"context_line":"            update({\u0027status\u0027: \u0027deleted\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_e6a9cf7c","line":1163,"in_reply_to":"9aa53dc9_76f92880","updated":"2015-04-09 20:53:28.000000000","message":"Done","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"}],"cinder/db/sqlalchemy/migrate_repo/versions/027_volume_encryption_metadata.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 The Johns Hopkins University/Applied Physics Laboratory"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_04a9f9de","line":1,"updated":"2015-02-10 17:18:34.000000000","message":"This should be 2015, not 2013.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (c) 2013 The Johns Hopkins University/Applied Physics Laboratory"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_18e79a13","line":1,"in_reply_to":"da86d52c_04a9f9de","updated":"2015-03-05 21:25:17.000000000","message":"Removing this since it is not being used for migration testing anymore","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def upgrade(migrate_engine):"},{"line_number":25,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    # encryption types associated with particular volume type"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_844065a6","line":24,"updated":"2015-02-11 12:55:41.000000000","message":"The upgrade should copy the volume type encryption metadata to the volume encryption metadata table for any existing encrypted volumes.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"def upgrade(migrate_engine):"},{"line_number":25,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    # encryption types associated with particular volume type"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_c0fd203c","line":24,"in_reply_to":"da86d52c_844065a6","updated":"2015-03-05 21:25:17.000000000","message":"in progress","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"}],"cinder/db/sqlalchemy/migrate_repo/versions/041_volume_encryption_metadata.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":37,"context_line":"        Column(\u0027control_location\u0027, String(length\u003d255), nullable\u003dFalse),"},{"line_number":38,"context_line":"        Column(\u0027key_size\u0027, Integer, nullable\u003dTrue),"},{"line_number":39,"context_line":"        Column(\u0027provider\u0027, String(length\u003d255), nullable\u003dFalse),"},{"line_number":40,"context_line":"        Column(\u0027id\u0027, String(length\u003d45), nullable\u003dFalse, primary_key\u003dTrue),"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"},{"line_number":43,"context_line":"        mysql_charset\u003d\u0027utf8\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_48b68c8b","line":40,"updated":"2015-03-27 13:56:57.000000000","message":"Why a length of 45? UUIDs are typically 36 characters. Also does not match length in models.py.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":54,"context_line":"    volume_encryption_metadata_id \u003d Column(\u0027volume_encryption_metadata_id\u0027,"},{"line_number":55,"context_line":"                                           String(length\u003d45))"},{"line_number":56,"context_line":"    try:"},{"line_number":57,"context_line":"        volumes.create_column(volume_encryption_metadata_id)"},{"line_number":58,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_486d6c03","line":55,"updated":"2015-03-27 13:56:57.000000000","message":"Should add foreign key constraint to this column.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                             provider\u003d\\"},{"line_number":96,"context_line":"                                             encryptionValuesArray[counter][7],"},{"line_number":97,"context_line":"                                             ),"},{"line_number":98,"context_line":"                    )"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    session.commit()"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_fba3ec9c","line":98,"updated":"2015-03-27 13:56:57.000000000","message":"Correct me if I\u0027m wrong, but the effect of the previous two loops is to copy information from the (volume type) encryption table to the newly-created volume_encryption_metadata table. It looks like the association between the volume_encryption_metadata table and existing encrypted volumes is missing, which means that the information in the volume_encryption_metadata table is essentially orphaned.\n\nSee comments in test_migrations for a way to check for this possibility.\n\nI suggest rewriting the existing code something like the following:\n\n    with session.begin():\n        # retrieve encrypted volume types\n        for encryption in session.query(models.Encryption):\n            # retrieve encrypted volumes\n            volumes \u003d session.query(models.Volume).\n                      filter(volume_type_id \u003d\u003d encryption.volume_type_id)\n            # iterate over volumes to copy encryption metadata to new table\n            for volume in volumes:\n                values \u003d {\n                    \u0027cipher\u0027: encryption.cipher,\n                    \u0027key_size\u0027: encryption.key_size,\n                    \u0027provider\u0027: encryption.provider,\n                    \u0027control_location\u0027: encryption.control_location,\n                    \u0027created_at\u0027: volume.created_at,\n                    \u0027updated_at\u0027: volume.updated_at,\n                    \u0027deleted_at\u0027: volume.deleted_at,\n                    \u0027deleted\u0027: volume.deleted,\n                }\n\n                metadata \u003d models.VolumeEncryptionMetadata()\n                metadata.update(values)\n\n                session.add(metadata)","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                             provider\u003d\\"},{"line_number":96,"context_line":"                                             encryptionValuesArray[counter][7],"},{"line_number":97,"context_line":"                                             ),"},{"line_number":98,"context_line":"                    )"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    session.commit()"},{"line_number":101,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da9b358b_e8730c4c","line":98,"in_reply_to":"fa963961_fba3ec9c","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"}],"cinder/db/sqlalchemy/migrate_repo/versions/042_volume_encryption_metadata.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":55,"context_line":"    volume_encryption_metadata_id \u003d Column(\u0027volume_encryption_metadata_id\u0027,"},{"line_number":56,"context_line":"                                           String(length\u003d45))"},{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        volumes.create_column(volume_encryption_metadata_id)"},{"line_number":59,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_d67eb4e3","line":56,"updated":"2015-04-07 14:12:39.000000000","message":"Should add foreign key constraint to this column.","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":55,"context_line":"    volume_encryption_metadata_id \u003d Column(\u0027volume_encryption_metadata_id\u0027,"},{"line_number":56,"context_line":"                                           String(length\u003d45))"},{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        volumes.create_column(volume_encryption_metadata_id)"},{"line_number":59,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_e6e1cf9b","line":56,"in_reply_to":"9aa53dc9_d64fd490","updated":"2015-04-09 20:53:28.000000000","message":"Done","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":55,"context_line":"    volume_encryption_metadata_id \u003d Column(\u0027volume_encryption_metadata_id\u0027,"},{"line_number":56,"context_line":"                                           String(length\u003d45))"},{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        volumes.create_column(volume_encryption_metadata_id)"},{"line_number":59,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_f4a142f9","line":56,"in_reply_to":"9aa53dc9_d67eb4e3","updated":"2015-04-09 20:53:28.000000000","message":"Done","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"1e32a7a29034103c9f3f5f7f91a7a974061d6ef8","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"},{"line_number":55,"context_line":"    volume_encryption_metadata_id \u003d Column(\u0027volume_encryption_metadata_id\u0027,"},{"line_number":56,"context_line":"                                           String(length\u003d45))"},{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        volumes.create_column(volume_encryption_metadata_id)"},{"line_number":59,"context_line":"    except Exception:"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_d64fd490","line":56,"in_reply_to":"9aa53dc9_d67eb4e3","updated":"2015-04-07 14:13:13.000000000","message":"Length should only be 36 to match the \u0027id\u0027 field declared above.","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"}],"cinder/db/sqlalchemy/migrate_repo/versions/047_volume_encryption_metadata.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"1cb6076c2d7493c1d37fdb0d27fba3480969bae1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    # encryption types associated with particular volume type"},{"line_number":32,"context_line":"    volume_encryption_metadata \u003d Table("},{"line_number":33,"context_line":"        \u0027volume_encryption_metadata\u0027, meta,"},{"line_number":34,"context_line":"        Column(\u0027created_at\u0027, DateTime(timezone\u003dFalse)),"},{"line_number":35,"context_line":"        Column(\u0027updated_at\u0027, DateTime(timezone\u003dFalse)),"}],"source_content_type":"text/x-python","patch_set":17,"id":"3acd31a7_114d7b72","line":32,"updated":"2015-04-29 17:14:30.000000000","message":"This table largely duplicates the existing \u0027encryption\u0027 table. Is it possible to reuse the existing table rather than adding a new one?","commit_id":"adcc9a5153955082bac0fbd393a49653d0ad81f8"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"1cb6076c2d7493c1d37fdb0d27fba3480969bae1","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                .values(volume_encryption_metadata_id\u003did).execute()"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"def downgrade(migrate_engine):"},{"line_number":106,"context_line":"    meta \u003d MetaData(bind\u003dmigrate_engine)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    volumes \u003d Table(\u0027volumes\u0027, meta, autoload\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3acd31a7_5103f3b8","line":105,"updated":"2015-04-29 17:14:30.000000000","message":"This downgrade effectively precludes using any encrypted volumes, as they won\u0027t be able to retrieve encryption metadata. Perhaps it would be better to *not* allow this downgrade? In the very least, a log warning should be present and maybe even a a special flag so that operations must intentionally \"force\" the downgrade.","commit_id":"adcc9a5153955082bac0fbd393a49653d0ad81f8"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"1cb6076c2d7493c1d37fdb0d27fba3480969bae1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        volumes.c.volume_encryption_metadata_id.drop()"},{"line_number":124,"context_line":"    except Exception:"},{"line_number":125,"context_line":"        LOG.error(_(\"volume_encryption_metadata_id column \""},{"line_number":126,"context_line":"                    \"not dropped from volumes\"))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    # drop encryption types table"},{"line_number":129,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":17,"id":"3acd31a7_d1c943ae","line":126,"updated":"2015-04-29 17:14:30.000000000","message":"Missing \u0027raise\u0027?","commit_id":"adcc9a5153955082bac0fbd393a49653d0ad81f8"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b8586aac4d7fc67f6689a9cd2436d9c5d915e5f3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        Column(\u0027cipher\u0027, String(length\u003d255), nullable\u003dTrue),"},{"line_number":39,"context_line":"        Column(\u0027control_location\u0027, String(length\u003d255), nullable\u003dFalse),"},{"line_number":40,"context_line":"        Column(\u0027key_size\u0027, Integer, nullable\u003dTrue),"},{"line_number":41,"context_line":"        Column(\u0027provider\u0027, String(length\u003d255), nullable\u003dFalse),"},{"line_number":42,"context_line":"        Column(\u0027id\u0027, String(length\u003d36), nullable\u003dFalse, primary_key\u003dTrue),"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"3afb71cf_c5095133","line":41,"updated":"2015-06-05 18:18:39.000000000","message":"Column(\u0027cipher\u0027, String(length\u003d255), nullable\u003dTrue),\nbut\nColumn(\u0027provider\u0027, String(length\u003d255), nullable\u003dFalse),\n\nThere fields declaration in the same in models.py:\ncipher \u003d Column(String(255))\ncontrol_location \u003d Column(String(255))","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        Column(\u0027cipher\u0027, String(length\u003d255), nullable\u003dTrue),"},{"line_number":39,"context_line":"        Column(\u0027control_location\u0027, String(length\u003d255), nullable\u003dFalse),"},{"line_number":40,"context_line":"        Column(\u0027key_size\u0027, Integer, nullable\u003dTrue),"},{"line_number":41,"context_line":"        Column(\u0027provider\u0027, String(length\u003d255), nullable\u003dFalse),"},{"line_number":42,"context_line":"        Column(\u0027id\u0027, String(length\u003d36), nullable\u003dFalse, primary_key\u003dTrue),"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        mysql_engine\u003d\u0027InnoDB\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_a1a3bc9d","line":41,"in_reply_to":"3afb71cf_c5095133","updated":"2015-07-07 15:02:50.000000000","message":"Done\n\nMy understanding is that \"nullable\" is by default, true. This should not be in conflict with the declaration in models.py. Feel free to let me know if I\u0027m mistaken","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b8586aac4d7fc67f6689a9cd2436d9c5d915e5f3","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        volumes.c.volume_encryption_metadata_id.drop()"},{"line_number":124,"context_line":"    except Exception:"},{"line_number":125,"context_line":"        LOG.error(_LE(\"volume_encryption_metadata_id column \""},{"line_number":126,"context_line":"                      \"not dropped from volumes\"))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    # drop encryption types table"},{"line_number":129,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":18,"id":"3afb71cf_a834ecdd","line":126,"updated":"2015-06-05 18:18:39.000000000","message":"Is raise missed?","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        volumes.c.volume_encryption_metadata_id.drop()"},{"line_number":124,"context_line":"    except Exception:"},{"line_number":125,"context_line":"        LOG.error(_LE(\"volume_encryption_metadata_id column \""},{"line_number":126,"context_line":"                      \"not dropped from volumes\"))"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"    # drop encryption types table"},{"line_number":129,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_a1b09c8c","line":126,"in_reply_to":"3afb71cf_a834ecdd","updated":"2015-07-07 15:02:50.000000000","message":"Yes, thanks","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"}],"cinder/db/sqlalchemy/migrate_repo/versions/049_volume_encryption_metadata.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":58,"context_line":"    try:"},{"line_number":59,"context_line":"        volumes.create_column(volume_encryption_metadata_id)"},{"line_number":60,"context_line":"    except Exception:"},{"line_number":61,"context_line":"        LOG.error(_LE(\"Column |%s| not created!\"),"},{"line_number":62,"context_line":"                  repr(volume_encryption_metadata_id))"},{"line_number":63,"context_line":"        raise"},{"line_number":64,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_543b65eb","line":61,"updated":"2015-07-07 16:02:16.000000000","message":"Should include the table being worked on here.","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":69,"context_line":"    try:"},{"line_number":70,"context_line":"        fk.create()"},{"line_number":71,"context_line":"    except Exception:"},{"line_number":72,"context_line":"        LOG.error(_LE(\"Foreign key |%s| not created!\"), repr(fk))"},{"line_number":73,"context_line":"        raise"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    # pre-populate table for pre-existing encrypted volumes"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_f42ab98f","line":72,"updated":"2015-07-07 16:02:16.000000000","message":"Same comment here.","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    try:"},{"line_number":116,"context_line":"        fk.drop()"},{"line_number":117,"context_line":"    except Exception:"},{"line_number":118,"context_line":"        LOG.error(_LE(\"Foreign key |%s| not dropped!\"))"},{"line_number":119,"context_line":"        raise"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    # drop volume_encryption_metadata_id"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_4f3d12ba","line":118,"updated":"2015-07-07 16:02:16.000000000","message":"Same comment here.","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        volumes.c.volume_encryption_metadata_id.drop()"},{"line_number":124,"context_line":"    except Exception:"},{"line_number":125,"context_line":"        LOG.error(_LE(\"volume_encryption_metadata_id column \""},{"line_number":126,"context_line":"                      \"not dropped from volumes\"))"},{"line_number":127,"context_line":"        raise"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    # drop encryption types table"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_6f6ed6ca","line":126,"updated":"2015-07-07 16:02:16.000000000","message":"need \u0027.\u0027 at EOL.","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    try:"},{"line_number":131,"context_line":"        volume_encryption_metadata.drop()"},{"line_number":132,"context_line":"    except Exception:"},{"line_number":133,"context_line":"        LOG.error(_LE(\"volume_encryption_metadata table not dropped\"))"},{"line_number":134,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_af829e50","line":133,"updated":"2015-07-07 16:02:16.000000000","message":"\u0027.\u0027 at EOL.","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"}],"cinder/db/sqlalchemy/models.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    \"\"\"Represents the volume encryption metadata\"\"\""},{"line_number":106,"context_line":"    \"\"\"Encryption here is a set of performance characteristics describing"},{"line_number":107,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":108,"context_line":"    \"\"\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    __tablename__ \u003d \u0027volume_encryption_metadata\u0027"},{"line_number":111,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_a4374daf","line":108,"updated":"2015-02-10 17:18:34.000000000","message":"This docstring isn\u0027t formatted correctly.\n\nSee http://docs.openstack.org/developer/hacking/#docstrings","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    \"\"\"Represents the volume encryption metadata\"\"\""},{"line_number":106,"context_line":"    \"\"\"Encryption here is a set of performance characteristics describing"},{"line_number":107,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":108,"context_line":"    \"\"\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"    __tablename__ \u003d \u0027volume_encryption_metadata\u0027"},{"line_number":111,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3d7290e3","line":108,"in_reply_to":"da86d52c_a4374daf","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6804,"name":"bruce-benjamin","email":"bruce.benjamin@jhuapl.edu","username":"bruce-benjamin"},"change_message_id":"80c00ad0114af3cd76ae08674405a6dbd118d0cc","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    Encryption here is a set of performance characteristics describing"},{"line_number":108,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":109,"context_line":"    \"\"\""},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    __tablename__ \u003d \u0027volume_encryption_metadata\u0027"},{"line_number":112,"context_line":"    id \u003d Column(String(36), primary_key\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a80dd14_9b1e9b0c","line":109,"updated":"2015-03-10 15:10:42.000000000","message":"suggest the following for clarification..\ns/provider/provider (e.g. a volume driver class path)/","commit_id":"bb8554e1814d0342fa8a5414622ff2c714760cdc"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":105,"context_line":"class VolumeEncryptionMetadata(BASE, CinderBase):"},{"line_number":106,"context_line":"    \"\"\"Represents the volume encryption metadata"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    Encryption here is a set of performance characteristics describing"},{"line_number":109,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":110,"context_line":"    \"\"\""},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_be779201","line":108,"updated":"2015-03-27 13:56:57.000000000","message":"nit: delete \"performance\"","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":105,"context_line":"class VolumeEncryptionMetadata(BASE, CinderBase):"},{"line_number":106,"context_line":"    \"\"\"Represents the volume encryption metadata"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    Encryption here is a set of performance characteristics describing"},{"line_number":109,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":110,"context_line":"    \"\"\""},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_18867d65","line":108,"in_reply_to":"fa963961_be779201","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    \"\"\"Represents the volume encryption metadata"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    Encryption here is a set of performance characteristics describing"},{"line_number":109,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":110,"context_line":"    \"\"\""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    __tablename__ \u003d \u0027volume_encryption_metadata\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_7e60ea35","line":109,"updated":"2015-03-27 13:56:57.000000000","message":"...certain volume type -\u003e ...certain encrypted volume","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    \"\"\"Represents the volume encryption metadata"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    Encryption here is a set of performance characteristics describing"},{"line_number":109,"context_line":"    cipher, provider, and key_size for a certain volume type."},{"line_number":110,"context_line":"    \"\"\""},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    __tablename__ \u003d \u0027volume_encryption_metadata\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_f87cf973","line":109,"in_reply_to":"fa963961_7e60ea35","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":187,"context_line":"        foreign_keys\u003dconsistencygroup_id,"},{"line_number":188,"context_line":"        primaryjoin\u003d\u0027Volume.consistencygroup_id \u003d\u003d ConsistencyGroup.id\u0027)"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    volume_encryption_metadata_id \u003d \\"},{"line_number":191,"context_line":"        Column(String(36), ForeignKey(\u0027volume_encryption_metadata.id\u0027))"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    volume_encryption_metadata \u003d relationship("}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_af05bec2","line":190,"updated":"2015-07-07 16:02:16.000000000","message":"Please use () instead of \\","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"}],"cinder/exception.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":259,"context_line":"class VolumeMetadataNotFound(NotFound):"},{"line_number":260,"context_line":"    message \u003d _(\"Volume %(volume_id)s has no metadata with \""},{"line_number":261,"context_line":"                \"key %(metadata_key)s.\")"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"class VolumeAdminMetadataNotFound(NotFound):"},{"line_number":264,"context_line":"    message \u003d _(\"Volume %(volume_id)s has no administration metadata with \""},{"line_number":265,"context_line":"                \"key %(metadata_key)s.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a24c949f","line":262,"updated":"2015-02-03 23:11:25.000000000","message":"space deleted","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":259,"context_line":"class VolumeMetadataNotFound(NotFound):"},{"line_number":260,"context_line":"    message \u003d _(\"Volume %(volume_id)s has no metadata with \""},{"line_number":261,"context_line":"                \"key %(metadata_key)s.\")"},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"class VolumeAdminMetadataNotFound(NotFound):"},{"line_number":264,"context_line":"    message \u003d _(\"Volume %(volume_id)s has no administration metadata with \""},{"line_number":265,"context_line":"                \"key %(metadata_key)s.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a4ecd72a","line":262,"in_reply_to":"da86d52c_a24c949f","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":393,"context_line":"    message \u003d _(\"File %(file_path)s could not be found.\")"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"# TODO(bcwaldon): EOL this exception!"},{"line_number":397,"context_line":"class Duplicate(CinderException):"},{"line_number":398,"context_line":"    pass"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_845089d5","line":396,"updated":"2015-02-10 17:18:34.000000000","message":"This shouldn\u0027t be changed in this patch.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":393,"context_line":"    message \u003d _(\"File %(file_path)s could not be found.\")"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"# TODO(bcwaldon): EOL this exception!"},{"line_number":397,"context_line":"class Duplicate(CinderException):"},{"line_number":398,"context_line":"    pass"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_c4741d00","line":396,"in_reply_to":"da86d52c_845089d5","updated":"2015-02-11 12:55:41.000000000","message":"Agreed","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":393,"context_line":"    message \u003d _(\"File %(file_path)s could not be found.\")"},{"line_number":394,"context_line":""},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"# TODO(bcwaldon): EOL this exception!"},{"line_number":397,"context_line":"class Duplicate(CinderException):"},{"line_number":398,"context_line":"    pass"},{"line_number":399,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_dd35f446","line":396,"in_reply_to":"da86d52c_845089d5","updated":"2015-03-05 21:25:17.000000000","message":"I had to do this because it was causing PEP8 warnings","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":726,"context_line":"    message \u003d _(\"Bad HTTP response status %(status)s\")"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"# SolidFire"},{"line_number":730,"context_line":"class SolidFireAPIException(VolumeBackendAPIException):"},{"line_number":731,"context_line":"    message \u003d _(\"Bad response from SolidFire API\")"},{"line_number":732,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_0462b53d","line":729,"updated":"2015-02-11 12:55:41.000000000","message":"ditto","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":726,"context_line":"    message \u003d _(\"Bad HTTP response status %(status)s\")"},{"line_number":727,"context_line":""},{"line_number":728,"context_line":""},{"line_number":729,"context_line":"# SolidFire"},{"line_number":730,"context_line":"class SolidFireAPIException(VolumeBackendAPIException):"},{"line_number":731,"context_line":"    message \u003d _(\"Bad response from SolidFire API\")"},{"line_number":732,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_a086f062","line":729,"in_reply_to":"da86d52c_0462b53d","updated":"2015-03-05 21:25:17.000000000","message":"Missing space was getting me PEP8 errors","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":186,"context_line":"    message \u003d _(\"Invalid volume type: %(reason)s\")"},{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"class InvalidVolumeEncryptionMetadata(Invalid):"},{"line_number":190,"context_line":"    message \u003d _(\"Invalid volume encryption metadata: %(reasons)s\")"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_b900ccab","line":189,"updated":"2015-03-27 13:56:57.000000000","message":"Probably missed it, but this class doesn\u0027t appear to be used?","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    message \u003d _(\"Invalid volume type: %(reason)s\")"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"class InvalidVolumeEncryptionMetadata(Invalid):"},{"line_number":191,"context_line":"    message \u003d _(\"Invalid volume encryption metadata: %(reasons)s\")"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_164c1cc6","line":190,"updated":"2015-04-07 14:12:39.000000000","message":"Probably missed it, but this class doesn\u0027t appear to be used?","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    message \u003d _(\"Invalid volume type: %(reason)s\")"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"class InvalidVolumeEncryptionMetadata(Invalid):"},{"line_number":191,"context_line":"    message \u003d _(\"Invalid volume encryption metadata: %(reasons)s\")"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_b48f3f29","line":190,"in_reply_to":"9aa53dc9_164c1cc6","updated":"2015-04-09 20:53:28.000000000","message":"Done","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"}],"cinder/tests/api/contrib/test_volume_encryption_metadata.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.controller \u003d (volume_encryption_metadata."},{"line_number":71,"context_line":"                           VolumeEncryptionMetadataController())"},{"line_number":72,"context_line":"#        self.stubs.Set(db.sqlalchemy.api, \u0027volume_type_encryption_get\u0027,"},{"line_number":73,"context_line":"#                       return_volume_type_encryption_metadata)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        self.stubs.Set(db.sqlalchemy.api, \u0027volume_encryption_metadata_get\u0027,"},{"line_number":76,"context_line":"                       return_volume_encryption_metadata)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_425d9846","line":73,"updated":"2015-02-03 23:11:25.000000000","message":"Please remove commented-out code.","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.controller \u003d (volume_encryption_metadata."},{"line_number":71,"context_line":"                           VolumeEncryptionMetadataController())"},{"line_number":72,"context_line":"#        self.stubs.Set(db.sqlalchemy.api, \u0027volume_type_encryption_get\u0027,"},{"line_number":73,"context_line":"#                       return_volume_type_encryption_metadata)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        self.stubs.Set(db.sqlalchemy.api, \u0027volume_encryption_metadata_get\u0027,"},{"line_number":76,"context_line":"                       return_volume_encryption_metadata)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a4d3f75d","line":73,"in_reply_to":"da86d52c_425d9846","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        super(VolumeEncryptionMetadataTest, self).setUp()"},{"line_number":70,"context_line":"        self.controller \u003d (volume_encryption_metadata."},{"line_number":71,"context_line":"                           VolumeEncryptionMetadataController())"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        self.stubs.Set(db.sqlalchemy.api, \u0027volume_encryption_metadata_get\u0027,"},{"line_number":74,"context_line":"                       return_volume_encryption_metadata)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_590f80e1","line":72,"updated":"2015-03-27 13:56:57.000000000","message":"nit: Unnecessary whitespace change.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        super(VolumeEncryptionMetadataTest, self).setUp()"},{"line_number":70,"context_line":"        self.controller \u003d (volume_encryption_metadata."},{"line_number":71,"context_line":"                           VolumeEncryptionMetadataController())"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        self.stubs.Set(db.sqlalchemy.api, \u0027volume_encryption_metadata_get\u0027,"},{"line_number":74,"context_line":"                       return_volume_encryption_metadata)"},{"line_number":75,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_98472d1d","line":72,"in_reply_to":"fa963961_590f80e1","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"}],"cinder/tests/test_migrations.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":722,"context_line":"        snapshots \u003d db_utils.get_table(engine, \u0027snapshots\u0027)"},{"line_number":723,"context_line":"        self.assertNotIn(\u0027provider_id\u0027, snapshots.c)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"    def _check_037(self, engine):"},{"line_number":726,"context_line":"        # encryption key uuid"},{"line_number":727,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027snapshots\u0027)"},{"line_number":728,"context_line":"        self.assertTrue(\u0027encryption_key_id\u0027 in volumes.c)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_c44b3daf","line":725,"updated":"2015-02-11 12:55:41.000000000","message":"037 does not match migration number (027).","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":722,"context_line":"        snapshots \u003d db_utils.get_table(engine, \u0027snapshots\u0027)"},{"line_number":723,"context_line":"        self.assertNotIn(\u0027provider_id\u0027, snapshots.c)"},{"line_number":724,"context_line":""},{"line_number":725,"context_line":"    def _check_037(self, engine):"},{"line_number":726,"context_line":"        # encryption key uuid"},{"line_number":727,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027snapshots\u0027)"},{"line_number":728,"context_line":"        self.assertTrue(\u0027encryption_key_id\u0027 in volumes.c)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_60a47457","line":725,"in_reply_to":"da86d52c_c44b3daf","updated":"2015-03-05 21:25:17.000000000","message":"fixed","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":754,"context_line":"            isinstance(volume_encryption_metadata.c.provider.type,"},{"line_number":755,"context_line":"                       sqlalchemy.types.VARCHAR))"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    def _post_downgrade_037(self, engine):"},{"line_number":758,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"},{"line_number":759,"context_line":"        self.assertTrue(\u0027encryption_key_id\u0027 not in volumes.c)"},{"line_number":760,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_44cf4d29","line":757,"updated":"2015-02-11 12:55:41.000000000","message":"ditto","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":754,"context_line":"            isinstance(volume_encryption_metadata.c.provider.type,"},{"line_number":755,"context_line":"                       sqlalchemy.types.VARCHAR))"},{"line_number":756,"context_line":""},{"line_number":757,"context_line":"    def _post_downgrade_037(self, engine):"},{"line_number":758,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"},{"line_number":759,"context_line":"        self.assertTrue(\u0027encryption_key_id\u0027 not in volumes.c)"},{"line_number":760,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_e08f84ca","line":757,"in_reply_to":"da86d52c_44cf4d29","updated":"2015-03-05 21:25:17.000000000","message":"fixed","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":804,"context_line":""},{"line_number":805,"context_line":"class TestPostgresqlMigrations(test_base.PostgreSQLOpportunisticTestCase,"},{"line_number":806,"context_line":"                               MigrationsMixin):"},{"line_number":807,"context_line":"    TIME_TYPE \u003d sqlalchemy.types.TIMESTAMP"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_641ab518","line":807,"updated":"2015-02-10 17:18:34.000000000","message":"There shouldn\u0027t be a change here.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":804,"context_line":""},{"line_number":805,"context_line":"class TestPostgresqlMigrations(test_base.PostgreSQLOpportunisticTestCase,"},{"line_number":806,"context_line":"                               MigrationsMixin):"},{"line_number":807,"context_line":"    TIME_TYPE \u003d sqlalchemy.types.TIMESTAMP"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_982c6a4c","line":807,"in_reply_to":"da86d52c_641ab518","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":847,"context_line":"                                         \u0027key\u0027: \u0027fake-v3\u0027,"},{"line_number":848,"context_line":"                                         \u0027value\u0027: \u0027fake-gold\u0027,"},{"line_number":849,"context_line":"                                         },"},{"line_number":850,"context_line":"                                        ],"},{"line_number":851,"context_line":"            \u0027encryption\u0027: [{\u0027encryption_id\u0027: encryption_key1,"},{"line_number":852,"context_line":"                            \u0027cipher\u0027: \u0027fake - super secret squirrel\u0027,"},{"line_number":853,"context_line":"                            \u0027key_size\u0027: 256, \u0027provider\u0027: \u0027fake-key master\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_1b5c5024","line":850,"updated":"2015-03-27 13:56:57.000000000","message":"Don\u0027t think the extra_specs are necessary.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":847,"context_line":"                                         \u0027key\u0027: \u0027fake-v3\u0027,"},{"line_number":848,"context_line":"                                         \u0027value\u0027: \u0027fake-gold\u0027,"},{"line_number":849,"context_line":"                                         },"},{"line_number":850,"context_line":"                                        ],"},{"line_number":851,"context_line":"            \u0027encryption\u0027: [{\u0027encryption_id\u0027: encryption_key1,"},{"line_number":852,"context_line":"                            \u0027cipher\u0027: \u0027fake - super secret squirrel\u0027,"},{"line_number":853,"context_line":"                            \u0027key_size\u0027: 256, \u0027provider\u0027: \u0027fake-key master\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_b8731180","line":850,"in_reply_to":"fa963961_1b5c5024","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        volume_type_es \u003d db_utils.get_table(engine, \u0027volume_type_extra_specs\u0027)"},{"line_number":869,"context_line":"        for vtes in data[\u0027volume_type_extra_specs\u0027]:"},{"line_number":870,"context_line":"            r \u003d volume_type_es.insert().values(vtes).execute()"},{"line_number":871,"context_line":"            vtes[\u0027id\u0027] \u003d r.inserted_primary_key[0]"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"},{"line_number":874,"context_line":"        for vol in data[\u0027volumes\u0027]:"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_1b81f04a","line":871,"updated":"2015-03-27 13:56:57.000000000","message":"This code block can be removed if extra_specs aren\u0027t necessary for this test.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":868,"context_line":"        volume_type_es \u003d db_utils.get_table(engine, \u0027volume_type_extra_specs\u0027)"},{"line_number":869,"context_line":"        for vtes in data[\u0027volume_type_extra_specs\u0027]:"},{"line_number":870,"context_line":"            r \u003d volume_type_es.insert().values(vtes).execute()"},{"line_number":871,"context_line":"            vtes[\u0027id\u0027] \u003d r.inserted_primary_key[0]"},{"line_number":872,"context_line":""},{"line_number":873,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"},{"line_number":874,"context_line":"        for vol in data[\u0027volumes\u0027]:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_986e0d95","line":871,"in_reply_to":"fa963961_1b81f04a","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":906,"context_line":""},{"line_number":907,"context_line":"        self.assertTrue("},{"line_number":908,"context_line":"            isinstance(volume_encryption_metadata_table.c.provider.type,"},{"line_number":909,"context_line":"                       sqlalchemy.types.VARCHAR))"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata).count(), 2)"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_9b52a0dc","line":909,"updated":"2015-03-27 13:56:57.000000000","message":"Please group the previous 4 assertions since they\u0027re all related to checking the types of columns. A code comment before them would also be helpful to distinguish the purpose of these assertions from the ones that follow.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":906,"context_line":""},{"line_number":907,"context_line":"        self.assertTrue("},{"line_number":908,"context_line":"            isinstance(volume_encryption_metadata_table.c.provider.type,"},{"line_number":909,"context_line":"                       sqlalchemy.types.VARCHAR))"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata).count(), 2)"},{"line_number":912,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_3806e1ce","line":909,"in_reply_to":"fa963961_9b52a0dc","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":911,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata).count(), 2)"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata.cipher)[0],"},{"line_number":914,"context_line":"                         session.query(Encryption.cipher)[0])"},{"line_number":915,"context_line":""},{"line_number":916,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata."},{"line_number":917,"context_line":"                                       control_location)[1],"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_bbf1e4cf","line":914,"updated":"2015-03-27 13:56:57.000000000","message":"Unless SQLAlchemy implicitly enforces an ordering of results, this assertion is not safe because the database can return results in any order. (That is, the ordering of results should be presumed to be random.)","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":911,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata).count(), 2)"},{"line_number":912,"context_line":""},{"line_number":913,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata.cipher)[0],"},{"line_number":914,"context_line":"                         session.query(Encryption.cipher)[0])"},{"line_number":915,"context_line":""},{"line_number":916,"context_line":"        self.assertEqual(session.query(VolumeEncryptionMetadata."},{"line_number":917,"context_line":"                                       control_location)[1],"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_f80f59df","line":914,"in_reply_to":"fa963961_bbf1e4cf","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":922,"context_line":""},{"line_number":923,"context_line":"        self.assertEqual(session.query(Volume.encryption_key_id)."},{"line_number":924,"context_line":"                         filter(Volume.id \u003d\u003d data[\"volumes\"][0][\"id\"])[0],"},{"line_number":925,"context_line":"                         session.query(Encryption.encryption_id)[0])"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"    def _post_downgrade_041(self, engine):"},{"line_number":928,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_3bd154ce","line":925,"updated":"2015-03-27 13:56:57.000000000","message":"Following up on the comment on the migration, I think these tests should be restructured.\n\nThere are the following cases that are of interest:\n\n* an ordinary (unencrypted) volume,\n* an ordinary (unencrypted) volume that has a volume type,\n* an encrypted volume (with an associated encrypted volume type), and\n* an encrypted volume type that has no associated volumes.\n\nThe existing test covers case 2 and partially covers case 3. Complete coverage of case 3 requires checking the link between the volume and volume_encryption_metadata tables as well as the information now duplicated in the volume_encryption_metadata table. Case 4 I think will expose an issue with the current migration because the encryption information will be copied to the volume_encryption_metadata table even though it shouldn\u0027t be.\n\nI suggest the following in the test case:\n\ndef _pre_upgrade_041(self, engine):\n        # ...\n        data \u003d {\n            \u0027volumes\u0027: [\n                {\u0027id\u0027: \u0027fake-volume-id_1\u0027},  # ordinary (unencrypted) volume\n                {\u0027id\u0027: \u0027fake-volume-id_2\u0027,  # ordinary volume with volume type\n                 \u0027volume_type_id\u0027: \u0027fake-volume-type-id_2\u0027},\n                {\u0027id\u0027: \u0027fake-volume-id_3\u0027,  # encrypted volume\n                 \u0027volume_type_id\u0027: \u0027fake-volume-type-id_3\u0027},\n            ],\n            \u0027volume_types\u0027: [\n                {\u0027id\u0027: \u0027fake-volume-type-id_2\u0027,  # ordinary (unencrypted) type\n                 \u0027name\u0027: \u0027fake-volume-type\u0027},\n                {\u0027id\u0027: \u0027fake-volume-type-id_3\u0027,  # encrypted volume type\n                 \u0027name\u0027: \u0027fake-encrypted-volume-type_3\u0027},\n                {\u0027id\u0027: \u0027fake-volume-type-id_4\u0027,  # encrypted volume type\n                 \u0027name\u0027: \u0027fake-encrypted-volume-type_4\u0027},\n            ],\n            \u0027encryption\u0027: [\n                {\u0027volume_type_id\u0027: \u0027fake-volume-type-id_3\u0027,\n                 \u0027encryption_id\u0027: \u0027fake-encryption-id_3\u0027,\n                 \u0027cipher\u0027: \u0027fake-cipher_3\u0027,\n                 \u0027key_size\u0027: 256,\n                 \u0027provider\u0027: \u0027fake-provider_3\u0027,\n                 \u0027control_location\u0027: \u0027fake-control-location_3\u0027},\n                {\u0027volume_type_id\u0027: \u0027fake-volume-type-id_4\u0027,\n                 \u0027encryption_id\u0027: \u0027fake-encryption-id_4\u0027,\n                 \u0027cipher\u0027: \u0027fake-cipher_4\u0027,\n                 \u0027key_size\u0027: 256,\n                 \u0027provider\u0027: \u0027fake-provider_4\u0027,\n                 \u0027control_location\u0027: \u0027fake-control-location_4\u0027},\n            ],\n        }\n        # ...\n\n    def _check_041(self, engine, data):\n        # ...\n\n        # one existing encrypted volume\n        self.assertEqual(session.query(VolumeEncryptionMetadata).count(), 1)\n\n        # check link between volume and volume_encryption_metadata tables\n        volume \u003d session.query(Volume).\n                 filter(Volume.id \u003d\u003d data[\u0027volumes\u0027][2][\u0027id\u0027]).first()\n        self.assertIsNotNone(volume.volume_encryption_metadata_id,\n                             \u0027Missing foreign key to encryption metadata\u0027)\n\n        # check data copied from encryption to volume_encryption_metadata\n        vol_type_encryption \u003d session.query(Encryption).\n                filter(Encryption.volume_type_id \u003d\u003d\n                       data[\u0027volume_types\u0027][2][\u0027id\u0027]).first()\n\n        volume_enc_metadata \u003d session.query(VolumeEncryptionMetadata).\n                filter(VolumeEncryptionMetadata.id \u003d\u003d\n                       volume.volume_encryption_metadata_id).first()\n        self.assertIsNotNone(volume_enc_metadata,\n                             \u0027Missing encryption metadata for volume\u0027)\n        for key in [\u0027cipher\u0027, \u0027key_size\u0027, \u0027provider\u0027, \u0027control_location\u0027]:\n            self.assertEqual(vol_type_encryption[key],\n                             volume_enc_metadata[key])","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":922,"context_line":""},{"line_number":923,"context_line":"        self.assertEqual(session.query(Volume.encryption_key_id)."},{"line_number":924,"context_line":"                         filter(Volume.id \u003d\u003d data[\"volumes\"][0][\"id\"])[0],"},{"line_number":925,"context_line":"                         session.query(Encryption.encryption_id)[0])"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"    def _post_downgrade_041(self, engine):"},{"line_number":928,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_b8faf1bb","line":925,"in_reply_to":"fa963961_3bd154ce","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":925,"context_line":"                         session.query(Encryption.encryption_id)[0])"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"    def _post_downgrade_041(self, engine):"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":"        self.assertFalse(engine.dialect.has_table(engine.connect(),"},{"line_number":930,"context_line":"                         \u0027volume_encryption_metadata\u0027))"},{"line_number":931,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_5bd53841","line":928,"updated":"2015-03-27 13:56:57.000000000","message":"nit: Unnecessary blank line.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0559468a4794ded02dbbf058ce4d3cb4f1674130","unresolved":false,"context_lines":[{"line_number":925,"context_line":"                         session.query(Encryption.encryption_id)[0])"},{"line_number":926,"context_line":""},{"line_number":927,"context_line":"    def _post_downgrade_041(self, engine):"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":"        self.assertFalse(engine.dialect.has_table(engine.connect(),"},{"line_number":930,"context_line":"                         \u0027volume_encryption_metadata\u0027))"},{"line_number":931,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_78a0e99f","line":928,"in_reply_to":"fa963961_5bd53841","updated":"2015-04-02 21:16:16.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":927,"context_line":"    def _post_downgrade_041(self, engine):"},{"line_number":928,"context_line":""},{"line_number":929,"context_line":"        self.assertFalse(engine.dialect.has_table(engine.connect(),"},{"line_number":930,"context_line":"                         \u0027volume_encryption_metadata\u0027))"},{"line_number":931,"context_line":""},{"line_number":932,"context_line":"    def test_walk_versions(self):"},{"line_number":933,"context_line":"        self.walk_versions(True, False)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_fe3f5a23","line":930,"updated":"2015-03-27 13:56:57.000000000","message":"Also need to check that Volume.volume_encryption_metadata_id column has been dropped.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":923,"context_line":"    def _post_downgrade_042(self, engine):"},{"line_number":924,"context_line":""},{"line_number":925,"context_line":"        self.assertFalse(engine.dialect.has_table(engine.connect(),"},{"line_number":926,"context_line":"                         \u0027volume_encryption_metadata\u0027))"},{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_walk_versions(self):"},{"line_number":929,"context_line":"        self.walk_versions(True, False)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_76036843","line":926,"updated":"2015-04-07 14:12:39.000000000","message":"Also need to check that Volume.volume_encryption_metadata_id column has been dropped.","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":923,"context_line":"    def _post_downgrade_042(self, engine):"},{"line_number":924,"context_line":""},{"line_number":925,"context_line":"        self.assertFalse(engine.dialect.has_table(engine.connect(),"},{"line_number":926,"context_line":"                         \u0027volume_encryption_metadata\u0027))"},{"line_number":927,"context_line":""},{"line_number":928,"context_line":"    def test_walk_versions(self):"},{"line_number":929,"context_line":"        self.walk_versions(True, False)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_ab9b5d65","line":926,"in_reply_to":"9aa53dc9_76036843","updated":"2015-04-09 20:53:28.000000000","message":"Done","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":606,"context_line":"        self.assertIsNotNone(volume[\u0027encryption_key_id\u0027])"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        self.assertEqual(volume[\u0027volume_encryption_metadata_id\u0027],"},{"line_number":609,"context_line":"                         db_vol_enc_metadata.get(\u0027id\u0027))"},{"line_number":610,"context_line":""},{"line_number":611,"context_line":"    def test_create_delete_volume_with_encrypted_volume_type(self):"},{"line_number":612,"context_line":"        self.stubs.Set(keymgr, \"API\", fake_keymgr.fake_api)"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_7e310a0b","line":609,"updated":"2015-03-27 13:56:57.000000000","message":"Also ensure that the information contained within volume encryption metadata matches that of the encrypted volume type.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":647,"context_line":"        db.volume_destroy(self.context, volume[\u0027id\u0027])"},{"line_number":648,"context_line":"        self.assertRaises(exception.NotFound,"},{"line_number":649,"context_line":"                          db.volume_get,"},{"line_number":650,"context_line":"                          self.context,"},{"line_number":651,"context_line":"                          volume[\u0027id\u0027])"},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"    def test_extra_capabilities(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_1e72fee5","line":650,"updated":"2015-03-27 13:56:57.000000000","message":"Should we also ensure that the volume encryption metadata information has been deleted?","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":657,"context_line":"                                   volume_type\u003ddb_vol_type)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        self.assertEqual(volume[\u0027volume_type_id\u0027], db_vol_type.get(\u0027id\u0027))"},{"line_number":660,"context_line":"        self.assertIsNotNone(volume[\u0027encryption_key_id\u0027])"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    def test_create_delete_volume_with_encrypted_volume_type(self):"},{"line_number":663,"context_line":"        self.stubs.Set(keymgr, \"API\", fake_keymgr.fake_api)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_b69fb002","line":660,"updated":"2015-04-07 14:12:39.000000000","message":"Also ensure that the information contained within volume encryption metadata matches that of the encrypted volume type.","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":657,"context_line":"                                   volume_type\u003ddb_vol_type)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"        self.assertEqual(volume[\u0027volume_type_id\u0027], db_vol_type.get(\u0027id\u0027))"},{"line_number":660,"context_line":"        self.assertIsNotNone(volume[\u0027encryption_key_id\u0027])"},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"    def test_create_delete_volume_with_encrypted_volume_type(self):"},{"line_number":663,"context_line":"        self.stubs.Set(keymgr, \"API\", fake_keymgr.fake_api)"}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_74409234","line":660,"in_reply_to":"9aa53dc9_b69fb002","updated":"2015-04-09 20:53:28.000000000","message":"Done","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"cf173fdb290c1bbd3676bb2de7464467a8d89541","unresolved":false,"context_lines":[{"line_number":697,"context_line":"        self.assertRaises(exception.NotFound,"},{"line_number":698,"context_line":"                          db.volume_get,"},{"line_number":699,"context_line":"                          self.context,"},{"line_number":700,"context_line":"                          volume[\u0027id\u0027])"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"    def test_extra_capabilities(self):"},{"line_number":703,"context_line":"        # Test valid extra_capabilities."}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_568744b5","line":700,"updated":"2015-04-07 14:12:39.000000000","message":"Should we also ensure that the volume encryption metadata information has been deleted?","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0337421033aad4c9ff732d763992a16e4aacac8b","unresolved":false,"context_lines":[{"line_number":697,"context_line":"        self.assertRaises(exception.NotFound,"},{"line_number":698,"context_line":"                          db.volume_get,"},{"line_number":699,"context_line":"                          self.context,"},{"line_number":700,"context_line":"                          volume[\u0027id\u0027])"},{"line_number":701,"context_line":""},{"line_number":702,"context_line":"    def test_extra_capabilities(self):"},{"line_number":703,"context_line":"        # Test valid extra_capabilities."}],"source_content_type":"text/x-python","patch_set":12,"id":"9aa53dc9_113958a4","line":700,"in_reply_to":"9aa53dc9_568744b5","updated":"2015-04-09 20:53:28.000000000","message":"Added assert test for this\n\nDone","commit_id":"6ecea006a913fdacefc4296917eea1489c4ce14f"}],"cinder/tests/test_volume_types.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.assertDictMatch(expected, res)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def test_volume_types_diff(self):"},{"line_number":286,"context_line":"        # type_ref 1 and 2 have the same extra_specs, while 3 has different"},{"line_number":287,"context_line":"        keyvals1 \u003d {\"key1\": \"val1\", \"key2\": \"val2\"}"},{"line_number":288,"context_line":"        keyvals2 \u003d {\"key1\": \"val0\", \"key2\": \"val2\"}"},{"line_number":289,"context_line":"        type_ref1 \u003d volume_types.create(self.ctxt, \"type1\", keyvals1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a233b412","line":286,"updated":"2015-02-03 23:11:25.000000000","message":"extra space","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.assertDictMatch(expected, res)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def test_volume_types_diff(self):"},{"line_number":286,"context_line":"        # type_ref 1 and 2 have the same extra_specs, while 3 has different"},{"line_number":287,"context_line":"        keyvals1 \u003d {\"key1\": \"val1\", \"key2\": \"val2\"}"},{"line_number":288,"context_line":"        keyvals2 \u003d {\"key1\": \"val0\", \"key2\": \"val2\"}"},{"line_number":289,"context_line":"        type_ref1 \u003d volume_types.create(self.ctxt, \"type1\", keyvals1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_c441cb0c","line":286,"in_reply_to":"da86d52c_a233b412","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        self.assertEqual(same, False)"},{"line_number":301,"context_line":"        self.assertEqual(diff[\u0027extra_specs\u0027][\u0027key1\u0027], (\u0027val1\u0027, \u0027val0\u0027))"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # qos_ref 1 and 2 have the same specs, while 3 has different"},{"line_number":304,"context_line":"        qos_keyvals1 \u003d {\u0027k1\u0027: \u0027v1\u0027, \u0027k2\u0027: \u0027v2\u0027, \u0027k3\u0027: \u0027v3\u0027}"},{"line_number":305,"context_line":"        qos_keyvals2 \u003d {\u0027k1\u0027: \u0027v0\u0027, \u0027k2\u0027: \u0027v2\u0027, \u0027k3\u0027: \u0027v3\u0027}"},{"line_number":306,"context_line":"        qos_ref1 \u003d qos_specs.create(self.ctxt, \u0027qos-specs-1\u0027, qos_keyvals1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_c238a8f1","line":303,"updated":"2015-02-03 23:11:25.000000000","message":"extra space","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":300,"context_line":"        self.assertEqual(same, False)"},{"line_number":301,"context_line":"        self.assertEqual(diff[\u0027extra_specs\u0027][\u0027key1\u0027], (\u0027val1\u0027, \u0027val0\u0027))"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        # qos_ref 1 and 2 have the same specs, while 3 has different"},{"line_number":304,"context_line":"        qos_keyvals1 \u003d {\u0027k1\u0027: \u0027v1\u0027, \u0027k2\u0027: \u0027v2\u0027, \u0027k3\u0027: \u0027v3\u0027}"},{"line_number":305,"context_line":"        qos_keyvals2 \u003d {\u0027k1\u0027: \u0027v0\u0027, \u0027k2\u0027: \u0027v2\u0027, \u0027k3\u0027: \u0027v3\u0027}"},{"line_number":306,"context_line":"        qos_ref1 \u003d qos_specs.create(self.ctxt, \u0027qos-specs-1\u0027, qos_keyvals1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_64501fd5","line":303,"in_reply_to":"da86d52c_c238a8f1","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"ba9cce4b50f91555e1e4617ec94287036a1b8dba","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.assertDictMatch(expected, res)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def test_volume_types_diff(self):"},{"line_number":286,"context_line":"        # type_ref 1 and 2 have the same extra_specs, while 3 has different"},{"line_number":287,"context_line":"        keyvals1 \u003d {\"key1\": \"val1\", \"key2\": \"val2\"}"},{"line_number":288,"context_line":"        keyvals2 \u003d {\"key1\": \"val0\", \"key2\": \"val2\"}"},{"line_number":289,"context_line":"        type_ref1 \u003d volume_types.create(self.ctxt, \"type1\", keyvals1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_04e1f9fd","line":286,"updated":"2015-02-10 17:18:34.000000000","message":"No changes should be made to this file.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":283,"context_line":"        self.assertDictMatch(expected, res)"},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"    def test_volume_types_diff(self):"},{"line_number":286,"context_line":"        # type_ref 1 and 2 have the same extra_specs, while 3 has different"},{"line_number":287,"context_line":"        keyvals1 \u003d {\"key1\": \"val1\", \"key2\": \"val2\"}"},{"line_number":288,"context_line":"        keyvals2 \u003d {\"key1\": \"val0\", \"key2\": \"val2\"}"},{"line_number":289,"context_line":"        type_ref1 \u003d volume_types.create(self.ctxt, \"type1\", keyvals1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_bd0ffb37","line":286,"in_reply_to":"da86d52c_04e1f9fd","updated":"2015-03-05 21:25:17.000000000","message":"Was getting PEP8 errors because of the missing space","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"}],"cinder/tests/unit/api/contrib/test_volume_encryption_metadata.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                        self.volume_id)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_index(self):"},{"line_number":130,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption\u0027"},{"line_number":133,"context_line":"                                  % self.encrypted_volume_id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_da009c03","line":130,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub. The old ones without change can be left, but if there is any changes to the test cases, use the new way.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":127,"context_line":"                        self.volume_id)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def test_index(self):"},{"line_number":130,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption\u0027"},{"line_number":133,"context_line":"                                  % self.encrypted_volume_id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_c1053c10","line":130,"in_reply_to":"7a016987_da009c03","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.assertEqual(expected, res_dict_eval)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_index_bad_tenant_id(self):"},{"line_number":155,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/%s/volumes/%s/encryption\u0027"},{"line_number":158,"context_line":"                                  % (\u0027bad-tenant-id\u0027, self.volume_id))"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_5f0ede3b","line":155,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        self.assertEqual(expected, res_dict_eval)"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    def test_index_bad_tenant_id(self):"},{"line_number":155,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/%s/volumes/%s/encryption\u0027"},{"line_number":158,"context_line":"                                  % (\u0027bad-tenant-id\u0027, self.volume_id))"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_21050810","line":155,"in_reply_to":"7a016987_5f0ede3b","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_index_bad_volume_id(self):"},{"line_number":168,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        bad_volume_id \u003d \u0027bad_volume_id\u0027"},{"line_number":171,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_ff00ea03","line":168,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def test_index_bad_volume_id(self):"},{"line_number":168,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        bad_volume_id \u003d \u0027bad_volume_id\u0027"},{"line_number":171,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_e10ac01f","line":168,"in_reply_to":"7a016987_ff00ea03","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_show_key(self):"},{"line_number":184,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"},{"line_number":187,"context_line":"                                  \u0027encryption_key_id\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_9a06a41a","line":184,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_show_key(self):"},{"line_number":184,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"},{"line_number":187,"context_line":"                                  \u0027encryption_key_id\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_0127a4b6","line":184,"in_reply_to":"7a016987_9a06a41a","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.assertEqual(\u0027fake_key\u0027, res.body)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_show_control(self):"},{"line_number":195,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"},{"line_number":198,"context_line":"                                  \u0027control_location\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_7a0be824","line":195,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":192,"context_line":"        self.assertEqual(\u0027fake_key\u0027, res.body)"},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_show_control(self):"},{"line_number":195,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"},{"line_number":198,"context_line":"                                  \u0027control_location\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_61179045","line":195,"in_reply_to":"7a016987_7a0be824","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":203,"context_line":"        self.assertEqual(\u0027front-end\u0027, res.body)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"    def test_show_provider(self):"},{"line_number":206,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"},{"line_number":209,"context_line":"                                  \u0027provider\u0027 % self.encrypted_volume_id)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_7a22c8a4","line":206,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                         res.body)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_show_bad_tenant_id(self):"},{"line_number":216,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/%s/volumes/%s/encryption/\u0027"},{"line_number":219,"context_line":"                                  \u0027encryption_key_id\u0027 % (\u0027bad-tenant-id\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_5a3cacc7","line":216,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":213,"context_line":"                         res.body)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_show_bad_tenant_id(self):"},{"line_number":216,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/%s/volumes/%s/encryption/\u0027"},{"line_number":219,"context_line":"                                  \u0027encryption_key_id\u0027 % (\u0027bad-tenant-id\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_c11c5c68","line":216,"in_reply_to":"7a016987_5a3cacc7","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    def test_show_bad_volume_id(self):"},{"line_number":230,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        bad_volume_id \u003d \u0027bad_volume_id\u0027"},{"line_number":233,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_ba53a016","line":230,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"    def test_show_bad_volume_id(self):"},{"line_number":230,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"        bad_volume_id \u003d \u0027bad_volume_id\u0027"},{"line_number":233,"context_line":"        req \u003d webob.Request.blank(\u0027/v2/fake/volumes/%s/encryption/\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_e1588033","line":230,"in_reply_to":"7a016987_ba53a016","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def test_retrieve_key_admin(self):"},{"line_number":246,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, is_admin\u003dTrue)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_da4e5c6e","line":246,"updated":"2015-05-29 08:45:50.000000000","message":"Please use mock.patch.object/mock.patch.\nWe are abandoning stub.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"e3f12296ddd17b14dad2b795d1962ec17b83e1ed","unresolved":false,"context_lines":[{"line_number":243,"context_line":"        self.assertEqual(expected, res_dict)"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    def test_retrieve_key_admin(self):"},{"line_number":246,"context_line":"        self.stubs.Set(volume_types, \u0027is_encrypted\u0027, lambda *a, **kw: True)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        ctxt \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027, is_admin\u003dTrue)"},{"line_number":249,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_a13fd8b2","line":246,"in_reply_to":"7a016987_da4e5c6e","updated":"2015-07-08 15:45:22.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"}],"cinder/tests/unit/test_migrations.py":[{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":896,"context_line":"        # one existing encrypted volume"},{"line_number":897,"context_line":"        vol_enc_metadata \u003d db_utils.get_table(engine,"},{"line_number":898,"context_line":"                                              \u0027volume_encryption_metadata\u0027)"},{"line_number":899,"context_line":"        self.assertEqual(vol_enc_metadata.count().execute().scalar(), 1)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"        # check link between volume and volume_encryption_metadata tables"},{"line_number":902,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_3ac3308b","line":899,"updated":"2015-05-29 08:45:50.000000000","message":"Param order for this assertEqual: expected, actual","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":896,"context_line":"        # one existing encrypted volume"},{"line_number":897,"context_line":"        vol_enc_metadata \u003d db_utils.get_table(engine,"},{"line_number":898,"context_line":"                                              \u0027volume_encryption_metadata\u0027)"},{"line_number":899,"context_line":"        self.assertEqual(vol_enc_metadata.count().execute().scalar(), 1)"},{"line_number":900,"context_line":""},{"line_number":901,"context_line":"        # check link between volume and volume_encryption_metadata tables"},{"line_number":902,"context_line":"        volumes \u003d db_utils.get_table(engine, \u0027volumes\u0027)"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_4c29c788","line":899,"in_reply_to":"7a016987_3ac3308b","updated":"2015-07-07 15:02:50.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":827,"context_line":"        self.assertNotIn(\u0027allocated\u0027, quotas.c)"},{"line_number":828,"context_line":""},{"line_number":829,"context_line":"    def _pre_upgrade_049(self, engine):"},{"line_number":830,"context_line":"        \"\"\"Change add a volume with an encrypted volume type and verify that"},{"line_number":831,"context_line":"        values are correctly copied over to the new encryption metadata"},{"line_number":832,"context_line":"        table"},{"line_number":833,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_0f9b8a73","line":830,"updated":"2015-07-07 16:02:16.000000000","message":"Do you mean \u0027Test adding a volume ...\" here?","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":883,"context_line":""},{"line_number":884,"context_line":"    def _check_049(self, engine, data):"},{"line_number":885,"context_line":"        # volume_encryption_metadata types table"},{"line_number":886,"context_line":"        volume_encryption_metadata_table \u003d \\"},{"line_number":887,"context_line":"            db_utils.get_table(engine, \u0027volume_encryption_metadata\u0027)"},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"        self.assertTrue("}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_4fc6724a","line":886,"updated":"2015-07-07 16:02:16.000000000","message":"Please use () instead of \\","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"c30539e8b52557f8c62043aca0bd10beca2e6369","unresolved":false,"context_lines":[{"line_number":920,"context_line":"        vol_type_encryption \u003d encryption.select(encryption.c.volume_type_id \u003d\u003d"},{"line_number":921,"context_line":"                                                data[\u0027volume_types\u0027][1][\u0027id\u0027]"},{"line_number":922,"context_line":"                                                ).execute().first()"},{"line_number":923,"context_line":"        metadata \u003d \\"},{"line_number":924,"context_line":"            vol_enc_metadata.select(vol_enc_metadata.c.id \u003d\u003d"},{"line_number":925,"context_line":"                                    volume.volume_encryption_metadata_id"},{"line_number":926,"context_line":"                                    ).execute().first()"}],"source_content_type":"text/x-python","patch_set":19,"id":"ba3cc151_2fd20e01","line":923,"updated":"2015-07-07 16:02:16.000000000","message":"Same here.","commit_id":"0e853c982d692c8ea38484eb440e6a036bf5cec6"}],"cinder/tests/unit/test_volume.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b8586aac4d7fc67f6689a9cd2436d9c5d915e5f3","unresolved":false,"context_lines":[{"line_number":46,"context_line":"from cinder import context"},{"line_number":47,"context_line":"from cinder import db"},{"line_number":48,"context_line":"from cinder.db.sqlalchemy.api import get_session"},{"line_number":49,"context_line":"from cinder.db.sqlalchemy.api import model_query"},{"line_number":50,"context_line":"from cinder.db.sqlalchemy import models"},{"line_number":51,"context_line":"from cinder import exception"},{"line_number":52,"context_line":"from cinder.image import image_utils"}],"source_content_type":"text/x-python","patch_set":18,"id":"3afb71cf_48a0d8f4","line":49,"updated":"2015-06-05 18:18:39.000000000","message":"Please, import modules not objects","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":46,"context_line":"from cinder import context"},{"line_number":47,"context_line":"from cinder import db"},{"line_number":48,"context_line":"from cinder.db.sqlalchemy.api import get_session"},{"line_number":49,"context_line":"from cinder.db.sqlalchemy.api import model_query"},{"line_number":50,"context_line":"from cinder.db.sqlalchemy import models"},{"line_number":51,"context_line":"from cinder import exception"},{"line_number":52,"context_line":"from cinder.image import image_utils"}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_4c50e70a","line":49,"in_reply_to":"3afb71cf_48a0d8f4","updated":"2015-07-07 15:02:50.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"b8586aac4d7fc67f6689a9cd2436d9c5d915e5f3","unresolved":false,"context_lines":[{"line_number":690,"context_line":"        self.assertEqual(db_vol_type.get(\u0027id\u0027), volume[\u0027volume_type_id\u0027])"},{"line_number":691,"context_line":"        self.assertIsNotNone(volume[\u0027encryption_key_id\u0027])"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        test_dict \u003d {\u0027control_location\u0027: \u0027front-end\u0027,"},{"line_number":694,"context_line":"                     \u0027provider\u0027: ENCRYPTION_PROVIDER}"},{"line_number":695,"context_line":"        vol_enc_meta_ref \u003d db.volume_encryption_metadata_get(ctxt, volume.id)"},{"line_number":696,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3afb71cf_087300b3","line":693,"updated":"2015-06-05 18:18:39.000000000","message":"Dictionary is not needed here.","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":690,"context_line":"        self.assertEqual(db_vol_type.get(\u0027id\u0027), volume[\u0027volume_type_id\u0027])"},{"line_number":691,"context_line":"        self.assertIsNotNone(volume[\u0027encryption_key_id\u0027])"},{"line_number":692,"context_line":""},{"line_number":693,"context_line":"        test_dict \u003d {\u0027control_location\u0027: \u0027front-end\u0027,"},{"line_number":694,"context_line":"                     \u0027provider\u0027: ENCRYPTION_PROVIDER}"},{"line_number":695,"context_line":"        vol_enc_meta_ref \u003d db.volume_encryption_metadata_get(ctxt, volume.id)"},{"line_number":696,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_4c77879f","line":693,"in_reply_to":"3afb71cf_087300b3","updated":"2015-07-07 15:02:50.000000000","message":"used it to match the style of the test results variable","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":2861,"name":"Vincent Hou","email":"shou@us.ibm.com","username":"houshengbo"},"change_message_id":"4a03d3e0a20c4ef4024e079f595a8f53ff1bb4c0","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        encryption_ref \u003d model_query(context, models.VolumeEncryptionMetadata,"},{"line_number":754,"context_line":"                                     session\u003dsession, read_deleted\u003d\"yes\").\\"},{"line_number":755,"context_line":"            filter_by(id\u003dvol_enc_meta_id).first()"},{"line_number":756,"context_line":"        self.assertEqual(encryption_ref[\u0027deleted\u0027], True)"},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"    def test_extra_capabilities(self):"},{"line_number":759,"context_line":"        # Test valid extra_capabilities."}],"source_content_type":"text/x-python","patch_set":18,"id":"7a016987_baef201d","line":756,"updated":"2015-05-29 08:45:50.000000000","message":"Param order for this assertEqual:\nexpected, actual","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"1ef734d070898e74259fd42963d70f87d97ad4e8","unresolved":false,"context_lines":[{"line_number":753,"context_line":"        encryption_ref \u003d model_query(context, models.VolumeEncryptionMetadata,"},{"line_number":754,"context_line":"                                     session\u003dsession, read_deleted\u003d\"yes\").\\"},{"line_number":755,"context_line":"            filter_by(id\u003dvol_enc_meta_id).first()"},{"line_number":756,"context_line":"        self.assertEqual(encryption_ref[\u0027deleted\u0027], True)"},{"line_number":757,"context_line":""},{"line_number":758,"context_line":"    def test_extra_capabilities(self):"},{"line_number":759,"context_line":"        # Test valid extra_capabilities."}],"source_content_type":"text/x-python","patch_set":18,"id":"ba3cc151_ec7bfb79","line":756,"in_reply_to":"7a016987_baef201d","updated":"2015-07-07 15:02:50.000000000","message":"Done","commit_id":"19466e28f34f96eaec92a88a293d1b670b4eafa6"}],"cinder/volume/api.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":163,"context_line":"               scheduler_hints\u003dNone,"},{"line_number":164,"context_line":"               source_replica\u003dNone, consistencygroup\u003dNone,"},{"line_number":165,"context_line":"               cgsnapshot\u003dNone, multiattach\u003dFalse,"},{"line_number":166,"context_line":"               volume_encryption_metadata_id\u003dNone):"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        # NOTE(jdg): we can have a create without size if we\u0027re"},{"line_number":169,"context_line":"        # doing a create from snap or volume.  Currently"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_5958a0fa","line":166,"updated":"2015-03-27 13:56:57.000000000","message":"Why was this kwarg added? It does not appear to be used in the existing code.\n\nIn addition, this data should be created from the volume_type information.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"}],"cinder/volume/flows/api/create_volume.py":[{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        # exist, this is expected as it signals that the image_id is missing."},{"line_number":232,"context_line":"        image_meta \u003d self.image_service.show(context, image_id)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # check whether image is active"},{"line_number":235,"context_line":"        if image_meta[\u0027status\u0027] !\u003d \u0027active\u0027:"},{"line_number":236,"context_line":"            msg \u003d _(\u0027Image %(image_id)s is not active.\u0027)\\"},{"line_number":237,"context_line":"                % {\u0027image_id\u0027: image_id}"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_2227c4cb","line":234,"updated":"2015-02-03 23:11:25.000000000","message":"extra space","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7012,"name":"Brianna Poulos","email":"Brianna.Poulos@jhuapl.edu","username":"brianna-poulos"},"change_message_id":"86db3485066e1ffa076c49021f992b6a0fd3b942","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    def _get_encryption_key_id(self, key_manager, context, volume_type_id,"},{"line_number":341,"context_line":"                               snapshot, source_volume):"},{"line_number":342,"context_line":"        encryption_key_id \u003d None"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        if volume_types.is_encrypted(context, volume_type_id):"},{"line_number":345,"context_line":"            if snapshot is not None:  # creating from snapshot"},{"line_number":346,"context_line":"                encryption_key_id \u003d snapshot[\u0027encryption_key_id\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_023f20d7","line":343,"updated":"2015-02-03 23:11:25.000000000","message":"extra space","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"4887d5655275d033e2ebbf33cafc477fe5b23d0b","unresolved":false,"context_lines":[{"line_number":340,"context_line":"    def _get_encryption_key_id(self, key_manager, context, volume_type_id,"},{"line_number":341,"context_line":"                               snapshot, source_volume):"},{"line_number":342,"context_line":"        encryption_key_id \u003d None"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"        if volume_types.is_encrypted(context, volume_type_id):"},{"line_number":345,"context_line":"            if snapshot is not None:  # creating from snapshot"},{"line_number":346,"context_line":"                encryption_key_id \u003d snapshot[\u0027encryption_key_id\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_a48bf71c","line":343,"in_reply_to":"da86d52c_023f20d7","updated":"2015-02-10 16:17:23.000000000","message":"Done","commit_id":"215fdcac3fd025b076a654368917a5ef668ae783"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        # exist, this is expected as it signals that the image_id is missing."},{"line_number":232,"context_line":"        image_meta \u003d self.image_service.show(context, image_id)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # check whether image is active"},{"line_number":235,"context_line":"        if image_meta[\u0027status\u0027] !\u003d \u0027active\u0027:"},{"line_number":236,"context_line":"            msg \u003d _(\u0027Image %(image_id)s is not active.\u0027)\\"},{"line_number":237,"context_line":"                % {\u0027image_id\u0027: image_id}"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_e4f6815c","line":234,"updated":"2015-02-11 12:55:41.000000000","message":"Shouldn\u0027t be a change on this line.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        # exist, this is expected as it signals that the image_id is missing."},{"line_number":232,"context_line":"        image_meta \u003d self.image_service.show(context, image_id)"},{"line_number":233,"context_line":""},{"line_number":234,"context_line":"        # check whether image is active"},{"line_number":235,"context_line":"        if image_meta[\u0027status\u0027] !\u003d \u0027active\u0027:"},{"line_number":236,"context_line":"            msg \u003d _(\u0027Image %(image_id)s is not active.\u0027)\\"},{"line_number":237,"context_line":"                % {\u0027image_id\u0027: image_id}"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7db743d8","line":234,"in_reply_to":"da86d52c_e4f6815c","updated":"2015-03-05 21:25:17.000000000","message":"the missing space was giving me PEP8 errors","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":339,"context_line":""},{"line_number":340,"context_line":"    def _get_encryption_key_id(self, key_manager, context, volume_type_id,"},{"line_number":341,"context_line":"                               snapshot, source_volume):"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        encryption_key_id \u003d None"},{"line_number":344,"context_line":"        if volume_types.is_encrypted(context, volume_type_id):"},{"line_number":345,"context_line":"            if snapshot is not None:  # creating from snapshot"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_64a2914c","line":342,"updated":"2015-02-11 12:55:41.000000000","message":"ditto","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                    \u0027name\u0027, \u0027reservations\u0027, \u0027size\u0027, \u0027snapshot_id\u0027,"},{"line_number":463,"context_line":"                    \u0027source_volid\u0027, \u0027volume_type_id\u0027, \u0027encryption_key_id\u0027,"},{"line_number":464,"context_line":"                    \u0027source_replicaid\u0027, \u0027consistencygroup_id\u0027,"},{"line_number":465,"context_line":"                    \u0027volume_encryption_metadata_id\u0027]"},{"line_number":466,"context_line":"        super(EntryCreateTask, self).__init__(addons\u003d[ACTION],"},{"line_number":467,"context_line":"                                              requires\u003drequires)"},{"line_number":468,"context_line":"        self.db \u003d db"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_44b4ad81","line":465,"updated":"2015-02-11 12:55:41.000000000","message":"Preserve trailing comma.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":462,"context_line":"                    \u0027name\u0027, \u0027reservations\u0027, \u0027size\u0027, \u0027snapshot_id\u0027,"},{"line_number":463,"context_line":"                    \u0027source_volid\u0027, \u0027volume_type_id\u0027, \u0027encryption_key_id\u0027,"},{"line_number":464,"context_line":"                    \u0027source_replicaid\u0027, \u0027consistencygroup_id\u0027,"},{"line_number":465,"context_line":"                    \u0027volume_encryption_metadata_id\u0027]"},{"line_number":466,"context_line":"        super(EntryCreateTask, self).__init__(addons\u003d[ACTION],"},{"line_number":467,"context_line":"                                              requires\u003drequires)"},{"line_number":468,"context_line":"        self.db \u003d db"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_5d46ffa7","line":465,"in_reply_to":"da86d52c_44b4ad81","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":490,"context_line":"            \u0027display_name\u0027: kwargs.pop(\u0027name\u0027),"},{"line_number":491,"context_line":"            \u0027replication_status\u0027: \u0027disabled\u0027,"},{"line_number":492,"context_line":"            \u0027volume_encryption_metadata_id\u0027:"},{"line_number":493,"context_line":"                kwargs.pop(\u0027volume_encryption_metadata_id\u0027)"},{"line_number":494,"context_line":"        }"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"        # Merge in the other required arguments which should provide the rest"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_84b14591","line":493,"updated":"2015-02-11 12:55:41.000000000","message":"Add trailing comma","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":490,"context_line":"            \u0027display_name\u0027: kwargs.pop(\u0027name\u0027),"},{"line_number":491,"context_line":"            \u0027replication_status\u0027: \u0027disabled\u0027,"},{"line_number":492,"context_line":"            \u0027volume_encryption_metadata_id\u0027:"},{"line_number":493,"context_line":"                kwargs.pop(\u0027volume_encryption_metadata_id\u0027)"},{"line_number":494,"context_line":"        }"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"        # Merge in the other required arguments which should provide the rest"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7d64a321","line":493,"in_reply_to":"da86d52c_84b14591","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def _get_encryption_key_id(self, key_manager, context, volume_type_id,"},{"line_number":360,"context_line":"                               snapshot, source_volume):"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        encryption_key_id \u003d None"},{"line_number":363,"context_line":"        if volume_types.is_encrypted(context, volume_type_id):"},{"line_number":364,"context_line":"            if snapshot is not None:  # creating from snapshot"}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_a874f8fc","line":361,"updated":"2015-03-27 13:56:57.000000000","message":"Unnecessary whitespace change.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"}],"cinder/volume/volume_types.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"8d9fc297a8eb736acac7eaf3fdd49b83ae55ec40","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"def is_encrypted(context, volume_type_id):"},{"line_number":209,"context_line":"    if volume_type_id is None:"},{"line_number":210,"context_line":"        return False"},{"line_number":211,"context_line":"    encryption \u003d db.volume_type_encryption_get(context, volume_type_id)"},{"line_number":212,"context_line":"    return encryption is not None"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_845f8540","line":210,"updated":"2015-02-11 12:55:41.000000000","message":"Not sure why blank line was removed.","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"0336943353b246696912fec662b2ccbb7a5cee24","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"def is_encrypted(context, volume_type_id):"},{"line_number":209,"context_line":"    if volume_type_id is None:"},{"line_number":210,"context_line":"        return False"},{"line_number":211,"context_line":"    encryption \u003d db.volume_type_encryption_get(context, volume_type_id)"},{"line_number":212,"context_line":"    return encryption is not None"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7d0663cf","line":210,"in_reply_to":"da86d52c_845f8540","updated":"2015-03-05 21:25:17.000000000","message":"Done","commit_id":"b7736084b87da3dbf10b996684951c592dfddc55"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    encryption \u003d db.volume_type_encryption_get(context, volume_type_id)"},{"line_number":193,"context_line":"    return encryption is not None"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"def remove_volume_type_access(context, volume_type_id, project_id):"},{"line_number":197,"context_line":"    \"\"\"Remove access to volume type for project_id.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_88c7f411","line":194,"updated":"2015-03-27 13:56:57.000000000","message":"Copy-paste error? (These lines are not part of any function!) Perhaps they belong below?","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"f4cbe6afba27e5d567898995f2dd0639e303c6f7","unresolved":false,"context_lines":[{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    encryption \u003d db.volume_type_encryption_get(context, volume_type_id)"},{"line_number":193,"context_line":"    return encryption is not None"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"def remove_volume_type_access(context, volume_type_id, project_id):"},{"line_number":197,"context_line":"    \"\"\"Remove access to volume type for project_id.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_98accd36","line":194,"in_reply_to":"fa963961_88c7f411","updated":"2015-04-02 21:21:23.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"0eebd188be503ecd0f1eae382aec49bdd0826a45","unresolved":false,"context_lines":[{"line_number":201,"context_line":"    return db.volume_type_access_remove(context, volume_type_id, project_id)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"def get_volume_encryption_metadata(context, volume_encryption_metadata_id):"},{"line_number":205,"context_line":"    if volume_encryption_metadata_id is None:"},{"line_number":206,"context_line":"        return None"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"fa963961_e8d8c0f1","line":204,"updated":"2015-03-27 13:56:57.000000000","message":"Since this function relates to volumes rather than volume types, it should not be part of this file.","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"},{"author":{"_account_id":7111,"name":"hadi esiely","email":"hadi.esiely-barrera@jhuapl.edu","username":"HEsiely"},"change_message_id":"f4cbe6afba27e5d567898995f2dd0639e303c6f7","unresolved":false,"context_lines":[{"line_number":201,"context_line":"    return db.volume_type_access_remove(context, volume_type_id, project_id)"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"def get_volume_encryption_metadata(context, volume_encryption_metadata_id):"},{"line_number":205,"context_line":"    if volume_encryption_metadata_id is None:"},{"line_number":206,"context_line":"        return None"},{"line_number":207,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baa041b7_78ab491e","line":204,"in_reply_to":"fa963961_e8d8c0f1","updated":"2015-04-02 21:21:23.000000000","message":"Done","commit_id":"b42311ca64dd63e151dc11fc8a0d2e1c8d8598f1"}]}
