)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"42684b95e0f2ad9bf4bfef255e00d46347571a8a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Update \"add host and hypervisor_hostname flag to create server\" spec"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The spec is updated based on that something has been implemented."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ib06dab6480a89667a7b483c6b4b15824b760e441"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfb3d3c7_12eb50b0","line":10,"updated":"2019-05-22 20:51:19.000000000","message":"I see there was earlier conversation in this review with Alex. It would have been helpful to me as a reviewer if you would try to summarize the changes made and why.","commit_id":"41ba31baf39bd6c549447b9b4f436b760d3a50d3"}],"specs/train/approved/add-host-and-hypervisor-hostname-flag-to-create-server.rst":[{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"ea36c4a87ae27a6be3e0bd6541c9ccb2d1bd96e0","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_482b6d2f","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"updated":"2019-05-22 08:52:02.000000000","message":"Another issue is that if I do not query the compute nodes by host and/or node and I only supply the hypervisor_hostname here, I have no idea to construct the destination object. In fact, the host is required for destination object.\n\nBut if I want to query the compute nodes here, normal context does not contain the cell context. So the function will be duplicated with this in host_manager[1].\n\n[1] https://review.opendev.org/#/c/650877/7/nova/scheduler/host_manager.py@654","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"b41bf9fae96de5d44191442a044e9c728330937c","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_5cad722f","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"updated":"2019-05-22 05:40:03.000000000","message":"With the patch[1] merged, we will check whether we can get compute nodes from the host and/or node of requested_destination. So do we need to remove the check from api because it\u0027s just a duplicated query and checking.\n\n[1] https://review.opendev.org/#/c/650878/7/nova/scheduler/utils.py@495","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ff09b49c9707d3dbe2ee9f6c366e17dc15a132d2","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_c8a67d54","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"in_reply_to":"bfb3d3c7_5cad722f","updated":"2019-05-22 09:12:59.000000000","message":"I don\u0027t think we should remove that check, that will lead to the instance becomes errors status instead of fail early.","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"c3fc787ab2e0089b74c72619f5dd5cfa97c45c35","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_cbc0b72d","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"in_reply_to":"bfb3d3c7_c8a67d54","updated":"2019-05-22 09:50:45.000000000","message":"\u003e I don\u0027t think we should remove that check, that will lead to the\n \u003e instance becomes errors status instead of fail early.\n\nSo in fact, I re-make a function like this[1] in api. Or Can I import host_manager in compute/api.py and re-use the get_compute_nodes_by_host_or_node function?\n\n[1] https://review.opendev.org/#/c/650877/7/nova/scheduler/host_manager.py@654","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"b97f8330bc6f224e5750e9789c2f7089b4aca6db","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_57dd4412","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"in_reply_to":"bfb3d3c7_cbc0b72d","updated":"2019-05-22 13:02:13.000000000","message":"I checked the comment in the patch. I see the performance concern. I want to hear other people opionion. Maybe we can check the host valid in the API layer, but do the node check in later. Anyway let see what other people say.","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"b41bf9fae96de5d44191442a044e9c728330937c","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. note::"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_bc634e1a","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":28},"updated":"2019-05-22 05:40:03.000000000","message":"Add another scene of api will raise 400.","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"c3fc787ab2e0089b74c72619f5dd5cfa97c45c35","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. note::"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_2b99536d","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":28},"in_reply_to":"bfb3d3c7_684c319e","updated":"2019-05-22 09:50:45.000000000","message":"Done. My fault.","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ff09b49c9707d3dbe2ee9f6c366e17dc15a132d2","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. note::"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"bfb3d3c7_684c319e","line":127,"range":{"start_line":126,"start_character":0,"end_line":127,"end_character":28},"in_reply_to":"bfb3d3c7_bc634e1a","updated":"2019-05-22 09:12:59.000000000","message":"I thought it should be 403, returned by policy check?","commit_id":"3644dc5097cdfe5e985476afe75c4ad5d04749a4"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c452d85ef9c1144b232b34f0ecf872c6a74c8c7e","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_0c41023a","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"updated":"2019-05-22 13:58:19.000000000","message":"This seems like just a more concise way of saying what the spec already said, nothing about the logic really changed with this right?","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"a7aa7b5b196450f008986826905cd022f4f76269","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_ec026e0b","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"in_reply_to":"bfb3d3c7_0c41023a","updated":"2019-05-22 14:47:45.000000000","message":"\u003e This seems like just a more concise way of saying what the spec\n \u003e already said, nothing about the logic really changed with this\n \u003e right?\n\nNo.\n\nAt first, we try to query and check whether we can get compute nodes from API. So that we can raise exception early and we will not get an error vm at all. But Someone told me that in fact we have do the same thing here[1].\n\nSo is it necessary for us to do the duplicated things in API layer?\n\n[1] https://github.com/openstack/nova/blob/66a77f2fb75bbb9daebdca1cad0255ecafe41e92/nova/scheduler/utils.py#L528","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c60f9641a75ce408fb223460b58ac3ddad41cfbd","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_d29e1853","line":125,"range":{"start_line":123,"start_character":0,"end_line":125,"end_character":11},"in_reply_to":"bfb3d3c7_ec026e0b","updated":"2019-05-22 20:49:00.000000000","message":"Waiting until https://github.com/openstack/nova/blob/66a77f2fb75bbb9daebdca1cad0255ecafe41e92/nova/scheduler/utils.py#L528 means we\u0027ll have already RPC cast from nova-api to nova-conductor and then nova-conductor RPC calls select_destinations which will hit that code, but at that point the user already got a 202 response. So if you remove the validation in the API you won\u0027t get a 400 if the host and/or hypervisor_hostname don\u0027t exist, so the spec change here would be wrong. The question is then if we should wait for https://github.com/openstack/nova/blob/66a77f2fb75bbb9daebdca1cad0255ecafe41e92/nova/scheduler/utils.py#L528 to result in a NoValidHost error.","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c452d85ef9c1144b232b34f0ecf872c6a74c8c7e","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_ac9eb6b5","line":126,"range":{"start_line":126,"start_character":59,"end_line":126,"end_character":62},"updated":"2019-05-22 13:58:19.000000000","message":"If we\u0027re checking policy and the user is not allowed it should be a 403 error.\n\nThis could be in the \"Security impact\" section.","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"a7aa7b5b196450f008986826905cd022f4f76269","unresolved":false,"context_lines":[{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":"- In default, when non-admin users specify them, an ``HTTP 400 Bad Request``"},{"line_number":127,"context_line":"  will be returned to users."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":".. note::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_5f255aaa","line":126,"range":{"start_line":126,"start_character":59,"end_line":126,"end_character":62},"in_reply_to":"bfb3d3c7_ac9eb6b5","updated":"2019-05-22 14:47:45.000000000","message":"Done. Remove it here. Add into \"Security impact\" section.","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c452d85ef9c1144b232b34f0ecf872c6a74c8c7e","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  The new (``host`` and/or ``hypervisor_hostname``) and the old"},{"line_number":132,"context_line":"  (``az:host:node``) mechanisms are mutually exclusive. If both are specified"},{"line_number":133,"context_line":"  in the same request, the API will return an HTTP 403 Forbidden."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Security impact"},{"line_number":136,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_2c93a6a5","line":133,"range":{"start_line":133,"start_character":46,"end_line":133,"end_character":65},"updated":"2019-05-22 13:58:19.000000000","message":"I\u0027m not sure why this was changed to a 403. Specifying mutually exclusive params should be a 400. Requesting params that you don\u0027t have access to use should be a 403 as noted above. Do you have these error codes backwards?","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":28706,"name":"Boxiang Zhu","email":"bxzhu_5355@163.com","username":"ZhuBoxiang"},"change_message_id":"a7aa7b5b196450f008986826905cd022f4f76269","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"  The new (``host`` and/or ``hypervisor_hostname``) and the old"},{"line_number":132,"context_line":"  (``az:host:node``) mechanisms are mutually exclusive. If both are specified"},{"line_number":133,"context_line":"  in the same request, the API will return an HTTP 403 Forbidden."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"Security impact"},{"line_number":136,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":2,"id":"bfb3d3c7_3f22e6a5","line":133,"range":{"start_line":133,"start_character":46,"end_line":133,"end_character":65},"in_reply_to":"bfb3d3c7_2c93a6a5","updated":"2019-05-22 14:47:45.000000000","message":"Oh my gold. It\u0027s my mistake. I changed the wrong place. Ignore it. I will change back. :(","commit_id":"cdb3a95d99b5179b4652a7253a502747fb846bba"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f2b3b4ef6e8d362529cfeede5660705c5a9cff07","unresolved":false,"context_lines":[{"line_number":120,"context_line":"Depending on whether/how the ``host`` and ``hypervisor_hostname`` is set,"},{"line_number":121,"context_line":"the actions are as followed:"},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"- If ``host`` and/or ``hypervisor_hostname`` is supplied in the request body,"},{"line_number":124,"context_line":"  and no compute nodes are found, an ``HTTP 400 Bad Request`` will be returned"},{"line_number":125,"context_line":"  to users."},{"line_number":126,"context_line":""}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_b2ccc46a","line":123,"updated":"2019-05-22 20:49:55.000000000","message":"Based on what you said about waiting for https://github.com/openstack/nova/blob/66a77f2fb75bbb9daebdca1cad0255ecafe41e92/nova/scheduler/utils.py#L528 you would not get a 400 response, you\u0027d get a 202 and then the server would fail to schedule with NoValidHost and go into ERROR status.","commit_id":"41ba31baf39bd6c549447b9b4f436b760d3a50d3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f2b3b4ef6e8d362529cfeede5660705c5a9cff07","unresolved":false,"context_lines":[{"line_number":134,"context_line":"---------------"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"A new policy rule will be added to control which users can specify ``host``"},{"line_number":137,"context_line":"``hypervirsor_hostname`` parameters in creating servers. By default, only"},{"line_number":138,"context_line":"admin can do it."},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"Notifications impact"}],"source_content_type":"text/x-rst","patch_set":3,"id":"bfb3d3c7_32b9b4cb","line":137,"range":{"start_line":137,"start_character":2,"end_line":137,"end_character":13},"updated":"2019-05-22 20:49:55.000000000","message":"hypervisor","commit_id":"41ba31baf39bd6c549447b9b4f436b760d3a50d3"}]}
