)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"c661ad86d6cbe08b59518068745e4a7def84b04d","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Partially-implements: bp fix-and-improve-access-rules"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ic702c0374c4e220553d833dfea167ed8eb38e45a"},{"line_number":21,"context_line":"Depends-On: Ic25e63215b5ba723cbc8cab7c51789c698e76f28"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5a3905b3_f2927d9e","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":53},"updated":"2017-01-20 15:56:41.000000000","message":"This change has merged so the Depends-On: should be removed.","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e3cead51e761a493c4f713ab997c219faeea2e9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"Partially-implements: bp fix-and-improve-access-rules"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: Ic702c0374c4e220553d833dfea167ed8eb38e45a"},{"line_number":21,"context_line":"Depends-On: Ic25e63215b5ba723cbc8cab7c51789c698e76f28"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a461143_d32be6e9","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":53},"in_reply_to":"5a3905b3_f2927d9e","updated":"2017-01-26 20:04:40.000000000","message":"Done","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"}],"manila_tempest_tests/tests/api/base.py":[{"author":{"_account_id":13998,"name":"Daniel Gonzalez Nothnagel","email":"daniel.gonzalez.nothnagel@sap.com","username":"dgonzalez"},"change_message_id":"20b3bdd6feea8d4036adad10c5379790f290f71c","unresolved":false,"context_lines":[{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        while not all(d[\"available\"] for d in data):"},{"line_number":495,"context_line":"            for d in data:"},{"line_number":496,"context_line":"                if d[\u0027wait_for_status\u0027]:"},{"line_number":497,"context_line":"                    if d[\"available\"]:"},{"line_number":498,"context_line":"                        continue"},{"line_number":499,"context_line":"                    client \u003d d[\"kwargs\"][\"client\"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"da6895a0_7c51ec0d","line":496,"range":{"start_line":496,"start_character":21,"end_line":496,"end_character":38},"updated":"2016-10-25 14:01:37.000000000","message":"Just a minor nit: It would look better if you used \" instead of \u0027 here to be consistent  with the other code here.","commit_id":"52bf2593fa90aa9f7323169ec06e8474e5f70272"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"273c5c2a954b25fdee7797ded3b6298b85da2bfb","unresolved":false,"context_lines":[{"line_number":493,"context_line":""},{"line_number":494,"context_line":"        while not all(d[\"available\"] for d in data):"},{"line_number":495,"context_line":"            for d in data:"},{"line_number":496,"context_line":"                if d[\u0027wait_for_status\u0027]:"},{"line_number":497,"context_line":"                    if d[\"available\"]:"},{"line_number":498,"context_line":"                        continue"},{"line_number":499,"context_line":"                    client \u003d d[\"kwargs\"][\"client\"]"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a629dbe_72e131fe","line":496,"range":{"start_line":496,"start_character":21,"end_line":496,"end_character":38},"in_reply_to":"da6895a0_7c51ec0d","updated":"2016-11-08 16:36:52.000000000","message":"Done","commit_id":"52bf2593fa90aa9f7323169ec06e8474e5f70272"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"80a36d1416f34c1d617b57fb02a826cd29db767e","unresolved":false,"context_lines":[{"line_number":519,"context_line":"                                    params\u003d{\"consistency_group_id\": cg_id})"},{"line_number":520,"context_line":"                                client.wait_for_resource_deletion("},{"line_number":521,"context_line":"                                    share_id\u003dshare_id)"},{"line_number":522,"context_line":"                            d[\"share\"] \u003d cls._create_share("},{"line_number":523,"context_line":"                                *d[\"args\"], **d[\"kwargs\"])"},{"line_number":524,"context_line":"                        else:"},{"line_number":525,"context_line":"                            raise"},{"line_number":526,"context_line":"                else:"},{"line_number":527,"context_line":"                    d[\"available\"] \u003d True"},{"line_number":528,"context_line":""},{"line_number":529,"context_line":"        return [d[\"share\"] for d in data]"},{"line_number":530,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a71b18c_610804db","line":527,"range":{"start_line":522,"start_character":16,"end_line":527,"end_character":41},"updated":"2016-12-06 10:44:43.000000000","message":"Better to make separate check to avoid such big change just because of changed indentation:\n\n\"\"\"\nif d[\u0027wait_for_status\u0027]:\n    d[\"available\"] \u003d True\n\"\"\"\n\nThen old code will work just fine:\n\n\"\"\"\nif d[\"available\"]:\n    continue\n\"\"\"\n\nSo, this file change should have only 4 new lines.","commit_id":"52bf2593fa90aa9f7323169ec06e8474e5f70272"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d4ad64cd350a491d1f9b2126133b5bdd8ef3fa","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        return replica"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    def _get_access_rule_data_from_config(self):"},{"line_number":712,"context_line":"        \"\"\"Get the first available access type/to combination from config"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"        This method opportunistically picks the first configured protocol"},{"line_number":715,"context_line":"        to create the share. Do not use this method in tests where you need"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_46c6fa9a","line":712,"range":{"start_line":712,"start_character":72,"end_line":712,"end_character":73},"updated":"2017-01-30 10:39:06.000000000","message":"period","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a61b25301a597f0dd1fff4645760cfc3e715c5c9","unresolved":false,"context_lines":[{"line_number":709,"context_line":"        return replica"},{"line_number":710,"context_line":""},{"line_number":711,"context_line":"    def _get_access_rule_data_from_config(self):"},{"line_number":712,"context_line":"        \"\"\"Get the first available access type/to combination from config"},{"line_number":713,"context_line":""},{"line_number":714,"context_line":"        This method opportunistically picks the first configured protocol"},{"line_number":715,"context_line":"        to create the share. Do not use this method in tests where you need"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_f75cd24c","line":712,"range":{"start_line":712,"start_character":72,"end_line":712,"end_character":73},"in_reply_to":"3a461143_46c6fa9a","updated":"2017-01-31 02:03:20.000000000","message":"Let\u0027s make a hacking rule for this.","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d4ad64cd350a491d1f9b2126133b5bdd8ef3fa","unresolved":false,"context_lines":[{"line_number":725,"context_line":"            access_to \u003d CONF.share.username_for_user_rules"},{"line_number":726,"context_line":"        elif protocol in CONF.share.enable_cert_rules_for_protocols:"},{"line_number":727,"context_line":"            access_type \u003d \"cert\""},{"line_number":728,"context_line":"            access_to \u003d \"client3.com\""},{"line_number":729,"context_line":"        elif protocol in CONF.share.enable_cephx_rules_for_protocols:"},{"line_number":730,"context_line":"            access_type \u003d \"cephx\""},{"line_number":731,"context_line":"            access_to \u003d \"eve\""},{"line_number":732,"context_line":"        else:"},{"line_number":733,"context_line":"            message \u003d \"Unrecognized protocol and access rules configuration.\""},{"line_number":734,"context_line":"            raise self.skipException(message)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_664a1628","line":731,"range":{"start_line":728,"start_character":24,"end_line":731,"end_character":29},"updated":"2017-01-30 10:39:06.000000000","message":"shouldn\u0027t these be configurable?","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"9273d104a55725fdbffb58dcd109cf6c0437d25b","unresolved":false,"context_lines":[{"line_number":725,"context_line":"            access_to \u003d CONF.share.username_for_user_rules"},{"line_number":726,"context_line":"        elif protocol in CONF.share.enable_cert_rules_for_protocols:"},{"line_number":727,"context_line":"            access_type \u003d \"cert\""},{"line_number":728,"context_line":"            access_to \u003d \"client3.com\""},{"line_number":729,"context_line":"        elif protocol in CONF.share.enable_cephx_rules_for_protocols:"},{"line_number":730,"context_line":"            access_type \u003d \"cephx\""},{"line_number":731,"context_line":"            access_to \u003d \"eve\""},{"line_number":732,"context_line":"        else:"},{"line_number":733,"context_line":"            message \u003d \"Unrecognized protocol and access rules configuration.\""},{"line_number":734,"context_line":"            raise self.skipException(message)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_a9185176","line":731,"range":{"start_line":728,"start_character":24,"end_line":731,"end_character":29},"in_reply_to":"3a461143_664a1628","updated":"2017-01-30 11:13:06.000000000","message":"It is current approach for existing tests, I think it is ok to follow for the moment:\n\nhttps://github.com/openstack/manila/blob/ac260f6a/manila_tempest_tests/tests/api/test_rules_negative.py#L320-L334","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"ef576052cd225d4109c403bfb3fdf7bd6d9af91c","unresolved":false,"context_lines":[{"line_number":725,"context_line":"            access_to \u003d CONF.share.username_for_user_rules"},{"line_number":726,"context_line":"        elif protocol in CONF.share.enable_cert_rules_for_protocols:"},{"line_number":727,"context_line":"            access_type \u003d \"cert\""},{"line_number":728,"context_line":"            access_to \u003d \"client3.com\""},{"line_number":729,"context_line":"        elif protocol in CONF.share.enable_cephx_rules_for_protocols:"},{"line_number":730,"context_line":"            access_type \u003d \"cephx\""},{"line_number":731,"context_line":"            access_to \u003d \"eve\""},{"line_number":732,"context_line":"        else:"},{"line_number":733,"context_line":"            message \u003d \"Unrecognized protocol and access rules configuration.\""},{"line_number":734,"context_line":"            raise self.skipException(message)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_ac893428","line":731,"range":{"start_line":728,"start_character":24,"end_line":731,"end_character":29},"in_reply_to":"3a461143_a9185176","updated":"2017-01-30 16:12:50.000000000","message":"if any value is valid for those tests, we could randomize them","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a61b25301a597f0dd1fff4645760cfc3e715c5c9","unresolved":false,"context_lines":[{"line_number":725,"context_line":"            access_to \u003d CONF.share.username_for_user_rules"},{"line_number":726,"context_line":"        elif protocol in CONF.share.enable_cert_rules_for_protocols:"},{"line_number":727,"context_line":"            access_type \u003d \"cert\""},{"line_number":728,"context_line":"            access_to \u003d \"client3.com\""},{"line_number":729,"context_line":"        elif protocol in CONF.share.enable_cephx_rules_for_protocols:"},{"line_number":730,"context_line":"            access_type \u003d \"cephx\""},{"line_number":731,"context_line":"            access_to \u003d \"eve\""},{"line_number":732,"context_line":"        else:"},{"line_number":733,"context_line":"            message \u003d \"Unrecognized protocol and access rules configuration.\""},{"line_number":734,"context_line":"            raise self.skipException(message)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_d7619606","line":731,"range":{"start_line":728,"start_character":24,"end_line":731,"end_character":29},"in_reply_to":"3a461143_ac893428","updated":"2017-01-31 02:03:20.000000000","message":"An optimization we can consider for later, when we create more rules. We only ever apply one rule like this per share.","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"9273d104a55725fdbffb58dcd109cf6c0437d25b","unresolved":false,"context_lines":[{"line_number":730,"context_line":"            access_type \u003d \"cephx\""},{"line_number":731,"context_line":"            access_to \u003d \"eve\""},{"line_number":732,"context_line":"        else:"},{"line_number":733,"context_line":"            message \u003d \"Unrecognized protocol and access rules configuration.\""},{"line_number":734,"context_line":"            raise self.skipException(message)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"        return access_type, access_to"},{"line_number":737,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_49436d42","line":734,"range":{"start_line":733,"start_character":12,"end_line":734,"end_character":45},"updated":"2017-01-30 11:13:06.000000000","message":"Actually, we should never hit this exception. If we did, then we have bug in code, not wrong configuration.","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"a61b25301a597f0dd1fff4645760cfc3e715c5c9","unresolved":false,"context_lines":[{"line_number":730,"context_line":"            access_type \u003d \"cephx\""},{"line_number":731,"context_line":"            access_to \u003d \"eve\""},{"line_number":732,"context_line":"        else:"},{"line_number":733,"context_line":"            message \u003d \"Unrecognized protocol and access rules configuration.\""},{"line_number":734,"context_line":"            raise self.skipException(message)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"        return access_type, access_to"},{"line_number":737,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_7750e232","line":734,"range":{"start_line":733,"start_character":12,"end_line":734,"end_character":45},"in_reply_to":"3a461143_49436d42","updated":"2017-01-31 02:03:20.000000000","message":"isn\u0027t self.shares_v2_client.share_protocol the first configured protocol?\n\nso isn\u0027t it possible that the rest of the config options referenced here are empty or misconfigured?","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"}],"manila_tempest_tests/tests/api/test_replication.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"028ecb7ad54a9bf473fd061818b14b116a4908b7","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        share \u003d self.create_shares([self.creation_data])[0]"},{"line_number":242,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":243,"context_line":"            share[\"id\"])[0]"},{"line_number":244,"context_line":"        # NOTE(Yogi1): Cleanup needs to be disabled for replica that is"},{"line_number":245,"context_line":"        # being promoted since it will become the \u0027primary\u0027/\u0027active\u0027 replica."},{"line_number":246,"context_line":"        self._verify_in_sync_replica_promotion(share, original_replica)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_076fc7c5","line":245,"range":{"start_line":244,"start_character":8,"end_line":245,"end_character":77},"updated":"2016-10-25 03:20:33.000000000","message":"this comment could be moved into _verify_in_sync_replica_promotion","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"0a6d91e20c1a042597693098d2cad417f1c4d4bb","unresolved":false,"context_lines":[{"line_number":241,"context_line":"        share \u003d self.create_shares([self.creation_data])[0]"},{"line_number":242,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":243,"context_line":"            share[\"id\"])[0]"},{"line_number":244,"context_line":"        # NOTE(Yogi1): Cleanup needs to be disabled for replica that is"},{"line_number":245,"context_line":"        # being promoted since it will become the \u0027primary\u0027/\u0027active\u0027 replica."},{"line_number":246,"context_line":"        self._verify_in_sync_replica_promotion(share, original_replica)"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_a9134465","line":245,"range":{"start_line":244,"start_character":8,"end_line":245,"end_character":77},"in_reply_to":"da6895a0_076fc7c5","updated":"2016-10-25 14:00:07.000000000","message":"Done","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"028ecb7ad54a9bf473fd061818b14b116a4908b7","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":262,"context_line":"            share[\"id\"])[0]"},{"line_number":263,"context_line":"        # NOTE(Yogi1): Cleanup needs to be disabled for replica that is"},{"line_number":264,"context_line":"        # being promoted since it will become the \u0027primary\u0027/\u0027active\u0027 replica."},{"line_number":265,"context_line":"        self._verify_in_sync_replica_promotion(share, original_replica)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # verify rule\u0027s values"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_676403e5","line":264,"range":{"start_line":263,"start_character":8,"end_line":264,"end_character":77},"updated":"2016-10-25 03:20:33.000000000","message":"ditto","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"0a6d91e20c1a042597693098d2cad417f1c4d4bb","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":262,"context_line":"            share[\"id\"])[0]"},{"line_number":263,"context_line":"        # NOTE(Yogi1): Cleanup needs to be disabled for replica that is"},{"line_number":264,"context_line":"        # being promoted since it will become the \u0027primary\u0027/\u0027active\u0027 replica."},{"line_number":265,"context_line":"        self._verify_in_sync_replica_promotion(share, original_replica)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"        # verify rule\u0027s values"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_e90d3c3f","line":264,"range":{"start_line":263,"start_character":8,"end_line":264,"end_character":77},"in_reply_to":"da6895a0_676403e5","updated":"2016-10-25 14:00:07.000000000","message":"Done","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"}],"manila_tempest_tests/tests/api/test_replication_negative.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"028ecb7ad54a9bf473fd061818b14b116a4908b7","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.shares_v2_client.promote_share_replica(replica[\u0027id\u0027])"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":164,"context_line":"    def test_access_rule_share_replica_error_status(self):"},{"line_number":165,"context_line":"        access_type \u003d \"ip\""},{"line_number":166,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":167,"context_line":"        # Create the replica"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_47737f80","line":164,"range":{"start_line":164,"start_character":12,"end_line":164,"end_character":13},"updated":"2016-10-25 03:20:33.000000000","message":"_add_","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"0a6d91e20c1a042597693098d2cad417f1c4d4bb","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        self.shares_v2_client.promote_share_replica(replica[\u0027id\u0027])"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":164,"context_line":"    def test_access_rule_share_replica_error_status(self):"},{"line_number":165,"context_line":"        access_type \u003d \"ip\""},{"line_number":166,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":167,"context_line":"        # Create the replica"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_4903880f","line":164,"range":{"start_line":164,"start_character":12,"end_line":164,"end_character":13},"in_reply_to":"da6895a0_47737f80","updated":"2016-10-25 14:00:07.000000000","message":"Done","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"b91457720078b52aa9720a110484d81a5b050445","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":164,"context_line":"    def test_add_access_rule_share_replica_error_status(self):"},{"line_number":165,"context_line":"        access_type \u003d \"ip\""},{"line_number":166,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":167,"context_line":"        # Create the replica"},{"line_number":168,"context_line":"        share_replica \u003d self.create_share_replica(self.share1[\"id\"],"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_0315fe3e","line":165,"range":{"start_line":165,"start_character":23,"end_line":165,"end_character":25},"updated":"2017-01-20 15:17:30.000000000","message":"Access type defined in config as allowed to be used should be used here. This test can pass for other reason such as attempt to add rule using unsupported type.","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e3cead51e761a493c4f713ab997c219faeea2e9","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":164,"context_line":"    def test_add_access_rule_share_replica_error_status(self):"},{"line_number":165,"context_line":"        access_type \u003d \"ip\""},{"line_number":166,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":167,"context_line":"        # Create the replica"},{"line_number":168,"context_line":"        share_replica \u003d self.create_share_replica(self.share1[\"id\"],"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_4b9d7e58","line":165,"range":{"start_line":165,"start_character":23,"end_line":165,"end_character":25},"in_reply_to":"5a3905b3_0315fe3e","updated":"2017-01-26 20:04:40.000000000","message":"Done","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"}],"manila_tempest_tests/tests/api/test_rules.py":[{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"148351633b858173f658d8bdafa12dd54c85bc93","unresolved":false,"context_lines":[{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":428,"context_line":"    @ddt.data(*itertools.product("},{"line_number":429,"context_line":"        set([\u00271.0\u0027, \u00272.9\u0027, \u00272.27\u0027, \u00272.28\u0027, LATEST_MICROVERSION]),"},{"line_number":430,"context_line":"        (\"alice\", \"alice_bob\", \"alice bob\")))"},{"line_number":431,"context_line":"    @ddt.unpack"},{"line_number":432,"context_line":"    def test_create_delete_cephx_rule(self, version, access_to):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_2b464cbf","line":429,"range":{"start_line":429,"start_character":13,"end_line":429,"end_character":20},"updated":"2017-01-20 16:58:14.000000000","message":"http://logs.openstack.org/80/390380/3/check/gate-manila-tempest-dsvm-cephfs-native-ubuntu-xenial-nv/4ae29a0/console.html#_2017-01-20_15_20_32_611628","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"148351633b858173f658d8bdafa12dd54c85bc93","unresolved":false,"context_lines":[{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":428,"context_line":"    @ddt.data(*itertools.product("},{"line_number":429,"context_line":"        set([\u00271.0\u0027, \u00272.9\u0027, \u00272.27\u0027, \u00272.28\u0027, LATEST_MICROVERSION]),"},{"line_number":430,"context_line":"        (\"alice\", \"alice_bob\", \"alice bob\")))"},{"line_number":431,"context_line":"    @ddt.unpack"},{"line_number":432,"context_line":"    def test_create_delete_cephx_rule(self, version, access_to):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_8b5bc086","line":429,"range":{"start_line":429,"start_character":20,"end_line":429,"end_character":26},"updated":"2017-01-20 16:58:14.000000000","message":"http://logs.openstack.org/80/390380/3/check/gate-manila-tempest-dsvm-cephfs-native-ubuntu-xenial-nv/4ae29a0/console.html#_2017-01-20_15_20_32_727549","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e3cead51e761a493c4f713ab997c219faeea2e9","unresolved":false,"context_lines":[{"line_number":426,"context_line":""},{"line_number":427,"context_line":"    @tc.attr(base.TAG_POSITIVE, base.TAG_BACKEND)"},{"line_number":428,"context_line":"    @ddt.data(*itertools.product("},{"line_number":429,"context_line":"        set([\u00271.0\u0027, \u00272.9\u0027, \u00272.27\u0027, \u00272.28\u0027, LATEST_MICROVERSION]),"},{"line_number":430,"context_line":"        (\"alice\", \"alice_bob\", \"alice bob\")))"},{"line_number":431,"context_line":"    @ddt.unpack"},{"line_number":432,"context_line":"    def test_create_delete_cephx_rule(self, version, access_to):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_c03bdecf","line":429,"range":{"start_line":429,"start_character":20,"end_line":429,"end_character":26},"in_reply_to":"5a3905b3_8b5bc086","updated":"2017-01-26 20:04:40.000000000","message":"o.O I\u0027ve no clue what i was thinking","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":14567,"name":"Rodrigo Barbieri","email":"rodrigo.barbieri2010@gmail.com","username":"ganso"},"change_message_id":"17d4ad64cd350a491d1f9b2126133b5bdd8ef3fa","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            self.assertNotIn(key, rule.keys())"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"        # rules must start out in \u0027new\u0027 until 2.28 \u0026 \u0027queued_to_apply\u0027 after"},{"line_number":115,"context_line":"        #  2.28"},{"line_number":116,"context_line":"        if utils.is_microversion_le(version, \"2.27\"):"},{"line_number":117,"context_line":"            self.assertEqual(\"new\", rule[\u0027state\u0027])"},{"line_number":118,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_060dd2e7","line":115,"range":{"start_line":115,"start_character":10,"end_line":115,"end_character":11},"updated":"2017-01-30 10:39:06.000000000","message":"extra space, same for all other occurrences","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"25c506ad4b1497b90d7d8cfe17032abc1b104168","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        for key in (\u0027deleted\u0027, \u0027deleted_at\u0027, \u0027instance_mappings\u0027):"},{"line_number":328,"context_line":"            self.assertNotIn(key, rule.keys())"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        # rules must start out in \u0027new\u0027 until 2.28 \u0026 \u0027queued_to_apply\u0027 after"},{"line_number":331,"context_line":"        if utils.is_microversion_le(version, \"2.27\"):"},{"line_number":332,"context_line":"            self.assertEqual(\"new\", rule[\u0027state\u0027])"},{"line_number":333,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_c5af157b","line":330,"updated":"2017-01-31 11:34:25.000000000","message":"after?","commit_id":"cffc6e1e75d6cee8987a2c8acfc8a0b9692b1971"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a8032ecb84eaa71d42eccf751be3cebd9dd1f04c","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        for key in (\u0027deleted\u0027, \u0027deleted_at\u0027, \u0027instance_mappings\u0027):"},{"line_number":328,"context_line":"            self.assertNotIn(key, rule.keys())"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        # rules must start out in \u0027new\u0027 until 2.28 \u0026 \u0027queued_to_apply\u0027 after"},{"line_number":331,"context_line":"        if utils.is_microversion_le(version, \"2.27\"):"},{"line_number":332,"context_line":"            self.assertEqual(\"new\", rule[\u0027state\u0027])"},{"line_number":333,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_00b3cb50","line":330,"in_reply_to":"3a461143_c5af157b","updated":"2017-01-31 11:54:24.000000000","message":"I think it\u0027s understood that this means after \"that transition point.\"  If it were code it would need to be \u003e\u003d 2.28.\n\nI wouldn\u0027t oppose a trivial fix to make the language more precise but honestly I think it\u0027s OK for a comment since everyone who works with microversions knows that one wouldn\u0027t set them up to do neither \u0027new\u0027 nor \u0027queued_to_apply\u0027 for precisely version 2.28.","commit_id":"cffc6e1e75d6cee8987a2c8acfc8a0b9692b1971"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"25c506ad4b1497b90d7d8cfe17032abc1b104168","unresolved":false,"context_lines":[{"line_number":373,"context_line":"        for key in (\u0027deleted\u0027, \u0027deleted_at\u0027, \u0027instance_mappings\u0027):"},{"line_number":374,"context_line":"            self.assertNotIn(key, rule.keys())"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        # rules must start out in \u0027new\u0027 until 2.28 \u0026 \u0027queued_to_apply\u0027 after"},{"line_number":377,"context_line":"        if utils.is_microversion_le(version, \"2.27\"):"},{"line_number":378,"context_line":"            self.assertEqual(\"new\", rule[\u0027state\u0027])"},{"line_number":379,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_e5b251e4","line":376,"updated":"2017-01-31 11:34:25.000000000","message":"after?","commit_id":"cffc6e1e75d6cee8987a2c8acfc8a0b9692b1971"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"25c506ad4b1497b90d7d8cfe17032abc1b104168","unresolved":false,"context_lines":[{"line_number":492,"context_line":"            rule \u003d self.shares_v2_client.create_access_rule("},{"line_number":493,"context_line":"                self.share[\"id\"], self.access_type, self.access_to,"},{"line_number":494,"context_line":"                version\u003dversion)"},{"line_number":495,"context_line":"        # rules must start out in \u0027new\u0027 until 2.28 \u0026 \u0027queued_to_apply\u0027 after"},{"line_number":496,"context_line":"        if utils.is_microversion_le(version, \"2.27\"):"},{"line_number":497,"context_line":"            self.assertEqual(\"new\", rule[\u0027state\u0027])"},{"line_number":498,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_25c9b959","line":495,"updated":"2017-01-31 11:34:25.000000000","message":"after?","commit_id":"cffc6e1e75d6cee8987a2c8acfc8a0b9692b1971"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"25c506ad4b1497b90d7d8cfe17032abc1b104168","unresolved":false,"context_lines":[{"line_number":571,"context_line":"                share[\"id\"], self.access_type, self.access_to,"},{"line_number":572,"context_line":"                version\u003dversion)"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"        # rules must start out in \u0027new\u0027 until 2.28 \u0026 \u0027queued_to_apply\u0027 after"},{"line_number":575,"context_line":"        if utils.is_microversion_le(version, \"2.27\"):"},{"line_number":576,"context_line":"            self.assertEqual(\"new\", rule[\u0027state\u0027])"},{"line_number":577,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a461143_45c4053f","line":574,"updated":"2017-01-31 11:34:25.000000000","message":"after?","commit_id":"cffc6e1e75d6cee8987a2c8acfc8a0b9692b1971"}],"manila_tempest_tests/tests/api/test_rules_negative.py":[{"author":{"_account_id":16203,"name":"zengyingzhe","email":"zengyingzhe@huawei.com","username":"zengyingzhe"},"change_message_id":"028ecb7ad54a9bf473fd061818b14b116a4908b7","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                rule_id\u003drule[\"id\"], share_id\u003dself.share[\"id\"], version\u003dversion)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":163,"context_line":"    def test_access_rule_on_share_with_no_host(self):"},{"line_number":164,"context_line":"        access_type \u003d \"ip\""},{"line_number":165,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":166,"context_line":"        extra_specs \u003d self.add_required_extra_specs_to_dict("}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_a7d7fbeb","line":163,"range":{"start_line":163,"start_character":12,"end_line":163,"end_character":13},"updated":"2016-10-25 03:20:33.000000000","message":"_add_","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"0a6d91e20c1a042597693098d2cad417f1c4d4bb","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                rule_id\u003drule[\"id\"], share_id\u003dself.share[\"id\"], version\u003dversion)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":163,"context_line":"    def test_access_rule_on_share_with_no_host(self):"},{"line_number":164,"context_line":"        access_type \u003d \"ip\""},{"line_number":165,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":166,"context_line":"        extra_specs \u003d self.add_required_extra_specs_to_dict("}],"source_content_type":"text/x-python","patch_set":1,"id":"da6895a0_7c03ac0d","line":163,"range":{"start_line":163,"start_character":12,"end_line":163,"end_character":13},"in_reply_to":"da6895a0_a7d7fbeb","updated":"2016-10-25 14:00:07.000000000","message":"Done","commit_id":"a5beef578b05509c5b9698aa546ba89e892bf6e0"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"ca10be87afc4960412e111ab8bec998ac328bbc6","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":163,"context_line":"    def test_add_access_rule_on_share_with_no_host(self):"},{"line_number":164,"context_line":"        access_type \u003d \"ip\""},{"line_number":165,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":166,"context_line":"        extra_specs \u003d self.add_extra_specs_to_dict("},{"line_number":167,"context_line":"            {\"share_backend_name\": \u0027invalid_backend\u0027})"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a3905b3_834e4e6d","line":164,"range":{"start_line":164,"start_character":23,"end_line":164,"end_character":25},"updated":"2017-01-20 15:17:56.000000000","message":"same as in https://review.openstack.org/#/c/390380/3/manila_tempest_tests/tests/api/test_replication_negative.py","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"1e3cead51e761a493c4f713ab997c219faeea2e9","unresolved":false,"context_lines":[{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    @tc.attr(base.TAG_NEGATIVE, base.TAG_API_WITH_BACKEND)"},{"line_number":163,"context_line":"    def test_add_access_rule_on_share_with_no_host(self):"},{"line_number":164,"context_line":"        access_type \u003d \"ip\""},{"line_number":165,"context_line":"        access_to \u003d utils.rand_ip()"},{"line_number":166,"context_line":"        extra_specs \u003d self.add_extra_specs_to_dict("},{"line_number":167,"context_line":"            {\"share_backend_name\": \u0027invalid_backend\u0027})"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a461143_4b39fe40","line":164,"range":{"start_line":164,"start_character":23,"end_line":164,"end_character":25},"in_reply_to":"5a3905b3_834e4e6d","updated":"2017-01-26 20:04:40.000000000","message":"Done","commit_id":"48671d028c7924c475289f21d86d9f23b7483f4b"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"96e64e670054a600c719b5c51d05742f9ecf69d8","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"@ddt.ddt"},{"line_number":30,"context_line":"class ShareIpRulesForNFSNegativeTest(base.BaseSharesMixedTest):"},{"line_number":31,"context_line":"    protocol \u003d \"nfs\""},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a461143_69cd8984","line":30,"range":{"start_line":30,"start_character":42,"end_line":30,"end_character":61},"updated":"2017-01-30 11:25:50.000000000","message":"For tests that use \"admin\" stuff we have \"admin\" subdirectory.","commit_id":"fbeadc841d58a5825724f4d95eb1057c0f34a0ff"}]}
