)]}'
{"tempest/api/compute/admin/test_servers.py":[{"author":{"_account_id":8625,"name":"Anju Tiwari","username":"Anju5","inactive":true},"change_message_id":"9e43a86688877904f1ec016995bfedbffdee184e","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        self.assertRaises(exceptions.Unauthorized,"},{"line_number":180,"context_line":"                          self.non_adm_client.get_server_diagnostics,"},{"line_number":181,"context_line":"                          self.s1_id)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    def test_rebuild_server_in_stop_state(self):"},{"line_number":184,"context_line":"        # The server should be rebuilt using the provided image and data"},{"line_number":185,"context_line":"        # and remain in SHUTOFF state"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATH%2F%2FsTM%3D","line":182,"updated":"2013-10-11 04:56:10.000000000","message":"Please use a Decorator.","commit_id":"647da32e6fc6ecb5deb12e31f9bf429633eadfeb"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"5bfa30752deb5e778984010bb7037313fdc55a52","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":230,"context_line":"        CONF \u003d tempest.config.TempestConfig()"},{"line_number":231,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":232,"context_line":"        tried \u003d 1"},{"line_number":233,"context_line":"        while True:"},{"line_number":234,"context_line":"            try:"},{"line_number":235,"context_line":"                self.client.wait_for_server_status(rebuilt_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2Fq0s%3D","line":232,"updated":"2013-10-11 13:42:13.000000000","message":"why need try so many times? if it can\u0027t reach the status \"ACTIVE\", the time will be 600/10*600\u003d36000?","commit_id":"fc97201acc489a74ddc4f3ecfb6753f7314ee8b2"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"916c3131cde65cdc304e5f0e31ce2e9a7ec79668","unresolved":false,"context_lines":[{"line_number":229,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":230,"context_line":"        CONF \u003d tempest.config.TempestConfig()"},{"line_number":231,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":232,"context_line":"        tried \u003d 1"},{"line_number":233,"context_line":"        while True:"},{"line_number":234,"context_line":"            try:"},{"line_number":235,"context_line":"                self.client.wait_for_server_status(rebuilt_server[\u0027id\u0027],"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAATH%2F%2Fofk%3D","line":232,"in_reply_to":"AAAATH%2F%2Fq0s%3D","updated":"2013-10-12 02:35:03.000000000","message":"Ivan, thanks for your review!  the waiting time is same to CONF.compute.build_timeout, 600s\n(try 600/10 times, and sleep 10s for each time)\n\nBut I did miss the sleep statement. will fix it.","commit_id":"fc97201acc489a74ddc4f3ecfb6753f7314ee8b2"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"569c94b3c23f39f77f0af5b95097431539f46b15","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                                             flavor_id)"},{"line_number":108,"context_line":"        self.addCleanup(self.flavors_client.delete_flavor, flavor_id)"},{"line_number":109,"context_line":"        self.assertRaises(exceptions.OverLimit,"},{"line_number":110,"context_line":"                          self.client.resize,"},{"line_number":111,"context_line":"                          self.servers[0][\u0027id\u0027],"},{"line_number":112,"context_line":"                          flavor_ref[\u0027id\u0027])"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FalM%3D","line":110,"updated":"2013-10-16 14:05:26.000000000","message":"Why this operation done as admin ?\n\nMay be the right tenant id was in use, but the wrong client / user.","commit_id":"24ff7d311cb415a7e8054450199a7c74129696cd"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"b4a183d5f13f70858885a139695f537206e46b01","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                                             flavor_id)"},{"line_number":108,"context_line":"        self.addCleanup(self.flavors_client.delete_flavor, flavor_id)"},{"line_number":109,"context_line":"        self.assertRaises(exceptions.OverLimit,"},{"line_number":110,"context_line":"                          self.client.resize,"},{"line_number":111,"context_line":"                          self.servers[0][\u0027id\u0027],"},{"line_number":112,"context_line":"                          flavor_ref[\u0027id\u0027])"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATX%2F%2F93I%3D","line":110,"in_reply_to":"AAAATH%2F%2FW9c%3D","updated":"2013-10-23 15:03:31.000000000","message":"since resize does not need admin user, using the cls.non_adm_client will be better","commit_id":"24ff7d311cb415a7e8054450199a7c74129696cd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"c24480d37108ad963872e2a95ed5cc50ad651457","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                                             flavor_id)"},{"line_number":108,"context_line":"        self.addCleanup(self.flavors_client.delete_flavor, flavor_id)"},{"line_number":109,"context_line":"        self.assertRaises(exceptions.OverLimit,"},{"line_number":110,"context_line":"                          self.client.resize,"},{"line_number":111,"context_line":"                          self.servers[0][\u0027id\u0027],"},{"line_number":112,"context_line":"                          flavor_ref[\u0027id\u0027])"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATH%2F%2FW9c%3D","line":110,"in_reply_to":"AAAATH%2F%2FalM%3D","updated":"2013-10-17 09:07:22.000000000","message":"resize does not need admin user. Since create_flavor require admin privilege, I put these testcases here.","commit_id":"24ff7d311cb415a7e8054450199a7c74129696cd"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"bbca5e8a94ecc773ccb3354668b3edd5b063f8d2","unresolved":false,"context_lines":[{"line_number":107,"context_line":"                                                             flavor_id)"},{"line_number":108,"context_line":"        self.addCleanup(self.flavors_client.delete_flavor, flavor_id)"},{"line_number":109,"context_line":"        self.assertRaises(exceptions.OverLimit,"},{"line_number":110,"context_line":"                          self.client.resize,"},{"line_number":111,"context_line":"                          self.servers[0][\u0027id\u0027],"},{"line_number":112,"context_line":"                          flavor_ref[\u0027id\u0027])"},{"line_number":113,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAATn%2F%2Fz7c%3D","line":110,"in_reply_to":"AAAATX%2F%2F93I%3D","updated":"2013-10-28 17:01:44.000000000","message":"afazekas, Ivan: Thank you!  fix it in next patch set","commit_id":"24ff7d311cb415a7e8054450199a7c74129696cd"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"3bbb6a8fbdcafed6f3690f43f93b0464f6128f39","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.api.compute import base"},{"line_number":20,"context_line":"from tempest.common.utils.data_utils import rand_int_id"},{"line_number":21,"context_line":"from tempest.common.utils.data_utils import rand_name"},{"line_number":22,"context_line":"import tempest.config"},{"line_number":23,"context_line":"from tempest import exceptions"},{"line_number":24,"context_line":"from tempest.test import attr"},{"line_number":25,"context_line":"from tempest.test import skip_because"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2FyPU%3D","line":22,"updated":"2013-10-29 05:24:54.000000000","message":"may \u0027from tempest import config\u0027 be better, right?","commit_id":"fd984375600e569c86a3d47c0d698dbc2192e399"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"3bbb6a8fbdcafed6f3690f43f93b0464f6128f39","unresolved":false,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":186,"context_line":"    def test_rebuild_server_in_stop_state(self):"},{"line_number":187,"context_line":"        # The server should be rebuilt using the provided image and data"},{"line_number":188,"context_line":"        # and remain in SHUTOFF state"},{"line_number":189,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"},{"line_number":190,"context_line":"        resp, server \u003d self.client.stop(server_id)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2FyPA%3D","line":187,"updated":"2013-10-29 05:24:54.000000000","message":"\u0027The stopped server should be...\u0027","commit_id":"fd984375600e569c86a3d47c0d698dbc2192e399"},{"author":{"_account_id":6732,"name":"Lingxian Kong","email":"anlin.kong@gmail.com","username":"kong"},"change_message_id":"3bbb6a8fbdcafed6f3690f43f93b0464f6128f39","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":213,"context_line":"    def test_rebuild_server_in_error_state(self):"},{"line_number":214,"context_line":"        # The server should be rebuilt using the provided image and data"},{"line_number":215,"context_line":"        # and change to ACTIVE state"},{"line_number":216,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"},{"line_number":217,"context_line":"        resp, server \u003d self.client.reset_state(server_id, state\u003d\u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2FyPI%3D","line":214,"updated":"2013-10-29 05:24:54.000000000","message":"\u0027The server in ERROR state should be...\u0027","commit_id":"fd984375600e569c86a3d47c0d698dbc2192e399"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"3a3b683c00c6c3c07a599e1bf90797217c6ce23a","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":213,"context_line":"    def test_rebuild_server_in_error_state(self):"},{"line_number":214,"context_line":"        # The server should be rebuilt using the provided image and data"},{"line_number":215,"context_line":"        # and change to ACTIVE state"},{"line_number":216,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"},{"line_number":217,"context_line":"        resp, server \u003d self.client.reset_state(server_id, state\u003d\u0027error\u0027)"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAATn%2F%2FyLc%3D","line":214,"in_reply_to":"AAAATn%2F%2FyPI%3D","updated":"2013-10-29 05:45:06.000000000","message":"All Done. Thank you!","commit_id":"fd984375600e569c86a3d47c0d698dbc2192e399"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"766dda38ba1cdabfa04e3c129632008b6f992ff0","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                          self.s1_id)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":186,"context_line":"    def test_rebuild_server_in_stop_state(self):"},{"line_number":187,"context_line":"        # The server in stop state  should be rebuilt using the provided "},{"line_number":188,"context_line":"        # image and remain in SHUTOFF state"},{"line_number":189,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FyDU%3D","line":186,"updated":"2013-10-29 06:07:14.000000000","message":"Does this test need admin?\n\nI feel the admin tests should be added to tempest/api/compute/admin/test_servers.py.","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2c2409999aaece498b5f9a696a7807ccec5e4c42","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                          self.s1_id)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":186,"context_line":"    def test_rebuild_server_in_stop_state(self):"},{"line_number":187,"context_line":"        # The server in stop state  should be rebuilt using the provided "},{"line_number":188,"context_line":"        # image and remain in SHUTOFF state"},{"line_number":189,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2Fx48%3D","line":186,"in_reply_to":"AAAATn%2F%2Fx8A%3D","updated":"2013-10-29 07:22:23.000000000","message":"I see, thanks in advance.","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"4631a8b62659b6a314c79121ad8ca7f821b12450","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                          self.s1_id)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":186,"context_line":"    def test_rebuild_server_in_stop_state(self):"},{"line_number":187,"context_line":"        # The server in stop state  should be rebuilt using the provided "},{"line_number":188,"context_line":"        # image and remain in SHUTOFF state"},{"line_number":189,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2Fx8A%3D","line":186,"in_reply_to":"AAAATn%2F%2FyDU%3D","updated":"2013-10-29 07:05:13.000000000","message":"Ken,  this test does not need admin user. but test_rebuild_server_in_error_state require admin user to reset vm state to \"error\". This two testcases is the same type tests, so I put them together.   I could move this test out to tempest/api/compute/server/test_server_actions.py\n\nThanks for your review!","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9aa44251a94560af19e2a9836383d0e41d9e1e42","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":232,"context_line":"        CONF \u003d config.TempestConfig()"},{"line_number":233,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":234,"context_line":"        tried \u003d 1"},{"line_number":235,"context_line":"        while True:"},{"line_number":236,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FyCo%3D","line":233,"updated":"2013-10-29 06:16:35.000000000","message":"This timeout handling code seems different from other places.\n\nin addition, this code has be implemented in wait_for_server_status() already.\n tempest/common/waiters.py\n\nso I guess this code(line232 - 247) is unnecessary and it is enough to call just wait_for_server_status().","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"4e33a383de3c15ea235c8904693c2000e6f652a4","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":232,"context_line":"        CONF \u003d config.TempestConfig()"},{"line_number":233,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":234,"context_line":"        tried \u003d 1"},{"line_number":235,"context_line":"        while True:"},{"line_number":236,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FLro%3D","line":233,"in_reply_to":"AAAATn%2F%2FYFk%3D","updated":"2013-11-13 09:06:05.000000000","message":"Thank you, Ken\u0027ichi! I have fix it in the latest patch..","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"8494b491c00a3e9924ecd40c5cd12265a84fe450","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":232,"context_line":"        CONF \u003d config.TempestConfig()"},{"line_number":233,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":234,"context_line":"        tried \u003d 1"},{"line_number":235,"context_line":"        while True:"},{"line_number":236,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2FYFk%3D","line":233,"in_reply_to":"AAAATn%2F%2Fx2s%3D","updated":"2013-11-07 22:08:42.000000000","message":"Could you give me any feedback about my above comment?","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2c2409999aaece498b5f9a696a7807ccec5e4c42","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":232,"context_line":"        CONF \u003d config.TempestConfig()"},{"line_number":233,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":234,"context_line":"        tried \u003d 1"},{"line_number":235,"context_line":"        while True:"},{"line_number":236,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2Fx2s%3D","line":233,"in_reply_to":"AAAATn%2F%2Fx8k%3D","updated":"2013-10-29 07:22:23.000000000","message":"Thanks for your explanation. I understand this purpose. Your comment is reasonable.\n\nI have still one comment.\nThe calculation of max_retries is different from other place, and I concern this calculation would mislead the meaning of build_timeout and build_interval.\n\nso how about changing this handling code to the similar code as  wait_for_server_status() internal ?","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"4631a8b62659b6a314c79121ad8ca7f821b12450","unresolved":false,"context_lines":[{"line_number":230,"context_line":""},{"line_number":231,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":232,"context_line":"        CONF \u003d config.TempestConfig()"},{"line_number":233,"context_line":"        max_retries \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":234,"context_line":"        tried \u003d 1"},{"line_number":235,"context_line":"        while True:"},{"line_number":236,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAATn%2F%2Fx8k%3D","line":233,"in_reply_to":"AAAATn%2F%2FyCo%3D","updated":"2013-10-29 07:05:13.000000000","message":"since this test need wait vm\u0027s status from error to active and  wait_for_server_status will throws exception if vm\u0027s status is error. \nI\u0027ll add a comment to clarify.","commit_id":"4cb8609d2ea89366c82624e478f31f1f9bffbd64"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"bc6e2301c52ac382c9c244e5f4bc1ef4f3987942","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        tried \u003d 1"},{"line_number":214,"context_line":"        while True:"},{"line_number":215,"context_line":"            try:"},{"line_number":216,"context_line":"                self.non_admin_client.wait_for_server_status("},{"line_number":217,"context_line":"                    rebuilt_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":218,"context_line":"                break"},{"line_number":219,"context_line":"            except exceptions.BuildErrorException:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FPh8%3D","line":216,"updated":"2013-11-12 11:34:17.000000000","message":"May would be easier to add raise_on_error\u003dTrue option to the wait_for_server_status.\nNow it raises an exception by default if the status is ERROR, but it should be an optional default behavior.","commit_id":"9df1233885f818b9ff029013bbc7b51994783284"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"446a6c0a22f2c2951900116cbb909615c2d8160c","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        tried \u003d 1"},{"line_number":214,"context_line":"        while True:"},{"line_number":215,"context_line":"            try:"},{"line_number":216,"context_line":"                self.non_admin_client.wait_for_server_status("},{"line_number":217,"context_line":"                    rebuilt_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":218,"context_line":"                break"},{"line_number":219,"context_line":"            except exceptions.BuildErrorException:"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAATn%2F%2FLso%3D","line":216,"in_reply_to":"AAAATn%2F%2FPh8%3D","updated":"2013-11-13 09:03:48.000000000","message":"Thanks for your great idea! fix it in next patch.","commit_id":"9df1233885f818b9ff029013bbc7b51994783284"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6c962e68de0148293c66371b1c22da9cc6632c79","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    def test_rebuild_server_in_error_state(self):"},{"line_number":186,"context_line":"        # The server in error state should be rebuilt using the provided"},{"line_number":187,"context_line":"        # image and changed to ACTIVE state"},{"line_number":188,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"},{"line_number":189,"context_line":"        # resetting vm state require admin priviledge"},{"line_number":190,"context_line":"        resp, server \u003d self.client.reset_state(server_id, state\u003d\u0027error\u0027)"},{"line_number":191,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2FIbg%3D","line":188,"updated":"2013-11-14 02:29:30.000000000","message":"For cleaning the code up, It is better to use self.s1_id instead of self.servers[0][\u0027id\u0027]. Because self.servers[0][\u0027id\u0027] is set in self.create_test_server() internally and it is not set in this test class.","commit_id":"8cce7f662bc02ab17e73847bf037bc4a1eaf405e"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"d53e31a9715cef28892a4f5ff34d2f334849e59d","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    def test_rebuild_server_in_error_state(self):"},{"line_number":186,"context_line":"        # The server in error state should be rebuilt using the provided"},{"line_number":187,"context_line":"        # image and changed to ACTIVE state"},{"line_number":188,"context_line":"        server_id \u003d self.servers[0][\u0027id\u0027]"},{"line_number":189,"context_line":"        # resetting vm state require admin priviledge"},{"line_number":190,"context_line":"        resp, server \u003d self.client.reset_state(server_id, state\u003d\u0027error\u0027)"},{"line_number":191,"context_line":"        self.assertEqual(202, resp.status)"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2FHVo%3D","line":188,"in_reply_to":"AAAATn%2F%2FIbg%3D","updated":"2013-11-18 09:05:47.000000000","message":"thanks, Ken\u0027ichi. will fix in next patch","commit_id":"8cce7f662bc02ab17e73847bf037bc4a1eaf405e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6c962e68de0148293c66371b1c22da9cc6632c79","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        # Verify the properties in the initial response are correct"},{"line_number":200,"context_line":"        self.assertEqual(server_id, rebuilt_server[\u0027id\u0027])"},{"line_number":201,"context_line":"        rebuilt_image_id \u003d rebuilt_server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":202,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":203,"context_line":"        self.assertEqual(self.flavor_ref, int(rebuilt_server[\u0027flavor\u0027][\u0027id\u0027]))"},{"line_number":204,"context_line":"        self.non_admin_client.wait_for_server_status(rebuilt_server[\u0027id\u0027],"},{"line_number":205,"context_line":"                                                     \u0027ACTIVE\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2FIYQ%3D","line":202,"updated":"2013-11-14 02:29:30.000000000","message":"Why don\u0027t you check image_id with assertEqual() like the other place?\n\nex:\n  self.assertEqual(self.image_ref_alt, rebuilt_server[\u0027image\u0027][\u0027id\u0027])","commit_id":"8cce7f662bc02ab17e73847bf037bc4a1eaf405e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6c962e68de0148293c66371b1c22da9cc6632c79","unresolved":false,"context_lines":[{"line_number":207,"context_line":"        # Verify the server properties after rebuilding"},{"line_number":208,"context_line":"        resp, server \u003d self.non_admin_client.get_server(rebuilt_server[\u0027id\u0027])"},{"line_number":209,"context_line":"        rebuilt_image_id \u003d server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":210,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"class ServersAdminTestXML(ServersAdminTestJSON):"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2FIYI%3D","line":210,"updated":"2013-11-14 02:29:30.000000000","message":"ditto:\n\nex:\n self.assertEqual(self.image_ref_alt, server[\u0027image\u0027][\u0027id\u0027])","commit_id":"8cce7f662bc02ab17e73847bf037bc4a1eaf405e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"0d3d4ef58b205b285aab82114435a21f6e1aca97","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        # Verify the properties in the initial response are correct"},{"line_number":200,"context_line":"        self.assertEqual(self.s1_id, rebuilt_server[\u0027id\u0027])"},{"line_number":201,"context_line":"        rebuilt_image_id \u003d rebuilt_server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":202,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":203,"context_line":"        self.assertEqual(self.flavor_ref, int(rebuilt_server[\u0027flavor\u0027][\u0027id\u0027]))"},{"line_number":204,"context_line":"        self.non_admin_client.wait_for_server_status(rebuilt_server[\u0027id\u0027],"},{"line_number":205,"context_line":"                                                     \u0027ACTIVE\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2BsrU%3D","line":202,"updated":"2013-11-21 11:56:42.000000000","message":"This seems a lack of fixing.\n\nWhy don\u0027t you check image_id with assertEqual() like the other place?\nex:\n  self.assertEqual(self.image_ref_alt, rebuilt_server[\u0027image\u0027][\u0027id\u0027])","commit_id":"5fe7688f5ce2893eb05b1b18e3a1819baacab4c6"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"917aa508d030ffffdec31882e16e83dc432ed6f3","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        # Verify the properties in the initial response are correct"},{"line_number":200,"context_line":"        self.assertEqual(self.s1_id, rebuilt_server[\u0027id\u0027])"},{"line_number":201,"context_line":"        rebuilt_image_id \u003d rebuilt_server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":202,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":203,"context_line":"        self.assertEqual(self.flavor_ref, int(rebuilt_server[\u0027flavor\u0027][\u0027id\u0027]))"},{"line_number":204,"context_line":"        self.non_admin_client.wait_for_server_status(rebuilt_server[\u0027id\u0027],"},{"line_number":205,"context_line":"                                                     \u0027ACTIVE\u0027,"}],"source_content_type":"text/x-python","patch_set":18,"id":"AAAATn%2F%2Bsj0%3D","line":202,"in_reply_to":"AAAATn%2F%2BsrU%3D","updated":"2013-11-21 12:34:52.000000000","message":"yes. thank you!","commit_id":"5fe7688f5ce2893eb05b1b18e3a1819baacab4c6"}],"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"20191c9657e52e6619d6b38beacbc5a2fb3bb74e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":130,"context_line":"        self.client.wait_for_server_status(rebuilt_server[\u0027id\u0027], \u0027ACTIVE\u0027)"},{"line_number":131,"context_line":"        resp, server \u003d self.client.get_server(rebuilt_server[\u0027id\u0027])"},{"line_number":132,"context_line":"        rebuilt_image_id \u003d server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":133,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":134,"context_line":"        self.assertEqual(new_name, server[\u0027name\u0027])"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2F47I%3D","line":132,"updated":"2013-09-17 16:55:57.000000000","message":"Do we need to add below assertion:\nself.assertTrue(server[\u0027image\u0027][\u0027id\u0027] \u003d\u003d rebuilt_server[\u0027image\u0027][\u0027id\u0027])","commit_id":"412e2109d65d2c89fcdc88f870fcf7b6a844b921"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"d027594997a68a512788ca10d1a2f7fef5d25a30","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":185,"context_line":"        CONF \u003d tempest.config.TempestConfig()"},{"line_number":186,"context_line":"        max_time \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":187,"context_line":"        tried \u003d 1"},{"line_number":188,"context_line":"        while True:"},{"line_number":189,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2F4rU%3D","line":186,"updated":"2013-09-17 17:55:23.000000000","message":"Compare to max_time, the name of max_retries looks better.","commit_id":"412e2109d65d2c89fcdc88f870fcf7b6a844b921"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"ce2407502c75078e7f6543b39352c31875085f74","unresolved":false,"context_lines":[{"line_number":183,"context_line":""},{"line_number":184,"context_line":"        # Verify the server properties after the rebuild completes"},{"line_number":185,"context_line":"        CONF \u003d tempest.config.TempestConfig()"},{"line_number":186,"context_line":"        max_time \u003d CONF.compute.build_timeout / CONF.compute.build_interval"},{"line_number":187,"context_line":"        tried \u003d 1"},{"line_number":188,"context_line":"        while True:"},{"line_number":189,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FZPs%3D","line":186,"in_reply_to":"AAAAS3%2F%2F4rU%3D","updated":"2013-09-27 15:37:07.000000000","message":"Done","commit_id":"412e2109d65d2c89fcdc88f870fcf7b6a844b921"},{"author":{"_account_id":8641,"name":"DennyZhang","email":"filebat.mark@gmail.com","username":"dennyzhang"},"change_message_id":"d027594997a68a512788ca10d1a2f7fef5d25a30","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                break"},{"line_number":193,"context_line":"            except exceptions.BuildErrorException:"},{"line_number":194,"context_line":"                # the error state is set by this testcase,"},{"line_number":195,"context_line":"                # so deal with the exception by itself"},{"line_number":196,"context_line":"                if tried \u003e max_time:"},{"line_number":197,"context_line":"                    raise"},{"line_number":198,"context_line":"                tried +\u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2F4qo%3D","line":195,"updated":"2013-09-17 17:55:23.000000000","message":"shall we log some messages, instead of simply mute previous exceptions.","commit_id":"412e2109d65d2c89fcdc88f870fcf7b6a844b921"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"ce2407502c75078e7f6543b39352c31875085f74","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                break"},{"line_number":193,"context_line":"            except exceptions.BuildErrorException:"},{"line_number":194,"context_line":"                # the error state is set by this testcase,"},{"line_number":195,"context_line":"                # so deal with the exception by itself"},{"line_number":196,"context_line":"                if tried \u003e max_time:"},{"line_number":197,"context_line":"                    raise"},{"line_number":198,"context_line":"                tried +\u003d 1"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAS3%2F%2FZPo%3D","line":195,"in_reply_to":"AAAAS3%2F%2F4qo%3D","updated":"2013-09-27 15:37:07.000000000","message":"Done","commit_id":"412e2109d65d2c89fcdc88f870fcf7b6a844b921"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6c962e68de0148293c66371b1c22da9cc6632c79","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        # Verify the properties in the initial response are correct"},{"line_number":162,"context_line":"        self.assertEqual(server_id, rebuilt_server[\u0027id\u0027])"},{"line_number":163,"context_line":"        rebuilt_image_id \u003d rebuilt_server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":164,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":165,"context_line":"        self.assertEqual(self.flavor_ref, int(rebuilt_server[\u0027flavor\u0027][\u0027id\u0027]))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"        # Verify the server properties after the rebuild completes"}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2FIXo%3D","line":164,"updated":"2013-11-14 02:29:30.000000000","message":"The same point as test_servers.py.","commit_id":"8cce7f662bc02ab17e73847bf037bc4a1eaf405e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"6c962e68de0148293c66371b1c22da9cc6632c79","unresolved":false,"context_lines":[{"line_number":168,"context_line":"        self.client.wait_for_server_status(rebuilt_server[\u0027id\u0027], \u0027SHUTOFF\u0027)"},{"line_number":169,"context_line":"        resp, server \u003d self.client.get_server(rebuilt_server[\u0027id\u0027])"},{"line_number":170,"context_line":"        rebuilt_image_id \u003d server[\u0027image\u0027][\u0027id\u0027]"},{"line_number":171,"context_line":"        self.assertTrue(self.image_ref_alt.endswith(rebuilt_image_id))"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def _detect_server_image_flavor(self, server_id):"},{"line_number":174,"context_line":"        # Detects the current server image flavor ref."}],"source_content_type":"text/x-python","patch_set":16,"id":"AAAATn%2F%2FIXk%3D","line":171,"updated":"2013-11-14 02:29:30.000000000","message":"ditto","commit_id":"8cce7f662bc02ab17e73847bf037bc4a1eaf405e"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"250c78a61b83f1b7f716975b68ffad33030b23d4","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        personality \u003d [{\u0027path\u0027: \u0027rebuild.txt\u0027,"},{"line_number":118,"context_line":"                       \u0027contents\u0027: base64.b64encode(file_contents)}]"},{"line_number":119,"context_line":"        password \u003d \u0027rebuildPassw0rd\u0027"},{"line_number":120,"context_line":"        self.addCleanup(self.client.rebuild, self.server_id, self.image_ref)"},{"line_number":121,"context_line":"        resp, rebuilt_server \u003d self.client.rebuild(self.server_id,"},{"line_number":122,"context_line":"                                                   self.image_ref_alt,"},{"line_number":123,"context_line":"                                                   name\u003dnew_name,"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAATn%2F9rMw%3D","line":120,"updated":"2013-12-08 15:44:25.000000000","message":"Generally, this line is after the rebuild.","commit_id":"34084911fa053a80dfb9b348d6f6c4ca553137c4"},{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"250c78a61b83f1b7f716975b68ffad33030b23d4","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":147,"context_line":"    def test_rebuild_server_in_stop_state(self):"},{"line_number":148,"context_line":"        # The server in stop state  should be rebuilt using the provided"},{"line_number":149,"context_line":"        # image and remain in SHUTOFF state"},{"line_number":150,"context_line":"        resp, server \u003d self.client.stop(self.server_id)"},{"line_number":151,"context_line":"        self.assertEqual(202, resp.status)"},{"line_number":152,"context_line":"        self.client.wait_for_server_status(self.server_id, \u0027SHUTOFF\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"AAAATn%2F9rMs%3D","line":149,"updated":"2013-12-08 15:44:25.000000000","message":"Due to you add the line:120, I consider if we need get the server first here, then we can ensure that we use different image to rebuild the server, and rebuild action has been executed indeed in nova.","commit_id":"34084911fa053a80dfb9b348d6f6c4ca553137c4"}]}
