)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":24,"context_line":"I don\u0027t know how any of these are working, but I guess the periodic"},{"line_number":25,"context_line":"update that correctly calls _get_node() with a UUID keeps the node"},{"line_number":26,"context_line":"cache current."},{"line_number":27,"context_line":"Original bug text END!"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"This change addresses bug 1704231. In the Ironic driver nodename is"},{"line_number":30,"context_line":"often times used because the inherited class uses nodename for method"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf3e73b7_de73df7f","line":27,"updated":"2017-08-07 21:20:00.000000000","message":"This doesn\u0027t really make sense to me. Ironic is the only driver that implements this virt driver API call, and the resource tracker is calling it with nodename, presumably because ironic has returned a node uuid as the name. That\u0027s fine. It\u0027s a node name to Nova, which is what we call it everywhere. If the ironic driver uses the UUID as the name, then that\u0027s fine and not particularly confusing, IMHO.","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":29,"context_line":"This change addresses bug 1704231. In the Ironic driver nodename is"},{"line_number":30,"context_line":"often times used because the inherited class uses nodename for method"},{"line_number":31,"context_line":"parameters. However the ironic driver doesn\u0027t actually use the"},{"line_number":32,"context_line":"nodename but uses node_uuid. Driver.py is update by code in some"},{"line_number":33,"context_line":"places and documentation in others to try to make it more clear"},{"line_number":34,"context_line":"that node_uuid is being used without changing the signature of the"},{"line_number":35,"context_line":"methods that are inhereted."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf3e73b7_be47fb1d","line":32,"range":{"start_line":32,"start_character":42,"end_line":32,"end_character":48},"updated":"2017-08-07 21:20:00.000000000","message":"updated","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":32,"context_line":"nodename but uses node_uuid. Driver.py is update by code in some"},{"line_number":33,"context_line":"places and documentation in others to try to make it more clear"},{"line_number":34,"context_line":"that node_uuid is being used without changing the signature of the"},{"line_number":35,"context_line":"methods that are inhereted."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"Change-Id: I3b69c7d90ed40816e740a2a609c115312fb466ac"},{"line_number":38,"context_line":"Closes-Bug: #1704231"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf3e73b7_9e5437cc","line":35,"range":{"start_line":35,"start_character":17,"end_line":35,"end_character":26},"updated":"2017-08-07 21:20:00.000000000","message":"inherited.","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1a75b5aa03d515d50410c706cd2b94022a5734ba","unresolved":false,"context_lines":[{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    def _get_node(self, node_uuid):"},{"line_number":157,"context_line":"        \"\"\"Get a node by its UUID. Some methods pass in variables named"},{"line_number":158,"context_line":"           nodename, but are actually uuid\u0027s."},{"line_number":159,"context_line":"        \"\"\""},{"line_number":160,"context_line":"        return self.ironicclient.call(\u0027node.get\u0027, node_uuid,"},{"line_number":161,"context_line":"                                      fields\u003d_NODE_FIELDS)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_9f064e86","line":158,"updated":"2017-07-25 14:34:11.000000000","message":"I don\u0027t know how they do things in nova-land, but in ironic, the docstrings conform to [1]. But if this passes the tests, I guess nova is OK with it.\n\n[1] https://docs.openstack.org/hacking/latest/user/hacking.html#docstrings","commit_id":"af295b70a092b9b1d146cfce6b69a5e220593d69"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1a75b5aa03d515d50410c706cd2b94022a5734ba","unresolved":false,"context_lines":[{"line_number":534,"context_line":"        # rare."},{"line_number":535,"context_line":"        try:"},{"line_number":536,"context_line":"            # Parameter is called nodename even though it is a uuid to"},{"line_number":537,"context_line":"            # keep method signature the same as inherited class."},{"line_number":538,"context_line":"            self._get_node(nodename)"},{"line_number":539,"context_line":"            return True"},{"line_number":540,"context_line":"        except ironic.exc.NotFound:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_7f172aa5","line":537,"updated":"2017-07-25 14:34:11.000000000","message":"It is documented at L517; I would think it makes more sense to elaborate there, than here?","commit_id":"af295b70a092b9b1d146cfce6b69a5e220593d69"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1a75b5aa03d515d50410c706cd2b94022a5734ba","unresolved":false,"context_lines":[{"line_number":1293,"context_line":"        :param network_info: Instance network information."},{"line_number":1294,"context_line":""},{"line_number":1295,"context_line":"        \"\"\""},{"line_number":1296,"context_line":"        #   Node should be a uuid if ironic driver is being used."},{"line_number":1297,"context_line":"        node \u003d self._get_node(instance.node)"},{"line_number":1298,"context_line":"        self._plug_vifs(node, instance, network_info)"},{"line_number":1299,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_7fca8a1a","line":1296,"updated":"2017-07-25 14:34:11.000000000","message":"How about:\n\n\"instance.node is the ironic node\u0027s UUID.\"","commit_id":"af295b70a092b9b1d146cfce6b69a5e220593d69"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"1a75b5aa03d515d50410c706cd2b94022a5734ba","unresolved":false,"context_lines":[{"line_number":1304,"context_line":"        :param network_info: Instance network information."},{"line_number":1305,"context_line":""},{"line_number":1306,"context_line":"        \"\"\""},{"line_number":1307,"context_line":"        #   Node should be a uuid if ironic driver is being used."},{"line_number":1308,"context_line":"        node \u003d self._get_node(instance.node)"},{"line_number":1309,"context_line":"        self._unplug_vifs(node, instance, network_info)"},{"line_number":1310,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"ff346bd7_5fd106cd","line":1307,"updated":"2017-07-25 14:34:11.000000000","message":"ditto","commit_id":"af295b70a092b9b1d146cfce6b69a5e220593d69"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"4c530c8f605a64ad3e456a2d332f067955d67fd4","unresolved":false,"context_lines":[{"line_number":517,"context_line":"        \"\"\"Confirms a Nova hypervisor node exists in the Ironic inventory."},{"line_number":518,"context_line":""},{"line_number":519,"context_line":"        :param nodename: The UUID of the node. Parameter is called nodename"},{"line_number":520,"context_line":"                         even though it is a uuid to keep method signature"},{"line_number":521,"context_line":"                         the same as inherited class."},{"line_number":522,"context_line":"        :returns: True if the node exists, False if not."},{"line_number":523,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"ff346bd7_2f0a8589","line":520,"updated":"2017-07-25 19:18:44.000000000","message":"nit s/uuid/UUID/","commit_id":"636c95378cf45eeb70f70f54cb300a05a1a4f915"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":514,"context_line":""},{"line_number":515,"context_line":"        :param nodename: The UUID of the node. Parameter is called nodename"},{"line_number":516,"context_line":"                         even though it is a UUID to keep method signature"},{"line_number":517,"context_line":"                         the same as inherited class."},{"line_number":518,"context_line":"        :returns: True if the node exists, False if not."},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf3e73b7_9e91d79c","line":517,"updated":"2017-08-07 21:20:00.000000000","message":"Ironic is the only driver that uses this. If this is the right thing to do, then just change the signature here and in the superclass to avoid confusion.","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":518,"context_line":"        :returns: True if the node exists, False if not."},{"line_number":519,"context_line":""},{"line_number":520,"context_line":"        \"\"\""},{"line_number":521,"context_line":"        # Make the name more accurate"},{"line_number":522,"context_line":"        node_uuid \u003d nodename"},{"line_number":523,"context_line":"        # NOTE(comstud): We can cheat and use caching here. This method"},{"line_number":524,"context_line":"        # just needs to return True for nodes that exist. It doesn\u0027t"},{"line_number":525,"context_line":"        # matter if the data is stale. Sure, it\u0027s possible that removing"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf3e73b7_3e0aebd1","line":522,"range":{"start_line":521,"start_character":8,"end_line":522,"end_character":28},"updated":"2017-08-07 21:20:00.000000000","message":"This is not a particularly useful change, IMHO. The nodename is something you\u0027re passed from the resource tracker because you have previously told it that the name of the node is a string, which happens to be a uuid.","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":535,"context_line":"        # NOTE(comstud): Fallback and check Ironic. This case should be"},{"line_number":536,"context_line":"        # rare."},{"line_number":537,"context_line":"        try:"},{"line_number":538,"context_line":"            self._get_node(node_uuid)"},{"line_number":539,"context_line":"            return True"},{"line_number":540,"context_line":"        except ironic.exc.NotFound:"},{"line_number":541,"context_line":"            return False"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf3e73b7_bef5bbcd","line":538,"updated":"2017-08-07 21:20:00.000000000","message":"Wouldn\u0027t the crux of this change be addressed by a simple comment above this line that says:\n\n # Note: the Nova nodename is the ironic node uuid\n\n?","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"31feb681cc0deb4d54f986128bbeb8f66cb0d329","unresolved":false,"context_lines":[{"line_number":1299,"context_line":"        :param network_info: Instance network information."},{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        \"\"\""},{"line_number":1302,"context_line":"        # instance.node is the ironic node\u0027s UUID."},{"line_number":1303,"context_line":"        node \u003d self._get_node(instance.node)"},{"line_number":1304,"context_line":"        self._plug_vifs(node, instance, network_info)"},{"line_number":1305,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"bf3e73b7_3e330bae","line":1302,"updated":"2017-08-07 21:20:00.000000000","message":"Hey, lookie here :)\n\nNova has a nodename. You people gave us a uuid as the node name, which is cool. No further work necessary, IMHO.","commit_id":"2f8a581cbf90c86e76543860f223a0ca3c13d317"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"8aa09701150f372d67d3f0ff34365c2c4b9975e9","unresolved":false,"context_lines":[{"line_number":539,"context_line":"        # NOTE(comstud): Fallback and check Ironic. This case should be"},{"line_number":540,"context_line":"        # rare."},{"line_number":541,"context_line":"        try:"},{"line_number":542,"context_line":"            # nodename is the ironic node\u0027s UUID."},{"line_number":543,"context_line":"            self._get_node(nodename)"},{"line_number":544,"context_line":"            return True"},{"line_number":545,"context_line":"        except ironic.exc.NotFound:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9f436f4f_086737b9","line":542,"updated":"2017-08-16 15:34:20.000000000","message":"nit: it\u0027s not really necessary to repeat the same information this close to the previous comment.","commit_id":"b890eec613a17f2a1c7b801f5fecce2aadbe5101"}]}
