)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     TommyLike \u003ctommylikehu@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-08 16:23:02 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add volume type filter to API Get-Pools"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add feature that administrators can get back-end storage pools"},{"line_number":10,"context_line":"filtered by volume-type, cinder will return the pools filtered"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a8ec9b2_2704ff13","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":4},"updated":"2016-09-14 08:32:59.000000000","message":"Add","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"}],"cinder/api/contrib/scheduler_stats.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        filters \u003d req.params.copy()"},{"line_number":44,"context_line":"        detail \u003d filters.pop(\u0027detail\u0027, False)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if filters.get(\u0027volume_type\u0027, None):"},{"line_number":47,"context_line":"            filters[\u0027volume_type\u0027] \u003d \\"},{"line_number":48,"context_line":"                volume_types.\\"},{"line_number":49,"context_line":"                get_volume_type_by_name_or_id(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_e7b6973c","line":46,"range":{"start_line":46,"start_character":11,"end_line":46,"end_character":44},"updated":"2016-09-14 08:32:59.000000000","message":"Can just use filters.get(\u0027volume_type\u0027), \u0027None\u0027 would be the default return value.","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        filters \u003d req.params.copy()"},{"line_number":44,"context_line":"        detail \u003d filters.pop(\u0027detail\u0027, False)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if filters.get(\u0027volume_type\u0027, None):"},{"line_number":47,"context_line":"            filters[\u0027volume_type\u0027] \u003d \\"},{"line_number":48,"context_line":"                volume_types.\\"},{"line_number":49,"context_line":"                get_volume_type_by_name_or_id(context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_a7e48f0d","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":10},"updated":"2016-09-14 08:32:59.000000000","message":"The code line 46~50 could be moved to line 53, because it only be used when req_version.matches(\u00273.16\u0027) is true.","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        detail \u003d filters.pop(\u0027detail\u0027, False)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if filters.get(\u0027volume_type\u0027, None):"},{"line_number":47,"context_line":"            filters[\u0027volume_type\u0027] \u003d \\"},{"line_number":48,"context_line":"                volume_types.\\"},{"line_number":49,"context_line":"                get_volume_type_by_name_or_id(context,"},{"line_number":50,"context_line":"                                              filters[\u0027volume_type\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_a7cbaf71","line":47,"range":{"start_line":47,"start_character":36,"end_line":47,"end_character":38},"updated":"2016-09-14 08:32:59.000000000","message":"please avoid using backslashes, use parenthesis instead","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if filters.get(\u0027volume_type\u0027, None):"},{"line_number":47,"context_line":"            filters[\u0027volume_type\u0027] \u003d \\"},{"line_number":48,"context_line":"                volume_types.\\"},{"line_number":49,"context_line":"                get_volume_type_by_name_or_id(context,"},{"line_number":50,"context_line":"                                              filters[\u0027volume_type\u0027])"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_07a1c3a9","line":48,"range":{"start_line":48,"start_character":29,"end_line":48,"end_character":30},"updated":"2016-09-14 08:32:59.000000000","message":"above","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        if filters.get(\u0027volume_type\u0027, None):"},{"line_number":47,"context_line":"            filters[\u0027volume_type\u0027] \u003d \\"},{"line_number":48,"context_line":"                volume_types.\\"},{"line_number":49,"context_line":"                get_volume_type_by_name_or_id(context,"},{"line_number":50,"context_line":"                                              filters[\u0027volume_type\u0027])"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        if req_version.matches(\u00273.16\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_0731c30b","line":49,"range":{"start_line":49,"start_character":16,"end_line":49,"end_character":45},"updated":"2016-09-14 08:32:59.000000000","message":"How to deal with if share type not found?","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"790a3210a304bd1fbe17eee1cdd451026952febc","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        req_version \u003d req.api_version_request"},{"line_number":44,"context_line":"        detail \u003d utils.get_bool_param(\u0027detail\u0027, req.params)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if req_version.matches(\u00273.16\u0027):"},{"line_number":47,"context_line":"            filters \u003d {}"},{"line_number":48,"context_line":"            if req.params.get(\u0027volume_type\u0027):"},{"line_number":49,"context_line":"                filters[\u0027volume_type\u0027] \u003d ("},{"line_number":50,"context_line":"                    volume_types.get_by_name_or_id("},{"line_number":51,"context_line":"                        context, req.params.get(\u0027volume_type\u0027)))"},{"line_number":52,"context_line":"            pools \u003d self.scheduler_api.get_pools(context, filters\u003dfilters)"},{"line_number":53,"context_line":"        else:"},{"line_number":54,"context_line":"            pools \u003d self.scheduler_api.get_pools(context, filters\u003dNone)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        return self._view_builder.pools(req, pools, detail)"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa6399be_d13f23b2","line":54,"range":{"start_line":46,"start_character":7,"end_line":54,"end_character":71},"updated":"2016-10-20 10:05:33.000000000","message":"We could simplify it to:\n\nif req_version.matches(\u00273.16\u0027):\n    filters \u003d {}\n    if req.params.get(\u0027volume_type\u0027):\n        filters[\u0027volume_type\u0027] \u003d (\n            volume_types.get_by_name_or_id(\n                context, req.params.get(\u0027volume_type\u0027)))\nelse:\n    filters \u003d None\n\npools \u003d self.scheduler_api.get_pools(context, filters\u003dfilters)","commit_id":"ac18760f05e8e30841540724252358f7bbf2b54c"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"6184e1ce826ce190183bb7c6c577a1dd8d4fc390","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        req_version \u003d req.api_version_request"},{"line_number":44,"context_line":"        detail \u003d utils.get_bool_param(\u0027detail\u0027, req.params)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        if req_version.matches(\u00273.16\u0027):"},{"line_number":47,"context_line":"            filters \u003d {}"},{"line_number":48,"context_line":"            if req.params.get(\u0027volume_type\u0027):"},{"line_number":49,"context_line":"                filters[\u0027volume_type\u0027] \u003d ("},{"line_number":50,"context_line":"                    volume_types.get_by_name_or_id("},{"line_number":51,"context_line":"                        context, req.params.get(\u0027volume_type\u0027)))"},{"line_number":52,"context_line":"            pools \u003d self.scheduler_api.get_pools(context, filters\u003dfilters)"},{"line_number":53,"context_line":"        else:"},{"line_number":54,"context_line":"            pools \u003d self.scheduler_api.get_pools(context, filters\u003dNone)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"        return self._view_builder.pools(req, pools, detail)"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da6895a0_78779802","line":54,"range":{"start_line":46,"start_character":7,"end_line":54,"end_character":71},"in_reply_to":"fa6399be_d13f23b2","updated":"2016-10-21 00:45:32.000000000","message":"Done","commit_id":"ac18760f05e8e30841540724252358f7bbf2b54c"}],"cinder/api/openstack/api_version_request.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    * 3.14 - Add group snapshot and create group from src APIs."},{"line_number":65,"context_line":"    * 3.15 - Inject the response\u0027s `Etag` header to avoid the lost update"},{"line_number":66,"context_line":"             problem with volume metadata."},{"line_number":67,"context_line":"    * 3.16 - Add volume type filter to Get-Pools API"},{"line_number":68,"context_line":"\"\"\""},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_4783cbcc","line":67,"range":{"start_line":67,"start_character":51,"end_line":67,"end_character":52},"updated":"2016-09-14 08:32:59.000000000","message":"trailing period","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"}],"cinder/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":186,"context_line":"3.14"},{"line_number":187,"context_line":"----"},{"line_number":188,"context_line":"  Added group snapshots and create group from src APIs."},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"3.15"},{"line_number":192,"context_line":"----"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a8ec9b2_c7f27b9a","line":189,"range":{"start_line":189,"start_character":0,"end_line":189,"end_character":0},"updated":"2016-09-14 08:32:59.000000000","message":"remove this line","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"3.16"},{"line_number":197,"context_line":"----"},{"line_number":198,"context_line":"  Add volume type filter to Get-Pools API"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"7a8ec9b2_0779c3fc","line":198,"range":{"start_line":198,"start_character":40,"end_line":198,"end_character":41},"updated":"2016-09-14 08:32:59.000000000","message":"trailing period","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"}],"cinder/scheduler/host_manager.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        \"\"\"Return the pools filtered by volume type specs\"\"\""},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # wrap filter properties only with volume_type"},{"line_number":525,"context_line":"        filter_properties \u003d {\u0027context\u0027: context,"},{"line_number":526,"context_line":"                             \u0027volume_type\u0027: volume_type,"},{"line_number":527,"context_line":"                             \u0027resource_type\u0027: volume_type}"},{"line_number":528,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_38ca60a2","line":525,"range":{"start_line":525,"start_character":8,"end_line":525,"end_character":25},"updated":"2016-09-14 08:32:59.000000000","message":"Please add the qos_specs in filter_properties, because the qos is the part of the volume_type.\nhttps://github.com/openstack/cinder/blob/master/cinder/scheduler/filter_scheduler.py#L63","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        \"\"\"Return the pools filtered by volume type specs\"\"\""},{"line_number":523,"context_line":""},{"line_number":524,"context_line":"        # wrap filter properties only with volume_type"},{"line_number":525,"context_line":"        filter_properties \u003d {\u0027context\u0027: context,"},{"line_number":526,"context_line":"                             \u0027volume_type\u0027: volume_type,"},{"line_number":527,"context_line":"                             \u0027resource_type\u0027: volume_type}"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        filtered \u003d self.get_filtered_hosts(pools.values(), filter_properties)"},{"line_number":530,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_e25f650c","line":527,"range":{"start_line":525,"start_character":28,"end_line":527,"end_character":58},"updated":"2016-09-14 08:32:59.000000000","message":"http://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":545,"context_line":"                all_pools[pool_key] \u003d pool"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        # filter pools by volume type"},{"line_number":548,"context_line":"        if filters and filters.get(\u0027volume_type\u0027, None):"},{"line_number":549,"context_line":"            all_pools \u003d \\"},{"line_number":550,"context_line":"                self._filter_pools_by_volume_type(context,"},{"line_number":551,"context_line":"                                                  filters[\u0027volume_type\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_67d607c7","line":548,"range":{"start_line":548,"start_character":23,"end_line":548,"end_character":55},"updated":"2016-09-14 08:32:59.000000000","message":"filters.get(\u0027volume_type\u0027)","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"0a9ff82f514f2acfdbe9ea29319a5f29d6020839","unresolved":false,"context_lines":[{"line_number":546,"context_line":""},{"line_number":547,"context_line":"        # filter pools by volume type"},{"line_number":548,"context_line":"        if filters and filters.get(\u0027volume_type\u0027, None):"},{"line_number":549,"context_line":"            all_pools \u003d \\"},{"line_number":550,"context_line":"                self._filter_pools_by_volume_type(context,"},{"line_number":551,"context_line":"                                                  filters[\u0027volume_type\u0027],"},{"line_number":552,"context_line":"                                                  all_pools)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7a8ec9b2_c74efbc0","line":549,"range":{"start_line":549,"start_character":23,"end_line":549,"end_character":25},"updated":"2016-09-14 08:32:59.000000000","message":"please avoid using backslashes, use parenthesis instead","commit_id":"cba3f33104e69fd50328f83c0277640f6ae8413f"}],"cinder/tests/unit/api/contrib/test_scheduler_stats.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"76e2a6063d0c5c6c7630a92d78b71b3ff395affb","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    @mock.patch(\u0027cinder.scheduler.rpcapi.SchedulerAPI.get_pools\u0027)"},{"line_number":132,"context_line":"    def test_get_pools_summary_filter_by_volume_type(self, mock_get_pools,"},{"line_number":133,"context_line":"                                                     mock_type_retrieve):"},{"line_number":134,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/scheduler_stats?detail\u003dTrue\u0027"},{"line_number":135,"context_line":"                                      \u0027\u0026volume_type\u003dlvm\u0027 % fake.PROJECT_ID)"},{"line_number":136,"context_line":"        mock_get_pools.return_value \u003d [dict(name\u003d\u0027pool1\u0027,"},{"line_number":137,"context_line":"                                            capabilities\u003ddict(foo\u003d\u0027bar\u0027))]"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_b94e82bf","line":134,"range":{"start_line":134,"start_character":62,"end_line":134,"end_character":73},"updated":"2016-10-11 11:54:36.000000000","message":"this test name is \u0027get pools summary\u0027, detail should not be set to True.","commit_id":"aecd893ba0e85bdef9982a1e2c3c4d49f8484c4d"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"76e2a6063d0c5c6c7630a92d78b71b3ff395affb","unresolved":false,"context_lines":[{"line_number":133,"context_line":"                                                     mock_type_retrieve):"},{"line_number":134,"context_line":"        req \u003d fakes.HTTPRequest.blank(\u0027/v3/%s/scheduler_stats?detail\u003dTrue\u0027"},{"line_number":135,"context_line":"                                      \u0027\u0026volume_type\u003dlvm\u0027 % fake.PROJECT_ID)"},{"line_number":136,"context_line":"        mock_get_pools.return_value \u003d [dict(name\u003d\u0027pool1\u0027,"},{"line_number":137,"context_line":"                                            capabilities\u003ddict(foo\u003d\u0027bar\u0027))]"},{"line_number":138,"context_line":"        fake_volume_type \u003d dict(name\u003d\u0027lvm_type\u0027,"},{"line_number":139,"context_line":"                                description\u003d\u0027description\u0027,"},{"line_number":140,"context_line":"                                qos_specs\u003d\u0027fake_qos_specs\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_99ad3e34","line":137,"range":{"start_line":136,"start_character":38,"end_line":137,"end_character":74},"updated":"2016-10-11 11:54:36.000000000","message":"suggest using [{\u0027name\u0027: \u0027pool1\u0027,\n                \u0027capabilities\u0027: {\u0027foo\u0027: \u0027bar\u0027}}].","commit_id":"aecd893ba0e85bdef9982a1e2c3c4d49f8484c4d"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"76e2a6063d0c5c6c7630a92d78b71b3ff395affb","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                                      \u0027\u0026volume_type\u003dlvm\u0027 % fake.PROJECT_ID)"},{"line_number":136,"context_line":"        mock_get_pools.return_value \u003d [dict(name\u003d\u0027pool1\u0027,"},{"line_number":137,"context_line":"                                            capabilities\u003ddict(foo\u003d\u0027bar\u0027))]"},{"line_number":138,"context_line":"        fake_volume_type \u003d dict(name\u003d\u0027lvm_type\u0027,"},{"line_number":139,"context_line":"                                description\u003d\u0027description\u0027,"},{"line_number":140,"context_line":"                                qos_specs\u003d\u0027fake_qos_specs\u0027)"},{"line_number":141,"context_line":"        mock_type_retrieve.return_value \u003d fake_volume_type"},{"line_number":142,"context_line":"        req.api_version_request \u003d api_version.APIVersionRequest(\u00273.16\u0027)"},{"line_number":143,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_d92c16ae","line":140,"range":{"start_line":138,"start_character":27,"end_line":140,"end_character":59},"updated":"2016-10-11 11:54:36.000000000","message":"suggest using {} to define this dict.","commit_id":"aecd893ba0e85bdef9982a1e2c3c4d49f8484c4d"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"76e2a6063d0c5c6c7630a92d78b71b3ff395affb","unresolved":false,"context_lines":[{"line_number":139,"context_line":"                                description\u003d\u0027description\u0027,"},{"line_number":140,"context_line":"                                qos_specs\u003d\u0027fake_qos_specs\u0027)"},{"line_number":141,"context_line":"        mock_type_retrieve.return_value \u003d fake_volume_type"},{"line_number":142,"context_line":"        req.api_version_request \u003d api_version.APIVersionRequest(\u00273.16\u0027)"},{"line_number":143,"context_line":"        req.environ[\u0027cinder.context\u0027] \u003d self.ctxt"},{"line_number":144,"context_line":"        res \u003d self.controller.get_pools(req)"},{"line_number":145,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_9410a350","line":142,"range":{"start_line":142,"start_character":46,"end_line":142,"end_character":71},"updated":"2016-10-11 11:54:36.000000000","message":"please add a UT to cover the condition that api version \u003e\u003d3.16, but no volume_type specified as filter.","commit_id":"aecd893ba0e85bdef9982a1e2c3c4d49f8484c4d"}]}
