)]}'
{"tempest/api/network/test_security_groups_negative.py":[{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"c876c48130f3647e9c78d3630497b3498c7f359a","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    @test.idempotent_id(\u002755100aa8-b24f-333c-0bef-64eefd85f15c\u0027)"},{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_38ece08e","line":217,"range":{"start_line":217,"start_character":0,"end_line":217,"end_character":42},"updated":"2016-06-21 09:00:19.000000000","message":"This check seems a bit fragile - I understand there should not be any SG defined at this point, but perhaps it would be better to check for the SG name.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ccb08b1bdfe5d0903f46d3db3d873a0ec2f16e47","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    @test.idempotent_id(\u002755100aa8-b24f-333c-0bef-64eefd85f15c\u0027)"},{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_4db747d8","line":217,"range":{"start_line":217,"start_character":0,"end_line":217,"end_character":42},"in_reply_to":"5a9d85d2_38ece08e","updated":"2016-07-05 17:48:57.000000000","message":"A default security group is always available to a tenant, unless the network were to be with port_security_enabled\u003dFalse, but that\u0027s not the case for this test.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"770bc10928a5344b9dd8bd4d24fb3c37dc741e84","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_367a03f2","line":218,"range":{"start_line":218,"start_character":26,"end_line":218,"end_character":42},"updated":"2016-07-05 20:46:07.000000000","message":"I am not sure this http error status is ideal for this situation. Are there any possibilities to change this status to BadRequest instead in the future?\n\nThis test case seems to try changing the default sg name and getting a Conflict response. However, API-WG guideline doesn\u0027t contain this situation. Instead, Conflict should be returned like the following situation:\n\napi-wg/guidelines/http.rst\n* If a request is made which attempts to perform an action on a resource which\n  is already performing that action and therefore the request cannot be\n  fulfilled (for example, snapshotting an instance which is already in the\n  process of snapshotting), the return code should be **409 Conflict**.\n\nThis guideline doesn\u0027t mention we should not use the Conflict on this test situation, but this situation seems different from the guideline for me.\n\nIn addition, on this negative case, Neutron doesn\u0027t communicate with the other services. So it doesn\u0027t seem an integrated test which is the scope of Tempest.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"80735122dd429e787732d2dd41b8d0fd780e0884","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_64297037","line":218,"range":{"start_line":218,"start_character":26,"end_line":218,"end_character":42},"in_reply_to":"1aa78d24_367a03f2","updated":"2016-07-05 23:56:23.000000000","message":"As much as I would like to agree with you, this is obviously a wart of the existing API and we can\u0027t change it willy nilly. We can definitely change the behavior but it\u0027s not currently high on the list of our priorities.\n\nAre you still ok in accepting this test? It\u0027s still validating the behavior how it\u0027s meant to be, despite the idiosyncrasy of the specific API call.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"5cc5ccd58a632e85915ec55fdb4f7cf05f8bb47e","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_b9985f6b","line":218,"range":{"start_line":218,"start_character":26,"end_line":218,"end_character":42},"in_reply_to":"1aa78d24_53bd0fb6","updated":"2016-07-06 23:07:37.000000000","message":"My understanding is that defcore can pick up any test so long as it\u0027s accessible via the tempest plugin mechanism. This test is indeed executed via the plugin mechanism and thus there\u0027s a chance defcore will pick it up (according to their own guidelines), irrespective of where it is located.\n\nI don\u0027t honestly see we are going to change the behavior of this API any time soon. If you are still uncomfortable with this, then we\u0027ll have to abandon this patch and keep the test in the Neutron tree.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"d6a2128252ec7e5efd66d2bcf0891abab18d0bc8","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_53bd0fb6","line":218,"range":{"start_line":218,"start_character":26,"end_line":218,"end_character":42},"in_reply_to":"1aa78d24_64297037","updated":"2016-07-06 06:57:43.000000000","message":"Thanks for explaining the situation on neutron side, that is good input for QA team.\n\nIf merging this patch which is not concrete API behavior, there is a possibility Defcore team will pick this test up as an interoperability test. Then it is difficult to remove the test and change it.\nSo at this time, I don\u0027t think it is worth moving this test from the project to tempest side.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":8873,"name":"Assaf Muller","email":"amuller@redhat.com","username":"amuller"},"change_message_id":"881714c3e7fdf5ddb4ea243ab6f41eea6a657609","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_bf80ff4a","line":218,"range":{"start_line":218,"start_character":26,"end_line":218,"end_character":42},"in_reply_to":"1aa78d24_b9985f6b","updated":"2016-07-07 22:16:29.000000000","message":"I\u0027m confused by what seems to be going on in this discussion.\n\nNeutron has an API. It has a test that verifies this API. Whether this API is correct or not is not up to the *test* to decide, it is up to the code itself. The testing framework should be validating the *current* behavior, and if that behavior should change, so should the test.\n\nThe location of the test has nothing to do with any of this. The proper location, seeing as how it\u0027s a test for a core resource, belongs in Tempest and not in the Neutron Tempest plugin, which is what we\u0027re trying to do here.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a08c85308ec141f4863dc3f180784a76ca29dc54","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    def test_update_default_security_group_name(self):"},{"line_number":216,"context_line":"        sg_list \u003d self.security_groups_client.list_security_groups()"},{"line_number":217,"context_line":"        sg \u003d sg_list[\u0027security_groups\u0027][0]"},{"line_number":218,"context_line":"        self.assertRaises(lib_exc.Conflict,"},{"line_number":219,"context_line":"                          self.security_groups_client.update_security_group,"},{"line_number":220,"context_line":"                          sg[\u0027id\u0027], name\u003d\u0027test\u0027)"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_be92b849","line":218,"range":{"start_line":218,"start_character":26,"end_line":218,"end_character":42},"in_reply_to":"1aa78d24_bf80ff4a","updated":"2016-07-08 04:57:11.000000000","message":"Assaf,\n\nI have different thinking. TBH, I cannot see a big merit of tests which are *only* for passing/succeeding on current implementation. The best situation is we find actual bugs/bad behaviors of current implementation during the test implementation for better quality.\n\nAs I and Armando discussed, we are not sure this API behavior is the best and it can be changed. If this change happens and the test exists in Tempest, we need to change both Tempest and Neutron for a single change only. And the test code will be dirty for passing both API behaviors of master/stables.\n\nThis kind of thing happened on nova side also before, and these tests are accepting both 40X response like\n\nhttps://github.com/openstack/tempest/blob/master/tempest/api/compute/admin/test_fixed_ips_negative.py#L83\n\nI\u0027d like to avoid this situation again.","commit_id":"9ba707d8d95c2fef5250a16beeebc550bf05e2c0"}]}
