)]}'
{"nova/compute/resource_tracker.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1507ed43407e9f4c97487bc333eb54e17cb3f0ba","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        self._update(context.elevated())"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":358,"context_line":"    def drop_move_claim(self, context, instance, nodename,"},{"line_number":359,"context_line":"                        instance_type\u003dNone, prefix\u003d\u0027new_\u0027):"},{"line_number":360,"context_line":"        \"\"\"Remove usage for an incoming/outgoing migration.\"\"\""},{"line_number":361,"context_line":"        if instance[\u0027uuid\u0027] in self.tracked_migrations:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_638692dc","line":358,"range":{"start_line":358,"start_character":49,"end_line":358,"end_character":57},"updated":"2016-12-14 18:56:33.000000000","message":"This isn\u0027t used...do we care?","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9334079d14cb99fcb06daaab68cca1a07a96448c","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        self._update(context.elevated())"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":358,"context_line":"    def drop_move_claim(self, context, instance, nodename,"},{"line_number":359,"context_line":"                        instance_type\u003dNone, prefix\u003d\u0027new_\u0027):"},{"line_number":360,"context_line":"        \"\"\"Remove usage for an incoming/outgoing migration.\"\"\""},{"line_number":361,"context_line":"        if instance[\u0027uuid\u0027] in self.tracked_migrations:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_a35d0a49","line":358,"range":{"start_line":358,"start_character":49,"end_line":358,"end_character":57},"in_reply_to":"1a6eadb0_638692dc","updated":"2016-12-14 19:04:17.000000000","message":"Sorry, I tried to make this clear in the commit message (and failed apparently). The nodename attribute is added on all the public methods in this patch however, the self.compute_node attribute is still used to refer to the node. In a following patch (https://review.openstack.org/#/c/398473/12), we replace the self.compute_node attribute with a self.compute_nodes dict attribute, keyed by nodename, and the nodename parameter is then used by these methods to look up the appropriate compute node object in the self.compute_nodes dict.\n\nI did it like this to keep the patch sizes manageable. Not breaking it out this way resulted in \u003e1000 lines of patch size.","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fcf694d78623335f55a2178cd3e567848238ff1","unresolved":false,"context_lines":[{"line_number":355,"context_line":"        self._update(context.elevated())"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":358,"context_line":"    def drop_move_claim(self, context, instance, nodename,"},{"line_number":359,"context_line":"                        instance_type\u003dNone, prefix\u003d\u0027new_\u0027):"},{"line_number":360,"context_line":"        \"\"\"Remove usage for an incoming/outgoing migration.\"\"\""},{"line_number":361,"context_line":"        if instance[\u0027uuid\u0027] in self.tracked_migrations:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_69eaf1ad","line":358,"range":{"start_line":358,"start_character":49,"end_line":358,"end_character":57},"in_reply_to":"1a6eadb0_a35d0a49","updated":"2016-12-14 19:44:44.000000000","message":"OK I see it used later here:\n\nhttps://review.openstack.org/#/c/398473/12/nova/compute/resource_tracker.py@388\n\nThat makes more sense then.","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eebb7df2dbe4a1a1b7a154d6686c1e99cd3f2f35","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        :param context: security context"},{"line_number":418,"context_line":"        :param resources: initial values"},{"line_number":419,"context_line":"        \"\"\""},{"line_number":420,"context_line":"        nodename \u003d resources[\u0027hypervisor_hostname\u0027]"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"        # if there is already a compute node just use resources"},{"line_number":423,"context_line":"        # to initialize"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_69b91179","line":420,"updated":"2016-12-14 19:59:37.000000000","message":"I was a bit skeptical about this but this is called from _update_available_resource which is called from update_available_resource which calls \"resources \u003d self.driver.get_available_resource(nodename)\" and all of the virt drivers return a dict with \u0027hypervisor_hostname\u0027 in it. At some point we should probably make that dict an actual versioned object and enforce what\u0027s required so we don\u0027t hit KeyErrors, but that\u0027s later cleanup work.","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eebb7df2dbe4a1a1b7a154d6686c1e99cd3f2f35","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        the hypervisor layer yet."},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        :param nodename: Temporary parameter representing the Ironic resource"},{"line_number":516,"context_line":"                         node. This will be None for nova-compute workers not"},{"line_number":517,"context_line":"                         running the Ironic virt driver. This parameter will be"},{"line_number":518,"context_line":"                         removed once Ironic baremetal resource nodes are"},{"line_number":519,"context_line":"                         handled like any other resource in the system."},{"line_number":520,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_0ceb4b14","line":517,"range":{"start_line":516,"start_character":31,"end_line":517,"end_character":56},"updated":"2016-12-14 19:59:37.000000000","message":"This isn\u0027t really true. I see this is updated in this patch to pass the nodename from the compute manager:\n\nhttps://review.openstack.org/#/c/398470/9/nova/compute/manager.py@6530\n\nBut that nodename is always provided by all compute drivers in that call from here:\n\nhttps://review.openstack.org/#/c/398470/9/nova/compute/manager.py@6566\n\nAnd all of the compute drivers implement get_available_nodes().","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"fb59f00df2ddfca9dc41edaaa4c52366bea52e8f","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        the hypervisor layer yet."},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        :param nodename: Temporary parameter representing the Ironic resource"},{"line_number":516,"context_line":"                         node. This will be None for nova-compute workers not"},{"line_number":517,"context_line":"                         running the Ironic virt driver. This parameter will be"},{"line_number":518,"context_line":"                         removed once Ironic baremetal resource nodes are"},{"line_number":519,"context_line":"                         handled like any other resource in the system."},{"line_number":520,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_0cbc2bdb","line":517,"range":{"start_line":516,"start_character":31,"end_line":517,"end_character":56},"in_reply_to":"1a6eadb0_0ceb4b14","updated":"2016-12-14 20:05:05.000000000","message":"Good point. I will remove it.","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a409a703efb07ed9275b383c915558f9f2f6cdd5","unresolved":false,"context_lines":[{"line_number":863,"context_line":"                                \"migration.\"), instance_uuid\u003dinstance.uuid)"},{"line_number":864,"context_line":"                continue"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    def _update_usage_from_instance(self, context, instance, nodename,"},{"line_number":867,"context_line":"                                    is_removed\u003dFalse):"},{"line_number":868,"context_line":"        \"\"\"Update usage for a single instance.\"\"\""},{"line_number":869,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_6344d21a","line":866,"range":{"start_line":866,"start_character":61,"end_line":866,"end_character":69},"updated":"2016-12-14 18:47:26.000000000","message":"This isn\u0027t used so what\u0027s the point in adding it here?","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6fcf694d78623335f55a2178cd3e567848238ff1","unresolved":false,"context_lines":[{"line_number":863,"context_line":"                                \"migration.\"), instance_uuid\u003dinstance.uuid)"},{"line_number":864,"context_line":"                continue"},{"line_number":865,"context_line":""},{"line_number":866,"context_line":"    def _update_usage_from_instance(self, context, instance, nodename,"},{"line_number":867,"context_line":"                                    is_removed\u003dFalse):"},{"line_number":868,"context_line":"        \"\"\"Update usage for a single instance.\"\"\""},{"line_number":869,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1a6eadb0_290b998f","line":866,"range":{"start_line":866,"start_character":61,"end_line":866,"end_character":69},"in_reply_to":"1a6eadb0_6344d21a","updated":"2016-12-14 19:44:44.000000000","message":"Used later here:\n\nhttps://review.openstack.org/#/c/398473/12/nova/compute/resource_tracker.py@897","commit_id":"444b872d16f83298cd7c3b68872dde754fe290eb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a91b46c9eb2521432400254eca368ef191103e2e","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        the hypervisor layer yet."},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        :param nodename: Temporary parameter representing the Ironic resource"},{"line_number":516,"context_line":"                         node. This will be None for nova-compute workers not"},{"line_number":517,"context_line":"                         running the Ironic virt driver. This parameter will be"},{"line_number":518,"context_line":"                         removed once Ironic baremetal resource nodes are"},{"line_number":519,"context_line":"                         handled like any other resource in the system."},{"line_number":520,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":11,"id":"1a6eadb0_965e0a78","line":517,"range":{"start_line":516,"start_character":31,"end_line":517,"end_character":56},"updated":"2016-12-18 02:00:33.000000000","message":"I thought you were going to remove this?","commit_id":"8520693352ea188ea72af7bb52014202f464ed52"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a8625418563808501eeacc61936728befbbd39bb","unresolved":false,"context_lines":[{"line_number":513,"context_line":"        the hypervisor layer yet."},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        :param nodename: Temporary parameter representing the Ironic resource"},{"line_number":516,"context_line":"                         node. This will be None for nova-compute workers not"},{"line_number":517,"context_line":"                         running the Ironic virt driver. This parameter will be"},{"line_number":518,"context_line":"                         removed once Ironic baremetal resource nodes are"},{"line_number":519,"context_line":"                         handled like any other resource in the system."},{"line_number":520,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":13,"id":"1a6eadb0_e61f5507","line":517,"range":{"start_line":516,"start_character":31,"end_line":517,"end_character":56},"updated":"2016-12-19 21:17:43.000000000","message":"You re-introduced this in the latest rebase. :(","commit_id":"3419c5afd15e99b260d6c896c2483504a778829f"}]}
