)]}'
{"tempest/scenario/test_network_advanced_server_ops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7cd58ea0348e7bf62af151fa2a5e88c342b28b2d","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        key_name \u003d data_utils.rand_name(\u0027keypair-smoke-\u0027)"},{"line_number":60,"context_line":"        self.keypair \u003d self.create_keypair(name\u003dkey_name)"},{"line_number":61,"context_line":"        self.addCleanup(self.cleanup_wrapper, self.keypair)"},{"line_number":62,"context_line":"        security_group \u003d ("},{"line_number":63,"context_line":"            self._create_security_group_neutron(tenant_id\u003dself.tenant_id))"},{"line_number":64,"context_line":"        self.addCleanup(self.cleanup_wrapper, security_group)"},{"line_number":65,"context_line":"        network \u003d self._create_network(self.tenant_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BsMM%3D","line":62,"updated":"2014-03-25 02:13:36.000000000","message":"unrelated, don\u0027t need this here","commit_id":"e131973ea316f32f5691c50f09f3c9dfa57dfa3b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7cd58ea0348e7bf62af151fa2a5e88c342b28b2d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        self.server.rebuild(image_ref_alt)"},{"line_number":161,"context_line":"        self._wait_server_status_and_check_network_connectivity()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":"    @testtools.skipIf(not CONF.compute_feature_enabled.pause,"},{"line_number":164,"context_line":"                      \u0027Pause is not available.\u0027)"},{"line_number":165,"context_line":"    @services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":166,"context_line":"    def test_server_connectivity_pause_unpause(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BsME%3D","line":163,"updated":"2014-03-25 02:13:36.000000000","message":"Prefer @testtools.skipUnless, then you don\u0027t need the not in the condition.","commit_id":"e131973ea316f32f5691c50f09f3c9dfa57dfa3b"}],"tempest/scenario/test_server_advanced_ops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7cd58ea0348e7bf62af151fa2a5e88c342b28b2d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            msg \u003d \"Skipping test - flavor_ref and flavor_ref_alt are identical\""},{"line_number":44,"context_line":"            raise cls.skipException(msg)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    @testtools.skipIf(not CONF.compute_feature_enabled.resize,"},{"line_number":47,"context_line":"                      \u0027Resize is not available.\u0027)"},{"line_number":48,"context_line":"    @test.services(\u0027compute\u0027)"},{"line_number":49,"context_line":"    def test_resize_server_confirm(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2BsLw%3D","line":46,"updated":"2014-03-25 02:13:36.000000000","message":"skipUnless","commit_id":"e131973ea316f32f5691c50f09f3c9dfa57dfa3b"}],"tempest/scenario/test_server_basic_ops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"67eb86fb04ce2ea39c40ab5f59f5c4d3f02fd3dd","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        instance.delete()"},{"line_number":141,"context_line":"        self.remove_resource(\u0027instance\u0027)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def verify_ssh(self):"},{"line_number":144,"context_line":"        if self.run_ssh:"},{"line_number":145,"context_line":"            # Obtain a floating IP"},{"line_number":146,"context_line":"            floating_ip \u003d self.compute_client.floating_ips.create()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BTXU%3D","line":143,"updated":"2014-03-27 18:36:44.000000000","message":"I guess you could also argue that ssh is part of this scenario but it can be disabled the same way as pause/suspend tests in here.","commit_id":"d018f81a042330d363a10eb15b6dd7037151356c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be4996a8f1b15e9e1f82ab44cff4dfcbb0a4c020","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                raise"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":162,"context_line":"    def test_server_basicops(self):"},{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2Bnks%3D","line":162,"updated":"2014-03-25 14:38:07.000000000","message":"Armando, I think it means have a skipUnless condition on the test method, i.e. skipUnless(pause and suspend).","commit_id":"d018f81a042330d363a10eb15b6dd7037151356c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"bfe339450e28195a219d94758764c3b108356c24","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                raise"},{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":162,"context_line":"    def test_server_basicops(self):"},{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BnfM%3D","line":162,"in_reply_to":"AAAAWH%2F%2Bnks%3D","updated":"2014-03-25 14:47:20.000000000","message":"I get that, but I don\u0027t get why, or else I disagree...even if pause or suspend are disabled features, don\u0027t we still want to test the \"server_basicops\" of booting, verifying ssh and terminate the instance?\n\nThat said the way these tests are engineered is rather questionable...same tests are performed more than is actually necessary, let alone the fact that resources are created even if are unused.\n\nBut that goes beyond the scope of the patch, obviously.","commit_id":"d018f81a042330d363a10eb15b6dd7037151356c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d6a676b0b73c04d01cbd2d55f00da284ff06d61","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        if CONF.compute_feature_enabled.pause:"},{"line_number":167,"context_line":"            self.pause_server()"},{"line_number":168,"context_line":"            self.unpause_server()"},{"line_number":169,"context_line":"        if CONF.compute_feature_enabled.suspend:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F9%2FVg%3D","line":166,"updated":"2014-03-31 18:08:03.000000000","message":"Let\u0027s move the pause/unpause tests to test_server_advanced_ops as a new test case and remove it from basic ops since those aren\u0027t basic ops.","commit_id":"d018f81a042330d363a10eb15b6dd7037151356c"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"cfeec38a35a30e8ce590ba3e44c7661e1b2188b5","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        if CONF.compute_feature_enabled.pause:"},{"line_number":167,"context_line":"            self.pause_server()"},{"line_number":168,"context_line":"            self.unpause_server()"},{"line_number":169,"context_line":"        if CONF.compute_feature_enabled.suspend:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2Bnss%3D","line":166,"updated":"2014-03-25 14:26:30.000000000","message":"you mean here?","commit_id":"d018f81a042330d363a10eb15b6dd7037151356c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0d6a676b0b73c04d01cbd2d55f00da284ff06d61","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        if CONF.compute_feature_enabled.pause:"},{"line_number":167,"context_line":"            self.pause_server()"},{"line_number":168,"context_line":"            self.unpause_server()"},{"line_number":169,"context_line":"        if CONF.compute_feature_enabled.suspend:"},{"line_number":170,"context_line":"            self.suspend_server()"},{"line_number":171,"context_line":"            self.resume_server()"},{"line_number":172,"context_line":"        self.verify_ssh()"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F9%2FV4%3D","line":169,"updated":"2014-03-31 18:08:03.000000000","message":"Let\u0027s remove suspend/resume tests here since test_server_advanced_ops.test_server_sequence_suspend_resume tests those, and those aren\u0027t basic ops anyway.","commit_id":"d018f81a042330d363a10eb15b6dd7037151356c"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b7cfa899e0e90d585627ecfeee9dff47c66cdc9b","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        self.pause_server()"},{"line_number":167,"context_line":"        self.unpause_server()"},{"line_number":168,"context_line":"        self.suspend_server()"},{"line_number":169,"context_line":"        self.resume_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9%2FI8%3D","side":"PARENT","line":166,"updated":"2014-03-31 18:38:47.000000000","message":"So why is this being removed? There is nothing in the commit message about it. It also seems like a separate change unrelated to adding skipIfs but if you include something in the commit message we don\u0027t have to split it out. (Mostly because of how many changes are waiting on this)","commit_id":"184f0153dfe4686a4a5a2183d9c1eb090a7aa0bb"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"f4e4c2ebbe22f42eeae005bc3301da2f9f294ac4","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        self.pause_server()"},{"line_number":167,"context_line":"        self.unpause_server()"},{"line_number":168,"context_line":"        self.suspend_server()"},{"line_number":169,"context_line":"        self.resume_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9%2B4c%3D","side":"PARENT","line":166,"in_reply_to":"AAAAWH%2F9%2B%2BA%3D","updated":"2014-03-31 19:10:52.000000000","message":"tempest/scenario/test_network_advanced_server_ops.py already has these operations covered. Am I missing something?","commit_id":"184f0153dfe4686a4a5a2183d9c1eb090a7aa0bb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44d79768861e8771965bad654a8aa20c17efddfe","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        self.pause_server()"},{"line_number":167,"context_line":"        self.unpause_server()"},{"line_number":168,"context_line":"        self.suspend_server()"},{"line_number":169,"context_line":"        self.resume_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F931w%3D","side":"PARENT","line":166,"in_reply_to":"AAAAWH%2F9%2Bz4%3D","updated":"2014-04-01 14:22:54.000000000","message":"OK, I wasn\u0027t looking at test_network_advanced_server_ops, would be nice if we didn\u0027t have 10 scenario tests with slightly different meanings testing the same APIs...\n\nSo suspend/resume and pause/unpause are covered in the other scenario server advanced ops tests, I\u0027d be OK with just removing these here but you\u0027d also need to remove the methods that are being called - or no longer being called.  And update the commit message to explain why they are being removed now.","commit_id":"184f0153dfe4686a4a5a2183d9c1eb090a7aa0bb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"082b485bec1bd3e21607fbddca1cf561d44d230e","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        self.pause_server()"},{"line_number":167,"context_line":"        self.unpause_server()"},{"line_number":168,"context_line":"        self.suspend_server()"},{"line_number":169,"context_line":"        self.resume_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9%2B%2BA%3D","side":"PARENT","line":166,"in_reply_to":"AAAAWH%2F9%2FI8%3D","updated":"2014-03-31 19:01:30.000000000","message":"Armando, see patch set 6, remove the suspend/resume tests from basic ops and move the pause/unpause to advanced ops.","commit_id":"184f0153dfe4686a4a5a2183d9c1eb090a7aa0bb"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"869c081b3eecdb5163326d43f571ad0c2e916fd2","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        self.pause_server()"},{"line_number":167,"context_line":"        self.unpause_server()"},{"line_number":168,"context_line":"        self.suspend_server()"},{"line_number":169,"context_line":"        self.resume_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F9%2Bz4%3D","side":"PARENT","line":166,"in_reply_to":"AAAAWH%2F9%2FI8%3D","updated":"2014-03-31 19:14:28.000000000","message":"I didn\u0027t mention anything in the test because I thought the review history was enough for people to understand how I got to removing this code.","commit_id":"184f0153dfe4686a4a5a2183d9c1eb090a7aa0bb"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"d002160f89484d7ca571f8cb6346e5887817cfe8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"        self.add_keypair()"},{"line_number":164,"context_line":"        self.create_security_group()"},{"line_number":165,"context_line":"        self.boot_instance()"},{"line_number":166,"context_line":"        self.pause_server()"},{"line_number":167,"context_line":"        self.unpause_server()"},{"line_number":168,"context_line":"        self.suspend_server()"},{"line_number":169,"context_line":"        self.resume_server()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F93cY%3D","side":"PARENT","line":166,"in_reply_to":"AAAAWH%2F931w%3D","updated":"2014-04-01 15:00:18.000000000","message":"Done","commit_id":"184f0153dfe4686a4a5a2183d9c1eb090a7aa0bb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44d79768861e8771965bad654a8aa20c17efddfe","unresolved":false,"context_lines":[{"line_number":98,"context_line":"                                      flavor\u003dself.flavor_ref,"},{"line_number":99,"context_line":"                                      create_kwargs\u003dcreate_kwargs)"},{"line_number":100,"context_line":"        self.set_resource(\u0027instance\u0027, instance)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def pause_server(self):"},{"line_number":103,"context_line":"        instance \u003d self.get_resource(\u0027instance\u0027)"},{"line_number":104,"context_line":"        instance_id \u003d instance.id"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F931c%3D","line":101,"updated":"2014-04-01 14:22:54.000000000","message":"also remove","commit_id":"9a90920ad695179622ff6da85ed3ec862a5c1a1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44d79768861e8771965bad654a8aa20c17efddfe","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        instance.pause()"},{"line_number":108,"context_line":"        self.status_timeout("},{"line_number":109,"context_line":"            self.compute_client.servers, instance_id, \u0027PAUSED\u0027)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def unpause_server(self):"},{"line_number":112,"context_line":"        instance \u003d self.get_resource(\u0027instance\u0027)"},{"line_number":113,"context_line":"        instance_id \u003d instance.id"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F931Y%3D","line":110,"updated":"2014-04-01 14:22:54.000000000","message":"also remove","commit_id":"9a90920ad695179622ff6da85ed3ec862a5c1a1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44d79768861e8771965bad654a8aa20c17efddfe","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        instance.unpause()"},{"line_number":117,"context_line":"        self.status_timeout("},{"line_number":118,"context_line":"            self.compute_client.servers, instance_id, \u0027ACTIVE\u0027)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def suspend_server(self):"},{"line_number":121,"context_line":"        instance \u003d self.get_resource(\u0027instance\u0027)"},{"line_number":122,"context_line":"        instance_id \u003d instance.id"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F931Q%3D","line":119,"updated":"2014-04-01 14:22:54.000000000","message":"also remove","commit_id":"9a90920ad695179622ff6da85ed3ec862a5c1a1b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"44d79768861e8771965bad654a8aa20c17efddfe","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        instance.suspend()"},{"line_number":126,"context_line":"        self.status_timeout(self.compute_client.servers,"},{"line_number":127,"context_line":"                            instance_id, \u0027SUSPENDED\u0027)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    def resume_server(self):"},{"line_number":130,"context_line":"        instance \u003d self.get_resource(\u0027instance\u0027)"},{"line_number":131,"context_line":"        instance_id \u003d instance.id"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAWH%2F931I%3D","line":128,"updated":"2014-04-01 14:22:54.000000000","message":"also remove","commit_id":"9a90920ad695179622ff6da85ed3ec862a5c1a1b"}]}
