)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"071e3571828af9b5b5ffb1d6a5e0451fd3688667","unresolved":false,"context_lines":[{"line_number":29,"context_line":"\t     \"allowed_filters\": [\"name\", \"status\"]"},{"line_number":30,"context_line":"\t     }"},{"line_number":31,"context_line":"               ]}"},{"line_number":32,"context_line":"DocImpact"},{"line_number":33,"context_line":"APIImpact"},{"line_number":34,"context_line":"Co-Authored-By: TommyLike \u003ctommylikehu@gmail.com\u003e"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":17,"id":"5ff73747_6611805d","line":32,"range":{"start_line":32,"start_character":0,"end_line":32,"end_character":9},"updated":"2017-04-27 19:40:25.000000000","message":"Can we just add the api-ref updates with this patch?","commit_id":"bf5db2568c1e063e0af9ac53c52aa44a74f61efe"}],"cinder/api/common.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    This method checks resource_query_filters_file and returns a list of"},{"line_number":424,"context_line":"    the valid filter keys that are available."},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    If NO resource is specified the contents of the file are returned."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    If the resource isn\u0027t found in the json file, then None is returned."},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_661a8617","line":426,"updated":"2017-04-21 08:21:15.000000000","message":"I\u0027m not a fan to return different types but won\u0027t -1 for it now","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"7f068999658afbe40ea2ae81e0cae1bf1cedf98d","unresolved":false,"context_lines":[{"line_number":423,"context_line":"    This method checks resource_query_filters_file and returns a list of"},{"line_number":424,"context_line":"    the valid filter keys that are available."},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    If NO resource is specified the contents of the file are returned."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    If the resource isn\u0027t found in the json file, then None is returned."},{"line_number":429,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_c9296d37","line":426,"in_reply_to":"7ffa3b31_661a8617","updated":"2017-04-21 11:42:44.000000000","message":"This docstring is a little confusing, I will update this in the next patch.","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    If NO resource is specified the contents of the file are returned."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    If the resource isn\u0027t found in the json file, then None is returned."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    NOTE:  If the appropriate micro-version supporting this config is called"},{"line_number":431,"context_line":"    we ignore the old hard coded filters in the Config file"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_e6269668","line":428,"updated":"2017-04-21 08:21:15.000000000","message":"Empty dict will be returened","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"7f068999658afbe40ea2ae81e0cae1bf1cedf98d","unresolved":false,"context_lines":[{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    If NO resource is specified the contents of the file are returned."},{"line_number":427,"context_line":""},{"line_number":428,"context_line":"    If the resource isn\u0027t found in the json file, then None is returned."},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    NOTE:  If the appropriate micro-version supporting this config is called"},{"line_number":431,"context_line":"    we ignore the old hard coded filters in the Config file"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_89e4850e","line":428,"in_reply_to":"7ffa3b31_e6269668","updated":"2017-04-21 11:42:44.000000000","message":"Done","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":437,"context_line":"            return _FILTERS_COLLECTION"},{"line_number":438,"context_line":"        else:"},{"line_number":439,"context_line":"            return {resource: _FILTERS_COLLECTION[resource]}"},{"line_number":440,"context_line":"    except Exception:"},{"line_number":441,"context_line":"        LOG.debug(\"Failed to collect resource %s\u0027s filters.\", resource)"},{"line_number":442,"context_line":"        return {}"},{"line_number":443,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_660166af","line":440,"updated":"2017-04-21 08:21:15.000000000","message":"nit: It would be good to catch less general exception here","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"ac056aaf6daa973ffb06099f773e26c6de8e54e8","unresolved":false,"context_lines":[{"line_number":443,"context_line":"        return {}"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"def update_general_filters(context, filters, resource):"},{"line_number":447,"context_line":"    if context.is_admin:"},{"line_number":448,"context_line":"        # Allow all options"},{"line_number":449,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":20,"id":"3f044301_46f6d1fb","line":446,"updated":"2017-05-08 04:32:13.000000000","message":"Given the fact that what this function does is to reject any request contains non-preconfigured filter for non-admin user, it seems to me that the function name is confusing here, would it be better to name it \u0027reject_invalid_filter()\u0027?","commit_id":"27aeba0b5d3cf64286125937e8336ba1d3b26b16"}],"cinder/api/contrib/backups.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return (\u0027name\u0027, \u0027status\u0027, \u0027volume_id\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @common.process_general_filtering(\u0027backup\u0027)"},{"line_number":87,"context_line":"    def _process_non_general_filtering(self, context\u003dNone, filters\u003dNone,"},{"line_number":88,"context_line":"                                       req_version\u003dNone):"},{"line_number":89,"context_line":"        utils.remove_invalid_filter_options(context,"},{"line_number":90,"context_line":"                                            filters,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_66c84673","line":87,"updated":"2017-04-21 08:21:15.000000000","message":"IMO, _process_backup_filtering will be better","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"7f068999658afbe40ea2ae81e0cae1bf1cedf98d","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        return (\u0027name\u0027, \u0027status\u0027, \u0027volume_id\u0027)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    @common.process_general_filtering(\u0027backup\u0027)"},{"line_number":87,"context_line":"    def _process_non_general_filtering(self, context\u003dNone, filters\u003dNone,"},{"line_number":88,"context_line":"                                       req_version\u003dNone):"},{"line_number":89,"context_line":"        utils.remove_invalid_filter_options(context,"},{"line_number":90,"context_line":"                                            filters,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_c99a8d60","line":87,"in_reply_to":"7ffa3b31_66c84673","updated":"2017-04-21 11:42:44.000000000","message":"Done","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"}],"cinder/api/v3/attachments.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        return attachment_views.ViewBuilder.list(attachments, detail\u003dTrue)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @common.process_general_filtering(\u0027attachment\u0027)"},{"line_number":65,"context_line":"    def _process_non_general_filtering(self, context\u003dNone, filters\u003dNone,"},{"line_number":66,"context_line":"                                       req_version\u003dNone):"},{"line_number":67,"context_line":"        utils.remove_invalid_filter_options(context, filters,"},{"line_number":68,"context_line":"                                            self.allowed_filters)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_4671ca43","line":65,"updated":"2017-04-21 08:21:15.000000000","message":"The same as for backup","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"7f068999658afbe40ea2ae81e0cae1bf1cedf98d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        return attachment_views.ViewBuilder.list(attachments, detail\u003dTrue)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @common.process_general_filtering(\u0027attachment\u0027)"},{"line_number":65,"context_line":"    def _process_non_general_filtering(self, context\u003dNone, filters\u003dNone,"},{"line_number":66,"context_line":"                                       req_version\u003dNone):"},{"line_number":67,"context_line":"        utils.remove_invalid_filter_options(context, filters,"},{"line_number":68,"context_line":"                                            self.allowed_filters)"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_09e3d5da","line":65,"in_reply_to":"7ffa3b31_4671ca43","updated":"2017-04-21 11:42:44.000000000","message":"Done","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"}],"cinder/api/v3/views/filters.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    @classmethod"},{"line_number":20,"context_line":"    def detail(cls, filter):"},{"line_number":21,"context_line":"        \"\"\"Detailed view of an filter.\"\"\""},{"line_number":22,"context_line":"        result \u003d {"},{"line_number":23,"context_line":"            \u0027resource\u0027: filter[0],"},{"line_number":24,"context_line":"            \u0027valid_keys\u0027: filter[1],"},{"line_number":25,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_06e3c2da","line":22,"updated":"2017-04-21 08:21:15.000000000","message":"Could you please add some docstring to describe fileter format? So everybody will be able to understand what is going here","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"7f068999658afbe40ea2ae81e0cae1bf1cedf98d","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    @classmethod"},{"line_number":20,"context_line":"    def detail(cls, filter):"},{"line_number":21,"context_line":"        \"\"\"Detailed view of an filter.\"\"\""},{"line_number":22,"context_line":"        result \u003d {"},{"line_number":23,"context_line":"            \u0027resource\u0027: filter[0],"},{"line_number":24,"context_line":"            \u0027valid_keys\u0027: filter[1],"},{"line_number":25,"context_line":"        }"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_e96b09ee","line":22,"in_reply_to":"7ffa3b31_06e3c2da","updated":"2017-04-21 11:42:44.000000000","message":"Done","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"}],"cinder/tests/unit/api/test_common.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"0c676cfffdf957b5efe53708cd3b666bd9e8cc4a","unresolved":false,"context_lines":[{"line_number":359,"context_line":""},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"@ddt.ddt"},{"line_number":362,"context_line":"class GeneralFiltersTest(test.TestCase):"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":"    @ddt.data({\u0027filters\u0027: {\u0027volume\u0027: [\u0027key1\u0027, \u0027key2\u0027]},"},{"line_number":365,"context_line":"               \u0027resource\u0027: \u0027volume\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ffa3b31_e6fe9669","line":362,"updated":"2017-04-21 08:21:15.000000000","message":"Thanks for small and clean unit tests","commit_id":"ab392cc8e1d1c76aba9a282acea725df0e011851"}],"cinder/tests/unit/api/v3/test_messages.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"071e3571828af9b5b5ffb1d6a5e0451fd3688667","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import ddt"},{"line_number":14,"context_line":"import mock"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from six.moves import http_client"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder.api import extensions"}],"source_content_type":"text/x-python","patch_set":17,"id":"5ff73747_6643c06d","line":15,"updated":"2017-04-27 19:40:25.000000000","message":"Extra blank line can be removed since these are all third party imports.","commit_id":"bf5db2568c1e063e0af9ac53c52aa44a74f61efe"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"ef5ea3e6f3ff8e3865585731e136271a0893ddab","unresolved":false,"context_lines":[{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import ddt"},{"line_number":14,"context_line":"import mock"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from six.moves import http_client"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from cinder.api import extensions"}],"source_content_type":"text/x-python","patch_set":17,"id":"5ff73747_bd52ad33","line":15,"in_reply_to":"5ff73747_6643c06d","updated":"2017-05-02 01:35:28.000000000","message":"Done","commit_id":"bf5db2568c1e063e0af9ac53c52aa44a74f61efe"}],"doc/source/man/generalized_filters.rst":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"071e3571828af9b5b5ffb1d6a5e0451fd3688667","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Background"},{"line_number":5,"context_line":"----------"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cinder introduced generalized resource filters since Pike, it\u0027s has the"},{"line_number":8,"context_line":"same purpose as ``query_volume_filters`` option, but it\u0027s more convenient"},{"line_number":9,"context_line":"and can be applied to more cinder resources, administrator can control the"},{"line_number":10,"context_line":"allowed filter keys for **non-admin** user by editing the filter"}],"source_content_type":"text/x-rst","patch_set":17,"id":"5ff73747_e68fd0ca","line":7,"range":{"start_line":7,"start_character":59,"end_line":7,"end_character":63},"updated":"2017-04-27 19:40:25.000000000","message":"it","commit_id":"bf5db2568c1e063e0af9ac53c52aa44a74f61efe"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"ef5ea3e6f3ff8e3865585731e136271a0893ddab","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Background"},{"line_number":5,"context_line":"----------"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Cinder introduced generalized resource filters since Pike, it\u0027s has the"},{"line_number":8,"context_line":"same purpose as ``query_volume_filters`` option, but it\u0027s more convenient"},{"line_number":9,"context_line":"and can be applied to more cinder resources, administrator can control the"},{"line_number":10,"context_line":"allowed filter keys for **non-admin** user by editing the filter"}],"source_content_type":"text/x-rst","patch_set":17,"id":"5ff73747_209af2b7","line":7,"range":{"start_line":7,"start_character":59,"end_line":7,"end_character":63},"in_reply_to":"5ff73747_e68fd0ca","updated":"2017-05-02 01:35:28.000000000","message":"Done","commit_id":"bf5db2568c1e063e0af9ac53c52aa44a74f61efe"},{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"715b717de940f10a27b5ad30ec4422cb659f10f2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"Which filter keys are supported?"},{"line_number":35,"context_line":"--------------------------------"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Not all the attributes are supported at present, so we add this table below to"},{"line_number":38,"context_line":"indicate which filter keys are valid and can be used in the configuration:"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"+----------------+-------------------------------------------------------------------------+"},{"line_number":41,"context_line":"|    API         | Valid filter keys                                                       |"}],"source_content_type":"text/x-rst","patch_set":17,"id":"5ff73747_44a20dff","line":38,"range":{"start_line":37,"start_character":0,"end_line":38,"end_character":74},"updated":"2017-04-27 13:19:50.000000000","message":"Thanks for adding this!","commit_id":"bf5db2568c1e063e0af9ac53c52aa44a74f61efe"},{"author":{"_account_id":2759,"name":"Huang Zhiteng","email":"winston.d@gmail.com","username":"zhiteng-huang"},"change_message_id":"ac056aaf6daa973ffb06099f773e26c6de8e54e8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"the key ``volume`` (singular) here stands for the resource you want to apply and the value"},{"line_number":29,"context_line":"accepts an list which contains the allowed filters collection, once the configuration"},{"line_number":30,"context_line":"file is changed and API service is restarted, cinder will only recognize this filter"},{"line_number":31,"context_line":"keys (not allowed filter keys will be dropped before filtering), **NOTE**: the default"},{"line_number":32,"context_line":"configuration file will include all the filters we already enabled."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Which filter keys are supported?"}],"source_content_type":"text/x-rst","patch_set":20,"id":"3f044301_66f30d0c","line":31,"updated":"2017-05-08 04:32:13.000000000","message":"This conflicts with \u0027400 BadRequest\u0027 mentioned in the paragraph above.","commit_id":"27aeba0b5d3cf64286125937e8336ba1d3b26b16"}],"etc/cinder/resource_filters.json":[{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"bd513c578fb80a17dbcd662ed04154fdb8188d55","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \u0027volume_filters\u0027: [\u0027name\u0027, \u0027status\u0027, \u0027metadata\u0027,"},{"line_number":3,"context_line":"                       \u0027availability_zone\u0027, \u0027bootable\u0027,"},{"line_number":4,"context_line":"                       \u0027group_id\u0027, \u0027volume_type_id\u0027],"},{"line_number":5,"context_line":"    \u0027snapshot_filters\u0027: [\u0027name\u0027, \u0027volume_type_id\u0027],"},{"line_number":6,"context_line":"    \u0027backup_filters\u0027: [\u0027name\u0027]"},{"line_number":7,"context_line":"}"}],"source_content_type":"application/json","patch_set":2,"id":"1a1ced50_ee0eaa8a","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":53},"updated":"2017-03-22 16:27:59.000000000","message":"tenant_id - for admins and nested project users","commit_id":"cc65172947b202c80bea2550f23b18081ab5f46c"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"bd513c578fb80a17dbcd662ed04154fdb8188d55","unresolved":false,"context_lines":[{"line_number":2,"context_line":"    \u0027volume_filters\u0027: [\u0027name\u0027, \u0027status\u0027, \u0027metadata\u0027,"},{"line_number":3,"context_line":"                       \u0027availability_zone\u0027, \u0027bootable\u0027,"},{"line_number":4,"context_line":"                       \u0027group_id\u0027, \u0027volume_type_id\u0027],"},{"line_number":5,"context_line":"    \u0027snapshot_filters\u0027: [\u0027name\u0027, \u0027volume_type_id\u0027],"},{"line_number":6,"context_line":"    \u0027backup_filters\u0027: [\u0027name\u0027]"},{"line_number":7,"context_line":"}"},{"line_number":8,"context_line":""}],"source_content_type":"application/json","patch_set":2,"id":"1a1ced50_ae7f52de","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":51},"updated":"2017-03-22 16:27:59.000000000","message":"tenant_id, as above\n\nMight want to filter by volume, i.e. give me all the snapshots of this volume id","commit_id":"cc65172947b202c80bea2550f23b18081ab5f46c"},{"author":{"_account_id":1207,"name":"Duncan Thomas","email":"duncan.thomas@gmail.com","username":"duncan-thomas"},"change_message_id":"bd513c578fb80a17dbcd662ed04154fdb8188d55","unresolved":false,"context_lines":[{"line_number":3,"context_line":"                       \u0027availability_zone\u0027, \u0027bootable\u0027,"},{"line_number":4,"context_line":"                       \u0027group_id\u0027, \u0027volume_type_id\u0027],"},{"line_number":5,"context_line":"    \u0027snapshot_filters\u0027: [\u0027name\u0027, \u0027volume_type_id\u0027],"},{"line_number":6,"context_line":"    \u0027backup_filters\u0027: [\u0027name\u0027]"},{"line_number":7,"context_line":"}"},{"line_number":8,"context_line":""}],"source_content_type":"application/json","patch_set":2,"id":"1a1ced50_ee85cace","line":6,"range":{"start_line":6,"start_character":0,"end_line":6,"end_character":30},"updated":"2017-03-22 16:27:59.000000000","message":"tenant_id as above\n\nBy volume, as above","commit_id":"cc65172947b202c80bea2550f23b18081ab5f46c"}]}
