)]}'
{"doc/source/index.rst":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"5a2dd0115f1a599fc799a3ba5b9eb70e5bcfac41","unresolved":false,"context_lines":[{"line_number":272,"context_line":"   reference/services"},{"line_number":273,"context_line":"   reference/stable-api"},{"line_number":274,"context_line":"   reference/threading"},{"line_number":275,"context_line":"   reference/upt"},{"line_number":276,"context_line":"   reference/vm-states"},{"line_number":277,"context_line":"   user/index"},{"line_number":278,"context_line":"   user/aggregates"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_f7a3a5b0","line":275,"range":{"start_line":275,"start_character":13,"end_line":275,"end_character":16},"updated":"2018-03-15 17:26:28.000000000","message":"This should be spelled out, like block-device-mapping, api-microversion-history, etc.","commit_id":"a6a88bbe4ce0cbb0e1b8ca3298b722a8e46ecdfa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"5983cc19c585e5c9f0707938b4336f5a182bfbe2","unresolved":false,"context_lines":[{"line_number":272,"context_line":"   reference/services"},{"line_number":273,"context_line":"   reference/stable-api"},{"line_number":274,"context_line":"   reference/threading"},{"line_number":275,"context_line":"   reference/upt"},{"line_number":276,"context_line":"   reference/vm-states"},{"line_number":277,"context_line":"   user/index"},{"line_number":278,"context_line":"   user/aggregates"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_fd85a8ad","line":275,"range":{"start_line":275,"start_character":13,"end_line":275,"end_character":16},"in_reply_to":"df7087c5_0d908649","updated":"2018-03-16 16:06:10.000000000","message":"Okay, okay ice man.  Done.","commit_id":"a6a88bbe4ce0cbb0e1b8ca3298b722a8e46ecdfa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b53e18a93bfe69638bec4fdf66a7de95343ae346","unresolved":false,"context_lines":[{"line_number":272,"context_line":"   reference/services"},{"line_number":273,"context_line":"   reference/stable-api"},{"line_number":274,"context_line":"   reference/threading"},{"line_number":275,"context_line":"   reference/upt"},{"line_number":276,"context_line":"   reference/vm-states"},{"line_number":277,"context_line":"   user/index"},{"line_number":278,"context_line":"   user/aggregates"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_0d908649","line":275,"range":{"start_line":275,"start_character":13,"end_line":275,"end_character":16},"in_reply_to":"df7087c5_f7a3a5b0","updated":"2018-03-15 18:17:11.000000000","message":"I need it to fit into the docstring [1].  I cite as precedent: \u0027gmr\u0027 isn\u0027t spelled out.\n\nAnd when this renders [2], the link text is the title from the doc itself, so it doesn\u0027t matter to the reader.\n\n[1] https://review.openstack.org/#/c/553476/1/nova/virt/driver.py@850\n[2] http://logs.openstack.org/76/553476/1/check/build-openstack-sphinx-docs/fd5906d/html/reference/","commit_id":"a6a88bbe4ce0cbb0e1b8ca3298b722a8e46ecdfa"}],"doc/source/reference/update-provider-tree.rst":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cf9ff7a2a09b41d27298d9a9afbd1c7381468dbc","unresolved":false,"context_lines":[{"line_number":34,"context_line":"configures in placement on behalf of the compute node. This need is filled by"},{"line_number":35,"context_line":"the virt driver method ``update_provider_tree`` and its consumption by the"},{"line_number":36,"context_line":"resource tracker, allowing full control over the placement representation of"},{"line_number":37,"context_line":"the compute node and its associated providers and metadata."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The Method"},{"line_number":40,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_f66af27e","line":37,"range":{"start_line":37,"start_character":50,"end_line":37,"end_character":58},"updated":"2018-03-30 15:10:25.000000000","message":"I hate the term metadata and it adds no value here. Can we please just state \"and its associated providers.\"","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0ff6397e6a6182bc6e0ee971bc56910441218c97","unresolved":false,"context_lines":[{"line_number":34,"context_line":"configures in placement on behalf of the compute node. This need is filled by"},{"line_number":35,"context_line":"the virt driver method ``update_provider_tree`` and its consumption by the"},{"line_number":36,"context_line":"resource tracker, allowing full control over the placement representation of"},{"line_number":37,"context_line":"the compute node and its associated providers and metadata."},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"The Method"},{"line_number":40,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_713d81db","line":37,"range":{"start_line":37,"start_character":50,"end_line":37,"end_character":58},"in_reply_to":"bf659307_f66af27e","updated":"2018-03-31 22:52:51.000000000","message":"The value it adds in general is that I don\u0027t have to say \"providers and their traits, aggregates, and inventories\".  But it works to remove it here.","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cf9ff7a2a09b41d27298d9a9afbd1c7381468dbc","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  therefore also be careful only to add/remove traits/aggregates it explicitly"},{"line_number":55,"context_line":"  controls."},{"line_number":56,"context_line":"* String name of the compute node (i.e. ``ComputeNode.hypervisor_hostname``)"},{"line_number":57,"context_line":"  for which the caller is updating providers and inventory. Drivers may use"},{"line_number":58,"context_line":"  this to help identify the compute node provider in the ProviderTree. Drivers"},{"line_number":59,"context_line":"  managing more than one node (e.g. ironic) may also use it as a cue to"},{"line_number":60,"context_line":"  indicate which node is being updated."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_f618b21e","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":58},"updated":"2018-03-30 15:10:25.000000000","message":"it would be more accurate to say \"for which the caller is expecting to get updated provider, inventory and traits information\"","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0ff6397e6a6182bc6e0ee971bc56910441218c97","unresolved":false,"context_lines":[{"line_number":54,"context_line":"  therefore also be careful only to add/remove traits/aggregates it explicitly"},{"line_number":55,"context_line":"  controls."},{"line_number":56,"context_line":"* String name of the compute node (i.e. ``ComputeNode.hypervisor_hostname``)"},{"line_number":57,"context_line":"  for which the caller is updating providers and inventory. Drivers may use"},{"line_number":58,"context_line":"  this to help identify the compute node provider in the ProviderTree. Drivers"},{"line_number":59,"context_line":"  managing more than one node (e.g. ironic) may also use it as a cue to"},{"line_number":60,"context_line":"  indicate which node is being updated."}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_f128b197","line":57,"range":{"start_line":57,"start_character":2,"end_line":57,"end_character":58},"in_reply_to":"bf659307_f618b21e","updated":"2018-03-31 22:52:51.000000000","message":"While it\u0027s true that the caller is expecting updated information, it\u0027s also perfectly accurate that the caller is updating providers and inventory (based on what this method returns).\n\nBut done.","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cf9ff7a2a09b41d27298d9a9afbd1c7381468dbc","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* String name of the compute node (i.e. ``ComputeNode.hypervisor_hostname``)"},{"line_number":57,"context_line":"  for which the caller is updating providers and inventory. Drivers may use"},{"line_number":58,"context_line":"  this to help identify the compute node provider in the ProviderTree. Drivers"},{"line_number":59,"context_line":"  managing more than one node (e.g. ironic) may also use it as a cue to"},{"line_number":60,"context_line":"  indicate which node is being updated."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The virt driver is expected to update the ProviderTree object with current"},{"line_number":63,"context_line":"resource provider and inventory information. When the method returns, the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_96dff638","line":60,"range":{"start_line":59,"start_character":69,"end_line":60,"end_character":38},"updated":"2018-03-30 15:10:25.000000000","message":"\"to indicate which node that the caller expects to get updated information.\"","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0ff6397e6a6182bc6e0ee971bc56910441218c97","unresolved":false,"context_lines":[{"line_number":56,"context_line":"* String name of the compute node (i.e. ``ComputeNode.hypervisor_hostname``)"},{"line_number":57,"context_line":"  for which the caller is updating providers and inventory. Drivers may use"},{"line_number":58,"context_line":"  this to help identify the compute node provider in the ProviderTree. Drivers"},{"line_number":59,"context_line":"  managing more than one node (e.g. ironic) may also use it as a cue to"},{"line_number":60,"context_line":"  indicate which node is being updated."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"The virt driver is expected to update the ProviderTree object with current"},{"line_number":63,"context_line":"resource provider and inventory information. When the method returns, the"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_f1019107","line":60,"range":{"start_line":59,"start_character":69,"end_line":60,"end_character":38},"in_reply_to":"bf659307_96dff638","updated":"2018-03-31 22:52:51.000000000","message":"That would be repetitive of the change above.  I tweaked it to be more general and still read okay.","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cf9ff7a2a09b41d27298d9a9afbd1c7381468dbc","unresolved":false,"context_lines":[{"line_number":63,"context_line":"resource provider and inventory information. When the method returns, the"},{"line_number":64,"context_line":"ProviderTree should represent the correct hierarchy of nested resource"},{"line_number":65,"context_line":"providers associated with this compute node, as well as the inventory,"},{"line_number":66,"context_line":"aggregates, and traits associated with those resource providers."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. note:: Despite the name, a ProviderTree instance may in fact contain more"},{"line_number":69,"context_line":"          than one tree. For purposes of this specification, the ProviderTree"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_b6a23aad","line":66,"updated":"2018-03-30 15:10:25.000000000","message":"might be worth noting here:\n\n In other words, the ``provider_tree`` parameter to\n ``update_provider_tree`` is passed *by reference* with\n the expectation that the virt driver shall modify the\n object.","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0ff6397e6a6182bc6e0ee971bc56910441218c97","unresolved":false,"context_lines":[{"line_number":63,"context_line":"resource provider and inventory information. When the method returns, the"},{"line_number":64,"context_line":"ProviderTree should represent the correct hierarchy of nested resource"},{"line_number":65,"context_line":"providers associated with this compute node, as well as the inventory,"},{"line_number":66,"context_line":"aggregates, and traits associated with those resource providers."},{"line_number":67,"context_line":""},{"line_number":68,"context_line":".. note:: Despite the name, a ProviderTree instance may in fact contain more"},{"line_number":69,"context_line":"          than one tree. For purposes of this specification, the ProviderTree"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bf659307_0c142e43","line":66,"in_reply_to":"bf659307_b6a23aad","updated":"2018-03-31 22:52:51.000000000","message":"Added to the provider_tree param description.","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"}],"doc/source/reference/upt.rst":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"5a2dd0115f1a599fc799a3ba5b9eb70e5bcfac41","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            PF1    PF2 PF3   PF4--------BW1   BW2------PF1    PF2 PF3   PF4"},{"line_number":88,"context_line":"                                 agg2             agg3"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"          When ``update_provider_tree`` is invoked for ``CN1``, it is passed a"},{"line_number":91,"context_line":"          ProviderTree containing::"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"                     CN1 (root)"},{"line_number":94,"context_line":"                    /   \\       agg1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_574291ac","line":91,"range":{"start_line":90,"start_character":64,"end_line":91,"end_character":33},"updated":"2018-03-15 17:26:28.000000000","message":"Where is this initial tree created and populated with this information? I thought it was CN1 that populated the structure. It should only be passed to the compute node after the compute node has created it initially, in order to see what\u0027s changed.","commit_id":"a6a88bbe4ce0cbb0e1b8ca3298b722a8e46ecdfa"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b53e18a93bfe69638bec4fdf66a7de95343ae346","unresolved":false,"context_lines":[{"line_number":87,"context_line":"            PF1    PF2 PF3   PF4--------BW1   BW2------PF1    PF2 PF3   PF4"},{"line_number":88,"context_line":"                                 agg2             agg3"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"          When ``update_provider_tree`` is invoked for ``CN1``, it is passed a"},{"line_number":91,"context_line":"          ProviderTree containing::"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"                     CN1 (root)"},{"line_number":94,"context_line":"                    /   \\       agg1"}],"source_content_type":"text/x-rst","patch_set":1,"id":"df7087c5_4dbf5ea9","line":91,"range":{"start_line":90,"start_character":64,"end_line":91,"end_character":33},"in_reply_to":"df7087c5_574291ac","updated":"2018-03-15 18:17:11.000000000","message":"This is way more detail than even this doc should get into, but:\n\nIn the beginning Placement created the database. The database is empty.\n\nCN1 (the root provider for that compute node) gets created by the resource tracker running on compute node 1 even before we call update_provider_tree for the first time.  Then upt populates the NUMAs and PFs.  (Or maybe neutron populates the PFs.  Whatever.)\n\nCN2 ditto, on compute node 2.\n\nSomebody populates SHR_ROOT and its children.  That tree could be co-managed by the compute nodes, and/or cinder and/or neutron and/or something else.\n\nNow the diagram above represents everything known to the placement db in a steady state after all of the above has already happened.\n\nAnd then the diagram below zooms in on what\u0027s passed to upt on CN1.","commit_id":"a6a88bbe4ce0cbb0e1b8ca3298b722a8e46ecdfa"}],"nova/virt/driver.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"cf9ff7a2a09b41d27298d9a9afbd1c7381468dbc","unresolved":false,"context_lines":[{"line_number":866,"context_line":"            add/remove traits/aggregates it explicitly controls."},{"line_number":867,"context_line":"        :param nodename:"},{"line_number":868,"context_line":"            String name of the compute node (i.e."},{"line_number":869,"context_line":"            ComputeNode.hypervisor_hostname) for which the caller is updating"},{"line_number":870,"context_line":"            providers and inventory. Drivers may use this to help identify the"},{"line_number":871,"context_line":"            compute node provider in the ProviderTree. Drivers managing more"},{"line_number":872,"context_line":"            than one node (e.g. ironic) may also use it as a cue to indicate"},{"line_number":873,"context_line":"            which node is being updated."}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_1672064a","line":870,"range":{"start_line":869,"start_character":45,"end_line":870,"end_character":35},"updated":"2018-03-30 15:10:25.000000000","message":"\"for which the caller is expecting to have provider and inventory information updated by the virt driver\".","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"0ff6397e6a6182bc6e0ee971bc56910441218c97","unresolved":false,"context_lines":[{"line_number":866,"context_line":"            add/remove traits/aggregates it explicitly controls."},{"line_number":867,"context_line":"        :param nodename:"},{"line_number":868,"context_line":"            String name of the compute node (i.e."},{"line_number":869,"context_line":"            ComputeNode.hypervisor_hostname) for which the caller is updating"},{"line_number":870,"context_line":"            providers and inventory. Drivers may use this to help identify the"},{"line_number":871,"context_line":"            compute node provider in the ProviderTree. Drivers managing more"},{"line_number":872,"context_line":"            than one node (e.g. ironic) may also use it as a cue to indicate"},{"line_number":873,"context_line":"            which node is being updated."}],"source_content_type":"text/x-python","patch_set":2,"id":"bf659307_8c291e8b","line":870,"range":{"start_line":869,"start_character":45,"end_line":870,"end_character":35},"in_reply_to":"bf659307_1672064a","updated":"2018-03-31 22:52:51.000000000","message":"Synced this with the doc","commit_id":"3a65f5add1906eea6a0665656188abb7708b32cc"}]}
