)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c33e4c84b1103b55b4b0677ae1c697a18a0daf08","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Also, add a couple of debug traces that are friendly to"},{"line_number":16,"context_line":"the developer."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Partial-bug: 1235435"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I06f8634ea241d05ac8fbcc290adf0cb23829f3e4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2B4KA%3D","line":18,"updated":"2013-11-19 02:35:45.000000000","message":"Does this also address bug 1251792?","commit_id":"7302c0a369bc6e9c25934cbff6302cb56b5588c2"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"8b578f90d3d3fcbc53643ca22b4291ffa2e30047","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Also, add a couple of debug traces that are friendly to"},{"line_number":16,"context_line":"the developer."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Partial-bug: 1235435"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I06f8634ea241d05ac8fbcc290adf0cb23829f3e4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAATn%2F%2B3%2B4%3D","line":18,"in_reply_to":"AAAATn%2F%2B4KA%3D","updated":"2013-11-19 03:52:29.000000000","message":"That bug appears in the context of bug 1235435","commit_id":"7302c0a369bc6e9c25934cbff6302cb56b5588c2"}],"nova/compute/manager.py":[{"author":{"_account_id":7500,"name":"Peter Feiner","email":"peter@gridcentric.ca","username":"peter"},"change_message_id":"dd7a25a38bc9162a30271e8d08135a8e099ade5a","unresolved":false,"context_lines":[{"line_number":4487,"context_line":"            LOG.debug(_(\u0027Updated the info_cache for instance\u0027),"},{"line_number":4488,"context_line":"                      instance\u003dinstance)"},{"line_number":4489,"context_line":"        except Exception as e:"},{"line_number":4490,"context_line":"            LOG.debug(_(\"An error occurred: %s\"), e)"},{"line_number":4491,"context_line":""},{"line_number":4492,"context_line":"    @periodic_task.periodic_task"},{"line_number":4493,"context_line":"    def _poll_rebooting_instances(self, context):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B1mk%3D","line":4490,"updated":"2013-11-19 14:51:48.000000000","message":"How about LOG.exception?\n\nI generally find that if I\u0027m looking at a LOG message from an ignored exception, I want to see where it came from :-)","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":7500,"name":"Peter Feiner","email":"peter@gridcentric.ca","username":"peter"},"change_message_id":"488a5b1efdd386149ec144e9b32b225293394112","unresolved":false,"context_lines":[{"line_number":4487,"context_line":"            LOG.debug(_(\u0027Updated the info_cache for instance\u0027),"},{"line_number":4488,"context_line":"                      instance\u003dinstance)"},{"line_number":4489,"context_line":"        except Exception as e:"},{"line_number":4490,"context_line":"            LOG.debug(_(\"An error occurred: %s\"), e)"},{"line_number":4491,"context_line":""},{"line_number":4492,"context_line":"    @periodic_task.periodic_task"},{"line_number":4493,"context_line":"    def _poll_rebooting_instances(self, context):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B1hQ%3D","line":4490,"in_reply_to":"AAAATn%2F%2B1jE%3D","updated":"2013-11-19 15:09:30.000000000","message":"ok","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"3bf87ae213a51dbd5ae55c45339e71bcec279eda","unresolved":false,"context_lines":[{"line_number":4487,"context_line":"            LOG.debug(_(\u0027Updated the info_cache for instance\u0027),"},{"line_number":4488,"context_line":"                      instance\u003dinstance)"},{"line_number":4489,"context_line":"        except Exception as e:"},{"line_number":4490,"context_line":"            LOG.debug(_(\"An error occurred: %s\"), e)"},{"line_number":4491,"context_line":""},{"line_number":4492,"context_line":"    @periodic_task.periodic_task"},{"line_number":4493,"context_line":"    def _poll_rebooting_instances(self, context):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B1jE%3D","line":4490,"in_reply_to":"AAAATn%2F%2B1mk%3D","updated":"2013-11-19 15:02:05.000000000","message":"agreed, but that might treat as bugs many expected conditions like instance deleted etc (see docstring). I think it makes sense to narrow down the except clause (e.g. catching InstanceNotFound etc) and log warning/debug statements just for them. Everything else unknown and unexpected log an exception; but this sounds outside the scope of the patch.","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"}],"nova/network/api.py":[{"author":{"_account_id":7500,"name":"Peter Feiner","email":"peter@gridcentric.ca","username":"peter"},"change_message_id":"dd7a25a38bc9162a30271e8d08135a8e099ade5a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                                  instance[\u0027uuid\u0027])"},{"line_number":81,"context_line":"        ic.network_info \u003d nw_info"},{"line_number":82,"context_line":"        ic.save(update_cells\u003dupdate_cells)"},{"line_number":83,"context_line":"    except Exception:"},{"line_number":84,"context_line":"        LOG.exception(_(\u0027Failed storing info cache\u0027), instance\u003dinstance)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B1lc%3D","line":83,"updated":"2013-11-19 14:51:48.000000000","message":"You need to re-raise here to see if your mox assertions are actually passing. See my comment https://bugs.launchpad.net/nova/+bug/1251792/comments/6 for details. Note that you\u0027ll have to integrate my \u0027is nw_info None\u0027 patch for some of the tests to pass.\n\nCould you please do this test and report back? Thanks!","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1bc8657e230a1bd20624f2577d6bc07d1cb90ee9","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                                  instance[\u0027uuid\u0027])"},{"line_number":81,"context_line":"        ic.network_info \u003d nw_info"},{"line_number":82,"context_line":"        ic.save(update_cells\u003dupdate_cells)"},{"line_number":83,"context_line":"    except Exception:"},{"line_number":84,"context_line":"        LOG.exception(_(\u0027Failed storing info cache\u0027), instance\u003dinstance)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2Brfc%3D","line":83,"in_reply_to":"AAAATn%2F%2B1f4%3D","updated":"2013-11-21 16:33:01.000000000","message":"FYI:\n\nhttps://review.openstack.org/#/c/57711/","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":7500,"name":"Peter Feiner","email":"peter@gridcentric.ca","username":"peter"},"change_message_id":"488a5b1efdd386149ec144e9b32b225293394112","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                                  instance[\u0027uuid\u0027])"},{"line_number":81,"context_line":"        ic.network_info \u003d nw_info"},{"line_number":82,"context_line":"        ic.save(update_cells\u003dupdate_cells)"},{"line_number":83,"context_line":"    except Exception:"},{"line_number":84,"context_line":"        LOG.exception(_(\u0027Failed storing info cache\u0027), instance\u003dinstance)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B1f4%3D","line":83,"in_reply_to":"AAAATn%2F%2B1ic%3D","updated":"2013-11-19 15:09:30.000000000","message":"ok","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"3bf87ae213a51dbd5ae55c45339e71bcec279eda","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                                  instance[\u0027uuid\u0027])"},{"line_number":81,"context_line":"        ic.network_info \u003d nw_info"},{"line_number":82,"context_line":"        ic.save(update_cells\u003dupdate_cells)"},{"line_number":83,"context_line":"    except Exception:"},{"line_number":84,"context_line":"        LOG.exception(_(\u0027Failed storing info cache\u0027), instance\u003dinstance)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2B1ic%3D","line":83,"in_reply_to":"AAAATn%2F%2B1lc%3D","updated":"2013-11-19 15:02:05.000000000","message":"Right, so that would belong to your patch, not here.","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"}],"nova/network/neutronv2/api.py":[{"author":{"_account_id":4395,"name":"Aaron Rosen","email":"aaronorosen@gmail.com","username":"arosen"},"change_message_id":"e0882f0efcdfc4f37332f75ae5b7eeea593fc10e","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        \"\"\"Return the port for the client given the port id.\"\"\""},{"line_number":443,"context_line":"        return neutronv2.get_client(context).show_port(port_id)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @refresh_cache"},{"line_number":446,"context_line":"    def get_instance_nw_info(self, context, instance, networks\u003dNone):"},{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BrdA%3D","line":445,"updated":"2013-11-21 16:45:34.000000000","message":"This causes the cache not to be updated on deallocate_port_for_instance() that\u0027s why i moved it here :). Actually I  think it makes more sense to remove _get_instance_nw_info() and combine that with get_instance_nw_info(). I don\u0027t think that private method buys us anything and seems to be error prone as it matters which one is called due to the refresh_cache operator.","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"7521c3a8b5e1225bd8d3d968b17e9fba7292c59a","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        \"\"\"Return the port for the client given the port id.\"\"\""},{"line_number":443,"context_line":"        return neutronv2.get_client(context).show_port(port_id)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @refresh_cache"},{"line_number":446,"context_line":"    def get_instance_nw_info(self, context, instance, networks\u003dNone):"},{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BrWU%3D","line":445,"in_reply_to":"AAAATn%2F%2BrZM%3D","updated":"2013-11-21 17:04:19.000000000","message":"Yes, agreed. I\u0027ll look into it.","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"70992d0ee91e58ffbb741c57cddfc41adb8f076b","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        \"\"\"Return the port for the client given the port id.\"\"\""},{"line_number":443,"context_line":"        return neutronv2.get_client(context).show_port(port_id)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @refresh_cache"},{"line_number":446,"context_line":"    def get_instance_nw_info(self, context, instance, networks\u003dNone):"},{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BrLw%3D","line":445,"in_reply_to":"AAAATn%2F%2BrdA%3D","updated":"2013-11-21 17:48:18.000000000","message":"Btw is not about private vs public; it is about a version that gets decorated and one that isn\u0027t. So this potentially might need a much bigger overhaul","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":642,"name":"Matt Dietz","email":"matthew.dietz@gmail.com","username":"cerberus"},"change_message_id":"943880b280f4d0f3775684c80cd88f01bdab4f68","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        \"\"\"Return the port for the client given the port id.\"\"\""},{"line_number":443,"context_line":"        return neutronv2.get_client(context).show_port(port_id)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @refresh_cache"},{"line_number":446,"context_line":"    def get_instance_nw_info(self, context, instance, networks\u003dNone):"},{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2BrZM%3D","line":445,"in_reply_to":"AAAATn%2F%2BrdA%3D","updated":"2013-11-21 16:56:50.000000000","message":"I\u0027m seconding the refactor of them both into one method, if possible. If nothing else, it\u0027s also harder to follow with no gain that I can see.","commit_id":"19321cccdbe3d57533541761e4adfefd53566ab0"},{"author":{"_account_id":7579,"name":"jan grant","email":"jan.grant@hpe.com","username":"jang"},"change_message_id":"06818c8e14b40132c9527704e0d0011c0cd88f5b","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."},{"line_number":449,"context_line":"        \"\"\""},{"line_number":450,"context_line":"        result \u003d self._get_instance_nw_info(context, instance, networks)"},{"line_number":451,"context_line":"        return result"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    def _get_instance_nw_info(self, context, instance, networks\u003dNone):"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F%2BnTk%3D","line":450,"updated":"2013-11-22 13:37:58.000000000","message":"Just chuck a return here. (style nit)","commit_id":"b48c326179a7a09ad95a85785afae07fafe30598"},{"author":{"_account_id":1501,"name":"Phil Day","email":"philip.day@hp.com","username":"philip-day"},"change_message_id":"fcb382a6edca01cc3fc228977e3a0ddd4d1a5fb4","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        \"\"\"Return the port for the client given the port id.\"\"\""},{"line_number":443,"context_line":"        return neutronv2.get_client(context).show_port(port_id)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @refresh_cache"},{"line_number":446,"context_line":"    def get_instance_nw_info(self, context, instance, networks\u003dNone):"},{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2BnLI%3D","line":445,"updated":"2013-11-22 14:08:56.000000000","message":"Change https://review.openstack.org/#/c/53969/4 moved more that just this one use of the decorator.  I think there is a good case for only having this decorator on public methods - since its much easier then to get a sense of which actions will and won;t update the cache.  \n\nIf there\u0027s  a public method that modifies the data so that the refresh decorator doesn\u0027t work, then something explicit in that one method would be better then trying to do the refresh this deep","commit_id":"2e520496c369a8ef646820ec068cc4416ab50eca"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ae110238d7c83757827ef76e14603fd4dd0c4825","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        \"\"\"Return the port for the client given the port id.\"\"\""},{"line_number":443,"context_line":"        return neutronv2.get_client(context).show_port(port_id)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"    @refresh_cache"},{"line_number":446,"context_line":"    def get_instance_nw_info(self, context, instance, networks\u003dNone):"},{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Bm6E%3D","line":445,"in_reply_to":"AAAATn%2F%2BnLI%3D","updated":"2013-11-22 15:01:17.000000000","message":"Can you be more specific? I am not sure I follow.\n\nI looked at this one, and I am pretty positive I covered all the cases. I appreciate that the use of decorators can be confusing but this bug fix is about addressing an infinite loop, rather than refactoring the whole lot.","commit_id":"2e520496c369a8ef646820ec068cc4416ab50eca"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"22e21f2e8b2d1e1eba74b8027d620f6290c5308a","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        \"\"\"Return network information for specified instance"},{"line_number":448,"context_line":"           and update cache."},{"line_number":449,"context_line":"        \"\"\""},{"line_number":450,"context_line":"        result \u003d self._get_instance_nw_info(context, instance, networks)"},{"line_number":451,"context_line":"        return result"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    def _get_instance_nw_info(self, context, instance, networks\u003dNone):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAATn%2F%2Bjsg%3D","line":450,"updated":"2013-11-23 16:23:01.000000000","message":"why not:\n return self._get_instance_nw_info ...","commit_id":"2e520496c369a8ef646820ec068cc4416ab50eca"}]}
