)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"592df9d2e36db14d6299d3a5a22a5771d0ad39d5","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"This patch moves the logic in the nova resource tracker that creates"},{"line_number":18,"context_line":"the ComputeNode, to a point after the all the resource processing for"},{"line_number":19,"context_line":"the ComputeNode is done. This makes sure that the schedular will not"},{"line_number":20,"context_line":"pick up the new ComputeNode before the all the processing and resource"},{"line_number":21,"context_line":"information is populated on the node."},{"line_number":22,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"1a122d0e_70c24054","line":19,"range":{"start_line":19,"start_character":50,"end_line":19,"end_character":59},"updated":"2016-04-21 13:56:58.000000000","message":"nit: scheduler (American english)","commit_id":"6c3e6f3449fee0f8eca41045cfdd81140c1841fc"}],"nova/compute/resource_tracker.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"592df9d2e36db14d6299d3a5a22a5771d0ad39d5","unresolved":false,"context_lines":[{"line_number":341,"context_line":"    def disabled(self):"},{"line_number":342,"context_line":"        return self.compute_node is None"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    def _init_compute_node(self, context, resources):"},{"line_number":345,"context_line":"        \"\"\"Initialise the compute node if it does not already exist."},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"        The resource tracker will be inoperable if compute_node"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_d02d14ff","line":344,"updated":"2016-04-21 13:56:58.000000000","message":"well, you can already pass some resources when creating the new compute node (or getting it). Deferring the DB creation means then that you\u0027ll have an object instance in memory which could be different.","commit_id":"6c3e6f3449fee0f8eca41045cfdd81140c1841fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"592df9d2e36db14d6299d3a5a22a5771d0ad39d5","unresolved":false,"context_lines":[{"line_number":349,"context_line":"        we fail to create it or if there is no associated service"},{"line_number":350,"context_line":"        registered."},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"        If this method has to create a compute node it needs initial"},{"line_number":353,"context_line":"        values - these come from resources."},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        :param context: security context"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_704360af","line":352,"range":{"start_line":352,"start_character":9,"end_line":352,"end_character":51},"updated":"2016-04-21 13:56:58.000000000","message":"your change modifies that.","commit_id":"6c3e6f3449fee0f8eca41045cfdd81140c1841fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"592df9d2e36db14d6299d3a5a22a5771d0ad39d5","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        self.compute_node \u003d objects.ComputeNode(context)"},{"line_number":376,"context_line":"        self.compute_node.host \u003d self.host"},{"line_number":377,"context_line":"        self._copy_resources(resources)"},{"line_number":378,"context_line":"        return True"},{"line_number":379,"context_line":""},{"line_number":380,"context_line":"    def _copy_resources(self, resources):"},{"line_number":381,"context_line":"        \"\"\"Copy resource values to initialise compute_node and related"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_704880b3","line":378,"updated":"2016-04-21 13:56:58.000000000","message":"Well, I think using a Bool is a wrong design. Here you mean that if the return value is True, we should then persist it later.","commit_id":"6c3e6f3449fee0f8eca41045cfdd81140c1841fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"592df9d2e36db14d6299d3a5a22a5771d0ad39d5","unresolved":false,"context_lines":[{"line_number":530,"context_line":""},{"line_number":531,"context_line":"        if newnode:"},{"line_number":532,"context_line":"            # create the compute_node"},{"line_number":533,"context_line":"            self.compute_node.create()"},{"line_number":534,"context_line":"            LOG.info(_LI(\u0027Compute_service record created for \u0027"},{"line_number":535,"context_line":"                         \u0027%(host)s:%(node)s\u0027),"},{"line_number":536,"context_line":"                     {\u0027host\u0027: self.host, \u0027node\u0027: self.nodename})"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a122d0e_28920fa0","line":533,"updated":"2016-04-21 13:56:58.000000000","message":"not sure it\u0027s cool, lemme think about another possibility.","commit_id":"6c3e6f3449fee0f8eca41045cfdd81140c1841fc"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b2d26c75ddd73b33aaabdeb638e0bdc6aad3c9a","unresolved":false,"context_lines":[{"line_number":450,"context_line":"                              \u0027another host\\\u0027s instance!\u0027),"},{"line_number":451,"context_line":"                          {\u0027uuid\u0027: migration.instance_uuid})"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    def __update_available_resource(self, context):"},{"line_number":454,"context_line":"        # if we could not init the compute node the tracker will be"},{"line_number":455,"context_line":"        # disabled and we should quit now"},{"line_number":456,"context_line":"        if self.disabled:"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_00d09252","line":453,"range":{"start_line":453,"start_character":6,"end_line":453,"end_character":51},"updated":"2016-06-10 10:55:41.000000000","message":"nit: not sure I like to see a \"privatly private\" method :-)","commit_id":"a62da3a918603da84f6a70072a28f721a9a56b0f"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b2d26c75ddd73b33aaabdeb638e0bdc6aad3c9a","unresolved":false,"context_lines":[{"line_number":493,"context_line":"        # but it is. This should be changed in ComputeNode"},{"line_number":494,"context_line":"        self.compute_node.metrics \u003d jsonutils.dumps(metrics)"},{"line_number":495,"context_line":""},{"line_number":496,"context_line":"    @utils.synchronized(COMPUTE_RESOURCE_SEMAPHORE)"},{"line_number":497,"context_line":"    def _update_available_resource(self, context, resources):"},{"line_number":498,"context_line":"        # if there is already a compute node just use resources"},{"line_number":499,"context_line":"        # to initialize"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_c0c84a77","line":496,"updated":"2016-06-10 10:55:41.000000000","message":"so, here you\u0027re synchronizing all the previous init call...\n\nI actually wonder if we wouldn\u0027t be better to rather only leave the init method and only synchronize the object persistence (when .create()) and *maybe* the accessor method (ie. _get_compute_node())\n\nWe had some problems in the past with having all the previous update_available_resource being synchronized, I just don\u0027t want to regress here.","commit_id":"a62da3a918603da84f6a70072a28f721a9a56b0f"}],"nova/scheduler/ironic_host_manager.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"a8ec522edd394bc5e8fd1da98585e5cb1f15ff4a","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        if (self.updated and compute.updated_at"},{"line_number":43,"context_line":"                and self.updated \u003e compute.updated_at):"},{"line_number":44,"context_line":"            return"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        self.vcpus_total \u003d compute.vcpus"},{"line_number":47,"context_line":"        self.vcpus_used \u003d compute.vcpus_used"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a122d0e_23954832","line":45,"updated":"2016-04-20 16:04:32.000000000","message":"given the above is just a copy of https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L183-L187 which was forgotten when the fix was done, we should probably move that up to the driver and factorize this in https://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L183-L187","commit_id":"98bce28d3cb746b0c4f7196d6a09a433b8f27764"}],"nova/tests/unit/compute/test_tracker.py":[{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"2b2d26c75ddd73b33aaabdeb638e0bdc6aad3c9a","unresolved":false,"context_lines":[{"line_number":989,"context_line":"                                                 self.rt.compute_node))"},{"line_number":990,"context_line":""},{"line_number":991,"context_line":""},{"line_number":992,"context_line":"class TestInitComputeNode(BaseTestCase):"},{"line_number":993,"context_line":""},{"line_number":994,"context_line":"    @mock.patch(\u0027nova.objects.PciDeviceList.get_by_compute_node\u0027,"},{"line_number":995,"context_line":"                return_value\u003dobjects.PciDeviceList())"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_40abba89","side":"PARENT","line":992,"updated":"2016-06-10 10:55:41.000000000","message":"not sure removing all the related UTs without making sure the other TestUpdateComputeTestNode UTs are modifying sounds good to me :-)","commit_id":"cfd64c976b8aaacaf09fd2a6303877674fcfada0"}]}
