)]}'
{"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5e62419679fbb8f8fd70a09ef10da5b60495380e","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"                          column_attr.op(\u0027NOT LIKE\u0027)(\u0027target:%\u0027)]"},{"line_number":1351,"context_line":"            query \u003d query.filter(or_(*conditions))"},{"line_number":1352,"context_line":"        except AttributeError:"},{"line_number":1353,"context_line":"            log_msg \u003d _(\"\u0027migration_status\u0027 column could not be found.\")"},{"line_number":1354,"context_line":"            LOG.debug(log_msg)"},{"line_number":1355,"context_line":"            return None"},{"line_number":1356,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_77eeae8c","line":1353,"updated":"2015-02-18 19:16:03.000000000","message":"Debug log messages should not have translation markers.","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"ef66293425c82a493341cb8f8f7730fdd2b9e427","unresolved":false,"context_lines":[{"line_number":1350,"context_line":"                          column_attr.op(\u0027NOT LIKE\u0027)(\u0027target:%\u0027)]"},{"line_number":1351,"context_line":"            query \u003d query.filter(or_(*conditions))"},{"line_number":1352,"context_line":"        except AttributeError:"},{"line_number":1353,"context_line":"            log_msg \u003d _(\"\u0027migration_status\u0027 column could not be found.\")"},{"line_number":1354,"context_line":"            LOG.debug(log_msg)"},{"line_number":1355,"context_line":"            return None"},{"line_number":1356,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_9d6341b0","line":1353,"in_reply_to":"da86d52c_77eeae8c","updated":"2015-02-18 20:41:07.000000000","message":"Done","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5e62419679fbb8f8fd70a09ef10da5b60495380e","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"        # metadata is unique, must be a dict"},{"line_number":1361,"context_line":"        if key \u003d\u003d \u0027metadata\u0027:"},{"line_number":1362,"context_line":"            if not isinstance(filters[key], dict):"},{"line_number":1363,"context_line":"                log_msg \u003d _(\"\u0027metadata\u0027 filter value is not valid.\")"},{"line_number":1364,"context_line":"                LOG.debug(log_msg)"},{"line_number":1365,"context_line":"                return None"},{"line_number":1366,"context_line":"            continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_b7e4a6a8","line":1363,"updated":"2015-02-18 19:16:03.000000000","message":"Same.","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"ef66293425c82a493341cb8f8f7730fdd2b9e427","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"        # metadata is unique, must be a dict"},{"line_number":1361,"context_line":"        if key \u003d\u003d \u0027metadata\u0027:"},{"line_number":1362,"context_line":"            if not isinstance(filters[key], dict):"},{"line_number":1363,"context_line":"                log_msg \u003d _(\"\u0027metadata\u0027 filter value is not valid.\")"},{"line_number":1364,"context_line":"                LOG.debug(log_msg)"},{"line_number":1365,"context_line":"                return None"},{"line_number":1366,"context_line":"            continue"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_fd719d77","line":1363,"in_reply_to":"da86d52c_b7e4a6a8","updated":"2015-02-18 20:41:07.000000000","message":"Done","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5e62419679fbb8f8fd70a09ef10da5b60495380e","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"            # schema specific knowledge"},{"line_number":1371,"context_line":"            prop \u003d getattr(column_attr, \u0027property\u0027)"},{"line_number":1372,"context_line":"            if isinstance(prop, RelationshipProperty):"},{"line_number":1373,"context_line":"                log_msg \u003d (_(\"\u0027%s\u0027 filter key is not valid, \""},{"line_number":1374,"context_line":"                             \"it maps to a relationship.\")) % key"},{"line_number":1375,"context_line":"                LOG.debug(log_msg)"},{"line_number":1376,"context_line":"                return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_7795cee2","line":1373,"updated":"2015-02-18 19:16:03.000000000","message":"Same.\n\nPass \"key\" in as an argument to LOG.debug() so the logger can handle the string formatting only if logging level included debug level.","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"ef66293425c82a493341cb8f8f7730fdd2b9e427","unresolved":false,"context_lines":[{"line_number":1370,"context_line":"            # schema specific knowledge"},{"line_number":1371,"context_line":"            prop \u003d getattr(column_attr, \u0027property\u0027)"},{"line_number":1372,"context_line":"            if isinstance(prop, RelationshipProperty):"},{"line_number":1373,"context_line":"                log_msg \u003d (_(\"\u0027%s\u0027 filter key is not valid, \""},{"line_number":1374,"context_line":"                             \"it maps to a relationship.\")) % key"},{"line_number":1375,"context_line":"                LOG.debug(log_msg)"},{"line_number":1376,"context_line":"                return None"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_1d6f5193","line":1373,"in_reply_to":"da86d52c_7795cee2","updated":"2015-02-18 20:41:07.000000000","message":"Done","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"5e62419679fbb8f8fd70a09ef10da5b60495380e","unresolved":false,"context_lines":[{"line_number":1375,"context_line":"                LOG.debug(log_msg)"},{"line_number":1376,"context_line":"                return None"},{"line_number":1377,"context_line":"        except AttributeError:"},{"line_number":1378,"context_line":"            log_msg \u003d _(\"\u0027%s\u0027 filter key is not valid.\") % key"},{"line_number":1379,"context_line":"            LOG.debug(log_msg)"},{"line_number":1380,"context_line":"            return None"},{"line_number":1381,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_f788dec7","line":1378,"updated":"2015-02-18 19:16:03.000000000","message":"Same.\n\nPass \"key\" in as an argument to LOG.debug() so the logger can handle the string formatting only if logging level included debug level.","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"ef66293425c82a493341cb8f8f7730fdd2b9e427","unresolved":false,"context_lines":[{"line_number":1375,"context_line":"                LOG.debug(log_msg)"},{"line_number":1376,"context_line":"                return None"},{"line_number":1377,"context_line":"        except AttributeError:"},{"line_number":1378,"context_line":"            log_msg \u003d _(\"\u0027%s\u0027 filter key is not valid.\") % key"},{"line_number":1379,"context_line":"            LOG.debug(log_msg)"},{"line_number":1380,"context_line":"            return None"},{"line_number":1381,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_9d0a61d0","line":1378,"in_reply_to":"da86d52c_f788dec7","updated":"2015-02-18 20:41:07.000000000","message":"Done","commit_id":"db3c316fd5869d9b331e33772600a76c003d07f9"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"6e98ac34232bfdef6a30feb773dfc967163d1c70","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"    # Holds the simple exact matches"},{"line_number":1379,"context_line":"    filter_dict \u003d {}"},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"    # Iterate over all filters, special case the filter is necessary"},{"line_number":1382,"context_line":"    for key, value in filters.iteritems():"},{"line_number":1383,"context_line":"        if key \u003d\u003d \u0027metadata\u0027:"},{"line_number":1384,"context_line":"            # model.VolumeMetadata defines the backref to Volumes as"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_61789ec4","line":1381,"updated":"2015-02-19 00:30:39.000000000","message":"do you mean \u0027if necessary\u0027.","commit_id":"ff1da301b3f922f0c3acfe22c918abe4220eef2c"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"fe6f061f8e65a8e83947633efad534279497054c","unresolved":false,"context_lines":[{"line_number":1378,"context_line":"    # Holds the simple exact matches"},{"line_number":1379,"context_line":"    filter_dict \u003d {}"},{"line_number":1380,"context_line":""},{"line_number":1381,"context_line":"    # Iterate over all filters, special case the filter is necessary"},{"line_number":1382,"context_line":"    for key, value in filters.iteritems():"},{"line_number":1383,"context_line":"        if key \u003d\u003d \u0027metadata\u0027:"},{"line_number":1384,"context_line":"            # model.VolumeMetadata defines the backref to Volumes as"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_f09616ef","line":1381,"in_reply_to":"da86d52c_61789ec4","updated":"2015-02-19 04:54:29.000000000","message":"Yep, good catch.","commit_id":"ff1da301b3f922f0c3acfe22c918abe4220eef2c"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fbec44678ff8051b9e3743c1342285224ac56051","unresolved":false,"context_lines":[{"line_number":1273,"context_line":"    :param limit: maximum number of items to return"},{"line_number":1274,"context_line":"    :param sort_key: single attributes by which results should be sorted"},{"line_number":1275,"context_line":"    :param sort_dir: direction in which results should be sorted (asc, desc)"},{"line_number":1276,"context_line":"    :param filters: dictionary of filters; see _process_volume_filters"},{"line_number":1277,"context_line":"                    function for more information"},{"line_number":1278,"context_line":"    :returns: list of matching volumes"},{"line_number":1279,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_657ae4f2","line":1276,"updated":"2015-02-23 04:35:29.000000000","message":"I think the original message although rather lengthy was probably a bit more clear.  Maybe a hybrid of the two?  Not so wordy as the original, but a bit more detail than provided here?","commit_id":"516580084f66d792a7da4b3abee481df8b1f9fb3"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"d184eb84c842c4d9498ef652bff90dbe6205378f","unresolved":false,"context_lines":[{"line_number":1273,"context_line":"    :param limit: maximum number of items to return"},{"line_number":1274,"context_line":"    :param sort_key: single attributes by which results should be sorted"},{"line_number":1275,"context_line":"    :param sort_dir: direction in which results should be sorted (asc, desc)"},{"line_number":1276,"context_line":"    :param filters: dictionary of filters; see _process_volume_filters"},{"line_number":1277,"context_line":"                    function for more information"},{"line_number":1278,"context_line":"    :returns: list of matching volumes"},{"line_number":1279,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_bccce762","line":1276,"in_reply_to":"ba7be1f8_657ae4f2","updated":"2015-02-23 15:35:18.000000000","message":"John, how about something like this?\n\n    :param filters: dictionary of filters; values that are in lists, tuples,\n                    or sets cause an \u0027IN\u0027 operation, while exact matching\n                    is used for other values, see _process_volume_filters\n                    function for more information\n\nI\u0027ll also add a bit more information to the _process_volume_filters function.","commit_id":"516580084f66d792a7da4b3abee481df8b1f9fb3"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"fbec44678ff8051b9e3743c1342285224ac56051","unresolved":false,"context_lines":[{"line_number":1341,"context_line":""},{"line_number":1342,"context_line":"    # \u0027no_migration_targets\u0027 is unique, must be either NULL or"},{"line_number":1343,"context_line":"    # not start with \u0027target:\u0027"},{"line_number":1344,"context_line":"    if (\u0027no_migration_targets\u0027 in filters and"},{"line_number":1345,"context_line":"            filters[\u0027no_migration_targets\u0027] is True):"},{"line_number":1346,"context_line":"        filters.pop(\u0027no_migration_targets\u0027)"},{"line_number":1347,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_c539d042","line":1344,"updated":"2015-02-23 04:35:29.000000000","message":"Can we condense this down to a get with a default instead of the if/and?\n\nSo just `filters.get(\u0027no_migration_targets\u0027, False)`","commit_id":"516580084f66d792a7da4b3abee481df8b1f9fb3"},{"author":{"_account_id":10559,"name":"Steven Kaufer","email":"kaufer@us.ibm.com","username":"kaufer"},"change_message_id":"d184eb84c842c4d9498ef652bff90dbe6205378f","unresolved":false,"context_lines":[{"line_number":1341,"context_line":""},{"line_number":1342,"context_line":"    # \u0027no_migration_targets\u0027 is unique, must be either NULL or"},{"line_number":1343,"context_line":"    # not start with \u0027target:\u0027"},{"line_number":1344,"context_line":"    if (\u0027no_migration_targets\u0027 in filters and"},{"line_number":1345,"context_line":"            filters[\u0027no_migration_targets\u0027] is True):"},{"line_number":1346,"context_line":"        filters.pop(\u0027no_migration_targets\u0027)"},{"line_number":1347,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_f15048d6","line":1344,"in_reply_to":"ba7be1f8_c539d042","updated":"2015-02-23 15:35:18.000000000","message":"Yep, good idea.","commit_id":"516580084f66d792a7da4b3abee481df8b1f9fb3"}]}
