)]}'
{"api-ref/source/parameters.yaml":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":208,"context_line":"  type: string"},{"line_number":209,"context_line":"export_location_id_1:"},{"line_number":210,"context_line":"  description: |"},{"line_number":211,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering shares."},{"line_number":212,"context_line":"  in: query"},{"line_number":213,"context_line":"  required: false"},{"line_number":214,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_9d03ec73","line":211,"range":{"start_line":211,"start_character":4,"end_line":211,"end_character":21},"updated":"2017-06-24 05:24:21.000000000","message":"use: min_version instead","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c217879acd6b408684cbbce40a2c6c81aa2310e6","unresolved":false,"context_lines":[{"line_number":208,"context_line":"  type: string"},{"line_number":209,"context_line":"export_location_id_1:"},{"line_number":210,"context_line":"  description: |"},{"line_number":211,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering shares."},{"line_number":212,"context_line":"  in: query"},{"line_number":213,"context_line":"  required: false"},{"line_number":214,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_5d09d42e","line":211,"range":{"start_line":211,"start_character":4,"end_line":211,"end_character":21},"in_reply_to":"5f201791_9d03ec73","updated":"2017-06-24 06:23:46.000000000","message":"Done","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":206,"context_line":"  in: query"},{"line_number":207,"context_line":"  required: false"},{"line_number":208,"context_line":"  type: string"},{"line_number":209,"context_line":"export_location_id_1:"},{"line_number":210,"context_line":"  description: |"},{"line_number":211,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering shares."},{"line_number":212,"context_line":"  in: query"},{"line_number":213,"context_line":"  required: false"},{"line_number":214,"context_line":"  type: string"},{"line_number":215,"context_line":"export_location_id_2:"},{"line_number":216,"context_line":"  description: |"},{"line_number":217,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering share"},{"line_number":218,"context_line":"    instances."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_9d388c3d","line":215,"range":{"start_line":209,"start_character":0,"end_line":215,"end_character":21},"updated":"2017-06-24 05:24:21.000000000","message":"What\u0027s the difference between 1 and 2?\nYou can use just: \n\n export_location_id_query\n\nfor both the APIs","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9bdc349a3b189358028ecb282ad53980f9952029","unresolved":false,"context_lines":[{"line_number":206,"context_line":"  in: query"},{"line_number":207,"context_line":"  required: false"},{"line_number":208,"context_line":"  type: string"},{"line_number":209,"context_line":"export_location_id_1:"},{"line_number":210,"context_line":"  description: |"},{"line_number":211,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering shares."},{"line_number":212,"context_line":"  in: query"},{"line_number":213,"context_line":"  required: false"},{"line_number":214,"context_line":"  type: string"},{"line_number":215,"context_line":"export_location_id_2:"},{"line_number":216,"context_line":"  description: |"},{"line_number":217,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering share"},{"line_number":218,"context_line":"    instances."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_e5900646","line":215,"range":{"start_line":209,"start_character":0,"end_line":215,"end_character":21},"in_reply_to":"5f201791_9d176c52","updated":"2017-06-24 06:58:22.000000000","message":"That\u0027s because we generated this file from our older format during the api-ref migration effort. Those are discrepancies that we need to fix someday.. but no reason to write name new parameters like that.","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c217879acd6b408684cbbce40a2c6c81aa2310e6","unresolved":false,"context_lines":[{"line_number":206,"context_line":"  in: query"},{"line_number":207,"context_line":"  required: false"},{"line_number":208,"context_line":"  type: string"},{"line_number":209,"context_line":"export_location_id_1:"},{"line_number":210,"context_line":"  description: |"},{"line_number":211,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering shares."},{"line_number":212,"context_line":"  in: query"},{"line_number":213,"context_line":"  required: false"},{"line_number":214,"context_line":"  type: string"},{"line_number":215,"context_line":"export_location_id_2:"},{"line_number":216,"context_line":"  description: |"},{"line_number":217,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering share"},{"line_number":218,"context_line":"    instances."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_9d176c52","line":215,"range":{"start_line":209,"start_character":0,"end_line":215,"end_character":21},"in_reply_to":"5f201791_9d388c3d","updated":"2017-06-24 06:23:46.000000000","message":"I saw we always have difference parameters for each resources. such as:\nlimit:\n  description: |\n    The maximum number of shares to return.\n  in: query\n  required: false\n  type: integer\nlimit_2:\n  description: |\n    The maximum number of consistency groups snapshots\n    to return.\n  in: query\n  required: false\n  type: integer\nlimit_3:\n  description: |\n    The maximum number of consistency groups snapshot\n    members to return.\n\nThe way will be more clear.","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  type: string"},{"line_number":215,"context_line":"export_location_id_2:"},{"line_number":216,"context_line":"  description: |"},{"line_number":217,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering share"},{"line_number":218,"context_line":"    instances."},{"line_number":219,"context_line":"  in: query"},{"line_number":220,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_5df55482","line":217,"range":{"start_line":217,"start_character":4,"end_line":217,"end_character":21},"updated":"2017-06-24 05:24:21.000000000","message":"same","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c217879acd6b408684cbbce40a2c6c81aa2310e6","unresolved":false,"context_lines":[{"line_number":214,"context_line":"  type: string"},{"line_number":215,"context_line":"export_location_id_2:"},{"line_number":216,"context_line":"  description: |"},{"line_number":217,"context_line":"    (Since API v2.35) The export location UUID. Allows filtering share"},{"line_number":218,"context_line":"    instances."},{"line_number":219,"context_line":"  in: query"},{"line_number":220,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_653d16c3","line":217,"range":{"start_line":217,"start_character":4,"end_line":217,"end_character":21},"in_reply_to":"5f201791_5df55482","updated":"2017-06-24 06:23:46.000000000","message":"Done","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  type: string"},{"line_number":222,"context_line":"export_location_path_1:"},{"line_number":223,"context_line":"  description: |"},{"line_number":224,"context_line":"    (Since API v2.35) The export location path. Allows filtering shares."},{"line_number":225,"context_line":"  in: query"},{"line_number":226,"context_line":"  required: false"},{"line_number":227,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_3df4d885","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":21},"updated":"2017-06-24 05:24:21.000000000","message":"same","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c217879acd6b408684cbbce40a2c6c81aa2310e6","unresolved":false,"context_lines":[{"line_number":221,"context_line":"  type: string"},{"line_number":222,"context_line":"export_location_path_1:"},{"line_number":223,"context_line":"  description: |"},{"line_number":224,"context_line":"    (Since API v2.35) The export location path. Allows filtering shares."},{"line_number":225,"context_line":"  in: query"},{"line_number":226,"context_line":"  required: false"},{"line_number":227,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_453a1acc","line":224,"range":{"start_line":224,"start_character":4,"end_line":224,"end_character":21},"in_reply_to":"5f201791_3df4d885","updated":"2017-06-24 06:23:46.000000000","message":"Done","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":225,"context_line":"  in: query"},{"line_number":226,"context_line":"  required: false"},{"line_number":227,"context_line":"  type: string"},{"line_number":228,"context_line":"export_location_path_2:"},{"line_number":229,"context_line":"  description: |"},{"line_number":230,"context_line":"    (Since API v2.35) The export location path. Allows filtering share"},{"line_number":231,"context_line":"    instances."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_5d3af433","line":228,"range":{"start_line":228,"start_character":0,"end_line":228,"end_character":23},"updated":"2017-06-24 05:24:21.000000000","message":"same concern here, combine both of these with:\n\n export_location_path_query","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"c217879acd6b408684cbbce40a2c6c81aa2310e6","unresolved":false,"context_lines":[{"line_number":225,"context_line":"  in: query"},{"line_number":226,"context_line":"  required: false"},{"line_number":227,"context_line":"  type: string"},{"line_number":228,"context_line":"export_location_path_2:"},{"line_number":229,"context_line":"  description: |"},{"line_number":230,"context_line":"    (Since API v2.35) The export location path. Allows filtering share"},{"line_number":231,"context_line":"    instances."}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_25339ef8","line":228,"range":{"start_line":228,"start_character":0,"end_line":228,"end_character":23},"in_reply_to":"5f201791_5d3af433","updated":"2017-06-24 06:23:46.000000000","message":"Done","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"  type: string"},{"line_number":228,"context_line":"export_location_path_2:"},{"line_number":229,"context_line":"  description: |"},{"line_number":230,"context_line":"    (Since API v2.35) The export location path. Allows filtering share"},{"line_number":231,"context_line":"    instances."},{"line_number":232,"context_line":"  in: query"},{"line_number":233,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_1d447cb6","line":230,"range":{"start_line":230,"start_character":22,"end_line":230,"end_character":70},"updated":"2017-06-24 05:24:21.000000000","message":"The combined description can be:\n\n The export location path that can be used to filter shares or share instances.","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"af927c93761b7cb9ddec70ab5413b835bb4da21b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"  type: string"},{"line_number":228,"context_line":"export_location_path_2:"},{"line_number":229,"context_line":"  description: |"},{"line_number":230,"context_line":"    (Since API v2.35) The export location path. Allows filtering share"},{"line_number":231,"context_line":"    instances."},{"line_number":232,"context_line":"  in: query"},{"line_number":233,"context_line":"  required: false"}],"source_content_type":"text/x-yaml","patch_set":39,"id":"5f201791_1defdcb0","line":230,"range":{"start_line":230,"start_character":4,"end_line":230,"end_character":21},"updated":"2017-06-24 05:24:21.000000000","message":"same","commit_id":"b59979191a9aa3987476335bdfcf5d0b1569b384"}],"manila/api/common.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"c02eea7ace87882df0a7908629eb3998f3b58888","unresolved":false,"context_lines":[{"line_number":319,"context_line":"        del search_options[opt]"},{"line_number":320,"context_line":""},{"line_number":321,"context_line":""},{"line_number":322,"context_line":"def reject_invalid_options(options, allowed_options):"},{"line_number":323,"context_line":"    \"\"\"Reject options that are not valid for API.\"\"\""},{"line_number":324,"context_line":"    invalid_keys \u003d [opt for opt in options"},{"line_number":325,"context_line":"                    if opt not in allowed_options]"},{"line_number":326,"context_line":"    if invalid_keys:"},{"line_number":327,"context_line":"        raise webob.exc.HTTPBadRequest("},{"line_number":328,"context_line":"            explanation\u003d_(\u0027Invalid filters %s are found in query \u0027"},{"line_number":329,"context_line":"                          \u0027options.\u0027) % \u0027,\u0027.join(invalid_keys))"},{"line_number":330,"context_line":""},{"line_number":331,"context_line":""},{"line_number":332,"context_line":"def validate_common_name(access):"},{"line_number":333,"context_line":"    \"\"\"Validate common name passed by user."}],"source_content_type":"text/x-python","patch_set":35,"id":"5f201791_0303080f","line":330,"range":{"start_line":322,"start_character":0,"end_line":330,"end_character":0},"updated":"2017-06-23 15:54:22.000000000","message":"this change affects older micro versions.. and is undesirable. Please see meeting notes from yesterday, we concluded that:\n\nUsers currently can specify garbage in their queries, and we ignore them\n\nWe can stop users from sending garbage by returning a HTTP 400 BadRequest, but that should be a microversioned change, which means:\n\n /shares?garbage\u003dxyzzy X-OpenStack-Manila-API-Version 2.34 \n\nshould NOT return HTTP400\n\nbut \n\n /shares?garbage\u003dxyzzy X-OpenStack-Manila-API-Version 2.35\n\ncan return HTTP400 saying that \"garbage\" is not a valid filter... \n\n\nWhat you currently have breaks the way the all versions of /shares behave.","commit_id":"2fdfb6c01a088295a0933865915b180ed4ee6151"}],"manila/api/openstack/api_version_request.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1f6b2d43e130fe9c1aa4e941c84477a39d4f00da","unresolved":false,"context_lines":[{"line_number":102,"context_line":"             access_list API."},{"line_number":103,"context_line":"    * 2.34 - Added \u0027availability_zone_id\u0027 and \u0027consistent_snapshot_support\u0027"},{"line_number":104,"context_line":"             fields to \u0027share_group\u0027 object."},{"line_number":105,"context_line":"    * 2.35 - Support retrieving shares filtered by export-location."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\"\"\""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f231b9d_f009f62b","line":105,"range":{"start_line":105,"start_character":51,"end_line":105,"end_character":66},"updated":"2017-06-14 03:01:20.000000000","message":"export_location","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"97cea1fd739e2461f2d42df04f5405ac3f92d91c","unresolved":false,"context_lines":[{"line_number":102,"context_line":"             access_list API."},{"line_number":103,"context_line":"    * 2.34 - Added \u0027availability_zone_id\u0027 and \u0027consistent_snapshot_support\u0027"},{"line_number":104,"context_line":"             fields to \u0027share_group\u0027 object."},{"line_number":105,"context_line":"    * 2.35 - Support retrieving shares filtered by export-location."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"\"\"\""},{"line_number":108,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f231b9d_ffc1c1e5","line":105,"range":{"start_line":105,"start_character":51,"end_line":105,"end_character":66},"in_reply_to":"7f231b9d_f009f62b","updated":"2017-06-14 07:45:58.000000000","message":"Done","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                            method.end_version,"},{"line_number":191,"context_line":"                            method.experimental)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def matches(self, min_version, max_version\u003dNone, experimental\u003dFalse):"},{"line_number":194,"context_line":"        \"\"\"Compares this version to the specified min/max range."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        Returns whether the version object represents a version"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_15ce5981","line":193,"range":{"start_line":193,"start_character":35,"end_line":193,"end_character":51},"updated":"2017-06-16 02:55:36.000000000","message":"Why?","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                            method.end_version,"},{"line_number":191,"context_line":"                            method.experimental)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    def matches(self, min_version, max_version\u003dNone, experimental\u003dFalse):"},{"line_number":194,"context_line":"        \"\"\"Compares this version to the specified min/max range."},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        Returns whether the version object represents a version"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_a4009102","line":193,"range":{"start_line":193,"start_character":35,"end_line":193,"end_character":51},"in_reply_to":"7f231b9d_15ce5981","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        if not self.experimental and experimental:"},{"line_number":216,"context_line":"            return False"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        if isinstance(min_version, str):"},{"line_number":219,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":220,"context_line":"        if isinstance(max_version, str):"},{"line_number":221,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if not min_version and not max_version:"},{"line_number":224,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_d5fc61b6","line":221,"range":{"start_line":218,"start_character":6,"end_line":221,"end_character":71},"updated":"2017-06-16 02:55:36.000000000","message":"this is a welcome addition, but should not be part of a patch to add export_location filter to shares API. Please split into another patch..","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":215,"context_line":"        if not self.experimental and experimental:"},{"line_number":216,"context_line":"            return False"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"        if isinstance(min_version, str):"},{"line_number":219,"context_line":"            min_version \u003d APIVersionRequest(version_string\u003dmin_version)"},{"line_number":220,"context_line":"        if isinstance(max_version, str):"},{"line_number":221,"context_line":"            max_version \u003d APIVersionRequest(version_string\u003dmax_version)"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        if not min_version and not max_version:"},{"line_number":224,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_9834e094","line":221,"range":{"start_line":218,"start_character":6,"end_line":221,"end_character":71},"in_reply_to":"7f231b9d_d5fc61b6","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99135d2f1546fbade522ec6cd02f541ed067991a","unresolved":false,"context_lines":[{"line_number":112,"context_line":"# minimum version of the API supported."},{"line_number":113,"context_line":"_MIN_API_VERSION \u003d \"2.0\""},{"line_number":114,"context_line":"_MAX_API_VERSION \u003d \"2.35\""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_72369c53","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":0},"updated":"2017-06-18 01:06:32.000000000","message":"gratuitous whitespace change. Please avoid.","commit_id":"ab3fccfe90928e74ab57c227b2246c7a43265823"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"db07b5ad70cfe751695a6339bc921d83aece40f5","unresolved":false,"context_lines":[{"line_number":112,"context_line":"# minimum version of the API supported."},{"line_number":113,"context_line":"_MIN_API_VERSION \u003d \"2.0\""},{"line_number":114,"context_line":"_MAX_API_VERSION \u003d \"2.35\""},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_410bc828","line":115,"range":{"start_line":115,"start_character":0,"end_line":115,"end_character":0},"in_reply_to":"7f231b9d_72369c53","updated":"2017-06-19 01:39:05.000000000","message":"Done","commit_id":"ab3fccfe90928e74ab57c227b2246c7a43265823"}],"manila/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1f6b2d43e130fe9c1aa4e941c84477a39d4f00da","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"2.35"},{"line_number":205,"context_line":"----"},{"line_number":206,"context_line":"  Support retrieving shares filtered by export-location."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7f231b9d_5031caeb","line":206,"range":{"start_line":206,"start_character":40,"end_line":206,"end_character":55},"updated":"2017-06-14 03:01:20.000000000","message":"export_location","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"97cea1fd739e2461f2d42df04f5405ac3f92d91c","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"2.35"},{"line_number":205,"context_line":"----"},{"line_number":206,"context_line":"  Support retrieving shares filtered by export-location."}],"source_content_type":"text/x-rst","patch_set":16,"id":"7f231b9d_bfbb4970","line":206,"range":{"start_line":206,"start_character":40,"end_line":206,"end_character":55},"in_reply_to":"7f231b9d_5031caeb","updated":"2017-06-14 07:45:58.000000000","message":"Done","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"2.35"},{"line_number":205,"context_line":"----"},{"line_number":206,"context_line":"  Support retrieving shares filtered by export_location_id and"},{"line_number":207,"context_line":"  export_location_path."}],"source_content_type":"text/x-rst","patch_set":17,"id":"7f231b9d_d5c34156","line":206,"range":{"start_line":206,"start_character":2,"end_line":206,"end_character":9},"updated":"2017-06-16 02:55:36.000000000","message":"Added support to retrieve shares...","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":203,"context_line":""},{"line_number":204,"context_line":"2.35"},{"line_number":205,"context_line":"----"},{"line_number":206,"context_line":"  Support retrieving shares filtered by export_location_id and"},{"line_number":207,"context_line":"  export_location_path."}],"source_content_type":"text/x-rst","patch_set":17,"id":"7f231b9d_78da244b","line":206,"range":{"start_line":206,"start_character":2,"end_line":206,"end_character":9},"in_reply_to":"7f231b9d_d5c34156","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"}],"manila/api/v1/shares.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4c6bc484e0f13ba325910151cbd56402de109ae2","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            \u0027display_name\u0027, \u0027status\u0027, \u0027share_server_id\u0027, \u0027volume_type_id\u0027,"},{"line_number":160,"context_line":"            \u0027share_type_id\u0027, \u0027snapshot_id\u0027, \u0027host\u0027, \u0027share_network_id\u0027,"},{"line_number":161,"context_line":"            \u0027is_public\u0027, \u0027metadata\u0027, \u0027extra_specs\u0027, \u0027sort_key\u0027, \u0027sort_dir\u0027,"},{"line_number":162,"context_line":"            \u0027share_group_id\u0027, \u0027share_group_snapshot_id\u0027, \u0027export_location_id\u0027,"},{"line_number":163,"context_line":"            \u0027export_location_path\u0027"},{"line_number":164,"context_line":"        )"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def update(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_29f07967","line":163,"range":{"start_line":162,"start_character":55,"end_line":163,"end_character":34},"updated":"2017-06-08 17:26:32.000000000","message":"Here you change behavior of v1 API.","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"018e498a9331e1ce03287910c1de7cec4a4dc609","unresolved":false,"context_lines":[{"line_number":159,"context_line":"            \u0027display_name\u0027, \u0027status\u0027, \u0027share_server_id\u0027, \u0027volume_type_id\u0027,"},{"line_number":160,"context_line":"            \u0027share_type_id\u0027, \u0027snapshot_id\u0027, \u0027host\u0027, \u0027share_network_id\u0027,"},{"line_number":161,"context_line":"            \u0027is_public\u0027, \u0027metadata\u0027, \u0027extra_specs\u0027, \u0027sort_key\u0027, \u0027sort_dir\u0027,"},{"line_number":162,"context_line":"            \u0027share_group_id\u0027, \u0027share_group_snapshot_id\u0027, \u0027export_location_id\u0027,"},{"line_number":163,"context_line":"            \u0027export_location_path\u0027"},{"line_number":164,"context_line":"        )"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def update(self, req, id, body):"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_956d489a","line":163,"range":{"start_line":162,"start_character":55,"end_line":163,"end_character":34},"in_reply_to":"bf091321_29f07967","updated":"2017-06-09 02:34:09.000000000","message":"Done","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1f6b2d43e130fe9c1aa4e941c84477a39d4f00da","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            \u0027share_group_id\u0027, \u0027share_group_snapshot_id\u0027"},{"line_number":163,"context_line":"        ]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        req_version \u003d req.api_version_request"},{"line_number":166,"context_line":"        if req_version.matches(\u00272.35\u0027):"},{"line_number":167,"context_line":"            search_options.append(\u0027export_location_id\u0027)"},{"line_number":168,"context_line":"            search_options.append(\u0027export_location_path\u0027)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return search_options"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f231b9d_2ef4b05a","line":168,"range":{"start_line":165,"start_character":0,"end_line":168,"end_character":57},"updated":"2017-06-14 03:01:20.000000000","message":"It will be cleaner if this code that handles microversion for v2 goes to manila/api/v2/shares.py.","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"97cea1fd739e2461f2d42df04f5405ac3f92d91c","unresolved":false,"context_lines":[{"line_number":162,"context_line":"            \u0027share_group_id\u0027, \u0027share_group_snapshot_id\u0027"},{"line_number":163,"context_line":"        ]"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"        req_version \u003d req.api_version_request"},{"line_number":166,"context_line":"        if req_version.matches(\u00272.35\u0027):"},{"line_number":167,"context_line":"            search_options.append(\u0027export_location_id\u0027)"},{"line_number":168,"context_line":"            search_options.append(\u0027export_location_path\u0027)"},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"        return search_options"},{"line_number":171,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"7f231b9d_9f776dd5","line":168,"range":{"start_line":165,"start_character":0,"end_line":168,"end_character":57},"in_reply_to":"7f231b9d_2ef4b05a","updated":"2017-06-14 07:45:58.000000000","message":"Done","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"}],"manila/api/v2/share_instances.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"efeb6d7fb01cfe3b1318a45c1db8a8385e27ad95","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def index(self, req):  # pylint: disable\u003dE0102"},{"line_number":75,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":76,"context_line":"        filters \u003d {}"},{"line_number":77,"context_line":"        filters.update(req.GET)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        instances \u003d db.share_instances_get_all(context, filters)"},{"line_number":80,"context_line":"        return self._view_builder.detail_list(req, instances)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_246708c0","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":31},"updated":"2017-05-10 17:19:09.000000000","message":"It is ambiguous. You should allow only one specific filter that you add.","commit_id":"9848b5085101c28076e9aa90480aa632e2d0aae8"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"426fc5ba213105ad7497db97492d16c2e6f37394","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    def index(self, req):  # pylint: disable\u003dE0102"},{"line_number":75,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":76,"context_line":"        filters \u003d {}"},{"line_number":77,"context_line":"        filters.update(req.GET)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        instances \u003d db.share_instances_get_all(context, filters)"},{"line_number":80,"context_line":"        return self._view_builder.detail_list(req, instances)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_2fbfd8b0","line":77,"range":{"start_line":77,"start_character":8,"end_line":77,"end_character":31},"in_reply_to":"3f044301_246708c0","updated":"2017-05-11 09:37:05.000000000","message":"Done","commit_id":"9848b5085101c28076e9aa90480aa632e2d0aae8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def index(self, req):"},{"line_number":68,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":69,"context_line":"        filters \u003d {}"},{"line_number":70,"context_line":"        if req.api_version_request.matches(\u00272.35\u0027):"},{"line_number":71,"context_line":"            filters.update(req.GET)"},{"line_number":72,"context_line":"            common.remove_invalid_options("},{"line_number":73,"context_line":"                context, filters,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_55861115","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":50},"updated":"2017-06-16 02:55:36.000000000","message":"instead of using matches, you can use the arithmetic operations for this, \n\nanother preferred option is to do what you did with the shares API, methods... https://review.openstack.org/#/c/461712/17/manila/api/v2/shares.py and create another index() method for 2.35+","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    def index(self, req):"},{"line_number":68,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":69,"context_line":"        filters \u003d {}"},{"line_number":70,"context_line":"        if req.api_version_request.matches(\u00272.35\u0027):"},{"line_number":71,"context_line":"            filters.update(req.GET)"},{"line_number":72,"context_line":"            common.remove_invalid_options("},{"line_number":73,"context_line":"                context, filters,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_98a740be","line":70,"range":{"start_line":70,"start_character":8,"end_line":70,"end_character":50},"in_reply_to":"7f231b9d_55861115","updated":"2017-06-16 06:38:59.000000000","message":"Done,   This is more clear than this way https://review.openstack.org/#/c/461712/17/manila/api/v2/shares.py :)","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99135d2f1546fbade522ec6cd02f541ed067991a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":77,"context_line":"        filters \u003d {}"},{"line_number":78,"context_line":"        filters.update(req.GET)"},{"line_number":79,"context_line":"        common.remove_invalid_options("},{"line_number":80,"context_line":"            context, filters, (\u0027export_location_id\u0027, \u0027export_location_path\u0027))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        instances \u003d db.share_instances_get_all(context, filters)"},{"line_number":83,"context_line":"        return self._view_builder.detail_list(req, instances)"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_524160a8","line":80,"range":{"start_line":79,"start_character":8,"end_line":80,"end_character":77},"updated":"2017-06-18 01:06:32.000000000","message":"?\n\nThis prevents you to specify anything but \"export_location_id\u0027, \u0027export_location_path\".. \n\nWhat you want is to remove export_location_id and export_location_path from API-versions \u003c 2.35","commit_id":"ab3fccfe90928e74ab57c227b2246c7a43265823"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"db07b5ad70cfe751695a6339bc921d83aece40f5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":77,"context_line":"        filters \u003d {}"},{"line_number":78,"context_line":"        filters.update(req.GET)"},{"line_number":79,"context_line":"        common.remove_invalid_options("},{"line_number":80,"context_line":"            context, filters, (\u0027export_location_id\u0027, \u0027export_location_path\u0027))"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        instances \u003d db.share_instances_get_all(context, filters)"},{"line_number":83,"context_line":"        return self._view_builder.detail_list(req, instances)"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_61100458","line":80,"range":{"start_line":79,"start_character":8,"end_line":80,"end_character":77},"in_reply_to":"7f231b9d_524160a8","updated":"2017-06-19 01:39:05.000000000","message":"Done","commit_id":"ab3fccfe90928e74ab57c227b2246c7a43265823"}],"manila/api/v2/shares.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"dc6154b1866293f207c75d684189d4053ae29393","unresolved":false,"context_lines":[{"line_number":430,"context_line":"    @wsgi.Controller.api_version(\"2.0\", \"2.34\")  # noqa"},{"line_number":431,"context_line":"    def detail(self, req):  # pylint: disable\u003dE0102"},{"line_number":432,"context_line":"        \"\"\"Returns a detailed list of shares.\"\"\""},{"line_number":433,"context_line":"        req.GET.pop(\u0027export_location_id\u0027, None)"},{"line_number":434,"context_line":"        req.GET.pop(\u0027export_location_path\u0027, None)"},{"line_number":435,"context_line":"        return self._get_shares(req, is_detail\u003dTrue)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    @wsgi.Controller.api_version(\"2.35\")  # noqa"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f201791_f3b14ce3","line":434,"range":{"start_line":433,"start_character":8,"end_line":434,"end_character":49},"updated":"2017-06-21 13:34:44.000000000","message":"It is unexpected behavior. I am, as a user, can provide such filter using old API and in current case I will get some response. It is bug, because key was dropped, not used. So, you should check, whether these keys are provided or not. If they are provided with old API, then need to raise \"BadRequest\" error.","commit_id":"ba1a4f7103f2195e3d3a4c76326e10c755369bcb"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"63dcf7cdd99c05f55d8c6747ecf03f72e3b3f4eb","unresolved":false,"context_lines":[{"line_number":430,"context_line":"    @wsgi.Controller.api_version(\"2.0\", \"2.34\")  # noqa"},{"line_number":431,"context_line":"    def detail(self, req):  # pylint: disable\u003dE0102"},{"line_number":432,"context_line":"        \"\"\"Returns a detailed list of shares.\"\"\""},{"line_number":433,"context_line":"        req.GET.pop(\u0027export_location_id\u0027, None)"},{"line_number":434,"context_line":"        req.GET.pop(\u0027export_location_path\u0027, None)"},{"line_number":435,"context_line":"        return self._get_shares(req, is_detail\u003dTrue)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"    @wsgi.Controller.api_version(\"2.35\")  # noqa"}],"source_content_type":"text/x-python","patch_set":29,"id":"5f201791_b57de11d","line":434,"range":{"start_line":433,"start_character":8,"end_line":434,"end_character":49},"in_reply_to":"5f201791_f3b14ce3","updated":"2017-06-22 07:36:39.000000000","message":"Done, I added the check, whether these keys are provided or\n not. It just like the same as before: Use the common \nmethod remove_invalid_options to tell user that we can not \nsupport this filter. If we want to raise \"BadRequest\" error\n when they are provided with old API. I think we need to \nopen a bug, and change all other codes about this.\n \nLOG.debug(\"Removing options \u0027%(bad_options)s\u0027 from query\",\n              {\"bad_options\": bad_options})","commit_id":"ba1a4f7103f2195e3d3a4c76326e10c755369bcb"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"d630aa8a61e108639d806f1bfc0789dcff0a40ba","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            enable_export_location \u003d True"},{"line_number":434,"context_line":"        return self._get_shares("},{"line_number":435,"context_line":"            req, is_detail\u003dTrue,"},{"line_number":436,"context_line":"            enable_export_location\u003denable_export_location)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"def create_resource():"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f201791_1a727412","line":436,"updated":"2017-06-22 14:55:13.000000000","message":"Looks right to me, but I thought Valeriy asked for \"BadRequest\" to be raised when these new options are provided with old APIs.  Need to have him verify if his comments are addressed.","commit_id":"94f97718aece6eb9026aee62e2984411bbd61fb1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"cc7781b6af09a2e56693c92df2988bc5b5141e03","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            enable_export_location \u003d True"},{"line_number":434,"context_line":"        return self._get_shares("},{"line_number":435,"context_line":"            req, is_detail\u003dTrue,"},{"line_number":436,"context_line":"            enable_export_location\u003denable_export_location)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"def create_resource():"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f201791_553c3fbe","line":436,"in_reply_to":"5f201791_1a727412","updated":"2017-06-22 14:58:58.000000000","message":"We still get 200 Ok with data using old API and these 2 new filters that are just ignored. So, original concern is not addressed.","commit_id":"94f97718aece6eb9026aee62e2984411bbd61fb1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b58b56a74ce1407a4e57c39007869ebefd56da6d","unresolved":false,"context_lines":[{"line_number":433,"context_line":"            enable_export_location \u003d True"},{"line_number":434,"context_line":"        return self._get_shares("},{"line_number":435,"context_line":"            req, is_detail\u003dTrue,"},{"line_number":436,"context_line":"            enable_export_location\u003denable_export_location)"},{"line_number":437,"context_line":""},{"line_number":438,"context_line":""},{"line_number":439,"context_line":"def create_resource():"}],"source_content_type":"text/x-python","patch_set":32,"id":"5f201791_556f9f91","line":436,"in_reply_to":"5f201791_553c3fbe","updated":"2017-06-22 15:05:27.000000000","message":"I don\u0027t get the point of micro versions if we keep changing old APIs when we add new behavior.","commit_id":"94f97718aece6eb9026aee62e2984411bbd61fb1"}],"manila/db/sqlalchemy/api.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e6a7a7e3b95751b69f24ac8563e63b9e63065d00","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"                models.ShareInstanceExportLocations.path \u003d\u003d export_location)"},{"line_number":1631,"context_line":"        else:"},{"line_number":1632,"context_line":"            query \u003d query.filter("},{"line_number":1633,"context_line":"                models.ShareInstanceExportLocations.uuid \u003d\u003d export_location)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1636,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_84e49c3d","line":1633,"range":{"start_line":1633,"start_character":60,"end_line":1633,"end_character":75},"updated":"2017-05-10 17:12:04.000000000","message":"You get error 500 (SQL syntax error), because export_location comes here as dictionary, not string.\n\nIts structure is as of following:\n\n{\n\tu\u0027path\u0027: u\u002710.0.0.10:/path/to/fake/share/share_495a4f8e_a558_48a6_b745_479e652d7415_a825e6c5_e027_4889_8100_348e92019838\u0027,\n\tu\u0027is_admin_only\u0027: False,\n\tu\u0027preferred\u0027: True,\n\tu\u0027share_instance_id\u0027: u\u0027a825e6c5-e027-4889-8100-348e92019838\u0027,\n\tu\u0027id\u0027: u\u00273822ace1-37f0-43fb-9d86-50399ef47546\u0027\n},","commit_id":"9848b5085101c28076e9aa90480aa632e2d0aae8"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"426fc5ba213105ad7497db97492d16c2e6f37394","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"                models.ShareInstanceExportLocations.path \u003d\u003d export_location)"},{"line_number":1631,"context_line":"        else:"},{"line_number":1632,"context_line":"            query \u003d query.filter("},{"line_number":1633,"context_line":"                models.ShareInstanceExportLocations.uuid \u003d\u003d export_location)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1636,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_afdbe879","line":1633,"range":{"start_line":1633,"start_character":60,"end_line":1633,"end_character":75},"in_reply_to":"3f044301_84e49c3d","updated":"2017-05-11 09:37:05.000000000","message":"The export_location comes here as string, We get the export_location by user input(http://10.10.10.10:8786/v2/e63898ff636c41d2891d8595aebe0f8e/share_instances?export_location\u003d3822ace1-37f0-43fb-9d86-50399ef47546).\n\nThe export_location value is export_location path(\u002710.0.0.10:/path/to/fake/share/share_495a4f8e_a558_48a6_b745_479e652d7415_a825e6c5_e027_4889_8100_348e92019838\u0027) or export_location id(\u00273822ace1-37f0-43fb-9d86-50399ef47546\u0027).","commit_id":"9848b5085101c28076e9aa90480aa632e2d0aae8"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3359424c50e62d4bbca3f938459fd7478bfabce7","unresolved":false,"context_lines":[{"line_number":1630,"context_line":"                models.ShareInstanceExportLocations.path \u003d\u003d export_location)"},{"line_number":1631,"context_line":"        else:"},{"line_number":1632,"context_line":"            query \u003d query.filter("},{"line_number":1633,"context_line":"                models.ShareInstanceExportLocations.uuid \u003d\u003d export_location)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1636,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_f0ac2cee","line":1633,"range":{"start_line":1633,"start_character":60,"end_line":1633,"end_character":75},"in_reply_to":"3f044301_afdbe879","updated":"2017-05-11 10:33:05.000000000","message":"Look, your broken tempest tests in PS6 proved opposite. If I combine my own CURL request with wrong data I will get error code 500 again here. Data type should be handled correctly. Either here or on API level. It is still fragile.","commit_id":"9848b5085101c28076e9aa90480aa632e2d0aae8"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":1214,"context_line":"        joinedload(\u0027export_locations\u0027),"},{"line_number":1215,"context_line":"    )"},{"line_number":1216,"context_line":""},{"line_number":1217,"context_line":"    if not filters:"},{"line_number":1218,"context_line":"        filters \u003d {}"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"    export_location_id \u003d filters.get(\u0027export_location_id\u0027)"},{"line_number":1221,"context_line":"    export_location_path \u003d filters.get(\u0027export_location_path\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_15a1b994","line":1218,"range":{"start_line":1217,"start_character":4,"end_line":1218,"end_character":20},"updated":"2017-06-16 02:55:36.000000000","message":"filters \u003d filters or {}","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":1214,"context_line":"        joinedload(\u0027export_locations\u0027),"},{"line_number":1215,"context_line":"    )"},{"line_number":1216,"context_line":""},{"line_number":1217,"context_line":"    if not filters:"},{"line_number":1218,"context_line":"        filters \u003d {}"},{"line_number":1219,"context_line":""},{"line_number":1220,"context_line":"    export_location_id \u003d filters.get(\u0027export_location_id\u0027)"},{"line_number":1221,"context_line":"    export_location_path \u003d filters.get(\u0027export_location_path\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_440bfd22","line":1218,"range":{"start_line":1217,"start_character":4,"end_line":1218,"end_character":20},"in_reply_to":"7f231b9d_15a1b994","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9b9772c014133a872c04e944a1f01b38f0e72f0a","unresolved":false,"context_lines":[{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":"    export_location_id \u003d filters.get(\u0027export_location_id\u0027)"},{"line_number":1625,"context_line":"    export_location_path \u003d filters.get(\u0027export_location_path\u0027)"},{"line_number":1626,"context_line":"    if export_location_id or export_location_path:"},{"line_number":1627,"context_line":"        query \u003d query.join("},{"line_number":1628,"context_line":"            models.ShareInstanceExportLocations,"},{"line_number":1629,"context_line":"            models.ShareInstanceExportLocations.share_instance_id \u003d\u003d"},{"line_number":1630,"context_line":"            models.ShareInstance.id)"},{"line_number":1631,"context_line":"        if export_location_path:"},{"line_number":1632,"context_line":"            query \u003d query.filter("},{"line_number":1633,"context_line":"                models.ShareInstanceExportLocations.path \u003d\u003d"},{"line_number":1634,"context_line":"                export_location_path)"},{"line_number":1635,"context_line":"        if export_location_id:"},{"line_number":1636,"context_line":"            query \u003d query.filter("},{"line_number":1637,"context_line":"                models.ShareInstanceExportLocations.uuid \u003d\u003d"},{"line_number":1638,"context_line":"                export_location_id)"},{"line_number":1639,"context_line":""},{"line_number":1640,"context_line":"    if \u0027metadata\u0027 in filters:"},{"line_number":1641,"context_line":"        for k, v in filters[\u0027metadata\u0027].items():"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f201791_973216a7","line":1638,"range":{"start_line":1626,"start_character":0,"end_line":1638,"end_character":35},"updated":"2017-06-21 01:37:57.000000000","message":"no unit test coverage: http://logs.openstack.org/12/461712/27/check/manila-coverage-ubuntu-xenial-nv/821d650/cover/manila_db_sqlalchemy_api_py.html#n1626","commit_id":"a1f60cad98fb328c63796e70ad33862436281255"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7e14c7a78343d12b243162c7b385ab4ec4bbb93f","unresolved":false,"context_lines":[{"line_number":1201,"context_line":"    return result"},{"line_number":1202,"context_line":""},{"line_number":1203,"context_line":""},{"line_number":1204,"context_line":"@require_admin_context"},{"line_number":1205,"context_line":"def share_instances_get_all(context, filters\u003dNone):"},{"line_number":1206,"context_line":"    return _share_instances_get_all_with_filters(context, filters\u003dfilters)"},{"line_number":1207,"context_line":""},{"line_number":1208,"context_line":""},{"line_number":1209,"context_line":"@require_admin_context"},{"line_number":1210,"context_line":"def _share_instances_get_all_with_filters(context, filters\u003dNone):"},{"line_number":1211,"context_line":"    session \u003d get_session()"},{"line_number":1212,"context_line":"    query \u003d model_query("},{"line_number":1213,"context_line":"        context, models.ShareInstance, session\u003dsession, read_deleted\u003d\"no\","}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_afbf4e5f","line":1210,"range":{"start_line":1204,"start_character":0,"end_line":1210,"end_character":65},"updated":"2017-06-27 10:37:36.000000000","message":"Why do you need separate to 2 functions? Then, why do you use \"require_admin_context\" decorator in both? It is expected that \"private\" functions that start with underscore \"_\" don\u0027t have context-related decorators.","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"}],"manila/tests/api/v2/test_share_instances.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual([i[\u0027id\u0027] for i in expected],"},{"line_number":69,"context_line":"                         [i[\u0027id\u0027] for i in actual])"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @ddt.data(\"2.32\", \"2.35\")"},{"line_number":72,"context_line":"    def test_index(self, version):"},{"line_number":73,"context_line":"        url \u003d \u0027/share_instances\u0027"},{"line_number":74,"context_line":"        if (api_version_request.APIVersionRequest(version) \u003e\u003d"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_75e46de0","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":19},"updated":"2017-06-16 02:55:36.000000000","message":"0","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":68,"context_line":"        self.assertEqual([i[\u0027id\u0027] for i in expected],"},{"line_number":69,"context_line":"                         [i[\u0027id\u0027] for i in actual])"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    @ddt.data(\"2.32\", \"2.35\")"},{"line_number":72,"context_line":"    def test_index(self, version):"},{"line_number":73,"context_line":"        url \u003d \u0027/share_instances\u0027"},{"line_number":74,"context_line":"        if (api_version_request.APIVersionRequest(version) \u003e\u003d"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_3896ec4d","line":71,"range":{"start_line":71,"start_character":17,"end_line":71,"end_character":19},"in_reply_to":"7f231b9d_75e46de0","updated":"2017-06-16 06:38:59.000000000","message":"We support this feature start from 2.3 version","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        actual_result \u003d self.controller.index(req)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        if (api_version_request.APIVersionRequest(version) \u003e\u003d"},{"line_number":92,"context_line":"                api_version_request.APIVersionRequest(\u00272.34\u0027)):"},{"line_number":93,"context_line":"            test_instances \u003d test_instances[:1]"},{"line_number":94,"context_line":"        self._validate_ids_in_share_instances_list("},{"line_number":95,"context_line":"            test_instances, actual_result[\u0027share_instances\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_55e971b4","line":92,"range":{"start_line":92,"start_character":55,"end_line":92,"end_character":59},"updated":"2017-06-16 02:55:36.000000000","message":"2.35","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        actual_result \u003d self.controller.index(req)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        if (api_version_request.APIVersionRequest(version) \u003e\u003d"},{"line_number":92,"context_line":"                api_version_request.APIVersionRequest(\u00272.34\u0027)):"},{"line_number":93,"context_line":"            test_instances \u003d test_instances[:1]"},{"line_number":94,"context_line":"        self._validate_ids_in_share_instances_list("},{"line_number":95,"context_line":"            test_instances, actual_result[\u0027share_instances\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_9890604c","line":92,"range":{"start_line":92,"start_character":55,"end_line":92,"end_character":59},"in_reply_to":"7f231b9d_55e971b4","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"}],"manila/tests/api/v2/test_shares.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":1550,"context_line":"        }"},{"line_number":1551,"context_line":"        if (api_version.APIVersionRequest(version) \u003e\u003d"},{"line_number":1552,"context_line":"                api_version.APIVersionRequest(\u00272.35\u0027)):"},{"line_number":1553,"context_line":"            search_opts_expected[\u0027export_location\u0027] \u003d ("},{"line_number":1554,"context_line":"                search_opts[\u0027export_location\u0027])"},{"line_number":1555,"context_line":""},{"line_number":1556,"context_line":"        if use_admin_context:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_9531495d","line":1553,"range":{"start_line":1553,"start_character":34,"end_line":1553,"end_character":49},"updated":"2017-06-16 02:55:36.000000000","message":"export_location_path","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":1550,"context_line":"        }"},{"line_number":1551,"context_line":"        if (api_version.APIVersionRequest(version) \u003e\u003d"},{"line_number":1552,"context_line":"                api_version.APIVersionRequest(\u00272.35\u0027)):"},{"line_number":1553,"context_line":"            search_opts_expected[\u0027export_location\u0027] \u003d ("},{"line_number":1554,"context_line":"                search_opts[\u0027export_location\u0027])"},{"line_number":1555,"context_line":""},{"line_number":1556,"context_line":"        if use_admin_context:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_5802c870","line":1553,"range":{"start_line":1553,"start_character":34,"end_line":1553,"end_character":49},"in_reply_to":"7f231b9d_9531495d","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"}],"manila_tempest_tests/tests/api/admin/test_share_instances.py":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eaae84eebff12827db1282e0f3efccefdb41ece0","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":107,"context_line":"            params\u003dfilters)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.assertEqual(len(share_instances), 1)"},{"line_number":110,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":111,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_efa5deb6","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":49},"updated":"2017-06-08 21:42:37.000000000","message":"self.assertEqual(1, len(share_instances))","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"018e498a9331e1ce03287910c1de7cec4a4dc609","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":107,"context_line":"            params\u003dfilters)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.assertEqual(len(share_instances), 1)"},{"line_number":110,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":111,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_55d2105e","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":49},"in_reply_to":"bf091321_efa5deb6","updated":"2017-06-09 02:34:09.000000000","message":"Done","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eaae84eebff12827db1282e0f3efccefdb41ece0","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":124,"context_line":"            params\u003dfilters)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.assertEqual(len(share_instances), 1)"},{"line_number":127,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":128,"context_line":"                         share_instances[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_afafe692","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":49},"updated":"2017-06-08 21:42:37.000000000","message":"Same","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"018e498a9331e1ce03287910c1de7cec4a4dc609","unresolved":false,"context_lines":[{"line_number":123,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":124,"context_line":"            params\u003dfilters)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.assertEqual(len(share_instances), 1)"},{"line_number":127,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":128,"context_line":"                         share_instances[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_35d79c4e","line":126,"range":{"start_line":126,"start_character":8,"end_line":126,"end_character":49},"in_reply_to":"bf091321_afafe692","updated":"2017-06-09 02:34:09.000000000","message":"Done","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":107,"context_line":"            params\u003dfilters)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":110,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":111,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_d54901b7","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":49},"updated":"2017-06-16 02:55:36.000000000","message":"this will not be true of versions \u003c2.35","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":106,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":107,"context_line":"            params\u003dfilters)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":110,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":111,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":112,"context_line":""}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_f84cf4c8","line":109,"range":{"start_line":109,"start_character":8,"end_line":109,"end_character":49},"in_reply_to":"7f231b9d_d54901b7","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":127,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":128,"context_line":"                         share_instances[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_b515659e","line":128,"range":{"start_line":128,"start_character":47,"end_line":128,"end_character":50},"updated":"2017-06-16 02:55:36.000000000","message":"Need negative tests","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                         \u0027expected %s, got %s.\u0027 % ("},{"line_number":94,"context_line":"                             si[\u0027id\u0027], expected_keys, actual_keys))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":97,"context_line":"    def test_list_share_instances_with_export_location_path(self):"},{"line_number":98,"context_line":"        share_instances_except \u003d ("},{"line_number":99,"context_line":"            self.shares_v2_client.get_instances_of_share("},{"line_number":100,"context_line":"                self.share[\u0027id\u0027]))"},{"line_number":101,"context_line":"        export_locations \u003d ("},{"line_number":102,"context_line":"            self.shares_v2_client.list_share_instance_export_locations("},{"line_number":103,"context_line":"                share_instances_except[0][\u0027id\u0027]))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        filters \u003d {\u0027export_location_path\u0027: export_locations[0][\u0027path\u0027]}"},{"line_number":106,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":107,"context_line":"            params\u003dfilters)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":110,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":111,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":114,"context_line":"    def test_list_share_instances_with_export_location_id(self):"},{"line_number":115,"context_line":"        share_instances_except \u003d ("},{"line_number":116,"context_line":"            self.shares_v2_client.get_instances_of_share("},{"line_number":117,"context_line":"                self.share[\u0027id\u0027]))"},{"line_number":118,"context_line":"        export_locations \u003d ("},{"line_number":119,"context_line":"            self.shares_v2_client.list_share_instance_export_locations("},{"line_number":120,"context_line":"                share_instances_except[0][\u0027id\u0027]))"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        filters \u003d {\u0027export_location_id\u0027: export_locations[0][\u0027id\u0027]}"},{"line_number":123,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":124,"context_line":"            params\u003dfilters)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":127,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":128,"context_line":"                         share_instances[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_951a69c9","line":128,"range":{"start_line":96,"start_character":1,"end_line":128,"end_character":50},"updated":"2017-06-16 02:55:36.000000000","message":"These two can be combined with ddt","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":93,"context_line":"                         \u0027expected %s, got %s.\u0027 % ("},{"line_number":94,"context_line":"                             si[\u0027id\u0027], expected_keys, actual_keys))"},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":97,"context_line":"    def test_list_share_instances_with_export_location_path(self):"},{"line_number":98,"context_line":"        share_instances_except \u003d ("},{"line_number":99,"context_line":"            self.shares_v2_client.get_instances_of_share("},{"line_number":100,"context_line":"                self.share[\u0027id\u0027]))"},{"line_number":101,"context_line":"        export_locations \u003d ("},{"line_number":102,"context_line":"            self.shares_v2_client.list_share_instance_export_locations("},{"line_number":103,"context_line":"                share_instances_except[0][\u0027id\u0027]))"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        filters \u003d {\u0027export_location_path\u0027: export_locations[0][\u0027path\u0027]}"},{"line_number":106,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":107,"context_line":"            params\u003dfilters)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":110,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":111,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":114,"context_line":"    def test_list_share_instances_with_export_location_id(self):"},{"line_number":115,"context_line":"        share_instances_except \u003d ("},{"line_number":116,"context_line":"            self.shares_v2_client.get_instances_of_share("},{"line_number":117,"context_line":"                self.share[\u0027id\u0027]))"},{"line_number":118,"context_line":"        export_locations \u003d ("},{"line_number":119,"context_line":"            self.shares_v2_client.list_share_instance_export_locations("},{"line_number":120,"context_line":"                share_instances_except[0][\u0027id\u0027]))"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        filters \u003d {\u0027export_location_id\u0027: export_locations[0][\u0027id\u0027]}"},{"line_number":123,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":124,"context_line":"            params\u003dfilters)"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":127,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":128,"context_line":"                         share_instances[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_58a1a845","line":128,"range":{"start_line":96,"start_character":1,"end_line":128,"end_character":50},"in_reply_to":"7f231b9d_951a69c9","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"        self.assertEqual(1, len(share_instances))"},{"line_number":127,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":128,"context_line":"                         share_instances[0][\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_a47771a0","line":128,"range":{"start_line":128,"start_character":47,"end_line":128,"end_character":50},"in_reply_to":"7f231b9d_b515659e","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"99135d2f1546fbade522ec6cd02f541ed067991a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":117,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @ddt.data(\u0027path\u0027, \u0027id\u0027)"},{"line_number":120,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":121,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"},{"line_number":122,"context_line":"    def test_list_share_instances_with_export_location_not_exist("},{"line_number":123,"context_line":"            self, export_location_type):"},{"line_number":124,"context_line":"        filters \u003d {"},{"line_number":125,"context_line":"            \u0027export_location_\u0027 + export_location_type: \u0027fake_not_exist\u0027,"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":128,"context_line":"            params\u003dfilters)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.assertEqual(0, len(share_instances))"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_f2418ca7","line":130,"range":{"start_line":119,"start_character":3,"end_line":130,"end_character":49},"updated":"2017-06-18 01:06:32.000000000","message":"Needs to be in manila_tempest_tests/tests/api/admin/test_share_snapshot_instances_negative.py","commit_id":"ab3fccfe90928e74ab57c227b2246c7a43265823"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"db07b5ad70cfe751695a6339bc921d83aece40f5","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        self.assertEqual(share_instances_except[0][\u0027id\u0027],"},{"line_number":117,"context_line":"                         share_instances[0][\u0027id\u0027])"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    @ddt.data(\u0027path\u0027, \u0027id\u0027)"},{"line_number":120,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":121,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"},{"line_number":122,"context_line":"    def test_list_share_instances_with_export_location_not_exist("},{"line_number":123,"context_line":"            self, export_location_type):"},{"line_number":124,"context_line":"        filters \u003d {"},{"line_number":125,"context_line":"            \u0027export_location_\u0027 + export_location_type: \u0027fake_not_exist\u0027,"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":128,"context_line":"            params\u003dfilters)"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"        self.assertEqual(0, len(share_instances))"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f231b9d_8c7117ab","line":130,"range":{"start_line":119,"start_character":3,"end_line":130,"end_character":49},"in_reply_to":"7f231b9d_f2418ca7","updated":"2017-06-19 01:39:05.000000000","message":"Done","commit_id":"ab3fccfe90928e74ab57c227b2246c7a43265823"}],"manila_tempest_tests/tests/api/admin/test_share_instances_negative.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"66670e99cbf4c20c8ec422ae389413a133551ecf","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Andrew Kerr"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_6c9a3bb9","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":28},"updated":"2017-06-19 01:56:26.000000000","message":"Please remove","commit_id":"e3b4c30c5986abe35f83a33ab82df453c3a6e245"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"8c4c26644c4f2317d4f145ca295bcba63b2b5d84","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Andrew Kerr"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_9c3386ab","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":28},"in_reply_to":"7f231b9d_6c9a3bb9","updated":"2017-06-19 06:16:23.000000000","message":"Done","commit_id":"e3b4c30c5986abe35f83a33ab82df453c3a6e245"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"66670e99cbf4c20c8ec422ae389413a133551ecf","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @ddt.data((\u0027path\u0027, \u00272.34\u0027), (\u0027id\u0027, \u00272.34\u0027))"},{"line_number":32,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":33,"context_line":"    def test_list_share_instances_with_export_location_and_invalid_version("},{"line_number":34,"context_line":"            self, export_location_type, version):"},{"line_number":35,"context_line":"        share_instances_except \u003d ("},{"line_number":36,"context_line":"            self.shares_v2_client.get_instances_of_share("},{"line_number":37,"context_line":"                self.share[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_acf17303","line":34,"range":{"start_line":34,"start_character":47,"end_line":34,"end_character":49},"updated":"2017-06-19 01:56:26.000000000","message":"You might want to add a note here as to what behavior this test is expecting, because some might find this confusing. \n\n# In API versions \u003cv2.35, querying the share instance API by export location\n# path or ID should have no effect. Those filters were supported from v2.35","commit_id":"e3b4c30c5986abe35f83a33ab82df453c3a6e245"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"8c4c26644c4f2317d4f145ca295bcba63b2b5d84","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    @ddt.data((\u0027path\u0027, \u00272.34\u0027), (\u0027id\u0027, \u00272.34\u0027))"},{"line_number":32,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":33,"context_line":"    def test_list_share_instances_with_export_location_and_invalid_version("},{"line_number":34,"context_line":"            self, export_location_type, version):"},{"line_number":35,"context_line":"        share_instances_except \u003d ("},{"line_number":36,"context_line":"            self.shares_v2_client.get_instances_of_share("},{"line_number":37,"context_line":"                self.share[\u0027id\u0027]))"}],"source_content_type":"text/x-python","patch_set":22,"id":"7f231b9d_7c266a6a","line":34,"range":{"start_line":34,"start_character":47,"end_line":34,"end_character":49},"in_reply_to":"7f231b9d_acf17303","updated":"2017-06-19 06:16:23.000000000","message":"Done","commit_id":"e3b4c30c5986abe35f83a33ab82df453c3a6e245"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d588aab7050bd88505c0bdd7809eb091e6d9fe9d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_aaea9c0b","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"updated":"2017-06-27 10:48:50.000000000","message":"Whose rights are reserved?","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"996cc1732301c4f60351a1ede8fd11ba438a0689","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_ea1e54b9","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"in_reply_to":"5f201791_aaea9c0b","updated":"2017-06-27 11:34:21.000000000","message":"Done","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"d588aab7050bd88505c0bdd7809eb091e6d9fe9d","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":42,"context_line":"            params\u003dfilters, version\u003dversion)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.assertGreater(len(share_instances), 0)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":47,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_8a348094","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":51},"updated":"2017-06-27 10:48:50.000000000","message":"Why do you expect 0 share instances? You say above that filters should not have any effect, but we created one share. So, we expect 1, not 0. If this test passes then we have bug.","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b3795f5e0c95078559a1e24ae2e6d2986137d937","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":42,"context_line":"            params\u003dfilters, version\u003dversion)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.assertGreater(len(share_instances), 0)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":47,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_2aa44ca5","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":51},"in_reply_to":"5f201791_8a348094","updated":"2017-06-27 10:56:05.000000000","message":"Sorry, missread. It is ok.","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"50c619c5eea54fab5c2b3affceca8d62a1e99364","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        share_instances \u003d self.shares_v2_client.list_share_instances("},{"line_number":42,"context_line":"            params\u003dfilters, version\u003dversion)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"        self.assertGreater(len(share_instances), 0)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":47,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_ca715846","line":44,"range":{"start_line":44,"start_character":8,"end_line":44,"end_character":51},"in_reply_to":"5f201791_8a348094","updated":"2017-06-27 10:54:17.000000000","message":"We expect \u003e 0 share instance.  It means we expect 1 or more share instances.","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"}],"manila_tempest_tests/tests/api/admin/test_shares_actions.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4c6bc484e0f13ba325910151cbd56402de109ae2","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        filters \u003d {\u0027export_location_id\u0027: export_locations[0][\u0027id\u0027]}"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        # list shares"},{"line_number":248,"context_line":"        shares \u003d self.shares_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # verify response"},{"line_number":251,"context_line":"        self.assertEqual(len(shares), 1)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_a9da49e6","line":248,"range":{"start_line":248,"start_character":22,"end_line":248,"end_character":35},"updated":"2017-06-08 17:26:32.000000000","message":"You use v1 API here. And the fact that it passes means you implemented backwards incompatible change.","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"018e498a9331e1ce03287910c1de7cec4a4dc609","unresolved":false,"context_lines":[{"line_number":245,"context_line":"        filters \u003d {\u0027export_location_id\u0027: export_locations[0][\u0027id\u0027]}"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        # list shares"},{"line_number":248,"context_line":"        shares \u003d self.shares_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # verify response"},{"line_number":251,"context_line":"        self.assertEqual(len(shares), 1)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_15f3780c","line":248,"range":{"start_line":248,"start_character":22,"end_line":248,"end_character":35},"in_reply_to":"bf091321_a9da49e6","updated":"2017-06-09 02:34:09.000000000","message":"Done","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eaae84eebff12827db1282e0f3efccefdb41ece0","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        shares \u003d self.shares_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # verify response"},{"line_number":251,"context_line":"        self.assertEqual(len(shares), 1)"},{"line_number":252,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_4f9e0a64","line":251,"range":{"start_line":251,"start_character":8,"end_line":251,"end_character":40},"updated":"2017-06-08 21:42:37.000000000","message":"self.assertEqual(1, len(shares))","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"018e498a9331e1ce03287910c1de7cec4a4dc609","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        shares \u003d self.shares_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # verify response"},{"line_number":251,"context_line":"        self.assertEqual(len(shares), 1)"},{"line_number":252,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_55e9f017","line":251,"range":{"start_line":251,"start_character":8,"end_line":251,"end_character":40},"in_reply_to":"bf091321_4f9e0a64","updated":"2017-06-09 02:34:09.000000000","message":"Done","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"eaae84eebff12827db1282e0f3efccefdb41ece0","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        shares \u003d self.shares_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # verify response"},{"line_number":266,"context_line":"        self.assertEqual(len(shares), 1)"},{"line_number":267,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_ef8efe2c","line":266,"updated":"2017-06-08 21:42:37.000000000","message":"Same","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"018e498a9331e1ce03287910c1de7cec4a4dc609","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        shares \u003d self.shares_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # verify response"},{"line_number":266,"context_line":"        self.assertEqual(len(shares), 1)"},{"line_number":267,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":14,"id":"bf091321_35ee7c22","line":266,"in_reply_to":"bf091321_ef8efe2c","updated":"2017-06-09 02:34:09.000000000","message":"Done","commit_id":"9ac0bbab79044e0391e701f068f00f79a729b6ec"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            self.assertEqual(filters[\u0027host\u0027], share[\u0027host\u0027])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":240,"context_line":"    def test_list_shares_with_detail_filter_by_export_location_id(self):"},{"line_number":241,"context_line":"        export_locations \u003d self.shares_v2_client.list_share_export_locations("},{"line_number":242,"context_line":"            self.shares[0][\u0027id\u0027])"},{"line_number":243,"context_line":"        if not isinstance(export_locations, (list, tuple, set)):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_b57a05ee","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":72},"updated":"2017-06-16 02:55:36.000000000","message":"Both of these can be combined with ddt","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":237,"context_line":"            self.assertEqual(filters[\u0027host\u0027], share[\u0027host\u0027])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":240,"context_line":"    def test_list_shares_with_detail_filter_by_export_location_id(self):"},{"line_number":241,"context_line":"        export_locations \u003d self.shares_v2_client.list_share_export_locations("},{"line_number":242,"context_line":"            self.shares[0][\u0027id\u0027])"},{"line_number":243,"context_line":"        if not isinstance(export_locations, (list, tuple, set)):"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_58488885","line":240,"range":{"start_line":240,"start_character":0,"end_line":240,"end_character":72},"in_reply_to":"7f231b9d_b57a05ee","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        shares \u003d self.shares_v2_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # verify response"},{"line_number":251,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":252,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_15541952","line":251,"range":{"start_line":251,"start_character":8,"end_line":251,"end_character":40},"updated":"2017-06-16 02:55:36.000000000","message":"This will not be true for versions \u003c2.35","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":248,"context_line":"        shares \u003d self.shares_v2_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":"        # verify response"},{"line_number":251,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":252,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_38614c06","line":251,"range":{"start_line":251,"start_character":8,"end_line":251,"end_character":40},"in_reply_to":"7f231b9d_15541952","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        shares \u003d self.shares_v2_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # verify response"},{"line_number":266,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":267,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_f54cfdc8","line":266,"range":{"start_line":266,"start_character":8,"end_line":266,"end_character":40},"updated":"2017-06-16 02:55:36.000000000","message":"same","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":263,"context_line":"        shares \u003d self.shares_v2_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        # verify response"},{"line_number":266,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":267,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_b832fc0e","line":266,"range":{"start_line":266,"start_character":8,"end_line":266,"end_character":40},"in_reply_to":"7f231b9d_f54cfdc8","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # verify response"},{"line_number":266,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":267,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":270,"context_line":"    @testtools.skipIf("},{"line_number":271,"context_line":"        not CONF.share.multitenancy_enabled, \"Only for multitenancy.\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_15265916","line":268,"range":{"start_line":268,"start_character":0,"end_line":268,"end_character":0},"updated":"2017-06-16 02:55:36.000000000","message":"please test the index API as well.","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        # verify response"},{"line_number":266,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":267,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":270,"context_line":"    @testtools.skipIf("},{"line_number":271,"context_line":"        not CONF.share.multitenancy_enabled, \"Only for multitenancy.\")"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f231b9d_98374000","line":268,"range":{"start_line":268,"start_character":0,"end_line":268,"end_character":0},"in_reply_to":"7f231b9d_15265916","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"168625db9df43cf4f159520d4443d2c1bd4e11af","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        for share in shares:"},{"line_number":239,"context_line":"            self.assertEqual(filters[\u0027host\u0027], share[\u0027host\u0027])"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"},{"line_number":242,"context_line":"    @ddt.data(\u0027path\u0027, \u0027id\u0027)"},{"line_number":243,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":244,"context_line":"    def test_list_shares_with_detail_filter_by_export_location("},{"line_number":245,"context_line":"            self, export_location_type):"},{"line_number":246,"context_line":"        export_locations \u003d self.shares_v2_client.list_share_export_locations("},{"line_number":247,"context_line":"            self.shares[0][\u0027id\u0027])"},{"line_number":248,"context_line":"        if not isinstance(export_locations, (list, tuple, set)):"},{"line_number":249,"context_line":"            export_locations \u003d (export_locations, )"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        filters \u003d {"},{"line_number":252,"context_line":"            \u0027export_location_\u0027 + export_location_type:"},{"line_number":253,"context_line":"                export_locations[0][export_location_type],"},{"line_number":254,"context_line":"        }"},{"line_number":255,"context_line":"        # list shares"},{"line_number":256,"context_line":"        shares \u003d self.shares_v2_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # verify response"},{"line_number":259,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":260,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"},{"line_number":263,"context_line":"    @ddt.data(\u0027path\u0027, \u0027id\u0027)"},{"line_number":264,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":265,"context_line":"    def test_list_shares_with_index_filter_by_export_location("},{"line_number":266,"context_line":"            self, export_location_type):"},{"line_number":267,"context_line":"        export_locations \u003d self.shares_v2_client.list_share_export_locations("},{"line_number":268,"context_line":"            self.shares[0][\u0027id\u0027])"},{"line_number":269,"context_line":"        if not isinstance(export_locations, (list, tuple, set)):"},{"line_number":270,"context_line":"            export_locations \u003d (export_locations, )"},{"line_number":271,"context_line":"        filters \u003d {"},{"line_number":272,"context_line":"            \u0027export_location_\u0027 + export_location_type:"},{"line_number":273,"context_line":"                export_locations[0][export_location_type],"},{"line_number":274,"context_line":"        }"},{"line_number":275,"context_line":"        # list shares"},{"line_number":276,"context_line":"        shares \u003d self.shares_v2_client.list_shares(params\u003dfilters)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        # verify response"},{"line_number":279,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":280,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":283,"context_line":"    @testtools.skipIf("}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_cab27849","line":280,"range":{"start_line":241,"start_character":4,"end_line":280,"end_character":63},"updated":"2017-06-27 10:43:08.000000000","message":"These 2 are almost the same. So, they should be combined. Also, need to run this test on 2.35 always + latest microversion. \n\n\nAlso, need to add negative tests that verify search with invalid options and old microversion (border one is a must).","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"996cc1732301c4f60351a1ede8fd11ba438a0689","unresolved":false,"context_lines":[{"line_number":238,"context_line":"        for share in shares:"},{"line_number":239,"context_line":"            self.assertEqual(filters[\u0027host\u0027], share[\u0027host\u0027])"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"},{"line_number":242,"context_line":"    @ddt.data(\u0027path\u0027, \u0027id\u0027)"},{"line_number":243,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":244,"context_line":"    def test_list_shares_with_detail_filter_by_export_location("},{"line_number":245,"context_line":"            self, export_location_type):"},{"line_number":246,"context_line":"        export_locations \u003d self.shares_v2_client.list_share_export_locations("},{"line_number":247,"context_line":"            self.shares[0][\u0027id\u0027])"},{"line_number":248,"context_line":"        if not isinstance(export_locations, (list, tuple, set)):"},{"line_number":249,"context_line":"            export_locations \u003d (export_locations, )"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"        filters \u003d {"},{"line_number":252,"context_line":"            \u0027export_location_\u0027 + export_location_type:"},{"line_number":253,"context_line":"                export_locations[0][export_location_type],"},{"line_number":254,"context_line":"        }"},{"line_number":255,"context_line":"        # list shares"},{"line_number":256,"context_line":"        shares \u003d self.shares_v2_client.list_shares_with_detail(params\u003dfilters)"},{"line_number":257,"context_line":""},{"line_number":258,"context_line":"        # verify response"},{"line_number":259,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":260,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    @base.skip_if_microversion_lt(\"2.35\")"},{"line_number":263,"context_line":"    @ddt.data(\u0027path\u0027, \u0027id\u0027)"},{"line_number":264,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":265,"context_line":"    def test_list_shares_with_index_filter_by_export_location("},{"line_number":266,"context_line":"            self, export_location_type):"},{"line_number":267,"context_line":"        export_locations \u003d self.shares_v2_client.list_share_export_locations("},{"line_number":268,"context_line":"            self.shares[0][\u0027id\u0027])"},{"line_number":269,"context_line":"        if not isinstance(export_locations, (list, tuple, set)):"},{"line_number":270,"context_line":"            export_locations \u003d (export_locations, )"},{"line_number":271,"context_line":"        filters \u003d {"},{"line_number":272,"context_line":"            \u0027export_location_\u0027 + export_location_type:"},{"line_number":273,"context_line":"                export_locations[0][export_location_type],"},{"line_number":274,"context_line":"        }"},{"line_number":275,"context_line":"        # list shares"},{"line_number":276,"context_line":"        shares \u003d self.shares_v2_client.list_shares(params\u003dfilters)"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        # verify response"},{"line_number":279,"context_line":"        self.assertEqual(1, len(shares))"},{"line_number":280,"context_line":"        self.assertEqual(self.shares[0][\u0027id\u0027], shares[0][\u0027id\u0027])"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":283,"context_line":"    @testtools.skipIf("}],"source_content_type":"text/x-python","patch_set":40,"id":"5f201791_6596f740","line":280,"range":{"start_line":241,"start_character":4,"end_line":280,"end_character":63},"in_reply_to":"5f201791_cab27849","updated":"2017-06-27 11:34:21.000000000","message":"There are different APIs, we should separate it.\n\n\"Also, need to run this test on 2.35 always + latest microversion.\"\n--- we start it from 2.35  and the latest version is 2.35 now\nAdded some negative tests that verify search with invalid options and old microversion.","commit_id":"617158a207409a9621d23bdd5708a51ac8597664"}],"manila_tempest_tests/tests/api/test_shares_actions_negative.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"7996cd33f310418eaddfc13b4d010cdbc0644462","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                          new_size)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":141,"context_line":"    @ddt.data({\u0027export_location_type\u0027: \u0027path\u0027, \u0027version\u0027: \u00272.34\u0027},"},{"line_number":142,"context_line":"              {\u0027export_location_type\u0027: \u0027id\u0027, \u0027version\u0027: \u00272.34\u0027})"},{"line_number":143,"context_line":"    @ddt.unpack"},{"line_number":144,"context_line":"    def test_list_shares_with_export_location_and_invalid_version("},{"line_number":145,"context_line":"            self, export_location_type, version):"}],"source_content_type":"text/x-python","patch_set":42,"id":"3f1d235d_1594bc8a","line":142,"range":{"start_line":141,"start_character":14,"end_line":142,"end_character":64},"updated":"2017-06-29 15:51:30.000000000","message":"Need to check that microversion 2.34 is supported.","commit_id":"a13dd858081dbafb7e102677f66bc631b67a2dac"}],"releasenotes/notes/add-export-location-filter-92ead37b728db654.yaml":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"1f6b2d43e130fe9c1aa4e941c84477a39d4f00da","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Share and share instance list API will accept new query string parameter"},{"line_number":4,"context_line":"    \u0027export_location\u0027. It can pass path and id of export_location to"},{"line_number":5,"context_line":"    retrieve shares filtered."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7f231b9d_903c02c0","line":3,"range":{"start_line":3,"start_character":34,"end_line":3,"end_character":37},"updated":"2017-06-14 03:01:20.000000000","message":"APIs","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"97cea1fd739e2461f2d42df04f5405ac3f92d91c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Share and share instance list API will accept new query string parameter"},{"line_number":4,"context_line":"    \u0027export_location\u0027. It can pass path and id of export_location to"},{"line_number":5,"context_line":"    retrieve shares filtered."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"7f231b9d_ff4f818f","line":3,"range":{"start_line":3,"start_character":34,"end_line":3,"end_character":37},"in_reply_to":"7f231b9d_903c02c0","updated":"2017-06-14 07:45:58.000000000","message":"Done","commit_id":"b7a572e87e691b8de178247d40f1d59a797a4cc4"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Share and share instance list APIs will accept new query string parameters"},{"line_number":4,"context_line":"    \u0027export_location_id\u0027 and \u0027export_location_path\u0027. It can pass path and id"},{"line_number":5,"context_line":"    of export_location to retrieve shares filtered."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7f231b9d_95cdc932","line":3,"range":{"start_line":3,"start_character":39,"end_line":3,"end_character":43},"updated":"2017-06-16 02:55:36.000000000","message":"can","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Share and share instance list APIs will accept new query string parameters"},{"line_number":4,"context_line":"    \u0027export_location_id\u0027 and \u0027export_location_path\u0027. It can pass path and id"},{"line_number":5,"context_line":"    of export_location to retrieve shares filtered."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7f231b9d_e94c24c9","line":3,"range":{"start_line":3,"start_character":39,"end_line":3,"end_character":43},"in_reply_to":"7f231b9d_95cdc932","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"8c70fedce6cede7d4467a47fabd22640a87b8c8e","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Share and share instance list APIs will accept new query string parameters"},{"line_number":4,"context_line":"    \u0027export_location_id\u0027 and \u0027export_location_path\u0027. It can pass path and id"},{"line_number":5,"context_line":"    of export_location to retrieve shares filtered."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7f231b9d_d5dea1d8","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":51},"updated":"2017-06-16 02:55:36.000000000","message":"suggest a minor rewrite:\n\n\n\n It is now possible to filter shares and share instances with\n export location ID or path.","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"f58fff6131bd55fb0417915222db30055b092b28","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Share and share instance list APIs will accept new query string parameters"},{"line_number":4,"context_line":"    \u0027export_location_id\u0027 and \u0027export_location_path\u0027. It can pass path and id"},{"line_number":5,"context_line":"    of export_location to retrieve shares filtered."}],"source_content_type":"text/x-yaml","patch_set":17,"id":"7f231b9d_c94968b7","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":51},"in_reply_to":"7f231b9d_d5dea1d8","updated":"2017-06-16 06:38:59.000000000","message":"Done","commit_id":"8a4679294125ef49b39d96db6d1e2a6be567c32d"}]}
