)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"9ad866869748d0ef2a1046eaf62644e2dd7f7046","unresolved":false,"context_lines":[{"line_number":12,"context_line":"without creating it and is running in the same time."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I8d7de49c27b05f1bbabeba0f49625c8766931367"},{"line_number":15,"context_line":"RelatedBugs: 1753211"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_e27f1367","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":20},"updated":"2018-09-25 07:35:54.000000000","message":"RelatedBugs: #1753211\nIf CONF.compute.fixed_network_name is set correctly, then \"u\u0027Multiple possible networks found, use a Network ID to be more specific.\u0027\" shouldn\u0027t appear?","commit_id":"60149b1284ef0d2906ed1ca5691712745733d1dc"}],"tempest/api/compute/base.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12e9e6e651c21c936c97999e08e28ca685a57a93","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        # NOTE(snikitin): since microversion v2.37 \u0027networks\u0027 field is required"},{"line_number":236,"context_line":"        if (request_version \u003e\u003d v2_37_version and \u0027networks\u0027 not in kwargs and"},{"line_number":237,"context_line":"            not tenant_network):"},{"line_number":238,"context_line":"            kwargs[\u0027networks\u0027] \u003d \u0027none\u0027"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        body, servers \u003d compute.create_test_server("},{"line_number":241,"context_line":"            cls.os_primary,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_cae22903","side":"PARENT","line":238,"updated":"2018-09-25 14:05:27.000000000","message":"Can you explain what this part of the change is for?","commit_id":"9a95eb84eabfb8764f877b7317ce3ba1027eaea3"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"f46b95117e60b914da6522a6f683a227462a6b3e","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        # NOTE(snikitin): since microversion v2.37 \u0027networks\u0027 field is required"},{"line_number":236,"context_line":"        if (request_version \u003e\u003d v2_37_version and \u0027networks\u0027 not in kwargs and"},{"line_number":237,"context_line":"            not tenant_network):"},{"line_number":238,"context_line":"            kwargs[\u0027networks\u0027] \u003d \u0027none\u0027"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"        body, servers \u003d compute.create_test_server("},{"line_number":241,"context_line":"            cls.os_primary,"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_d0cc1664","side":"PARENT","line":238,"in_reply_to":"3f79a3b5_cae22903","updated":"2018-09-25 15:16:50.000000000","message":"after this change cls.get_tenant_network() will always return a network of skip test execution by raising an exception. Therefore this workaround is not more necessary or even worst it is potentially hiding some configuration problem.\nThe fact is creating a server VM without giving a network could randomly pickup a network concurrently created by a neutron test that creates a shared network, making tests weak to concurrency issues. The error would appear as a network that could not be deleted by the test that creates a shared network.","commit_id":"9a95eb84eabfb8764f877b7317ce3ba1027eaea3"}],"tempest/lib/common/fixed_network.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12e9e6e651c21c936c97999e08e28ca685a57a93","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    if not is_valid_network(network, fields\u003dvalid_fields):"},{"line_number":91,"context_line":"        raise ValueError("},{"line_number":92,"context_line":"            \"Unable to found any tenant network \""},{"line_number":93,"context_line":"            \"(shared_network_name\u003d{!r})\".format(shared_network_name))"},{"line_number":94,"context_line":"    LOG.info(\u0027Found network available for tenant: %r\u0027, network)"},{"line_number":95,"context_line":"    return network"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_6a7755a1","line":92,"range":{"start_line":92,"start_character":23,"end_line":92,"end_character":28},"updated":"2018-09-25 14:05:27.000000000","message":"nit: find","commit_id":"33318fb5dbffb1d27a97f71b842ed68836956d74"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12e9e6e651c21c936c97999e08e28ca685a57a93","unresolved":false,"context_lines":[{"line_number":111,"context_line":"        if is_valid_network(network, fields\u003d(\u0027id\u0027,)):"},{"line_number":112,"context_line":"            networks.append({\u0027uuid\u0027: network[\u0027id\u0027]})"},{"line_number":113,"context_line":"        else:"},{"line_number":114,"context_line":"            # Because of bugs [1] and [2] it requireda tenant network always"},{"line_number":115,"context_line":"            # to exist"},{"line_number":116,"context_line":"            # [1] https://bugs.launchpad.net/tripleo/+bug/1753209"},{"line_number":117,"context_line":"            # [2] https://bugs.launchpad.net/tripleo/+bug/1753211"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_eabe05ff","line":114,"range":{"start_line":114,"start_character":45,"end_line":114,"end_character":54},"updated":"2018-09-25 14:05:27.000000000","message":"nit: required a","commit_id":"33318fb5dbffb1d27a97f71b842ed68836956d74"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12e9e6e651c21c936c97999e08e28ca685a57a93","unresolved":false,"context_lines":[{"line_number":120,"context_line":""},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"def is_valid_network(network, fields\u003dNone):"},{"line_number":123,"context_line":"    \"\"\"Test whenever network is a dictionary contains required fields"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"    :param fields: list of field names required to be in the network"},{"line_number":126,"context_line":"           dictionary. By default it includes \u0027id\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_2a5b9df6","line":123,"range":{"start_line":123,"start_character":45,"end_line":123,"end_character":53},"updated":"2018-09-25 14:05:27.000000000","message":"nit: containing","commit_id":"33318fb5dbffb1d27a97f71b842ed68836956d74"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"58c8ccfaf607ce4ae5dfe2f9cb7e882116d015d5","unresolved":false,"context_lines":[{"line_number":23,"context_line":"VALID_NETWORK_FIELDS \u003d (\u0027id\u0027,)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"def get_network_from_name(name, compute_networks_client, valid_fields\u003dNone):"},{"line_number":27,"context_line":"    \"\"\"Get a full network dict from just a network name"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    :param str name: the name of the network to use"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_5c7b7f78","line":26,"range":{"start_line":26,"start_character":57,"end_line":26,"end_character":69},"updated":"2018-10-04 08:48:37.000000000","message":"Please also add in doc for \"valid_fields\"","commit_id":"4e5975fdf8ba7919479e30d1197d752071bcb953"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"58c8ccfaf607ce4ae5dfe2f9cb7e882116d015d5","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                if (get_network_name(net) \u003d\u003d name and"},{"line_number":46,"context_line":"                    is_valid_network(net, valid_fields))]"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    # Check that a single network with given name exists, else raise an"},{"line_number":49,"context_line":"    # InvalidTestResource"},{"line_number":50,"context_line":"    if not networks:"},{"line_number":51,"context_line":"        LOG.warning(\"Network with name: %s not found\", name)"},{"line_number":52,"context_line":"        raise exceptions.InvalidTestResource(type\u003d\u0027network\u0027, name\u003dname)"}],"source_content_type":"text/x-python","patch_set":13,"id":"3f79a3b5_7cd19b2e","line":49,"range":{"start_line":48,"start_character":4,"end_line":49,"end_character":25},"updated":"2018-10-04 08:48:37.000000000","message":"This should come before L[53]","commit_id":"4e5975fdf8ba7919479e30d1197d752071bcb953"}],"tempest/test.py":[{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"9ad866869748d0ef2a1046eaf62644e2dd7f7046","unresolved":false,"context_lines":[{"line_number":850,"context_line":"            networks_client \u003d admin_manager.compute_networks_client"},{"line_number":851,"context_line":"        network \u003d fixed_network.get_tenant_network("},{"line_number":852,"context_line":"             cred_provider, networks_client, CONF.compute.fixed_network_name)"},{"line_number":853,"context_line":"        if not network:"},{"line_number":854,"context_line":"            LOG.debug(\"Creates a network for current tenant.\")"},{"line_number":855,"context_line":"            network \u003d networks_client.create_network(name\u003d\u0027tenant-network\u0027)"},{"line_number":856,"context_line":"            cls.addClassResourceCleanup(networks_client.delete_network,"},{"line_number":857,"context_line":"                                        network[\u0027id\u0027])"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        return network"},{"line_number":860,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_623783e6","line":857,"range":{"start_line":853,"start_character":0,"end_line":857,"end_character":54},"updated":"2018-09-25 07:35:54.000000000","message":"If CONF.compute.fixed_network_name is not set correctly, this will prevent users from finding out the issue and so no chance to correct it.","commit_id":"60149b1284ef0d2906ed1ca5691712745733d1dc"},{"author":{"_account_id":27329,"name":"Federico Ressi","email":"fressi@redhat.com","username":"fressi_redhat"},"change_message_id":"f46b95117e60b914da6522a6f683a227462a6b3e","unresolved":false,"context_lines":[{"line_number":850,"context_line":"            networks_client \u003d admin_manager.compute_networks_client"},{"line_number":851,"context_line":"        network \u003d fixed_network.get_tenant_network("},{"line_number":852,"context_line":"             cred_provider, networks_client, CONF.compute.fixed_network_name)"},{"line_number":853,"context_line":"        if not network:"},{"line_number":854,"context_line":"            LOG.debug(\"Creates a network for current tenant.\")"},{"line_number":855,"context_line":"            network \u003d networks_client.create_network(name\u003d\u0027tenant-network\u0027)"},{"line_number":856,"context_line":"            cls.addClassResourceCleanup(networks_client.delete_network,"},{"line_number":857,"context_line":"                                        network[\u0027id\u0027])"},{"line_number":858,"context_line":""},{"line_number":859,"context_line":"        return network"},{"line_number":860,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_f59b4bc5","line":857,"range":{"start_line":853,"start_character":0,"end_line":857,"end_character":54},"in_reply_to":"3f79a3b5_623783e6","updated":"2018-09-25 15:16:50.000000000","message":"You are right","commit_id":"60149b1284ef0d2906ed1ca5691712745733d1dc"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"12e9e6e651c21c936c97999e08e28ca685a57a93","unresolved":false,"context_lines":[{"line_number":855,"context_line":"        except lib_exc.InvalidTestResource:"},{"line_number":856,"context_line":"            raise cls.skipException("},{"line_number":857,"context_line":"                \"A tenant network is required. Please provide a valid name \""},{"line_number":858,"context_line":"                \"setting option compute.fixed_network_name\")"},{"line_number":859,"context_line":""},{"line_number":860,"context_line":"    def assertEmpty(self, items, msg\u003dNone):"},{"line_number":861,"context_line":"        \"\"\"Asserts whether a sequence or collection is empty"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_0a24a15f","line":858,"range":{"start_line":858,"start_character":17,"end_line":858,"end_character":24},"updated":"2018-09-25 14:05:27.000000000","message":"s/in configuration","commit_id":"33318fb5dbffb1d27a97f71b842ed68836956d74"}]}
