)]}'
{"nova/network/base_api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3709240eac9a6e3a4e8953e623764e4d3a84fe8","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        raise NotImplementedError()"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def setup_instance_network_on_host(self, context, instance, host):"},{"line_number":304,"context_line":"        \"\"\"Setup network for specified instance on host.\"\"\""},{"line_number":305,"context_line":"        raise NotImplementedError()"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def cleanup_instance_network_on_host(self, context, instance, host):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_1cd3af04","line":304,"updated":"2014-09-14 14:28:57.000000000","message":"At :param docstring entries, it\u0027s especially important to point out if the instance is an object or not.","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6e82efe3dc14ada109f3dc4ffbc10e11e89e1046","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        raise NotImplementedError()"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"    def setup_instance_network_on_host(self, context, instance, host):"},{"line_number":304,"context_line":"        \"\"\"Setup network for specified instance on host.\"\"\""},{"line_number":305,"context_line":"        raise NotImplementedError()"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def cleanup_instance_network_on_host(self, context, instance, host):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_de2bd47f","line":304,"in_reply_to":"fa98f980_1cd3af04","updated":"2014-09-15 08:16:10.000000000","message":"Done","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3709240eac9a6e3a4e8953e623764e4d3a84fe8","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        raise NotImplementedError()"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def cleanup_instance_network_on_host(self, context, instance, host):"},{"line_number":308,"context_line":"        \"\"\"Cleanup network for specified instance on host.\"\"\""},{"line_number":309,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_3cceb35a","line":308,"updated":"2014-09-14 14:28:57.000000000","message":"ditto","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6e82efe3dc14ada109f3dc4ffbc10e11e89e1046","unresolved":false,"context_lines":[{"line_number":305,"context_line":"        raise NotImplementedError()"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    def cleanup_instance_network_on_host(self, context, instance, host):"},{"line_number":308,"context_line":"        \"\"\"Cleanup network for specified instance on host.\"\"\""},{"line_number":309,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_fe1ed85d","line":308,"in_reply_to":"fa98f980_3cceb35a","updated":"2014-09-15 08:16:10.000000000","message":"Done","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"2998e2cb6cc563d001d8f5b8a8ace3b95bfa36be","unresolved":false,"context_lines":[{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        :param context: The request context."},{"line_number":332,"context_line":"        :param instance: nova.objects.instance.Instance object."},{"line_number":333,"context_line":"        :param host: The host which network should be setup for instance."},{"line_number":334,"context_line":"        \"\"\""},{"line_number":335,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_2e0ee78d","line":333,"updated":"2014-12-10 06:38:50.000000000","message":"setup -\u003e cleanup?","commit_id":"e5504d0ed94f987eb9b5085e88a50418c6e20923"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"42d13fbb45b977fa7efbf699a692104c81fd5b7b","unresolved":false,"context_lines":[{"line_number":330,"context_line":""},{"line_number":331,"context_line":"        :param context: The request context."},{"line_number":332,"context_line":"        :param instance: nova.objects.instance.Instance object."},{"line_number":333,"context_line":"        :param host: The host which network should be setup for instance."},{"line_number":334,"context_line":"        \"\"\""},{"line_number":335,"context_line":"        raise NotImplementedError()"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a961159_91c0da7d","line":333,"in_reply_to":"3a961159_2e0ee78d","updated":"2014-12-10 07:02:15.000000000","message":"good catch!","commit_id":"e5504d0ed94f987eb9b5085e88a50418c6e20923"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"7de00702125d11c6625e61a7a977d2a3ec2f0ad3","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"            except Exception:"},{"line_number":1359,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1360,"context_line":"                    LOG.exception(_LE(\"Unable to update host of port %s\"),"},{"line_number":1361,"context_line":"                                  p[\u0027id\u0027])"},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"def _ensure_requested_network_ordering(accessor, unordered, preferred):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ee33915f","line":1361,"updated":"2014-09-14 06:22:44.000000000","message":"concern here is that there may be more than 1 port on the instance. if say we have 2 ports and the 1st is updated and the second not. could this lead to a problem? should we have a rollback in the case of an exception?","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6e82efe3dc14ada109f3dc4ffbc10e11e89e1046","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"            except Exception:"},{"line_number":1359,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1360,"context_line":"                    LOG.exception(_LE(\"Unable to update host of port %s\"),"},{"line_number":1361,"context_line":"                                  p[\u0027id\u0027])"},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"def _ensure_requested_network_ordering(accessor, unordered, preferred):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_ded59443","line":1361,"in_reply_to":"fa98f980_1cfacf74","updated":"2014-09-15 08:16:10.000000000","message":"sound like task api can used to cancel operation.","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e3709240eac9a6e3a4e8953e623764e4d3a84fe8","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"            except Exception:"},{"line_number":1359,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1360,"context_line":"                    LOG.exception(_LE(\"Unable to update host of port %s\"),"},{"line_number":1361,"context_line":"                                  p[\u0027id\u0027])"},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"def _ensure_requested_network_ordering(accessor, unordered, preferred):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_1cfacf74","line":1361,"in_reply_to":"fa98f980_ee33915f","updated":"2014-09-14 14:28:57.000000000","message":"Not for this patch, but I also don\u0027t like how much exception swallowing the neutronv2 API does; at some point we should refactor this to rollback the changes and raise an exception to kill the operation.","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6e82efe3dc14ada109f3dc4ffbc10e11e89e1046","unresolved":false,"context_lines":[{"line_number":1358,"context_line":"            except Exception:"},{"line_number":1359,"context_line":"                with excutils.save_and_reraise_exception():"},{"line_number":1360,"context_line":"                    LOG.exception(_LE(\"Unable to update host of port %s\"),"},{"line_number":1361,"context_line":"                                  p[\u0027id\u0027])"},{"line_number":1362,"context_line":""},{"line_number":1363,"context_line":""},{"line_number":1364,"context_line":"def _ensure_requested_network_ordering(accessor, unordered, preferred):"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_deee7421","line":1361,"in_reply_to":"fa98f980_ee33915f","updated":"2014-09-15 08:16:10.000000000","message":"yes, good point! First thought is rollback, and return the error, then set the instance to error status? At least for now we can\u0027t rollback the instance\u0027s operation.\n\nAnd as Matt said, should be separated patch to fix this.","commit_id":"925336eb64f19d4602a7421db3b21dbec940e3fe"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"d91ed5a36a3175192352f7ba830580f042150e47","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"                       \u0027tenant_id\u0027: instance[\u0027project_id\u0027]}"},{"line_number":1482,"context_line":"        data \u003d neutron.list_ports(**search_opts)"},{"line_number":1483,"context_line":"        ports \u003d data[\u0027ports\u0027]"},{"line_number":1484,"context_line":"        for p in ports:"},{"line_number":1485,"context_line":"            try:"},{"line_number":1486,"context_line":"                neutron.update_port(p[\u0027id\u0027],"},{"line_number":1487,"context_line":"                                    {\u0027port\u0027: {\u0027binding:host_id\u0027: host}})"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa201ad_3f06d7ce","line":1484,"updated":"2014-10-15 17:46:10.000000000","message":"if there is more than one port, then do we want to raise an exception. i think that we should continue over all ports","commit_id":"2de39035fa51863916b6a99d3cf34b21b18415f9"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"41ca3291cb8a4bccac4d2f7e556555b648632029","unresolved":false,"context_lines":[{"line_number":1481,"context_line":"                       \u0027tenant_id\u0027: instance[\u0027project_id\u0027]}"},{"line_number":1482,"context_line":"        data \u003d neutron.list_ports(**search_opts)"},{"line_number":1483,"context_line":"        ports \u003d data[\u0027ports\u0027]"},{"line_number":1484,"context_line":"        for p in ports:"},{"line_number":1485,"context_line":"            try:"},{"line_number":1486,"context_line":"                neutron.update_port(p[\u0027id\u0027],"},{"line_number":1487,"context_line":"                                    {\u0027port\u0027: {\u0027binding:host_id\u0027: host}})"}],"source_content_type":"text/x-python","patch_set":6,"id":"baa201ad_771ddb61","line":1484,"in_reply_to":"baa201ad_3f06d7ce","updated":"2014-10-16 02:07:49.000000000","message":"Emm..... Thinking of one case when we reschedule one instance. After reschedule, one of port binding update failed, we should stop the instance building process, and tell the user the instance building failed? if we didn\u0027t raise an exception, the instance building successful, but the network for the instance maybe not works. Does make sense?","commit_id":"2de39035fa51863916b6a99d3cf34b21b18415f9"}],"nova/tests/unit/network/test_neutronv2.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7bf6e6c46224c6e2460f1f08b6c6db1ef1bd18fb","unresolved":false,"context_lines":[{"line_number":3088,"context_line":"                          *args)"},{"line_number":3089,"context_line":""},{"line_number":3090,"context_line":"    def test_migrate_instance_finish_binding_false(self):"},{"line_number":3091,"context_line":"        api \u003d neutronapi.API()"},{"line_number":3092,"context_line":"        self._test_update_port_binding_false(api, api.migrate_instance_finish,"},{"line_number":3093,"context_line":"                                             self.context, None,"},{"line_number":3094,"context_line":"                                             {\u0027dest_compute\u0027: \u0027fake\u0027})"}],"source_content_type":"text/x-python","patch_set":14,"id":"3a961159_77babb0b","line":3091,"updated":"2014-12-16 17:27:52.000000000","message":"My only complaint in these tests really is the \"api \u003d neutronapi.API()\" definition in each public test case, it\u0027s always the same so I\u0027d just move this to the private test methods that use the API - the API is going to be the same, so just do it in the private methods and then we can cleanup the private test method signatures a bit.","commit_id":"3e2a4dfe5e2dd66fc23dcc840f9e85f930d859fb"}]}
