)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"979733ede89afcf06234af897a89c023cde50ddf","unresolved":false,"context_lines":[{"line_number":1835,"context_line":"                bw_usage \u003d self.driver.get_all_bw_usage(start_time, stop_time)"},{"line_number":1836,"context_line":"            except NotImplementedError:"},{"line_number":1837,"context_line":"                # NOTE(mdragon): Not all hypervisors have bandwidth polling"},{"line_number":1838,"context_line":"                # implemented yet.  If they don\u0027t id doesn\u0027t break anything,"},{"line_number":1839,"context_line":"                # they just don\u0027t get the info in the usage events."},{"line_number":1840,"context_line":"                return"},{"line_number":1841,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Bos%3D","line":1838,"updated":"2011-12-07 16:22:41.000000000","message":"Should this be \"If they don\u0027t it doesn\u0027t...\"?","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"f8b670f683f83c55c48cfd4d943c6977e9b16ea6","unresolved":false,"context_lines":[{"line_number":1835,"context_line":"                bw_usage \u003d self.driver.get_all_bw_usage(start_time, stop_time)"},{"line_number":1836,"context_line":"            except NotImplementedError:"},{"line_number":1837,"context_line":"                # NOTE(mdragon): Not all hypervisors have bandwidth polling"},{"line_number":1838,"context_line":"                # implemented yet.  If they don\u0027t id doesn\u0027t break anything,"},{"line_number":1839,"context_line":"                # they just don\u0027t get the info in the usage events."},{"line_number":1840,"context_line":"                return"},{"line_number":1841,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Bn4%3D","line":1838,"in_reply_to":"AAAAC3%2F%2F%2Bos%3D","updated":"2011-12-07 16:49:37.000000000","message":"Yep. Good catch.","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"}],"nova/manager.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"6ec56aa4a2c7cf4e7bc003d0d1c34f957733b02b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        f \u003d args[0]"},{"line_number":100,"context_line":"        f._periodic_task \u003d True"},{"line_number":101,"context_line":"        f._ticks_between_runs \u003d 0"},{"line_number":102,"context_line":"        return f"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2BoQ%3D","line":101,"updated":"2011-12-07 16:33:29.000000000","message":"In the interests of DRY, is there any chance we could get this refactored a little in the manner I suggested on your previous submission?  (I.e., unconditionally declare \"def wrapped()\" (although I tend to use \"def decorator()\"), then return it if kwargs or call it on args[0] otherwise...)  Not a blocker for me, though.","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"f8b670f683f83c55c48cfd4d943c6977e9b16ea6","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    else:"},{"line_number":99,"context_line":"        f \u003d args[0]"},{"line_number":100,"context_line":"        f._periodic_task \u003d True"},{"line_number":101,"context_line":"        f._ticks_between_runs \u003d 0"},{"line_number":102,"context_line":"        return f"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Bn8%3D","line":101,"in_reply_to":"AAAAC3%2F%2F%2BoQ%3D","updated":"2011-12-07 16:49:37.000000000","message":"Hmm, I\u0027ll give that a shot and see what that looks like.\n\nThanks for the suggestion.","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"979733ede89afcf06234af897a89c023cde50ddf","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.host \u003d host"},{"line_number":139,"context_line":"        super(Manager, self).__init__(db_driver)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def periodic_tasks(self, context, raise_on_error\u003dFalse):"},{"line_number":142,"context_line":"        \"\"\"Tasks to be run at a periodic interval.\"\"\""},{"line_number":143,"context_line":"        for task_name, task in self._periodic_tasks:"},{"line_number":144,"context_line":"            full_task_name \u003d \u0027.\u0027.join([self.__class__.__name__, task_name])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Bog%3D","line":141,"updated":"2011-12-07 16:22:41.000000000","message":"I\u0027m a little unclear on when we would want to use raise_on_error \u003d True. Is this only for the unit tests to ensure they see an exception on failure?","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"f8b670f683f83c55c48cfd4d943c6977e9b16ea6","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        self.host \u003d host"},{"line_number":139,"context_line":"        super(Manager, self).__init__(db_driver)"},{"line_number":140,"context_line":""},{"line_number":141,"context_line":"    def periodic_tasks(self, context, raise_on_error\u003dFalse):"},{"line_number":142,"context_line":"        \"\"\"Tasks to be run at a periodic interval.\"\"\""},{"line_number":143,"context_line":"        for task_name, task in self._periodic_tasks:"},{"line_number":144,"context_line":"            full_task_name \u003d \u0027.\u0027.join([self.__class__.__name__, task_name])"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2BoA%3D","line":141,"in_reply_to":"AAAAC3%2F%2F%2Bog%3D","updated":"2011-12-07 16:49:37.000000000","message":"Yeah exactly, it\u0027s for unit-tests. Before, we we\u0027re using *error_list* to accumulate error messages for all of the periodic tasks.\n\nSince that was messy, I decided to just have each task raise an errors it encounters.","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"},{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"979733ede89afcf06234af897a89c023cde50ddf","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                    raise"},{"line_number":161,"context_line":"                e_tb \u003d traceback.format_exc(e)"},{"line_number":162,"context_line":"                LOG.error(_(\"Error during %(full_task_name)s: %(e)s\\n\""},{"line_number":163,"context_line":"                            \"%(e_tb)s\"), locals())"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    def init_host(self):"},{"line_number":166,"context_line":"        \"\"\"Handle initialization if this is a standalone service."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Boo%3D","line":163,"updated":"2011-12-07 16:22:41.000000000","message":"Why not use LOG.exception()?","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":100,"name":"Johannes Erdfelt","email":"johannes@erdfelt.com","username":"johannes.erdfelt"},"change_message_id":"979733ede89afcf06234af897a89c023cde50ddf","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        for vm_ref, vm_rec in VMHelper.list_vms(self._session):"},{"line_number":105,"context_line":"            name_labels.append(vm_rec[\"name_label\"])"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return name_labels"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def list_instances_detail(self):"},{"line_number":110,"context_line":"        \"\"\"List VM instances, returning InstanceInfo objects.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Bok%3D","line":107,"updated":"2011-12-07 16:22:41.000000000","message":"Are these changes really related to the periodic tasks?","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"},{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"f8b670f683f83c55c48cfd4d943c6977e9b16ea6","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        for vm_ref, vm_rec in VMHelper.list_vms(self._session):"},{"line_number":105,"context_line":"            name_labels.append(vm_rec[\"name_label\"])"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        return name_labels"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def list_instances_detail(self):"},{"line_number":110,"context_line":"        \"\"\"List VM instances, returning InstanceInfo objects.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAC3%2F%2F%2Bnk%3D","line":107,"in_reply_to":"AAAAC3%2F%2F%2Bok%3D","updated":"2011-12-07 16:49:37.000000000","message":"Yes and no.\n\nThey\u0027re actually more related to a follow-on branch that is proposed to reap running deleted instances.\n\nTechnically it probably should be submitted w/ that patch, but IMHO this is a just a good general cleanup, so I\u0027d hope it could just merge in with this.","commit_id":"a277ca7baa394d3482b2cc262fad0ec48713878f"}]}
