)]}'
{"patrole_tempest_plugin/rbac_policy_parser.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"031b6ebfaf115fa844c92f7739b8bf551ef6e573","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        :param path: type string"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":"        # First check if the service is valid"},{"line_number":63,"context_line":"        service \u003d service.lower().strip()"},{"line_number":64,"context_line":"        self.admin_mgr \u003d credentials.AdminManager()"},{"line_number":65,"context_line":"        services \u003d self.admin_mgr.identity_services_v3_client.\\"},{"line_number":66,"context_line":"            list_services()[\u0027services\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_d2e543dc","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":41},"updated":"2017-03-09 20:47:58.000000000","message":"service \u003d service.lower().strip() if service else None","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"0e55cb3add9464e6d8b2beb4934bfa2420c82530","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        :param path: type string"},{"line_number":61,"context_line":"        \"\"\""},{"line_number":62,"context_line":"        # First check if the service is valid"},{"line_number":63,"context_line":"        service \u003d service.lower().strip()"},{"line_number":64,"context_line":"        self.admin_mgr \u003d credentials.AdminManager()"},{"line_number":65,"context_line":"        services \u003d self.admin_mgr.identity_services_v3_client.\\"},{"line_number":66,"context_line":"            list_services()[\u0027services\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_48e60445","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":41},"in_reply_to":"9a30ddce_d2e543dc","updated":"2017-03-09 21:45:02.000000000","message":"fixed in next patch","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"031b6ebfaf115fa844c92f7739b8bf551ef6e573","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.admin_mgr \u003d credentials.AdminManager()"},{"line_number":65,"context_line":"        services \u003d self.admin_mgr.identity_services_v3_client.\\"},{"line_number":66,"context_line":"            list_services()[\u0027services\u0027]"},{"line_number":67,"context_line":"        service_names \u003d []"},{"line_number":68,"context_line":"        for s in services:"},{"line_number":69,"context_line":"            service_names.append(s[\u0027name\u0027])"},{"line_number":70,"context_line":"        if not any(service in name for name in service_names):"},{"line_number":71,"context_line":"            LOG.debug(service + \" is NOT a valid service.\")"},{"line_number":72,"context_line":"            raise rbac_exceptions.RbacInvalidService"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_32a3ff9e","line":69,"range":{"start_line":67,"start_character":0,"end_line":69,"end_character":43},"updated":"2017-03-09 20:47:58.000000000","message":"This can be changed to service_names \u003d [s[\u0027name\u0027] for s in services]","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"0e55cb3add9464e6d8b2beb4934bfa2420c82530","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.admin_mgr \u003d credentials.AdminManager()"},{"line_number":65,"context_line":"        services \u003d self.admin_mgr.identity_services_v3_client.\\"},{"line_number":66,"context_line":"            list_services()[\u0027services\u0027]"},{"line_number":67,"context_line":"        service_names \u003d []"},{"line_number":68,"context_line":"        for s in services:"},{"line_number":69,"context_line":"            service_names.append(s[\u0027name\u0027])"},{"line_number":70,"context_line":"        if not any(service in name for name in service_names):"},{"line_number":71,"context_line":"            LOG.debug(service + \" is NOT a valid service.\")"},{"line_number":72,"context_line":"            raise rbac_exceptions.RbacInvalidService"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_a8a8608e","line":69,"range":{"start_line":67,"start_character":0,"end_line":69,"end_character":43},"in_reply_to":"9a30ddce_32a3ff9e","updated":"2017-03-09 21:45:02.000000000","message":"fixed in next patch","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"031b6ebfaf115fa844c92f7739b8bf551ef6e573","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        service_names \u003d []"},{"line_number":68,"context_line":"        for s in services:"},{"line_number":69,"context_line":"            service_names.append(s[\u0027name\u0027])"},{"line_number":70,"context_line":"        if not any(service in name for name in service_names):"},{"line_number":71,"context_line":"            LOG.debug(service + \" is NOT a valid service.\")"},{"line_number":72,"context_line":"            raise rbac_exceptions.RbacInvalidService"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_52f15394","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":62},"updated":"2017-03-09 20:47:58.000000000","message":"if not service or not any(service in name for name in service_names)","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"0e55cb3add9464e6d8b2beb4934bfa2420c82530","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        service_names \u003d []"},{"line_number":68,"context_line":"        for s in services:"},{"line_number":69,"context_line":"            service_names.append(s[\u0027name\u0027])"},{"line_number":70,"context_line":"        if not any(service in name for name in service_names):"},{"line_number":71,"context_line":"            LOG.debug(service + \" is NOT a valid service.\")"},{"line_number":72,"context_line":"            raise rbac_exceptions.RbacInvalidService"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_e815f848","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":62},"in_reply_to":"9a30ddce_52f15394","updated":"2017-03-09 21:45:02.000000000","message":"fixed in next patch","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"}],"patrole_tempest_plugin/tests/unit/test_rbac_policy_parser.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"031b6ebfaf115fa844c92f7739b8bf551ef6e573","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                mock_try_rule.reset_mock()"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    @mock.patch.object(rbac_policy_parser, \u0027LOG\u0027, autospec\u003dTrue)"},{"line_number":240,"context_line":"    def test_check_for_valid_service(self, m_log):"},{"line_number":241,"context_line":"        test_tenant_id \u003d mock.sentinel.tenant_id"},{"line_number":242,"context_line":"        test_user_id \u003d mock.sentinel.user_id"},{"line_number":243,"context_line":"        service \u003d \u0027invalid_service\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_72f8174a","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":36},"updated":"2017-03-09 20:47:58.000000000","message":"May we call this test_invalid_service_raises_exception.\n\nAnd can we also test for service \u003d None, to make sure that it also raises the same exception?","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"},{"author":{"_account_id":17896,"name":"Rick Bartra","email":"rickbartra@microsoft.com","username":"rb560u"},"change_message_id":"0e55cb3add9464e6d8b2beb4934bfa2420c82530","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                mock_try_rule.reset_mock()"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    @mock.patch.object(rbac_policy_parser, \u0027LOG\u0027, autospec\u003dTrue)"},{"line_number":240,"context_line":"    def test_check_for_valid_service(self, m_log):"},{"line_number":241,"context_line":"        test_tenant_id \u003d mock.sentinel.tenant_id"},{"line_number":242,"context_line":"        test_user_id \u003d mock.sentinel.user_id"},{"line_number":243,"context_line":"        service \u003d \u0027invalid_service\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a30ddce_8b4c769f","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":36},"in_reply_to":"9a30ddce_72f8174a","updated":"2017-03-09 21:45:02.000000000","message":"fixed in next patch","commit_id":"6e8118bc7782c9d99dc91d57d36c6d73e221baf8"}]}
