)]}'
{"tempest/api/compute/servers/test_servers_negative.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1c22d95a4ef5773e68ceda2cb13c60b359164def","unresolved":false,"context_lines":[{"line_number":500,"context_line":"                          self.server_id)"},{"line_number":501,"context_line":""},{"line_number":502,"context_line":""},{"line_number":503,"context_line":"class ServersNegativeTestMultiTenantJSON(ServersNegativeTestJSON):"},{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":506,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_4fcdd985","line":503,"range":{"start_line":503,"start_character":41,"end_line":503,"end_character":64},"updated":"2016-02-24 18:53:02.000000000","message":"s/Servers/NegativeTestJSON/base.BaseV2ComputeTest/","commit_id":"48a28af043bff301f513b8dd24b92119166b91c9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1c22d95a4ef5773e68ceda2cb13c60b359164def","unresolved":false,"context_lines":[{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"    def setUp(self):"},{"line_number":508,"context_line":"        super(ServersNegativeTestMultiTenantJSON, self).setUp()"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"    def tearDown(self):"},{"line_number":511,"context_line":"        self.server_check_teardown()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_cf2449b4","line":508,"range":{"start_line":507,"start_character":0,"end_line":508,"end_character":63},"updated":"2016-02-24 18:53:02.000000000","message":"This setUp() seems unnecessary because just calling setUp() only.","commit_id":"48a28af043bff301f513b8dd24b92119166b91c9"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"1c22d95a4ef5773e68ceda2cb13c60b359164def","unresolved":false,"context_lines":[{"line_number":515,"context_line":"    def setup_clients(cls):"},{"line_number":516,"context_line":"        super(ServersNegativeTestMultiTenantJSON, cls).setup_clients()"},{"line_number":517,"context_line":"        cls.alt_client \u003d cls.os_alt.servers_client"},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"    @classmethod"},{"line_number":520,"context_line":"    def resource_setup(cls):"},{"line_number":521,"context_line":"        super(ServersNegativeTestMultiTenantJSON, cls).resource_setup()"},{"line_number":522,"context_line":""},{"line_number":523,"context_line":"    @test.attr(type\u003d[\u0027negative\u0027])"},{"line_number":524,"context_line":"    @test.idempotent_id(\u0027543d84c1-dd2e-4c6d-8cb2-b9da0efaa384\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_af50e50b","line":521,"range":{"start_line":518,"start_character":0,"end_line":521,"end_character":71},"updated":"2016-02-24 18:53:02.000000000","message":"ditto","commit_id":"48a28af043bff301f513b8dd24b92119166b91c9"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"6a7a1b4c737467e018d73c7a27a45d4a42c9dba1","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        try:"},{"line_number":510,"context_line":"            waiters.wait_for_server_status(self.client, self.server_id,"},{"line_number":511,"context_line":"                                           \u0027ACTIVE\u0027)"},{"line_number":512,"context_line":"        except Exception:"},{"line_number":513,"context_line":"            self.__class__.server_id \u003d self.rebuild_server(self.server_id)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_8caa4f18","line":512,"updated":"2016-03-07 09:21:10.000000000","message":"Question to anyone: I know this was in the original code, but why do we need this ? There\u0027s no way these 2 negative tests can change the status of a server.","commit_id":"943c00d34fa3ecc348f4ad4ab019c86836d8e2e8"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"58cc854c4cbb5e2410df009b20525186df9d28d8","unresolved":false,"context_lines":[{"line_number":509,"context_line":"        try:"},{"line_number":510,"context_line":"            waiters.wait_for_server_status(self.client, self.server_id,"},{"line_number":511,"context_line":"                                           \u0027ACTIVE\u0027)"},{"line_number":512,"context_line":"        except Exception:"},{"line_number":513,"context_line":"            self.__class__.server_id \u003d self.rebuild_server(self.server_id)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"    def tearDown(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3afc51ec_09a61cc1","line":512,"in_reply_to":"5aef4532_8caa4f18","updated":"2016-03-11 19:43:10.000000000","message":"That\u0027s a good point, I agree we don\u0027t need this setUp method at all for this new class. The 2 tests do no operations on the server created in setupClass.","commit_id":"943c00d34fa3ecc348f4ad4ab019c86836d8e2e8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"e47d43173b7df5ece5a05457fe8d88880a9437c1","unresolved":false,"context_lines":[{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"    def tearDown(self):"},{"line_number":508,"context_line":"        self.server_check_teardown()"},{"line_number":509,"context_line":"        super(ServersNegativeTestMultiTenantJSON, self).tearDown()"},{"line_number":510,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"fa0719c6_e61d4763","line":507,"updated":"2016-03-23 17:24:47.000000000","message":"I think this tearDown is redundant because we have two simple tests: the first is just trying to update name of a server that belongs to another tenant; the second is just trying to delete a server that belongs to another tenant.","commit_id":"89b9bc81294c5d954038ff9405ddf97cadb8fd97"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a5df0269ff946677fc1020a4a15248a6a470a3a","unresolved":false,"context_lines":[{"line_number":504,"context_line":""},{"line_number":505,"context_line":"    credentials \u003d [\u0027primary\u0027, \u0027alt\u0027]"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":"    def tearDown(self):"},{"line_number":508,"context_line":"        self.server_check_teardown()"},{"line_number":509,"context_line":"        super(ServersNegativeTestMultiTenantJSON, self).tearDown()"},{"line_number":510,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_27db461d","line":507,"in_reply_to":"fa0719c6_e61d4763","updated":"2016-04-08 17:09:26.000000000","message":"Yeah, Yaroslav is right here.\n\nserver_check_teardown just waits for ACTIVE status of server, but that is already done on resource_setup(). So this seems unnecessary.","commit_id":"89b9bc81294c5d954038ff9405ddf97cadb8fd97"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"2a5df0269ff946677fc1020a4a15248a6a470a3a","unresolved":false,"context_lines":[{"line_number":511,"context_line":"    @classmethod"},{"line_number":512,"context_line":"    def setup_clients(cls):"},{"line_number":513,"context_line":"        super(ServersNegativeTestMultiTenantJSON, cls).setup_clients()"},{"line_number":514,"context_line":"        cls.client \u003d cls.servers_client"},{"line_number":515,"context_line":"        cls.alt_client \u003d cls.os_alt.servers_client"},{"line_number":516,"context_line":""},{"line_number":517,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a061dce_87afb293","line":514,"range":{"start_line":514,"start_character":8,"end_line":514,"end_character":39},"updated":"2016-04-08 17:09:26.000000000","message":"This cls.client doesn\u0027t seem used.","commit_id":"89b9bc81294c5d954038ff9405ddf97cadb8fd97"}]}
