)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"3345f2aa8cf4b3d0ab977367f7b14f3f42781052","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add tests to ensure snapshots across replicas"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Related-Bug: #1546303"},{"line_number":10,"context_line":"Depends-On: I63203df00904d209e9e92eda7c79206e5ef8d611"},{"line_number":11,"context_line":"Change-Id: I269225b976efe13b2cbb9e0648d541a063df70e5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"1af94dfe_0f99507c","line":10,"updated":"2016-03-18 14:31:13.000000000","message":"Please, add depends-on for NetApp and ZFSonLinux share drivers changes:\n\nhttps://review.openstack.org/#/c/293243/\nand\nhttps://review.openstack.org/#/c/293377/","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"}],"devstack/plugin.sh":[{"author":{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},"change_message_id":"39f0b25df980b6d677725bc5dcdbfa7eda76c591","unresolved":false,"context_lines":[{"line_number":506,"context_line":"                iniset $MANILA_CONF $BE replication_domain $MANILA_ZFSONLINUX_REPLICATION_DOMAIN"},{"line_number":507,"context_line":"                let \"file_counter\u003dfile_counter+1\""},{"line_number":508,"context_line":"            done"},{"line_number":509,"context_line":"            iniset $MANILA_CONF DEFAULT replica_state_update_interval MANILA_ZFSONLINUX_REPLICA_STATE_UPDATE_INTERVAL"},{"line_number":510,"context_line":"            # Install the server\u0027s SSH key in our known_hosts file"},{"line_number":511,"context_line":"            eval STACK_HOME\u003d~$STACK_USER"},{"line_number":512,"context_line":"            ssh-keyscan ${MANILA_ZFSONLINUX_SERVICE_IP} \u003e\u003e $STACK_HOME/.ssh/known_hosts"}],"source_content_type":"text/x-sh","patch_set":15,"id":"1af94dfe_d6a9a625","line":509,"updated":"2016-03-19 02:59:46.000000000","message":"$MANILA_ZFSONLINUX_REPLICA_STATE_UPDATE_INTERVAL","commit_id":"cfcde6be74ccc48f4ac9a1b0423b8138e596a571"}],"devstack/settings":[{"author":{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},"change_message_id":"706ae774a9c2fc4ee80e9973105e7b2460440770","unresolved":false,"context_lines":[{"line_number":154,"context_line":"# If MANILA_ZFSONLINUX_REPLICATION_DOMAIN is set to empty value then"},{"line_number":155,"context_line":"# Manila will consider replication feature as disabled for ZFSonLinux share driver."},{"line_number":156,"context_line":"MANILA_ZFSONLINUX_REPLICATION_DOMAIN\u003d${MANILA_ZFSONLINUX_REPLICATION_DOMAIN:-\"ZFSonLinux\"}"},{"line_number":157,"context_line":"MANILA_REPLICA_STATE_UPDATE_INTERVAL\u003d${MANILA_ZFSONLINUX_REPLICA_STATE_UPDATE_INTERVAL:-300}"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"# Enable manila services"},{"line_number":160,"context_line":"# ----------------------"}],"source_content_type":"application/octet-stream","patch_set":15,"id":"1af94dfe_366f2afd","line":157,"range":{"start_line":157,"start_character":0,"end_line":157,"end_character":36},"updated":"2016-03-19 03:00:59.000000000","message":"MANILA_ZFSONLINUX_REPLICA_STATE_UPDATE_INTERVAL","commit_id":"cfcde6be74ccc48f4ac9a1b0423b8138e596a571"}],"manila_tempest_tests/tests/api/test_replication_snapshot.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a5a122f0e3aca06ad08583534186d52603481a75","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Yogesh Kshirsagar"},{"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":3,"id":"1af94dfe_bf7c5473","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":16},"updated":"2016-03-16 11:03:23.000000000","message":"2016?","commit_id":"897e36beb7a5f97e95e0a355f0d20b7b113ee2b1"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"8e938d1c18600f13ddcc7ce446975290cc18e921","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2015 Yogesh Kshirsagar"},{"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":3,"id":"1af94dfe_122d7546","line":1,"range":{"start_line":1,"start_character":15,"end_line":1,"end_character":16},"in_reply_to":"1af94dfe_bf7c5473","updated":"2016-03-16 14:04:33.000000000","message":"Done","commit_id":"897e36beb7a5f97e95e0a355f0d20b7b113ee2b1"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"a5a122f0e3aca06ad08583534186d52603481a75","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                      cls.shares]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":68,"context_line":"    @testtools.skipUnless(CONF.share.run_snapshot_tests,"},{"line_number":69,"context_line":"                          \u0027Snapshot tests disabled.\u0027)"},{"line_number":70,"context_line":"    def test_snapshot_after_share_replica(self):"},{"line_number":71,"context_line":"        \"\"\"Test the snapshot for replicated share."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_3f77a43b","line":69,"range":{"start_line":68,"start_character":4,"end_line":69,"end_character":53},"updated":"2016-03-16 11:03:23.000000000","message":"This decorator applied for all tests. So, it is expected to be set for class as two other skip decorators.","commit_id":"897e36beb7a5f97e95e0a355f0d20b7b113ee2b1"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"8e938d1c18600f13ddcc7ce446975290cc18e921","unresolved":false,"context_lines":[{"line_number":65,"context_line":"                      cls.shares]"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":68,"context_line":"    @testtools.skipUnless(CONF.share.run_snapshot_tests,"},{"line_number":69,"context_line":"                          \u0027Snapshot tests disabled.\u0027)"},{"line_number":70,"context_line":"    def test_snapshot_after_share_replica(self):"},{"line_number":71,"context_line":"        \"\"\"Test the snapshot for replicated share."},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1af94dfe_721cb913","line":69,"range":{"start_line":68,"start_character":4,"end_line":69,"end_character":53},"in_reply_to":"1af94dfe_3f77a43b","updated":"2016-03-16 14:04:33.000000000","message":"Done","commit_id":"897e36beb7a5f97e95e0a355f0d20b7b113ee2b1"}],"manila_tempest_tests/tests/api/test_replication_snapshots.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"58dbca6a3180fd337571c1db1091dccdcc247ea6","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            share[\"id\"])[0]"},{"line_number":128,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":129,"context_line":"                                                  self.replica_zone,"},{"line_number":130,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":131,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":132,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":133,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_ac114a06","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"updated":"2016-03-18 14:16:28.000000000","message":"same here","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"8857daf68e2c81859bb2c8d00a2a42504b2edb81","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            share[\"id\"])[0]"},{"line_number":128,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":129,"context_line":"                                                  self.replica_zone,"},{"line_number":130,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":131,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":132,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":133,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_a2b673f6","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"in_reply_to":"1af94dfe_0ffdd0b3","updated":"2016-03-18 15:32:19.000000000","message":"We are deleting the original replica on line #137 for the same reason.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"818a8bdbe342ef9efc1e56131c4f73c83fd6a109","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            share[\"id\"])[0]"},{"line_number":128,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":129,"context_line":"                                                  self.replica_zone,"},{"line_number":130,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":131,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":132,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":133,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_d6989d6c","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"in_reply_to":"1af94dfe_76d9c956","updated":"2016-03-18 15:43:09.000000000","message":"But if we did addCleanup, wouldn\u0027t that be a problem when it executes past line 137? Is addCleanup not going to worry about resources that have already been removed?","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"e6df959c6240131cf06aa51364bf2ce68fac758c","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            share[\"id\"])[0]"},{"line_number":128,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":129,"context_line":"                                                  self.replica_zone,"},{"line_number":130,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":131,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":132,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":133,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_76d9c956","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"in_reply_to":"1af94dfe_a2b673f6","updated":"2016-03-18 15:41:49.000000000","message":"It should be exactly \"addCleanup\". line 137 can be not reached if test fails earlier as it is in my case.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"1b77de76aa301266ddd1f882d803899e90b1cc66","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            share[\"id\"])[0]"},{"line_number":128,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":129,"context_line":"                                                  self.replica_zone,"},{"line_number":130,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":131,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":132,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":133,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_0ffdd0b3","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"in_reply_to":"1af94dfe_ac114a06","updated":"2016-03-18 14:29:40.000000000","message":"I mean we should add following:\n\nself.addCleanup(self.delete_share_replica, original_replica[\u0027id\u0027])\n\nto remove created resources correctly.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"9a4c734a492a96984cb37c0cbd305ea34514d7b7","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            share[\"id\"])[0]"},{"line_number":128,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":129,"context_line":"                                                  self.replica_zone,"},{"line_number":130,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":131,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":132,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":133,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_f575ce31","line":130,"range":{"start_line":130,"start_character":50,"end_line":130,"end_character":63},"in_reply_to":"1af94dfe_d6989d6c","updated":"2016-03-18 16:13:26.000000000","message":"Yes, it will raise error. Then try block should be added. Resources should be released properly anyway.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"caca6eac6c8dab465ad8be5932c4ea620a39b4c4","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        snapshot2 \u003d self.create_snapshot_wait_for_active(share[\"id\"])"},{"line_number":136,"context_line":"        self.promote_share_replica(share_replica[\u0027id\u0027])"},{"line_number":137,"context_line":"        self.delete_share_replica(original_replica[\u0027id\u0027])"},{"line_number":138,"context_line":"        self.create_share(snapshot_id\u003dsnapshot1[\u0027id\u0027])"},{"line_number":139,"context_line":"        self.create_share(snapshot_id\u003dsnapshot2[\u0027id\u0027])"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @test.attr(type\u003d[\"gate\", ])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_78a41db9","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":54},"updated":"2016-03-18 14:02:36.000000000","message":"And here I get following error:\n\nDetails: {u\u0027message\u0027: u\"Invalid share snapshot: status must be \u0027available\u0027.\", u\u0027code\u0027: 400}\n\nWe should wait for \"available\" status of snapshot after removal of some its instance.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"8857daf68e2c81859bb2c8d00a2a42504b2edb81","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        snapshot2 \u003d self.create_snapshot_wait_for_active(share[\"id\"])"},{"line_number":136,"context_line":"        self.promote_share_replica(share_replica[\u0027id\u0027])"},{"line_number":137,"context_line":"        self.delete_share_replica(original_replica[\u0027id\u0027])"},{"line_number":138,"context_line":"        self.create_share(snapshot_id\u003dsnapshot1[\u0027id\u0027])"},{"line_number":139,"context_line":"        self.create_share(snapshot_id\u003dsnapshot2[\u0027id\u0027])"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @test.attr(type\u003d[\"gate\", ])"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_a2d313d4","line":138,"range":{"start_line":138,"start_character":8,"end_line":138,"end_character":54},"in_reply_to":"1af94dfe_78a41db9","updated":"2016-03-18 15:32:19.000000000","message":"Done","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"78b8aadb7f9cf44ad63986bfdbebd893afcf9d73","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        self.promote_share_replica(share_replica[\u0027id\u0027])"},{"line_number":137,"context_line":"        self.delete_share_replica(original_replica[\u0027id\u0027])"},{"line_number":138,"context_line":"        self.create_share(snapshot_id\u003dsnapshot1[\u0027id\u0027])"},{"line_number":139,"context_line":"        self.create_share(snapshot_id\u003dsnapshot2[\u0027id\u0027])"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":142,"context_line":"    def test_delete_snapshot_after_adding_replica(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_2ca89a76","line":139,"range":{"start_line":139,"start_character":8,"end_line":139,"end_character":9},"updated":"2016-03-18 14:28:47.000000000","message":"Making all fixes to test I get following messages in m-shr:\n\n2016-03-18 16:15:06.789 INFO The replica snapshot instance ea46a29d-ba65-4f68-9c78-bb5e17b8ae95 was in creating. Since it was not in available state when the replica was promoted, it will be set to error.                                                                                                                                                                                              \n2016-03-18 16:15:07.17 INFO Share replica 0db41938-e98d-447d-8d96-ae4d8ee04a21: promoted to active state successfully.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"97a12a8c084b16fdb8b82efca941f0c6d0c64575","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        share \u003d self.shares[0]"},{"line_number":150,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":151,"context_line":"                                                  self.replica_zone,"},{"line_number":152,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":153,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":154,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":155,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_98ada99d","line":152,"range":{"start_line":152,"start_character":50,"end_line":152,"end_character":63},"updated":"2016-03-18 14:03:01.000000000","message":"\"cleanup\u003dFalse\" should be removed.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"8857daf68e2c81859bb2c8d00a2a42504b2edb81","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        share \u003d self.shares[0]"},{"line_number":150,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":151,"context_line":"                                                  self.replica_zone,"},{"line_number":152,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":153,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":154,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":155,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_42816f8e","line":152,"range":{"start_line":152,"start_character":50,"end_line":152,"end_character":63},"in_reply_to":"1af94dfe_98ada99d","updated":"2016-03-18 15:32:19.000000000","message":"Done","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"9ccde5b51359bbe313ac81c6717f5d92a38f54e4","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.create_share(snapshot_id\u003dsnapshot1[\u0027id\u0027])"},{"line_number":139,"context_line":"        self.create_share(snapshot_id\u003dsnapshot2[\u0027id\u0027])"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":142,"context_line":"    def test_delete_snapshot_after_adding_replica(self):"},{"line_number":143,"context_line":"        \"\"\"Verify the snapshot delete."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        Ensure that deleting the original snapshot also deletes the"},{"line_number":146,"context_line":"        snapshot from replica."},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        share \u003d self.shares[0]"},{"line_number":150,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":151,"context_line":"                                                  self.replica_zone,"},{"line_number":152,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":153,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":154,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":155,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"},{"line_number":156,"context_line":"        snapshot \u003d self.create_snapshot_wait_for_active(share[\"id\"])"},{"line_number":157,"context_line":"        self.shares_v2_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":158,"context_line":"        self.shares_v2_client.wait_for_resource_deletion("},{"line_number":159,"context_line":"            snapshot_id\u003dsnapshot[\"id\"])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":162,"context_line":"    def test_create_replica_from_snapshot_share(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_52d6624f","line":159,"range":{"start_line":141,"start_character":4,"end_line":159,"end_character":39},"updated":"2016-03-18 13:31:34.000000000","message":"I wonder how this test can work for NetApp driver when it should fail for all. Share replica is not deleted and its deletion is disabled with key \"cleanup\u003dFalse\" that leads to impossibility to cleanup share.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"8857daf68e2c81859bb2c8d00a2a42504b2edb81","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.create_share(snapshot_id\u003dsnapshot1[\u0027id\u0027])"},{"line_number":139,"context_line":"        self.create_share(snapshot_id\u003dsnapshot2[\u0027id\u0027])"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":142,"context_line":"    def test_delete_snapshot_after_adding_replica(self):"},{"line_number":143,"context_line":"        \"\"\"Verify the snapshot delete."},{"line_number":144,"context_line":""},{"line_number":145,"context_line":"        Ensure that deleting the original snapshot also deletes the"},{"line_number":146,"context_line":"        snapshot from replica."},{"line_number":147,"context_line":"        \"\"\""},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        share \u003d self.shares[0]"},{"line_number":150,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":151,"context_line":"                                                  self.replica_zone,"},{"line_number":152,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":153,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":154,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":155,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"},{"line_number":156,"context_line":"        snapshot \u003d self.create_snapshot_wait_for_active(share[\"id\"])"},{"line_number":157,"context_line":"        self.shares_v2_client.delete_snapshot(snapshot[\u0027id\u0027])"},{"line_number":158,"context_line":"        self.shares_v2_client.wait_for_resource_deletion("},{"line_number":159,"context_line":"            snapshot_id\u003dsnapshot[\"id\"])"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":162,"context_line":"    def test_create_replica_from_snapshot_share(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"1af94dfe_45b9792d","line":159,"range":{"start_line":141,"start_character":4,"end_line":159,"end_character":39},"in_reply_to":"1af94dfe_52d6624f","updated":"2016-03-18 15:32:19.000000000","message":"Change in Line #152 should take care of this.","commit_id":"96d96008d39a84215489694a21a8bef376ecca70"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"88e1252d34ad50b8bda24099ec3e52a995f472e3","unresolved":false,"context_lines":[{"line_number":93,"context_line":"        share."},{"line_number":94,"context_line":"        Verify snapshot by creating share from the snapshot."},{"line_number":95,"context_line":"        \"\"\""},{"line_number":96,"context_line":"        share \u003d self.create_shares([self.creation_data])[0]"},{"line_number":97,"context_line":"        snapshot \u003d self.create_snapshot_wait_for_active(share[\"id\"])"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_35d61628","line":96,"range":{"start_line":96,"start_character":16,"end_line":96,"end_character":59},"updated":"2016-03-18 16:12:01.000000000","message":"Why do you use \"bunch creation method\" for creation of single share? Same for all other occurrences.","commit_id":"e01d8e4c685f19ade371c145ba61b6838822601f"},{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"1e35d1e49901f932a28951578b66b97644912f65","unresolved":false,"context_lines":[{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":100,"context_line":"            share[\"id\"])[0]"},{"line_number":101,"context_line":"        share_replica \u003d self.create_share_replica(share[\"id\"],"},{"line_number":102,"context_line":"                                                  self.replica_zone,"},{"line_number":103,"context_line":"                                                  cleanup\u003dFalse)"},{"line_number":104,"context_line":"        self.shares_v2_client.wait_for_share_replica_status("},{"line_number":105,"context_line":"            share_replica[\u0027id\u0027], constants.REPLICATION_STATE_IN_SYNC,"},{"line_number":106,"context_line":"            status_attr\u003d\u0027replica_state\u0027)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        self.promote_share_replica(share_replica[\u0027id\u0027])"},{"line_number":109,"context_line":"        self.delete_share_replica(original_replica[\u0027id\u0027])"},{"line_number":110,"context_line":"        self.create_share(snapshot_id\u003dsnapshot[\u0027id\u0027])"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.attr(type\u003d[\"gate\", ])"},{"line_number":113,"context_line":"    def test_snapshot_before_and_after_share_replica(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1af94dfe_8aad41eb","line":110,"range":{"start_line":101,"start_character":8,"end_line":110,"end_character":53},"updated":"2016-03-18 18:13:17.000000000","message":"Creation of replica spawns \"snapshot instance\" with \"creating\" status. And its status gets updated only with periodic update. And in case of ZFsonLinux driver, \"promote\" command sets replica snapshot instance to ERROR from CREATING. So, in case of ZFSonLinux driver, it will fail always, as all these operations run very fast.","commit_id":"e01d8e4c685f19ade371c145ba61b6838822601f"},{"author":{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},"change_message_id":"ec975df65826be8a4f20475ca2f87234e9f169e2","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        Verify that the snapshot is properly created under replica by"},{"line_number":72,"context_line":"        creating a share from that snapshot."},{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        share \u003d self.create_share(share_type_id \u003d self.share_type[\u0027id\u0027],"},{"line_number":75,"context_line":"                                  availability_zone \u003d self.share_zone)"},{"line_number":76,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":77,"context_line":"            share[\"id\"])[0]"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_f2b83713","line":74,"range":{"start_line":74,"start_character":47,"end_line":74,"end_character":50},"updated":"2016-03-18 19:54:16.000000000","message":"pep8","commit_id":"c4561af3532848309087820c71c7d36f140e47e2"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"937f28441d8526befe0f9cc427498e79d3c41a1b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        Verify that the snapshot is properly created under replica by"},{"line_number":72,"context_line":"        creating a share from that snapshot."},{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        share \u003d self.create_share(share_type_id \u003d self.share_type[\u0027id\u0027],"},{"line_number":75,"context_line":"                                  availability_zone \u003d self.share_zone)"},{"line_number":76,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":77,"context_line":"            share[\"id\"])[0]"}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_92e613e6","line":74,"range":{"start_line":74,"start_character":47,"end_line":74,"end_character":50},"in_reply_to":"1af94dfe_f2b83713","updated":"2016-03-18 20:00:44.000000000","message":"Done","commit_id":"c4561af3532848309087820c71c7d36f140e47e2"},{"author":{"_account_id":2417,"name":"Ben Swartzlander","email":"ben@swartzlander.org","username":"bswartz"},"change_message_id":"ec975df65826be8a4f20475ca2f87234e9f169e2","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        creating a share from that snapshot."},{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        share \u003d self.create_share(share_type_id \u003d self.share_type[\u0027id\u0027],"},{"line_number":75,"context_line":"                                  availability_zone \u003d self.share_zone)"},{"line_number":76,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":77,"context_line":"            share[\"id\"])[0]"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_9240d308","line":75,"range":{"start_line":75,"start_character":51,"end_line":75,"end_character":54},"updated":"2016-03-18 19:54:16.000000000","message":"pep8","commit_id":"c4561af3532848309087820c71c7d36f140e47e2"},{"author":{"_account_id":13167,"name":"Yogesh","email":"ykshirsa@netapp.com","username":"yogi1"},"change_message_id":"937f28441d8526befe0f9cc427498e79d3c41a1b","unresolved":false,"context_lines":[{"line_number":72,"context_line":"        creating a share from that snapshot."},{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        share \u003d self.create_share(share_type_id \u003d self.share_type[\u0027id\u0027],"},{"line_number":75,"context_line":"                                  availability_zone \u003d self.share_zone)"},{"line_number":76,"context_line":"        original_replica \u003d self.shares_v2_client.list_share_replicas("},{"line_number":77,"context_line":"            share[\"id\"])[0]"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1af94dfe_72e9c7b6","line":75,"range":{"start_line":75,"start_character":51,"end_line":75,"end_character":54},"in_reply_to":"1af94dfe_9240d308","updated":"2016-03-18 20:00:44.000000000","message":"Done","commit_id":"c4561af3532848309087820c71c7d36f140e47e2"}]}
