)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     John Spray \u003cjohn.spray@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-23 11:22:35 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_83fd3e3d","line":7,"updated":"2015-11-23 13:51:25.000000000","message":"Nit: \n\nRemove share. \n\n:s/add/Add\n:s/instance mapping/share_access_map","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     John Spray \u003cjohn.spray@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-11-23 11:22:35 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a8ffd7b_6500e534","line":7,"in_reply_to":"ba8a016a_83fd3e3d","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-11-23 11:22:35 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_a3b5e27e","line":8,"updated":"2015-11-23 13:51:25.000000000","message":"I think you should copy your description from:\n\nhttps://www.mail-archive.com/openstack-dev@lists.openstack.org/msg66428.html\n\nhere to explain this changeset better.","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-11-23 11:22:35 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a8ffd7b_85e629ae","line":8,"in_reply_to":"ba8a016a_8aa2234a","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"7b80772137bb025185321e6e947389a54d1031d3","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2015-11-23 11:22:35 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_8aa2234a","line":8,"in_reply_to":"ba8a016a_a3b5e27e","updated":"2015-11-23 17:08:46.000000000","message":"I think the description from the mail should be added to the blueprint, not here. You should put a concise description here that covers everything you are doing in this change.","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_e3176a52","line":9,"updated":"2015-11-23 13:51:25.000000000","message":"I think we need a blueprint. Could you create one? This isn\u0027t a bug imo.","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a8ffd7b_a5e9ed80","line":9,"in_reply_to":"ba8a016a_e3176a52","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba8a016a_c33d86de","line":10,"updated":"2015-11-23 13:51:25.000000000","message":"This line isn\u0027t necessary for OpenStack as stated here:\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Including_external_references\n\nThough I think it is harmless to include, but others may disagree. :)","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":7,"context_line":"share: add access_key to instance mapping"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: Ice814a9b7f918431c8cc1c6c840a0f877a9a74ea"},{"line_number":10,"context_line":"Signed-off-by: John Spray \u003cjohn.spray@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a8ffd7b_e5f37571","line":10,"in_reply_to":"ba8a016a_c33d86de","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"914cc061a6792cdf647ee61463976c7e830786f3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     John Spray \u003cjohn.spray@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-03 22:27:45 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add access_key to share_access_map"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Receive it as return value of driver allow_access()"},{"line_number":10,"context_line":"Store in ShareAccessMapping model"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"7a740942_01984abf","line":7,"updated":"2015-12-07 07:44:11.000000000","message":"The title to capitalize the first letter.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/api/v1/shares.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":404,"context_line":"    def _validate_cephx_id(cephx_id):"},{"line_number":405,"context_line":"        if \u0027.\u0027 in cephx_id:"},{"line_number":406,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003d_("},{"line_number":407,"context_line":"                \u0027Ceph IDs may not contain periods\u0027))"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @wsgi.action(\u0027os-allow_access\u0027)"},{"line_number":410,"context_line":"    def _allow_access(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_83077e1c","line":407,"updated":"2015-11-23 13:51:25.000000000","message":"Please note this change in the commit message. Your description in:\n\nhttps://www.mail-archive.com/openstack-dev@lists.openstack.org/msg66428.html\n\nOnly speaks about the share_access_map changes.","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":404,"context_line":"    def _validate_cephx_id(cephx_id):"},{"line_number":405,"context_line":"        if \u0027.\u0027 in cephx_id:"},{"line_number":406,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003d_("},{"line_number":407,"context_line":"                \u0027Ceph IDs may not contain periods\u0027))"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @wsgi.action(\u0027os-allow_access\u0027)"},{"line_number":410,"context_line":"    def _allow_access(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_65aea52f","line":407,"in_reply_to":"ba8a016a_83077e1c","updated":"2015-12-03 18:11:25.000000000","message":"This was a mistake, I will remove the ceph-specific parts from this change and save them for the separate ceph driver change later.","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":422,"context_line":"        elif access_type \u003d\u003d \u0027cert\u0027:"},{"line_number":423,"context_line":"            self._validate_common_name(access_to.strip())"},{"line_number":424,"context_line":"        elif access_type \u003d\u003d \u0027cephx\u0027:"},{"line_number":425,"context_line":"            self._validate_cephx_id(access_to.strip())"},{"line_number":426,"context_line":"        else:"},{"line_number":427,"context_line":"            exc_str \u003d _(\"Only \u0027ip\u0027,\u0027user\u0027, \u0027cert\u0027 or \u0027cephx\u0027 access types \""},{"line_number":428,"context_line":"                        \"are supported.\")"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_4e13fd5c","line":425,"updated":"2015-11-23 13:51:25.000000000","message":"Would need unit tests in:\n\nmanila/tests/api/v1/test_shares.py","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":376,"context_line":"            except ValueError:"},{"line_number":377,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexc_str)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    @wsgi.action(\u0027os-allow_access\u0027)"},{"line_number":380,"context_line":"    def _allow_access(self, req, id, body):"},{"line_number":381,"context_line":"        \"\"\"Add share access rule.\"\"\""},{"line_number":382,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_afee4aea","line":379,"updated":"2015-12-04 08:41:18.000000000","message":"Please remove this, it\u0027s present in line 493, doesn\u0027t need to be in the Mixin.\n\n\nAlso undo the whitespace change on line 395, so that this file needn\u0027t show up as changed.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4015ea6766a37ce82f52e32927fbd6db388a0817","unresolved":false,"context_lines":[{"line_number":376,"context_line":"            except ValueError:"},{"line_number":377,"context_line":"                raise webob.exc.HTTPBadRequest(explanation\u003dexc_str)"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    @wsgi.action(\u0027os-allow_access\u0027)"},{"line_number":380,"context_line":"    def _allow_access(self, req, id, body):"},{"line_number":381,"context_line":"        \"\"\"Add share access rule.\"\"\""},{"line_number":382,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_1401aaae","line":379,"in_reply_to":"7a740942_afee4aea","updated":"2015-12-04 11:26:28.000000000","message":"This one looks like rebase artifact. Goutham is right, this file should not be changed. It is v1 API module.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"},{"author":{"_account_id":9521,"name":"Csaba Henk","email":"chenk@redhat.com","username":"chenk"},"change_message_id":"d539e472e51230c8452a8afaff2eedcfc2649e10","unresolved":false,"context_lines":[{"line_number":392,"context_line":"        elif access_type \u003d\u003d \u0027cert\u0027:"},{"line_number":393,"context_line":"            self._validate_common_name(access_to.strip())"},{"line_number":394,"context_line":"        else:"},{"line_number":395,"context_line":"            exc_str \u003d _(\"Only \u0027ip\u0027,\u0027user\u0027, or\u0027cert\u0027 access types \""},{"line_number":396,"context_line":"                        \"are supported.\")"},{"line_number":397,"context_line":"            raise webob.exc.HTTPBadRequest(explanation\u003dexc_str)"},{"line_number":398,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_db7b3f7a","line":395,"updated":"2015-12-10 12:53:04.000000000","message":"s/or\u0027cert/or \u0027cert/ to make it shine.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/db/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":438,"context_line":"    return IMPL.share_access_get_all_for_share(context, share_id)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"def share_access_update_key(context, access_id, key):"},{"line_number":442,"context_line":"    \"\"\"Update the access_key field of a share access mapping.\"\"\""},{"line_number":443,"context_line":"    return IMPL.share_access_update_key(context, access_id, key)"},{"line_number":444,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_1c3b1eed","line":441,"updated":"2015-12-04 08:41:18.000000000","message":"s/share_access_update_key/share_access_update_access_key\n\ns/key/access_key","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":440,"context_line":""},{"line_number":441,"context_line":"def share_access_update_key(context, access_id, key):"},{"line_number":442,"context_line":"    \"\"\"Update the access_key field of a share access mapping.\"\"\""},{"line_number":443,"context_line":"    return IMPL.share_access_update_key(context, access_id, key)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"def share_instance_access_get_all(context, access_id, session\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_4f37a6b0","line":443,"updated":"2015-12-04 08:41:18.000000000","message":"s/key/access_key","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/db/migrations/alembic/versions/402209954334_add_access_key.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4015ea6766a37ce82f52e32927fbd6db388a0817","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import sqlalchemy as sa"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.add_column("},{"line_number":31,"context_line":"        \u0027share_access_map\u0027,"},{"line_number":32,"context_line":"        sa.Column(\u0027access_key\u0027, sa.String(255), nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_d4bb22c3","line":29,"updated":"2015-12-04 11:26:28.000000000","message":"This one can be covered with tests, see example: https://github.com/openstack/manila/blob/fa153781/manila/tests/db/migrations/alembic/migrations_data_checks.py#L123\n\nOr in other proposed change: https://review.openstack.org/#/c/251930/9/manila/tests/db/migrations/alembic/migrations_data_checks.py","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":1644,"context_line":""},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"@require_context"},{"line_number":1647,"context_line":"def share_access_update_key(context, access_id, key):"},{"line_number":1648,"context_line":"    session \u003d get_session()"},{"line_number":1649,"context_line":"    with session.begin():"},{"line_number":1650,"context_line":"        mapping \u003d session.query(models.ShareAccessMapping).\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_a334024a","line":1647,"updated":"2015-11-23 13:51:25.000000000","message":"Please add unit tests in \n\nmanila/tests/db/sqlalchemy/test_api.py","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":1644,"context_line":""},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"@require_context"},{"line_number":1647,"context_line":"def share_access_update_key(context, access_id, key):"},{"line_number":1648,"context_line":"    session \u003d get_session()"},{"line_number":1649,"context_line":"    with session.begin():"},{"line_number":1650,"context_line":"        mapping \u003d session.query(models.ShareAccessMapping).\\"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_6825dfc0","line":1647,"in_reply_to":"ba8a016a_a334024a","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":1644,"context_line":""},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"@require_context"},{"line_number":1647,"context_line":"def share_access_update_key(context, access_id, key):"},{"line_number":1648,"context_line":"    session \u003d get_session()"},{"line_number":1649,"context_line":"    with session.begin():"},{"line_number":1650,"context_line":"        mapping \u003d session.query(models.ShareAccessMapping).\\"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_4fb6c6dd","line":1647,"updated":"2015-12-04 08:41:18.000000000","message":"s/share_access_update_key/share_access_update_access_key\n\ns/key/access_key","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/db/sqlalchemy/models.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":463,"context_line":"    share_id \u003d Column(String(36), ForeignKey(\u0027shares.id\u0027))"},{"line_number":464,"context_line":"    access_type \u003d Column(String(255))"},{"line_number":465,"context_line":"    access_to \u003d Column(String(255))"},{"line_number":466,"context_line":"    access_key \u003d Column(String(255))"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    access_level \u003d Column(Enum(*constants.ACCESS_LEVELS),"},{"line_number":469,"context_line":"                          default\u003dconstants.ACCESS_LEVEL_RW)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_230332ba","line":466,"updated":"2015-11-23 13:51:25.000000000","message":"Is this nullable?\n\nPlease set nullable\u003dTrue, like you\u0027ve done in the migrations file:\n\nhttps://review.openstack.org/#/c/247540/2/manila/db/migrations/alembic/versions/402209954334_add_access_key.py","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":463,"context_line":"    share_id \u003d Column(String(36), ForeignKey(\u0027shares.id\u0027))"},{"line_number":464,"context_line":"    access_type \u003d Column(String(255))"},{"line_number":465,"context_line":"    access_to \u003d Column(String(255))"},{"line_number":466,"context_line":"    access_key \u003d Column(String(255))"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    access_level \u003d Column(Enum(*constants.ACCESS_LEVELS),"},{"line_number":469,"context_line":"                          default\u003dconstants.ACCESS_LEVEL_RW)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a8ffd7b_29c877a7","line":466,"in_reply_to":"ba8a016a_230332ba","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"}],"manila/share/api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":849,"context_line":"                 \u0027access_type\u0027: rule.access_type,"},{"line_number":850,"context_line":"                 \u0027access_to\u0027: rule.access_to,"},{"line_number":851,"context_line":"                 \u0027access_level\u0027: rule.access_level,"},{"line_number":852,"context_line":"                 \u0027access_key\u0027: rule.access_key,"},{"line_number":853,"context_line":"                 \u0027state\u0027: rule.state} for rule in rules]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"    def access_get(self, context, access_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_43a8b677","line":852,"updated":"2015-11-23 13:51:25.000000000","message":"Please update the unit test/s in \n\nmanila/tests/share/test_api.py","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":849,"context_line":"                 \u0027access_type\u0027: rule.access_type,"},{"line_number":850,"context_line":"                 \u0027access_to\u0027: rule.access_to,"},{"line_number":851,"context_line":"                 \u0027access_level\u0027: rule.access_level,"},{"line_number":852,"context_line":"                 \u0027access_key\u0027: rule.access_key,"},{"line_number":853,"context_line":"                 \u0027state\u0027: rule.state} for rule in rules]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"    def access_get(self, context, access_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_482ca3ab","line":852,"in_reply_to":"ba8a016a_43a8b677","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a8f1f4be3ee20ca770ed5340dc1f564a53d3d55c","unresolved":false,"context_lines":[{"line_number":849,"context_line":"                 \u0027access_type\u0027: rule.access_type,"},{"line_number":850,"context_line":"                 \u0027access_to\u0027: rule.access_to,"},{"line_number":851,"context_line":"                 \u0027access_level\u0027: rule.access_level,"},{"line_number":852,"context_line":"                 \u0027access_key\u0027: rule.access_key,"},{"line_number":853,"context_line":"                 \u0027state\u0027: rule.state} for rule in rules]"},{"line_number":854,"context_line":""},{"line_number":855,"context_line":"    def access_get(self, context, access_id):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_285810fa","line":852,"updated":"2015-12-04 09:08:56.000000000","message":"Please take a look at:\n\nhttp://docs.openstack.org/developer/manila/devref/api_microversion_dev.html#when-do-i-need-a-new-microversion\n\nExposing this key to the end user would mean changing the user contract. If you are sure of this action, This would require a new micro version.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/share/driver.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":585,"context_line":"    def allow_access(self, context, share, access, share_server\u003dNone):"},{"line_number":586,"context_line":"        \"\"\"Allow access to the share."},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        :return None or a string to set ShareAccessMapping.access_key"},{"line_number":589,"context_line":"        \"\"\""},{"line_number":590,"context_line":"        raise NotImplementedError()"},{"line_number":591,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_23f1f2cd","line":588,"updated":"2015-11-23 13:51:25.000000000","message":"Could this string be anything determined by the backend? Would you want to restrict by length you specified in models.py (255 chars)","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":585,"context_line":"    def allow_access(self, context, share, access, share_server\u003dNone):"},{"line_number":586,"context_line":"        \"\"\"Allow access to the share."},{"line_number":587,"context_line":""},{"line_number":588,"context_line":"        :return None or a string to set ShareAccessMapping.access_key"},{"line_number":589,"context_line":"        \"\"\""},{"line_number":590,"context_line":"        raise NotImplementedError()"},{"line_number":591,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_ff2500ae","line":588,"in_reply_to":"ba8a016a_23f1f2cd","updated":"2015-12-03 18:11:25.000000000","message":"I\u0027m updating the docstring to specify the 255 limit.  If someone returns more than that then ShareManager.allow_access should get an exception back from the DB","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":588,"context_line":"        :return None, or optionally a string (max length 255) to set the"},{"line_number":589,"context_line":"        value of ShareAccessMapping.access_key."},{"line_number":590,"context_line":"        \"\"\""},{"line_number":591,"context_line":"        raise NotImplementedError()"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    def deny_access(self, context, share, access, share_server\u003dNone):"},{"line_number":594,"context_line":"        \"\"\"Deny access to the share.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_0ffe7e6b","line":591,"updated":"2015-12-04 08:41:18.000000000","message":"You could add a test in manila/tests/share/test_driver.py to assert this NotImplementedError","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4015ea6766a37ce82f52e32927fbd6db388a0817","unresolved":false,"context_lines":[{"line_number":588,"context_line":"        :return None, or optionally a string (max length 255) to set the"},{"line_number":589,"context_line":"        value of ShareAccessMapping.access_key."},{"line_number":590,"context_line":"        \"\"\""},{"line_number":591,"context_line":"        raise NotImplementedError()"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    def deny_access(self, context, share, access, share_server\u003dNone):"},{"line_number":594,"context_line":"        \"\"\"Deny access to the share.\"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_9487da0e","line":591,"in_reply_to":"7a740942_0ffe7e6b","updated":"2015-12-04 11:26:28.000000000","message":"Would be good to have such test, but not required as scope of work for this commit is different.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/share/manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"39893d5b09376c6bf00d2982589b8f5f6182a5e0","unresolved":false,"context_lines":[{"line_number":1100,"context_line":"            key \u003d self.driver.allow_access(context, share_instance, access_ref,"},{"line_number":1101,"context_line":"                                           share_server\u003dshare_server)"},{"line_number":1102,"context_line":"            if key:"},{"line_number":1103,"context_line":"                access_ref \u003d self.db.share_access_update_key("},{"line_number":1104,"context_line":"                    context, access_id, key)"},{"line_number":1105,"context_line":"            self.db.share_instance_access_update_state("},{"line_number":1106,"context_line":"                context, access_mapping[\u0027id\u0027], access_mapping.STATE_ACTIVE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba8a016a_23db321d","line":1103,"updated":"2015-11-23 13:51:25.000000000","message":"please add test/s in:\n\nmanila/tests/share/test_manager.py","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":18643,"name":"John Spray","email":"jspray@redhat.com","username":"jcsp"},"change_message_id":"3ec7124c2b5462ebe8497d0ded553ab78f1b0303","unresolved":false,"context_lines":[{"line_number":1100,"context_line":"            key \u003d self.driver.allow_access(context, share_instance, access_ref,"},{"line_number":1101,"context_line":"                                           share_server\u003dshare_server)"},{"line_number":1102,"context_line":"            if key:"},{"line_number":1103,"context_line":"                access_ref \u003d self.db.share_access_update_key("},{"line_number":1104,"context_line":"                    context, access_id, key)"},{"line_number":1105,"context_line":"            self.db.share_instance_access_update_state("},{"line_number":1106,"context_line":"                context, access_mapping[\u0027id\u0027], access_mapping.STATE_ACTIVE)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a740942_f5bbe773","line":1103,"in_reply_to":"ba8a016a_23db321d","updated":"2015-12-03 18:11:25.000000000","message":"Done","commit_id":"3dc613e91cb1fb2c61f3b8fc7b4b72798361a3fb"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":1103,"context_line":"                access_ref \u003d self.db.share_access_update_key("},{"line_number":1104,"context_line":"                    context, access_id, key)"},{"line_number":1105,"context_line":"            self.db.share_instance_access_update_state("},{"line_number":1106,"context_line":"                context, access_mapping[\u0027id\u0027], access_mapping.STATE_ACTIVE)"},{"line_number":1107,"context_line":"        except Exception:"},{"line_number":1108,"context_line":"            with excutils.save_and_reraise_exception():"},{"line_number":1109,"context_line":"                self.db.share_instance_access_update_state("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_0d93e65c","line":1106,"updated":"2015-12-04 08:41:18.000000000","message":"these two update calls can be combined into one. If you feel it is an easy refactor, it would be helpful. We would avoid two db calls... \n\nCheck out the update call for CGs in the db:\n\nhttps://github.com/openstack/manila/blob/8c165b378958b541c5578303612dc9efa84076e6/manila/db/sqlalchemy/api.py#L3091\n\nand its usage in this file lines #511 and #466. \n\nIf you decide to make this refactor, please include a line in your commit message that you performed this action to avoid multiple update calls to the DB.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/tests/db/sqlalchemy/test_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b5e44b7ce492f5756f7e865ed9d952b14c30c735","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        self.assertEqual(valid, access.state)"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    @ddt.data("},{"line_number":134,"context_line":"        None, \u0027rhubarb\u0027"},{"line_number":135,"context_line":"    )"},{"line_number":136,"context_line":"    def test_share_access_update_key(self, key_value):"},{"line_number":137,"context_line":"        share \u003d db_utils.create_share()"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_2f3a5a37","line":134,"updated":"2015-12-04 08:41:18.000000000","message":"This can be in one line..","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"914cc061a6792cdf647ee61463976c7e830786f3","unresolved":false,"context_lines":[{"line_number":143,"context_line":"                                        share_id\u003dshare[\u0027id\u0027])"},{"line_number":144,"context_line":"        db_api.share_access_update_key(self.ctxt, access[\u0027id\u0027], key_value)"},{"line_number":145,"context_line":"        access \u003d db_api.share_access_get(self.ctxt, access[\u0027id\u0027])"},{"line_number":146,"context_line":"        self.assertEqual(access[\u0027access_key\u0027], key_value)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"@ddt.ddt"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_ac1e0d61","line":146,"updated":"2015-12-07 07:44:11.000000000","message":"Please fix incorrect order assertEqual(observed, expected) as below.\n  assertEqual(observed, expected) \u003d\u003e assertEqual(expected, observed)\n\n\nself.assertEqual(access[\u0027access_key\u0027], key_value) -\u003e self.assertEqual(key_value, access[\u0027access_key\u0027])","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}],"manila/tests/share/test_manager.py":[{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"fc512530cae54ab948d23d423e5ae7dc6ed27c2d","unresolved":false,"context_lines":[{"line_number":1345,"context_line":"        manager.LOG.info.assert_called_with(mock.ANY, exp_args)"},{"line_number":1346,"context_line":""},{"line_number":1347,"context_line":"    def test_allow_access_with_key(self):"},{"line_number":1348,"context_line":"        \"\"\"Test access rules to share can be created and deleted.\"\"\""},{"line_number":1349,"context_line":"        self.mock_object(manager.LOG, \u0027info\u0027)"},{"line_number":1350,"context_line":""},{"line_number":1351,"context_line":"        self.mock_object(self.share_manager.driver, \"allow_access\","}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_6975b7c9","line":1348,"updated":"2015-12-04 11:14:10.000000000","message":"Please include a description that refers to access keys.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"fc512530cae54ab948d23d423e5ae7dc6ed27c2d","unresolved":false,"context_lines":[{"line_number":1357,"context_line":"        access_id \u003d access[\u0027id\u0027]"},{"line_number":1358,"context_line":"        self.share_manager.allow_access(self.context, share.instance[\u0027id\u0027],"},{"line_number":1359,"context_line":"                                        access_id)"},{"line_number":1360,"context_line":"        self.assertEqual(\u0027active\u0027, db.share_access_get(self.context,"},{"line_number":1361,"context_line":"                                                       access_id).state)"},{"line_number":1362,"context_line":"        self.assertEqual(\u0027mykey\u0027, db.share_access_get(self.context,"},{"line_number":1363,"context_line":"                                                      access_id).access_key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a740942_29048f15","line":1360,"updated":"2015-12-04 11:14:10.000000000","message":"I believe these two lines can be merged into a single \"db.share_access_get\", stored in a variable and assert its two fields instead of calling it twice.","commit_id":"0744ea2bbea3e028e0056729eb394fe5d4d4578e"}]}
