)]}'
{"etc/keystone.conf.sample":[{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3182e36ad1537938175290854923511a399e5792","unresolved":false,"context_lines":[{"line_number":454,"context_line":"# They can be relative to any directory in the search path"},{"line_number":455,"context_line":"# defined by the config_dir option, or absolute paths. The"},{"line_number":456,"context_line":"# file defined by policy_file must exist for these directories"},{"line_number":457,"context_line":"# to be searched. (multi valued)"},{"line_number":458,"context_line":"#policy_dirs\u003dpolicy.d"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":""}],"source_content_type":"application/octet-stream","patch_set":1,"id":"3a961159_e5132aff","line":457,"updated":"2014-12-31 20:36:53.000000000","message":"looks like master is out of date....","commit_id":"0aab9a8fbf64aac5d12857742f431b0063c0b2b1"}],"keystone/tests/test_backend.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0063a9d8577b8ed6992143efa1d4af89e4bb302d","unresolved":false,"context_lines":[{"line_number":1226,"context_line":"                                         project_id\u003dself.tenant_bar[\u0027id\u0027])"},{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"    def test_grant_crud_throws_exception_if_invalid_role(self):"},{"line_number":1229,"context_line":"        \"\"\"Check RoleNotFound thrown if role does not exist.\"\"\""},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"        def assert_exception_raised_user_project(f, user_id, project_id):"},{"line_number":1232,"context_line":"            self.assertRaises("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_c29c595e","line":1229,"updated":"2015-01-02 16:33:21.000000000","message":"nit: s/Check/Ensure/","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"58690c8890a3e285419ab11833956e153a2c5aa0","unresolved":false,"context_lines":[{"line_number":1226,"context_line":"                                         project_id\u003dself.tenant_bar[\u0027id\u0027])"},{"line_number":1227,"context_line":""},{"line_number":1228,"context_line":"    def test_grant_crud_throws_exception_if_invalid_role(self):"},{"line_number":1229,"context_line":"        \"\"\"Check RoleNotFound thrown if role does not exist.\"\"\""},{"line_number":1230,"context_line":""},{"line_number":1231,"context_line":"        def assert_exception_raised_user_project(f, user_id, project_id):"},{"line_number":1232,"context_line":"            self.assertRaises("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_5ca849db","line":1229,"in_reply_to":"3a961159_c29c595e","updated":"2015-01-03 02:07:08.000000000","message":"Done","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0063a9d8577b8ed6992143efa1d4af89e4bb302d","unresolved":false,"context_lines":[{"line_number":1248,"context_line":"                exception.RoleNotFound, f, group_id\u003dgroup_id,"},{"line_number":1249,"context_line":"                domain_id\u003ddomain_id, role_id\u003duuid.uuid4().hex)"},{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1252,"context_line":"                \u0027password\u0027: uuid.uuid4().hex, \u0027enabled\u0027: True}"},{"line_number":1253,"context_line":"        user \u003d self.identity_api.create_user(user)"},{"line_number":1254,"context_line":"        group \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_02c2e152","line":1251,"updated":"2015-01-02 16:33:21.000000000","message":"could change these to: \n\n    user_resp\n\ninstead of: \n\n    user\n\nThen we have the dictionary used as the reference to create the entity and the response.","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"58690c8890a3e285419ab11833956e153a2c5aa0","unresolved":false,"context_lines":[{"line_number":1248,"context_line":"                exception.RoleNotFound, f, group_id\u003dgroup_id,"},{"line_number":1249,"context_line":"                domain_id\u003ddomain_id, role_id\u003duuid.uuid4().hex)"},{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1252,"context_line":"                \u0027password\u0027: uuid.uuid4().hex, \u0027enabled\u0027: True}"},{"line_number":1253,"context_line":"        user \u003d self.identity_api.create_user(user)"},{"line_number":1254,"context_line":"        group \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_1c9ec1b8","line":1251,"in_reply_to":"3a961159_02c2e152","updated":"2015-01-03 02:07:08.000000000","message":"Done","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0063a9d8577b8ed6992143efa1d4af89e4bb302d","unresolved":false,"context_lines":[{"line_number":1253,"context_line":"        user \u003d self.identity_api.create_user(user)"},{"line_number":1254,"context_line":"        group \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1255,"context_line":"                 \u0027enabled\u0027: True}"},{"line_number":1256,"context_line":"        group \u003d self.identity_api.create_group(group)"},{"line_number":1257,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":1258,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":1259,"context_line":"        self.assignment_api.create_project(project[\u0027id\u0027], project)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_22a0bda4","line":1256,"updated":"2015-01-02 16:33:21.000000000","message":"same comment here","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"58690c8890a3e285419ab11833956e153a2c5aa0","unresolved":false,"context_lines":[{"line_number":1253,"context_line":"        user \u003d self.identity_api.create_user(user)"},{"line_number":1254,"context_line":"        group \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1255,"context_line":"                 \u0027enabled\u0027: True}"},{"line_number":1256,"context_line":"        group \u003d self.identity_api.create_group(group)"},{"line_number":1257,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":1258,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":1259,"context_line":"        self.assignment_api.create_project(project[\u0027id\u0027], project)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_3ca53d04","line":1256,"in_reply_to":"3a961159_22a0bda4","updated":"2015-01-03 02:07:08.000000000","message":"Done","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0063a9d8577b8ed6992143efa1d4af89e4bb302d","unresolved":false,"context_lines":[{"line_number":1256,"context_line":"        group \u003d self.identity_api.create_group(group)"},{"line_number":1257,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":1258,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":1259,"context_line":"        self.assignment_api.create_project(project[\u0027id\u0027], project)"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"        for manager_call in [self.assignment_api.create_grant,"},{"line_number":1262,"context_line":"                             self.assignment_api.get_grant,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_c2c7f963","line":1259,"updated":"2015-01-02 16:33:21.000000000","message":"why not: \n\n    project_resp \u003d self.assignment_api.create_project(project[\u0027id\u0027], project) \n\nto be consistent with user and group? Then the assertions below will be referencing the response instead of the local reference used to create the project.","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"58690c8890a3e285419ab11833956e153a2c5aa0","unresolved":false,"context_lines":[{"line_number":1256,"context_line":"        group \u003d self.identity_api.create_group(group)"},{"line_number":1257,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":1258,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":1259,"context_line":"        self.assignment_api.create_project(project[\u0027id\u0027], project)"},{"line_number":1260,"context_line":""},{"line_number":1261,"context_line":"        for manager_call in [self.assignment_api.create_grant,"},{"line_number":1262,"context_line":"                             self.assignment_api.get_grant,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_fc9ad5c3","line":1259,"in_reply_to":"3a961159_c2c7f963","updated":"2015-01-03 02:07:08.000000000","message":"will do....the reason it is different is that for user and groups the manager layer generates the ID...so you MUST use the response, while for other entities the ID is passed into the manager, so you can use with the local or the response.","commit_id":"ac84c8aec83edf803976950114658a706c7b7e3f"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"c13687cb371782456838a52e8832220b6759c515","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"        def assert_exception_raised_group_domain(f, group_id, domain_id):"},{"line_number":1247,"context_line":"            self.assertRaises("},{"line_number":1248,"context_line":"                exception.RoleNotFound, f, group_id\u003dgroup_id,"},{"line_number":1249,"context_line":"                domain_id\u003ddomain_id, role_id\u003duuid.uuid4().hex)"},{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1252,"context_line":"                \u0027password\u0027: uuid.uuid4().hex, \u0027enabled\u0027: True}"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_c531a0a3","line":1249,"updated":"2015-01-05 20:10:03.000000000","message":"We could have only one method instead of 4 here. It would looks like:\n\ndef assert_role_not_found_exception(f, **kwargs):\n    self.assertRaises(exception.RoleNotFound, f, role_id\u003duuid.uuid4().hex, **kwargs)\n\nand would be called as follows at 1265:\n\n    assert_role_not_found_exception(manager_call, user_id\u003d\u003cuser_id\u003e, project_id\u003d\u003cproject_id\u003e)","commit_id":"9a9df71c91dc9b4c5860d8ba49c85b4e043bb520"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3f39c7be15b22c416aca7e05f4c96586ced5e658","unresolved":false,"context_lines":[{"line_number":1246,"context_line":"        def assert_exception_raised_group_domain(f, group_id, domain_id):"},{"line_number":1247,"context_line":"            self.assertRaises("},{"line_number":1248,"context_line":"                exception.RoleNotFound, f, group_id\u003dgroup_id,"},{"line_number":1249,"context_line":"                domain_id\u003ddomain_id, role_id\u003duuid.uuid4().hex)"},{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1252,"context_line":"                \u0027password\u0027: uuid.uuid4().hex, \u0027enabled\u0027: True}"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_907a74b8","line":1249,"in_reply_to":"3a961159_c531a0a3","updated":"2015-01-05 21:11:28.000000000","message":"that\u0027s a nice idea!  Done.","commit_id":"9a9df71c91dc9b4c5860d8ba49c85b4e043bb520"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"c13687cb371782456838a52e8832220b6759c515","unresolved":false,"context_lines":[{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1252,"context_line":"                \u0027password\u0027: uuid.uuid4().hex, \u0027enabled\u0027: True}"},{"line_number":1253,"context_line":"        user_resp \u003d self.identity_api.create_user(user)"},{"line_number":1254,"context_line":"        group \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1255,"context_line":"                 \u0027enabled\u0027: True}"},{"line_number":1256,"context_line":"        group_resp \u003d self.identity_api.create_group(group)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_a5d01454","line":1253,"updated":"2015-01-05 20:10:03.000000000","message":"We don\u0027t need to create a new user here. Just use one from default fixtures: user_foo, etc","commit_id":"9a9df71c91dc9b4c5860d8ba49c85b4e043bb520"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3f39c7be15b22c416aca7e05f4c96586ced5e658","unresolved":false,"context_lines":[{"line_number":1250,"context_line":""},{"line_number":1251,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1252,"context_line":"                \u0027password\u0027: uuid.uuid4().hex, \u0027enabled\u0027: True}"},{"line_number":1253,"context_line":"        user_resp \u003d self.identity_api.create_user(user)"},{"line_number":1254,"context_line":"        group \u003d {\u0027name\u0027: uuid.uuid4().hex, \u0027domain_id\u0027: DEFAULT_DOMAIN_ID,"},{"line_number":1255,"context_line":"                 \u0027enabled\u0027: True}"},{"line_number":1256,"context_line":"        group_resp \u003d self.identity_api.create_group(group)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_70542822","line":1253,"in_reply_to":"3a961159_a5d01454","updated":"2015-01-05 21:11:28.000000000","message":"I\u0027m not a fan of default fixtures....and think each test should create its own test artefacts","commit_id":"9a9df71c91dc9b4c5860d8ba49c85b4e043bb520"},{"author":{"_account_id":9142,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@lsd.ufcg.edu.br","username":"samuel-z","inactive":true},"change_message_id":"c13687cb371782456838a52e8832220b6759c515","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":1258,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":1259,"context_line":"        project_resp \u003d self.assignment_api.create_project(project[\u0027id\u0027],"},{"line_number":1260,"context_line":"                                                          project)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"        for manager_call in [self.assignment_api.create_grant,"},{"line_number":1263,"context_line":"                             self.assignment_api.get_grant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_25c42491","line":1260,"updated":"2015-01-05 20:10:03.000000000","message":"Same as line 1253. Use one of the existing projects from default fixtures: tenant_bar, etc","commit_id":"9a9df71c91dc9b4c5860d8ba49c85b4e043bb520"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"3f39c7be15b22c416aca7e05f4c96586ced5e658","unresolved":false,"context_lines":[{"line_number":1257,"context_line":"        project \u003d {\u0027id\u0027: uuid.uuid4().hex, \u0027name\u0027: uuid.uuid4().hex,"},{"line_number":1258,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":1259,"context_line":"        project_resp \u003d self.assignment_api.create_project(project[\u0027id\u0027],"},{"line_number":1260,"context_line":"                                                          project)"},{"line_number":1261,"context_line":""},{"line_number":1262,"context_line":"        for manager_call in [self.assignment_api.create_grant,"},{"line_number":1263,"context_line":"                             self.assignment_api.get_grant,"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_90519432","line":1260,"in_reply_to":"3a961159_25c42491","updated":"2015-01-05 21:11:28.000000000","message":"ditto","commit_id":"9a9df71c91dc9b4c5860d8ba49c85b4e043bb520"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"48e3364fed6b675489f05f04e50ea5551b64888a","unresolved":false,"context_lines":[{"line_number":1245,"context_line":""},{"line_number":1246,"context_line":"        for manager_call in [self.assignment_api.create_grant,"},{"line_number":1247,"context_line":"                             self.assignment_api.get_grant,"},{"line_number":1248,"context_line":"                             self.assignment_api.delete_grant]:"},{"line_number":1249,"context_line":"            assert_role_not_found_exception("},{"line_number":1250,"context_line":"                manager_call,"},{"line_number":1251,"context_line":"                user_id\u003duser_resp[\u0027id\u0027], project_id\u003dproject_resp[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a961159_faac5537","line":1248,"updated":"2015-01-06 18:53:04.000000000","message":"nice :)","commit_id":"71d8c6e4d4692c5515b0642e1dfb72e0a83e53fa"}]}
