)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6491,"name":"xing-yang","email":"xingyang105@gmail.com","username":"xing-yang"},"change_message_id":"ecca4bb9eef806446d3096eecf0527e692cf725c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- Register availability zones API as core API using old link."},{"line_number":11,"context_line":"- Remove extension code for availability zones."},{"line_number":12,"context_line":"- Leave rename of API url for future update which will be done with"},{"line_number":13,"context_line":"  bump of microversion after port of all extensions to core API."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partially implements bp ext-to-core"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3a29b11f_538a7e1c","line":13,"updated":"2015-10-21 01:05:08.000000000","message":"Will the old API url,  i.e., \u0027os-availability-zone\u0027, still be supported after rename?","commit_id":"e4428f5e6c324a674c76f81340e1c94a956b4c6c"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"058043b407d2de756b8d59f1a9f6cd85fbbf3a87","unresolved":false,"context_lines":[{"line_number":10,"context_line":"- Register availability zones API as core API using old link."},{"line_number":11,"context_line":"- Remove extension code for availability zones."},{"line_number":12,"context_line":"- Leave rename of API url for future update which will be done with"},{"line_number":13,"context_line":"  bump of microversion after port of all extensions to core API."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Partially implements bp ext-to-core"},{"line_number":16,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"3a29b11f_04f83b7a","line":13,"in_reply_to":"3a29b11f_538a7e1c","updated":"2015-10-21 05:56:41.000000000","message":"I guess we should restrict it for newer microversions. So, we will support old one for 2.6- microversions and new one for 2.7+.","commit_id":"e4428f5e6c324a674c76f81340e1c94a956b4c6c"}],"etc/manila/policy.json":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b596d697fef317d797ecdcabc167d44e88b2b317","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    \"admin_api\": \"is_admin:True\","},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    \"availability_zone:index\": \"\","},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    \"share:create\": \"\","},{"line_number":11,"context_line":"    \"share:delete\": \"rule:default\","}],"source_content_type":"application/json","patch_set":9,"id":"3a29b11f_c965f7e1","line":8,"updated":"2015-10-18 20:35:42.000000000","message":"what\u0027s the difference between this and rule:default? If they are the same, we could use rule:default for consistency/explicitness.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"dbb8bd09f525f17b447500d3469cae81f78f7157","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    \"admin_api\": \"is_admin:True\","},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    \"availability_zone:index\": \"\","},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    \"share:create\": \"\","},{"line_number":11,"context_line":"    \"share:delete\": \"rule:default\","}],"source_content_type":"application/json","patch_set":9,"id":"3a29b11f_dc8608b9","line":8,"in_reply_to":"3a29b11f_c965f7e1","updated":"2015-10-19 09:04:36.000000000","message":"This file already contains both. So, consistency can be achieved only by update of existing file, that is out of scope for this commit.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"}],"manila/api/contrib/availability_zones.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"256920f370a607447d113c7232abe100f76fbfcf","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class Controller(wsgi.Controller):"},{"line_number":24,"context_line":"    def index(self, req):"},{"line_number":25,"context_line":"        \"\"\"Describe all known availability zones.\"\"\""},{"line_number":26,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":27,"context_line":"        authorize(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a29b11f_71b021de","line":24,"updated":"2015-10-19 16:52:32.000000000","message":"Try adding the following decorator above this line.  That should let the extension continue working for 1.0 and 2.0 - 2.6 versions only.  Anyone using 2.7 or higher would have to use the core API endpoint.\n\n    @wsgi.Controller.api_version(None, max_ver\u003d\u00272.6\u0027)","commit_id":"ea2c9b67411b9661d4083eb5f52edc800f6c42cd"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ed6e8320721b6beb8251b73e8cf86cc86ea64276","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class Controller(wsgi.Controller):"},{"line_number":24,"context_line":"    def index(self, req):"},{"line_number":25,"context_line":"        \"\"\"Describe all known availability zones.\"\"\""},{"line_number":26,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":27,"context_line":"        authorize(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a29b11f_94bb6b72","line":24,"in_reply_to":"3a29b11f_71b021de","updated":"2015-10-19 17:07:31.000000000","message":"Done","commit_id":"ea2c9b67411b9661d4083eb5f52edc800f6c42cd"}],"manila/api/views/availability_zones.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"b596d697fef317d797ecdcabc167d44e88b2b317","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    _collection_name \u003d \"availability_zones\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _single_view(self, availability_zone):"},{"line_number":24,"context_line":"        \"\"\"Create availability zone view as a dict.\"\"\""},{"line_number":25,"context_line":"        keys \u003d (\u0027id\u0027, \u0027name\u0027, \u0027created_at\u0027, \u0027updated_at\u0027)"},{"line_number":26,"context_line":"        return {key: availability_zone.get(key) for key in keys}"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_89b61f3c","line":23,"updated":"2015-10-18 20:35:42.000000000","message":"we\u0027ve called this sorta function \u0027summary\u0027 or \u0027detail\u0027 in other ViewBuilder classes.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"dbb8bd09f525f17b447500d3469cae81f78f7157","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    _collection_name \u003d \"availability_zones\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _single_view(self, availability_zone):"},{"line_number":24,"context_line":"        \"\"\"Create availability zone view as a dict.\"\"\""},{"line_number":25,"context_line":"        keys \u003d (\u0027id\u0027, \u0027name\u0027, \u0027created_at\u0027, \u0027updated_at\u0027)"},{"line_number":26,"context_line":"        return {key: availability_zone.get(key) for key in keys}"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_bc6d4c34","line":23,"in_reply_to":"3a29b11f_89b61f3c","updated":"2015-10-19 09:04:36.000000000","message":"Availability zones do not have neither summary nor detail. It has only one kind of listing.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4f8a59d5402a345aa62b76adbcacbb46946080c3","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    _collection_name \u003d \"availability_zones\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _single_view(self, availability_zone):"},{"line_number":24,"context_line":"        \"\"\"Create availability zone view as a dict.\"\"\""},{"line_number":25,"context_line":"        keys \u003d (\u0027id\u0027, \u0027name\u0027, \u0027created_at\u0027, \u0027updated_at\u0027)"},{"line_number":26,"context_line":"        return {key: availability_zone.get(key) for key in keys}"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_d10a55d2","line":23,"in_reply_to":"3a29b11f_a449a3d2","updated":"2015-10-19 16:36:58.000000000","message":"Done","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"c346bbf967ddd5fffdf7c941893946a89393d47d","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    _collection_name \u003d \"availability_zones\""},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"    def _single_view(self, availability_zone):"},{"line_number":24,"context_line":"        \"\"\"Create availability zone view as a dict.\"\"\""},{"line_number":25,"context_line":"        keys \u003d (\u0027id\u0027, \u0027name\u0027, \u0027created_at\u0027, \u0027updated_at\u0027)"},{"line_number":26,"context_line":"        return {key: availability_zone.get(key) for key in keys}"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_a449a3d2","line":23,"in_reply_to":"3a29b11f_bc6d4c34","updated":"2015-10-19 15:35:34.000000000","message":"I like the consistency that Goutham proposes.  I think I would have used either \u0027summary\u0027 or \u0027detail\u0027, whichever is most appropriate.  Then, if we ever need the other flavor, it\u0027s obvious how to add it.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"}],"manila/tests/api/contrib/test_availability_zones.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"c346bbf967ddd5fffdf7c941893946a89393d47d","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_index(self):"},{"line_number":30,"context_line":"        fake_az \u003d [{"},{"line_number":31,"context_line":"            \"id\": \"fake_id\", \"name\": \"fake_name\","},{"line_number":32,"context_line":"            \"created_at\": \"fake_created_at\", \"updated_at\": \"fake_updated_at\","},{"line_number":33,"context_line":"            \"redundant_key\": \"redundant_value\", \"deleted\": \"False\","},{"line_number":34,"context_line":"        }]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_045c174a","line":31,"updated":"2015-10-19 15:35:34.000000000","message":"The Hacking guide says this dict should be split with newlines.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4f8a59d5402a345aa62b76adbcacbb46946080c3","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_index(self):"},{"line_number":30,"context_line":"        fake_az \u003d [{"},{"line_number":31,"context_line":"            \"id\": \"fake_id\", \"name\": \"fake_name\","},{"line_number":32,"context_line":"            \"created_at\": \"fake_created_at\", \"updated_at\": \"fake_updated_at\","},{"line_number":33,"context_line":"            \"redundant_key\": \"redundant_value\", \"deleted\": \"False\","},{"line_number":34,"context_line":"        }]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_1ed9bf21","line":31,"in_reply_to":"3a29b11f_045c174a","updated":"2015-10-19 16:36:58.000000000","message":"Done","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"}],"manila/tests/api/v1/test_availability_zones.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"c346bbf967ddd5fffdf7c941893946a89393d47d","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_index_2_dot_7(self):"},{"line_number":35,"context_line":"        azs \u003d ["},{"line_number":36,"context_line":"            {\"id\": \"fake_id1\", \"name\": \"fake_name1\","},{"line_number":37,"context_line":"             \"created_at\": \"fake_created_at\", \"updated_at\": \"fake_updated_at\"},"},{"line_number":38,"context_line":"            {\"id\": \"fake_id2\", \"name\": \"fake_name2\","},{"line_number":39,"context_line":"             \"created_at\": \"fake_created_at\", \"updated_at\": \"fake_updated_at\","}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_aaaacdd2","line":36,"updated":"2015-10-19 15:35:34.000000000","message":"These should also be unwrapped.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4f8a59d5402a345aa62b76adbcacbb46946080c3","unresolved":false,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def test_index_2_dot_7(self):"},{"line_number":35,"context_line":"        azs \u003d ["},{"line_number":36,"context_line":"            {\"id\": \"fake_id1\", \"name\": \"fake_name1\","},{"line_number":37,"context_line":"             \"created_at\": \"fake_created_at\", \"updated_at\": \"fake_updated_at\"},"},{"line_number":38,"context_line":"            {\"id\": \"fake_id2\", \"name\": \"fake_name2\","},{"line_number":39,"context_line":"             \"created_at\": \"fake_created_at\", \"updated_at\": \"fake_updated_at\","}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_de090797","line":36,"in_reply_to":"3a29b11f_aaaacdd2","updated":"2015-10-19 16:36:58.000000000","message":"Done","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"}],"manila_tempest_tests/tests/api/test_availability_zones.py":[{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"c346bbf967ddd5fffdf7c941893946a89393d47d","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @test.attr(type\u003d[\"smoke\", \"gate\"])"},{"line_number":45,"context_line":"    def test_list_availability_zones_extension(self):"},{"line_number":46,"context_line":"        # NOTE(vponomaryov): remove this test with removal of availability zone"},{"line_number":47,"context_line":"        # extension."},{"line_number":48,"context_line":"        azs \u003d self.shares_client.list_availability_zones()"},{"line_number":49,"context_line":"        self._list_availability_zones_assertions(azs)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_6ae59507","line":46,"updated":"2015-10-19 15:35:34.000000000","message":"I wonder if we could use a more rigorous mechanism of tagging tests that should be removed when the extensions are removed.  Any ideas?","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"4f8a59d5402a345aa62b76adbcacbb46946080c3","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @test.attr(type\u003d[\"smoke\", \"gate\"])"},{"line_number":45,"context_line":"    def test_list_availability_zones_extension(self):"},{"line_number":46,"context_line":"        # NOTE(vponomaryov): remove this test with removal of availability zone"},{"line_number":47,"context_line":"        # extension."},{"line_number":48,"context_line":"        azs \u003d self.shares_client.list_availability_zones()"},{"line_number":49,"context_line":"        self._list_availability_zones_assertions(azs)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_de8d8732","line":46,"in_reply_to":"3a29b11f_6ae59507","updated":"2015-10-19 16:36:58.000000000","message":"We will be forced to remove such tests as they will fail with removal of appropriate functionality.","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"},{"author":{"_account_id":11865,"name":"Clinton Knight","email":"cknight@netapp.com","username":"cknight"},"change_message_id":"88d2e7d82fa598b5a867bfcd827f700c8111abb2","unresolved":false,"context_lines":[{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @test.attr(type\u003d[\"smoke\", \"gate\"])"},{"line_number":45,"context_line":"    def test_list_availability_zones_extension(self):"},{"line_number":46,"context_line":"        # NOTE(vponomaryov): remove this test with removal of availability zone"},{"line_number":47,"context_line":"        # extension."},{"line_number":48,"context_line":"        azs \u003d self.shares_client.list_availability_zones()"},{"line_number":49,"context_line":"        self._list_availability_zones_assertions(azs)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a29b11f_d1c1f5e5","line":46,"in_reply_to":"3a29b11f_de8d8732","updated":"2015-10-19 16:47:28.000000000","message":"OK, fair enough!","commit_id":"984cbb67e85474d92a39971895bdb3bc95ffb0ea"}]}
