)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e16bd6409a5b20c767e66ca8f64c69aa920cf4de","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Administrators intend to get the pool\u0027s information filtered by share type"},{"line_number":10,"context_line":"(actually filtered by share_type\u0027s *extra_spec*) more directly."},{"line_number":11,"context_line":"The blueprint is to add a filter-key \u0027share-type\u0027 to cover this situation."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Implements: blueprint pool-list-by-share-type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5a8bc5a2_292c7601","line":11,"range":{"start_line":11,"start_character":26,"end_line":11,"end_character":36},"updated":"2016-09-24 06:43:55.000000000","message":"filter key","commit_id":"d1554fd1ecee4f134deca24e3a5b265d4556c4a4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e16bd6409a5b20c767e66ca8f64c69aa920cf4de","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Administrators intend to get the pool\u0027s information filtered by share type"},{"line_number":10,"context_line":"(actually filtered by share_type\u0027s *extra_spec*) more directly."},{"line_number":11,"context_line":"The blueprint is to add a filter-key \u0027share-type\u0027 to cover this situation."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"APIImpact"},{"line_number":14,"context_line":"Implements: blueprint pool-list-by-share-type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"5a8bc5a2_a9f96682","line":11,"range":{"start_line":11,"start_character":38,"end_line":11,"end_character":48},"updated":"2016-09-24 06:43:55.000000000","message":"share_type","commit_id":"d1554fd1ecee4f134deca24e3a5b265d4556c4a4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add share_type filter support to pool_list"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Administrators intend to get the pool\u0027s information filtered by share type"},{"line_number":10,"context_line":"(actually filtered by share_type\u0027s *extra_spec*) more directly."},{"line_number":11,"context_line":"The blueprint is to add a filter key \u0027share_type\u0027 to cover this situation."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"5a74a57a_fd52d611","line":9,"range":{"start_line":9,"start_character":52,"end_line":9,"end_character":74},"updated":"2016-11-29 10:30:05.000000000","message":"limit to 72 characters. Here and below.","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":340,"context_line":"  in: query"},{"line_number":341,"context_line":"  required: false"},{"line_number":342,"context_line":"  type: string"},{"line_number":343,"context_line":"share_type_3:"},{"line_number":344,"context_line":"  description: |"},{"line_number":345,"context_line":"    The share type name or UUID."},{"line_number":346,"context_line":"  in: query"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5a74a57a_9db8022c","line":343,"range":{"start_line":343,"start_character":11,"end_line":343,"end_character":12},"updated":"2016-11-29 10:30:05.000000000","message":"share_type_query","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":342,"context_line":"  type: string"},{"line_number":343,"context_line":"share_type_3:"},{"line_number":344,"context_line":"  description: |"},{"line_number":345,"context_line":"    The share type name or UUID."},{"line_number":346,"context_line":"  in: query"},{"line_number":347,"context_line":"  required: false"},{"line_number":348,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":11,"id":"5a74a57a_30b8f574","line":345,"range":{"start_line":345,"start_character":4,"end_line":345,"end_character":31},"updated":"2016-11-29 10:30:05.000000000","message":"The share type name or UUID. Allows filtering back end pools based on the extra-specs in the share type.","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"api-ref/source/scheduler-stats.inc":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"   - host: host_9"},{"line_number":30,"context_line":"   - backend: backend_1"},{"line_number":31,"context_line":"   - capabilities: capabilities_1"},{"line_number":32,"context_line":"   - share_type: share_type_3"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Response parameters"},{"line_number":35,"context_line":"-------------------"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"5a74a57a_9de64242","line":32,"range":{"start_line":32,"start_character":17,"end_line":32,"end_character":29},"updated":"2016-11-29 10:30:05.000000000","message":"share_type_query","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":69,"context_line":"   - host: host_9"},{"line_number":70,"context_line":"   - backend: backend_1"},{"line_number":71,"context_line":"   - capabilities: capabilities_1"},{"line_number":72,"context_line":"   - share_type: share_type_3"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Response parameters"},{"line_number":75,"context_line":"-------------------"}],"source_content_type":"text/x-c++src","patch_set":11,"id":"5a74a57a_30847509","line":72,"range":{"start_line":72,"start_character":17,"end_line":72,"end_character":29},"updated":"2016-11-29 10:30:05.000000000","message":"same","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":78,"context_line":"            \u0027force_host_copy\u0027 to \u0027force_host_assisted_migration\u0027, removed"},{"line_number":79,"context_line":"            \u0027notify\u0027 parameter and removed previous migrate_share API support."},{"line_number":80,"context_line":"            Updated reset_task_state API to accept \u0027None\u0027 value."},{"line_number":81,"context_line":"    * 2.23 - Added share_type to filter results of pool_list API."},{"line_number":82,"context_line":"\"\"\""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_73f7d7d2","line":81,"range":{"start_line":81,"start_character":51,"end_line":81,"end_character":60},"updated":"2016-11-29 10:30:05.000000000","message":"pools API\nor scheduler-stats/pools API","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"manila/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":141,"context_line":""},{"line_number":142,"context_line":"2.23"},{"line_number":143,"context_line":"----"},{"line_number":144,"context_line":"  Added share_type to filter results of pool_list API."}],"source_content_type":"text/x-rst","patch_set":11,"id":"5a74a57a_b3fdefb2","line":144,"range":{"start_line":144,"start_character":40,"end_line":144,"end_character":49},"updated":"2016-11-29 10:30:05.000000000","message":"same","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"manila/api/v1/scheduler_stats.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2035983e8dbc37d4164a8e9a5de9ba379ae1cb78","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @wsgi.Controller.authorize(\u0027index\u0027)"},{"line_number":37,"context_line":"    def pools_index(self, req):"},{"line_number":38,"context_line":"        \"\"\"Returns a list of storage pools known to the scheduler.\"\"\""},{"line_number":39,"context_line":"        if req.api_version_request \u003c api_version.APIVersionRequest(\"2.23\"):"},{"line_number":40,"context_line":"            return self._pools(req, action\u003d\u0027index\u0027)"},{"line_number":41,"context_line":"        else:"},{"line_number":42,"context_line":"            return self._pools(req, action\u003d\u0027index\u0027, enable_share_type\u003dTrue)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @wsgi.Controller.authorize(\u0027detail\u0027)"},{"line_number":45,"context_line":"    def pools_detail(self, req):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_c6694127","line":42,"range":{"start_line":39,"start_character":0,"end_line":42,"end_character":75},"updated":"2016-09-24 04:49:01.000000000","message":"please implement as separate API methods with the microversion decorator..","commit_id":"d1554fd1ecee4f134deca24e3a5b265d4556c4a4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2035983e8dbc37d4164a8e9a5de9ba379ae1cb78","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    @wsgi.Controller.authorize(\u0027detail\u0027)"},{"line_number":45,"context_line":"    def pools_detail(self, req):"},{"line_number":46,"context_line":"        \"\"\"Returns a detailed list of storage pools known to the scheduler.\"\"\""},{"line_number":47,"context_line":"        if req.api_version_request \u003c api_version.APIVersionRequest(\"2.23\"):"},{"line_number":48,"context_line":"            return self._pools(req, action\u003d\u0027detail\u0027)"},{"line_number":49,"context_line":"        else:"},{"line_number":50,"context_line":"            return self._pools(req, action\u003d\u0027detail\u0027, enable_share_type\u003dTrue)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def _pools(self, req, action\u003d\u0027index\u0027, enable_share_type\u003dFalse):"},{"line_number":53,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_e678fdf4","line":50,"range":{"start_line":47,"start_character":0,"end_line":50,"end_character":76},"updated":"2016-09-24 04:49:01.000000000","message":"please implement as separate API methods with the microversion decorator..","commit_id":"d1554fd1ecee4f134deca24e3a5b265d4556c4a4"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f9154badaf2d00e1d8154bbcd41aa23cbbf4b075","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    @wsgi.Controller.api_version(\u00272.23\u0027)   # noqa"},{"line_number":53,"context_line":"    @wsgi.Controller.authorize(\u0027detail\u0027)"},{"line_number":54,"context_line":"    def pools_detail(self, req):  # pylint: disable\u003dE0102"},{"line_number":55,"context_line":"        return self._pools(req, action\u003d\u0027detail\u0027, enable_share_type\u003dTrue)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _pools(self, req, action\u003d\u0027index\u0027, enable_share_type\u003dFalse):"},{"line_number":58,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_65b99fe9","line":55,"updated":"2016-10-11 10:14:35.000000000","message":"should be covered by UT for this condition.","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fbd78df9faa88af5a4a25e7b91efe457bdf81a24","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    @wsgi.Controller.api_version(\u00272.23\u0027)   # noqa"},{"line_number":53,"context_line":"    @wsgi.Controller.authorize(\u0027detail\u0027)"},{"line_number":54,"context_line":"    def pools_detail(self, req):  # pylint: disable\u003dE0102"},{"line_number":55,"context_line":"        return self._pools(req, action\u003d\u0027detail\u0027, enable_share_type\u003dTrue)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def _pools(self, req, action\u003d\u0027index\u0027, enable_share_type\u003dFalse):"},{"line_number":58,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_513d7d8d","line":55,"in_reply_to":"fa6399be_65b99fe9","updated":"2016-10-15 13:20:06.000000000","message":"Done","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f9154badaf2d00e1d8154bbcd41aa23cbbf4b075","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                        share_type \u003d share_types.get_share_type_by_name("},{"line_number":69,"context_line":"                            context, req_share_type)"},{"line_number":70,"context_line":"                    else:"},{"line_number":71,"context_line":"                        share_type \u003d share_types.get_share_type("},{"line_number":72,"context_line":"                            context, req_share_type)"},{"line_number":73,"context_line":"                except exception.ShareTypeNotFound:"},{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_059b83ca","line":71,"updated":"2016-10-11 10:14:35.000000000","message":"please cover this branch in UT.","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fbd78df9faa88af5a4a25e7b91efe457bdf81a24","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                        share_type \u003d share_types.get_share_type_by_name("},{"line_number":69,"context_line":"                            context, req_share_type)"},{"line_number":70,"context_line":"                    else:"},{"line_number":71,"context_line":"                        share_type \u003d share_types.get_share_type("},{"line_number":72,"context_line":"                            context, req_share_type)"},{"line_number":73,"context_line":"                except exception.ShareTypeNotFound:"},{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_313ac999","line":71,"in_reply_to":"fa6399be_059b83ca","updated":"2016-10-15 13:20:06.000000000","message":"Done","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f9154badaf2d00e1d8154bbcd41aa23cbbf4b075","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                        share_type \u003d share_types.get_share_type("},{"line_number":72,"context_line":"                            context, req_share_type)"},{"line_number":73,"context_line":"                except exception.ShareTypeNotFound:"},{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"},{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_45a57b02","line":74,"updated":"2016-10-11 10:14:35.000000000","message":"ditto","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fbd78df9faa88af5a4a25e7b91efe457bdf81a24","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                        share_type \u003d share_types.get_share_type("},{"line_number":72,"context_line":"                            context, req_share_type)"},{"line_number":73,"context_line":"                except exception.ShareTypeNotFound:"},{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"},{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_7140c107","line":74,"in_reply_to":"fa6399be_45a57b02","updated":"2016-10-15 13:20:06.000000000","message":"Done","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"4f27ee4ec65224d814f632c834144f8b83dd0ac4","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"},{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"},{"line_number":78,"context_line":"                search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027, {})"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        pools \u003d self.scheduler_api.get_pools(context, filters\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_ffe2ccd3","line":77,"updated":"2016-10-17 07:16:30.000000000","message":"This check looks not necessary, cause the following line \"search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027, {})\" could be moved to under \"if req_share_type\" snippet.","commit_id":"5b5aad610a2d90de933c15a6a9a5aa93bbb8b922"},{"author":{"_account_id":11637,"name":"jay.xu","email":"jay.xu@emc.com","username":"jay.xu"},"change_message_id":"dde1ccd4b857033ff11f64cd51e6c39355f36e36","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"},{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"},{"line_number":78,"context_line":"                search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027, {})"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        pools \u003d self.scheduler_api.get_pools(context, filters\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_b6cf3ab2","line":77,"in_reply_to":"fa6399be_0282c0c7","updated":"2016-10-19 07:28:00.000000000","message":"it will throw an exception if no share type found, whatever share_types.get_share_type_by_name() or share_types.get_share_type() is invoked. So it may be not necessary to check share_type again here. Any thought?","commit_id":"5b5aad610a2d90de933c15a6a9a5aa93bbb8b922"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"9d3ea90e8040a5134f4d0d99c62a7c7da12b8615","unresolved":false,"context_lines":[{"line_number":74,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"},{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"},{"line_number":78,"context_line":"                search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027, {})"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        pools \u003d self.scheduler_api.get_pools(context, filters\u003dsearch_opts)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_0282c0c7","line":77,"in_reply_to":"fa6399be_ffe2ccd3","updated":"2016-10-17 14:21:40.000000000","message":"IMO there lies a difference between \u0027req_share_type\u0027 and \u0027share_type\u0027 and even you put the sentence under the if statements, it\u0027s still necessary","commit_id":"5b5aad610a2d90de933c15a6a9a5aa93bbb8b922"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"4f27ee4ec65224d814f632c834144f8b83dd0ac4","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"},{"line_number":78,"context_line":"                search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027, {})"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        pools \u003d self.scheduler_api.get_pools(context, filters\u003dsearch_opts)"},{"line_number":81,"context_line":"        detail \u003d (action \u003d\u003d \u0027detail\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_7f931c5b","line":78,"updated":"2016-10-17 07:16:30.000000000","message":"probably here using search_opts[\u0027capabilities\u0027].update would be better, in case there\u0027s already capabilities filter passed in req.","commit_id":"5b5aad610a2d90de933c15a6a9a5aa93bbb8b922"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"9d3ea90e8040a5134f4d0d99c62a7c7da12b8615","unresolved":false,"context_lines":[{"line_number":75,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            if share_type:"},{"line_number":78,"context_line":"                search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027, {})"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        pools \u003d self.scheduler_api.get_pools(context, filters\u003dsearch_opts)"},{"line_number":81,"context_line":"        detail \u003d (action \u003d\u003d \u0027detail\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fa6399be_3d47db1e","line":78,"in_reply_to":"fa6399be_7f931c5b","updated":"2016-10-17 14:21:40.000000000","message":"After a thorough check on the code related,I think we have not support capabilities yet, so we can check this in the next time when add query param \u0027capabilties\u0027","commit_id":"5b5aad610a2d90de933c15a6a9a5aa93bbb8b922"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            req_share_type \u003d search_opts.pop(\u0027share_type\u0027, None)"},{"line_number":64,"context_line":"            if req_share_type:"},{"line_number":65,"context_line":"                try:"},{"line_number":66,"context_line":"                    if not uuidutils.is_uuid_like(req_share_type):"},{"line_number":67,"context_line":"                        share_type \u003d share_types.get_share_type_by_name("},{"line_number":68,"context_line":"                            context, req_share_type)"},{"line_number":69,"context_line":"                    else:"},{"line_number":70,"context_line":"                        share_type \u003d share_types.get_share_type("},{"line_number":71,"context_line":"                            context, req_share_type)"},{"line_number":72,"context_line":"                    search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027,"},{"line_number":73,"context_line":"                                                                 {})"},{"line_number":74,"context_line":"                except exception.ShareTypeNotFound:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_93ac738d","line":71,"range":{"start_line":66,"start_character":0,"end_line":71,"end_character":52},"updated":"2016-11-29 10:30:05.000000000","message":"use:\n\n  share_types.get_share_type_by_name_or_id\n\ninstead of this uuid check","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":21059,"name":"xulin","email":"xulin1@huawei.com","username":"Erik"},"change_message_id":"fa5ece43b5f5dd5ebfbadfda8598dfb2c5b2779b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"                    else:"},{"line_number":70,"context_line":"                        share_type \u003d share_types.get_share_type("},{"line_number":71,"context_line":"                            context, req_share_type)"},{"line_number":72,"context_line":"                    search_opts[\u0027capabilities\u0027] \u003d share_type.get(\u0027extra_specs\u0027,"},{"line_number":73,"context_line":"                                                                 {})"},{"line_number":74,"context_line":"                except exception.ShareTypeNotFound:"},{"line_number":75,"context_line":"                    msg \u003d _(\"Share type %s not found.\") % req_share_type"},{"line_number":76,"context_line":"                    raise exc.HTTPBadRequest(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":11,"id":"7a77a97e_8757a925","line":73,"range":{"start_line":72,"start_character":0,"end_line":73,"end_character":68},"updated":"2016-11-21 12:40:08.000000000","message":"There is a bug that bool-string such as \"true\" should be converted to \"\u003cis\u003e True\".","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"manila/scheduler/utils.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"e16bd6409a5b20c767e66ca8f64c69aa920cf4de","unresolved":false,"context_lines":[{"line_number":115,"context_line":"    return True in thin_capability"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"def generate_capabilities_filter(capabilities, extra_specs):"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    for key, req in extra_specs.items():"},{"line_number":121,"context_line":"        # Either not scoped format, or in capabilities scope"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a8bc5a2_291396b9","line":118,"range":{"start_line":118,"start_character":4,"end_line":118,"end_character":32},"updated":"2016-09-24 06:43:55.000000000","message":"suggest changing this name, cause this method seems like just for checking, not generating anything.","commit_id":"d1554fd1ecee4f134deca24e3a5b265d4556c4a4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":135,"context_line":"            except AttributeError:"},{"line_number":136,"context_line":"                cap \u003d None"},{"line_number":137,"context_line":"            if cap is None:"},{"line_number":138,"context_line":"                LOG.debug(\"Host doesn\u0027t provide capability \u0027%(cap)s\u0027 \""},{"line_number":139,"context_line":"                          \"listed in the extra specs\","},{"line_number":140,"context_line":"                          {\u0027cap\u0027: scope[index]})"},{"line_number":141,"context_line":"                return False"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_4e7eae6a","line":138,"range":{"start_line":138,"start_character":37,"end_line":138,"end_character":38},"updated":"2016-11-29 10:30:05.000000000","message":"does not","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                cap \u003d None"},{"line_number":137,"context_line":"            if cap is None:"},{"line_number":138,"context_line":"                LOG.debug(\"Host doesn\u0027t provide capability \u0027%(cap)s\u0027 \""},{"line_number":139,"context_line":"                          \"listed in the extra specs\","},{"line_number":140,"context_line":"                          {\u0027cap\u0027: scope[index]})"},{"line_number":141,"context_line":"                return False"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_ee84da5e","line":139,"range":{"start_line":139,"start_character":47,"end_line":139,"end_character":52},"updated":"2016-11-29 10:30:05.000000000","message":"add trailing period","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":151,"context_line":"            # Nothing matched, so bail out"},{"line_number":152,"context_line":"            LOG.debug(\u0027Share type extra spec requirement \u0027"},{"line_number":153,"context_line":"                      \u0027\"%(key)s\u003d%(req)s\" does not match reported \u0027"},{"line_number":154,"context_line":"                      \u0027capability \"%(cap)s\"\u0027,"},{"line_number":155,"context_line":"                      {\u0027key\u0027: key, \u0027req\u0027: req, \u0027cap\u0027: cap})"},{"line_number":156,"context_line":"            return False"},{"line_number":157,"context_line":"    return True"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_8edb667b","line":154,"range":{"start_line":154,"start_character":42,"end_line":154,"end_character":45},"updated":"2016-11-29 10:30:05.000000000","message":"add trailing period after \"%(cap)s\"","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"manila/tests/api/v1/test_scheduler_stats.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f9154badaf2d00e1d8154bbcd41aa23cbbf4b075","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        self.mock_object("},{"line_number":112,"context_line":"            share_types, \u0027get_share_type_by_name\u0027,"},{"line_number":113,"context_line":"            mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"},{"line_number":114,"context_line":"                                    {\u0027snapshot_support\u0027, True}}))"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        url \u003d \u0027/v1/fake_project/scheduler-stats/pools/detail\u0027"},{"line_number":117,"context_line":"        url +\u003d \u0027?backend\u003d.%2A\u0026host\u003dhost1\u0026pool\u003dpool%2A\u0026share_type\u003dtest_type\u0027"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_b26f7f91","line":114,"range":{"start_line":114,"start_character":55,"end_line":114,"end_character":56},"updated":"2016-10-11 10:14:35.000000000","message":":","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f9154badaf2d00e1d8154bbcd41aa23cbbf4b075","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            \u0027host\u0027: \u0027host1\u0027,"},{"line_number":142,"context_line":"            \u0027pool\u0027: \u0027pool*\u0027,"},{"line_number":143,"context_line":"            \u0027backend\u0027: \u0027.*\u0027,"},{"line_number":144,"context_line":"            \u0027share_type\u0027: \u0027test_type\u0027,"},{"line_number":145,"context_line":"        }"},{"line_number":146,"context_line":"        if (api_version.APIVersionRequest(microversion) \u003e\u003d"},{"line_number":147,"context_line":"                api_version.APIVersionRequest(\u00272.23\u0027)):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_92ca7b4e","line":144,"range":{"start_line":144,"start_character":12,"end_line":144,"end_character":37},"updated":"2016-10-11 10:14:35.000000000","message":"for microversion \u003c 2.23, this share_type key won\u0027t in the filter dict.","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":23083,"name":"TommyLike","email":"tommylikehu@gmail.com","username":"TommyLike"},"change_message_id":"fbd78df9faa88af5a4a25e7b91efe457bdf81a24","unresolved":false,"context_lines":[{"line_number":141,"context_line":"            \u0027host\u0027: \u0027host1\u0027,"},{"line_number":142,"context_line":"            \u0027pool\u0027: \u0027pool*\u0027,"},{"line_number":143,"context_line":"            \u0027backend\u0027: \u0027.*\u0027,"},{"line_number":144,"context_line":"            \u0027share_type\u0027: \u0027test_type\u0027,"},{"line_number":145,"context_line":"        }"},{"line_number":146,"context_line":"        if (api_version.APIVersionRequest(microversion) \u003e\u003d"},{"line_number":147,"context_line":"                api_version.APIVersionRequest(\u00272.23\u0027)):"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_3161e9a9","line":144,"range":{"start_line":144,"start_character":12,"end_line":144,"end_character":37},"in_reply_to":"fa6399be_92ca7b4e","updated":"2016-10-15 13:20:06.000000000","message":"dict updated in the below:)","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"f9154badaf2d00e1d8154bbcd41aa23cbbf4b075","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        if (api_version.APIVersionRequest(microversion) \u003e\u003d"},{"line_number":147,"context_line":"                api_version.APIVersionRequest(\u00272.23\u0027)):"},{"line_number":148,"context_line":"            expected_filters.update("},{"line_number":149,"context_line":"                {\u0027capabilities\u0027: {\u0027snapshot_support\u0027, True}})"},{"line_number":150,"context_line":"            expected_filters.pop(\u0027share_type\u0027, None)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        self.assertDictMatch(result, expected)"}],"source_content_type":"text/x-python","patch_set":9,"id":"fa6399be_32d8cf53","line":149,"range":{"start_line":149,"start_character":52,"end_line":149,"end_character":53},"updated":"2016-10-11 10:14:35.000000000","message":":","commit_id":"a6565523bb1eafcccddb65a31fe091b816b15ad6"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from manila.api.openstack import api_version_request as api_version"},{"line_number":20,"context_line":"from manila.api.v1 import scheduler_stats"},{"line_number":21,"context_line":"from manila.api.views import scheduler_stats as scheduler_status_v"},{"line_number":22,"context_line":"from manila import context"},{"line_number":23,"context_line":"from manila import policy"},{"line_number":24,"context_line":"from manila.scheduler import rpcapi"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_ceb8fe13","line":21,"range":{"start_line":21,"start_character":45,"end_line":21,"end_character":66},"updated":"2016-11-29 10:30:05.000000000","message":"scheduler_stats_view","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        self.mock_policy_check.assert_called_once_with("},{"line_number":106,"context_line":"            self.ctxt, self.resource_name, \u0027index\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"    @ddt.data((\u0027index\u0027, False),"},{"line_number":109,"context_line":"              (\u0027detail\u0027, True))"},{"line_number":110,"context_line":"    @ddt.unpack"},{"line_number":111,"context_line":"    def test_private_pools_with_share_type_disabled(self, action, detail):"},{"line_number":112,"context_line":"        mock_get_pools \u003d self.mock_object(rpcapi.SchedulerAPI,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_2e0ed2e4","line":109,"range":{"start_line":108,"start_character":14,"end_line":109,"end_character":30},"updated":"2016-11-29 10:30:05.000000000","message":"You don\u0027t need to wrap this if it fits within 79 characters","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":108,"context_line":"    @ddt.data((\u0027index\u0027, False),"},{"line_number":109,"context_line":"              (\u0027detail\u0027, True))"},{"line_number":110,"context_line":"    @ddt.unpack"},{"line_number":111,"context_line":"    def test_private_pools_with_share_type_disabled(self, action, detail):"},{"line_number":112,"context_line":"        mock_get_pools \u003d self.mock_object(rpcapi.SchedulerAPI,"},{"line_number":113,"context_line":"                                          \u0027get_pools\u0027,"},{"line_number":114,"context_line":"                                          mock.Mock(return_value\u003dFAKE_POOLS))"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_8e1e060a","line":111,"range":{"start_line":111,"start_character":13,"end_line":111,"end_character":26},"updated":"2016-11-29 10:30:05.000000000","message":"what are private_pools?","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                                           mock.Mock())"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        url \u003d \u0027/v1/fake_project/scheduler-stats/pools/%s\u0027 % action"},{"line_number":120,"context_line":"        url +\u003d \u0027?backend\u003dback1\u0026host\u003dhost1\u0026pool\u003dpool1\u0027"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":123,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_e98a141a","line":120,"range":{"start_line":120,"start_character":26,"end_line":120,"end_character":30},"updated":"2016-11-29 10:30:05.000000000","message":"Why not retain \u0027.%2A\u0027 so we know we can parse Unicode for \u0027.*\u0027?","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            \u0027pool\u0027: \u0027pool1\u0027,"},{"line_number":128,"context_line":"            \u0027backend\u0027: \u0027back1\u0027,"},{"line_number":129,"context_line":"        }"},{"line_number":130,"context_line":"        self.controller._pools(req, action, False)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        mock_get_pools.assert_called_once_with(self.ctxt,"},{"line_number":133,"context_line":"                                               filters\u003dexpected_filters)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_e92db4fe","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":50},"updated":"2016-11-29 10:30:05.000000000","message":"mmmm.. where\u0027s the result and the validation of the result?","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":139,"context_line":"              (\u0027detail\u0027, True, True),"},{"line_number":140,"context_line":"              (\u0027detail\u0027, True, False))"},{"line_number":141,"context_line":"    @ddt.unpack"},{"line_number":142,"context_line":"    def test_private_pools_with_share_type_enable(self, action, detail, uuid):"},{"line_number":143,"context_line":"        mock_get_pools \u003d self.mock_object(rpcapi.SchedulerAPI,"},{"line_number":144,"context_line":"                                          \u0027get_pools\u0027,"},{"line_number":145,"context_line":"                                          mock.Mock(return_value\u003dFAKE_POOLS))"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_0931105a","line":142,"range":{"start_line":142,"start_character":13,"end_line":142,"end_character":26},"updated":"2016-11-29 10:30:05.000000000","message":"What are private pools?","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                                           \u0027pools\u0027,"},{"line_number":148,"context_line":"                                           mock.Mock())"},{"line_number":149,"context_line":"        if uuid:"},{"line_number":150,"context_line":"            share_t \u003d \u002700000000-0000-0000-0000-000000000000\u0027"},{"line_number":151,"context_line":"            self.mock_object("},{"line_number":152,"context_line":"                share_types, \u0027get_share_type\u0027,"},{"line_number":153,"context_line":"                mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_69d444eb","line":150,"range":{"start_line":150,"start_character":22,"end_line":150,"end_character":60},"updated":"2016-11-29 10:30:05.000000000","message":"generate a uuid.","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"                                           \u0027pools\u0027,"},{"line_number":148,"context_line":"                                           mock.Mock())"},{"line_number":149,"context_line":"        if uuid:"},{"line_number":150,"context_line":"            share_t \u003d \u002700000000-0000-0000-0000-000000000000\u0027"},{"line_number":151,"context_line":"            self.mock_object("},{"line_number":152,"context_line":"                share_types, \u0027get_share_type\u0027,"},{"line_number":153,"context_line":"                mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_694284af","line":150,"range":{"start_line":150,"start_character":12,"end_line":150,"end_character":19},"updated":"2016-11-29 10:30:05.000000000","message":"share_type","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"                mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"},{"line_number":154,"context_line":"                                        {\u0027snapshot_support\u0027: True}}))"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            share_t \u003d \u0027test_type\u0027"},{"line_number":157,"context_line":"            self.mock_object("},{"line_number":158,"context_line":"                share_types, \u0027get_share_type_by_name\u0027,"},{"line_number":159,"context_line":"                mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_290b2c7e","line":156,"range":{"start_line":156,"start_character":12,"end_line":156,"end_character":19},"updated":"2016-11-29 10:30:05.000000000","message":"share_type","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        mock_pool_views \u003d self.mock_object(scheduler_status_v.ViewBuilder,"},{"line_number":147,"context_line":"                                           \u0027pools\u0027,"},{"line_number":148,"context_line":"                                           mock.Mock())"},{"line_number":149,"context_line":"        if uuid:"},{"line_number":150,"context_line":"            share_t \u003d \u002700000000-0000-0000-0000-000000000000\u0027"},{"line_number":151,"context_line":"            self.mock_object("},{"line_number":152,"context_line":"                share_types, \u0027get_share_type\u0027,"},{"line_number":153,"context_line":"                mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"},{"line_number":154,"context_line":"                                        {\u0027snapshot_support\u0027: True}}))"},{"line_number":155,"context_line":"        else:"},{"line_number":156,"context_line":"            share_t \u003d \u0027test_type\u0027"},{"line_number":157,"context_line":"            self.mock_object("},{"line_number":158,"context_line":"                share_types, \u0027get_share_type_by_name\u0027,"},{"line_number":159,"context_line":"                mock.Mock(return_value\u003d{\u0027extra_specs\u0027:"},{"line_number":160,"context_line":"                                        {\u0027snapshot_support\u0027: True}}))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        url \u003d \u0027/v1/fake_project/scheduler-stats/pools/%s\u0027 % action"},{"line_number":163,"context_line":"        url +\u003d \u0027?backend\u003dback1\u0026host\u003dhost1\u0026pool\u003dpool1\u0026share_type\u003d%s\u0027 % share_t"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_09667050","line":160,"range":{"start_line":149,"start_character":8,"end_line":160,"end_character":69},"updated":"2016-11-29 10:30:05.000000000","message":"share_type \u003d uuidutils.generate_uuid() if uuid else \u0027test_type\u0027\n\n\nyou don\u0027t need these different mocks if you use get_share_type_by_name_or_id","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                                        {\u0027snapshot_support\u0027: True}}))"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        url \u003d \u0027/v1/fake_project/scheduler-stats/pools/%s\u0027 % action"},{"line_number":163,"context_line":"        url +\u003d \u0027?backend\u003dback1\u0026host\u003dhost1\u0026pool\u003dpool1\u0026share_type\u003d%s\u0027 % share_t"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":166,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_69de04de","line":163,"range":{"start_line":163,"start_character":25,"end_line":163,"end_character":30},"updated":"2016-11-29 10:30:05.000000000","message":"same as above. why change this when you could validate .*","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":166,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        expected_filters \u003d {\u0027host\u0027: \u0027host1\u0027,"},{"line_number":169,"context_line":"                            \u0027pool\u0027: \u0027pool1\u0027,"},{"line_number":170,"context_line":"                            \u0027backend\u0027: \u0027back1\u0027,"},{"line_number":171,"context_line":"                            \u0027capabilities\u0027: {\u0027snapshot_support\u0027: True}}"},{"line_number":172,"context_line":"        self.controller._pools(req, action, True)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        mock_get_pools.assert_called_once_with(self.ctxt,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_29d08cc8","line":171,"range":{"start_line":168,"start_character":0,"end_line":171,"end_character":71},"updated":"2016-11-29 10:30:05.000000000","message":"wrap the dictionary","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":169,"context_line":"                            \u0027pool\u0027: \u0027pool1\u0027,"},{"line_number":170,"context_line":"                            \u0027backend\u0027: \u0027back1\u0027,"},{"line_number":171,"context_line":"                            \u0027capabilities\u0027: {\u0027snapshot_support\u0027: True}}"},{"line_number":172,"context_line":"        self.controller._pools(req, action, True)"},{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        mock_get_pools.assert_called_once_with(self.ctxt,"},{"line_number":175,"context_line":"                                               filters\u003dexpected_filters)"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_49d308d5","line":172,"range":{"start_line":172,"start_character":9,"end_line":172,"end_character":49},"updated":"2016-11-29 10:30:05.000000000","message":"the result must be validated","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        url +\u003d \u0027?backend\u003d.%2A\u0026host\u003dhost1\u0026pool\u003dpool%2A\u0026share_type\u003dfake_name_1\u0027"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":185,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        self.assertRaises(exc.HTTPBadRequest,"},{"line_number":188,"context_line":"                          self.controller._pools,"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_49a14845","line":185,"range":{"start_line":185,"start_character":0,"end_line":185,"end_character":49},"updated":"2016-11-29 10:30:05.000000000","message":"not necessary","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"5bb47cf335a95b81888193af0f91ecb3991a94b3","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                                          mock.Mock(return_value\u003dFAKE_POOLS))"},{"line_number":115,"context_line":"        mock_pool_views \u003d self.mock_object(scheduler_stats_view.ViewBuilder,"},{"line_number":116,"context_line":"                                           \u0027pools\u0027,"},{"line_number":117,"context_line":"                                           mock.Mock())"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"        url \u003d \u0027/v1/fake_project/scheduler-stats/pools/%s\u0027 % action"},{"line_number":120,"context_line":"        url +\u003d \u0027?backend\u003dback1\u0026host\u003dhost1\u0026pool\u003dpool1\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_3ce159ff","line":117,"range":{"start_line":117,"start_character":43,"end_line":117,"end_character":54},"updated":"2016-12-02 07:01:50.000000000","message":"this could be ignored, mock.Mock() is default used by self.mock_object.","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            \u0027pool\u0027: \u0027pool1\u0027,"},{"line_number":128,"context_line":"            \u0027backend\u0027: \u0027back1\u0027,"},{"line_number":129,"context_line":"        }"},{"line_number":130,"context_line":"        self.controller._pools(req, action, False)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"        mock_get_pools.assert_called_once_with(self.ctxt,"},{"line_number":133,"context_line":"                                               filters\u003dexpected_filters)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_7f64a3e4","line":130,"range":{"start_line":130,"start_character":8,"end_line":130,"end_character":50},"updated":"2016-12-02 07:32:20.000000000","message":"Capture the result and validate it.","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":139,"context_line":"              (\u0027detail\u0027, True, True),"},{"line_number":140,"context_line":"              (\u0027detail\u0027, True, False))"},{"line_number":141,"context_line":"    @ddt.unpack"},{"line_number":142,"context_line":"    def test_private_pools_with_share_type_enable(self, action, detail, uuid):"},{"line_number":143,"context_line":"        mock_get_pools \u003d self.mock_object(rpcapi.SchedulerAPI,"},{"line_number":144,"context_line":"                                          \u0027get_pools\u0027,"},{"line_number":145,"context_line":"                                          mock.Mock(return_value\u003dFAKE_POOLS))"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_1fa64f10","line":142,"range":{"start_line":142,"start_character":13,"end_line":142,"end_character":26},"updated":"2016-12-02 07:32:20.000000000","message":"again, what are private pools?\n\ns/private_pools/pools","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"5bb47cf335a95b81888193af0f91ecb3991a94b3","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                                          mock.Mock(return_value\u003dFAKE_POOLS))"},{"line_number":146,"context_line":"        mock_pool_views \u003d self.mock_object(scheduler_stats_view.ViewBuilder,"},{"line_number":147,"context_line":"                                           \u0027pools\u0027,"},{"line_number":148,"context_line":"                                           mock.Mock())"},{"line_number":149,"context_line":"        if uuid:"},{"line_number":150,"context_line":"            share_type \u003d uuidutils.generate_uuid()"},{"line_number":151,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_9cc98d7b","line":148,"range":{"start_line":148,"start_character":43,"end_line":148,"end_character":54},"updated":"2016-12-02 07:01:50.000000000","message":"ditto","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"5bb47cf335a95b81888193af0f91ecb3991a94b3","unresolved":false,"context_lines":[{"line_number":157,"context_line":"                                    {\u0027snapshot_support\u0027: True}}))"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"        url \u003d \u0027/v1/fake_project/scheduler-stats/pools/%s\u0027 % action"},{"line_number":160,"context_line":"        url +\u003d \u0027?backend\u003dback1\u0026host\u003dhost1\u0026pool\u003dpool1\u0026share_type\u003d%s\u0027 \\"},{"line_number":161,"context_line":"               % share_type"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_fca441ba","line":160,"range":{"start_line":160,"start_character":68,"end_line":160,"end_character":69},"updated":"2016-12-02 07:01:50.000000000","message":"It is preferred to wrap long lines in parentheses and not a backslash for line continuation","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        req \u003d fakes.HTTPRequest.blank(url)"},{"line_number":164,"context_line":"        req.environ[\u0027manila.context\u0027] \u003d self.ctxt"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"        expected_filters \u003d {\u0027host\u0027: \u0027host1\u0027,"},{"line_number":167,"context_line":"                            \u0027pool\u0027: \u0027pool1\u0027,"},{"line_number":168,"context_line":"                            \u0027backend\u0027: \u0027back1\u0027,"},{"line_number":169,"context_line":"                            \u0027capabilities\u0027:"},{"line_number":170,"context_line":"                            {\u0027snapshot_support\u0027: True}}"},{"line_number":171,"context_line":"        self.controller._pools(req, action, True)"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        mock_get_pools.assert_called_once_with(self.ctxt,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_7f92e3a0","line":170,"range":{"start_line":166,"start_character":27,"end_line":170,"end_character":55},"updated":"2016-12-02 07:32:20.000000000","message":"wrapping dictionaries:\n\nhttp://docs.openstack.org/developer/hacking/#dictionaries-lists","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"}],"manila/tests/scheduler/test_host_manager.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":574,"context_line":"            \u0027key1\u0027: \u0027value1\u0027,"},{"line_number":575,"context_line":"            \u0027key2\u0027: \u0027value2\u0027,"},{"line_number":576,"context_line":"            \u0027key3\u0027: \u0027value3\u0027,"},{"line_number":577,"context_line":"            \u0027capabilities\u0027: {\u0027dedupe\u0027: False}"},{"line_number":578,"context_line":"        }"},{"line_number":579,"context_line":"        self.assertTrue(self.host_manager._passes_filters(data, filter))"},{"line_number":580,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_c97b98bc","line":577,"range":{"start_line":577,"start_character":44,"end_line":577,"end_character":45},"updated":"2016-11-29 10:30:05.000000000","message":"trailing comma after }","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":581,"context_line":"    @ddt.data("},{"line_number":582,"context_line":"        {\u0027key1\u0027: \u0027value$\u0027},"},{"line_number":583,"context_line":"        {\u0027key4\u0027: \u0027value\u0027},"},{"line_number":584,"context_line":"        {\u0027capabilities\u0027: {\u0027dedupe\u0027: \u0027True\u0027}},"},{"line_number":585,"context_line":"        {\u0027key1\u0027: \u0027value1.+\u0027, \u0027key2\u0027: \u0027value*\u0027},"},{"line_number":586,"context_line":"    )"},{"line_number":587,"context_line":"    def test_passes_filters_false(self, filter):"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_6928c49a","line":584,"range":{"start_line":584,"start_character":37,"end_line":584,"end_character":41},"updated":"2016-11-29 10:30:05.000000000","message":"try \u003cis\u003e True as well","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"57a9ed26067a9230f984e1a0cdbf5ebc5975530d","unresolved":false,"context_lines":[{"line_number":590,"context_line":"            \u0027key1\u0027: \u0027value1\u0027,"},{"line_number":591,"context_line":"            \u0027key2\u0027: \u0027value2\u0027,"},{"line_number":592,"context_line":"            \u0027key3\u0027: \u0027value3\u0027,"},{"line_number":593,"context_line":"            \u0027capabilities\u0027: {\u0027dedupe\u0027: False}"},{"line_number":594,"context_line":"        }"},{"line_number":595,"context_line":"        self.assertFalse(self.host_manager._passes_filters(data, filter))"},{"line_number":596,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"5a74a57a_496f88fb","line":593,"range":{"start_line":593,"start_character":44,"end_line":593,"end_character":45},"updated":"2016-11-29 10:30:05.000000000","message":"trailing comma after }","commit_id":"05df613e3187b63992e945f36b56efaa07cd1ead"}],"manila_tempest_tests/tests/api/admin/test_share_type_filter.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2366b3b16d0c1b8a1cf830d31adefd72b79b42b1","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            search_opts\u003dsearch_opts)[\u0027pools\u0027]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        for pool in pools:"},{"line_number":44,"context_line":"            self.assertIs(True, \"name\" in pool.keys())"},{"line_number":45,"context_line":"            self.assertIs(True, \"host\" in pool.keys())"},{"line_number":46,"context_line":"            self.assertIs(True, \"backend\" in pool.keys())"},{"line_number":47,"context_line":"            self.assertIs(True, \"pool\" in pool.keys())"},{"line_number":48,"context_line":"            self.assertIs(False, \"capabilities\" in pool.keys())"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":51,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")"}],"source_content_type":"text/x-python","patch_set":20,"id":"3a71b18c_d948818a","line":48,"range":{"start_line":44,"start_character":0,"end_line":48,"end_character":63},"updated":"2016-12-08 11:29:31.000000000","message":"use assertIn and assertNotIn","commit_id":"192ae2d4a5ec3089f86d38047b1e907f5120fec4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"2366b3b16d0c1b8a1cf830d31adefd72b79b42b1","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":51,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")"},{"line_number":52,"context_line":"    def test_get_pools_detail_with_share_type_filter(self):"},{"line_number":53,"context_line":"        share_type \u003d self.st[\"share_type\"][\"name\"]"},{"line_number":54,"context_line":"        search_opts \u003d {\"share_type\": share_type}"},{"line_number":55,"context_line":"        pools \u003d self.admin_client.list_pools(detail\u003dTrue,"},{"line_number":56,"context_line":"                                             search_opts\u003dsearch_opts)[\u0027pools\u0027]"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"        for pool in pools:"},{"line_number":59,"context_line":"            self.assertIs(True, \"name\" in pool.keys())"},{"line_number":60,"context_line":"            self.assertIs(True, \"host\" in pool.keys())"},{"line_number":61,"context_line":"            self.assertIs(True, \"backend\" in pool.keys())"},{"line_number":62,"context_line":"            self.assertIs(True, \"pool\" in pool.keys())"},{"line_number":63,"context_line":"            self.assertIs(True, \"capabilities\" in pool.keys())"}],"source_content_type":"text/x-python","patch_set":20,"id":"3a71b18c_0468d0b9","line":63,"range":{"start_line":52,"start_character":0,"end_line":63,"end_character":62},"updated":"2016-12-08 11:29:31.000000000","message":"just use detail with ddt - the only difference between these two tests is the last check:\n\n\n\n  @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)\n  @base.skip_if_microversion_not_supported(\"2.23\")\n  @ddt.data(True, False)\n   def test_get_pools_with_share_type_filter_with_detail(self, detail):\n        share_type \u003d self.st[\"share_type\"][\"id\"]\n        search_opts \u003d {\"share_type\": share_type}\n        kwargs \u003d {\u0027search_opts\u0027: search_opts}\n        if detail:\n           kwargs.update({\u0027detail\u0027: True})\n        pools \u003d self.admin_client.list_pools(**kwargs)[\u0027pools\u0027]\n\n        for pool in pools:\n            self.assertIn(\"name\", pool.keys())\n            self.assertIn(\"host\" in pool.keys())\n            self.assertIn(\"backend\" in pool.keys())\n            self.assertIn(\"pool\" in pool.keys())\n            self.assertIs(detail, \"capabilities\" in pool.keys())","commit_id":"192ae2d4a5ec3089f86d38047b1e907f5120fec4"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3da48d0ad1b896eabe42f56d95fd8bc46a13164b","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        pools \u003d self.admin_client.list_pools(**kwargs)[\u0027pools\u0027]"},{"line_number":49,"context_line":"        for pool in pools:"},{"line_number":50,"context_line":"            pool_keys \u003d pool.keys()"},{"line_number":51,"context_line":"            self.assertIn(\"name\", pool_keys)"},{"line_number":52,"context_line":"            self.assertIn(\"host\", pool_keys)"},{"line_number":53,"context_line":"            self.assertIn(\"backend\", pool_keys)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_1678cd2a","line":50,"range":{"start_line":50,"start_character":24,"end_line":50,"end_character":35},"updated":"2016-12-09 12:30:51.000000000","message":"This is not py3 compatible","commit_id":"d5643c75f5b5ea16523bf1d39f9271d4192adc56"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"24a83e16e27ecaa8418e541f6e47df776651adb1","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            kwargs.update({\u0027detail\u0027: True})"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        pools \u003d self.admin_client.list_pools(**kwargs)[\u0027pools\u0027]"},{"line_number":49,"context_line":"        for pool in pools:"},{"line_number":50,"context_line":"            pool_keys \u003d pool.keys()"},{"line_number":51,"context_line":"            self.assertIn(\"name\", pool_keys)"},{"line_number":52,"context_line":"            self.assertIn(\"host\", pool_keys)"},{"line_number":53,"context_line":"            self.assertIn(\"backend\", pool_keys)"},{"line_number":54,"context_line":"            self.assertIn(\"pool\", pool_keys)"},{"line_number":55,"context_line":"            self.assertIs(detail, \"capabilities\" in pool_keys)"}],"source_content_type":"text/x-python","patch_set":23,"id":"3a71b18c_d6ae5597","line":55,"range":{"start_line":49,"start_character":8,"end_line":55,"end_character":62},"updated":"2016-12-09 12:29:41.000000000","message":"It will not be reached if API always returns empty list and test will never fail.","commit_id":"d5643c75f5b5ea16523bf1d39f9271d4192adc56"}],"manila_tempest_tests/tests/api/test_share_type_filter.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3a71b18c_bfe39b32","updated":"2016-12-02 07:32:20.000000000","message":"This file is in the wrong place:\n\nPath should be: manila_tempest_tests/tests/api/admin/test_share_type_filter.py","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Mirantis Inc.\r"},{"line_number":2,"context_line":"# All Rights Reserved.\r"},{"line_number":3,"context_line":"#\r"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_dfd05756","line":1,"range":{"start_line":1,"start_character":2,"end_line":1,"end_character":30},"updated":"2016-12-02 07:32:20.000000000","message":"?","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from manila_tempest_tests.tests.api import base\r"},{"line_number":20,"context_line":"\r"},{"line_number":21,"context_line":"\r"},{"line_number":22,"context_line":"class ShareTypeFilterTest(base.BaseSharesMixedTest):\r"},{"line_number":23,"context_line":"\r"},{"line_number":24,"context_line":"    @classmethod\r"},{"line_number":25,"context_line":"    def _create_share_type(cls):\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_5f736780","line":22,"range":{"start_line":22,"start_character":26,"end_line":22,"end_character":50},"updated":"2016-12-02 07:32:20.000000000","message":"Pools is an admin-only API, please inherit base.BaseSharesAdminTest","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        cls.admin_client \u003d cls.admin_shares_v2_client\r"},{"line_number":36,"context_line":"        cls.st \u003d cls._create_share_type()\r"},{"line_number":37,"context_line":"\r"},{"line_number":38,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API)\r"},{"line_number":39,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")\r"},{"line_number":40,"context_line":"    def test_get_pools_with_share_type_filter(self):\r"},{"line_number":41,"context_line":"        share_type \u003d self.st[\"share_type\"][\"id\"]\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_ffbd13d8","line":38,"range":{"start_line":38,"start_character":37,"end_line":38,"end_character":44},"updated":"2016-12-02 07:32:20.000000000","message":"TAG_API_WITH_BACKEND","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        pools \u003d self.admin_client.list_pools(\r"},{"line_number":44,"context_line":"            search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"},{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"        self.assertNotEmpty(pools)\r"},{"line_number":47,"context_line":"\r"},{"line_number":48,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API)\r"},{"line_number":49,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_bfa9db7d","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":34},"updated":"2016-12-02 07:32:20.000000000","message":"Please verify the keys present; you may not need to verify the data... just the keys in the index API for pools.","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":45,"context_line":"\r"},{"line_number":46,"context_line":"        self.assertNotEmpty(pools)\r"},{"line_number":47,"context_line":"\r"},{"line_number":48,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API)\r"},{"line_number":49,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")\r"},{"line_number":50,"context_line":"    def test_get_pools_detail_with_share_type_filter(self):\r"},{"line_number":51,"context_line":"        share_type \u003d self.st[\"share_type\"][\"name\"]\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_bf9b9b71","line":48,"range":{"start_line":48,"start_character":37,"end_line":48,"end_character":44},"updated":"2016-12-02 07:32:20.000000000","message":"TAG_API_WITH_BACKEND","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")\r"},{"line_number":50,"context_line":"    def test_get_pools_detail_with_share_type_filter(self):\r"},{"line_number":51,"context_line":"        share_type \u003d self.st[\"share_type\"][\"name\"]\r"},{"line_number":52,"context_line":"        search_opts \u003d {\"share_type\": share_type, }\r"},{"line_number":53,"context_line":"        pools \u003d \\\r"},{"line_number":54,"context_line":"            self.admin_client.list_pools(detail\u003dTrue,\r"},{"line_number":55,"context_line":"                                         search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_5f7d271b","line":52,"range":{"start_line":52,"start_character":47,"end_line":52,"end_character":48},"updated":"2016-12-02 07:32:20.000000000","message":"trailing comma and space not necessary here","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"5bb47cf335a95b81888193af0f91ecb3991a94b3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    def test_get_pools_detail_with_share_type_filter(self):\r"},{"line_number":51,"context_line":"        share_type \u003d self.st[\"share_type\"][\"name\"]\r"},{"line_number":52,"context_line":"        search_opts \u003d {\"share_type\": share_type, }\r"},{"line_number":53,"context_line":"        pools \u003d \\\r"},{"line_number":54,"context_line":"            self.admin_client.list_pools(detail\u003dTrue,\r"},{"line_number":55,"context_line":"                                         search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"},{"line_number":56,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_fce0c1ce","line":53,"range":{"start_line":53,"start_character":16,"end_line":53,"end_character":17},"updated":"2016-12-02 07:01:50.000000000","message":"ditto","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            self.admin_client.list_pools(detail\u003dTrue,\r"},{"line_number":55,"context_line":"                                         search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"},{"line_number":56,"context_line":"\r"},{"line_number":57,"context_line":"        self.assertNotEmpty(pools)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_df8f7721","line":57,"range":{"start_line":57,"start_character":8,"end_line":57,"end_character":34},"updated":"2016-12-02 07:32:20.000000000","message":"You must verify the detail keys. else, there\u0027s no difference between this test and the previous one in terms of validation..","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"}],"manila_tempest_tests/tests/api/test_share_type_filter_negative.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"3a71b18c_ffe0b3ce","updated":"2016-12-02 07:32:20.000000000","message":"This should be\n\nmanila_tempest_tests/tests/api/admin/test_share_type_filter_negative.py","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 Mirantis Inc.\r"},{"line_number":2,"context_line":"# All Rights Reserved.\r"},{"line_number":3,"context_line":"#\r"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_1fe80fb4","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":30},"updated":"2016-12-02 07:32:20.000000000","message":"??","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":23,"context_line":"CONF \u003d config.CONF\r"},{"line_number":24,"context_line":"\r"},{"line_number":25,"context_line":"\r"},{"line_number":26,"context_line":"class ShareTypeFilterNegativeTest(base.BaseSharesMixedTest):\r"},{"line_number":27,"context_line":"\r"},{"line_number":28,"context_line":"    @classmethod\r"},{"line_number":29,"context_line":"    def _create_share_type(cls):\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_df04d77f","line":26,"range":{"start_line":26,"start_character":34,"end_line":26,"end_character":58},"updated":"2016-12-02 07:32:20.000000000","message":"base.BaseSharesAdminTest","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    @classmethod\r"},{"line_number":29,"context_line":"    def _create_share_type(cls):\r"},{"line_number":30,"context_line":"        name \u003d data_utils.rand_name(\"unique_st_name\")\r"},{"line_number":31,"context_line":"        dhss \u003d not six.text_type(CONF.share.multitenancy_enabled)\r"},{"line_number":32,"context_line":"        snapshot_support \u003d not six.text_type(\r"},{"line_number":33,"context_line":"            CONF.share.capability_snapshot_support)\r"},{"line_number":34,"context_line":"        extra_specs \u003d {\r"},{"line_number":35,"context_line":"            \"driver_handles_share_servers\": dhss,\r"},{"line_number":36,"context_line":"            \"snapshot_support\": snapshot_support,\r"},{"line_number":37,"context_line":"        }\r"},{"line_number":38,"context_line":"        return cls.create_share_type(\r"},{"line_number":39,"context_line":"            name, extra_specs\u003dextra_specs,\r"},{"line_number":40,"context_line":"            client\u003dcls.admin_client)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_1f13af67","line":37,"range":{"start_line":31,"start_character":8,"end_line":37,"end_character":9},"updated":"2016-12-02 07:32:20.000000000","message":"just thought about this and it seems wrong. What if you have backends that do match these capabilities?\n\nPlease create a truly invalid share type:\n\n   extra_specs \u003d {\n      \u0027share_backend_name\u0027: uuidutils.generate_uuid(),\n   }","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"5bb47cf335a95b81888193af0f91ecb3991a94b3","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def test_get_pools_detail_with_negative_share_type_filter(self):\r"},{"line_number":61,"context_line":"        share_type \u003d self.st[\"share_type\"][\"name\"]\r"},{"line_number":62,"context_line":"        search_opts \u003d {\"share_type\": share_type, }\r"},{"line_number":63,"context_line":"        pools \u003d \\\r"},{"line_number":64,"context_line":"            self.admin_client.list_pools(detail\u003dTrue,\r"},{"line_number":65,"context_line":"                                         search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"},{"line_number":66,"context_line":"\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_7ccd915c","line":63,"range":{"start_line":63,"start_character":16,"end_line":63,"end_character":17},"updated":"2016-12-02 07:01:50.000000000","message":"ditto","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"5b45806b1f335b1eb27139594400c607268dc5db","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        cls.admin_client \u003d cls.admin_shares_v2_client\r"},{"line_number":46,"context_line":"        cls.st \u003d cls._create_share_type()\r"},{"line_number":47,"context_line":"\r"},{"line_number":48,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API)\r"},{"line_number":49,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")\r"},{"line_number":50,"context_line":"    def test_get_pools_with_negative_share_type_filter(self):\r"},{"line_number":51,"context_line":"        share_type \u003d self.st[\"share_type\"][\"id\"]\r"},{"line_number":52,"context_line":"        search_opts \u003d {\"share_type\": share_type, }\r"},{"line_number":53,"context_line":"        pools \u003d self.admin_client.list_pools(\r"},{"line_number":54,"context_line":"            search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"},{"line_number":55,"context_line":"\r"},{"line_number":56,"context_line":"        self.assertEmpty(pools)\r"},{"line_number":57,"context_line":"\r"},{"line_number":58,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API)\r"},{"line_number":59,"context_line":"    @base.skip_if_microversion_not_supported(\"2.23\")\r"},{"line_number":60,"context_line":"    def test_get_pools_detail_with_negative_share_type_filter(self):\r"},{"line_number":61,"context_line":"        share_type \u003d self.st[\"share_type\"][\"name\"]\r"},{"line_number":62,"context_line":"        search_opts \u003d {\"share_type\": share_type, }\r"},{"line_number":63,"context_line":"        pools \u003d \\\r"},{"line_number":64,"context_line":"            self.admin_client.list_pools(detail\u003dTrue,\r"},{"line_number":65,"context_line":"                                         search_opts\u003dsearch_opts)[\u0027pools\u0027]\r"},{"line_number":66,"context_line":"\r"},{"line_number":67,"context_line":"        self.assertEmpty(pools)\r"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a71b18c_9f941fe3","line":67,"range":{"start_line":48,"start_character":0,"end_line":67,"end_character":31},"updated":"2016-12-02 07:32:20.000000000","message":"both these tests must be:\n\nbase.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND\n\nand, use ddt to collapse them into one test:\n\n    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)\n    @base.skip_if_microversion_not_supported(\"2.23\")\n    @ddt.data(True, False)\n    def test_get_pools_invalid_share_type_filter_with_detail(self, detail):\n\n    share_type \u003d self.st[\"share_type\"][\"name\"]\n    search_opts \u003d {\"share_type\": share_type}\n    pools \u003d self.admin_client.list_pools(\n                   detail\u003ddetail,search_opts\u003dsearch_opts)[\u0027pools\u0027]\n    \n    self.assertEmpty(pools)","commit_id":"cbf278ecfb6fdbed3935c71c996ea07057b6ee37"}],"releasenotes/notes/add_share_type_filter_to_pool_list_api-267614b4d93j12de.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ee3fa7504ec3010e66c4e9334d9f67ff58eb10bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":22,"id":"3a71b18c_fbf44a88","updated":"2016-12-08 14:35:10.000000000","message":"please adhere to the naming convention in this folder, use \u0027-\u0027 instead of \"_\"\n\nadd-share-type-filter-to-pool-list-api-267614b4d93j12de.yaml","commit_id":"28946a37626a953eab3d68470a0068705608736b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ee3fa7504ec3010e66c4e9334d9f67ff58eb10bb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added share_type to filter results of pool_list API."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"3a71b18c_bb39f243","line":3,"range":{"start_line":3,"start_character":42,"end_line":3,"end_character":51},"updated":"2016-12-08 14:35:10.000000000","message":"scheduler-stats/pools","commit_id":"28946a37626a953eab3d68470a0068705608736b"}]}
