)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a4a7accdb4bc0355499284ff08cf4ca51f8ca4d6","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixed manager.py to support multinode test on vnic_port"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"1. _create_port moved to correct location"},{"line_number":10,"context_line":"2. added default value to networks"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Co-Authored-By: Moshe Levi \u003cmoshele@mellanox.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"bacf61ea_53e4dcaa","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":41},"updated":"2016-07-30 00:18:29.000000000","message":"Yeah, the method is called from ScenarioTest class, not NetworkScenarioTest. So this move seems reasonable for me.","commit_id":"1f595fe071af0ad60b3551a7111c67a706d2376f"}],"tempest/scenario/manager.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d2a28b3d2395651061b2f8313ed1c6aee5520277","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            wait_dict[\u0027client\u0027] \u003d waiter_client"},{"line_number":129,"context_line":"        self.cleanup_waits.append(wait_dict)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _create_port(self, network_id, client\u003dNone, namestart\u003d\u0027port-quotatest\u0027,"},{"line_number":132,"context_line":"                     **kwargs):"},{"line_number":133,"context_line":"        if not client:"},{"line_number":134,"context_line":"            client \u003d self.ports_client"},{"line_number":135,"context_line":"        name \u003d data_utils.rand_name(namestart)"},{"line_number":136,"context_line":"        result \u003d client.create_port("},{"line_number":137,"context_line":"            name\u003dname,"},{"line_number":138,"context_line":"            network_id\u003dnetwork_id,"},{"line_number":139,"context_line":"            **kwargs)"},{"line_number":140,"context_line":"        self.assertIsNotNone(result, \u0027Unable to allocate port\u0027)"},{"line_number":141,"context_line":"        port \u003d result[\u0027port\u0027]"},{"line_number":142,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":143,"context_line":"                        client.delete_port, port[\u0027id\u0027])"},{"line_number":144,"context_line":"        return port"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _wait_for_cleanups(self):"},{"line_number":147,"context_line":"        # To handle async delete actions, a list of waits is added"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_efd3b45d","line":144,"range":{"start_line":131,"start_character":0,"end_line":144,"end_character":19},"updated":"2016-07-05 02:40:20.000000000","message":"I think we should keep this in NetworkScenarioTest class only.","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"14f47e6a253a81ce390a54d52b41b864aca3bc39","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            wait_dict[\u0027client\u0027] \u003d waiter_client"},{"line_number":129,"context_line":"        self.cleanup_waits.append(wait_dict)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _create_port(self, network_id, client\u003dNone, namestart\u003d\u0027port-quotatest\u0027,"},{"line_number":132,"context_line":"                     **kwargs):"},{"line_number":133,"context_line":"        if not client:"},{"line_number":134,"context_line":"            client \u003d self.ports_client"},{"line_number":135,"context_line":"        name \u003d data_utils.rand_name(namestart)"},{"line_number":136,"context_line":"        result \u003d client.create_port("},{"line_number":137,"context_line":"            name\u003dname,"},{"line_number":138,"context_line":"            network_id\u003dnetwork_id,"},{"line_number":139,"context_line":"            **kwargs)"},{"line_number":140,"context_line":"        self.assertIsNotNone(result, \u0027Unable to allocate port\u0027)"},{"line_number":141,"context_line":"        port \u003d result[\u0027port\u0027]"},{"line_number":142,"context_line":"        self.addCleanup(test_utils.call_and_ignore_notfound_exc,"},{"line_number":143,"context_line":"                        client.delete_port, port[\u0027id\u0027])"},{"line_number":144,"context_line":"        return port"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def _wait_for_cleanups(self):"},{"line_number":147,"context_line":"        # To handle async delete actions, a list of waits is added"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_5b0a8622","line":144,"range":{"start_line":131,"start_character":0,"end_line":144,"end_character":19},"in_reply_to":"1aa78d24_efd3b45d","updated":"2016-07-05 06:02:16.000000000","message":"I disagree\ncreating port is not necessary related to network scenario.\nIf I choose in tempest to create guest with direct port,\nI would expect to be able to run all the test same as for normal port. Otherwise how can I make sure the \nsuspend, resume, migration, boot from volume is working with this kind of port.","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d2a28b3d2395651061b2f8313ed1c6aee5520277","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # as we would expect when passing the call to the clients"},{"line_number":229,"context_line":"            # with no networks"},{"line_number":230,"context_line":"            if not networks:"},{"line_number":231,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":232,"context_line":"                    filters\u003d{\u0027router:external\u0027: False})"},{"line_number":233,"context_line":"                self.assertEqual(1, len(networks),"},{"line_number":234,"context_line":"                                 \"There is more than one\""},{"line_number":235,"context_line":"                                 \" network for the tenant\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_ac47fa49","line":232,"range":{"start_line":231,"start_character":16,"end_line":232,"end_character":55},"updated":"2016-07-05 02:40:20.000000000","message":"list_networks returns all networks embedded in \u0027networks\u0027 object so this should be- \n\nnetworks \u003d clients.networks_client.list_networks(\n                    filters\u003d{\u0027router:external\u0027: False})[\u0027networks\u0027]","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"87a2ca26e22a7da11b5ee6bad2c634034223bc11","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # as we would expect when passing the call to the clients"},{"line_number":229,"context_line":"            # with no networks"},{"line_number":230,"context_line":"            if not networks:"},{"line_number":231,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":232,"context_line":"                    filters\u003d{\u0027router:external\u0027: False})"},{"line_number":233,"context_line":"                self.assertEqual(1, len(networks),"},{"line_number":234,"context_line":"                                 \"There is more than one\""},{"line_number":235,"context_line":"                                 \" network for the tenant\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_a99b5fc8","line":232,"range":{"start_line":231,"start_character":16,"end_line":232,"end_character":55},"in_reply_to":"1aa78d24_ac47fa49","updated":"2016-07-05 08:38:21.000000000","message":"yes, you are right.\n\nthe Mellanox CI took the old patches that pass the multinode test, but not our regular all in one test.\nnow we fixed the CI both CI Jobs to take the latest tempest test.\n\nDone","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d2a28b3d2395651061b2f8313ed1c6aee5520277","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                self.assertEqual(1, len(networks),"},{"line_number":234,"context_line":"                                 \"There is more than one\""},{"line_number":235,"context_line":"                                 \" network for the tenant\")"},{"line_number":236,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg(network)"},{"line_number":237,"context_line":"                            for network in networks]"},{"line_number":238,"context_line":"            for net in networks:"},{"line_number":239,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_4c365653","line":236,"range":{"start_line":236,"start_character":28,"end_line":236,"end_character":69},"updated":"2016-07-05 02:40:20.000000000","message":"we need to prepare networks as list of dict with \u0027uuid\u0027 as expected in L239 and as in kwargs if networks is being passed there. \n\n[{\u0027uuid\u0027: xyz}, {\u0027uuid\u0027: abc}]\n\n-\u003e fixed_network.set_networks_kwarg(network)[\u0027networks\u0027][0]","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"87a2ca26e22a7da11b5ee6bad2c634034223bc11","unresolved":false,"context_lines":[{"line_number":233,"context_line":"                self.assertEqual(1, len(networks),"},{"line_number":234,"context_line":"                                 \"There is more than one\""},{"line_number":235,"context_line":"                                 \" network for the tenant\")"},{"line_number":236,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg(network)"},{"line_number":237,"context_line":"                            for network in networks]"},{"line_number":238,"context_line":"            for net in networks:"},{"line_number":239,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_c9a86bde","line":236,"range":{"start_line":236,"start_character":28,"end_line":236,"end_character":69},"in_reply_to":"1aa78d24_4c365653","updated":"2016-07-05 08:38:21.000000000","message":"Done","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"6986ef6a9b5b16a37a3e8f8807cd6b60670ee905","unresolved":false,"context_lines":[{"line_number":237,"context_line":"                            for network in networks]"},{"line_number":238,"context_line":"            for net in networks:"},{"line_number":239,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"},{"line_number":240,"context_line":"                port \u003d self._create_port(network_id\u003dnet_id,"},{"line_number":241,"context_line":"                                         client\u003dclients.ports_client,"},{"line_number":242,"context_line":"                                         **create_port_body)"},{"line_number":243,"context_line":"                ports.append({\u0027port\u0027: port[\u0027id\u0027]})"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_5030bc01","line":240,"range":{"start_line":240,"start_character":16,"end_line":240,"end_character":40},"updated":"2016-07-04 14:02:20.000000000","message":"We only get here if vnic_type is set in config, which is why this doesn\u0027t fail in the main gate jobs.","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"d2a28b3d2395651061b2f8313ed1c6aee5520277","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        if clients is None:"},{"line_number":194,"context_line":"            clients \u003d self.manager"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        vnic_type \u003d CONF.network.port_vnic_type"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        # If vnic_type is configured create port for"},{"line_number":199,"context_line":"        # every network"},{"line_number":200,"context_line":"        if vnic_type:"},{"line_number":201,"context_line":"            ports \u003d []"},{"line_number":202,"context_line":"            networks \u003d []"},{"line_number":203,"context_line":"            create_port_body \u003d {\u0027binding:vnic_type\u0027: vnic_type,"},{"line_number":204,"context_line":"                                \u0027namestart\u0027: \u0027port-smoke\u0027}"},{"line_number":205,"context_line":"            if kwargs:"},{"line_number":206,"context_line":"                # Convert security group names to security group ids"},{"line_number":207,"context_line":"                # to pass to create_port"},{"line_number":208,"context_line":"                if \u0027security_groups\u0027 in kwargs:"},{"line_number":209,"context_line":"                    security_groups \u003d\\"},{"line_number":210,"context_line":"                        clients.security_groups_client.list_security_groups("},{"line_number":211,"context_line":"                        ).get(\u0027security_groups\u0027)"},{"line_number":212,"context_line":"                    sec_dict \u003d dict([(s[\u0027name\u0027], s[\u0027id\u0027])"},{"line_number":213,"context_line":"                                    for s in security_groups])"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                    sec_groups_names \u003d [s[\u0027name\u0027] for s in kwargs.pop("},{"line_number":216,"context_line":"                        \u0027security_groups\u0027)]"},{"line_number":217,"context_line":"                    security_groups_ids \u003d [sec_dict[s]"},{"line_number":218,"context_line":"                                           for s in sec_groups_names]"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"                    if security_groups_ids:"},{"line_number":221,"context_line":"                        create_port_body["},{"line_number":222,"context_line":"                            \u0027security_groups\u0027] \u003d security_groups_ids"},{"line_number":223,"context_line":"                networks \u003d kwargs.pop(\u0027networks\u0027, None)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            # If there are no networks passed to us we look up"},{"line_number":226,"context_line":"            # for the project\u0027s private networks and create a port"},{"line_number":227,"context_line":"            # if there is only one private network. The same behaviour"},{"line_number":228,"context_line":"            # as we would expect when passing the call to the clients"},{"line_number":229,"context_line":"            # with no networks"},{"line_number":230,"context_line":"            if not networks:"},{"line_number":231,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":232,"context_line":"                    filters\u003d{\u0027router:external\u0027: False})"},{"line_number":233,"context_line":"                self.assertEqual(1, len(networks),"},{"line_number":234,"context_line":"                                 \"There is more than one\""},{"line_number":235,"context_line":"                                 \" network for the tenant\")"},{"line_number":236,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg(network)"},{"line_number":237,"context_line":"                            for network in networks]"},{"line_number":238,"context_line":"            for net in networks:"},{"line_number":239,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"},{"line_number":240,"context_line":"                port \u003d self._create_port(network_id\u003dnet_id,"},{"line_number":241,"context_line":"                                         client\u003dclients.ports_client,"},{"line_number":242,"context_line":"                                         **create_port_body)"},{"line_number":243,"context_line":"                ports.append({\u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":244,"context_line":"            if ports:"},{"line_number":245,"context_line":"                kwargs[\u0027networks\u0027] \u003d ports"},{"line_number":246,"context_line":"            self.ports \u003d ports"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        tenant_network \u003d self.get_tenant_network()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_6f6ea497","line":245,"range":{"start_line":196,"start_character":0,"end_line":245,"end_character":42},"updated":"2016-07-05 02:40:20.000000000","message":"This is something should be done on NetworkScenarioTest class function. \n\n1. nova-network does not support network request with port while creating server. Its 400 if there is any. SO this is only for neutron.\n\n2. It depends on neutron config value which should be used when neutron is enabled. It does not make sense to request network with ports when there is no neutron.\n\nSo I think we should override the method create_server(..) in NetworkScenarioTest class and prepare the network kwargs as per highlighted logic and call this class create_server()","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":12171,"name":"Moshe Levi","email":"moshele@nvidia.com","username":"moshele"},"change_message_id":"14f47e6a253a81ce390a54d52b41b864aca3bc39","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        if clients is None:"},{"line_number":194,"context_line":"            clients \u003d self.manager"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        vnic_type \u003d CONF.network.port_vnic_type"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        # If vnic_type is configured create port for"},{"line_number":199,"context_line":"        # every network"},{"line_number":200,"context_line":"        if vnic_type:"},{"line_number":201,"context_line":"            ports \u003d []"},{"line_number":202,"context_line":"            networks \u003d []"},{"line_number":203,"context_line":"            create_port_body \u003d {\u0027binding:vnic_type\u0027: vnic_type,"},{"line_number":204,"context_line":"                                \u0027namestart\u0027: \u0027port-smoke\u0027}"},{"line_number":205,"context_line":"            if kwargs:"},{"line_number":206,"context_line":"                # Convert security group names to security group ids"},{"line_number":207,"context_line":"                # to pass to create_port"},{"line_number":208,"context_line":"                if \u0027security_groups\u0027 in kwargs:"},{"line_number":209,"context_line":"                    security_groups \u003d\\"},{"line_number":210,"context_line":"                        clients.security_groups_client.list_security_groups("},{"line_number":211,"context_line":"                        ).get(\u0027security_groups\u0027)"},{"line_number":212,"context_line":"                    sec_dict \u003d dict([(s[\u0027name\u0027], s[\u0027id\u0027])"},{"line_number":213,"context_line":"                                    for s in security_groups])"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"                    sec_groups_names \u003d [s[\u0027name\u0027] for s in kwargs.pop("},{"line_number":216,"context_line":"                        \u0027security_groups\u0027)]"},{"line_number":217,"context_line":"                    security_groups_ids \u003d [sec_dict[s]"},{"line_number":218,"context_line":"                                           for s in sec_groups_names]"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"                    if security_groups_ids:"},{"line_number":221,"context_line":"                        create_port_body["},{"line_number":222,"context_line":"                            \u0027security_groups\u0027] \u003d security_groups_ids"},{"line_number":223,"context_line":"                networks \u003d kwargs.pop(\u0027networks\u0027, None)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            # If there are no networks passed to us we look up"},{"line_number":226,"context_line":"            # for the project\u0027s private networks and create a port"},{"line_number":227,"context_line":"            # if there is only one private network. The same behaviour"},{"line_number":228,"context_line":"            # as we would expect when passing the call to the clients"},{"line_number":229,"context_line":"            # with no networks"},{"line_number":230,"context_line":"            if not networks:"},{"line_number":231,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":232,"context_line":"                    filters\u003d{\u0027router:external\u0027: False})"},{"line_number":233,"context_line":"                self.assertEqual(1, len(networks),"},{"line_number":234,"context_line":"                                 \"There is more than one\""},{"line_number":235,"context_line":"                                 \" network for the tenant\")"},{"line_number":236,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg(network)"},{"line_number":237,"context_line":"                            for network in networks]"},{"line_number":238,"context_line":"            for net in networks:"},{"line_number":239,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"},{"line_number":240,"context_line":"                port \u003d self._create_port(network_id\u003dnet_id,"},{"line_number":241,"context_line":"                                         client\u003dclients.ports_client,"},{"line_number":242,"context_line":"                                         **create_port_body)"},{"line_number":243,"context_line":"                ports.append({\u0027port\u0027: port[\u0027id\u0027]})"},{"line_number":244,"context_line":"            if ports:"},{"line_number":245,"context_line":"                kwargs[\u0027networks\u0027] \u003d ports"},{"line_number":246,"context_line":"            self.ports \u003d ports"},{"line_number":247,"context_line":""},{"line_number":248,"context_line":"        tenant_network \u003d self.get_tenant_network()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1aa78d24_3beb3ab2","line":245,"range":{"start_line":196,"start_character":0,"end_line":245,"end_character":42},"in_reply_to":"1aa78d24_6f6ea497","updated":"2016-07-05 06:02:16.000000000","message":"This patch is to fix MultiNodeTest to run with different port type. You suggestion will not solve this problem","commit_id":"6b9db4722d48a663c36ae418a1a3ac3b6a23ac7e"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a4a7accdb4bc0355499284ff08cf4ca51f8ca4d6","unresolved":false,"context_lines":[{"line_number":223,"context_line":"                networks \u003d kwargs.pop(\u0027networks\u0027, None)"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":"            # If there are no networks passed to us we look up"},{"line_number":226,"context_line":"            # for the project\u0027s private networks and create a port"},{"line_number":227,"context_line":"            # The same behaviour as we would expect when passing"},{"line_number":228,"context_line":"            # the call to the clients with no networks"},{"line_number":229,"context_line":"            if not networks:"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_f3afd027","line":226,"range":{"start_line":226,"start_character":62,"end_line":226,"end_character":66},"updated":"2016-07-30 00:18:29.000000000","message":"nit: add \".\" at the end of line.","commit_id":"1f595fe071af0ad60b3551a7111c67a706d2376f"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a4a7accdb4bc0355499284ff08cf4ca51f8ca4d6","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # the call to the clients with no networks"},{"line_number":229,"context_line":"            if not networks:"},{"line_number":230,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":231,"context_line":"                    **{\u0027router:external\u0027: False, \u0027fields\u0027: \u0027id\u0027})[\u0027networks\u0027]"},{"line_number":232,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg("},{"line_number":233,"context_line":"                    network)[\u0027networks\u0027][0] for network in networks]"},{"line_number":234,"context_line":"            for net in networks:"},{"line_number":235,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"},{"line_number":236,"context_line":"                port \u003d self._create_port(network_id\u003dnet_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_3e612fd4","line":233,"range":{"start_line":231,"start_character":0,"end_line":233,"end_character":68},"updated":"2016-07-30 00:18:29.000000000","message":"Why do we need to change here, the commit message doesn\u0027t mention that..","commit_id":"1f595fe071af0ad60b3551a7111c67a706d2376f"},{"author":{"_account_id":14807,"name":"Lenny","email":"lennyb@mellanox.com","username":"lennyb"},"change_message_id":"2920831450b7b5b025cf95ee62ae6058569060bd","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            # the call to the clients with no networks"},{"line_number":229,"context_line":"            if not networks:"},{"line_number":230,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":231,"context_line":"                    **{\u0027router:external\u0027: False, \u0027fields\u0027: \u0027id\u0027})[\u0027networks\u0027]"},{"line_number":232,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg("},{"line_number":233,"context_line":"                    network)[\u0027networks\u0027][0] for network in networks]"},{"line_number":234,"context_line":"            for net in networks:"},{"line_number":235,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"},{"line_number":236,"context_line":"                port \u003d self._create_port(network_id\u003dnet_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_6e15a73e","line":233,"range":{"start_line":231,"start_character":0,"end_line":233,"end_character":68},"in_reply_to":"bacf61ea_3e612fd4","updated":"2016-07-31 07:21:53.000000000","message":"as Ghanshyam Mann correctly pointed this out in his comment, we need to prepare a list of networks.","commit_id":"1f595fe071af0ad60b3551a7111c67a706d2376f"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"0d632cb14dd4dd7a047c9bc074b5ee373e0d8e0b","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            wait_dict[\u0027client\u0027] \u003d waiter_client"},{"line_number":129,"context_line":"        self.cleanup_waits.append(wait_dict)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"    def _create_port(self, network_id, client\u003dNone, namestart\u003d\u0027port-quotatest\u0027,"},{"line_number":132,"context_line":"                     **kwargs):"},{"line_number":133,"context_line":"        if not client:"},{"line_number":134,"context_line":"            client \u003d self.ports_client"}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_353d908f","line":131,"updated":"2016-08-01 15:51:22.000000000","message":"Looks like this method just moved.\n\nPlease try to avoid this kind of code reorg in a bugfix change, it makes the review more difficult.","commit_id":"d37c366a14b4cb48a6ed4343acb3ab0807f856bd"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5ab49e3988fe42f67815611c4fc1be1e4ebccd5f","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            if not networks:"},{"line_number":232,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":233,"context_line":"                    **{\u0027router:external\u0027: False, \u0027fields\u0027: \u0027id\u0027})[\u0027networks\u0027]"},{"line_number":234,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg("},{"line_number":235,"context_line":"                    network)[\u0027networks\u0027][0] for network in networks]"},{"line_number":236,"context_line":"            for net in networks:"},{"line_number":237,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9ad45d7e_5ef551c9","line":234,"range":{"start_line":234,"start_character":42,"end_line":234,"end_character":61},"updated":"2016-08-09 11:30:44.000000000","message":"What is the meaning of L234-235?\n\nThe only thing using set_network_kwargs here achieves is to create a dict: {\u0027networks\u0027: [{\u0027uuid\u0027: network[id]}]} for each network, and you deconstruct that right away, by using [\u0027networks\u0027][0], so you\u0027re building a list of {\u0027uuid\u0027:network_uuid} dicts.\n\nThat\u0027s basically same you would get by skipping the fields filter in L233 and not having L234-235 at all, unless I\u0027m missing something. You may get extra attributes in the network dicts, but at the end you just get what you need from the network in L237, 238.\n\nIt seems to me that if any port was defined for the network, you drop that info, and basically force create the port. Is that the intent, and why? If so, wouldn\u0027t be enough then to skip the check in L238, and just create the port?","commit_id":"0df6563e84d77f92f8f2111514e42b9aa92407f8"},{"author":{"_account_id":14807,"name":"Lenny","email":"lennyb@mellanox.com","username":"lennyb"},"change_message_id":"962c3ac73f23d76fa08aa23133e2ce0a6e267a25","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            if not networks:"},{"line_number":232,"context_line":"                networks \u003d clients.networks_client.list_networks("},{"line_number":233,"context_line":"                    **{\u0027router:external\u0027: False, \u0027fields\u0027: \u0027id\u0027})[\u0027networks\u0027]"},{"line_number":234,"context_line":"                networks \u003d [fixed_network.set_networks_kwarg("},{"line_number":235,"context_line":"                    network)[\u0027networks\u0027][0] for network in networks]"},{"line_number":236,"context_line":"            for net in networks:"},{"line_number":237,"context_line":"                net_id \u003d net[\u0027uuid\u0027]"}],"source_content_type":"text/x-python","patch_set":14,"id":"9ad45d7e_e1ae2097","line":234,"range":{"start_line":234,"start_character":42,"end_line":234,"end_character":61},"in_reply_to":"9ad45d7e_5ef551c9","updated":"2016-08-09 14:19:23.000000000","message":"We can get networks from kwards(L223) or from the neutron(L232). Both of them should be of the same structure.\n\nSo L234 change keys from \u0027id\u0027 to \u0027uuid\u0027.","commit_id":"0df6563e84d77f92f8f2111514e42b9aa92407f8"}]}
