)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"51c58e099a72e758cc1e1c6ac71dca84b5a3d150","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The read_deleted parameter in the Context object is simply unused."},{"line_number":10,"context_line":"This patch removes associated logic, and for what is worth, adds"},{"line_number":11,"context_line":"deprecation warnings against explicit usage of read_deleted."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch also remove an unused Context class in unit tests for"},{"line_number":14,"context_line":"the OpenContrail plugin."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a0c5dc1_45879d61","line":11,"updated":"2015-05-12 20:03:43.000000000","message":"This adds the deprecation warnings in such a generic way that it feels like this should be split in to two patches, the first to add the deprecation warning framework and the second to deprecate read_deleted.  Consider splitting them so that we can handle them independently.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"778147fd4e21ad8f21bb4d371e2a6ee116dfea41","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The read_deleted parameter in the Context object is simply unused."},{"line_number":10,"context_line":"This patch removes associated logic, and for what is worth, adds"},{"line_number":11,"context_line":"deprecation warnings against explicit usage of read_deleted."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch also remove an unused Context class in unit tests for"},{"line_number":14,"context_line":"the OpenContrail plugin."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a016987_5f050c78","line":11,"in_reply_to":"9a0c5dc1_45879d61","updated":"2015-05-15 17:27:34.000000000","message":"Yeah that\u0027s awesome. I like raking in commits ;)","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"366789ae14f2c43e31737fcf7b90e42e3d6c8321","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This patch removes associated logic, and for what is worth, adds"},{"line_number":11,"context_line":"deprecation warnings against explicit usage of read_deleted."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch also remove an unused Context class in unit tests for"},{"line_number":14,"context_line":"the OpenContrail plugin."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic69d22dc229ebe8fac1f6be0c4860d19732505b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9af37de9_a76af018","line":13,"updated":"2015-05-11 09:37:38.000000000","message":"removes","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"c431712e71574dc4cced20d867624edd805b5ba7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This patch removes associated logic, and for what is worth, adds"},{"line_number":11,"context_line":"deprecation warnings against explicit usage of read_deleted."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch also remove an unused Context class in unit tests for"},{"line_number":14,"context_line":"the OpenContrail plugin."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic69d22dc229ebe8fac1f6be0c4860d19732505b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fa32b979_8f8c9d80","line":13,"in_reply_to":"7a016987_3f2ff0f7","updated":"2015-06-15 20:47:28.000000000","message":"I don\u0027t care much about stackalitics.  I really think that lumping changes together slows everything down.  I\u0027ve seen patches sit for months with no end in sight begin to merge fairly quickly once someone starts breaking them down in to appropriately scoped pieces.  You can merge the good parts while continuing discussion on the trickier parts.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"778147fd4e21ad8f21bb4d371e2a6ee116dfea41","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This patch removes associated logic, and for what is worth, adds"},{"line_number":11,"context_line":"deprecation warnings against explicit usage of read_deleted."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch also remove an unused Context class in unit tests for"},{"line_number":14,"context_line":"the OpenContrail plugin."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic69d22dc229ebe8fac1f6be0c4860d19732505b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a016987_3f2ff0f7","line":13,"in_reply_to":"9a0c5dc1_c5c14d82","updated":"2015-05-15 17:27:34.000000000","message":"Carl, it is not strictly related... I thought I was the pedant one.\n\nI will do one more commit, that will give me even more stackalitics points....\nThey say they will give you a donut for every 1,000 commits","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"51c58e099a72e758cc1e1c6ac71dca84b5a3d150","unresolved":false,"context_lines":[{"line_number":10,"context_line":"This patch removes associated logic, and for what is worth, adds"},{"line_number":11,"context_line":"deprecation warnings against explicit usage of read_deleted."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"This patch also remove an unused Context class in unit tests for"},{"line_number":14,"context_line":"the OpenContrail plugin."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: Ic69d22dc229ebe8fac1f6be0c4860d19732505b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"9a0c5dc1_c5c14d82","line":13,"in_reply_to":"9af37de9_a76af018","updated":"2015-05-12 20:03:43.000000000","message":"Is this just a random tag-along that has nothing to do with the rest of the patch?  There are lots of problems with letting patches do more than one independent thing at a time.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"}],"neutron/context.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c93a44f4e0e64b990e0a2dafc8cdf4a763a09f1c","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"    def elevated(self, **kwargs):"},{"line_number":134,"context_line":"        \"\"\"Return a version of this context with admin flag set.\"\"\""},{"line_number":135,"context_line":"        # Preserve previous behaviour by raising a TypeError is unexpected"},{"line_number":136,"context_line":"        # keyword parameters are passed in."},{"line_number":137,"context_line":"        verify_keyword_parameters(kwargs, \u0027elevated\u0027, \u0027read_deleted\u0027)"},{"line_number":138,"context_line":"        deprecate_parameters(kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_0bd2c600","line":135,"updated":"2015-04-28 14:11:17.000000000","message":"is -\u003e if","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"f3a1bc4b85e40342ffffdb60203049fe61f883da","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\"Return a version of this context with admin flag set.\"\"\""},{"line_number":135,"context_line":"        # Preserve previous behaviour by raising a TypeError is unexpected"},{"line_number":136,"context_line":"        # keyword parameters are passed in."},{"line_number":137,"context_line":"        verify_keyword_parameters(kwargs, \u0027elevated\u0027, \u0027read_deleted\u0027)"},{"line_number":138,"context_line":"        deprecate_parameters(kwargs)"},{"line_number":139,"context_line":"        context \u003d copy.copy(self)"},{"line_number":140,"context_line":"        context.is_admin \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_81a11dac","line":137,"updated":"2015-04-28 12:10:27.000000000","message":"I know this sounds excessive, but I\u0027m trying to find the best solution for deprecating keyword parameters.","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c93a44f4e0e64b990e0a2dafc8cdf4a763a09f1c","unresolved":false,"context_lines":[{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"def get_admin_context(load_admin_roles\u003dTrue, **kwargs):"},{"line_number":157,"context_line":"    # Preserve previous behaviour by raising a TypeError is unexpected"},{"line_number":158,"context_line":"    # keyword parameters are passed in."},{"line_number":159,"context_line":"    verify_keyword_parameters(kwargs, \u0027get_admin_context\u0027, \u0027read_deleted\u0027)"},{"line_number":160,"context_line":"    deprecate_parameters(kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_4b5afe84","line":157,"updated":"2015-04-28 14:11:17.000000000","message":"ditto","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c93a44f4e0e64b990e0a2dafc8cdf4a763a09f1c","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def get_admin_context_without_session(**kwargs):"},{"line_number":169,"context_line":"    # Preserve previous behaviour by raising a TypeError is unexpected"},{"line_number":170,"context_line":"    # keyword parameters are passed in."},{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_eb51ca63","line":169,"updated":"2015-04-28 14:11:17.000000000","message":"ditto","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"c93a44f4e0e64b990e0a2dafc8cdf4a763a09f1c","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"},{"line_number":173,"context_line":"                              \u0027read_deleted\u0027)"},{"line_number":174,"context_line":"    deprecate_parameters(kwargs)"},{"line_number":175,"context_line":"    return ContextBase(user_id\u003dNone,"},{"line_number":176,"context_line":"                       tenant_id\u003dNone,"},{"line_number":177,"context_line":"                       is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_ebd8aaf1","line":174,"updated":"2015-04-28 14:11:17.000000000","message":"Could this be done with a decorator to reduce code duplication?","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c55a3376cb473a7bb45c75a60d04db0777b896c6","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"},{"line_number":173,"context_line":"                              \u0027read_deleted\u0027)"},{"line_number":174,"context_line":"    deprecate_parameters(kwargs)"},{"line_number":175,"context_line":"    return ContextBase(user_id\u003dNone,"},{"line_number":176,"context_line":"                       tenant_id\u003dNone,"},{"line_number":177,"context_line":"                       is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3acd31a7_a91d1ebf","line":174,"in_reply_to":"5ad0253b_6493d4a4","updated":"2015-04-30 13:59:26.000000000","message":"deprecate and verify are semantically different so I would not stash them together in the same decorator.\n\nTo be honest with you I hate that verify function, but I felt it was needed after introducing kwargs to do proper deprecation.\n\nPersonally, I would just have an \"imperfect\" deprecate function.","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"622ccd935d07a4e90329adaaad1efba080268dde","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"},{"line_number":173,"context_line":"                              \u0027read_deleted\u0027)"},{"line_number":174,"context_line":"    deprecate_parameters(kwargs)"},{"line_number":175,"context_line":"    return ContextBase(user_id\u003dNone,"},{"line_number":176,"context_line":"                       tenant_id\u003dNone,"},{"line_number":177,"context_line":"                       is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ad0253b_6493d4a4","line":174,"in_reply_to":"5ad0253b_beb33d0a","updated":"2015-04-28 17:35:51.000000000","message":"Well I was thinking verify_ and deprecate_ above could be rolled into a decorator. But the functions to be decorated have different args and elevated() is a method so crafting a decorator to handle all these would be messy. So, yeah, probably not worth the effort.","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"9ca9b7abd860dc7e268566b24b79a32a886a81fc","unresolved":false,"context_lines":[{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"},{"line_number":173,"context_line":"                              \u0027read_deleted\u0027)"},{"line_number":174,"context_line":"    deprecate_parameters(kwargs)"},{"line_number":175,"context_line":"    return ContextBase(user_id\u003dNone,"},{"line_number":176,"context_line":"                       tenant_id\u003dNone,"},{"line_number":177,"context_line":"                       is_admin\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5ad0253b_beb33d0a","line":174,"in_reply_to":"7ad32947_ebd8aaf1","updated":"2015-04-28 16:51:56.000000000","message":"I mean I can do that... but what duplication do you see? I would be one line for one line imho","commit_id":"e00bd0fbfca0c8a0d842b82aa3ad9eae3bdf0a7b"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"366789ae14f2c43e31737fcf7b90e42e3d6c8321","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"DEPRECATED_PARAMETERS \u003d set([\u0027read_deleted\u0027])"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def verify_keyword_parameters(kwargs, function_name, *expected_kw):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9af37de9_4704647d","line":31,"updated":"2015-05-11 09:37:38.000000000","message":"py26 support is gone you can use {\u0027read_deleted\u0027}","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"778147fd4e21ad8f21bb4d371e2a6ee116dfea41","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":31,"context_line":"DEPRECATED_PARAMETERS \u003d set([\u0027read_deleted\u0027])"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"def verify_keyword_parameters(kwargs, function_name, *expected_kw):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_dfe8dce4","line":31,"in_reply_to":"9af37de9_4704647d","updated":"2015-05-15 17:27:34.000000000","message":"ok","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"9ff7ef5ddd02a72053af07982d59cf2e71b675e6","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def deprecate_parameters(parameters, version\u003d\u0027Liberty\u0027):"},{"line_number":42,"context_line":"    to_deprecate \u003d set(parameters) \u0026 DEPRECATED_PARAMETERS"},{"line_number":43,"context_line":"    # every element in to_deprecate should be a string"},{"line_number":44,"context_line":"    deprecation_text \u003d \",\".join(to_deprecate)"},{"line_number":45,"context_line":"    if deprecation_text:"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_36362f04","line":42,"updated":"2015-05-12 14:58:51.000000000","message":"it seems strange to make the function take \"version\" argument while hardcoding DEPRECATED_PARAMETERS.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"778147fd4e21ad8f21bb4d371e2a6ee116dfea41","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"def deprecate_parameters(parameters, version\u003d\u0027Liberty\u0027):"},{"line_number":42,"context_line":"    to_deprecate \u003d set(parameters) \u0026 DEPRECATED_PARAMETERS"},{"line_number":43,"context_line":"    # every element in to_deprecate should be a string"},{"line_number":44,"context_line":"    deprecation_text \u003d \",\".join(to_deprecate)"},{"line_number":45,"context_line":"    if deprecation_text:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_dfa45ca7","line":42,"in_reply_to":"9a0c5dc1_36362f04","updated":"2015-05-15 17:27:34.000000000","message":"You have actually a good point here.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"366789ae14f2c43e31737fcf7b90e42e3d6c8321","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    if deprecation_text:"},{"line_number":46,"context_line":"        versionutils.report_deprecated_feature("},{"line_number":47,"context_line":"            LOG,"},{"line_number":48,"context_line":"            _LW(\"Usage of parameters:%(text)s is deprecated in %(version)s\") %"},{"line_number":49,"context_line":"            {\u0027text\u0027: deprecation_text, \u0027version\u0027: version})"},{"line_number":50,"context_line":"    # Returning this value may be unnecessary but simplifies testing"},{"line_number":51,"context_line":"    return to_deprecate"}],"source_content_type":"text/x-python","patch_set":2,"id":"9af37de9_a7231005","line":48,"updated":"2015-05-11 09:37:38.000000000","message":"Do we need to specify version? Normally deployers know what they deploy?\n\nI am pretty sure we will forget to change \u0027Liberty\u0027 to \u0027MasterCard\u0027 in 5 months","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"778147fd4e21ad8f21bb4d371e2a6ee116dfea41","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    if deprecation_text:"},{"line_number":46,"context_line":"        versionutils.report_deprecated_feature("},{"line_number":47,"context_line":"            LOG,"},{"line_number":48,"context_line":"            _LW(\"Usage of parameters:%(text)s is deprecated in %(version)s\") %"},{"line_number":49,"context_line":"            {\u0027text\u0027: deprecation_text, \u0027version\u0027: version})"},{"line_number":50,"context_line":"    # Returning this value may be unnecessary but simplifies testing"},{"line_number":51,"context_line":"    return to_deprecate"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_9f77043a","line":48,"in_reply_to":"9a0c5dc1_02bbdb73","updated":"2015-05-15 17:27:34.000000000","message":"I meant to use version to state \"deprecated as of \u003cversion\u003e\".\n\nAnyway, Yamamoto is correct.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":7448,"name":"Carl Baldwin","email":"carl@ecbaldwin.net","username":"carl-baldwin"},"change_message_id":"51c58e099a72e758cc1e1c6ac71dca84b5a3d150","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    if deprecation_text:"},{"line_number":46,"context_line":"        versionutils.report_deprecated_feature("},{"line_number":47,"context_line":"            LOG,"},{"line_number":48,"context_line":"            _LW(\"Usage of parameters:%(text)s is deprecated in %(version)s\") %"},{"line_number":49,"context_line":"            {\u0027text\u0027: deprecation_text, \u0027version\u0027: version})"},{"line_number":50,"context_line":"    # Returning this value may be unnecessary but simplifies testing"},{"line_number":51,"context_line":"    return to_deprecate"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_02bbdb73","line":48,"in_reply_to":"9af37de9_a7231005","updated":"2015-05-12 20:03:43.000000000","message":"At the least, it doesn\u0027t make sense to have a default value (Liberty or otherwise) and require it be included on a case-by-case basis.  It\u0027ll be a year from now before we know it and the default here won\u0027t make any sense anyway.","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":6854,"name":"YAMAMOTO Takashi","email":"yamamoto@midokura.com","username":"yamamoto"},"change_message_id":"9ff7ef5ddd02a72053af07982d59cf2e71b675e6","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def get_admin_context_without_session(**kwargs):"},{"line_number":169,"context_line":"    # Preserve previous behaviour by raising a TypeError is unexpected"},{"line_number":170,"context_line":"    # keyword parameters are passed in."},{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a0c5dc1_dbb01c8e","line":169,"range":{"start_line":169,"start_character":57,"end_line":169,"end_character":59},"updated":"2015-05-12 14:58:51.000000000","message":"s/is/if/","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"778147fd4e21ad8f21bb4d371e2a6ee116dfea41","unresolved":false,"context_lines":[{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def get_admin_context_without_session(**kwargs):"},{"line_number":169,"context_line":"    # Preserve previous behaviour by raising a TypeError is unexpected"},{"line_number":170,"context_line":"    # keyword parameters are passed in."},{"line_number":171,"context_line":"    verify_keyword_parameters(kwargs,"},{"line_number":172,"context_line":"                              \u0027get_admin_context_without_session\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a016987_ffb718f3","line":169,"in_reply_to":"9a0c5dc1_dbb01c8e","updated":"2015-05-15 17:27:34.000000000","message":"Done","commit_id":"62459b6493d8bcd46bba2fcc12d0626a04449ab8"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"56ed066287a88c0904979e152663d490a6b1bab5","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    def from_dict(cls, values):"},{"line_number":113,"context_line":"        return cls(**values)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @utils.deprecate_parameters(DEPRECATED_PARAMETERS)"},{"line_number":116,"context_line":"    def elevated(self, read_deleted\u003dNone):"},{"line_number":117,"context_line":"        \"\"\"Return a version of this context with admin flag set.\"\"\""},{"line_number":118,"context_line":"        context \u003d copy.copy(self)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afb71cf_43ad52e8","line":115,"updated":"2015-06-05 22:49:46.000000000","message":"and this shall now use debtcollector","commit_id":"937c17905dabf4b609c1551969531d86410062da"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ea8c7cbe4a7596c5ad7f9c82b8ec9d64596183b3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                 user_name\u003dNone, overwrite\u003dTrue, auth_token\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Object initialization."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        :param read_deleted: unused and deprecated."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"},{"line_number":48,"context_line":"            copy of the index is not overwritten."}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_165ac84f","line":45,"updated":"2015-06-08 15:59:25.000000000","message":"I think it\u0027s ok to remove it at all since you already have **kwargs in the method signature.","commit_id":"b97283ff2c9b9b4a8ae54dcbd0ad0e70e5a3d280"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"35bc0dd25a029b289880ea17d8bde7aa3b34871e","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                 user_name\u003dNone, overwrite\u003dTrue, auth_token\u003dNone, **kwargs):"},{"line_number":43,"context_line":"        \"\"\"Object initialization."},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        :param read_deleted: unused and deprecated."},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        :param overwrite: Set to False to ensure that the greenthread local"},{"line_number":48,"context_line":"            copy of the index is not overwritten."}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_bfcee42a","line":45,"in_reply_to":"3afb71cf_165ac84f","updated":"2015-06-09 20:44:07.000000000","message":"will do","commit_id":"b97283ff2c9b9b4a8ae54dcbd0ad0e70e5a3d280"}],"neutron/tests/unit/test_context.py":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"2430ec06893b0bee66f2fc6a369dd0d6f118d44d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        self.assertNotEqual(req_id_before, ctx_admin.request_id)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def test_get_admin_context_deprecated_param_raises(self):"},{"line_number":154,"context_line":"        cfg.CONF.set_override(\u0027fatal_deprecations\u0027, True)"},{"line_number":155,"context_line":"        self.assertRaises(versionutils.DeprecatedConfig,"},{"line_number":156,"context_line":"                          context.get_admin_context,"},{"line_number":157,"context_line":"                          read_deleted\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7a016987_18dd276f","line":154,"updated":"2015-05-19 19:04:00.000000000","message":"We should not rely on configuration options in unit tests, since they are not part of public API. Instead, we should introduce a new fixture into the library (oslo.log) and use it.","commit_id":"937c17905dabf4b609c1551969531d86410062da"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"48c2d4a5ebca5b5bc5bea9b03582796366d2cf6d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        self.assertNotEqual(req_id_before, ctx_admin.request_id)"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    def test_get_admin_context_deprecated_param_raises(self):"},{"line_number":154,"context_line":"        cfg.CONF.set_override(\u0027fatal_deprecations\u0027, True)"},{"line_number":155,"context_line":"        self.assertRaises(versionutils.DeprecatedConfig,"},{"line_number":156,"context_line":"                          context.get_admin_context,"},{"line_number":157,"context_line":"                          read_deleted\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5afe65bd_005ec511","line":154,"in_reply_to":"7a016987_18dd276f","updated":"2015-06-04 18:26:11.000000000","message":"ok... as you have probably realised I did that because setting the fixture was more work! I\u0027ll do that","commit_id":"937c17905dabf4b609c1551969531d86410062da"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"35bc0dd25a029b289880ea17d8bde7aa3b34871e","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"import warnings"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"import sys"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"import mock"},{"line_number":20,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_3ffaf443","line":17,"updated":"2015-06-09 20:44:07.000000000","message":"I have no idea why I\u0027m import this!","commit_id":"b97283ff2c9b9b4a8ae54dcbd0ad0e70e5a3d280"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ea8c7cbe4a7596c5ad7f9c82b8ec9d64596183b3","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        self.assertEqual(req_id_before, oslo_context.get_current().request_id)"},{"line_number":146,"context_line":"        self.assertNotEqual(req_id_before, ctx_admin.request_id)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _verify_deprecation_warning(self, warnings, param):"},{"line_number":149,"context_line":"        self.assertEqual(1, len(warnings))"},{"line_number":150,"context_line":"        self.assertTrue(issubclass(warnings[-1].category, DeprecationWarning))"},{"line_number":151,"context_line":"        self.assertIn(param, str(warnings[-1].message))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_3910174e","line":148,"updated":"2015-06-08 15:59:25.000000000","message":"More tests for debtcollector. Well, not that I want to block the patch for that, but I just wonder, what additional value we get with those tests.","commit_id":"b97283ff2c9b9b4a8ae54dcbd0ad0e70e5a3d280"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"35bc0dd25a029b289880ea17d8bde7aa3b34871e","unresolved":false,"context_lines":[{"line_number":145,"context_line":"        self.assertEqual(req_id_before, oslo_context.get_current().request_id)"},{"line_number":146,"context_line":"        self.assertNotEqual(req_id_before, ctx_admin.request_id)"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"    def _verify_deprecation_warning(self, warnings, param):"},{"line_number":149,"context_line":"        self.assertEqual(1, len(warnings))"},{"line_number":150,"context_line":"        self.assertTrue(issubclass(warnings[-1].category, DeprecationWarning))"},{"line_number":151,"context_line":"        self.assertIn(param, str(warnings[-1].message))"}],"source_content_type":"text/x-python","patch_set":4,"id":"3afb71cf_dff4005c","line":148,"in_reply_to":"3afb71cf_3910174e","updated":"2015-06-09 20:44:07.000000000","message":"no worries I\u0027ll get rid of them ;)","commit_id":"b97283ff2c9b9b4a8ae54dcbd0ad0e70e5a3d280"}]}
