)]}'
{"tempest/api/compute/servers/test_attach_interfaces.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"44feb41bf73161a060285eb75be8160537f6a411","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        def _wait_for_interface_increase():"},{"line_number":315,"context_line":"            _ifs \u003d self.interfaces_client.list_interfaces("},{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            if len(_ifs) \u003e original_interface_count:"},{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_0e9faa51","line":317,"range":{"start_line":317,"start_character":25,"end_line":317,"end_character":51},"updated":"2018-09-27 03:22:32.000000000","message":"Would it be better to do `len(_ifs) \u003d\u003d original_interface_count + 1` to conform with your comment above: \"increase by one\"?","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30f927fbd4f3cfa62b4114c2bf2605069c59ff60","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        def _wait_for_interface_increase():"},{"line_number":315,"context_line":"            _ifs \u003d self.interfaces_client.list_interfaces("},{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            if len(_ifs) \u003e original_interface_count:"},{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_51ff6fff","line":317,"range":{"start_line":317,"start_character":25,"end_line":317,"end_character":51},"in_reply_to":"3f79a3b5_0e9faa51","updated":"2018-09-27 17:21:09.000000000","message":"Sure.","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c9d155c2dcceb8d890235891e6cd4e8b53a2cbe9","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            if len(_ifs) \u003e original_interface_count:"},{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":321,"context_line":"                                   CONF.compute.build_timeout)"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_38574c2a","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":34},"updated":"2018-09-27 02:11:35.000000000","message":"If call_until_true finally returns false, shall we raise an assertion exception?","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30f927fbd4f3cfa62b4114c2bf2605069c59ff60","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            if len(_ifs) \u003e original_interface_count:"},{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":321,"context_line":"                                   CONF.compute.build_timeout)"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_91142743","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":34},"in_reply_to":"3f79a3b5_2e05c615","updated":"2018-09-27 17:21:09.000000000","message":"Oh I thought it raised an exception, I guess I didn\u0027t look close enough. I\u0027ll raise TimeoutException if it returns False.","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"06d5b7f47e4ea1a77576c4094fd443ad47ffe6c7","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            if len(_ifs) \u003e original_interface_count:"},{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":321,"context_line":"                                   CONF.compute.build_timeout)"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_2e05c615","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":34},"in_reply_to":"3f79a3b5_2ec70668","updated":"2018-09-27 03:39:09.000000000","message":"o, we may write something like:\n    self.assertTrue(test_utils.call_until_true(...),\n                    \"failed to get interface after add_fixed_ip\")","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"44feb41bf73161a060285eb75be8160537f6a411","unresolved":false,"context_lines":[{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            if len(_ifs) \u003e original_interface_count:"},{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":321,"context_line":"                                   CONF.compute.build_timeout)"},{"line_number":322,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_2ec70668","line":319,"range":{"start_line":319,"start_character":8,"end_line":319,"end_character":34},"in_reply_to":"3f79a3b5_38574c2a","updated":"2018-09-27 03:22:32.000000000","message":"Wouldn\u0027t it be tempest.lib.TimeoutException","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c9d155c2dcceb8d890235891e6cd4e8b53a2cbe9","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":321,"context_line":"                                   CONF.compute.build_timeout)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Remove the fixed IP from server."},{"line_number":324,"context_line":"        server_detail \u003d self.os_primary.servers_client.show_server("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_5869e8f5","line":321,"range":{"start_line":321,"start_character":48,"end_line":321,"end_character":61},"updated":"2018-09-27 02:11:35.000000000","message":"build_interval","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30f927fbd4f3cfa62b4114c2bf2605069c59ff60","unresolved":false,"context_lines":[{"line_number":318,"context_line":"                return True"},{"line_number":319,"context_line":"        test_utils.call_until_true(_wait_for_interface_increase,"},{"line_number":320,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":321,"context_line":"                                   CONF.compute.build_timeout)"},{"line_number":322,"context_line":""},{"line_number":323,"context_line":"        # Remove the fixed IP from server."},{"line_number":324,"context_line":"        server_detail \u003d self.os_primary.servers_client.show_server("}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_f1055b11","line":321,"range":{"start_line":321,"start_character":48,"end_line":321,"end_character":61},"in_reply_to":"3f79a3b5_5869e8f5","updated":"2018-09-27 17:21:09.000000000","message":"Oops yeah. Copy/paste error.","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"44feb41bf73161a060285eb75be8160537f6a411","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        def _wait_for_interface_decrease():"},{"line_number":339,"context_line":"            _ifs \u003d self.interfaces_client.list_interfaces("},{"line_number":340,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":341,"context_line":"            if len(_ifs) \u003d\u003d original_interface_count:"},{"line_number":342,"context_line":"                return True"},{"line_number":343,"context_line":"        test_utils.call_until_true(_wait_for_interface_decrease,"},{"line_number":344,"context_line":"                                   CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_0e7a4a24","line":341,"updated":"2018-09-27 03:22:32.000000000","message":"While this function does return None by default which will work with the logic in `call_until_true`, it would be a little cleaner if this returned False outside the conditional statement.","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"06d5b7f47e4ea1a77576c4094fd443ad47ffe6c7","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        def _wait_for_interface_decrease():"},{"line_number":339,"context_line":"            _ifs \u003d self.interfaces_client.list_interfaces("},{"line_number":340,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":341,"context_line":"            if len(_ifs) \u003d\u003d original_interface_count:"},{"line_number":342,"context_line":"                return True"},{"line_number":343,"context_line":"        test_utils.call_until_true(_wait_for_interface_decrease,"},{"line_number":344,"context_line":"                                   CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_a9feb001","line":341,"in_reply_to":"3f79a3b5_0e7a4a24","updated":"2018-09-27 03:39:09.000000000","message":"then maybe we can write:\nreturn len(_ifs) \u003d\u003d original_interface_count","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30f927fbd4f3cfa62b4114c2bf2605069c59ff60","unresolved":false,"context_lines":[{"line_number":338,"context_line":"        def _wait_for_interface_decrease():"},{"line_number":339,"context_line":"            _ifs \u003d self.interfaces_client.list_interfaces("},{"line_number":340,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":341,"context_line":"            if len(_ifs) \u003d\u003d original_interface_count:"},{"line_number":342,"context_line":"                return True"},{"line_number":343,"context_line":"        test_utils.call_until_true(_wait_for_interface_decrease,"},{"line_number":344,"context_line":"                                   CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_112257a4","line":341,"in_reply_to":"3f79a3b5_a9feb001","updated":"2018-09-27 17:21:09.000000000","message":"Done","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"c9d155c2dcceb8d890235891e6cd4e8b53a2cbe9","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                return True"},{"line_number":343,"context_line":"        test_utils.call_until_true(_wait_for_interface_decrease,"},{"line_number":344,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":345,"context_line":"                                   CONF.compute.build_timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_786ce406","line":345,"range":{"start_line":345,"start_character":48,"end_line":345,"end_character":61},"updated":"2018-09-27 02:11:35.000000000","message":"ditto","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"30f927fbd4f3cfa62b4114c2bf2605069c59ff60","unresolved":false,"context_lines":[{"line_number":342,"context_line":"                return True"},{"line_number":343,"context_line":"        test_utils.call_until_true(_wait_for_interface_decrease,"},{"line_number":344,"context_line":"                                   CONF.compute.build_timeout,"},{"line_number":345,"context_line":"                                   CONF.compute.build_timeout)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d1337ff6","line":345,"range":{"start_line":345,"start_character":48,"end_line":345,"end_character":61},"in_reply_to":"3f79a3b5_786ce406","updated":"2018-09-27 17:21:09.000000000","message":"Done","commit_id":"7e895d5c8209de59f0932bc9a8dceb4a22e20af7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"11c006e67e0af44e30969a513fcc9c57b7b8575d","unresolved":false,"context_lines":[{"line_number":311,"context_line":"        self.servers_client.add_fixed_ip(server[\u0027id\u0027], networkId\u003dnetwork_id)"},{"line_number":312,"context_line":"        # Wait for the interface count to increase by one."},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        def _wait_for_interface_increase():"},{"line_number":315,"context_line":"            _ifs \u003d self.interfaces_client.list_interfaces("},{"line_number":316,"context_line":"                server[\u0027id\u0027])[\u0027interfaceAttachments\u0027]"},{"line_number":317,"context_line":"            return len(_ifs) \u003d\u003d original_interface_count + 1"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"        if not test_utils.call_until_true("},{"line_number":320,"context_line":"                _wait_for_interface_increase, CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f79a3b5_2a6d8b2e","line":317,"range":{"start_line":314,"start_character":7,"end_line":317,"end_character":60},"updated":"2018-09-28 13:02:22.000000000","message":"This logic must be wrong because I am seeing two fixed IPs for the instance, but they are on the same port:\n\nhttp://logs.openstack.org/88/605488/2/check/tempest-full/ef86320/controller/logs/screen-n-cpu.txt.gz#_Sep_28_01_04_54_447194\n\nAnd yeah that\u0027s how the code works in nova, it finds the first port and subnet on the given network that can add a new fixed IP, so I need to check the list of fixed_ips in the interfaceAttachments results.","commit_id":"3775cc237eb1bd9ebadf1fba87be0d954884b6e2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"312c71cee4c29e0e9f650c0bd185a5a0d4cc53cb","unresolved":false,"context_lines":[{"line_number":313,"context_line":"        # There should be one entry for the single network mapped to a list of"},{"line_number":314,"context_line":"        # addresses, which at this point should just have one entry."},{"line_number":315,"context_line":"        self.assertEqual(1, len(addresses), addresses)"},{"line_number":316,"context_line":"        original_ip_count \u003d len(addresses.values())"},{"line_number":317,"context_line":"        self.assertEqual(1, original_ip_count, addresses)"},{"line_number":318,"context_line":"        network_id \u003d ifs[0][\u0027net_id\u0027]"},{"line_number":319,"context_line":"        # Add another fixed IP to the server. This should result in another"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_e476df0c","line":316,"range":{"start_line":316,"start_character":42,"end_line":316,"end_character":48},"updated":"2018-09-28 20:00:57.000000000","message":"This is wrong, this is just the single network entry, which is mapped to a list of IPs, so we really need:\n\nlen(list(addresses.values())[0])","commit_id":"9387319df0b4262b35e76a14da74c2dcb4c66d05"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"312c71cee4c29e0e9f650c0bd185a5a0d4cc53cb","unresolved":false,"context_lines":[{"line_number":325,"context_line":"        def _wait_for_ip_increase():"},{"line_number":326,"context_line":"            _addresses \u003d self.os_primary.servers_client.list_addresses("},{"line_number":327,"context_line":"                server[\u0027id\u0027])[\u0027addresses\u0027]"},{"line_number":328,"context_line":"            return len(_addresses.values()) \u003d\u003d original_ip_count + 1"},{"line_number":329,"context_line":""},{"line_number":330,"context_line":"        if not test_utils.call_until_true("},{"line_number":331,"context_line":"                _wait_for_ip_increase, CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_c48163c4","line":328,"range":{"start_line":328,"start_character":34,"end_line":328,"end_character":40},"updated":"2018-09-28 20:00:57.000000000","message":"same","commit_id":"9387319df0b4262b35e76a14da74c2dcb4c66d05"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"312c71cee4c29e0e9f650c0bd185a5a0d4cc53cb","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        def _wait_for_ip_decrease():"},{"line_number":352,"context_line":"            _addresses \u003d self.os_primary.servers_client.list_addresses("},{"line_number":353,"context_line":"                server[\u0027id\u0027])[\u0027addresses\u0027]"},{"line_number":354,"context_line":"            return len(_addresses) \u003d\u003d original_ip_count"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        if not test_utils.call_until_true("},{"line_number":357,"context_line":"                _wait_for_ip_decrease, CONF.compute.build_timeout,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_24705709","line":354,"range":{"start_line":354,"start_character":23,"end_line":354,"end_character":33},"updated":"2018-09-28 20:00:57.000000000","message":"wrong","commit_id":"9387319df0b4262b35e76a14da74c2dcb4c66d05"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"e9d5d5d271260df0439ad92dea41ccecd04bddf6","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @decorators.idempotent_id(\u0027d290c06c-f5b3-11e7-8ec8-002293781009\u0027)"},{"line_number":223,"context_line":"    @utils.services(\u0027network\u0027)"},{"line_number":224,"context_line":"    def test_create_list_show_delete_interfaces_by_fixed_ip(self):"},{"line_number":225,"context_line":"        # NOTE(zhufl) By default only project that is admin or network owner"},{"line_number":226,"context_line":"        # or project with role advsvc is authorised to create interfaces with"},{"line_number":227,"context_line":"        # fixed-ip, so if we don\u0027t create network for each project, do not"},{"line_number":228,"context_line":"        # test _test_create_interface_by_fixed_ips."},{"line_number":229,"context_line":"        if not (CONF.auth.use_dynamic_credentials and"},{"line_number":230,"context_line":"                CONF.auth.create_isolated_networks and"},{"line_number":231,"context_line":"                not CONF.network.shared_physical_network):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_a7c9b75a","line":228,"range":{"start_line":224,"start_character":0,"end_line":228,"end_character":51},"updated":"2018-09-30 02:23:54.000000000","message":"Seems this rule also applies to add_fixed_ip.\nwhen I run test_add_remove_fixed_ip with create_isolated_networks\u003dTrue, it passes, \nand with create_isolated_networks\u003dFalse, it fails(add_fixed_ip doesn\u0027t return error but it hasn\u0027t add any ip for the server)","commit_id":"68f470b4c0a57cba284e1e3848325b1d567504d2"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"d629a97b9dbf2ebad829fab5594510e351d618be","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @decorators.idempotent_id(\u0027d290c06c-f5b3-11e7-8ec8-002293781009\u0027)"},{"line_number":223,"context_line":"    @utils.services(\u0027network\u0027)"},{"line_number":224,"context_line":"    def test_create_list_show_delete_interfaces_by_fixed_ip(self):"},{"line_number":225,"context_line":"        # NOTE(zhufl) By default only project that is admin or network owner"},{"line_number":226,"context_line":"        # or project with role advsvc is authorised to create interfaces with"},{"line_number":227,"context_line":"        # fixed-ip, so if we don\u0027t create network for each project, do not"},{"line_number":228,"context_line":"        # test _test_create_interface_by_fixed_ips."},{"line_number":229,"context_line":"        if not (CONF.auth.use_dynamic_credentials and"},{"line_number":230,"context_line":"                CONF.auth.create_isolated_networks and"},{"line_number":231,"context_line":"                not CONF.network.shared_physical_network):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_5424fdb1","line":228,"range":{"start_line":224,"start_character":0,"end_line":228,"end_character":51},"in_reply_to":"3f79a3b5_792c9400","updated":"2018-10-12 15:03:02.000000000","message":"@zhufl I agree with mriedem here. This bug in test_add_remove_fixed_ip that you\u0027re pointing out existed independently of the changes in this patch. It\u0027s a good point and I agree we should fix it, but I don\u0027t think it\u0027s something we should hold up this patch on, because it\u0027s pre-existing issue with the test being modified. That being said I pushed up a patch to handle it here:\n\nhttps://review.openstack.org/#/c/610073/\n\nSo we can work on fixing the bug your pointed out independently from what mriedem is trying to fix with the test here.","commit_id":"68f470b4c0a57cba284e1e3848325b1d567504d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1f85eceeefb69421d2737d36c3dcca581d7652ae","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @decorators.idempotent_id(\u0027d290c06c-f5b3-11e7-8ec8-002293781009\u0027)"},{"line_number":223,"context_line":"    @utils.services(\u0027network\u0027)"},{"line_number":224,"context_line":"    def test_create_list_show_delete_interfaces_by_fixed_ip(self):"},{"line_number":225,"context_line":"        # NOTE(zhufl) By default only project that is admin or network owner"},{"line_number":226,"context_line":"        # or project with role advsvc is authorised to create interfaces with"},{"line_number":227,"context_line":"        # fixed-ip, so if we don\u0027t create network for each project, do not"},{"line_number":228,"context_line":"        # test _test_create_interface_by_fixed_ips."},{"line_number":229,"context_line":"        if not (CONF.auth.use_dynamic_credentials and"},{"line_number":230,"context_line":"                CONF.auth.create_isolated_networks and"},{"line_number":231,"context_line":"                not CONF.network.shared_physical_network):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_0ef44386","line":228,"range":{"start_line":224,"start_character":0,"end_line":228,"end_character":51},"in_reply_to":"3f79a3b5_a7c9b75a","updated":"2018-09-30 15:29:44.000000000","message":"Isn\u0027t that a latent issue? I\u0027m not sure what it has to do with the bug I\u0027m trying to fix in this patch.","commit_id":"68f470b4c0a57cba284e1e3848325b1d567504d2"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"c69348c5efad93c297097a8d07b50ef8eae80e9e","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @decorators.idempotent_id(\u0027d290c06c-f5b3-11e7-8ec8-002293781009\u0027)"},{"line_number":223,"context_line":"    @utils.services(\u0027network\u0027)"},{"line_number":224,"context_line":"    def test_create_list_show_delete_interfaces_by_fixed_ip(self):"},{"line_number":225,"context_line":"        # NOTE(zhufl) By default only project that is admin or network owner"},{"line_number":226,"context_line":"        # or project with role advsvc is authorised to create interfaces with"},{"line_number":227,"context_line":"        # fixed-ip, so if we don\u0027t create network for each project, do not"},{"line_number":228,"context_line":"        # test _test_create_interface_by_fixed_ips."},{"line_number":229,"context_line":"        if not (CONF.auth.use_dynamic_credentials and"},{"line_number":230,"context_line":"                CONF.auth.create_isolated_networks and"},{"line_number":231,"context_line":"                not CONF.network.shared_physical_network):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_b456835d","line":228,"range":{"start_line":224,"start_character":0,"end_line":228,"end_character":51},"in_reply_to":"3f79a3b5_a7c9b75a","updated":"2018-10-03 11:16:01.000000000","message":"Isn\u0027t this related to: https://bugs.launchpad.net/tempest/+bug/1778003 ?","commit_id":"68f470b4c0a57cba284e1e3848325b1d567504d2"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"8a7c04bea39f1f2c1b5d8cbb51857d248ebcc5b9","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @decorators.idempotent_id(\u0027d290c06c-f5b3-11e7-8ec8-002293781009\u0027)"},{"line_number":223,"context_line":"    @utils.services(\u0027network\u0027)"},{"line_number":224,"context_line":"    def test_create_list_show_delete_interfaces_by_fixed_ip(self):"},{"line_number":225,"context_line":"        # NOTE(zhufl) By default only project that is admin or network owner"},{"line_number":226,"context_line":"        # or project with role advsvc is authorised to create interfaces with"},{"line_number":227,"context_line":"        # fixed-ip, so if we don\u0027t create network for each project, do not"},{"line_number":228,"context_line":"        # test _test_create_interface_by_fixed_ips."},{"line_number":229,"context_line":"        if not (CONF.auth.use_dynamic_credentials and"},{"line_number":230,"context_line":"                CONF.auth.create_isolated_networks and"},{"line_number":231,"context_line":"                not CONF.network.shared_physical_network):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_ea360550","line":228,"range":{"start_line":224,"start_character":0,"end_line":228,"end_character":51},"in_reply_to":"3f79a3b5_b456835d","updated":"2018-10-08 02:59:27.000000000","message":"I mean, if we run test_add_remove_fixed_ip with create_isolated_networks set to False in tempest.conf, the testcase will fail.\nSo we should apply the same skip mechanism for  test_add_remove_fixed_ip as test_create_list_show_delete_interfaces_by_fixed_ip does.","commit_id":"68f470b4c0a57cba284e1e3848325b1d567504d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"904ecbb0dcdfa31f4ecc2cfcecf3ba52b1ed7e3f","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    @decorators.idempotent_id(\u0027d290c06c-f5b3-11e7-8ec8-002293781009\u0027)"},{"line_number":223,"context_line":"    @utils.services(\u0027network\u0027)"},{"line_number":224,"context_line":"    def test_create_list_show_delete_interfaces_by_fixed_ip(self):"},{"line_number":225,"context_line":"        # NOTE(zhufl) By default only project that is admin or network owner"},{"line_number":226,"context_line":"        # or project with role advsvc is authorised to create interfaces with"},{"line_number":227,"context_line":"        # fixed-ip, so if we don\u0027t create network for each project, do not"},{"line_number":228,"context_line":"        # test _test_create_interface_by_fixed_ips."},{"line_number":229,"context_line":"        if not (CONF.auth.use_dynamic_credentials and"},{"line_number":230,"context_line":"                CONF.auth.create_isolated_networks and"},{"line_number":231,"context_line":"                not CONF.network.shared_physical_network):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_792c9400","line":228,"range":{"start_line":224,"start_character":0,"end_line":228,"end_character":51},"in_reply_to":"3f79a3b5_ea360550","updated":"2018-10-12 14:40:59.000000000","message":"\u003e I mean, if we run test_add_remove_fixed_ip with create_isolated_networks set to False in tempest.conf, the testcase will fail.\n\nBut isn\u0027t that a latent issue? Or are you saying that my change will regress this test if create_isolated_networks\u003dFalse in tempest.conf?\n\nIf it\u0027s a latent bug, then I don\u0027t see why my fix is being held up on it.","commit_id":"68f470b4c0a57cba284e1e3848325b1d567504d2"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1e64d7cf73d348d96529ab40f0d421bff6045b8e","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        # There should be one entry for the single network mapped to a list of"},{"line_number":350,"context_line":"        # addresses, which at this point should just have one entry."},{"line_number":351,"context_line":"        self.assertEqual(1, len(addresses), addresses)"},{"line_number":352,"context_line":"        original_ip_count \u003d len(list(addresses.values())[0])"},{"line_number":353,"context_line":"        self.assertEqual(1, original_ip_count, addresses)"},{"line_number":354,"context_line":"        network_id \u003d ifs[0][\u0027net_id\u0027]"},{"line_number":355,"context_line":"        # Add another fixed IP to the server. This should result in another"},{"line_number":356,"context_line":"        # fixed IP on the same network (and same port since we only have one"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_405e9151","line":353,"range":{"start_line":352,"start_character":8,"end_line":353,"end_character":57},"updated":"2018-11-06 20:33:42.000000000","message":"original_ip_count is coming back as 2:\n\ntesttools.matchers._impl.MismatchError: 1 !\u003d 2: {u\u0027tempest-AttachInterfacesUnderV243Test-383217305-network\u0027: [{u\u0027version\u0027: 4, u\u0027addr\u0027: u\u002710.1.0.5\u0027}, {u\u0027version\u0027: 4, u\u0027addr\u0027: u\u0027172.24.5.4\u0027}]}\n\nI\u0027m not sure what those different fixed IPs are, but it really probably doesn\u0027t matter for the test, which only cares about adding a new fixed IP to the server and there should be a delta in the number of fixed IPs.","commit_id":"dfd9317f3df29bcdc43b8b4a9383ea58ff5d7f1d"}]}
