)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7e4342e5a0815f371faaa3efe53fdf04ea01c4a3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"NOTE: Commit ee7a0198261 documented this know issue with a release note"},{"line_number":15,"context_line":"\"known-issue-on-api-1efca45440136f3e.yaml\" and cleaned the \"default\""},{"line_number":16,"context_line":"security group from the Nova API."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I20b8d5d2a300c83a59bdb33374fc20447ce2ede3"},{"line_number":19,"context_line":"Related-bug: 1175464"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bacf61ea_d8e69915","line":17,"updated":"2016-08-02 23:44:35.000000000","message":"Add a Depends-On: I630008a9733624a9d9b59b7aa3b8b2a3f8985d61 for this to pass stable/mitaka. I\u0027m not sure what we\u0027re going to do about stable/liberty.","commit_id":"2ed96d1413a386c1994e4a39396e5cb6074f7735"}],"tempest/scenario/test_security_groups_basic_ops.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"35a8a2abe8967f57e53b2720f6af563f21d1fe02","unresolved":false,"context_lines":[{"line_number":625,"context_line":"                self._log_console_output(servers\u003dtenant.servers)"},{"line_number":626,"context_line":"            raise"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"    @test.requires_ext(service\u003d\u0027network\u0027, extension\u003d\u0027port-security\u0027)"},{"line_number":629,"context_line":"    @test.idempotent_id(\u0027037e57d4-c250-4eab-b0df-2924816a386b\u0027)"},{"line_number":630,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":631,"context_line":"    def test_empty_security_group_disabled_port_security(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_0d7bba2a","line":628,"range":{"start_line":628,"start_character":42,"end_line":628,"end_character":67},"updated":"2016-07-14 16:38:32.000000000","message":"We\u0027d have to ask someone from neutron but I\u0027m not sure we even want this, maybe HenryG or armax can tell us.","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"bc777debe04648f866e4450a783a96239767cb94","unresolved":false,"context_lines":[{"line_number":625,"context_line":"                self._log_console_output(servers\u003dtenant.servers)"},{"line_number":626,"context_line":"            raise"},{"line_number":627,"context_line":""},{"line_number":628,"context_line":"    @test.requires_ext(service\u003d\u0027network\u0027, extension\u003d\u0027port-security\u0027)"},{"line_number":629,"context_line":"    @test.idempotent_id(\u0027037e57d4-c250-4eab-b0df-2924816a386b\u0027)"},{"line_number":630,"context_line":"    @test.services(\u0027compute\u0027, \u0027network\u0027)"},{"line_number":631,"context_line":"    def test_empty_security_group_disabled_port_security(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_5aac73ed","line":628,"range":{"start_line":628,"start_character":42,"end_line":628,"end_character":67},"in_reply_to":"1aa78d24_0d7bba2a","updated":"2016-07-18 08:56:09.000000000","message":"I couldn\u0027t make it run without this. I\u0027m going to ask around.","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"35a8a2abe8967f57e53b2720f6af563f21d1fe02","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        tenant \u003d self.primary_tenant"},{"line_number":639,"context_line":"        # create a port on the network and boot with that"},{"line_number":640,"context_line":"        port \u003d self._create_port(tenant.network[\u0027id\u0027],"},{"line_number":641,"context_line":"                                 port_security_enabled\u003dFalse)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        name \u003d data_utils.rand_name(\u0027server-smoke\u0027)"},{"line_number":644,"context_line":"        server \u003d self.create_server("}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_4df14295","line":641,"range":{"start_line":640,"start_character":8,"end_line":641,"end_character":61},"updated":"2016-07-14 16:38:32.000000000","message":"So the actual bug that was fixed in nova was with the port_security_enabled\u003dFalse on the network, not a port coming in, although both are probably good scenarios.\n\nhttps://review.openstack.org/#/c/284095/17/nova/network/neutronv2/api.py@628\n\nBut I was thinking the test would need to create a tenant network with port_security_enabled\u003dFalse and then boot a server into that. Then we\u0027d make sure the server is created and there isn\u0027t a security group applied to the port that nova creates.","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5927edb45963f113bf313fd286a515e27e678d3e","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        tenant \u003d self.primary_tenant"},{"line_number":639,"context_line":"        # create a port on the network and boot with that"},{"line_number":640,"context_line":"        port \u003d self._create_port(tenant.network[\u0027id\u0027],"},{"line_number":641,"context_line":"                                 port_security_enabled\u003dFalse)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        name \u003d data_utils.rand_name(\u0027server-smoke\u0027)"},{"line_number":644,"context_line":"        server \u003d self.create_server("}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_edfd8e3c","line":641,"range":{"start_line":640,"start_character":8,"end_line":641,"end_character":61},"in_reply_to":"1aa78d24_4df14295","updated":"2016-07-14 16:39:36.000000000","message":"I had a bunch of recreate notes in a scenario here when I was reviewing the original change:\n\nhttp://paste.openstack.org/show/491809/\n\nThat can probably help flesh out the test.","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"5bcadf652b7711f5313b678b14bf7ace10f288d6","unresolved":false,"context_lines":[{"line_number":637,"context_line":"        \"\"\""},{"line_number":638,"context_line":"        tenant \u003d self.primary_tenant"},{"line_number":639,"context_line":"        # create a port on the network and boot with that"},{"line_number":640,"context_line":"        port \u003d self._create_port(tenant.network[\u0027id\u0027],"},{"line_number":641,"context_line":"                                 port_security_enabled\u003dFalse)"},{"line_number":642,"context_line":""},{"line_number":643,"context_line":"        name \u003d data_utils.rand_name(\u0027server-smoke\u0027)"},{"line_number":644,"context_line":"        server \u003d self.create_server("}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_6a915b46","line":641,"range":{"start_line":640,"start_character":8,"end_line":641,"end_character":61},"in_reply_to":"1aa78d24_edfd8e3c","updated":"2016-07-15 10:54:36.000000000","message":"Thanks, that helps me a lot. It will take a little time to change this test accordingly.","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"35a8a2abe8967f57e53b2720f6af563f21d1fe02","unresolved":false,"context_lines":[{"line_number":649,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":650,"context_line":"            clients\u003dtenant.manager)"},{"line_number":651,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":652,"context_line":"        self.assertTrue(\u0027security_group\u0027 not in server)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        access_point_ssh \u003d self._connect_to_access_point(tenant)"},{"line_number":655,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1aa78d24_cd58928d","line":652,"range":{"start_line":652,"start_character":8,"end_line":652,"end_character":55},"updated":"2016-07-14 16:38:32.000000000","message":"This is wrong and will always be true. The server GET response has a \u0027security_groups\u0027 key to a list of dicts, and that list should be empty, see the sample here:\n\nhttp://developer.openstack.org/api-ref/compute/?expanded\u003dshow-server-details-detail#id23\n\nIt\u0027s really just a list of dicts with a single \u0027name\u0027 key. But the list should be empty in our case.","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"718622d3ee69240f8ec099b86dc71cdd99ddfe77","unresolved":false,"context_lines":[{"line_number":649,"context_line":"            wait_until\u003d\u0027ACTIVE\u0027,"},{"line_number":650,"context_line":"            clients\u003dtenant.manager)"},{"line_number":651,"context_line":"        server \u003d self.servers_client.show_server(server[\u0027id\u0027])[\u0027server\u0027]"},{"line_number":652,"context_line":"        self.assertTrue(\u0027security_group\u0027 not in server)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        access_point_ssh \u003d self._connect_to_access_point(tenant)"},{"line_number":655,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fad55976_94c88976","line":652,"range":{"start_line":652,"start_character":8,"end_line":652,"end_character":55},"in_reply_to":"1aa78d24_cd58928d","updated":"2016-07-15 16:56:14.000000000","message":"Do you say that there should be a test case which shows that the return of the default secgroup in case of POST [1] is wrong?\n\n    servers[0][ATTRIBUTE_NAME] \u003d req_obj[\u0027server\u0027].get(\n               ATTRIBUTE_NAME, [{\u0027name\u0027: \u0027default\u0027}])\n\n[1] https://github.com/openstack/nova/blob/ec036338c1db49ba8661c9eecec41af79eaf2d59/nova/api/openstack/compute/security_groups.py#L471","commit_id":"7d9c5733a3bf3b825f565a6273dc149bca321608"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"7b597ae67b9056717e231a128db68b45797a7946","unresolved":false,"context_lines":[{"line_number":282,"context_line":"        if use_security_groups:"},{"line_number":283,"context_line":"            self.assertEqual("},{"line_number":284,"context_line":"                sorted([s[\u0027name\u0027] for s in security_groups]),"},{"line_number":285,"context_line":"                sorted([s[\u0027name\u0027] for s in server[\u0027security_groups\u0027]]))"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"        # Verify servers are on different compute nodes"},{"line_number":288,"context_line":"        if self.multi_node:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fad55976_c77891fb","line":285,"range":{"start_line":285,"start_character":43,"end_line":285,"end_character":68},"updated":"2016-07-15 17:19:59.000000000","message":"The api-ref says \"server[\u0027security_groups\u0027]\" will at least be an empty list, but it isn\u0027t. I assume it\u0027s because the enrichment of the API response at [1] assumes that this list will never be empty.\n\n[1] https://github.com/openstack/nova/blob/ec036338c1db49ba8661c9eecec41af79eaf2d59/nova/api/openstack/compute/security_groups.py#L459-L461","commit_id":"7b60cee58d958ba34d7b4135f74cf0b73524f607"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a858510aaad1cfdd627483b393bbb1d0e9bbc202","unresolved":false,"context_lines":[{"line_number":639,"context_line":"        sec_groups \u003d []"},{"line_number":640,"context_line":"        server \u003d self._create_server(name, tenant, sec_groups)"},{"line_number":641,"context_line":"        server_id \u003d server[\u0027id\u0027]"},{"line_number":642,"context_line":"        for port in self._list_ports(device_id\u003dserver_id):"},{"line_number":643,"context_line":"            self.assertEmpty(port[\u0027security_groups\u0027],"},{"line_number":644,"context_line":"                             \"Neutron shouldn\u0027t even use it\u0027s default sec \""},{"line_number":645,"context_line":"                             \"group.\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_9881c1fe","line":642,"range":{"start_line":642,"start_character":25,"end_line":642,"end_character":36},"updated":"2016-08-02 23:49:15.000000000","message":"Seems we should assert that we created at least one port.","commit_id":"2ed96d1413a386c1994e4a39396e5cb6074f7735"}]}
