)]}'
{"openstackclient/compute/v2/server.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"734bf91f549a19e910ce640b9579f3482405ec79","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                        \"v6-fixed-ip\": \"\", \"port-id\": \"\"}"},{"line_number":380,"context_line":"            nic_info.update(dict(kv_str.split(\"\u003d\", 1)"},{"line_number":381,"context_line":"                            for kv_str in nic_str.split(\",\")))"},{"line_number":382,"context_line":"            if nic_info[\"net-id\"] !\u003d \u0027\u0027:"},{"line_number":383,"context_line":"                nic_info[\"net-id\"] \u003d common.find(network_client,"},{"line_number":384,"context_line":"                                                 \u0027network\u0027,"},{"line_number":385,"context_line":"                                                 \u0027networks\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_8b1a867a","line":382,"updated":"2014-12-30 23:45:20.000000000","message":"Seems simple to update the  check to: if nic_info[\"net-id\"]\n\nThis will handle both non-None and non-empty, and easier to read too.","commit_id":"14498d7aab7e362dfc9133b69e727c75c05fb588"},{"author":{"_account_id":12076,"name":"Zhiyuan Cai","email":"luckyvega.g@gmail.com","username":"zhiyuan_cai"},"change_message_id":"8516d65c039562a838e0c11146a57625d98899ed","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                        \"v6-fixed-ip\": \"\", \"port-id\": \"\"}"},{"line_number":380,"context_line":"            nic_info.update(dict(kv_str.split(\"\u003d\", 1)"},{"line_number":381,"context_line":"                            for kv_str in nic_str.split(\",\")))"},{"line_number":382,"context_line":"            if nic_info[\"net-id\"] !\u003d \u0027\u0027:"},{"line_number":383,"context_line":"                nic_info[\"net-id\"] \u003d common.find(network_client,"},{"line_number":384,"context_line":"                                                 \u0027network\u0027,"},{"line_number":385,"context_line":"                                                 \u0027networks\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_8160a5a5","line":382,"in_reply_to":"3a961159_8b1a867a","updated":"2014-12-31 01:57:03.000000000","message":"fixed, thanks","commit_id":"14498d7aab7e362dfc9133b69e727c75c05fb588"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"56ad884b4846e7e1199f87923c14badaa0518441","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        self.log.debug(\u0027take_action(%s)\u0027, parsed_args)"},{"line_number":308,"context_line":"        compute_client \u003d self.app.client_manager.compute"},{"line_number":309,"context_line":"        volume_client \u003d self.app.client_manager.volume"},{"line_number":310,"context_line":"        network_client \u003d self.app.client_manager.network"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        # Lookup parsed_args.image"},{"line_number":313,"context_line":"        image \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_e1e0f7cd","line":310,"updated":"2015-01-16 16:35:20.000000000","message":"this creates a network client even in Neutron is not in use","commit_id":"43206ea1f818f0e69d1e6cf6126fb1fd3b7efd7a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"56ad884b4846e7e1199f87923c14badaa0518441","unresolved":false,"context_lines":[{"line_number":379,"context_line":"                        \"v6-fixed-ip\": \"\", \"port-id\": \"\"}"},{"line_number":380,"context_line":"            nic_info.update(dict(kv_str.split(\"\u003d\", 1)"},{"line_number":381,"context_line":"                            for kv_str in nic_str.split(\",\")))"},{"line_number":382,"context_line":"            if nic_info[\"net-id\"]:"},{"line_number":383,"context_line":"                nic_info[\"net-id\"] \u003d utils.find_resource("},{"line_number":384,"context_line":"                    compute_client.networks,"},{"line_number":385,"context_line":"                    nic_info[\"net-id\"]"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_01e503a3","line":382,"updated":"2015-01-16 16:35:20.000000000","message":"I do not like using an attribute name to determine if Neutron is in use, you should look in the service catalog for a network service and switch based on that.","commit_id":"43206ea1f818f0e69d1e6cf6126fb1fd3b7efd7a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"56ad884b4846e7e1199f87923c14badaa0518441","unresolved":false,"context_lines":[{"line_number":391,"context_line":"                                                      \u0027ports\u0027,"},{"line_number":392,"context_line":"                                                      nic_info[\"port-id\"])"},{"line_number":393,"context_line":"                except Exception as e:"},{"line_number":394,"context_line":"                    if type(e).__name__ \u003d\u003d \u0027EndpointNotFound\u0027:"},{"line_number":395,"context_line":"                        msg \u003d _(\"can\u0027t create server with port specified \""},{"line_number":396,"context_line":"                                \"since neutron not enabled\")"},{"line_number":397,"context_line":"                        raise exceptions.CommandError(msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a961159_219f5f03","line":394,"updated":"2015-01-16 16:35:20.000000000","message":"I\u0027m assuming you do this because the EndpointNotFound might come from multiple namespaces...if that is not the case, catch it directly.","commit_id":"43206ea1f818f0e69d1e6cf6126fb1fd3b7efd7a"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"233d40128a12e2cd73030d6a5c90f96a324b655e","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _is_neutron_enabled(self):"},{"line_number":192,"context_line":"        identity_client \u003d self.app.client_manager.identity"},{"line_number":193,"context_line":"        services \u003d identity_client.services.list()"},{"line_number":194,"context_line":"        for service in services:"},{"line_number":195,"context_line":"            if (service.type \u003d\u003d \u0027network\u0027 and"},{"line_number":196,"context_line":"                    getattr(service, \u0027name\u0027, \u0027\u0027) \u003d\u003d \u0027neutron\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_d6bf5a5f","line":193,"updated":"2015-01-26 22:23:05.000000000","message":"The service catalog is already available at self.app.client_manager.auth_ref.service_catalog, using that saves an API round trip.","commit_id":"e1b8239384868445c5522ce17ff3fc1c9a18237b"},{"author":{"_account_id":12076,"name":"Zhiyuan Cai","email":"luckyvega.g@gmail.com","username":"zhiyuan_cai"},"change_message_id":"e9b664fdd34ef73b1fd3114216db7f5616891ee5","unresolved":false,"context_lines":[{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def _is_neutron_enabled(self):"},{"line_number":192,"context_line":"        identity_client \u003d self.app.client_manager.identity"},{"line_number":193,"context_line":"        services \u003d identity_client.services.list()"},{"line_number":194,"context_line":"        for service in services:"},{"line_number":195,"context_line":"            if (service.type \u003d\u003d \u0027network\u0027 and"},{"line_number":196,"context_line":"                    getattr(service, \u0027name\u0027, \u0027\u0027) \u003d\u003d \u0027neutron\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_d2711d0d","line":193,"in_reply_to":"1a930d6b_d6bf5a5f","updated":"2015-01-27 05:15:14.000000000","message":"thanks for your advise.","commit_id":"e1b8239384868445c5522ce17ff3fc1c9a18237b"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"233d40128a12e2cd73030d6a5c90f96a324b655e","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        services \u003d identity_client.services.list()"},{"line_number":194,"context_line":"        for service in services:"},{"line_number":195,"context_line":"            if (service.type \u003d\u003d \u0027network\u0027 and"},{"line_number":196,"context_line":"                    getattr(service, \u0027name\u0027, \u0027\u0027) \u003d\u003d \u0027neutron\u0027):"},{"line_number":197,"context_line":"                return True"},{"line_number":198,"context_line":"        return False"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_5698ca77","line":196,"updated":"2015-01-26 22:23:05.000000000","message":"We select endpoints based only on the service type, I\u0027m not certain we need to look at name unless nova-net someday gets its own endpoint (shudder).","commit_id":"e1b8239384868445c5522ce17ff3fc1c9a18237b"},{"author":{"_account_id":970,"name":"Dean Troyer","email":"dtroyer@gmail.com","username":"dtroyer"},"change_message_id":"233d40128a12e2cd73030d6a5c90f96a324b655e","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                msg \u003d _(\"either net-id or port-id should be specified \""},{"line_number":395,"context_line":"                        \"but not both\")"},{"line_number":396,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":397,"context_line":"            if nic_info[\"net-id\"]:"},{"line_number":398,"context_line":"                if neutron_enabled:"},{"line_number":399,"context_line":"                    nic_info[\"net-id\"] \u003d common.find(network_client,"},{"line_number":400,"context_line":"                                                     \u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_b6700e41","line":397,"updated":"2015-01-26 22:23:05.000000000","message":"If you refactor this to use neutron-enabled as the outer condition, the network_client set from line 319 can be moved inside and have no efffect for the not-neutron case.","commit_id":"e1b8239384868445c5522ce17ff3fc1c9a18237b"},{"author":{"_account_id":12076,"name":"Zhiyuan Cai","email":"luckyvega.g@gmail.com","username":"zhiyuan_cai"},"change_message_id":"e9b664fdd34ef73b1fd3114216db7f5616891ee5","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                msg \u003d _(\"either net-id or port-id should be specified \""},{"line_number":395,"context_line":"                        \"but not both\")"},{"line_number":396,"context_line":"                raise exceptions.CommandError(msg)"},{"line_number":397,"context_line":"            if nic_info[\"net-id\"]:"},{"line_number":398,"context_line":"                if neutron_enabled:"},{"line_number":399,"context_line":"                    nic_info[\"net-id\"] \u003d common.find(network_client,"},{"line_number":400,"context_line":"                                                     \u0027network\u0027,"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_926b151d","line":397,"in_reply_to":"1a930d6b_b6700e41","updated":"2015-01-27 05:15:14.000000000","message":"done","commit_id":"e1b8239384868445c5522ce17ff3fc1c9a18237b"}],"openstackclient/tests/compute/v2/test_server.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"734bf91f549a19e910ce640b9579f3482405ec79","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        arglist \u003d ["},{"line_number":150,"context_line":"            \u0027--image\u0027, \u0027image1\u0027,"},{"line_number":151,"context_line":"            \u0027--flavor\u0027, \u0027flavor1\u0027,"},{"line_number":152,"context_line":"            \u0027--nic\u0027, \u0027net-id\u003dnet1\u0027,"},{"line_number":153,"context_line":"            compute_fakes.server_id,"},{"line_number":154,"context_line":"        ]"},{"line_number":155,"context_line":"        verifylist \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_ce0bbc22","line":152,"updated":"2014-12-30 23:45:20.000000000","message":"would be good to include port-id to improve test coverage","commit_id":"14498d7aab7e362dfc9133b69e727c75c05fb588"},{"author":{"_account_id":12076,"name":"Zhiyuan Cai","email":"luckyvega.g@gmail.com","username":"zhiyuan_cai"},"change_message_id":"8516d65c039562a838e0c11146a57625d98899ed","unresolved":false,"context_lines":[{"line_number":149,"context_line":"        arglist \u003d ["},{"line_number":150,"context_line":"            \u0027--image\u0027, \u0027image1\u0027,"},{"line_number":151,"context_line":"            \u0027--flavor\u0027, \u0027flavor1\u0027,"},{"line_number":152,"context_line":"            \u0027--nic\u0027, \u0027net-id\u003dnet1\u0027,"},{"line_number":153,"context_line":"            compute_fakes.server_id,"},{"line_number":154,"context_line":"        ]"},{"line_number":155,"context_line":"        verifylist \u003d ["}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_018f552f","line":152,"in_reply_to":"3a961159_ce0bbc22","updated":"2014-12-31 01:57:03.000000000","message":"done","commit_id":"14498d7aab7e362dfc9133b69e727c75c05fb588"}]}
