)]}'
{"functionaltests/api/v1/behaviors/acl_behaviors.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def create_acl(self, entity_ref, model, extra_headers\u003dNone,"},{"line_number":24,"context_line":"                   user_name\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Create a acl from the data in the model."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param entity_ref: ref of secret or container for acl"},{"line_number":28,"context_line":"        :param model: The metadata used to create the acl"}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_00695c8b","line":25,"updated":"2015-06-03 16:04:28.000000000","message":"meganit - \"an acl\"","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ce4e2a34497127964ff76f0fcfe50dc8462cd851","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def create_acl(self, entity_ref, model, extra_headers\u003dNone,"},{"line_number":24,"context_line":"                   user_name\u003dNone):"},{"line_number":25,"context_line":"        \"\"\"Create a acl from the data in the model."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"        :param entity_ref: ref of secret or container for acl"},{"line_number":28,"context_line":"        :param model: The metadata used to create the acl"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_b6d67925","line":25,"in_reply_to":"5afe65bd_00695c8b","updated":"2015-06-23 12:47:21.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"da48cc4b199bfbdb8a24c341cb0a411b6010d628","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        and the href to the newly created acl"},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        resp \u003d self.client.post(\u0027{0}/acls\u0027.format("},{"line_number":36,"context_line":"            entity_ref), request_model\u003dmodel,"},{"line_number":37,"context_line":"            extra_headers\u003dextra_headers, user_name\u003duser_name)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_a683c003","line":35,"updated":"2015-06-03 16:41:13.000000000","message":"This API needs to change as CR is being merged now https://review.openstack.org//#/c/180888/\n\nPUT .../acl","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        and the href to the newly created acl"},{"line_number":33,"context_line":"        \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"        resp \u003d self.client.post(\u0027{0}/acls\u0027.format("},{"line_number":36,"context_line":"            entity_ref), request_model\u003dmodel,"},{"line_number":37,"context_line":"            extra_headers\u003dextra_headers, user_name\u003duser_name)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_b1c7ca97","line":35,"in_reply_to":"5afe65bd_a683c003","updated":"2015-06-25 20:45:15.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"da48cc4b199bfbdb8a24c341cb0a411b6010d628","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        return resp"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def get_acls(self, limit\u003d10, offset\u003d0, extra_headers\u003dNone, user_name\u003dNone):"},{"line_number":64,"context_line":"        \"\"\"Handles getting a list of acls."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        :param limit: limits number of returned acls"},{"line_number":67,"context_line":"        :param offset: represents how many records to skip before retrieving"}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_66fa6877","line":64,"updated":"2015-06-03 16:41:13.000000000","message":"API has changed as per review, https://review.openstack.org//#/c/180888/. So this needs to be revisited.","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        return resp"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def get_acls(self, limit\u003d10, offset\u003d0, extra_headers\u003dNone, user_name\u003dNone):"},{"line_number":64,"context_line":"        \"\"\"Handles getting a list of acls."},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"        :param limit: limits number of returned acls"},{"line_number":67,"context_line":"        :param offset: represents how many records to skip before retrieving"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_71c2a288","line":64,"in_reply_to":"5afe65bd_66fa6877","updated":"2015-06-25 20:45:15.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def delete_acl(self, acl_ref, extra_headers\u003dNone,"},{"line_number":87,"context_line":"                   expected_fail\u003dFalse, user_name\u003dNone):"},{"line_number":88,"context_line":"        \"\"\"Handles deleting a acls."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        :param acl_ref: Reference of the acl to be deleted"},{"line_number":91,"context_line":"        :param extra_headers: Any additional headers needed."}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_60fa5077","line":88,"updated":"2015-06-03 16:04:28.000000000","message":"nit - \"an acl\"","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    def delete_acl(self, acl_ref, extra_headers\u003dNone,"},{"line_number":87,"context_line":"                   expected_fail\u003dFalse, user_name\u003dNone):"},{"line_number":88,"context_line":"        \"\"\"Handles deleting a acls."},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        :param acl_ref: Reference of the acl to be deleted"},{"line_number":91,"context_line":"        :param extra_headers: Any additional headers needed."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_31bc1a06","line":88,"in_reply_to":"5afe65bd_60fa5077","updated":"2015-06-25 20:45:15.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        :param acl_ref: Reference of the acl to be deleted"},{"line_number":91,"context_line":"        :param extra_headers: Any additional headers needed."},{"line_number":92,"context_line":"        :param expected_fail: If there is a negative test, this should be"},{"line_number":93,"context_line":"            marked true if you are trying to delete a acl that does"},{"line_number":94,"context_line":"            not exist."},{"line_number":95,"context_line":"        :param user_name: The user name used to delete the acl"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_c02fc4f4","line":93,"updated":"2015-06-03 16:04:28.000000000","message":"nit - \"an acl\"","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":90,"context_line":"        :param acl_ref: Reference of the acl to be deleted"},{"line_number":91,"context_line":"        :param extra_headers: Any additional headers needed."},{"line_number":92,"context_line":"        :param expected_fail: If there is a negative test, this should be"},{"line_number":93,"context_line":"            marked true if you are trying to delete a acl that does"},{"line_number":94,"context_line":"            not exist."},{"line_number":95,"context_line":"        :param user_name: The user name used to delete the acl"},{"line_number":96,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_51b99e14","line":93,"in_reply_to":"5afe65bd_c02fc4f4","updated":"2015-06-25 20:45:15.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"}],"functionaltests/api/v1/functional/test_acls.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027with_creator_a\u0027: {\u0027user\u0027: creator_a, \u0027expected_return\u0027: 200},"},{"line_number":50,"context_line":"    \u0027with_observer_a\u0027: {\u0027user\u0027: observer_a, \u0027expected_return\u0027: 200},"},{"line_number":51,"context_line":"    \u0027with_auditor_a\u0027: {\u0027user\u0027: auditor_a, \u0027expected_return\u0027: 403},"},{"line_number":52,"context_line":"    \u0027with_admin_b\u0027: {\u0027user\u0027: admin_b, \u0027expected_return\u0027: 403},"},{"line_number":53,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 403},"},{"line_number":54,"context_line":"}"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_cbd48548","line":52,"updated":"2015-06-03 16:04:28.000000000","message":"in the secret/container tests we eliminated the project_b users.  I am thinking that a cross-project test would handle those all in one place, and these tests would focus on roles within a single project.  What do you think?","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    \u0027with_creator_a\u0027: {\u0027user\u0027: creator_a, \u0027expected_return\u0027: 200},"},{"line_number":50,"context_line":"    \u0027with_observer_a\u0027: {\u0027user\u0027: observer_a, \u0027expected_return\u0027: 200},"},{"line_number":51,"context_line":"    \u0027with_auditor_a\u0027: {\u0027user\u0027: auditor_a, \u0027expected_return\u0027: 403},"},{"line_number":52,"context_line":"    \u0027with_admin_b\u0027: {\u0027user\u0027: admin_b, \u0027expected_return\u0027: 403},"},{"line_number":53,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 403},"},{"line_number":54,"context_line":"}"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_f10232ba","line":52,"in_reply_to":"5afe65bd_cbd48548","updated":"2015-06-25 20:45:15.000000000","message":"A second project is necessary to test the ACL function.  One of it\u0027s main use cases is to give users from \"project b\" access to secrets in \"project a\".","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"@utils.parameterized_test_case"},{"line_number":103,"context_line":"class AclTestCase(base.TestCase):"},{"line_number":104,"context_line":"    \"\"\"Functional tests exercising ACL Features\"\"\""},{"line_number":105,"context_line":"    def setUp(self):"},{"line_number":106,"context_line":"        super(AclTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_cb0925df","line":103,"updated":"2015-06-03 16:04:28.000000000","message":"This test only does RBAC tests for ACLs, right?  If so then howsabout we rename this file test_acls_rbac.py and this method would be RBACAclTestCase?","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"@utils.parameterized_test_case"},{"line_number":103,"context_line":"class AclTestCase(base.TestCase):"},{"line_number":104,"context_line":"    \"\"\"Functional tests exercising ACL Features\"\"\""},{"line_number":105,"context_line":"    def setUp(self):"},{"line_number":106,"context_line":"        super(AclTestCase, self).setUp()"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_d19b6e65","line":103,"in_reply_to":"5afe65bd_cb0925df","updated":"2015-06-25 20:45:15.000000000","message":"Unless, I\u0027m missing a subtle point, ACLs and RBACs are orthogonal.  RBAC gives access based on roles, and ACLs give access based on a list.  Testing these two access methods together makes sense, because they need to inter-operate.  I believe the current naming is correct, because it is the contents of the ACL that is the variable in these test cases.","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":220,"context_line":"def get_default_secret_data():"},{"line_number":221,"context_line":"    return {"},{"line_number":222,"context_line":"        \"name\": \"AES key\","},{"line_number":223,"context_line":"        \"expiration\": \"2018-02-28T19:14:44.180394\","},{"line_number":224,"context_line":"        \"algorithm\": \"aes\","},{"line_number":225,"context_line":"        \"bit_length\": 256,"},{"line_number":226,"context_line":"        \"mode\": \"cbc\","}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_0b173dee","line":223,"updated":"2015-06-03 16:04:28.000000000","message":"2050 is our new expiration date :-)","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ce4e2a34497127964ff76f0fcfe50dc8462cd851","unresolved":false,"context_lines":[{"line_number":220,"context_line":"def get_default_secret_data():"},{"line_number":221,"context_line":"    return {"},{"line_number":222,"context_line":"        \"name\": \"AES key\","},{"line_number":223,"context_line":"        \"expiration\": \"2018-02-28T19:14:44.180394\","},{"line_number":224,"context_line":"        \"algorithm\": \"aes\","},{"line_number":225,"context_line":"        \"bit_length\": 256,"},{"line_number":226,"context_line":"        \"mode\": \"cbc\","}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_7601d169","line":223,"in_reply_to":"5afe65bd_0b173dee","updated":"2015-06-23 12:47:21.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"510050f26a8a5205ae4913bd266767d85867a7c8","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 403},"},{"line_number":58,"context_line":"}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"test_data_read_secret_creator_only \u003d {"},{"line_number":61,"context_line":"    # TODO(dave) fix: admin should always have read access"},{"line_number":62,"context_line":"    # \u0027with_admin_a\u0027: {\u0027user\u0027: admin_a, \u0027expected_return\u0027: 200},"},{"line_number":63,"context_line":"    \u0027with_creator_a\u0027: {\u0027user\u0027: creator_a, \u0027expected_return\u0027: 200},"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_960cc73c","line":60,"updated":"2015-06-26 20:30:51.000000000","message":"As creator_only has been renamed to project_access flag, you may want to change this to project_access_disabled or something like that.","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"89201862c9f48f54286caf846549d29e5504a1cc","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 403},"},{"line_number":58,"context_line":"}"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"test_data_read_secret_creator_only \u003d {"},{"line_number":61,"context_line":"    # TODO(dave) fix: admin should always have read access"},{"line_number":62,"context_line":"    # \u0027with_admin_a\u0027: {\u0027user\u0027: admin_a, \u0027expected_return\u0027: 200},"},{"line_number":63,"context_line":"    \u0027with_creator_a\u0027: {\u0027user\u0027: creator_a, \u0027expected_return\u0027: 200},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_e1b88077","line":60,"in_reply_to":"fa32b979_960cc73c","updated":"2015-07-02 12:37:49.000000000","message":"Done","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"510050f26a8a5205ae4913bd266767d85867a7c8","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \u0027with_observer_a\u0027: {\u0027user\u0027: observer_a, \u0027expected_return\u0027: 403},"},{"line_number":75,"context_line":"    \u0027with_auditor_a\u0027: {\u0027user\u0027: auditor_a, \u0027expected_return\u0027: 403},"},{"line_number":76,"context_line":"    \u0027with_admin_b\u0027: {\u0027user\u0027: admin_b, \u0027expected_return\u0027: 403},"},{"line_number":77,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 200},"},{"line_number":78,"context_line":"}"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"test_data_read_secret_rbac_plus_acl \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_56d95f82","line":77,"updated":"2015-06-26 20:30:51.000000000","message":"As per bug https://bugs.launchpad.net/barbican/+bug/1468904 and related change, may be add another TODO for creator user which is returning 200 instead of 403.\n\n\u0027with_creator_b\u0027: {\u0027user\u0027: creator_b, \u0027expected_return\u0027: 403}","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"89201862c9f48f54286caf846549d29e5504a1cc","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    \u0027with_observer_a\u0027: {\u0027user\u0027: observer_a, \u0027expected_return\u0027: 403},"},{"line_number":75,"context_line":"    \u0027with_auditor_a\u0027: {\u0027user\u0027: auditor_a, \u0027expected_return\u0027: 403},"},{"line_number":76,"context_line":"    \u0027with_admin_b\u0027: {\u0027user\u0027: admin_b, \u0027expected_return\u0027: 403},"},{"line_number":77,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 200},"},{"line_number":78,"context_line":"}"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"test_data_read_secret_rbac_plus_acl \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_82cdef86","line":77,"in_reply_to":"fa32b979_56d95f82","updated":"2015-07-02 12:37:49.000000000","message":"Currently the functional test framework only supports one token per user.  Maybe this could be a wishlist item to add support for this?","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"510050f26a8a5205ae4913bd266767d85867a7c8","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 403},"},{"line_number":96,"context_line":"}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"test_data_read_container_creator_only \u003d {"},{"line_number":99,"context_line":"    # TODO(dave) fix: admin should always have read access"},{"line_number":100,"context_line":"    # \u0027with_admin_a\u0027: {\u0027user\u0027: admin_a, \u0027expected_return\u0027: 200},"},{"line_number":101,"context_line":"    \u0027with_creator_a\u0027: {\u0027user\u0027: creator_a, \u0027expected_return\u0027: 200},"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_b6354ba9","line":98,"updated":"2015-06-26 20:30:51.000000000","message":"Same comment as line #60","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"89201862c9f48f54286caf846549d29e5504a1cc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 403},"},{"line_number":96,"context_line":"}"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"test_data_read_container_creator_only \u003d {"},{"line_number":99,"context_line":"    # TODO(dave) fix: admin should always have read access"},{"line_number":100,"context_line":"    # \u0027with_admin_a\u0027: {\u0027user\u0027: admin_a, \u0027expected_return\u0027: 200},"},{"line_number":101,"context_line":"    \u0027with_creator_a\u0027: {\u0027user\u0027: creator_a, \u0027expected_return\u0027: 200},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_82940f43","line":98,"in_reply_to":"fa32b979_b6354ba9","updated":"2015-07-02 12:37:49.000000000","message":"same reply as line #60","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":1091,"name":"Arun Kant","email":"arukant@cisco.com","username":"arunkant-uws"},"change_message_id":"510050f26a8a5205ae4913bd266767d85867a7c8","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    \u0027with_observer_a\u0027: {\u0027user\u0027: observer_a, \u0027expected_return\u0027: 403},"},{"line_number":113,"context_line":"    \u0027with_auditor_a\u0027: {\u0027user\u0027: auditor_a, \u0027expected_return\u0027: 403},"},{"line_number":114,"context_line":"    \u0027with_admin_b\u0027: {\u0027user\u0027: admin_b, \u0027expected_return\u0027: 403},"},{"line_number":115,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 200},"},{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"test_data_read_container_rbac_plus_acl \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa32b979_763fc387","line":115,"updated":"2015-06-26 20:30:51.000000000","message":"Same comment as line #77","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"89201862c9f48f54286caf846549d29e5504a1cc","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    \u0027with_observer_a\u0027: {\u0027user\u0027: observer_a, \u0027expected_return\u0027: 403},"},{"line_number":113,"context_line":"    \u0027with_auditor_a\u0027: {\u0027user\u0027: auditor_a, \u0027expected_return\u0027: 403},"},{"line_number":114,"context_line":"    \u0027with_admin_b\u0027: {\u0027user\u0027: admin_b, \u0027expected_return\u0027: 403},"},{"line_number":115,"context_line":"    \u0027with_observer_b\u0027: {\u0027user\u0027: observer_b, \u0027expected_return\u0027: 200},"},{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"test_data_read_container_rbac_plus_acl \u003d {"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba3cc151_e2895b27","line":115,"in_reply_to":"fa32b979_763fc387","updated":"2015-07-02 12:37:49.000000000","message":"same reply as line #60","commit_id":"57c87813194158b1af7bb30a0026ce37cc758d12"}],"functionaltests/api/v1/models/acl_models.py":[{"author":{"_account_id":9234,"name":"Steve Heyman","email":"steve@heyman.com","username":"hockeynut"},"change_message_id":"d173a9eb11ec906ab510d9367fdb0e5fe0237843","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, entity_type\u003dNone, entity_id\u003dNone, read\u003dNone):"},{"line_number":22,"context_line":"        super(AclModel, self).__init__()"},{"line_number":23,"context_line":"        self.read \u003d read"}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_b6faf6bb","line":23,"updated":"2015-06-03 16:04:28.000000000","message":"we don\u0027t need to save the entity type nor id?","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"},{"author":{"_account_id":11561,"name":"Dave McCowan","email":"dmccowan@cisco.com","username":"dave-mccowan"},"change_message_id":"ec30f51da7139b5de31265a46297a68b3b61bf47","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, entity_type\u003dNone, entity_id\u003dNone, read\u003dNone):"},{"line_number":22,"context_line":"        super(AclModel, self).__init__()"},{"line_number":23,"context_line":"        self.read \u003d read"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_51a8be77","line":23,"in_reply_to":"5afe65bd_b6faf6bb","updated":"2015-06-25 20:45:15.000000000","message":"Done","commit_id":"4dcba248e740ee38dd6e269388a157aafbc3008f"}]}
