)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"50b779f05689a64e2ede648c012eb9b609dd6df1","unresolved":false,"context_lines":[{"line_number":3668,"context_line":"        known_nodes \u003d set(self._resource_tracker_dict.keys())"},{"line_number":3669,"context_line":"        for nodename in known_nodes - nodenames:"},{"line_number":3670,"context_line":"            rt \u003d self._get_resource_tracker(nodename)"},{"line_number":3671,"context_line":"            rt.update_available_resource(context, delete\u003dTrue)"},{"line_number":3672,"context_line":""},{"line_number":3673,"context_line":"        self._resource_tracker_dict \u003d new_resource_tracker_dict"},{"line_number":3674,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F8WQ%3D","line":3671,"updated":"2013-03-02 02:30:25.000000000","message":"This bit of function isn\u0027t getting tested right?","commit_id":"6293a7dc47aa3af8fd6fef2102a5594ed1300758"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"61192af4a3e303956bc0f2b441cf9814952cdf5a","unresolved":false,"context_lines":[{"line_number":3668,"context_line":"        known_nodes \u003d set(self._resource_tracker_dict.keys())"},{"line_number":3669,"context_line":"        for nodename in known_nodes - nodenames:"},{"line_number":3670,"context_line":"            rt \u003d self._get_resource_tracker(nodename)"},{"line_number":3671,"context_line":"            rt.update_available_resource(context, delete\u003dTrue)"},{"line_number":3672,"context_line":""},{"line_number":3673,"context_line":"        self._resource_tracker_dict \u003d new_resource_tracker_dict"},{"line_number":3674,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAANH%2F%2F8Q0%3D","line":3671,"in_reply_to":"AAAANH%2F%2F8WQ%3D","updated":"2013-03-02 05:08:01.000000000","message":"Woops! Good catch.","commit_id":"6293a7dc47aa3af8fd6fef2102a5594ed1300758"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"97d308801ef5b0008f5da909016a4bafb11a408c","unresolved":false,"context_lines":[{"line_number":3668,"context_line":"        known_nodes \u003d set(self._resource_tracker_dict.keys())"},{"line_number":3669,"context_line":"        for nodename in known_nodes - nodenames:"},{"line_number":3670,"context_line":"            rt \u003d self._get_resource_tracker(nodename)"},{"line_number":3671,"context_line":"            rt.update_available_resource(context, delete\u003dTrue)"},{"line_number":3672,"context_line":""},{"line_number":3673,"context_line":"        self._resource_tracker_dict \u003d new_resource_tracker_dict"},{"line_number":3674,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAANH%2F%2F7%2F0%3D","line":3671,"updated":"2013-03-02 19:54:15.000000000","message":"Should the node be removed somehow from self._resource_tracker_dict?","commit_id":"3d5ea960ffde5271f8486e1f05100e9d344ca921"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"cda5982254412089c5a298c0f53f7fd14faa143f","unresolved":false,"context_lines":[{"line_number":3668,"context_line":"        known_nodes \u003d set(self._resource_tracker_dict.keys())"},{"line_number":3669,"context_line":"        for nodename in known_nodes - nodenames:"},{"line_number":3670,"context_line":"            rt \u003d self._get_resource_tracker(nodename)"},{"line_number":3671,"context_line":"            rt.update_available_resource(context, delete\u003dTrue)"},{"line_number":3672,"context_line":""},{"line_number":3673,"context_line":"        self._resource_tracker_dict \u003d new_resource_tracker_dict"},{"line_number":3674,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAANH%2F%2F76k%3D","line":3671,"in_reply_to":"AAAANH%2F%2F7%2F0%3D","updated":"2013-03-03 02:57:45.000000000","message":"I believe it is already getting removed. The for loop above created new_resource_tracker_dict which does not contain any of the missing nodes, and the next line assigns that to self._resource_tracker_dict.","commit_id":"3d5ea960ffde5271f8486e1f05100e9d344ca921"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"5f2a5089a3e18c895623bb118249178579295daf","unresolved":false,"context_lines":[{"line_number":3668,"context_line":"        known_nodes \u003d set(self._resource_tracker_dict.keys())"},{"line_number":3669,"context_line":"        for nodename in known_nodes - nodenames:"},{"line_number":3670,"context_line":"            rt \u003d self._get_resource_tracker(nodename)"},{"line_number":3671,"context_line":"            rt.update_available_resource(context, delete\u003dTrue)"},{"line_number":3672,"context_line":""},{"line_number":3673,"context_line":"        self._resource_tracker_dict \u003d new_resource_tracker_dict"},{"line_number":3674,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F%2F%2BA%3D","line":3671,"in_reply_to":"AAAANH%2F%2F76k%3D","updated":"2013-03-03 19:31:35.000000000","message":"Whoops.. yes it is.","commit_id":"3d5ea960ffde5271f8486e1f05100e9d344ca921"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"4f54a706040591b4f161555a1713d44580aa2706","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        try:"},{"line_number":240,"context_line":"            resources \u003d self.driver.get_available_resource(self.nodename)"},{"line_number":241,"context_line":"        # drivers might raise a general exception or NodeNotFound"},{"line_number":242,"context_line":"        except exception.NovaException, exception.NodeNotFound:"},{"line_number":243,"context_line":"            pass"},{"line_number":244,"context_line":"        if not resources:"},{"line_number":245,"context_line":"            if delete:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F%2Fq4%3D","line":242,"updated":"2013-03-04 08:45:09.000000000","message":"NodeNotFound is a subclass of NovaException, so this looks a bit odd\n\nThis also means that if the driver throws a NovaException for any other reason, we swallow it and potentially delete the compute node\n\nWhy not just require drivers to return None in the NotFound case? It\u0027s expected behaviour ...","commit_id":"3d5ea960ffde5271f8486e1f05100e9d344ca921"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"20c175fd35d79d7475023ee40a8b607296a097e3","unresolved":false,"context_lines":[{"line_number":239,"context_line":"        try:"},{"line_number":240,"context_line":"            resources \u003d self.driver.get_available_resource(self.nodename)"},{"line_number":241,"context_line":"        # drivers might raise a general exception or NodeNotFound"},{"line_number":242,"context_line":"        except exception.NovaException, exception.NodeNotFound:"},{"line_number":243,"context_line":"            pass"},{"line_number":244,"context_line":"        if not resources:"},{"line_number":245,"context_line":"            if delete:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F%2Fc8%3D","line":242,"in_reply_to":"AAAAN3%2F%2F%2Fq4%3D","updated":"2013-03-04 13:10:46.000000000","message":"Yea, this felt a bit odd when I wrote it...\n\nI based this off of handling nova/virt/fake.py, which defines get_available_resource like this:\n\n  if nodename not in _FAKE_NODES:\n    raise exception.NovaException(\"node %s is not found\" % nodename)\n  dic \u003d { ... }\n  return dic\n\nI looked at the other drivers and don\u0027t see anything else generating this (or any other) exception. To avoid catching NovaException here, I will have to modify nova/virt/fake.py...","commit_id":"3d5ea960ffde5271f8486e1f05100e9d344ca921"}]}
