)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"eb7ac7ada97799153adea7f2eed26b607ecd4ec0","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Yongli He \u003cyongli.he@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-02-19 14:58:27 +0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add server subresouce toplogy API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add numa topology information to a new server sub-resouce \u0027topology\u0027 API."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":16,"id":"9fdfeff1_4492c2a1","line":7,"range":{"start_line":7,"start_character":22,"end_line":7,"end_character":29},"updated":"2019-02-19 08:55:23.000000000","message":"topology","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add server sub-resource topology API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add NUMA topology information to a new server sub-resource \u0027topology\u0027 API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie647ef96597195b0ef00f77cece16c2bef8a78d4"},{"line_number":12,"context_line":"Implements: blueprint show-server-numa-topology"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":60,"id":"7faddb67_4814c24d","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":74},"updated":"2019-08-28 11:09:46.000000000","message":"You should add the details infomation to this commit message, at least contains blow infomation, this makes it easier for the reader to understand what this patch does.\n1. Add a new server topology API to show server NUMA information:\n\n- ``GET /servers/{server_id}/topology``\n\n2. Add new policy to control the default behavior:\n\n- ``compute:server:topology:index``\n- ``compute:server:topology:host:index``","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add server sub-resource topology API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add NUMA topology information to a new server sub-resource \u0027topology\u0027 API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ie647ef96597195b0ef00f77cece16c2bef8a78d4"},{"line_number":12,"context_line":"Implements: blueprint show-server-numa-topology"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":60,"id":"7faddb67_a30b0620","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":74},"in_reply_to":"7faddb67_4814c24d","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"}],"api-ref/source/index.rst":[{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":53,"context_line":".. include:: os-services.inc"},{"line_number":54,"context_line":".. include:: os-simple-tenant-usage.inc"},{"line_number":55,"context_line":".. include:: os-server-external-events.inc"},{"line_number":56,"context_line":".. include:: topology.inc"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":59,"context_line":"Deprecated APIs"}],"source_content_type":"text/x-rst","patch_set":60,"id":"7faddb67_48092229","line":56,"range":{"start_line":56,"start_character":13,"end_line":56,"end_character":25},"updated":"2019-08-28 11:09:46.000000000","message":"nit: How about renamed \"numa-topology.inc\" or \"server-topology.inc\"? If this done, it will be clearer.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":53,"context_line":".. include:: os-services.inc"},{"line_number":54,"context_line":".. include:: os-simple-tenant-usage.inc"},{"line_number":55,"context_line":".. include:: os-server-external-events.inc"},{"line_number":56,"context_line":".. include:: topology.inc"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":59,"context_line":"Deprecated APIs"}],"source_content_type":"text/x-rst","patch_set":60,"id":"7faddb67_3e32d210","line":56,"range":{"start_line":56,"start_character":13,"end_line":56,"end_character":25},"in_reply_to":"7faddb67_48092229","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"37253c5e716d53f25e16c5ab848647c038151a06","unresolved":false,"context_lines":[{"line_number":5967,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":5968,"context_line":"      cpu threads."},{"line_number":5969,"context_line":""},{"line_number":5970,"context_line":"    * nodes: numa node information."},{"line_number":5971,"context_line":"  in: body"},{"line_number":5972,"context_line":"  required: true"},{"line_number":5973,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"9fdfeff1_11cc1187","line":5970,"range":{"start_line":5970,"start_character":13,"end_line":5970,"end_character":17},"updated":"2019-02-18 09:59:17.000000000","message":"the word ``NUMA`` should be capital in docs","commit_id":"9bb3a842373314497e7ffb1a59b7afb634644cf1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"37253c5e716d53f25e16c5ab848647c038151a06","unresolved":false,"context_lines":[{"line_number":6002,"context_line":"  min_version:2.70"},{"line_number":6003,"context_line":"server_topology_nodes_cpu_set:"},{"line_number":6004,"context_line":"  description: |"},{"line_number":6005,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6006,"context_line":"  in: body"},{"line_number":6007,"context_line":"  required: true"},{"line_number":6008,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":13,"id":"9fdfeff1_b1c66567","line":6005,"range":{"start_line":6005,"start_character":32,"end_line":6005,"end_character":36},"updated":"2019-02-18 09:59:17.000000000","message":"Yes, like this, lets make it consistant in all docs that you added.","commit_id":"9bb3a842373314497e7ffb1a59b7afb634644cf1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c2267eb38e04de962aa05a8da1c38bc200198cd8","unresolved":false,"context_lines":[{"line_number":6004,"context_line":"  in: body"},{"line_number":6005,"context_line":"  required: true"},{"line_number":6006,"context_line":"  type: object"},{"line_number":6007,"context_line":"  min_version: 2.70"},{"line_number":6008,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6009,"context_line":"  description: |"},{"line_number":6010,"context_line":"    What polocy is used to place the guest on cpu threads."}],"source_content_type":"text/x-yaml","patch_set":26,"id":"9fdfeff1_2555ca1e","line":6007,"range":{"start_line":6007,"start_character":2,"end_line":6007,"end_character":19},"updated":"2019-02-25 12:02:08.000000000","message":"2.71, same for all below","commit_id":"a3de72fa964e4122d91de44ffbb8e210a0d2d5b3"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9cc72312c92cf86e5fe0568ddc0d3f989bdd51f7","unresolved":false,"context_lines":[{"line_number":6004,"context_line":"  in: body"},{"line_number":6005,"context_line":"  required: true"},{"line_number":6006,"context_line":"  type: object"},{"line_number":6007,"context_line":"  min_version: 2.70"},{"line_number":6008,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6009,"context_line":"  description: |"},{"line_number":6010,"context_line":"    What polocy is used to place the guest on cpu threads."}],"source_content_type":"text/x-yaml","patch_set":26,"id":"9fdfeff1_aeb19703","line":6007,"range":{"start_line":6007,"start_character":2,"end_line":6007,"end_character":19},"in_reply_to":"9fdfeff1_2555ca1e","updated":"2019-02-25 14:40:03.000000000","message":"Done","commit_id":"a3de72fa964e4122d91de44ffbb8e210a0d2d5b3"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6009,"context_line":"  min_version: 2.52"},{"line_number":6010,"context_line":"server_topology:"},{"line_number":6011,"context_line":"  description: |"},{"line_number":6012,"context_line":"    The server topology resouces which inlude:"},{"line_number":6013,"context_line":""},{"line_number":6014,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":6015,"context_line":"      cpu threads."}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_25da6fe8","line":6012,"range":{"start_line":6012,"start_character":39,"end_line":6012,"end_character":45},"updated":"2019-03-04 16:04:12.000000000","message":"include","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6009,"context_line":"  min_version: 2.52"},{"line_number":6010,"context_line":"server_topology:"},{"line_number":6011,"context_line":"  description: |"},{"line_number":6012,"context_line":"    The server topology resouces which inlude:"},{"line_number":6013,"context_line":""},{"line_number":6014,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":6015,"context_line":"      cpu threads."}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_c5cb631b","line":6012,"range":{"start_line":6012,"start_character":24,"end_line":6012,"end_character":32},"updated":"2019-03-04 16:04:12.000000000","message":"resources","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6011,"context_line":"  description: |"},{"line_number":6012,"context_line":"    The server topology resouces which inlude:"},{"line_number":6013,"context_line":""},{"line_number":6014,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":6015,"context_line":"      cpu threads."},{"line_number":6016,"context_line":""},{"line_number":6017,"context_line":"    * nodes: numa node information."}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_05ddebdb","line":6014,"range":{"start_line":6014,"start_character":31,"end_line":6014,"end_character":37},"updated":"2019-03-04 16:04:12.000000000","message":"policy","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6014,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":6015,"context_line":"      cpu threads."},{"line_number":6016,"context_line":""},{"line_number":6017,"context_line":"    * nodes: numa node information."},{"line_number":6018,"context_line":"  in: body"},{"line_number":6019,"context_line":"  required: true"},{"line_number":6020,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_659ab713","line":6017,"range":{"start_line":6017,"start_character":13,"end_line":6017,"end_character":17},"updated":"2019-03-04 16:04:12.000000000","message":"here and throughout, NUMA is an acronym so please capitalize it.","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6021,"context_line":"  min_version: 2.72"},{"line_number":6022,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6023,"context_line":"  description: |"},{"line_number":6024,"context_line":"    What polocy is used to place the guest on cpu threads."},{"line_number":6025,"context_line":"  in: body"},{"line_number":6026,"context_line":"  required: true"},{"line_number":6027,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_65e5d7a3","line":6024,"range":{"start_line":6024,"start_character":9,"end_line":6024,"end_character":15},"updated":"2019-03-04 16:04:12.000000000","message":"policy","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6035,"context_line":"  min_version: 2.72"},{"line_number":6036,"context_line":"server_topology_nodes_cores:"},{"line_number":6037,"context_line":"  description: |"},{"line_number":6038,"context_line":"    Reporting the cores number of the NUMA node."},{"line_number":6039,"context_line":"  in: body"},{"line_number":6040,"context_line":"  required: true"},{"line_number":6041,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_85b8fb74","line":6038,"range":{"start_line":6038,"start_character":4,"end_line":6038,"end_character":30},"updated":"2019-03-04 16:04:12.000000000","message":"\"The number of CPU cores reported for the *guest* virtual CPU topology\"\n\nThis has nothing to do with NUMA. :(\n\nthis is one of those problems with mixing the guest virtual CPU topology information with the host physical NUMA information in the same object :(","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6042,"context_line":"  min_version: 2.72"},{"line_number":6043,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6044,"context_line":"  description: |"},{"line_number":6045,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6046,"context_line":"  in: body"},{"line_number":6047,"context_line":"  required: true"},{"line_number":6048,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_45ae932e","line":6045,"range":{"start_line":6045,"start_character":24,"end_line":6045,"end_character":31},"updated":"2019-03-04 16:04:12.000000000","message":"maps","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6042,"context_line":"  min_version: 2.72"},{"line_number":6043,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6044,"context_line":"  description: |"},{"line_number":6045,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6046,"context_line":"  in: body"},{"line_number":6047,"context_line":"  required: true"},{"line_number":6048,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_25b10f90","line":6045,"range":{"start_line":6045,"start_character":12,"end_line":6045,"end_character":19},"updated":"2019-03-04 16:04:12.000000000","message":"virtual","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6049,"context_line":"  min_version: 2.72"},{"line_number":6050,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6051,"context_line":"  description: |"},{"line_number":6052,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6053,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6054,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6055,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_2576efd9","line":6052,"range":{"start_line":6052,"start_character":4,"end_line":6052,"end_character":9},"updated":"2019-03-04 16:04:12.000000000","message":"When","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6049,"context_line":"  min_version: 2.72"},{"line_number":6050,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6051,"context_line":"  description: |"},{"line_number":6052,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6053,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6054,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6055,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_a54bbf84","line":6052,"range":{"start_line":6052,"start_character":18,"end_line":6052,"end_character":38},"updated":"2019-03-04 16:04:12.000000000","message":"s/support the threading/supports threading/","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6049,"context_line":"  min_version: 2.72"},{"line_number":6050,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6051,"context_line":"  description: |"},{"line_number":6052,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6053,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6054,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6055,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6056,"context_line":"    belong to another CPU core."}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_05272bc9","line":6053,"range":{"start_line":6052,"start_character":49,"end_line":6053,"end_character":32},"updated":"2019-03-04 16:04:12.000000000","message":"s/siblings report vcpus set which belong to same Host CPU core/reports the sets of vCPU logical processors that are co-located on the same physical core/","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6053,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6054,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6055,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6056,"context_line":"    belong to another CPU core."},{"line_number":6057,"context_line":"  in: body"},{"line_number":6058,"context_line":"  required: true"},{"line_number":6059,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_85147b4e","line":6056,"range":{"start_line":6056,"start_character":4,"end_line":6056,"end_character":10},"updated":"2019-03-04 16:04:12.000000000","message":"belongs","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6060,"context_line":"  min_version: 2.72"},{"line_number":6061,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6062,"context_line":"  description: |"},{"line_number":6063,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6064,"context_line":"  in: body"},{"line_number":6065,"context_line":"  required: true"},{"line_number":6066,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_c003510c","line":6063,"range":{"start_line":6063,"start_character":25,"end_line":6063,"end_character":29},"updated":"2019-03-04 16:04:12.000000000","message":"has been","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6067,"context_line":"  min_version: 2.72"},{"line_number":6068,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6069,"context_line":"  description: |"},{"line_number":6070,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6071,"context_line":"  in: body"},{"line_number":6072,"context_line":"  required: true"},{"line_number":6073,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_0015d93c","line":6070,"range":{"start_line":6070,"start_character":4,"end_line":6070,"end_character":61},"updated":"2019-03-04 16:04:12.000000000","message":"\"The amount of memory in MB reported by this NUMA node\"","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6074,"context_line":"  min_version: 2.72"},{"line_number":6075,"context_line":"server_topology_nodes_pagesize_kb:"},{"line_number":6076,"context_line":"  description: |"},{"line_number":6077,"context_line":"    Reporting the NUMA node\u0027s page size in KB."},{"line_number":6078,"context_line":"  in: body"},{"line_number":6079,"context_line":"  required: true"},{"line_number":6080,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_a04c0d76","line":6077,"range":{"start_line":6077,"start_character":4,"end_line":6077,"end_character":46},"updated":"2019-03-04 16:04:12.000000000","message":"\"The memory page size in KB\"","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6081,"context_line":"  min_version: 2.72"},{"line_number":6082,"context_line":"server_topology_nodes_sockets:"},{"line_number":6083,"context_line":"  description: |"},{"line_number":6084,"context_line":"    Reporting the sockets number of the NUMA node."},{"line_number":6085,"context_line":"  in: body"},{"line_number":6086,"context_line":"  required: true"},{"line_number":6087,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_c09fd1b1","line":6084,"range":{"start_line":6084,"start_character":4,"end_line":6084,"end_character":50},"updated":"2019-03-04 16:04:12.000000000","message":"\"The number of CPU sockets/packages reported for the *guest* virtual CPU topology\"\n\nthis is one of those problems with mixing the guest virtual CPU topology information with the host physical NUMA information in the same object :(","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6088,"context_line":"  min_version: 2.72"},{"line_number":6089,"context_line":"server_topology_nodes_threads:"},{"line_number":6090,"context_line":"  description: |"},{"line_number":6091,"context_line":"    Reporting the threads number of the NUMA node."},{"line_number":6092,"context_line":"  in: body"},{"line_number":6093,"context_line":"  required: true"},{"line_number":6094,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_c0883172","line":6091,"range":{"start_line":6091,"start_character":4,"end_line":6091,"end_character":50},"updated":"2019-03-04 16:04:12.000000000","message":"\"The number of threads reported by the hypervisor for the *guest* virtual CPU topology\"","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d607675d402c3196607a39c31e0f6141f2d2d477","unresolved":false,"context_lines":[{"line_number":6095,"context_line":"  min_version: 2.72"},{"line_number":6096,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6097,"context_line":"  description: |"},{"line_number":6098,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6099,"context_line":"  in: body"},{"line_number":6100,"context_line":"  required: true"},{"line_number":6101,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":31,"id":"9fdfeff1_80cc69bb","line":6098,"range":{"start_line":6098,"start_character":4,"end_line":6098,"end_character":42},"updated":"2019-03-04 16:04:12.000000000","message":"\"The set of vCPU logical processors running on this host NUMA node\"","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6012,"context_line":"  description: |"},{"line_number":6013,"context_line":"    The server topology resouces which inlude:"},{"line_number":6014,"context_line":""},{"line_number":6015,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":6016,"context_line":"      cpu threads."},{"line_number":6017,"context_line":""},{"line_number":6018,"context_line":"    * nodes: numa node information."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_f82045fb","line":6015,"range":{"start_line":6015,"start_character":31,"end_line":6015,"end_character":37},"updated":"2019-03-01 22:35:42.000000000","message":"policy","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6012,"context_line":"  description: |"},{"line_number":6013,"context_line":"    The server topology resouces which inlude:"},{"line_number":6014,"context_line":""},{"line_number":6015,"context_line":"    * cpu_thread_policy: which polocy is used to place the guest on"},{"line_number":6016,"context_line":"      cpu threads."},{"line_number":6017,"context_line":""},{"line_number":6018,"context_line":"    * nodes: numa node information."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_477084db","line":6015,"range":{"start_line":6015,"start_character":31,"end_line":6015,"end_character":37},"in_reply_to":"9fdfeff1_f82045fb","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6022,"context_line":"  min_version: 2.72"},{"line_number":6023,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    What polocy is used to place the guest on cpu threads."},{"line_number":6026,"context_line":"  in: body"},{"line_number":6027,"context_line":"  required: true"},{"line_number":6028,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_981d79c0","line":6025,"range":{"start_line":6025,"start_character":9,"end_line":6025,"end_character":15},"updated":"2019-03-01 22:35:42.000000000","message":"policy","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6022,"context_line":"  min_version: 2.72"},{"line_number":6023,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    What polocy is used to place the guest on cpu threads."},{"line_number":6026,"context_line":"  in: body"},{"line_number":6027,"context_line":"  required: true"},{"line_number":6028,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_e77c18b8","line":6025,"range":{"start_line":6025,"start_character":9,"end_line":6025,"end_character":15},"in_reply_to":"9fdfeff1_981d79c0","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6029,"context_line":"  min_version: 2.72"},{"line_number":6030,"context_line":"server_topology_nodes:"},{"line_number":6031,"context_line":"  description: |"},{"line_number":6032,"context_line":"    Numa node information of a server."},{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_984b39b0","line":6032,"range":{"start_line":6032,"start_character":4,"end_line":6032,"end_character":8},"updated":"2019-03-01 22:35:42.000000000","message":"NUMA","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6029,"context_line":"  min_version: 2.72"},{"line_number":6030,"context_line":"server_topology_nodes:"},{"line_number":6031,"context_line":"  description: |"},{"line_number":6032,"context_line":"    Numa node information of a server."},{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_077a7cb9","line":6032,"range":{"start_line":6032,"start_character":4,"end_line":6032,"end_character":8},"in_reply_to":"9fdfeff1_984b39b0","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6038,"context_line":"  description: |"},{"line_number":6039,"context_line":"    Reporting the cores number of the NUMA node."},{"line_number":6040,"context_line":"  in: body"},{"line_number":6041,"context_line":"  required: true"},{"line_number":6042,"context_line":"  type: integer"},{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_b86f1d27","line":6041,"range":{"start_line":6041,"start_character":2,"end_line":6041,"end_character":16},"updated":"2019-03-01 22:35:42.000000000","message":"This is not correct based on how the code is written - this means the field will always be in the response, but based on the code it won\u0027t be if InstanceNUMACell.cpu_topology is None. Same is true for a lot of these other parameters.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6038,"context_line":"  description: |"},{"line_number":6039,"context_line":"    Reporting the cores number of the NUMA node."},{"line_number":6040,"context_line":"  in: body"},{"line_number":6041,"context_line":"  required: true"},{"line_number":6042,"context_line":"  type: integer"},{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_c74d549a","line":6041,"range":{"start_line":6041,"start_character":2,"end_line":6041,"end_character":16},"in_reply_to":"9fdfeff1_b86f1d27","updated":"2019-03-04 07:40:36.000000000","message":"code fixed. always there, None or the real value.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6045,"context_line":"  description: |"},{"line_number":6046,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6047,"context_line":"  in: body"},{"line_number":6048,"context_line":"  required: true"},{"line_number":6049,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_7863f542","line":6046,"range":{"start_line":6046,"start_character":24,"end_line":6046,"end_character":31},"updated":"2019-03-01 22:35:42.000000000","message":"is mapped","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6045,"context_line":"  description: |"},{"line_number":6046,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6047,"context_line":"  in: body"},{"line_number":6048,"context_line":"  required: true"},{"line_number":6049,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_f84e05c1","line":6046,"range":{"start_line":6046,"start_character":12,"end_line":6046,"end_character":19},"updated":"2019-03-01 22:35:42.000000000","message":"virtual","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6045,"context_line":"  description: |"},{"line_number":6046,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6047,"context_line":"  in: body"},{"line_number":6048,"context_line":"  required: true"},{"line_number":6049,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_87474c78","line":6046,"range":{"start_line":6046,"start_character":24,"end_line":6046,"end_character":31},"in_reply_to":"9fdfeff1_7863f542","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6045,"context_line":"  description: |"},{"line_number":6046,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6047,"context_line":"  in: body"},{"line_number":6048,"context_line":"  required: true"},{"line_number":6049,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_275c604b","line":6046,"range":{"start_line":6046,"start_character":12,"end_line":6046,"end_character":19},"in_reply_to":"9fdfeff1_f84e05c1","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":6050,"context_line":"  min_version: 2.72"},{"line_number":6051,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6052,"context_line":"  description: |"},{"line_number":6053,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6054,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6055,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6056,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_1858a988","line":6053,"range":{"start_line":6053,"start_character":30,"end_line":6053,"end_character":38},"updated":"2019-03-01 22:35:42.000000000","message":"threading","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":6050,"context_line":"  min_version: 2.72"},{"line_number":6051,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6052,"context_line":"  description: |"},{"line_number":6053,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6054,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6055,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6056,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_e755f81f","line":6053,"range":{"start_line":6053,"start_character":30,"end_line":6053,"end_character":38},"in_reply_to":"9fdfeff1_1858a988","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"0822c5a59480814f120149a06be9b745ec0b2316","unresolved":false,"context_lines":[{"line_number":6029,"context_line":"  min_version: 2.72"},{"line_number":6030,"context_line":"server_topology_nodes:"},{"line_number":6031,"context_line":"  description: |"},{"line_number":6032,"context_line":"    NUMA node information of a server."},{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9fdfeff1_4a9c095b","line":6032,"range":{"start_line":6032,"start_character":29,"end_line":6032,"end_character":30},"updated":"2019-03-04 08:06:13.000000000","message":"the","commit_id":"9b52a6e85cc754b94a0a9dd2f92c8a56511c9e10"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"91d97c982674c725323b1ad5ef2dd7d63374e03c","unresolved":false,"context_lines":[{"line_number":6029,"context_line":"  min_version: 2.72"},{"line_number":6030,"context_line":"server_topology_nodes:"},{"line_number":6031,"context_line":"  description: |"},{"line_number":6032,"context_line":"    NUMA node information of a server."},{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9fdfeff1_ca2c7903","line":6032,"range":{"start_line":6032,"start_character":29,"end_line":6032,"end_character":30},"in_reply_to":"9fdfeff1_4a9c095b","updated":"2019-03-04 08:14:12.000000000","message":"Done","commit_id":"9b52a6e85cc754b94a0a9dd2f92c8a56511c9e10"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"0822c5a59480814f120149a06be9b745ec0b2316","unresolved":false,"context_lines":[{"line_number":6036,"context_line":"  min_version: 2.72"},{"line_number":6037,"context_line":"server_topology_nodes_cores:"},{"line_number":6038,"context_line":"  description: |"},{"line_number":6039,"context_line":"    Reporting the cores number of the NUMA node."},{"line_number":6040,"context_line":"  in: body"},{"line_number":6041,"context_line":"  required: true"},{"line_number":6042,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9fdfeff1_2a9f4552","line":6039,"range":{"start_line":6039,"start_character":18,"end_line":6039,"end_character":30},"updated":"2019-03-04 08:06:13.000000000","message":"number of cores","commit_id":"9b52a6e85cc754b94a0a9dd2f92c8a56511c9e10"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"91d97c982674c725323b1ad5ef2dd7d63374e03c","unresolved":false,"context_lines":[{"line_number":6036,"context_line":"  min_version: 2.72"},{"line_number":6037,"context_line":"server_topology_nodes_cores:"},{"line_number":6038,"context_line":"  description: |"},{"line_number":6039,"context_line":"    Reporting the cores number of the NUMA node."},{"line_number":6040,"context_line":"  in: body"},{"line_number":6041,"context_line":"  required: true"},{"line_number":6042,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":34,"id":"9fdfeff1_6a31cd59","line":6039,"range":{"start_line":6039,"start_character":18,"end_line":6039,"end_character":30},"in_reply_to":"9fdfeff1_2a9f4552","updated":"2019-03-04 08:14:12.000000000","message":"Done","commit_id":"9b52a6e85cc754b94a0a9dd2f92c8a56511c9e10"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6008,"context_line":"  required: false"},{"line_number":6009,"context_line":"  type: array"},{"line_number":6010,"context_line":"  min_version: 2.52"},{"line_number":6011,"context_line":"server_topology:"},{"line_number":6012,"context_line":"  description: |"},{"line_number":6013,"context_line":"    The server topology resouces which inlude:"},{"line_number":6014,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_43ccef89","line":6011,"range":{"start_line":6011,"start_character":0,"end_line":6011,"end_character":15},"updated":"2019-03-04 13:58:38.000000000","message":"It does not seem used.","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6008,"context_line":"  required: false"},{"line_number":6009,"context_line":"  type: array"},{"line_number":6010,"context_line":"  min_version: 2.52"},{"line_number":6011,"context_line":"server_topology:"},{"line_number":6012,"context_line":"  description: |"},{"line_number":6013,"context_line":"    The server topology resouces which inlude:"},{"line_number":6014,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_9e10ea02","line":6011,"range":{"start_line":6011,"start_character":0,"end_line":6011,"end_character":15},"in_reply_to":"9fdfeff1_43ccef89","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6019,"context_line":"  in: body"},{"line_number":6020,"context_line":"  required: true"},{"line_number":6021,"context_line":"  type: object"},{"line_number":6022,"context_line":"  min_version: 2.72"},{"line_number":6023,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    What policy is used to place the guest on cpu threads."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_036a6780","line":6022,"range":{"start_line":6022,"start_character":0,"end_line":6022,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"It is not necessary because the API is newly added as microversion 2.72.","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6019,"context_line":"  in: body"},{"line_number":6020,"context_line":"  required: true"},{"line_number":6021,"context_line":"  type: object"},{"line_number":6022,"context_line":"  min_version: 2.72"},{"line_number":6023,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    What policy is used to place the guest on cpu threads."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_3ef53ecd","line":6022,"range":{"start_line":6022,"start_character":0,"end_line":6022,"end_character":19},"in_reply_to":"9fdfeff1_036a6780","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6026,"context_line":"  in: body"},{"line_number":6027,"context_line":"  required: true"},{"line_number":6028,"context_line":"  type: string"},{"line_number":6029,"context_line":"  min_version: 2.72"},{"line_number":6030,"context_line":"server_topology_nodes:"},{"line_number":6031,"context_line":"  description: |"},{"line_number":6032,"context_line":"    NUMA node information of the server."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_23676bba","line":6029,"range":{"start_line":6029,"start_character":2,"end_line":6029,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6026,"context_line":"  in: body"},{"line_number":6027,"context_line":"  required: true"},{"line_number":6028,"context_line":"  type: string"},{"line_number":6029,"context_line":"  min_version: 2.72"},{"line_number":6030,"context_line":"server_topology_nodes:"},{"line_number":6031,"context_line":"  description: |"},{"line_number":6032,"context_line":"    NUMA node information of the server."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_5ef282e5","line":6029,"range":{"start_line":6029,"start_character":2,"end_line":6029,"end_character":19},"in_reply_to":"9fdfeff1_23676bba","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6032,"context_line":"    NUMA node information of the server."},{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"},{"line_number":6036,"context_line":"  min_version: 2.72"},{"line_number":6037,"context_line":"server_topology_nodes_cores:"},{"line_number":6038,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_e3d40322","line":6035,"range":{"start_line":6035,"start_character":8,"end_line":6035,"end_character":14},"updated":"2019-03-04 13:58:38.000000000","message":"array","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6032,"context_line":"    NUMA node information of the server."},{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"},{"line_number":6036,"context_line":"  min_version: 2.72"},{"line_number":6037,"context_line":"server_topology_nodes_cores:"},{"line_number":6038,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_7e242661","line":6035,"range":{"start_line":6035,"start_character":8,"end_line":6035,"end_character":14},"in_reply_to":"9fdfeff1_e3d40322","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"},{"line_number":6036,"context_line":"  min_version: 2.72"},{"line_number":6037,"context_line":"server_topology_nodes_cores:"},{"line_number":6038,"context_line":"  description: |"},{"line_number":6039,"context_line":"    Reporting the number of cores of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_c301bfb7","line":6036,"range":{"start_line":6036,"start_character":2,"end_line":6036,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6033,"context_line":"  in: body"},{"line_number":6034,"context_line":"  required: true"},{"line_number":6035,"context_line":"  type: object"},{"line_number":6036,"context_line":"  min_version: 2.72"},{"line_number":6037,"context_line":"server_topology_nodes_cores:"},{"line_number":6038,"context_line":"  description: |"},{"line_number":6039,"context_line":"    Reporting the number of cores of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_9e29ca38","line":6036,"range":{"start_line":6036,"start_character":2,"end_line":6036,"end_character":19},"in_reply_to":"9fdfeff1_c301bfb7","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6040,"context_line":"  in: body"},{"line_number":6041,"context_line":"  required: true"},{"line_number":6042,"context_line":"  type: integer"},{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6045,"context_line":"  description: |"},{"line_number":6046,"context_line":"    How the virtual CPU is mappped to host physical CPU."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_830bb7d3","line":6043,"range":{"start_line":6043,"start_character":2,"end_line":6043,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6040,"context_line":"  in: body"},{"line_number":6041,"context_line":"  required: true"},{"line_number":6042,"context_line":"  type: integer"},{"line_number":6043,"context_line":"  min_version: 2.72"},{"line_number":6044,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6045,"context_line":"  description: |"},{"line_number":6046,"context_line":"    How the virtual CPU is mappped to host physical CPU."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_1e15dae5","line":6043,"range":{"start_line":6043,"start_character":2,"end_line":6043,"end_character":19},"in_reply_to":"9fdfeff1_830bb7d3","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6047,"context_line":"  in: body"},{"line_number":6048,"context_line":"  required: true"},{"line_number":6049,"context_line":"  type: dict"},{"line_number":6050,"context_line":"  min_version: 2.72"},{"line_number":6051,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6052,"context_line":"  description: |"},{"line_number":6053,"context_line":"    While the CPU support the threading, siblings report vcpus set which"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_43f5cfcb","line":6050,"range":{"start_line":6050,"start_character":2,"end_line":6050,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6047,"context_line":"  in: body"},{"line_number":6048,"context_line":"  required: true"},{"line_number":6049,"context_line":"  type: dict"},{"line_number":6050,"context_line":"  min_version: 2.72"},{"line_number":6051,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6052,"context_line":"  description: |"},{"line_number":6053,"context_line":"    While the CPU support the threading, siblings report vcpus set which"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_becfee89","line":6050,"range":{"start_line":6050,"start_character":2,"end_line":6050,"end_character":19},"in_reply_to":"9fdfeff1_43f5cfcb","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6057,"context_line":"    belong to another CPU core."},{"line_number":6058,"context_line":"  in: body"},{"line_number":6059,"context_line":"  required: true"},{"line_number":6060,"context_line":"  type: list"},{"line_number":6061,"context_line":"  min_version: 2.72"},{"line_number":6062,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6063,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_43e38f07","line":6060,"range":{"start_line":6060,"start_character":8,"end_line":6060,"end_character":12},"updated":"2019-03-04 13:58:38.000000000","message":"array","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6057,"context_line":"    belong to another CPU core."},{"line_number":6058,"context_line":"  in: body"},{"line_number":6059,"context_line":"  required: true"},{"line_number":6060,"context_line":"  type: list"},{"line_number":6061,"context_line":"  min_version: 2.72"},{"line_number":6062,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6063,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_ded43222","line":6060,"range":{"start_line":6060,"start_character":8,"end_line":6060,"end_character":12},"in_reply_to":"9fdfeff1_43e38f07","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6058,"context_line":"  in: body"},{"line_number":6059,"context_line":"  required: true"},{"line_number":6060,"context_line":"  type: list"},{"line_number":6061,"context_line":"  min_version: 2.72"},{"line_number":6062,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6063,"context_line":"  description: |"},{"line_number":6064,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_63f253e6","line":6061,"range":{"start_line":6061,"start_character":2,"end_line":6061,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6058,"context_line":"  in: body"},{"line_number":6059,"context_line":"  required: true"},{"line_number":6060,"context_line":"  type: list"},{"line_number":6061,"context_line":"  min_version: 2.72"},{"line_number":6062,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6063,"context_line":"  description: |"},{"line_number":6064,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_7ed98654","line":6061,"range":{"start_line":6061,"start_character":2,"end_line":6061,"end_character":19},"in_reply_to":"9fdfeff1_63f253e6","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6065,"context_line":"  in: body"},{"line_number":6066,"context_line":"  required: true"},{"line_number":6067,"context_line":"  type: integer"},{"line_number":6068,"context_line":"  min_version: 2.72"},{"line_number":6069,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6070,"context_line":"  description: |"},{"line_number":6071,"context_line":"    Reporting how many memory belong to this NUMA node in MB."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_23fc4bb4","line":6068,"range":{"start_line":6068,"start_character":2,"end_line":6068,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6065,"context_line":"  in: body"},{"line_number":6066,"context_line":"  required: true"},{"line_number":6067,"context_line":"  type: integer"},{"line_number":6068,"context_line":"  min_version: 2.72"},{"line_number":6069,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6070,"context_line":"  description: |"},{"line_number":6071,"context_line":"    Reporting how many memory belong to this NUMA node in MB."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_9edeaa3c","line":6068,"range":{"start_line":6068,"start_character":2,"end_line":6068,"end_character":19},"in_reply_to":"9fdfeff1_23fc4bb4","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6072,"context_line":"  in: body"},{"line_number":6073,"context_line":"  required: true"},{"line_number":6074,"context_line":"  type: integer"},{"line_number":6075,"context_line":"  min_version: 2.72"},{"line_number":6076,"context_line":"server_topology_nodes_pagesize_kb:"},{"line_number":6077,"context_line":"  description: |"},{"line_number":6078,"context_line":"    Reporting the NUMA node\u0027s page size in KB."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_e32f233c","line":6075,"range":{"start_line":6075,"start_character":2,"end_line":6075,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6072,"context_line":"  in: body"},{"line_number":6073,"context_line":"  required: true"},{"line_number":6074,"context_line":"  type: integer"},{"line_number":6075,"context_line":"  min_version: 2.72"},{"line_number":6076,"context_line":"server_topology_nodes_pagesize_kb:"},{"line_number":6077,"context_line":"  description: |"},{"line_number":6078,"context_line":"    Reporting the NUMA node\u0027s page size in KB."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_5ee042f9","line":6075,"range":{"start_line":6075,"start_character":2,"end_line":6075,"end_character":19},"in_reply_to":"9fdfeff1_e32f233c","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6079,"context_line":"  in: body"},{"line_number":6080,"context_line":"  required: true"},{"line_number":6081,"context_line":"  type: integer"},{"line_number":6082,"context_line":"  min_version: 2.72"},{"line_number":6083,"context_line":"server_topology_nodes_sockets:"},{"line_number":6084,"context_line":"  description: |"},{"line_number":6085,"context_line":"    Reporting the sockets number of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_83241762","line":6082,"range":{"start_line":6082,"start_character":2,"end_line":6082,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6079,"context_line":"  in: body"},{"line_number":6080,"context_line":"  required: true"},{"line_number":6081,"context_line":"  type: integer"},{"line_number":6082,"context_line":"  min_version: 2.72"},{"line_number":6083,"context_line":"server_topology_nodes_sockets:"},{"line_number":6084,"context_line":"  description: |"},{"line_number":6085,"context_line":"    Reporting the sockets number of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_feec96f5","line":6082,"range":{"start_line":6082,"start_character":2,"end_line":6082,"end_character":19},"in_reply_to":"9fdfeff1_83241762","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6086,"context_line":"  in: body"},{"line_number":6087,"context_line":"  required: true"},{"line_number":6088,"context_line":"  type: integer"},{"line_number":6089,"context_line":"  min_version: 2.72"},{"line_number":6090,"context_line":"server_topology_nodes_threads:"},{"line_number":6091,"context_line":"  description: |"},{"line_number":6092,"context_line":"    Reporting the threads number of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_a3291b38","line":6089,"range":{"start_line":6089,"start_character":2,"end_line":6089,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":6086,"context_line":"  in: body"},{"line_number":6087,"context_line":"  required: true"},{"line_number":6088,"context_line":"  type: integer"},{"line_number":6089,"context_line":"  min_version: 2.72"},{"line_number":6090,"context_line":"server_topology_nodes_threads:"},{"line_number":6091,"context_line":"  description: |"},{"line_number":6092,"context_line":"    Reporting the threads number of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_1eeabad7","line":6089,"range":{"start_line":6089,"start_character":2,"end_line":6089,"end_character":19},"in_reply_to":"9fdfeff1_a3291b38","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6093,"context_line":"  in: body"},{"line_number":6094,"context_line":"  required: true"},{"line_number":6095,"context_line":"  type: integer"},{"line_number":6096,"context_line":"  min_version: 2.72"},{"line_number":6097,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6098,"context_line":"  description: |"},{"line_number":6099,"context_line":"    The vitural CPU list of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_431e2f0e","line":6096,"range":{"start_line":6096,"start_character":2,"end_line":6096,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6099,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6100,"context_line":"  in: body"},{"line_number":6101,"context_line":"  required: true"},{"line_number":6102,"context_line":"  type: list"},{"line_number":6103,"context_line":"  min_version: 2.72"},{"line_number":6104,"context_line":"server_trusted_image_certificates_create_req:"},{"line_number":6105,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_a3defb3b","line":6102,"range":{"start_line":6102,"start_character":8,"end_line":6102,"end_character":12},"updated":"2019-03-04 13:58:38.000000000","message":"array","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":6100,"context_line":"  in: body"},{"line_number":6101,"context_line":"  required: true"},{"line_number":6102,"context_line":"  type: list"},{"line_number":6103,"context_line":"  min_version: 2.72"},{"line_number":6104,"context_line":"server_trusted_image_certificates_create_req:"},{"line_number":6105,"context_line":"  description: |"},{"line_number":6106,"context_line":"    A list of trusted certificate IDs, which are used during image"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_631b331c","line":6103,"range":{"start_line":6103,"start_character":2,"end_line":6103,"end_character":19},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6010,"context_line":"  min_version: 2.52"},{"line_number":6011,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6012,"context_line":"  description: |"},{"line_number":6013,"context_line":"    What policy is used to place the guest on cpu threads."},{"line_number":6014,"context_line":"  in: body"},{"line_number":6015,"context_line":"  required: true"},{"line_number":6016,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_003490ab","line":6013,"updated":"2019-03-04 22:01:56.000000000","message":"nit: rather then phrasing as a quest i would update this to \"The policy used to assign guest vCPUs to host threads.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6010,"context_line":"  min_version: 2.52"},{"line_number":6011,"context_line":"server_topology_cpu_thread_policy:"},{"line_number":6012,"context_line":"  description: |"},{"line_number":6013,"context_line":"    What policy is used to place the guest on cpu threads."},{"line_number":6014,"context_line":"  in: body"},{"line_number":6015,"context_line":"  required: true"},{"line_number":6016,"context_line":"  type: string"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_57857bad","line":6013,"in_reply_to":"9fdfeff1_003490ab","updated":"2019-03-05 01:32:08.000000000","message":"Done","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6013,"context_line":"    What policy is used to place the guest on cpu threads."},{"line_number":6014,"context_line":"  in: body"},{"line_number":6015,"context_line":"  required: true"},{"line_number":6016,"context_line":"  type: string"},{"line_number":6017,"context_line":"server_topology_nodes:"},{"line_number":6018,"context_line":"  description: |"},{"line_number":6019,"context_line":"    NUMA node information of the server."}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_203994a2","line":6016,"updated":"2019-03-04 22:01:56.000000000","message":"nit: this could be an enum","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6013,"context_line":"    What policy is used to place the guest on cpu threads."},{"line_number":6014,"context_line":"  in: body"},{"line_number":6015,"context_line":"  required: true"},{"line_number":6016,"context_line":"  type: string"},{"line_number":6017,"context_line":"server_topology_nodes:"},{"line_number":6018,"context_line":"  description: |"},{"line_number":6019,"context_line":"    NUMA node information of the server."}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_97b44384","line":6016,"in_reply_to":"9fdfeff1_203994a2","updated":"2019-03-05 01:32:08.000000000","message":"Done","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6020,"context_line":"  in: body"},{"line_number":6021,"context_line":"  required: true"},{"line_number":6022,"context_line":"  type: array"},{"line_number":6023,"context_line":"server_topology_nodes_cores:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    Reporting the number of cores of the NUMA node."},{"line_number":6026,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_c03d288f","line":6023,"updated":"2019-03-04 22:01:56.000000000","message":"based on the nameing i take it this is a subfield of server\ntopolgy nodes.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6020,"context_line":"  in: body"},{"line_number":6021,"context_line":"  required: true"},{"line_number":6022,"context_line":"  type: array"},{"line_number":6023,"context_line":"server_topology_nodes_cores:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    Reporting the number of cores of the NUMA node."},{"line_number":6026,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_0a74aa35","line":6023,"in_reply_to":"9fdfeff1_c03d288f","updated":"2019-03-05 01:32:08.000000000","message":"it\u0027s in the nodes\u0027s, what did you mean to a subfield of a server. another object?","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6022,"context_line":"  type: array"},{"line_number":6023,"context_line":"server_topology_nodes_cores:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    Reporting the number of cores of the NUMA node."},{"line_number":6026,"context_line":"  in: body"},{"line_number":6027,"context_line":"  required: true"},{"line_number":6028,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_e042ac0f","line":6025,"updated":"2019-03-04 22:01:56.000000000","message":"s/cores/vCPUs\nThe number of vCPUs assigend to the numa node","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6022,"context_line":"  type: array"},{"line_number":6023,"context_line":"server_topology_nodes_cores:"},{"line_number":6024,"context_line":"  description: |"},{"line_number":6025,"context_line":"    Reporting the number of cores of the NUMA node."},{"line_number":6026,"context_line":"  in: body"},{"line_number":6027,"context_line":"  required: true"},{"line_number":6028,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_3753173c","line":6025,"in_reply_to":"9fdfeff1_e042ac0f","updated":"2019-03-05 01:32:08.000000000","message":"Done","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6028,"context_line":"  type: integer"},{"line_number":6029,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6030,"context_line":"  description: |"},{"line_number":6031,"context_line":"    How the virtual CPU is mappped to host physical CPU."},{"line_number":6032,"context_line":"  in: body"},{"line_number":6033,"context_line":"  required: true"},{"line_number":6034,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_8047201f","line":6031,"updated":"2019-03-04 22:01:56.000000000","message":"This reads rather strangly.\ni would simply state:\n\"The vCPU to host cpu mappings.\"","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6028,"context_line":"  type: integer"},{"line_number":6029,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6030,"context_line":"  description: |"},{"line_number":6031,"context_line":"    How the virtual CPU is mappped to host physical CPU."},{"line_number":6032,"context_line":"  in: body"},{"line_number":6033,"context_line":"  required: true"},{"line_number":6034,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_b73ce7e1","line":6031,"in_reply_to":"9fdfeff1_8047201f","updated":"2019-03-05 01:32:08.000000000","message":"Done","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6038,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6039,"context_line":"    siblings: [[0,1],[2,3]]"},{"line_number":6040,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6041,"context_line":"    belong to another CPU core."},{"line_number":6042,"context_line":"  in: body"},{"line_number":6043,"context_line":"  required: true"},{"line_number":6044,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_a044a41a","line":6041,"updated":"2019-03-04 22:01:56.000000000","message":"i would replace this description simply with\n\n\"a dictionay of pCPU to pCPU sibling sets\"","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6038,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6039,"context_line":"    siblings: [[0,1],[2,3]]"},{"line_number":6040,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6041,"context_line":"    belong to another CPU core."},{"line_number":6042,"context_line":"  in: body"},{"line_number":6043,"context_line":"  required: true"},{"line_number":6044,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_2a440e47","line":6041,"in_reply_to":"9fdfeff1_a044a41a","updated":"2019-03-05 01:32:08.000000000","message":"Per spec, keep this as list instead of dict. Description updated, fix me.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6041,"context_line":"    belong to another CPU core."},{"line_number":6042,"context_line":"  in: body"},{"line_number":6043,"context_line":"  required: true"},{"line_number":6044,"context_line":"  type: list"},{"line_number":6045,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6046,"context_line":"  description: |"},{"line_number":6047,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_405138d9","line":6044,"updated":"2019-03-04 22:01:56.000000000","message":"this should propably be a dict of sets where the key is is a pCPU and the value is the set of siblings","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6041,"context_line":"    belong to another CPU core."},{"line_number":6042,"context_line":"  in: body"},{"line_number":6043,"context_line":"  required: true"},{"line_number":6044,"context_line":"  type: list"},{"line_number":6045,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6046,"context_line":"  description: |"},{"line_number":6047,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_8aa17afa","line":6044,"in_reply_to":"9fdfeff1_405138d9","updated":"2019-03-05 01:32:08.000000000","message":"tenant user goona lost sight to check vcpu sets, as pCPU is admin only information.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6044,"context_line":"  type: list"},{"line_number":6045,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6046,"context_line":"  description: |"},{"line_number":6047,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6048,"context_line":"  in: body"},{"line_number":6049,"context_line":"  required: true"},{"line_number":6050,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_604ebc39","line":6047,"updated":"2019-03-04 22:01:56.000000000","message":"The host numanode guest virtual numa node is mapped to.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6044,"context_line":"  type: list"},{"line_number":6045,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6046,"context_line":"  description: |"},{"line_number":6047,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6048,"context_line":"  in: body"},{"line_number":6049,"context_line":"  required: true"},{"line_number":6050,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_2ae08e26","line":6047,"in_reply_to":"9fdfeff1_604ebc39","updated":"2019-03-05 01:32:08.000000000","message":"Done","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6050,"context_line":"  type: integer"},{"line_number":6051,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6052,"context_line":"  description: |"},{"line_number":6053,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6054,"context_line":"  in: body"},{"line_number":6055,"context_line":"  required: true"},{"line_number":6056,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_005d70eb","line":6053,"updated":"2019-03-04 22:01:56.000000000","message":"numa node memory in mebibytes.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6050,"context_line":"  type: integer"},{"line_number":6051,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6052,"context_line":"  description: |"},{"line_number":6053,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6054,"context_line":"  in: body"},{"line_number":6055,"context_line":"  required: true"},{"line_number":6056,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_ea3846a0","line":6053,"in_reply_to":"9fdfeff1_005d70eb","updated":"2019-03-05 01:32:08.000000000","message":"Done","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6056,"context_line":"  type: integer"},{"line_number":6057,"context_line":"server_topology_nodes_pagesize_kb:"},{"line_number":6058,"context_line":"  description: |"},{"line_number":6059,"context_line":"    Reporting the NUMA node\u0027s page size in KB."},{"line_number":6060,"context_line":"  in: body"},{"line_number":6061,"context_line":"  required: true"},{"line_number":6062,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_2062f4ae","line":6059,"updated":"2019-03-04 22:01:56.000000000","message":"as noted in previous reviews while we store this pre numa node we do not allow it to vary per numa node. i.e. it must be the same for all numa nodes in an instance so this really should not be reported here.\n\nthat said i woudl phrase this as \"numa node memory backing page size in Kibibytes\"","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6056,"context_line":"  type: integer"},{"line_number":6057,"context_line":"server_topology_nodes_pagesize_kb:"},{"line_number":6058,"context_line":"  description: |"},{"line_number":6059,"context_line":"    Reporting the NUMA node\u0027s page size in KB."},{"line_number":6060,"context_line":"  in: body"},{"line_number":6061,"context_line":"  required: true"},{"line_number":6062,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_2a672eba","line":6059,"in_reply_to":"9fdfeff1_2062f4ae","updated":"2019-03-05 01:32:08.000000000","message":"Done for description.\nAnd for how we store the paging size, this is aligned with nova internal and spec. do we need to get algin with this?","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6062,"context_line":"  type: integer"},{"line_number":6063,"context_line":"server_topology_nodes_sockets:"},{"line_number":6064,"context_line":"  description: |"},{"line_number":6065,"context_line":"    Reporting the sockets number of the NUMA node."},{"line_number":6066,"context_line":"  in: body"},{"line_number":6067,"context_line":"  required: true"},{"line_number":6068,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_c05688cf","line":6065,"updated":"2019-03-04 22:01:56.000000000","message":"this is just wrong\nthere is no direct correlation between  sockets and numa nodes in nova\n\nyou can have 4 socket and 1 numa node\nhw:numa_nodes\u003d1 hw:cpu_sockets\u003d4\n or 4 numa nodes and 1 socket\nhw:numa_nodes\u003d4 hw:cpu_sockets\u003d1\n\nto calulate this you would have to look at the cpu numa mappings\ni.e. you would have to first calculate the cpu to socket assocation by\n\ndeviding the vCPUs by the sockets then you would have \n\ne.g. vCPUs\u003d8 cpu_socket\u003d2 hw:numa_nodes\u003d2 hw:numa_cpu.0\u003d0-2 hw:numa_cpu.1\u003d3-7\nsocket_mapping (socket to cpus) would be {0:[0,1,2], 1:[3,4,5,6,7]}\n\nin the above case numa node 1 woudl have map to socket 0\nnuma node 2 would have cpus from socket 0 and socket 1\nthis cant be represteded as an integer.\n\nit is either the count of sockets assocated with a numa node which is\nis not really usfull to report or you need to do the above claulate dealing\nwith all the edge cases.\n\npersonally i think this should just be removed.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"fb8de80dc4cd876b155d3c9faccc72375e5bc5e9","unresolved":false,"context_lines":[{"line_number":6062,"context_line":"  type: integer"},{"line_number":6063,"context_line":"server_topology_nodes_sockets:"},{"line_number":6064,"context_line":"  description: |"},{"line_number":6065,"context_line":"    Reporting the sockets number of the NUMA node."},{"line_number":6066,"context_line":"  in: body"},{"line_number":6067,"context_line":"  required: true"},{"line_number":6068,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"ffb9cba7_f6e4290f","line":6065,"in_reply_to":"9fdfeff1_0aed8aef","updated":"2019-04-30 15:57:42.000000000","message":"I agree with that we should remove the sockets. Checked the code, the instance_numa.cpu_topology isn\u0027t final number of sockets and cores, and sounds like it is only be used when cpu_policy is dedicated.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":6062,"context_line":"  type: integer"},{"line_number":6063,"context_line":"server_topology_nodes_sockets:"},{"line_number":6064,"context_line":"  description: |"},{"line_number":6065,"context_line":"    Reporting the sockets number of the NUMA node."},{"line_number":6066,"context_line":"  in: body"},{"line_number":6067,"context_line":"  required: true"},{"line_number":6068,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_0aed8aef","line":6065,"in_reply_to":"9fdfeff1_c05688cf","updated":"2019-03-05 01:32:08.000000000","message":"Got me confused.What the nova\u0027s structure VirtCPUTopology for?\nI suppose this should be a virtual NUMA node\u0027s structure in this server.\n\nI try to rephrase the phrase, fix me.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f5dd597dcbc1a8be2cba49ca58185970a1f61b68","unresolved":false,"context_lines":[{"line_number":6068,"context_line":"  type: integer"},{"line_number":6069,"context_line":"server_topology_nodes_threads:"},{"line_number":6070,"context_line":"  description: |"},{"line_number":6071,"context_line":"    Reporting the threads number of the NUMA node."},{"line_number":6072,"context_line":"  in: body"},{"line_number":6073,"context_line":"  required: true"},{"line_number":6074,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_c0d9a856","line":6071,"updated":"2019-03-04 22:09:12.000000000","message":"if you intended this to model the value fo hw:cpu_trehad then you should not conflate that value with a numa node as this is quite missleading.\nhw:cpu_threads is the number of vitual treads siblings to emulate per virutal cpu per virtual socket.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":6068,"context_line":"  type: integer"},{"line_number":6069,"context_line":"server_topology_nodes_threads:"},{"line_number":6070,"context_line":"  description: |"},{"line_number":6071,"context_line":"    Reporting the threads number of the NUMA node."},{"line_number":6072,"context_line":"  in: body"},{"line_number":6073,"context_line":"  required: true"},{"line_number":6074,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"9fdfeff1_e05b8cf3","line":6071,"updated":"2019-03-04 22:01:56.000000000","message":"similar to the above this is meaning less if you have a virutal numa\ntoplogy without cpu pinning. e.g. hw:mem_page_size\u003dlarge or hw:numa_nodes\u003dX\nwithout hw:cpu_policy\u003ddedicated","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"0221b50bc741d4aeb9aac02c9303b3cfe955b135","unresolved":false,"context_lines":[{"line_number":6068,"context_line":"  type: integer"},{"line_number":6069,"context_line":"server_topology_nodes_threads:"},{"line_number":6070,"context_line":"  description: |"},{"line_number":6071,"context_line":"    Reporting the threads number of the NUMA node."},{"line_number":6072,"context_line":"  in: body"},{"line_number":6073,"context_line":"  required: true"},{"line_number":6074,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":37,"id":"5fc1f717_e044ffb9","line":6071,"in_reply_to":"9fdfeff1_c0d9a856","updated":"2019-03-13 07:59:41.000000000","message":"for descriptions here, it should be decoupled with NUMA. fixed it.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6065,"context_line":"  required: false"},{"line_number":6066,"context_line":"  type: array"},{"line_number":6067,"context_line":"  min_version: 2.52"},{"line_number":6068,"context_line":"server_topology:"},{"line_number":6069,"context_line":"  description: |"},{"line_number":6070,"context_line":"    The server topology resouces which inlude:"},{"line_number":6071,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_8f0c79ec","line":6068,"range":{"start_line":6068,"start_character":0,"end_line":6068,"end_character":15},"updated":"2019-07-01 03:17:28.000000000","message":"It is not used anywhere.","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6065,"context_line":"  required: false"},{"line_number":6066,"context_line":"  type: array"},{"line_number":6067,"context_line":"  min_version: 2.52"},{"line_number":6068,"context_line":"server_topology:"},{"line_number":6069,"context_line":"  description: |"},{"line_number":6070,"context_line":"    The server topology resouces which inlude:"},{"line_number":6071,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_59e718e4","line":6068,"range":{"start_line":6068,"start_character":0,"end_line":6068,"end_character":15},"in_reply_to":"9fb8cfa7_8f0c79ec","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6073,"context_line":"  in: body"},{"line_number":6074,"context_line":"  required: true"},{"line_number":6075,"context_line":"  type: object"},{"line_number":6076,"context_line":"  min_version: 2.74"},{"line_number":6077,"context_line":"server_topology_cpu_topology:"},{"line_number":6078,"context_line":"  description: |"},{"line_number":6079,"context_line":"    CPU topology information of a server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_0f8f2975","line":6076,"range":{"start_line":6076,"start_character":2,"end_line":6076,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"It is not necessary because the API itself has been added in microversion 2.74.","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6073,"context_line":"  in: body"},{"line_number":6074,"context_line":"  required: true"},{"line_number":6075,"context_line":"  type: object"},{"line_number":6076,"context_line":"  min_version: 2.74"},{"line_number":6077,"context_line":"server_topology_cpu_topology:"},{"line_number":6078,"context_line":"  description: |"},{"line_number":6079,"context_line":"    CPU topology information of a server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_f9c60c9a","line":6076,"range":{"start_line":6076,"start_character":2,"end_line":6076,"end_character":19},"in_reply_to":"9fb8cfa7_0f8f2975","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6074,"context_line":"  required: true"},{"line_number":6075,"context_line":"  type: object"},{"line_number":6076,"context_line":"  min_version: 2.74"},{"line_number":6077,"context_line":"server_topology_cpu_topology:"},{"line_number":6078,"context_line":"  description: |"},{"line_number":6079,"context_line":"    CPU topology information of a server."},{"line_number":6080,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_4ffa01bd","line":6077,"range":{"start_line":6077,"start_character":0,"end_line":6077,"end_character":28},"updated":"2019-07-01 03:17:28.000000000","message":"It is not used anywhere.","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6074,"context_line":"  required: true"},{"line_number":6075,"context_line":"  type: object"},{"line_number":6076,"context_line":"  min_version: 2.74"},{"line_number":6077,"context_line":"server_topology_cpu_topology:"},{"line_number":6078,"context_line":"  description: |"},{"line_number":6079,"context_line":"    CPU topology information of a server."},{"line_number":6080,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_19cd205c","line":6077,"range":{"start_line":6077,"start_character":0,"end_line":6077,"end_character":28},"in_reply_to":"9fb8cfa7_4ffa01bd","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6080,"context_line":"  in: body"},{"line_number":6081,"context_line":"  required: true"},{"line_number":6082,"context_line":"  type: object"},{"line_number":6083,"context_line":"  min_version: 2.74"},{"line_number":6084,"context_line":"server_topology_cpu_topology_cores:"},{"line_number":6085,"context_line":"  description: |"},{"line_number":6086,"context_line":"    Reporting the cores number of the server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_efedf524","line":6083,"range":{"start_line":6083,"start_character":2,"end_line":6083,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6080,"context_line":"  in: body"},{"line_number":6081,"context_line":"  required: true"},{"line_number":6082,"context_line":"  type: object"},{"line_number":6083,"context_line":"  min_version: 2.74"},{"line_number":6084,"context_line":"server_topology_cpu_topology_cores:"},{"line_number":6085,"context_line":"  description: |"},{"line_number":6086,"context_line":"    Reporting the cores number of the server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_19c20086","line":6083,"range":{"start_line":6083,"start_character":2,"end_line":6083,"end_character":19},"in_reply_to":"9fb8cfa7_efedf524","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6085,"context_line":"  description: |"},{"line_number":6086,"context_line":"    Reporting the cores number of the server."},{"line_number":6087,"context_line":"  in: body"},{"line_number":6088,"context_line":"  required: true"},{"line_number":6089,"context_line":"  type: integer"},{"line_number":6090,"context_line":"  min_version: 2.74"},{"line_number":6091,"context_line":"server_topology_cpu_topology_sockets:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_0f0089aa","line":6088,"range":{"start_line":6088,"start_character":2,"end_line":6088,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"It should be \u0027false\u0027.","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6085,"context_line":"  description: |"},{"line_number":6086,"context_line":"    Reporting the cores number of the server."},{"line_number":6087,"context_line":"  in: body"},{"line_number":6088,"context_line":"  required: true"},{"line_number":6089,"context_line":"  type: integer"},{"line_number":6090,"context_line":"  min_version: 2.74"},{"line_number":6091,"context_line":"server_topology_cpu_topology_sockets:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_3957c4cc","line":6088,"range":{"start_line":6088,"start_character":2,"end_line":6088,"end_character":16},"in_reply_to":"9fb8cfa7_0f0089aa","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6087,"context_line":"  in: body"},{"line_number":6088,"context_line":"  required: true"},{"line_number":6089,"context_line":"  type: integer"},{"line_number":6090,"context_line":"  min_version: 2.74"},{"line_number":6091,"context_line":"server_topology_cpu_topology_sockets:"},{"line_number":6092,"context_line":"  description: |"},{"line_number":6093,"context_line":"    Reporting the sockets number of the server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_aff37d08","line":6090,"range":{"start_line":6090,"start_character":2,"end_line":6090,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6087,"context_line":"  in: body"},{"line_number":6088,"context_line":"  required: true"},{"line_number":6089,"context_line":"  type: integer"},{"line_number":6090,"context_line":"  min_version: 2.74"},{"line_number":6091,"context_line":"server_topology_cpu_topology_sockets:"},{"line_number":6092,"context_line":"  description: |"},{"line_number":6093,"context_line":"    Reporting the sockets number of the server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_b9bc1406","line":6090,"range":{"start_line":6090,"start_character":2,"end_line":6090,"end_character":19},"in_reply_to":"9fb8cfa7_aff37d08","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6092,"context_line":"  description: |"},{"line_number":6093,"context_line":"    Reporting the sockets number of the server."},{"line_number":6094,"context_line":"  in: body"},{"line_number":6095,"context_line":"  required: true"},{"line_number":6096,"context_line":"  type: integer"},{"line_number":6097,"context_line":"  min_version: 2.74"},{"line_number":6098,"context_line":"server_topology_cpu_topology_threads:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_cf2fd13c","line":6095,"range":{"start_line":6095,"start_character":2,"end_line":6095,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6092,"context_line":"  description: |"},{"line_number":6093,"context_line":"    Reporting the sockets number of the server."},{"line_number":6094,"context_line":"  in: body"},{"line_number":6095,"context_line":"  required: true"},{"line_number":6096,"context_line":"  type: integer"},{"line_number":6097,"context_line":"  min_version: 2.74"},{"line_number":6098,"context_line":"server_topology_cpu_topology_threads:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_f974cc69","line":6095,"range":{"start_line":6095,"start_character":2,"end_line":6095,"end_character":16},"in_reply_to":"9fb8cfa7_cf2fd13c","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6094,"context_line":"  in: body"},{"line_number":6095,"context_line":"  required: true"},{"line_number":6096,"context_line":"  type: integer"},{"line_number":6097,"context_line":"  min_version: 2.74"},{"line_number":6098,"context_line":"server_topology_cpu_topology_threads:"},{"line_number":6099,"context_line":"  description: |"},{"line_number":6100,"context_line":"    Reporting the threads number of the server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_6fd90581","line":6097,"range":{"start_line":6097,"start_character":2,"end_line":6097,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6094,"context_line":"  in: body"},{"line_number":6095,"context_line":"  required: true"},{"line_number":6096,"context_line":"  type: integer"},{"line_number":6097,"context_line":"  min_version: 2.74"},{"line_number":6098,"context_line":"server_topology_cpu_topology_threads:"},{"line_number":6099,"context_line":"  description: |"},{"line_number":6100,"context_line":"    Reporting the threads number of the server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_d9b78820","line":6097,"range":{"start_line":6097,"start_character":2,"end_line":6097,"end_character":19},"in_reply_to":"9fb8cfa7_6fd90581","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6099,"context_line":"  description: |"},{"line_number":6100,"context_line":"    Reporting the threads number of the server."},{"line_number":6101,"context_line":"  in: body"},{"line_number":6102,"context_line":"  required: true"},{"line_number":6103,"context_line":"  type: integer"},{"line_number":6104,"context_line":"  min_version: 2.74"},{"line_number":6105,"context_line":"server_topology_nodes:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_ef32d5a6","line":6102,"range":{"start_line":6102,"start_character":2,"end_line":6102,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6099,"context_line":"  description: |"},{"line_number":6100,"context_line":"    Reporting the threads number of the server."},{"line_number":6101,"context_line":"  in: body"},{"line_number":6102,"context_line":"  required: true"},{"line_number":6103,"context_line":"  type: integer"},{"line_number":6104,"context_line":"  min_version: 2.74"},{"line_number":6105,"context_line":"server_topology_nodes:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_b96ad47d","line":6102,"range":{"start_line":6102,"start_character":2,"end_line":6102,"end_character":16},"in_reply_to":"9fb8cfa7_ef32d5a6","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6101,"context_line":"  in: body"},{"line_number":6102,"context_line":"  required: true"},{"line_number":6103,"context_line":"  type: integer"},{"line_number":6104,"context_line":"  min_version: 2.74"},{"line_number":6105,"context_line":"server_topology_nodes:"},{"line_number":6106,"context_line":"  description: |"},{"line_number":6107,"context_line":"    Numa node information of a server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_0fe4093b","line":6104,"range":{"start_line":6104,"start_character":2,"end_line":6104,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6101,"context_line":"  in: body"},{"line_number":6102,"context_line":"  required: true"},{"line_number":6103,"context_line":"  type: integer"},{"line_number":6104,"context_line":"  min_version: 2.74"},{"line_number":6105,"context_line":"server_topology_nodes:"},{"line_number":6106,"context_line":"  description: |"},{"line_number":6107,"context_line":"    Numa node information of a server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_7938dc9e","line":6104,"range":{"start_line":6104,"start_character":2,"end_line":6104,"end_character":19},"in_reply_to":"9fb8cfa7_0fe4093b","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6108,"context_line":"  in: body"},{"line_number":6109,"context_line":"  required: true"},{"line_number":6110,"context_line":"  type: object"},{"line_number":6111,"context_line":"  min_version: 2.74"},{"line_number":6112,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6113,"context_line":"  description: |"},{"line_number":6114,"context_line":"    How the vitural CPU mappped to host physical CPU."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_2fdf8d66","line":6111,"range":{"start_line":6111,"start_character":2,"end_line":6111,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6108,"context_line":"  in: body"},{"line_number":6109,"context_line":"  required: true"},{"line_number":6110,"context_line":"  type: object"},{"line_number":6111,"context_line":"  min_version: 2.74"},{"line_number":6112,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6113,"context_line":"  description: |"},{"line_number":6114,"context_line":"    How the vitural CPU mappped to host physical CPU."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_993b509a","line":6111,"range":{"start_line":6111,"start_character":2,"end_line":6111,"end_character":19},"in_reply_to":"9fb8cfa7_2fdf8d66","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6113,"context_line":"  description: |"},{"line_number":6114,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: dict"},{"line_number":6118,"context_line":"  min_version: 2.74"},{"line_number":6119,"context_line":"server_topology_nodes_cpu_siblings:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_8f25595e","line":6116,"range":{"start_line":6116,"start_character":2,"end_line":6116,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6113,"context_line":"  description: |"},{"line_number":6114,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: dict"},{"line_number":6118,"context_line":"  min_version: 2.74"},{"line_number":6119,"context_line":"server_topology_nodes_cpu_siblings:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_d96548b0","line":6116,"range":{"start_line":6116,"start_character":2,"end_line":6116,"end_character":16},"in_reply_to":"9fb8cfa7_8f25595e","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: dict"},{"line_number":6118,"context_line":"  min_version: 2.74"},{"line_number":6119,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6120,"context_line":"  description: |"},{"line_number":6121,"context_line":"    While the CPU support the theading, siblings report vcpus set which"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_efd6554f","line":6118,"range":{"start_line":6118,"start_character":2,"end_line":6118,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: dict"},{"line_number":6118,"context_line":"  min_version: 2.74"},{"line_number":6119,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6120,"context_line":"  description: |"},{"line_number":6121,"context_line":"    While the CPU support the theading, siblings report vcpus set which"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_393ee48a","line":6118,"range":{"start_line":6118,"start_character":2,"end_line":6118,"end_character":19},"in_reply_to":"9fb8cfa7_efd6554f","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6120,"context_line":"  description: |"},{"line_number":6121,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6122,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6123,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6124,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6125,"context_line":"    belong to another CPU core."},{"line_number":6126,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_cf3831a1","line":6123,"range":{"start_line":6123,"start_character":4,"end_line":6123,"end_character":7},"updated":"2019-07-01 03:17:28.000000000","message":"It is wrong indent.\nIt should be as follows:\n\n    belong to same Host CPU core, for example::\n\n      siblings: [[0,1],[2,3]]","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6120,"context_line":"  description: |"},{"line_number":6121,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6122,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6123,"context_line":"       siblings: [[0,1],[2,3]]"},{"line_number":6124,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6125,"context_line":"    belong to another CPU core."},{"line_number":6126,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_d9fa28b8","line":6123,"range":{"start_line":6123,"start_character":4,"end_line":6123,"end_character":7},"in_reply_to":"9fb8cfa7_cf3831a1","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6124,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6125,"context_line":"    belong to another CPU core."},{"line_number":6126,"context_line":"  in: body"},{"line_number":6127,"context_line":"  required: true"},{"line_number":6128,"context_line":"  type: list"},{"line_number":6129,"context_line":"  min_version: 2.74"},{"line_number":6130,"context_line":"server_topology_nodes_host_numa_node:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_af285d32","line":6127,"range":{"start_line":6127,"start_character":2,"end_line":6127,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6124,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6125,"context_line":"    belong to another CPU core."},{"line_number":6126,"context_line":"  in: body"},{"line_number":6127,"context_line":"  required: true"},{"line_number":6128,"context_line":"  type: list"},{"line_number":6129,"context_line":"  min_version: 2.74"},{"line_number":6130,"context_line":"server_topology_nodes_host_numa_node:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_59415809","line":6127,"range":{"start_line":6127,"start_character":2,"end_line":6127,"end_character":16},"in_reply_to":"9fb8cfa7_af285d32","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6126,"context_line":"  in: body"},{"line_number":6127,"context_line":"  required: true"},{"line_number":6128,"context_line":"  type: list"},{"line_number":6129,"context_line":"  min_version: 2.74"},{"line_number":6130,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6131,"context_line":"  description: |"},{"line_number":6132,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_8fc9d9ac","line":6129,"range":{"start_line":6129,"start_character":2,"end_line":6129,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6126,"context_line":"  in: body"},{"line_number":6127,"context_line":"  required: true"},{"line_number":6128,"context_line":"  type: list"},{"line_number":6129,"context_line":"  min_version: 2.74"},{"line_number":6130,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6131,"context_line":"  description: |"},{"line_number":6132,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_f94b6c27","line":6129,"range":{"start_line":6129,"start_character":2,"end_line":6129,"end_character":19},"in_reply_to":"9fb8cfa7_8fc9d9ac","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6131,"context_line":"  description: |"},{"line_number":6132,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6133,"context_line":"  in: body"},{"line_number":6134,"context_line":"  required: true"},{"line_number":6135,"context_line":"  type: integer"},{"line_number":6136,"context_line":"  min_version: 2.74"},{"line_number":6137,"context_line":"server_topology_nodes_memory_mb:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_0f196920","line":6134,"range":{"start_line":6134,"start_character":2,"end_line":6134,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6131,"context_line":"  description: |"},{"line_number":6132,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6133,"context_line":"  in: body"},{"line_number":6134,"context_line":"  required: true"},{"line_number":6135,"context_line":"  type: integer"},{"line_number":6136,"context_line":"  min_version: 2.74"},{"line_number":6137,"context_line":"server_topology_nodes_memory_mb:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_3925845c","line":6134,"range":{"start_line":6134,"start_character":2,"end_line":6134,"end_character":16},"in_reply_to":"9fb8cfa7_0f196920","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6133,"context_line":"  in: body"},{"line_number":6134,"context_line":"  required: true"},{"line_number":6135,"context_line":"  type: integer"},{"line_number":6136,"context_line":"  min_version: 2.74"},{"line_number":6137,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6138,"context_line":"  description: |"},{"line_number":6139,"context_line":"    Reporting how many memory belong to this NUMA node in MB."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_afccddba","line":6136,"range":{"start_line":6136,"start_character":2,"end_line":6136,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6133,"context_line":"  in: body"},{"line_number":6134,"context_line":"  required: true"},{"line_number":6135,"context_line":"  type: integer"},{"line_number":6136,"context_line":"  min_version: 2.74"},{"line_number":6137,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6138,"context_line":"  description: |"},{"line_number":6139,"context_line":"    Reporting how many memory belong to this NUMA node in MB."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_1947601f","line":6136,"range":{"start_line":6136,"start_character":2,"end_line":6136,"end_character":19},"in_reply_to":"9fb8cfa7_afccddba","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6138,"context_line":"  description: |"},{"line_number":6139,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6140,"context_line":"  in: body"},{"line_number":6141,"context_line":"  required: true"},{"line_number":6142,"context_line":"  type: integer"},{"line_number":6143,"context_line":"  min_version: 2.74"},{"line_number":6144,"context_line":"server_topology_nodes_vcpu_set:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_2f146de8","line":6141,"range":{"start_line":6141,"start_character":2,"end_line":6141,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6138,"context_line":"  description: |"},{"line_number":6139,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6140,"context_line":"  in: body"},{"line_number":6141,"context_line":"  required: true"},{"line_number":6142,"context_line":"  type: integer"},{"line_number":6143,"context_line":"  min_version: 2.74"},{"line_number":6144,"context_line":"server_topology_nodes_vcpu_set:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_59287831","line":6141,"range":{"start_line":6141,"start_character":2,"end_line":6141,"end_character":16},"in_reply_to":"9fb8cfa7_2f146de8","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6140,"context_line":"  in: body"},{"line_number":6141,"context_line":"  required: true"},{"line_number":6142,"context_line":"  type: integer"},{"line_number":6143,"context_line":"  min_version: 2.74"},{"line_number":6144,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6145,"context_line":"  description: |"},{"line_number":6146,"context_line":"    The vitural CPU list of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_4fc76197","line":6143,"range":{"start_line":6143,"start_character":2,"end_line":6143,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6140,"context_line":"  in: body"},{"line_number":6141,"context_line":"  required: true"},{"line_number":6142,"context_line":"  type: integer"},{"line_number":6143,"context_line":"  min_version: 2.74"},{"line_number":6144,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6145,"context_line":"  description: |"},{"line_number":6146,"context_line":"    The vitural CPU list of the NUMA node."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_b95174db","line":6143,"range":{"start_line":6143,"start_character":2,"end_line":6143,"end_character":19},"in_reply_to":"9fb8cfa7_4fc76197","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6145,"context_line":"  description: |"},{"line_number":6146,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6147,"context_line":"  in: body"},{"line_number":6148,"context_line":"  required: true"},{"line_number":6149,"context_line":"  type: list"},{"line_number":6150,"context_line":"  min_version: 2.74"},{"line_number":6151,"context_line":"server_topology_pagesize_kb:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_cfd4b122","line":6148,"range":{"start_line":6148,"start_character":2,"end_line":6148,"end_character":16},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6145,"context_line":"  description: |"},{"line_number":6146,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6147,"context_line":"  in: body"},{"line_number":6148,"context_line":"  required: true"},{"line_number":6149,"context_line":"  type: list"},{"line_number":6150,"context_line":"  min_version: 2.74"},{"line_number":6151,"context_line":"server_topology_pagesize_kb:"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_f9228c51","line":6148,"range":{"start_line":6148,"start_character":2,"end_line":6148,"end_character":16},"in_reply_to":"9fb8cfa7_cfd4b122","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6147,"context_line":"  in: body"},{"line_number":6148,"context_line":"  required: true"},{"line_number":6149,"context_line":"  type: list"},{"line_number":6150,"context_line":"  min_version: 2.74"},{"line_number":6151,"context_line":"server_topology_pagesize_kb:"},{"line_number":6152,"context_line":"  description: |"},{"line_number":6153,"context_line":"    Reporting the page size in KB of a server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_6fc26587","line":6150,"range":{"start_line":6150,"start_character":2,"end_line":6150,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6147,"context_line":"  in: body"},{"line_number":6148,"context_line":"  required: true"},{"line_number":6149,"context_line":"  type: list"},{"line_number":6150,"context_line":"  min_version: 2.74"},{"line_number":6151,"context_line":"server_topology_pagesize_kb:"},{"line_number":6152,"context_line":"  description: |"},{"line_number":6153,"context_line":"    Reporting the page size in KB of a server."}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_d94c6840","line":6150,"range":{"start_line":6150,"start_character":2,"end_line":6150,"end_character":19},"in_reply_to":"9fb8cfa7_6fc26587","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":6154,"context_line":"  in: body"},{"line_number":6155,"context_line":"  required: true"},{"line_number":6156,"context_line":"  type: integer"},{"line_number":6157,"context_line":"  min_version: 2.74"},{"line_number":6158,"context_line":"server_trusted_image_certificates_create_req:"},{"line_number":6159,"context_line":"  description: |"},{"line_number":6160,"context_line":"    A list of trusted certificate IDs, which are used during image"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_2fb8ed0e","line":6157,"range":{"start_line":6157,"start_character":2,"end_line":6157,"end_character":19},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":6154,"context_line":"  in: body"},{"line_number":6155,"context_line":"  required: true"},{"line_number":6156,"context_line":"  type: integer"},{"line_number":6157,"context_line":"  min_version: 2.74"},{"line_number":6158,"context_line":"server_trusted_image_certificates_create_req:"},{"line_number":6159,"context_line":"  description: |"},{"line_number":6160,"context_line":"    A list of trusted certificate IDs, which are used during image"}],"source_content_type":"text/x-yaml","patch_set":44,"id":"9fb8cfa7_7961bca8","line":6157,"range":{"start_line":6157,"start_character":2,"end_line":6157,"end_character":19},"in_reply_to":"9fb8cfa7_2fb8ed0e","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6093,"context_line":"  type: object"},{"line_number":6094,"context_line":"server_topology_cpu_topology_cores:"},{"line_number":6095,"context_line":"  description: |"},{"line_number":6096,"context_line":"    Reporting the cores number of the server."},{"line_number":6097,"context_line":"  in: body"},{"line_number":6098,"context_line":"  required: false"},{"line_number":6099,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_0606a887","line":6096,"range":{"start_line":6096,"start_character":18,"end_line":6096,"end_character":30},"updated":"2019-07-29 15:07:37.000000000","message":"number of cores?","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6093,"context_line":"  type: object"},{"line_number":6094,"context_line":"server_topology_cpu_topology_cores:"},{"line_number":6095,"context_line":"  description: |"},{"line_number":6096,"context_line":"    Reporting the cores number of the server."},{"line_number":6097,"context_line":"  in: body"},{"line_number":6098,"context_line":"  required: false"},{"line_number":6099,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_76caa36e","line":6096,"range":{"start_line":6096,"start_character":18,"end_line":6096,"end_character":30},"in_reply_to":"7faddb67_0606a887","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6099,"context_line":"  type: integer"},{"line_number":6100,"context_line":"server_topology_cpu_topology_sockets:"},{"line_number":6101,"context_line":"  description: |"},{"line_number":6102,"context_line":"    Reporting the sockets number of the server."},{"line_number":6103,"context_line":"  in: body"},{"line_number":6104,"context_line":"  required: false"},{"line_number":6105,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_a6f47488","line":6102,"range":{"start_line":6102,"start_character":18,"end_line":6102,"end_character":32},"updated":"2019-07-29 15:07:37.000000000","message":"number of sockets?","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6099,"context_line":"  type: integer"},{"line_number":6100,"context_line":"server_topology_cpu_topology_sockets:"},{"line_number":6101,"context_line":"  description: |"},{"line_number":6102,"context_line":"    Reporting the sockets number of the server."},{"line_number":6103,"context_line":"  in: body"},{"line_number":6104,"context_line":"  required: false"},{"line_number":6105,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_16c9ef76","line":6102,"range":{"start_line":6102,"start_character":18,"end_line":6102,"end_character":32},"in_reply_to":"7faddb67_a6f47488","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6105,"context_line":"  type: integer"},{"line_number":6106,"context_line":"server_topology_cpu_topology_threads:"},{"line_number":6107,"context_line":"  description: |"},{"line_number":6108,"context_line":"    Reporting the threads number of the server."},{"line_number":6109,"context_line":"  in: body"},{"line_number":6110,"context_line":"  required: false"},{"line_number":6111,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_46f3409f","line":6108,"range":{"start_line":6108,"start_character":18,"end_line":6108,"end_character":32},"updated":"2019-07-29 15:07:37.000000000","message":"number of threads?","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6105,"context_line":"  type: integer"},{"line_number":6106,"context_line":"server_topology_cpu_topology_threads:"},{"line_number":6107,"context_line":"  description: |"},{"line_number":6108,"context_line":"    Reporting the threads number of the server."},{"line_number":6109,"context_line":"  in: body"},{"line_number":6110,"context_line":"  required: false"},{"line_number":6111,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_36c42b5f","line":6108,"range":{"start_line":6108,"start_character":18,"end_line":6108,"end_character":32},"in_reply_to":"7faddb67_46f3409f","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6111,"context_line":"  type: integer"},{"line_number":6112,"context_line":"server_topology_nodes:"},{"line_number":6113,"context_line":"  description: |"},{"line_number":6114,"context_line":"    Numa node information of a server."},{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_66ee7cb5","line":6114,"range":{"start_line":6114,"start_character":4,"end_line":6114,"end_character":8},"updated":"2019-07-29 15:07:37.000000000","message":"NUMA","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6111,"context_line":"  type: integer"},{"line_number":6112,"context_line":"server_topology_nodes:"},{"line_number":6113,"context_line":"  description: |"},{"line_number":6114,"context_line":"    Numa node information of a server."},{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_d6a037a8","line":6114,"range":{"start_line":6114,"start_character":4,"end_line":6114,"end_character":8},"in_reply_to":"7faddb67_66ee7cb5","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6114,"context_line":"    Numa node information of a server."},{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_49acb38b","line":6117,"range":{"start_line":6117,"start_character":8,"end_line":6117,"end_character":14},"updated":"2019-07-29 15:07:37.000000000","message":"nodes is an array in your sample","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6114,"context_line":"    Numa node information of a server."},{"line_number":6115,"context_line":"  in: body"},{"line_number":6116,"context_line":"  required: true"},{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_56944744","line":6117,"range":{"start_line":6117,"start_character":8,"end_line":6117,"end_character":14},"in_reply_to":"7faddb67_49acb38b","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_863e1827","line":6120,"range":{"start_line":6120,"start_character":4,"end_line":6120,"end_character":7},"updated":"2019-07-29 15:07:37.000000000","message":"Could you expand on this \"How\"? Like maybe give an example?","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_262e44fa","line":6120,"range":{"start_line":6120,"start_character":24,"end_line":6120,"end_character":31},"updated":"2019-07-29 15:07:37.000000000","message":"is mapped","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_062b08eb","line":6120,"range":{"start_line":6120,"start_character":12,"end_line":6120,"end_character":19},"updated":"2019-07-29 15:07:37.000000000","message":"virtual","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_f68c5336","line":6120,"range":{"start_line":6120,"start_character":24,"end_line":6120,"end_character":31},"in_reply_to":"7faddb67_262e44fa","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6117,"context_line":"  type: object"},{"line_number":6118,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_96839f04","line":6120,"range":{"start_line":6120,"start_character":4,"end_line":6120,"end_character":7},"in_reply_to":"7faddb67_863e1827","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"},{"line_number":6124,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6125,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_6643dcb0","line":6122,"range":{"start_line":6122,"start_character":2,"end_line":6122,"end_character":17},"updated":"2019-07-29 15:07:37.000000000","message":"If this is only exposed per policy, we should mention that by default only users with the administrator role will see this field (or mention the policy rule that controls this).","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6119,"context_line":"  description: |"},{"line_number":6120,"context_line":"    How the vitural CPU mappped to host physical CPU."},{"line_number":6121,"context_line":"  in: body"},{"line_number":6122,"context_line":"  required: false"},{"line_number":6123,"context_line":"  type: dict"},{"line_number":6124,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6125,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_3672eb4a","line":6122,"range":{"start_line":6122,"start_character":2,"end_line":6122,"end_character":17},"in_reply_to":"7faddb67_6643dcb0","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6123,"context_line":"  type: dict"},{"line_number":6124,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6125,"context_line":"  description: |"},{"line_number":6126,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6127,"context_line":"    belong to same Host CPU core, for example::"},{"line_number":6128,"context_line":"    siblings: [[0,1],[2,3]]"},{"line_number":6129,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_267c04ea","line":6126,"range":{"start_line":6126,"start_character":30,"end_line":6126,"end_character":38},"updated":"2019-07-29 15:07:37.000000000","message":"threading","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6123,"context_line":"  type: dict"},{"line_number":6124,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6125,"context_line":"  description: |"},{"line_number":6126,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6127,"context_line":"    belong to same Host CPU core, for example::"},{"line_number":6128,"context_line":"    siblings: [[0,1],[2,3]]"},{"line_number":6129,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_16c56f3c","line":6126,"range":{"start_line":6126,"start_character":30,"end_line":6126,"end_character":38},"in_reply_to":"7faddb67_267c04ea","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6124,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6125,"context_line":"  description: |"},{"line_number":6126,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6127,"context_line":"    belong to same Host CPU core, for example::"},{"line_number":6128,"context_line":"    siblings: [[0,1],[2,3]]"},{"line_number":6129,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6130,"context_line":"    belong to another CPU core."},{"line_number":6131,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_661c3cc1","line":6128,"range":{"start_line":6127,"start_character":45,"end_line":6128,"end_character":27},"updated":"2019-07-29 15:07:37.000000000","message":"This doesn\u0027t render properly:\n\nhttp://logs.openstack.org/76/621476/50/check/build-openstack-api-ref/2017f0a/html/?expanded\u003dshow-server-topology-detail#servers-topology-servers-topology\n\nYou need a blank line an indent the example code.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6124,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6125,"context_line":"  description: |"},{"line_number":6126,"context_line":"    While the CPU support the theading, siblings report vcpus set which"},{"line_number":6127,"context_line":"    belong to same Host CPU core, for example::"},{"line_number":6128,"context_line":"    siblings: [[0,1],[2,3]]"},{"line_number":6129,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6130,"context_line":"    belong to another CPU core."},{"line_number":6131,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_36c0ab2a","line":6128,"range":{"start_line":6127,"start_character":45,"end_line":6128,"end_character":27},"in_reply_to":"7faddb67_661c3cc1","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6129,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6130,"context_line":"    belong to another CPU core."},{"line_number":6131,"context_line":"  in: body"},{"line_number":6132,"context_line":"  required: false"},{"line_number":6133,"context_line":"  type: list"},{"line_number":6134,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6135,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_866cd836","line":6132,"range":{"start_line":6132,"start_character":12,"end_line":6132,"end_character":17},"updated":"2019-07-29 15:07:37.000000000","message":"If this is controlled via policy then we need to mention that, like above (and throughout for optional fields controlled via policy).","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6129,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6130,"context_line":"    belong to another CPU core."},{"line_number":6131,"context_line":"  in: body"},{"line_number":6132,"context_line":"  required: false"},{"line_number":6133,"context_line":"  type: list"},{"line_number":6134,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6135,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_d6dcb719","line":6132,"range":{"start_line":6132,"start_character":12,"end_line":6132,"end_character":17},"in_reply_to":"7faddb67_866cd836","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6133,"context_line":"  type: list"},{"line_number":6134,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6135,"context_line":"  description: |"},{"line_number":6136,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6137,"context_line":"  in: body"},{"line_number":6138,"context_line":"  required: false"},{"line_number":6139,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_a6679451","line":6136,"range":{"start_line":6136,"start_character":25,"end_line":6136,"end_character":29},"updated":"2019-07-29 15:07:37.000000000","message":"is","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6133,"context_line":"  type: list"},{"line_number":6134,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6135,"context_line":"  description: |"},{"line_number":6136,"context_line":"    Which host NUMA node been mapped to the NUMA node of this server."},{"line_number":6137,"context_line":"  in: body"},{"line_number":6138,"context_line":"  required: false"},{"line_number":6139,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_f6df7309","line":6136,"range":{"start_line":6136,"start_character":25,"end_line":6136,"end_character":29},"in_reply_to":"7faddb67_a6679451","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6139,"context_line":"  type: integer"},{"line_number":6140,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6141,"context_line":"  description: |"},{"line_number":6142,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6143,"context_line":"  in: body"},{"line_number":6144,"context_line":"  required: false"},{"line_number":6145,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_66719c0c","line":6142,"range":{"start_line":6142,"start_character":4,"end_line":6142,"end_character":36},"updated":"2019-07-29 15:07:37.000000000","message":"How much memory belongs to this NUMA node in MB.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6139,"context_line":"  type: integer"},{"line_number":6140,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6141,"context_line":"  description: |"},{"line_number":6142,"context_line":"    Reporting how many memory belong to this NUMA node in MB."},{"line_number":6143,"context_line":"  in: body"},{"line_number":6144,"context_line":"  required: false"},{"line_number":6145,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_16da4f16","line":6142,"range":{"start_line":6142,"start_character":4,"end_line":6142,"end_character":36},"in_reply_to":"7faddb67_66719c0c","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6145,"context_line":"  type: integer"},{"line_number":6146,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6147,"context_line":"  description: |"},{"line_number":6148,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6149,"context_line":"  in: body"},{"line_number":6150,"context_line":"  required: false"},{"line_number":6151,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_2665e445","line":6148,"range":{"start_line":6148,"start_character":8,"end_line":6148,"end_character":15},"updated":"2019-07-29 15:07:37.000000000","message":"virtual","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6145,"context_line":"  type: integer"},{"line_number":6146,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6147,"context_line":"  description: |"},{"line_number":6148,"context_line":"    The vitural CPU list of the NUMA node."},{"line_number":6149,"context_line":"  in: body"},{"line_number":6150,"context_line":"  required: false"},{"line_number":6151,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_f608d391","line":6148,"range":{"start_line":6148,"start_character":8,"end_line":6148,"end_character":15},"in_reply_to":"7faddb67_2665e445","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6151,"context_line":"  type: list"},{"line_number":6152,"context_line":"server_topology_pagesize_kb:"},{"line_number":6153,"context_line":"  description: |"},{"line_number":6154,"context_line":"    Reporting the page size in KB of a server."},{"line_number":6155,"context_line":"  in: body"},{"line_number":6156,"context_line":"  required: true"},{"line_number":6157,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_a650f45f","line":6154,"range":{"start_line":6154,"start_character":4,"end_line":6154,"end_character":13},"updated":"2019-07-29 15:07:37.000000000","message":"You can remove this.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6151,"context_line":"  type: list"},{"line_number":6152,"context_line":"server_topology_pagesize_kb:"},{"line_number":6153,"context_line":"  description: |"},{"line_number":6154,"context_line":"    Reporting the page size in KB of a server."},{"line_number":6155,"context_line":"  in: body"},{"line_number":6156,"context_line":"  required: true"},{"line_number":6157,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_96ff1f66","line":6154,"range":{"start_line":6154,"start_character":4,"end_line":6154,"end_character":13},"in_reply_to":"7faddb67_a650f45f","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":6122,"context_line":"    ::"},{"line_number":6123,"context_line":""},{"line_number":6124,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6125,"context_line":"    "},{"line_number":6126,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6127,"context_line":"    physical CPU 5."},{"line_number":6128,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":52,"id":"7faddb67_a054f8fe","line":6125,"range":{"start_line":6125,"start_character":0,"end_line":6125,"end_character":4},"updated":"2019-08-05 05:24:02.000000000","message":"remove those extra spaces","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":6122,"context_line":"    ::"},{"line_number":6123,"context_line":""},{"line_number":6124,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6125,"context_line":"    "},{"line_number":6126,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6127,"context_line":"    physical CPU 5."},{"line_number":6128,"context_line":"    "}],"source_content_type":"text/x-yaml","patch_set":52,"id":"7faddb67_e08bd01b","line":6125,"range":{"start_line":6125,"start_character":0,"end_line":6125,"end_character":4},"in_reply_to":"7faddb67_a054f8fe","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":6125,"context_line":"    "},{"line_number":6126,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6127,"context_line":"    physical CPU 5."},{"line_number":6128,"context_line":"    "},{"line_number":6129,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6130,"context_line":"    administrator role. Change the default behavior via the policy rule:"},{"line_number":6131,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":52,"id":"7faddb67_c057b400","line":6128,"updated":"2019-08-05 05:24:02.000000000","message":"ditto","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":6125,"context_line":"    "},{"line_number":6126,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6127,"context_line":"    physical CPU 5."},{"line_number":6128,"context_line":"    "},{"line_number":6129,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6130,"context_line":"    administrator role. Change the default behavior via the policy rule:"},{"line_number":6131,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":52,"id":"7faddb67_c084940d","line":6128,"in_reply_to":"7faddb67_c057b400","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9543285cc8b4c6963332dae4f23fd7cf38ea71de","unresolved":false,"context_lines":[{"line_number":6131,"context_line":""},{"line_number":6132,"context_line":"    ::"},{"line_number":6133,"context_line":""},{"line_number":6134,"context_line":"     compute:server:topology:host:get"},{"line_number":6135,"context_line":"  in: body"},{"line_number":6136,"context_line":"  required: false"},{"line_number":6137,"context_line":"  type: dict"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"7faddb67_40712b0c","line":6134,"range":{"start_line":6134,"start_character":34,"end_line":6134,"end_character":37},"updated":"2019-08-09 05:48:29.000000000","message":"And this One.","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4589e79da585bfd1cb1c7e50ebdcdddc47c014ad","unresolved":false,"context_lines":[{"line_number":6152,"context_line":""},{"line_number":6153,"context_line":"    ::"},{"line_number":6154,"context_line":""},{"line_number":6155,"context_line":"      compute:server:topology:host:get"},{"line_number":6156,"context_line":"  in: body"},{"line_number":6157,"context_line":"  required: false"},{"line_number":6158,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"7faddb67_100de934","line":6155,"range":{"start_line":6155,"start_character":35,"end_line":6155,"end_character":38},"updated":"2019-08-07 14:05:43.000000000","message":"s/get/index","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9543285cc8b4c6963332dae4f23fd7cf38ea71de","unresolved":false,"context_lines":[{"line_number":6152,"context_line":""},{"line_number":6153,"context_line":"    ::"},{"line_number":6154,"context_line":""},{"line_number":6155,"context_line":"      compute:server:topology:host:get"},{"line_number":6156,"context_line":"  in: body"},{"line_number":6157,"context_line":"  required: false"},{"line_number":6158,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"7faddb67_a0801fc1","line":6155,"range":{"start_line":6155,"start_character":35,"end_line":6155,"end_character":38},"in_reply_to":"7faddb67_100de934","updated":"2019-08-09 05:48:29.000000000","message":"Done","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9543285cc8b4c6963332dae4f23fd7cf38ea71de","unresolved":false,"context_lines":[{"line_number":6165,"context_line":""},{"line_number":6166,"context_line":"    ::"},{"line_number":6167,"context_line":""},{"line_number":6168,"context_line":"     compute:server:topology:host:get"},{"line_number":6169,"context_line":"  in: body"},{"line_number":6170,"context_line":"  required: false"},{"line_number":6171,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":53,"id":"7faddb67_e05ff772","line":6168,"range":{"start_line":6168,"start_character":33,"end_line":6168,"end_character":37},"updated":"2019-08-09 05:48:29.000000000","message":"This one.","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2008897510ebde14002164ef40d250083dc35a8a","unresolved":false,"context_lines":[{"line_number":6338,"context_line":"  min_version: 2.52"},{"line_number":6339,"context_line":"server_topology_cpu_topology:"},{"line_number":6340,"context_line":"  description: |"},{"line_number":6341,"context_line":"    CPU topology information of a server."},{"line_number":6342,"context_line":"  in: body"},{"line_number":6343,"context_line":"  required: true"},{"line_number":6344,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_cf29519c","line":6341,"range":{"start_line":6341,"start_character":31,"end_line":6341,"end_character":33},"updated":"2019-08-16 15:01:27.000000000","message":"nit you swap between \"of a server\" and \"for the server\"\n\ni would use \"for the server\" for consitency in all cases instead. but that\u0027s a minor nit.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":6338,"context_line":"  min_version: 2.52"},{"line_number":6339,"context_line":"server_topology_cpu_topology:"},{"line_number":6340,"context_line":"  description: |"},{"line_number":6341,"context_line":"    CPU topology information of a server."},{"line_number":6342,"context_line":"  in: body"},{"line_number":6343,"context_line":"  required: true"},{"line_number":6344,"context_line":"  type: object"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_e3663abc","line":6341,"range":{"start_line":6341,"start_character":31,"end_line":6341,"end_character":33},"in_reply_to":"7faddb67_cf29519c","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":6368,"context_line":"  type: array"},{"line_number":6369,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6370,"context_line":"  description: |"},{"line_number":6371,"context_line":"    How the virtual CPU is mappped to host physical CPU. for example"},{"line_number":6372,"context_line":""},{"line_number":6373,"context_line":"    ::"},{"line_number":6374,"context_line":""},{"line_number":6375,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6376,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_f51da277","line":6373,"range":{"start_line":6371,"start_character":4,"end_line":6373,"end_character":6},"updated":"2019-08-22 14:31:09.000000000","message":"The mapping of server cores to host cores. For example::","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":6368,"context_line":"  type: array"},{"line_number":6369,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6370,"context_line":"  description: |"},{"line_number":6371,"context_line":"    How the virtual CPU is mappped to host physical CPU. for example"},{"line_number":6372,"context_line":""},{"line_number":6373,"context_line":"    ::"},{"line_number":6374,"context_line":""},{"line_number":6375,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6376,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_a30602cd","line":6373,"range":{"start_line":6371,"start_character":4,"end_line":6373,"end_character":6},"in_reply_to":"7faddb67_f51da277","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":6378,"context_line":"    physical CPU 5."},{"line_number":6379,"context_line":""},{"line_number":6380,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6381,"context_line":"    administrator role. Change the default behavior via the policy rule:"},{"line_number":6382,"context_line":""},{"line_number":6383,"context_line":"    ::"},{"line_number":6384,"context_line":""},{"line_number":6385,"context_line":"     compute:server:topology:host:index"},{"line_number":6386,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_5516f65a","line":6383,"range":{"start_line":6381,"start_character":71,"end_line":6383,"end_character":6},"updated":"2019-08-22 14:31:09.000000000","message":"nit: Just replace \u0027rule:\u0027 with \u0027rule::\u0027 and drop the \u0027::\u0027 below. It\u0027s the same thing","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":6378,"context_line":"    physical CPU 5."},{"line_number":6379,"context_line":""},{"line_number":6380,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6381,"context_line":"    administrator role. Change the default behavior via the policy rule:"},{"line_number":6382,"context_line":""},{"line_number":6383,"context_line":"    ::"},{"line_number":6384,"context_line":""},{"line_number":6385,"context_line":"     compute:server:topology:host:index"},{"line_number":6386,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_03f596cc","line":6383,"range":{"start_line":6381,"start_character":71,"end_line":6383,"end_character":6},"in_reply_to":"7faddb67_5516f65a","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2008897510ebde14002164ef40d250083dc35a8a","unresolved":false,"context_lines":[{"line_number":6388,"context_line":"  type: dict"},{"line_number":6389,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6390,"context_line":"  description: |"},{"line_number":6391,"context_line":"    While the CPU support the threading, siblings report vcpus set which"},{"line_number":6392,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6393,"context_line":""},{"line_number":6394,"context_line":"    ::"},{"line_number":6395,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_2104b913","line":6392,"range":{"start_line":6391,"start_character":3,"end_line":6392,"end_character":46},"updated":"2019-08-16 15:01:27.000000000","message":"A mapping of host cpus thread sibling","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":6388,"context_line":"  type: dict"},{"line_number":6389,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6390,"context_line":"  description: |"},{"line_number":6391,"context_line":"    While the CPU support the threading, siblings report vcpus set which"},{"line_number":6392,"context_line":"    belong to same Host CPU core, for example:"},{"line_number":6393,"context_line":""},{"line_number":6394,"context_line":"    ::"},{"line_number":6395,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_e3fb9abb","line":6392,"range":{"start_line":6391,"start_character":3,"end_line":6392,"end_character":46},"in_reply_to":"7faddb67_2104b913","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2008897510ebde14002164ef40d250083dc35a8a","unresolved":false,"context_lines":[{"line_number":6395,"context_line":""},{"line_number":6396,"context_line":"      siblings: [[0,1],[2,3]]"},{"line_number":6397,"context_line":""},{"line_number":6398,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6399,"context_line":"    belong to another CPU core."},{"line_number":6400,"context_line":""},{"line_number":6401,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6402,"context_line":"    administrator role. Change the default behavior via the policy rule:"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_e13f81b2","line":6399,"range":{"start_line":6398,"start_character":4,"end_line":6399,"end_character":31},"updated":"2019-08-16 15:01:27.000000000","message":"i think the data in this filed is only related to host logic cores/thread not vcpus so i dont think this is correct.\n\nlater\nlooking at the tests it looks like it is the vcpu info.\n\nim not sure how useful it is but i guess that means this is accurate.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2008897510ebde14002164ef40d250083dc35a8a","unresolved":false,"context_lines":[{"line_number":6409,"context_line":"  type: list"},{"line_number":6410,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6411,"context_line":"  description: |"},{"line_number":6412,"context_line":"    Which host NUMA node is mapped to the NUMA node of this server."},{"line_number":6413,"context_line":""},{"line_number":6414,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6415,"context_line":"    administrator role. Change the default behavior via the policy rule:"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_21eef920","line":6412,"range":{"start_line":6412,"start_character":3,"end_line":6412,"end_character":67},"updated":"2019-08-16 15:01:27.000000000","message":"nit: \"The host numa node the virtual numa node is mapped too\"\n\nstarting a sentence with which reads as a question not a statement.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":6409,"context_line":"  type: list"},{"line_number":6410,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6411,"context_line":"  description: |"},{"line_number":6412,"context_line":"    Which host NUMA node is mapped to the NUMA node of this server."},{"line_number":6413,"context_line":""},{"line_number":6414,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6415,"context_line":"    administrator role. Change the default behavior via the policy rule:"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_a32fe23c","line":6412,"range":{"start_line":6412,"start_character":3,"end_line":6412,"end_character":67},"in_reply_to":"7faddb67_21eef920","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":6345,"context_line":"  required: false"},{"line_number":6346,"context_line":"  type: array"},{"line_number":6347,"context_line":"  min_version: 2.52"},{"line_number":6348,"context_line":"server_topology_cpu_topology:"},{"line_number":6349,"context_line":"  description: |"},{"line_number":6350,"context_line":"    CPU topology information for a server."},{"line_number":6351,"context_line":"  in: body"},{"line_number":6352,"context_line":"  required: true"},{"line_number":6353,"context_line":"  type: object"},{"line_number":6354,"context_line":"server_topology_cpu_topology_cores:"},{"line_number":6355,"context_line":"  description: |"},{"line_number":6356,"context_line":"    The number of cores for the server."},{"line_number":6357,"context_line":"  in: body"},{"line_number":6358,"context_line":"  required: false"},{"line_number":6359,"context_line":"  type: integer"},{"line_number":6360,"context_line":"server_topology_cpu_topology_sockets:"},{"line_number":6361,"context_line":"  description: |"},{"line_number":6362,"context_line":"    The number of sockets for the server."},{"line_number":6363,"context_line":"  in: body"},{"line_number":6364,"context_line":"  required: false"},{"line_number":6365,"context_line":"  type: integer"},{"line_number":6366,"context_line":"server_topology_cpu_topology_threads:"},{"line_number":6367,"context_line":"  description: |"},{"line_number":6368,"context_line":"    The number of threads for the server."},{"line_number":6369,"context_line":"  in: body"},{"line_number":6370,"context_line":"  required: false"},{"line_number":6371,"context_line":"  type: integer"},{"line_number":6372,"context_line":"server_topology_nodes:"},{"line_number":6373,"context_line":"  description: |"},{"line_number":6374,"context_line":"    NUMA nodes information of a server."}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_2c7153a9","line":6371,"range":{"start_line":6348,"start_character":0,"end_line":6371,"end_character":15},"updated":"2019-08-28 15:05:13.000000000","message":"These aren\u0027t used anymore, correct?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6345,"context_line":"  required: false"},{"line_number":6346,"context_line":"  type: array"},{"line_number":6347,"context_line":"  min_version: 2.52"},{"line_number":6348,"context_line":"server_topology_cpu_topology:"},{"line_number":6349,"context_line":"  description: |"},{"line_number":6350,"context_line":"    CPU topology information for a server."},{"line_number":6351,"context_line":"  in: body"},{"line_number":6352,"context_line":"  required: true"},{"line_number":6353,"context_line":"  type: object"},{"line_number":6354,"context_line":"server_topology_cpu_topology_cores:"},{"line_number":6355,"context_line":"  description: |"},{"line_number":6356,"context_line":"    The number of cores for the server."},{"line_number":6357,"context_line":"  in: body"},{"line_number":6358,"context_line":"  required: false"},{"line_number":6359,"context_line":"  type: integer"},{"line_number":6360,"context_line":"server_topology_cpu_topology_sockets:"},{"line_number":6361,"context_line":"  description: |"},{"line_number":6362,"context_line":"    The number of sockets for the server."},{"line_number":6363,"context_line":"  in: body"},{"line_number":6364,"context_line":"  required: false"},{"line_number":6365,"context_line":"  type: integer"},{"line_number":6366,"context_line":"server_topology_cpu_topology_threads:"},{"line_number":6367,"context_line":"  description: |"},{"line_number":6368,"context_line":"    The number of threads for the server."},{"line_number":6369,"context_line":"  in: body"},{"line_number":6370,"context_line":"  required: false"},{"line_number":6371,"context_line":"  type: integer"},{"line_number":6372,"context_line":"server_topology_nodes:"},{"line_number":6373,"context_line":"  description: |"},{"line_number":6374,"context_line":"    NUMA nodes information of a server."}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_be1a4215","line":6371,"range":{"start_line":6348,"start_character":0,"end_line":6371,"end_character":15},"in_reply_to":"7faddb67_2c7153a9","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":6401,"context_line":"    belong to another CPU core."},{"line_number":6402,"context_line":""},{"line_number":6403,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6404,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6405,"context_line":""},{"line_number":6406,"context_line":"      compute:server:topology:host:index"},{"line_number":6407,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_288146fc","line":6404,"range":{"start_line":6404,"start_character":4,"end_line":6404,"end_character":17},"updated":"2019-08-28 11:09:46.000000000","message":"nit:s/administrator/administrative\n\nBe the same with the \"topology.inc\" description.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6401,"context_line":"    belong to another CPU core."},{"line_number":6402,"context_line":""},{"line_number":6403,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6404,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6405,"context_line":""},{"line_number":6406,"context_line":"      compute:server:topology:host:index"},{"line_number":6407,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_7e14cae9","line":6404,"range":{"start_line":6404,"start_character":4,"end_line":6404,"end_character":17},"in_reply_to":"7faddb67_288146fc","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":6412,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6413,"context_line":""},{"line_number":6414,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6415,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6416,"context_line":""},{"line_number":6417,"context_line":"     compute:server:topology:host:index"},{"line_number":6418,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_4884c20b","line":6415,"range":{"start_line":6415,"start_character":4,"end_line":6415,"end_character":17},"updated":"2019-08-28 11:09:46.000000000","message":"nit:s/administrator/administrative","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6412,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6413,"context_line":""},{"line_number":6414,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6415,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6416,"context_line":""},{"line_number":6417,"context_line":"     compute:server:topology:host:index"},{"line_number":6418,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_1ed11630","line":6415,"range":{"start_line":6415,"start_character":4,"end_line":6415,"end_character":17},"in_reply_to":"7faddb67_4884c20b","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6369,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6370,"context_line":"    physical CPU 5."},{"line_number":6371,"context_line":""},{"line_number":6372,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6373,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6374,"context_line":""},{"line_number":6375,"context_line":"     compute:server:topology:host:index"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_34750e33","line":6372,"range":{"start_line":6372,"start_character":35,"end_line":6372,"end_character":37},"updated":"2019-08-29 10:13:33.000000000","message":"field is","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6369,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6370,"context_line":"    physical CPU 5."},{"line_number":6371,"context_line":""},{"line_number":6372,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6373,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6374,"context_line":""},{"line_number":6375,"context_line":"     compute:server:topology:host:index"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_2a71170e","line":6372,"range":{"start_line":6372,"start_character":35,"end_line":6372,"end_character":37},"in_reply_to":"7faddb67_34750e33","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6370,"context_line":"    physical CPU 5."},{"line_number":6371,"context_line":""},{"line_number":6372,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6373,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6374,"context_line":""},{"line_number":6375,"context_line":"     compute:server:topology:host:index"},{"line_number":6376,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_f48c562f","line":6373,"range":{"start_line":6373,"start_character":25,"end_line":6373,"end_character":31},"updated":"2019-08-29 10:13:33.000000000","message":"You can change","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6370,"context_line":"    physical CPU 5."},{"line_number":6371,"context_line":""},{"line_number":6372,"context_line":"    By default the ``cpu_pinning`` is only visible to users with the"},{"line_number":6373,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6374,"context_line":""},{"line_number":6375,"context_line":"     compute:server:topology:host:index"},{"line_number":6376,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_0a669b52","line":6373,"range":{"start_line":6373,"start_character":25,"end_line":6373,"end_character":31},"in_reply_to":"7faddb67_f48c562f","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6385,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6386,"context_line":"    belong to another CPU core."},{"line_number":6387,"context_line":""},{"line_number":6388,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6389,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6390,"context_line":""},{"line_number":6391,"context_line":"      compute:server:topology:host:index"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_d4991a6d","line":6388,"range":{"start_line":6388,"start_character":31,"end_line":6388,"end_character":34},"updated":"2019-08-29 10:13:33.000000000","message":"field is","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6385,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6386,"context_line":"    belong to another CPU core."},{"line_number":6387,"context_line":""},{"line_number":6388,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6389,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6390,"context_line":""},{"line_number":6391,"context_line":"      compute:server:topology:host:index"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_aa56675d","line":6388,"range":{"start_line":6388,"start_character":31,"end_line":6388,"end_character":34},"in_reply_to":"7faddb67_d4991a6d","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6386,"context_line":"    belong to another CPU core."},{"line_number":6387,"context_line":""},{"line_number":6388,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6389,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6390,"context_line":""},{"line_number":6391,"context_line":"      compute:server:topology:host:index"},{"line_number":6392,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_74a06692","line":6389,"range":{"start_line":6389,"start_character":25,"end_line":6389,"end_character":31},"updated":"2019-08-29 10:13:33.000000000","message":"You can change","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6386,"context_line":"    belong to another CPU core."},{"line_number":6387,"context_line":""},{"line_number":6388,"context_line":"    By default the ``siblings`` is only visible to users with the"},{"line_number":6389,"context_line":"    administrative role. Change the default behavior via the policy rule::"},{"line_number":6390,"context_line":""},{"line_number":6391,"context_line":"      compute:server:topology:host:index"},{"line_number":6392,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_6a54ef54","line":6389,"range":{"start_line":6389,"start_character":25,"end_line":6389,"end_character":31},"in_reply_to":"7faddb67_74a06692","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6396,"context_line":"  description: |"},{"line_number":6397,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6398,"context_line":""},{"line_number":6399,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6400,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6401,"context_line":""},{"line_number":6402,"context_line":"     compute:server:topology:host:index"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_949ba262","line":6399,"range":{"start_line":6399,"start_character":37,"end_line":6399,"end_character":40},"updated":"2019-08-29 10:13:33.000000000","message":"field is","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6396,"context_line":"  description: |"},{"line_number":6397,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6398,"context_line":""},{"line_number":6399,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6400,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6401,"context_line":""},{"line_number":6402,"context_line":"     compute:server:topology:host:index"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_8a512b65","line":6399,"range":{"start_line":6399,"start_character":37,"end_line":6399,"end_character":40},"in_reply_to":"7faddb67_949ba262","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6397,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6398,"context_line":""},{"line_number":6399,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6400,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6401,"context_line":""},{"line_number":6402,"context_line":"     compute:server:topology:host:index"},{"line_number":6403,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_54a52a9e","line":6400,"range":{"start_line":6400,"start_character":24,"end_line":6400,"end_character":30},"updated":"2019-08-29 10:13:33.000000000","message":"You can change","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6397,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6398,"context_line":""},{"line_number":6399,"context_line":"    By default the ``host_numa_node`` is only visible to users with the"},{"line_number":6400,"context_line":"    administrator role. Change the default behavior via the policy rule::"},{"line_number":6401,"context_line":""},{"line_number":6402,"context_line":"     compute:server:topology:host:index"},{"line_number":6403,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_2a4a77ac","line":6400,"range":{"start_line":6400,"start_character":24,"end_line":6400,"end_character":30},"in_reply_to":"7faddb67_54a52a9e","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6405,"context_line":"  type: integer"},{"line_number":6406,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6407,"context_line":"  description: |"},{"line_number":6408,"context_line":"    How much memory belongs to this NUMA node in MB."},{"line_number":6409,"context_line":"  in: body"},{"line_number":6410,"context_line":"  required: false"},{"line_number":6411,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_b4afbe7b","line":6408,"range":{"start_line":6408,"start_character":4,"end_line":6408,"end_character":35},"updated":"2019-08-29 10:13:33.000000000","message":"The amount of memory assigned to this","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6405,"context_line":"  type: integer"},{"line_number":6406,"context_line":"server_topology_nodes_memory_mb:"},{"line_number":6407,"context_line":"  description: |"},{"line_number":6408,"context_line":"    How much memory belongs to this NUMA node in MB."},{"line_number":6409,"context_line":"  in: body"},{"line_number":6410,"context_line":"  required: false"},{"line_number":6411,"context_line":"  type: integer"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_4a47b3a4","line":6408,"range":{"start_line":6408,"start_character":4,"end_line":6408,"end_character":35},"in_reply_to":"7faddb67_b4afbe7b","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6411,"context_line":"  type: integer"},{"line_number":6412,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6413,"context_line":"  description: |"},{"line_number":6414,"context_line":"    The virtual CPU list of the NUMA node."},{"line_number":6415,"context_line":"  in: body"},{"line_number":6416,"context_line":"  required: false"},{"line_number":6417,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_d4b27ae5","line":6414,"range":{"start_line":6414,"start_character":4,"end_line":6414,"end_character":42},"updated":"2019-08-29 10:13:33.000000000","message":"A list of IDs of the virtual CPUs assigned to this NUMA node.","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6411,"context_line":"  type: integer"},{"line_number":6412,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6413,"context_line":"  description: |"},{"line_number":6414,"context_line":"    The virtual CPU list of the NUMA node."},{"line_number":6415,"context_line":"  in: body"},{"line_number":6416,"context_line":"  required: false"},{"line_number":6417,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_eac53f0b","line":6414,"range":{"start_line":6414,"start_character":4,"end_line":6414,"end_character":42},"in_reply_to":"7faddb67_d4b27ae5","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6417,"context_line":"  type: list"},{"line_number":6418,"context_line":"server_topology_pagesize_kb:"},{"line_number":6419,"context_line":"  description: |"},{"line_number":6420,"context_line":"    The page size in KB of a server. This filed is ``None`` if the"},{"line_number":6421,"context_line":"    page size information is not available."},{"line_number":6422,"context_line":"  in: body"},{"line_number":6423,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_9476423f","line":6420,"range":{"start_line":6420,"start_character":42,"end_line":6420,"end_character":47},"updated":"2019-08-29 10:13:33.000000000","message":"field","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":6417,"context_line":"  type: list"},{"line_number":6418,"context_line":"server_topology_pagesize_kb:"},{"line_number":6419,"context_line":"  description: |"},{"line_number":6420,"context_line":"    The page size in KB of a server. This filed is ``None`` if the"},{"line_number":6421,"context_line":"    page size information is not available."},{"line_number":6422,"context_line":"  in: body"},{"line_number":6423,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_54be8aae","line":6420,"range":{"start_line":6420,"start_character":53,"end_line":6420,"end_character":57},"updated":"2019-08-29 10:13:33.000000000","message":"null, right? (JSON doesn\u0027t have \u0027None\u0027)","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6417,"context_line":"  type: list"},{"line_number":6418,"context_line":"server_topology_pagesize_kb:"},{"line_number":6419,"context_line":"  description: |"},{"line_number":6420,"context_line":"    The page size in KB of a server. This filed is ``None`` if the"},{"line_number":6421,"context_line":"    page size information is not available."},{"line_number":6422,"context_line":"  in: body"},{"line_number":6423,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_cad083cb","line":6420,"range":{"start_line":6420,"start_character":53,"end_line":6420,"end_character":57},"in_reply_to":"7faddb67_54be8aae","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":6417,"context_line":"  type: list"},{"line_number":6418,"context_line":"server_topology_pagesize_kb:"},{"line_number":6419,"context_line":"  description: |"},{"line_number":6420,"context_line":"    The page size in KB of a server. This filed is ``None`` if the"},{"line_number":6421,"context_line":"    page size information is not available."},{"line_number":6422,"context_line":"  in: body"},{"line_number":6423,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_6ad94ff2","line":6420,"range":{"start_line":6420,"start_character":42,"end_line":6420,"end_character":47},"in_reply_to":"7faddb67_9476423f","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6362,"context_line":"  type: array"},{"line_number":6363,"context_line":"server_topology_nodes_cpu_pinning:"},{"line_number":6364,"context_line":"  description: |"},{"line_number":6365,"context_line":"    The mapping of server cores to host physical CPU. for example::"},{"line_number":6366,"context_line":""},{"line_number":6367,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6368,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_22afa2e0","line":6365,"range":{"start_line":6365,"start_character":54,"end_line":6365,"end_character":55},"updated":"2019-09-05 10:06:36.000000000","message":"F","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6366,"context_line":""},{"line_number":6367,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6368,"context_line":""},{"line_number":6369,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6370,"context_line":"    physical CPU 5."},{"line_number":6371,"context_line":""},{"line_number":6372,"context_line":"    By default the ``cpu_pinning`` field is only visible to users with the"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_e2ebca0e","line":6369,"range":{"start_line":6369,"start_character":55,"end_line":6369,"end_character":59},"updated":"2019-09-05 10:06:36.000000000","message":"virtual CPU","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6366,"context_line":""},{"line_number":6367,"context_line":"     cpu_pinning: { 0: 0, 1: 5}"},{"line_number":6368,"context_line":""},{"line_number":6369,"context_line":"    This means vcpu 0 is mapped to physical CPU 0, and vcpu 1 is mapped"},{"line_number":6370,"context_line":"    physical CPU 5."},{"line_number":6371,"context_line":""},{"line_number":6372,"context_line":"    By default the ``cpu_pinning`` field is only visible to users with the"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_c2e80e17","line":6369,"range":{"start_line":6369,"start_character":15,"end_line":6369,"end_character":19},"updated":"2019-09-05 10:06:36.000000000","message":"virtual CPU (because it\u0027s the term you\u0027ve used below)","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6379,"context_line":"  type: dict"},{"line_number":6380,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6381,"context_line":"  description: |"},{"line_number":6382,"context_line":"    A mapping of host cpus thread sibling. For example::"},{"line_number":6383,"context_line":""},{"line_number":6384,"context_line":"      siblings: [[0,1],[2,3]]"},{"line_number":6385,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_e2d42a49","line":6382,"range":{"start_line":6382,"start_character":22,"end_line":6382,"end_character":26},"updated":"2019-09-05 10:06:36.000000000","message":"CPU","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6379,"context_line":"  type: dict"},{"line_number":6380,"context_line":"server_topology_nodes_cpu_siblings:"},{"line_number":6381,"context_line":"  description: |"},{"line_number":6382,"context_line":"    A mapping of host cpus thread sibling. For example::"},{"line_number":6383,"context_line":""},{"line_number":6384,"context_line":"      siblings: [[0,1],[2,3]]"},{"line_number":6385,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_a2cab29c","line":6382,"range":{"start_line":6382,"start_character":34,"end_line":6382,"end_character":41},"updated":"2019-09-05 10:06:36.000000000","message":"siblings","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6383,"context_line":""},{"line_number":6384,"context_line":"      siblings: [[0,1],[2,3]]"},{"line_number":6385,"context_line":""},{"line_number":6386,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6387,"context_line":"    belong to another CPU core."},{"line_number":6388,"context_line":""},{"line_number":6389,"context_line":"    By default the ``siblings`` field is only visible to users with the"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_02e2a630","line":6386,"range":{"start_line":6386,"start_character":26,"end_line":6386,"end_character":72},"updated":"2019-09-05 10:06:36.000000000","message":"ditto","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6383,"context_line":""},{"line_number":6384,"context_line":"      siblings: [[0,1],[2,3]]"},{"line_number":6385,"context_line":""},{"line_number":6386,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6387,"context_line":"    belong to another CPU core."},{"line_number":6388,"context_line":""},{"line_number":6389,"context_line":"    By default the ``siblings`` field is only visible to users with the"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_42dc1e73","line":6386,"range":{"start_line":6386,"start_character":15,"end_line":6386,"end_character":19},"updated":"2019-09-05 10:06:36.000000000","message":"virtual CPU","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":6383,"context_line":""},{"line_number":6384,"context_line":"      siblings: [[0,1],[2,3]]"},{"line_number":6385,"context_line":""},{"line_number":6386,"context_line":"    This means vcpu 0 and vcpu 1 belong to same CPU core, vcpu 2, vcpu 3"},{"line_number":6387,"context_line":"    belong to another CPU core."},{"line_number":6388,"context_line":""},{"line_number":6389,"context_line":"    By default the ``siblings`` field is only visible to users with the"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"5faad753_88bbe1e3","line":6386,"range":{"start_line":6386,"start_character":64,"end_line":6386,"end_character":65},"updated":"2019-09-06 20:20:53.000000000","message":"virtual CPU 2 and virtual CPU 3","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6396,"context_line":"  type: list"},{"line_number":6397,"context_line":"server_topology_nodes_host_numa_node:"},{"line_number":6398,"context_line":"  description: |"},{"line_number":6399,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6400,"context_line":""},{"line_number":6401,"context_line":"    By default the ``host_numa_node`` field is only visible to users with the"},{"line_number":6402,"context_line":"    administrator role. You can change the default behavior via the policy"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_42973e91","line":6399,"range":{"start_line":6399,"start_character":48,"end_line":6399,"end_character":51},"updated":"2019-09-05 10:06:36.000000000","message":"mapped","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"94281381be4a931d2aef5581f5f08798e9d44b8a","unresolved":false,"context_lines":[{"line_number":6398,"context_line":"  description: |"},{"line_number":6399,"context_line":"    The host NUMA node the virtual NUMA node is map to."},{"line_number":6400,"context_line":""},{"line_number":6401,"context_line":"    By default the ``host_numa_node`` field is only visible to users with the"},{"line_number":6402,"context_line":"    administrator role. You can change the default behavior via the policy"},{"line_number":6403,"context_line":"    rule::"},{"line_number":6404,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":62,"id":"5faad753_a866dd50","line":6401,"range":{"start_line":6401,"start_character":21,"end_line":6401,"end_character":35},"updated":"2019-09-06 20:28:11.000000000","message":"host_node","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":6414,"context_line":"  type: integer"},{"line_number":6415,"context_line":"server_topology_nodes_vcpu_set:"},{"line_number":6416,"context_line":"  description: |"},{"line_number":6417,"context_line":"    A list of IDs of the virtual CPU assigned to this NUMA node."},{"line_number":6418,"context_line":"  in: body"},{"line_number":6419,"context_line":"  required: false"},{"line_number":6420,"context_line":"  type: list"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"5faad753_a88edd2b","line":6417,"range":{"start_line":6417,"start_character":33,"end_line":6417,"end_character":36},"updated":"2019-09-06 20:20:53.000000000","message":"CPUs?","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f9fb96ebc808b0bae0f6d2c966370f05f64422f3","unresolved":false,"context_lines":[{"line_number":6420,"context_line":"  type: list"},{"line_number":6421,"context_line":"server_topology_pagesize_kb:"},{"line_number":6422,"context_line":"  description: |"},{"line_number":6423,"context_line":"    The page size in KB of a server. This field is ``null`` if the"},{"line_number":6424,"context_line":"    page size information is not available."},{"line_number":6425,"context_line":"  in: body"},{"line_number":6426,"context_line":"  required: true"}],"source_content_type":"text/x-yaml","patch_set":62,"id":"7faddb67_22b6c226","line":6423,"range":{"start_line":6423,"start_character":21,"end_line":6423,"end_character":23},"updated":"2019-09-05 10:06:36.000000000","message":"kB","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"}],"api-ref/source/server-topology.inc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":43,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":44,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":45,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":46,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"**Example Server topology (2.xx)**"}],"source_content_type":"text/x-c++src","patch_set":62,"id":"5faad753_28e3cd07","line":45,"range":{"start_line":45,"start_character":10,"end_line":45,"end_character":24},"updated":"2019-09-06 20:20:53.000000000","message":"This is the wrong field name, it\u0027s just host_node.","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7395fcdae6a912b2a3ca12e5a51860491af80e58","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":43,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":44,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":45,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":46,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"**Example Server topology (2.xx)**"}],"source_content_type":"text/x-c++src","patch_set":62,"id":"5faad753_a8f49d5c","line":45,"range":{"start_line":45,"start_character":10,"end_line":45,"end_character":24},"in_reply_to":"5faad753_28e3cd07","updated":"2019-09-06 20:30:23.000000000","message":"I\u0027ve reported bug 1843098 for this.","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ef746ac659441a6d281dea88200878cccf4c7999","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":43,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":44,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":45,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":46,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"**Example Server topology (2.xx)**"}],"source_content_type":"text/x-c++src","patch_set":62,"id":"5faad753_bcef0286","line":45,"range":{"start_line":45,"start_character":10,"end_line":45,"end_character":24},"in_reply_to":"5faad753_a8f49d5c","updated":"2019-09-06 21:33:31.000000000","message":"https://review.opendev.org/#/c/680775/","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":46,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"**Example Server topology (2.xx)**"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.78/servers-topology-resp.json"},{"line_number":51,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":62,"id":"5faad753_28918d53","line":48,"range":{"start_line":48,"start_character":26,"end_line":48,"end_character":32},"updated":"2019-09-06 20:20:53.000000000","message":"remove this - there is only one version (2.78) and that\u0027s noted above on line 13.","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"}],"api-ref/source/topology.inc":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"37253c5e716d53f25e16c5ab848647c038151a06","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  - pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":47,"context_line":"  - sockets: server_topology_nodes_sockets"},{"line_number":48,"context_line":"  - threads:server_topology_nodes_threads"},{"line_number":49,"context_line":"  "},{"line_number":50,"context_line":"**Example Server topology (2.70)**"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json"}],"source_content_type":"text/x-c++src","patch_set":13,"id":"9fdfeff1_71d47d20","line":49,"range":{"start_line":49,"start_character":0,"end_line":49,"end_character":2},"updated":"2019-02-18 09:59:17.000000000","message":"typo","commit_id":"9bb3a842373314497e7ffb1a59b7afb634644cf1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f645c344fe0c4ee6709e8dd9e911b1e48eb8b13","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  - nodes: server_topology_nodes"},{"line_number":41,"context_line":"  - cores: server_topology_nodes_cores"},{"line_number":42,"context_line":"  - cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":43,"context_line":"  - cpu_set: server_topology_nodes_cpu_set"},{"line_number":44,"context_line":"  - cpu_siblings:server_topology_nodes_cpu_siblings"},{"line_number":45,"context_line":"  - memory_mb: server_topology_nodes_memory_mb"},{"line_number":46,"context_line":"  - host_numa_node: server_topology_nodes_host_numa_node"}],"source_content_type":"text/x-c++src","patch_set":18,"id":"9fdfeff1_a8e7a6ac","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":11},"updated":"2019-02-20 08:56:37.000000000","message":"it is cpuset in https://review.openstack.org/#/c/621476/18/nova/api/openstack/compute/server_topology.py@57","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"47ecb8ff75f455be98a66518d26fb5c60e994ca3","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  - nodes: server_topology_nodes"},{"line_number":41,"context_line":"  - cores: server_topology_nodes_cores"},{"line_number":42,"context_line":"  - cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":43,"context_line":"  - cpu_set: server_topology_nodes_cpu_set"},{"line_number":44,"context_line":"  - cpu_siblings:server_topology_nodes_cpu_siblings"},{"line_number":45,"context_line":"  - memory_mb: server_topology_nodes_memory_mb"},{"line_number":46,"context_line":"  - host_numa_node: server_topology_nodes_host_numa_node"}],"source_content_type":"text/x-c++src","patch_set":18,"id":"9fdfeff1_87295ef3","line":43,"range":{"start_line":43,"start_character":4,"end_line":43,"end_character":11},"in_reply_to":"9fdfeff1_a8e7a6ac","updated":"2019-02-21 02:59:51.000000000","message":"Done. this should be vcpu_set, both fixed.","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f645c344fe0c4ee6709e8dd9e911b1e48eb8b13","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  - cores: server_topology_nodes_cores"},{"line_number":42,"context_line":"  - cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":43,"context_line":"  - cpu_set: server_topology_nodes_cpu_set"},{"line_number":44,"context_line":"  - cpu_siblings:server_topology_nodes_cpu_siblings"},{"line_number":45,"context_line":"  - memory_mb: server_topology_nodes_memory_mb"},{"line_number":46,"context_line":"  - host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":47,"context_line":"  - pagesize_kb: server_topology_nodes_pagesize_kb"}],"source_content_type":"text/x-c++src","patch_set":18,"id":"9fdfeff1_88d502ba","line":44,"range":{"start_line":44,"start_character":4,"end_line":44,"end_character":16},"updated":"2019-02-20 08:56:37.000000000","message":"it is ``siblings`` in https://review.openstack.org/#/c/621476/18/nova/api/openstack/compute/server_topology.py@59","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"47ecb8ff75f455be98a66518d26fb5c60e994ca3","unresolved":false,"context_lines":[{"line_number":41,"context_line":"  - cores: server_topology_nodes_cores"},{"line_number":42,"context_line":"  - cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":43,"context_line":"  - cpu_set: server_topology_nodes_cpu_set"},{"line_number":44,"context_line":"  - cpu_siblings:server_topology_nodes_cpu_siblings"},{"line_number":45,"context_line":"  - memory_mb: server_topology_nodes_memory_mb"},{"line_number":46,"context_line":"  - host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":47,"context_line":"  - pagesize_kb: server_topology_nodes_pagesize_kb"}],"source_content_type":"text/x-c++src","patch_set":18,"id":"9fdfeff1_47337663","line":44,"range":{"start_line":44,"start_character":4,"end_line":44,"end_character":16},"in_reply_to":"9fdfeff1_88d502ba","updated":"2019-02-21 02:59:51.000000000","message":"Done. this should be siblings.","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f645c344fe0c4ee6709e8dd9e911b1e48eb8b13","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  - cpu_thread_policy: server_topology_cpu_thread_policy"},{"line_number":40,"context_line":"  - nodes: server_topology_nodes"},{"line_number":41,"context_line":"  - cores: server_topology_nodes_cores"},{"line_number":42,"context_line":"  - cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":43,"context_line":"  - cpu_set: server_topology_nodes_cpu_set"},{"line_number":44,"context_line":"  - cpu_siblings:server_topology_nodes_cpu_siblings"},{"line_number":45,"context_line":"  - memory_mb: server_topology_nodes_memory_mb"},{"line_number":46,"context_line":"  - host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":47,"context_line":"  - pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":48,"context_line":"  - sockets: server_topology_nodes_sockets"},{"line_number":49,"context_line":"  - threads:server_topology_nodes_threads"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.70)**"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":18,"id":"9fdfeff1_481cfac0","line":49,"range":{"start_line":42,"start_character":4,"end_line":49,"end_character":41},"updated":"2019-02-20 08:56:37.000000000","message":"seems these should be nodes.xxx","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"47ecb8ff75f455be98a66518d26fb5c60e994ca3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  - cpu_thread_policy: server_topology_cpu_thread_policy"},{"line_number":40,"context_line":"  - nodes: server_topology_nodes"},{"line_number":41,"context_line":"  - cores: server_topology_nodes_cores"},{"line_number":42,"context_line":"  - cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":43,"context_line":"  - cpu_set: server_topology_nodes_cpu_set"},{"line_number":44,"context_line":"  - cpu_siblings:server_topology_nodes_cpu_siblings"},{"line_number":45,"context_line":"  - memory_mb: server_topology_nodes_memory_mb"},{"line_number":46,"context_line":"  - host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":47,"context_line":"  - pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":48,"context_line":"  - sockets: server_topology_nodes_sockets"},{"line_number":49,"context_line":"  - threads:server_topology_nodes_threads"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.70)**"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":18,"id":"9fdfeff1_c7744601","line":49,"range":{"start_line":42,"start_character":4,"end_line":49,"end_character":41},"in_reply_to":"9fdfeff1_481cfac0","updated":"2019-02-21 02:59:51.000000000","message":"Done","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d1c9c631475a7e8352f7b5b59fe77c200990fe25","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  - nodes.sockets: server_topology_nodes_sockets"},{"line_number":49,"context_line":"  - nodes.threads:server_topology_nodes_threads"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.70)**"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json"},{"line_number":54,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":22,"id":"9fdfeff1_7782ada7","line":51,"range":{"start_line":51,"start_character":27,"end_line":51,"end_character":31},"updated":"2019-02-25 03:52:01.000000000","message":"2.71","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  - nodes.sockets: server_topology_nodes_sockets"},{"line_number":49,"context_line":"  - nodes.threads:server_topology_nodes_threads"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.70)**"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json"},{"line_number":54,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":22,"id":"9fdfeff1_3270b308","line":51,"range":{"start_line":51,"start_character":27,"end_line":51,"end_character":31},"in_reply_to":"9fdfeff1_7782ada7","updated":"2019-02-25 06:09:20.000000000","message":"Done","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d1c9c631475a7e8352f7b5b59fe77c200990fe25","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.70)**"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json"},{"line_number":54,"context_line":"   :language: javascript"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":22,"id":"9fdfeff1_1791e1f1","line":53,"range":{"start_line":53,"start_character":61,"end_line":53,"end_character":66},"updated":"2019-02-25 03:52:01.000000000","message":"2.71","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.70)**"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json"},{"line_number":54,"context_line":"   :language: javascript"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":22,"id":"9fdfeff1_d2604738","line":53,"range":{"start_line":53,"start_character":61,"end_line":53,"end_character":66},"in_reply_to":"9fdfeff1_1791e1f1","updated":"2019-02-25 06:09:20.000000000","message":"Done","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"c2267eb38e04de962aa05a8da1c38bc200198cd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Servers Topology (servers, topology)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Shows the NUMA topology information for a server."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_852116b7","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":40},"updated":"2019-02-25 12:02:08.000000000","message":"should we mention this whole file is after some version?","commit_id":"a3de72fa964e4122d91de44ffbb8e210a0d2d5b3"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9cc72312c92cf86e5fe0568ddc0d3f989bdd51f7","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Servers Topology (servers, topology)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Shows the NUMA topology information for a server."},{"line_number":8,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_ae367701","line":5,"range":{"start_line":3,"start_character":0,"end_line":5,"end_character":40},"in_reply_to":"9fdfeff1_852116b7","updated":"2019-02-25 14:40:03.000000000","message":"I did not find any example which list version reqeust. fix me.","commit_id":"a3de72fa964e4122d91de44ffbb8e210a0d2d5b3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Servers Topology (servers, topology)"}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_582ab12f","line":1,"updated":"2019-03-01 22:35:42.000000000","message":"This isn\u0027t in the api-ref home page, see how it doesn\u0027t show up?\n\nhttp://logs.openstack.org/76/621476/33/check/build-openstack-api-ref/e9332a2/html/?expanded\u003dshow-server-details-detail#show-server-details\n\nNeeds to be included in the index:\n\nhttps://github.com/openstack/nova/blob/master/api-ref/source/index.rst","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Servers Topology (servers, topology)"}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_4782c4a7","line":1,"in_reply_to":"9fdfeff1_582ab12f","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Normal response codes: 200"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Error response codes: unauthorized(401), notfound(404)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Request"},{"line_number":25,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_f81a8516","line":22,"updated":"2019-03-01 22:35:42.000000000","message":"If the user fails the policy check they\u0027ll get a 403 right?","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Normal response codes: 200"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Error response codes: unauthorized(401), notfound(404)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"Request"},{"line_number":25,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_676908f7","line":22,"in_reply_to":"9fdfeff1_f81a8516","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Response"},{"line_number":32,"context_line":"--------"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"All response fields are listed below. If some information is missing, the correspond"},{"line_number":35,"context_line":"field then this field will be reported as ``None`` or a empty list in the response."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_b814fdea","line":35,"range":{"start_line":34,"start_character":70,"end_line":35,"end_character":6},"updated":"2019-03-01 22:35:42.000000000","message":"nix","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":31,"context_line":"Response"},{"line_number":32,"context_line":"--------"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"All response fields are listed below. If some information is missing, the correspond"},{"line_number":35,"context_line":"field then this field will be reported as ``None`` or a empty list in the response."},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_277300eb","line":35,"range":{"start_line":34,"start_character":70,"end_line":35,"end_character":6},"in_reply_to":"9fdfeff1_b814fdea","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":47,"context_line":"  - nodes.pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":48,"context_line":"  - nodes.sockets: server_topology_nodes_sockets"},{"line_number":49,"context_line":"  - nodes.threads:server_topology_nodes_threads"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.72)**"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_18d98955","line":49,"range":{"start_line":49,"start_character":18,"end_line":49,"end_character":19},"updated":"2019-03-01 22:35:42.000000000","message":"space","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":46,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":47,"context_line":"  - nodes.pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":48,"context_line":"  - nodes.sockets: server_topology_nodes_sockets"},{"line_number":49,"context_line":"  - nodes.threads:server_topology_nodes_threads"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"**Example Server topology (2.72)**"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":33,"id":"9fdfeff1_876e6cfe","line":49,"range":{"start_line":49,"start_character":18,"end_line":49,"end_character":19},"in_reply_to":"9fdfeff1_18d98955","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. rest_method:: GET /servers/{server_id}/topology"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Shows NUMA topology information for a server."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"},{"line_number":17,"context_line":"cpu pinning, other information is available for both admin role and project owner. Cloud"},{"line_number":18,"context_line":"providers can change these permissions through the ``policy.json`` file."}],"source_content_type":"text/x-c++src","patch_set":36,"id":"9fdfeff1_e3908345","line":15,"updated":"2019-03-04 13:58:38.000000000","message":"Add the following description.\n\nThis API is available starting with microversion 2.72.","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":12,"context_line":".. rest_method:: GET /servers/{server_id}/topology"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Shows NUMA topology information for a server."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"},{"line_number":17,"context_line":"cpu pinning, other information is available for both admin role and project owner. Cloud"},{"line_number":18,"context_line":"providers can change these permissions through the ``policy.json`` file."}],"source_content_type":"text/x-c++src","patch_set":36,"id":"9fdfeff1_1e671aba","line":15,"in_reply_to":"9fdfeff1_e3908345","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes: server_topology_nodes"},{"line_number":43,"context_line":"  - nodes.cores: server_topology_nodes_cores"},{"line_number":44,"context_line":"  - nodes.cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":45,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":46,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":47,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":48,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"}],"source_content_type":"text/x-c++src","patch_set":37,"id":"9fdfeff1_40bcd805","line":45,"updated":"2019-03-04 22:01:56.000000000","message":"i woudl personnaly compine nodes.cpu.pinng and nodes.vcpu_set\nwith a dict of vCPU to pCPU mappings\n\nthe keys are the vCPU set associated with the numanode\nthe values are the host pCPUs the guest is pinned too and the\nitems in the dict model the vCPU to pCPU assignments.\nthis is much more useful then two independ fields.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes: server_topology_nodes"},{"line_number":43,"context_line":"  - nodes.cores: server_topology_nodes_cores"},{"line_number":44,"context_line":"  - nodes.cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":45,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":46,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":47,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":48,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"}],"source_content_type":"text/x-c++src","patch_set":37,"id":"9fdfeff1_f796efef","line":45,"in_reply_to":"9fdfeff1_40bcd805","updated":"2019-03-05 01:32:08.000000000","message":"cause the cpu-pinning is host information, it\u0027s only visible to admin. so combine those to none item lose the tenant user to check\u0027s it\u0027s vCPU set.\nfix me.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":49,"context_line":"  - nodes.pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":50,"context_line":"  - nodes.sockets: server_topology_nodes_sockets"},{"line_number":51,"context_line":"  - nodes.threads: server_topology_nodes_threads"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"**Example Server topology (2.72)**"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":37,"id":"9fdfeff1_60b9dc13","line":51,"updated":"2019-03-04 22:01:56.000000000","message":"delete bot nodes. thread and nodes.soeckets","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":48,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":49,"context_line":"  - nodes.pagesize_kb: server_topology_nodes_pagesize_kb"},{"line_number":50,"context_line":"  - nodes.sockets: server_topology_nodes_sockets"},{"line_number":51,"context_line":"  - nodes.threads: server_topology_nodes_threads"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"**Example Server topology (2.72)**"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":37,"id":"9fdfeff1_8a317a5c","line":51,"in_reply_to":"9fdfeff1_60b9dc13","updated":"2019-03-05 01:32:08.000000000","message":"what context here i missed?","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. rest_method:: GET /servers/{server_id}/topology"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Shows NUMA topology information for a server."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_af7e1d67","line":13,"updated":"2019-07-01 03:17:28.000000000","message":"Add \u0027.. versionadded:: 2.74\u0027","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":".. rest_method:: GET /servers/{server_id}/topology"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Shows NUMA topology information for a server."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_79a21cb0","line":13,"in_reply_to":"9fb8cfa7_af7e1d67","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  - nodes: server_topology_nodes"},{"line_number":40,"context_line":"  - nodes.cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":41,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":42,"context_line":"  - nodes.siblings:server_topology_nodes_cpu_siblings"},{"line_number":43,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_6f3d85b9","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":20},"updated":"2019-07-01 03:17:28.000000000","message":"Needs a white space.","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":39,"context_line":"  - nodes: server_topology_nodes"},{"line_number":40,"context_line":"  - nodes.cpu_pinning: server_topology_nodes_cpu_pinning"},{"line_number":41,"context_line":"  - nodes.vcpu_set: server_topology_nodes_vcpu_set"},{"line_number":42,"context_line":"  - nodes.siblings:server_topology_nodes_cpu_siblings"},{"line_number":43,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_59ab9886","line":42,"range":{"start_line":42,"start_character":19,"end_line":42,"end_character":20},"in_reply_to":"9fb8cfa7_6f3d85b9","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes.siblings:server_topology_nodes_cpu_siblings"},{"line_number":43,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"},{"line_number":46,"context_line":"  - cpu_topology.cores:server_topology_cpu_topology_cores"},{"line_number":47,"context_line":"  - cpu_topology.sockets:server_topology_cpu_topology_sockets"},{"line_number":48,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_2f430d41","line":45,"range":{"start_line":45,"start_character":25,"end_line":45,"end_character":26},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"  - nodes.siblings:server_topology_nodes_cpu_siblings"},{"line_number":43,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"},{"line_number":46,"context_line":"  - cpu_topology.cores:server_topology_cpu_topology_cores"},{"line_number":47,"context_line":"  - cpu_topology.sockets:server_topology_cpu_topology_sockets"},{"line_number":48,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_d996a849","line":45,"range":{"start_line":45,"start_character":25,"end_line":45,"end_character":26},"in_reply_to":"9fb8cfa7_2f430d41","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"},{"line_number":46,"context_line":"  - cpu_topology.cores:server_topology_cpu_topology_cores"},{"line_number":47,"context_line":"  - cpu_topology.sockets:server_topology_cpu_topology_sockets"},{"line_number":48,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_cf77d19f","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":24},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"},{"line_number":46,"context_line":"  - cpu_topology.cores:server_topology_cpu_topology_cores"},{"line_number":47,"context_line":"  - cpu_topology.sockets:server_topology_cpu_topology_sockets"},{"line_number":48,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":49,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_798bfc1d","line":46,"range":{"start_line":46,"start_character":23,"end_line":46,"end_character":24},"in_reply_to":"9fb8cfa7_cf77d19f","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"8a4361b67e697875afdc563ff711736f2221c692","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"},{"line_number":46,"context_line":"  - cpu_topology.cores:server_topology_cpu_topology_cores"},{"line_number":47,"context_line":"  - cpu_topology.sockets:server_topology_cpu_topology_sockets"},{"line_number":48,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"**Example Server topology (2.74)**"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_8f6d59cd","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":26},"updated":"2019-07-01 03:17:28.000000000","message":"ditto","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"46a09aa6bad05a4e1f4e0dca5120c342a896297c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":45,"context_line":"  - cpu_topology.threads:server_topology_cpu_topology_threads"},{"line_number":46,"context_line":"  - cpu_topology.cores:server_topology_cpu_topology_cores"},{"line_number":47,"context_line":"  - cpu_topology.sockets:server_topology_cpu_topology_sockets"},{"line_number":48,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"**Example Server topology (2.74)**"}],"source_content_type":"text/x-c++src","patch_set":44,"id":"9fb8cfa7_5984f80a","line":47,"range":{"start_line":47,"start_character":25,"end_line":47,"end_character":26},"in_reply_to":"9fb8cfa7_8f6d59cd","updated":"2019-07-02 07:28:33.000000000","message":"Done","commit_id":"c6e53ca29e0b48039a95fe04540c5aa2c0929964"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Shows NUMA topology information for a server."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"},{"line_number":18,"context_line":"cpu pinning, other information is avaliable for both admin role and project owner. Cloud"},{"line_number":19,"context_line":"providers can change these permissions through the ``policy.json`` file."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Normal response codes: 200"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_c6d090cc","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":12},"updated":"2019-07-29 15:07:37.000000000","message":"I would move this to the per-parameter description for things that are controlled separately since this could change over time if new fields are added.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Shows NUMA topology information for a server."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"},{"line_number":18,"context_line":"cpu pinning, other information is avaliable for both admin role and project owner. Cloud"},{"line_number":19,"context_line":"providers can change these permissions through the ``policy.json`` file."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Normal response codes: 200"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_c9f2e306","line":18,"range":{"start_line":18,"start_character":13,"end_line":18,"end_character":82},"updated":"2019-07-29 15:07:37.000000000","message":"The rest of this then just becomes:\n\nPolicy defaults enable only users with the administrative role or the owner of the server to perform this operation. Cloud providers can change these permissions through the ``policy.json`` file.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Shows NUMA topology information for a server."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"},{"line_number":18,"context_line":"cpu pinning, other information is avaliable for both admin role and project owner. Cloud"},{"line_number":19,"context_line":"providers can change these permissions through the ``policy.json`` file."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Normal response codes: 200"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_960ddf91","line":18,"range":{"start_line":17,"start_character":0,"end_line":18,"end_character":12},"in_reply_to":"7faddb67_c6d090cc","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":15,"context_line":"Shows NUMA topology information for a server."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Policy defaults enable only users with the administrative role could list NUMA node and"},{"line_number":18,"context_line":"cpu pinning, other information is avaliable for both admin role and project owner. Cloud"},{"line_number":19,"context_line":"providers can change these permissions through the ``policy.json`` file."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Normal response codes: 200"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_f61693a7","line":18,"range":{"start_line":18,"start_character":13,"end_line":18,"end_character":82},"in_reply_to":"7faddb67_c9f2e306","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Normal response codes: 200"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Error response codes: unauthorized(401), notfound(404)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Request"},{"line_number":26,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_c9a4230b","line":23,"updated":"2019-07-29 15:07:37.000000000","message":"403 should also be in this list if you fail the policy check.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"Normal response codes: 200"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Error response codes: unauthorized(401), notfound(404)"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Request"},{"line_number":26,"context_line":"-------"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_361c2bc0","line":23,"in_reply_to":"7faddb67_c9a4230b","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Response"},{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"All response fields are listed below. If some information is missing, the correspond"},{"line_number":36,"context_line":"field then this field will be reported as ``None`` or a empty list in the response."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_69bacf0a","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":83},"updated":"2019-07-29 15:07:37.000000000","message":"This is confusing. Which fields would not be in the response? The ones marked \"Optional\" right? Does that mean the key would be in the response but the value would be None or []? That\u0027s just confusing if the reason the value is obfuscated is because the user failed a policy check to show those fields. Why wouldn\u0027t we just omit fields that the user isn\u0027t allowed to see because of policy?\n\nOr is this just saying the value on certain (non-admin) fields can be None or []? If so, I don\u0027t think we need to say that, it\u0027s implied.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"Response"},{"line_number":33,"context_line":"--------"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"All response fields are listed below. If some information is missing, the correspond"},{"line_number":36,"context_line":"field then this field will be reported as ``None`` or a empty list in the response."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":".. rest_parameters:: parameters.yaml"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_76670353","line":36,"range":{"start_line":35,"start_character":0,"end_line":36,"end_character":83},"in_reply_to":"7faddb67_69bacf0a","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  - cpu_topology.sockets: server_topology_cpu_topology_sockets"},{"line_number":50,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**Example Server topology (2.75)**"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.75/servers-topology-resp.json"},{"line_number":55,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_a9452717","line":52,"range":{"start_line":52,"start_character":27,"end_line":52,"end_character":31},"updated":"2019-07-29 15:07:37.000000000","message":"Convention is to use v2.xx.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  - cpu_topology.sockets: server_topology_cpu_topology_sockets"},{"line_number":50,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**Example Server topology (2.75)**"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.75/servers-topology-resp.json"},{"line_number":55,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":50,"id":"7faddb67_d67837f9","line":52,"range":{"start_line":52,"start_character":27,"end_line":52,"end_character":31},"in_reply_to":"7faddb67_a9452717","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Servers Topology (servers, topology)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Shows the NUMA topology information for a server."}],"source_content_type":"text/x-c++src","patch_set":57,"id":"7faddb67_c043023f","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":1},"updated":"2019-08-22 14:31:09.000000000","message":"You need to either drop this or add an additional \u0027\u003d\u0027 to the over/underline.\n\n  \u003d\u003d\u003d\n   a\n  \u003d\u003d\u003d\n\nor\n\n  \u003d\n  a\n  \u003d","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":" Servers Topology (servers, topology)"},{"line_number":5,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Shows the NUMA topology information for a server."}],"source_content_type":"text/x-c++src","patch_set":57,"id":"7faddb67_6329ea35","line":4,"range":{"start_line":4,"start_character":0,"end_line":4,"end_character":1},"in_reply_to":"7faddb67_c043023f","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Servers Topology (servers, topology)"}],"source_content_type":"text/x-c++src","patch_set":60,"id":"7faddb67_08432a13","line":1,"updated":"2019-08-28 11:09:46.000000000","message":"Corresponds to https://review.opendev.org/#/c/621476/60/api-ref/source/index.rst@56 if renamed to \"numa-topology.inc\" or \"server-topology.inc\".","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":1,"context_line":".. -*- rst -*-"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":4,"context_line":"Servers Topology (servers, topology)"}],"source_content_type":"text/x-c++src","patch_set":60,"id":"7faddb67_de437e6b","line":1,"in_reply_to":"7faddb67_08432a13","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":44,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":45,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":46,"context_line":"  - cpu_topology: server_topology_cpu_topology"},{"line_number":47,"context_line":"  - cpu_topology.threads: server_topology_cpu_topology_threads"},{"line_number":48,"context_line":"  - cpu_topology.cores: server_topology_cpu_topology_cores"},{"line_number":49,"context_line":"  - cpu_topology.sockets: server_topology_cpu_topology_sockets"},{"line_number":50,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**Example Server topology (2.xx)**"}],"source_content_type":"text/x-c++src","patch_set":60,"id":"7faddb67_cc675fea","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":62},"updated":"2019-08-28 15:05:13.000000000","message":"I suspect these should be dropped","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  - nodes.siblings: server_topology_nodes_cpu_siblings"},{"line_number":44,"context_line":"  - nodes.memory_mb: server_topology_nodes_memory_mb"},{"line_number":45,"context_line":"  - nodes.host_numa_node: server_topology_nodes_host_numa_node"},{"line_number":46,"context_line":"  - cpu_topology: server_topology_cpu_topology"},{"line_number":47,"context_line":"  - cpu_topology.threads: server_topology_cpu_topology_threads"},{"line_number":48,"context_line":"  - cpu_topology.cores: server_topology_cpu_topology_cores"},{"line_number":49,"context_line":"  - cpu_topology.sockets: server_topology_cpu_topology_sockets"},{"line_number":50,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**Example Server topology (2.xx)**"}],"source_content_type":"text/x-c++src","patch_set":60,"id":"7faddb67_fedd1a41","line":49,"range":{"start_line":46,"start_character":0,"end_line":49,"end_character":62},"in_reply_to":"7faddb67_cc675fea","updated":"2019-08-30 05:19:05.000000000","message":"Done. Good catch.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  - cpu_topology.sockets: server_topology_cpu_topology_sockets"},{"line_number":50,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**Example Server topology (2.xx)**"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.77/servers-topology-resp.json"},{"line_number":55,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":60,"id":"7faddb67_48d122cc","line":52,"range":{"start_line":52,"start_character":29,"end_line":52,"end_character":31},"updated":"2019-08-28 11:09:46.000000000","message":"Why \u0027xx\u0027? Should it be a precise microversion number (v2.77)?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  - cpu_topology.sockets: server_topology_cpu_topology_sockets"},{"line_number":50,"context_line":"  - pagesize_kb: server_topology_pagesize_kb"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"**Example Server topology (2.xx)**"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":".. literalinclude:: ../../doc/api_samples/os-server-topology/v2.77/servers-topology-resp.json"},{"line_number":55,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":60,"id":"7faddb67_9ee42610","line":52,"range":{"start_line":52,"start_character":29,"end_line":52,"end_character":31},"in_reply_to":"7faddb67_48d122cc","updated":"2019-08-30 05:19:05.000000000","message":"Use 2.xx is suggested. I guess it\u0027s custom.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"}],"doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f645c344fe0c4ee6709e8dd9e911b1e48eb8b13","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"cpu_thread_policy\": \"dedicated\","},{"line_number":3,"context_line":"    \"nodes\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"cores\": 2,"},{"line_number":6,"context_line":"            \"cpu_pinning\": {"},{"line_number":7,"context_line":"                \"0\": 0,"},{"line_number":8,"context_line":"                \"1\": 5"},{"line_number":9,"context_line":"            },"},{"line_number":10,"context_line":"            \"host_numa_node\": 0,"},{"line_number":11,"context_line":"            \"memory_mb\": 1024,"},{"line_number":12,"context_line":"            \"pagesize_kb\": 4096,"},{"line_number":13,"context_line":"            \"sockets\": 1,"},{"line_number":14,"context_line":"            \"threads\": 2"},{"line_number":15,"context_line":"        },"},{"line_number":16,"context_line":"        {"},{"line_number":17,"context_line":"            \"cores\": 2,"},{"line_number":18,"context_line":"            \"cpu_pinning\": {"},{"line_number":19,"context_line":"                \"2\": 1,"},{"line_number":20,"context_line":"                \"3\": 8"},{"line_number":21,"context_line":"            },"},{"line_number":22,"context_line":"            \"host_numa_node\": 1,"},{"line_number":23,"context_line":"            \"memory_mb\": 2048,"},{"line_number":24,"context_line":"            \"pagesize_kb\": 40960,"},{"line_number":25,"context_line":"            \"sockets\": 1,"},{"line_number":26,"context_line":"            \"threads\": 2"},{"line_number":27,"context_line":"        }"},{"line_number":28,"context_line":"    ]"},{"line_number":29,"context_line":"}"}],"source_content_type":"application/json","patch_set":18,"id":"9fdfeff1_48f87a48","line":29,"range":{"start_line":3,"start_character":4,"end_line":29,"end_character":1},"updated":"2019-02-20 08:56:37.000000000","message":"should we include all possible fields in this sample? I can see that ``cpuset`` and ``siblings`` is missing here.","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"47ecb8ff75f455be98a66518d26fb5c60e994ca3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"cpu_thread_policy\": \"dedicated\","},{"line_number":3,"context_line":"    \"nodes\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"cores\": 2,"},{"line_number":6,"context_line":"            \"cpu_pinning\": {"},{"line_number":7,"context_line":"                \"0\": 0,"},{"line_number":8,"context_line":"                \"1\": 5"},{"line_number":9,"context_line":"            },"},{"line_number":10,"context_line":"            \"host_numa_node\": 0,"},{"line_number":11,"context_line":"            \"memory_mb\": 1024,"},{"line_number":12,"context_line":"            \"pagesize_kb\": 4096,"},{"line_number":13,"context_line":"            \"sockets\": 1,"},{"line_number":14,"context_line":"            \"threads\": 2"},{"line_number":15,"context_line":"        },"},{"line_number":16,"context_line":"        {"},{"line_number":17,"context_line":"            \"cores\": 2,"},{"line_number":18,"context_line":"            \"cpu_pinning\": {"},{"line_number":19,"context_line":"                \"2\": 1,"},{"line_number":20,"context_line":"                \"3\": 8"},{"line_number":21,"context_line":"            },"},{"line_number":22,"context_line":"            \"host_numa_node\": 1,"},{"line_number":23,"context_line":"            \"memory_mb\": 2048,"},{"line_number":24,"context_line":"            \"pagesize_kb\": 40960,"},{"line_number":25,"context_line":"            \"sockets\": 1,"},{"line_number":26,"context_line":"            \"threads\": 2"},{"line_number":27,"context_line":"        }"},{"line_number":28,"context_line":"    ]"},{"line_number":29,"context_line":"}"}],"source_content_type":"application/json","patch_set":18,"id":"9fdfeff1_c7c76664","line":29,"range":{"start_line":3,"start_character":4,"end_line":29,"end_character":1},"in_reply_to":"9fdfeff1_48f87a48","updated":"2019-02-21 02:59:51.000000000","message":"good catch, thanks.","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"}],"doc/api_samples/os-server-topology/v2.70/servers-topology-resp.json.tpl":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f645c344fe0c4ee6709e8dd9e911b1e48eb8b13","unresolved":false,"context_lines":[{"line_number":14,"context_line":"            \"threads\": 2"},{"line_number":15,"context_line":"        },"},{"line_number":16,"context_line":"        {"},{"line_number":17,"context_line":"\t\t\t\"cores\": 2,"},{"line_number":18,"context_line":"            \"cpu_pinning\": {"},{"line_number":19,"context_line":"                \"2\": 1,"},{"line_number":20,"context_line":"                \"3\": 8"}],"source_content_type":"text/x-smarty","patch_set":18,"id":"9fdfeff1_a89c860e","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":14},"updated":"2019-02-20 08:56:37.000000000","message":"pep8 error","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"47ecb8ff75f455be98a66518d26fb5c60e994ca3","unresolved":false,"context_lines":[{"line_number":14,"context_line":"            \"threads\": 2"},{"line_number":15,"context_line":"        },"},{"line_number":16,"context_line":"        {"},{"line_number":17,"context_line":"\t\t\t\"cores\": 2,"},{"line_number":18,"context_line":"            \"cpu_pinning\": {"},{"line_number":19,"context_line":"                \"2\": 1,"},{"line_number":20,"context_line":"                \"3\": 8"}],"source_content_type":"text/x-smarty","patch_set":18,"id":"9fdfeff1_27f3d2a1","line":17,"range":{"start_line":17,"start_character":0,"end_line":17,"end_character":14},"in_reply_to":"9fdfeff1_a89c860e","updated":"2019-02-21 02:59:51.000000000","message":"Done","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"cpu_thread_policy\": \"dedicated\","},{"line_number":3,"context_line":"    \"nodes\": ["},{"line_number":4,"context_line":"        {"}],"source_content_type":"text/x-smarty","patch_set":20,"id":"9fdfeff1_f66a3f19","line":1,"updated":"2019-02-22 06:53:31.000000000","message":"you have two files....I guess this one can be deleted.","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"cpu_thread_policy\": \"dedicated\","},{"line_number":3,"context_line":"    \"nodes\": ["},{"line_number":4,"context_line":"        {"}],"source_content_type":"text/x-smarty","patch_set":20,"id":"9fdfeff1_7193b901","line":1,"in_reply_to":"9fdfeff1_f66a3f19","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"}],"doc/api_samples/os-server-topology/v2.71/servers-topology-resp.json.tpl":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"eb43d530ad8d4bb2fdf18587b4372856b03915ba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"cpu_thread_policy\": \"require\","},{"line_number":3,"context_line":"    \"nodes\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"cores\": 2,"}],"source_content_type":"text/x-smarty","patch_set":24,"id":"9fdfeff1_1f5fb30f","line":2,"updated":"2019-02-25 09:29:04.000000000","message":"I guess this is wrong copy, we need to remove this file.","commit_id":"7987d6f7f897db3bf5872b02fc5b5bb9780cc360"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"05a8bf42cda0db3baf75852ad70ecfe387f7da2d","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"cpu_thread_policy\": \"require\","},{"line_number":3,"context_line":"    \"nodes\": ["},{"line_number":4,"context_line":"        {"},{"line_number":5,"context_line":"            \"cores\": 2,"}],"source_content_type":"text/x-smarty","patch_set":24,"id":"9fdfeff1_9fee431f","line":2,"in_reply_to":"9fdfeff1_1f5fb30f","updated":"2019-02-25 09:35:25.000000000","message":"Done","commit_id":"7987d6f7f897db3bf5872b02fc5b5bb9780cc360"}],"doc/api_samples/os-server-topology/v2.72/servers-topology-resp.json":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":10,"context_line":"            \"host_numa_node\": 0,"},{"line_number":11,"context_line":"            \"memory_mb\": 1024,"},{"line_number":12,"context_line":"            \"pagesize_kb\": 4096,"},{"line_number":13,"context_line":"            \"siblings\": ["},{"line_number":14,"context_line":"                ["},{"line_number":15,"context_line":"                    0,"},{"line_number":16,"context_line":"                    1"}],"source_content_type":"application/json","patch_set":37,"id":"9fdfeff1_80708075","line":13,"updated":"2019-03-04 22:01:56.000000000","message":"as above this should really be a dict of set not a list of lists","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":10,"context_line":"            \"host_numa_node\": 0,"},{"line_number":11,"context_line":"            \"memory_mb\": 1024,"},{"line_number":12,"context_line":"            \"pagesize_kb\": 4096,"},{"line_number":13,"context_line":"            \"siblings\": ["},{"line_number":14,"context_line":"                ["},{"line_number":15,"context_line":"                    0,"},{"line_number":16,"context_line":"                    1"}],"source_content_type":"application/json","patch_set":37,"id":"9fdfeff1_97e683b0","line":13,"in_reply_to":"9fdfeff1_80708075","updated":"2019-03-05 01:32:08.000000000","message":"https://github.com/openstack/nova/blob/d528e11711156db7264bdb477a1f95eaf93dd592/nova/objects/numa.py#L56\n\nit\u0027s a list of sets. per the approved spec,I would like to keep this form.  fix me.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5f37471661eae0075be811cb1acad3b9535c1448","unresolved":false,"context_lines":[{"line_number":18,"context_line":"            ],"},{"line_number":19,"context_line":"            \"sockets\": 1,"},{"line_number":20,"context_line":"            \"threads\": 2,"},{"line_number":21,"context_line":"            \"vcpu_set\": ["},{"line_number":22,"context_line":"                0,"},{"line_number":23,"context_line":"                1"},{"line_number":24,"context_line":"            ]"}],"source_content_type":"application/json","patch_set":37,"id":"9fdfeff1_a06d849a","line":21,"updated":"2019-03-04 22:01:56.000000000","message":"as i said above this is redundent as it is just the kesy for cpu_pinnings above.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"819d929c9b3439f2ba710e0a9fb4288e7ac7c2ed","unresolved":false,"context_lines":[{"line_number":18,"context_line":"            ],"},{"line_number":19,"context_line":"            \"sockets\": 1,"},{"line_number":20,"context_line":"            \"threads\": 2,"},{"line_number":21,"context_line":"            \"vcpu_set\": ["},{"line_number":22,"context_line":"                0,"},{"line_number":23,"context_line":"                1"},{"line_number":24,"context_line":"            ]"}],"source_content_type":"application/json","patch_set":37,"id":"9fdfeff1_f77a6fee","line":21,"in_reply_to":"9fdfeff1_a06d849a","updated":"2019-03-05 01:32:08.000000000","message":"cpu pinnings only visible to admin. so keep this for the tenant user.","commit_id":"82b822befcb4c136fd47af1ae104591f721100bd"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds numa topology and pci_device to \"server/details\"."},{"line_number":168,"context_line":"\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_c79e8662","line":167,"range":{"start_line":167,"start_character":13,"end_line":167,"end_character":67},"updated":"2019-01-23 07:49:45.000000000","message":"by checking again your spec, you are proposing adding a new sub-resource, so I guess this is not correct ...","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds numa topology and pci_device to \"server/details\"."},{"line_number":168,"context_line":"\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_ad454f45","line":167,"range":{"start_line":167,"start_character":13,"end_line":167,"end_character":67},"in_reply_to":"9fdfeff1_c79e8662","updated":"2019-01-24 06:01:17.000000000","message":"sure. it should be subresources. this slips out this revision. thanks.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"16b8ce326cfb0c3be7a677a82570241eb6b9f414","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds numa topology to ``GET /servers/{server_id}/topology``."},{"line_number":168,"context_line":"\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_ce0d293f","line":167,"range":{"start_line":167,"start_character":13,"end_line":167,"end_character":72},"updated":"2019-01-24 07:48:51.000000000","message":"I think this could be: \"Add new API ``GET /servers/{server_id}/topology`` to show numa topology of the given server.","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"60c0efd38cf771b6f72982663fcd9431349de802","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds numa topology to ``GET /servers/{server_id}/topology``."},{"line_number":168,"context_line":"\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_854b6d29","line":167,"range":{"start_line":167,"start_character":13,"end_line":167,"end_character":72},"in_reply_to":"9fdfeff1_ce0d293f","updated":"2019-01-25 05:16:41.000000000","message":"Done","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"37253c5e716d53f25e16c5ab848647c038151a06","unresolved":false,"context_lines":[{"line_number":170,"context_line":"             ``GET /servers/detail``, ``GET /servers/{server_id}`` and"},{"line_number":171,"context_line":"             ``GET /os-services`` when there is a transient unavailability"},{"line_number":172,"context_line":"             condition in the deployment like an infrastructure failure."},{"line_number":173,"context_line":"    * 2.70"},{"line_number":174,"context_line":"           - Adds new API ``GET /servers/{server_id}/topology`` which show"},{"line_number":175,"context_line":"             NUMA topology of a given server."},{"line_number":176,"context_line":"\"\"\""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"9fdfeff1_71a23db0","line":174,"range":{"start_line":173,"start_character":10,"end_line":174,"end_character":12},"updated":"2019-02-18 09:59:17.000000000","message":"same line","commit_id":"9bb3a842373314497e7ffb1a59b7afb634644cf1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8f645c344fe0c4ee6709e8dd9e911b1e48eb8b13","unresolved":false,"context_lines":[{"line_number":170,"context_line":"             ``GET /servers/detail``, ``GET /servers/{server_id}`` and"},{"line_number":171,"context_line":"             ``GET /os-services`` when there is a transient unavailability"},{"line_number":172,"context_line":"             condition in the deployment like an infrastructure failure."},{"line_number":173,"context_line":"    * 2.70"},{"line_number":174,"context_line":"           - Adds new API ``GET /servers/{server_id}/topology`` which show"},{"line_number":175,"context_line":"             NUMA topology of a given server."},{"line_number":176,"context_line":"\"\"\""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9fdfeff1_686a1e1c","line":174,"range":{"start_line":173,"start_character":5,"end_line":174,"end_character":74},"updated":"2019-02-20 08:56:37.000000000","message":"same line","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"47ecb8ff75f455be98a66518d26fb5c60e994ca3","unresolved":false,"context_lines":[{"line_number":170,"context_line":"             ``GET /servers/detail``, ``GET /servers/{server_id}`` and"},{"line_number":171,"context_line":"             ``GET /os-services`` when there is a transient unavailability"},{"line_number":172,"context_line":"             condition in the deployment like an infrastructure failure."},{"line_number":173,"context_line":"    * 2.70"},{"line_number":174,"context_line":"           - Adds new API ``GET /servers/{server_id}/topology`` which show"},{"line_number":175,"context_line":"             NUMA topology of a given server."},{"line_number":176,"context_line":"\"\"\""},{"line_number":177,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"9fdfeff1_a707c281","line":174,"range":{"start_line":173,"start_character":5,"end_line":174,"end_character":74},"in_reply_to":"9fdfeff1_686a1e1c","updated":"2019-02-21 02:59:51.000000000","message":"Done","commit_id":"aa68a928a8a22b3af1ab5901bc3048a9925ff1f5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f23eaa0de91cf4633e730d0686dbc4a87acf8cee","unresolved":false,"context_lines":[{"line_number":183,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":184,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":185,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":186,"context_line":"_MAX_API_VERSION \u003d \"2.71\""},{"line_number":187,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"# Almost all proxy APIs which are related to network, images and baremetal"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_b4f493f2","line":186,"updated":"2019-02-24 23:25:07.000000000","message":"Functional tests are failing because you still need to update the versions API samples:\n\nhttps://github.com/openstack/nova/blob/master/doc/api_samples/versions/v21-version-get-resp.json\n\nhttps://github.com/openstack/nova/blob/master/doc/api_samples/versions/versions-get-resp.json","commit_id":"4b40c72b3a764d65bb1dd9f520402345ab61c332"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":188,"context_line":"             in request body to ``POST /servers``. Allow users to specify which"},{"line_number":189,"context_line":"             host/node they want their servers to land on and still be"},{"line_number":190,"context_line":"             validated by the scheduler."},{"line_number":191,"context_line":"    * 2.75 - Adds new API ``GET /servers/{server_id}/topology`` which show"},{"line_number":192,"context_line":"             NUMA topology of a given server."},{"line_number":193,"context_line":"\"\"\""},{"line_number":194,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_e95c7fee","line":191,"range":{"start_line":191,"start_character":70,"end_line":191,"end_character":74},"updated":"2019-07-29 15:07:37.000000000","message":"shows","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":211,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":212,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":213,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":214,"context_line":"_MAX_API_VERSION \u003d \"2.77\""},{"line_number":215,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"# Almost all proxy APIs which are related to network, images and baremetal"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_e8856eaf","line":214,"range":{"start_line":214,"start_character":21,"end_line":214,"end_character":24},"updated":"2019-08-28 11:09:46.000000000","message":"\"Specify availability_zone to unshelve https://review.opendev.org/#/c/663851\" used microversion 2.77, maybe you shuold rebased this patch and changes to microversion 2.78 after it was merged.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":211,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":212,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":213,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":214,"context_line":"_MAX_API_VERSION \u003d \"2.77\""},{"line_number":215,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":216,"context_line":""},{"line_number":217,"context_line":"# Almost all proxy APIs which are related to network, images and baremetal"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_bedfa236","line":214,"range":{"start_line":214,"start_character":21,"end_line":214,"end_character":24},"in_reply_to":"7faddb67_e8856eaf","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"}],"nova/api/openstack/api_version_request.py.orig":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd141036ae91d1b13219a40dc96df794f2fa9467","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"application/octet-stream","patch_set":33,"id":"9fdfeff1_f83925cf","line":1,"updated":"2019-03-01 21:56:42.000000000","message":"This file is a mistake and should be removed. Probably a rebase mistake.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 IBM Corp."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"application/octet-stream","patch_set":33,"id":"9fdfeff1_e4465651","line":1,"in_reply_to":"9fdfeff1_f83925cf","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"}],"nova/api/openstack/compute/extension_info.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bee6be39917f82c5a3882b3b5b00295c7022d69d","unresolved":false,"context_lines":[{"line_number":679,"context_line":"        \"namespace\": \"http://docs.openstack.org/compute/ext/fake_xml\","},{"line_number":680,"context_line":"        \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":681,"context_line":"    },"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    {"},{"line_number":684,"context_line":"        \"alias\": \"os-server-topology\","},{"line_number":685,"context_line":"        \"description\": \"Allow Admins to view server topology through \""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_75af12e3","line":682,"updated":"2019-01-25 09:15:31.000000000","message":"nit: Unnecessary blank line.","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4ee9b1eef3bd6fbc2836b0142de5b8af06fa19cd","unresolved":false,"context_lines":[{"line_number":679,"context_line":"        \"namespace\": \"http://docs.openstack.org/compute/ext/fake_xml\","},{"line_number":680,"context_line":"        \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":681,"context_line":"    },"},{"line_number":682,"context_line":""},{"line_number":683,"context_line":"    {"},{"line_number":684,"context_line":"        \"alias\": \"os-server-topology\","},{"line_number":685,"context_line":"        \"description\": \"Allow Admins to view server topology through \""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_dc37c3fe","line":682,"in_reply_to":"9fdfeff1_75af12e3","updated":"2019-01-30 08:21:10.000000000","message":"Done","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"715227bd677e2da8c6cbb52a9917aa335e4e3886","unresolved":false,"context_lines":[{"line_number":680,"context_line":"        \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":681,"context_line":"    },"},{"line_number":682,"context_line":"    {"},{"line_number":683,"context_line":"        \"alias\": \"os-server-topology\","},{"line_number":684,"context_line":"        \"description\": \"Allow Admins to view server topology through \""},{"line_number":685,"context_line":"                       \"server action.\","},{"line_number":686,"context_line":"        \"links\": [],"},{"line_number":687,"context_line":"        \"name\": \"ServerTopology\","},{"line_number":688,"context_line":"        \"namespace\": \"http://docs.openstack.org/compute/ext/fake_xml\","},{"line_number":689,"context_line":"        \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":690,"context_line":"    },"},{"line_number":691,"context_line":"    {"},{"line_number":692,"context_line":"        \"alias\": \"os-server-external-events\","},{"line_number":693,"context_line":"        \"description\": \"Server External Event Triggers.\","}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_7de67a4d","line":690,"range":{"start_line":683,"start_character":0,"end_line":690,"end_character":6},"updated":"2019-02-19 06:43:56.000000000","message":"you needn\u0027t change this list anymore, this is only for backward-compatible.","commit_id":"0c1957defaaf8c28a7eaf700ddc602088d0302ec"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4ec588c18de6672381da2bdec5ef0cfda5b54a0e","unresolved":false,"context_lines":[{"line_number":680,"context_line":"        \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":681,"context_line":"    },"},{"line_number":682,"context_line":"    {"},{"line_number":683,"context_line":"        \"alias\": \"os-server-topology\","},{"line_number":684,"context_line":"        \"description\": \"Allow Admins to view server topology through \""},{"line_number":685,"context_line":"                       \"server action.\","},{"line_number":686,"context_line":"        \"links\": [],"},{"line_number":687,"context_line":"        \"name\": \"ServerTopology\","},{"line_number":688,"context_line":"        \"namespace\": \"http://docs.openstack.org/compute/ext/fake_xml\","},{"line_number":689,"context_line":"        \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":690,"context_line":"    },"},{"line_number":691,"context_line":"    {"},{"line_number":692,"context_line":"        \"alias\": \"os-server-external-events\","},{"line_number":693,"context_line":"        \"description\": \"Server External Event Triggers.\","}],"source_content_type":"text/x-python","patch_set":14,"id":"9fdfeff1_5d2a962c","line":690,"range":{"start_line":683,"start_character":0,"end_line":690,"end_character":6},"in_reply_to":"9fdfeff1_7de67a4d","updated":"2019-02-19 06:59:45.000000000","message":"Done","commit_id":"0c1957defaaf8c28a7eaf700ddc602088d0302ec"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"37253c5e716d53f25e16c5ab848647c038151a06","unresolved":false,"context_lines":[{"line_number":861,"context_line":"Adds the ``volume_type`` parameter to ``block_device_mapping_v2``, which can"},{"line_number":862,"context_line":"be used to specify cinder ``volume_type`` when creating a server."},{"line_number":863,"context_line":""},{"line_number":864,"context_line":"2.68"},{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Remove support for forced live migration and evacuate server actions."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."}],"source_content_type":"text/x-rst","patch_set":13,"id":"9fdfeff1_11917152","line":869,"range":{"start_line":864,"start_character":0,"end_line":869,"end_character":65},"updated":"2019-02-18 09:59:17.000000000","message":"need to be updated.","commit_id":"9bb3a842373314497e7ffb1a59b7afb634644cf1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Remove support for forced live migration and evacuate server actions."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."}],"source_content_type":"text/x-rst","patch_set":16,"id":"9fdfeff1_c11c6479","line":868,"updated":"2019-02-19 08:46:10.000000000","message":"so...the latest version is 2.69?","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Remove support for forced live migration and evacuate server actions."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."}],"source_content_type":"text/x-rst","patch_set":16,"id":"9fdfeff1_37eeb7b4","line":868,"in_reply_to":"9fdfeff1_c11c6479","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"2.70"},{"line_number":884,"context_line":"----"},{"line_number":885,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."},{"line_number":886,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"9fdfeff1_560f8b87","line":885,"range":{"start_line":885,"start_character":11,"end_line":885,"end_character":23},"updated":"2019-02-22 06:53:31.000000000","message":"s/sub-resouces/sub-resource/","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"2.70"},{"line_number":884,"context_line":"----"},{"line_number":885,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."},{"line_number":886,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"9fdfeff1_360c4793","line":885,"range":{"start_line":885,"start_character":24,"end_line":885,"end_character":31},"updated":"2019-02-22 06:53:31.000000000","message":"topology","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"2.70"},{"line_number":884,"context_line":"----"},{"line_number":885,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."},{"line_number":886,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"9fdfeff1_d18b85bd","line":885,"range":{"start_line":885,"start_character":24,"end_line":885,"end_character":31},"in_reply_to":"9fdfeff1_360c4793","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":882,"context_line":""},{"line_number":883,"context_line":"2.70"},{"line_number":884,"context_line":"----"},{"line_number":885,"context_line":"Add server sub-resouces toplogy to show server NUMA informations."},{"line_number":886,"context_line":""}],"source_content_type":"text/x-rst","patch_set":20,"id":"9fdfeff1_71bc196c","line":885,"range":{"start_line":885,"start_character":11,"end_line":885,"end_character":23},"in_reply_to":"9fdfeff1_560f8b87","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"79305e20016d309f6420c94b24e77276c01f172e","unresolved":false,"context_lines":[{"line_number":912,"context_line":"2.72"},{"line_number":913,"context_line":"----"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"Add server sub-resource topology to show server NUMA informations."}],"source_content_type":"text/x-rst","patch_set":31,"id":"9fdfeff1_726edf2c","line":915,"range":{"start_line":915,"start_character":0,"end_line":915,"end_character":66},"updated":"2019-02-28 12:24:00.000000000","message":"Better still use this:\nAdds new API ``GET /servers/{server_id}/topology`` which show\n             NUMA topology of a given server.\n\nIt will be more easier to understand.","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bf690a0b8883241ac77ccbcbd04921fdee21c83c","unresolved":false,"context_lines":[{"line_number":912,"context_line":"2.72"},{"line_number":913,"context_line":"----"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"Add server sub-resource topology to show server NUMA informations."}],"source_content_type":"text/x-rst","patch_set":31,"id":"9fdfeff1_21dd516f","line":915,"range":{"start_line":915,"start_character":0,"end_line":915,"end_character":66},"in_reply_to":"9fdfeff1_726edf2c","updated":"2019-03-01 06:09:18.000000000","message":"Done","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":912,"context_line":"2.72"},{"line_number":913,"context_line":"----"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"Add new sub-resource topology API which show NUMA topology informations."},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"* ``GET /servers/{server_id}/topology``"}],"source_content_type":"text/x-rst","patch_set":33,"id":"9fdfeff1_58b871e7","line":915,"updated":"2019-03-01 22:35:42.000000000","message":"Would be good to mention the new policy rules controlling this as well.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":912,"context_line":"2.72"},{"line_number":913,"context_line":"----"},{"line_number":914,"context_line":""},{"line_number":915,"context_line":"Add new sub-resource topology API which show NUMA topology informations."},{"line_number":916,"context_line":""},{"line_number":917,"context_line":"* ``GET /servers/{server_id}/topology``"}],"source_content_type":"text/x-rst","patch_set":33,"id":"9fdfeff1_e7e0989a","line":915,"in_reply_to":"9fdfeff1_58b871e7","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":916,"context_line":""},{"line_number":917,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":918,"context_line":""},{"line_number":919,"context_line":"The following policy contronl information exposed by this API."},{"line_number":920,"context_line":"* os_compute_api:servers:topology:list - The API is avalible to"},{"line_number":921,"context_line":"  admin-or-onwer by default."},{"line_number":922,"context_line":"* os_compute_api:servers:topology:host_info:list - Keep NUMA host"}],"source_content_type":"text/x-rst","patch_set":36,"id":"9fdfeff1_03190779","line":919,"updated":"2019-03-04 13:58:38.000000000","message":"Add a blank line between line 919 and 920.","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":916,"context_line":""},{"line_number":917,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":918,"context_line":""},{"line_number":919,"context_line":"The following policy contronl information exposed by this API."},{"line_number":920,"context_line":"* os_compute_api:servers:topology:list - The API is avalible to"},{"line_number":921,"context_line":"  admin-or-onwer by default."},{"line_number":922,"context_line":"* os_compute_api:servers:topology:host_info:list - Keep NUMA host"}],"source_content_type":"text/x-rst","patch_set":36,"id":"9fdfeff1_be336ec4","line":919,"in_reply_to":"9fdfeff1_03190779","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":917,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":918,"context_line":""},{"line_number":919,"context_line":"The following policy contronl information exposed by this API."},{"line_number":920,"context_line":"* os_compute_api:servers:topology:list - The API is avalible to"},{"line_number":921,"context_line":"  admin-or-onwer by default."},{"line_number":922,"context_line":"* os_compute_api:servers:topology:host_info:list - Keep NUMA host"},{"line_number":923,"context_line":"  informations visible only to admin."}],"source_content_type":"text/x-rst","patch_set":36,"id":"9fdfeff1_23168b4b","line":920,"range":{"start_line":920,"start_character":52,"end_line":920,"end_character":60},"updated":"2019-03-04 13:58:38.000000000","message":"available","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":917,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":918,"context_line":""},{"line_number":919,"context_line":"The following policy contronl information exposed by this API."},{"line_number":920,"context_line":"* os_compute_api:servers:topology:list - The API is avalible to"},{"line_number":921,"context_line":"  admin-or-onwer by default."},{"line_number":922,"context_line":"* os_compute_api:servers:topology:host_info:list - Keep NUMA host"},{"line_number":923,"context_line":"  informations visible only to admin."}],"source_content_type":"text/x-rst","patch_set":36,"id":"9fdfeff1_7e3d068d","line":920,"range":{"start_line":920,"start_character":52,"end_line":920,"end_character":60},"in_reply_to":"9fdfeff1_23168b4b","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":960,"context_line":"2.75"},{"line_number":961,"context_line":"----"},{"line_number":962,"context_line":""},{"line_number":963,"context_line":"Add server sub-resource topology to show server NUMA informations."},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"7faddb67_496d9396","line":963,"range":{"start_line":963,"start_character":64,"end_line":963,"end_character":65},"updated":"2019-07-29 15:07:37.000000000","message":"Remove this \"s\".","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":960,"context_line":"2.75"},{"line_number":961,"context_line":"----"},{"line_number":962,"context_line":""},{"line_number":963,"context_line":"Add server sub-resource topology to show server NUMA informations."},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"7faddb67_a96e8793","line":963,"range":{"start_line":963,"start_character":24,"end_line":963,"end_character":32},"updated":"2019-07-29 15:07:37.000000000","message":"``topology``","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":960,"context_line":"2.75"},{"line_number":961,"context_line":"----"},{"line_number":962,"context_line":""},{"line_number":963,"context_line":"Add server sub-resource topology to show server NUMA informations."},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"7faddb67_36718b0d","line":963,"range":{"start_line":963,"start_character":64,"end_line":963,"end_character":65},"in_reply_to":"7faddb67_496d9396","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":960,"context_line":"2.75"},{"line_number":961,"context_line":"----"},{"line_number":962,"context_line":""},{"line_number":963,"context_line":"Add server sub-resource topology to show server NUMA informations."},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"7faddb67_b65edb73","line":963,"range":{"start_line":963,"start_character":24,"end_line":963,"end_character":32},"in_reply_to":"7faddb67_a96e8793","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":963,"context_line":"Add server sub-resource topology to show server NUMA informations."},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"7faddb67_290857d7","line":966,"updated":"2019-07-29 15:07:37.000000000","message":"Mention the policy rules as well.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":963,"context_line":"Add server sub-resource topology to show server NUMA informations."},{"line_number":964,"context_line":""},{"line_number":965,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":966,"context_line":""}],"source_content_type":"text/x-rst","patch_set":50,"id":"7faddb67_5655274f","line":966,"in_reply_to":"7faddb67_290857d7","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4589e79da585bfd1cb1c7e50ebdcdddc47c014ad","unresolved":false,"context_lines":[{"line_number":966,"context_line":""},{"line_number":967,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"* ``compute:server:topology:get``"},{"line_number":970,"context_line":"* ``compute:server:topology:host:get``"},{"line_number":971,"context_line":""},{"line_number":972,"context_line":""}],"source_content_type":"text/x-rst","patch_set":53,"id":"7faddb67_cd7a5ab9","line":969,"range":{"start_line":969,"start_character":28,"end_line":969,"end_character":31},"updated":"2019-08-07 14:05:43.000000000","message":"s/get/index","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9543285cc8b4c6963332dae4f23fd7cf38ea71de","unresolved":false,"context_lines":[{"line_number":966,"context_line":""},{"line_number":967,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"* ``compute:server:topology:get``"},{"line_number":970,"context_line":"* ``compute:server:topology:host:get``"},{"line_number":971,"context_line":""},{"line_number":972,"context_line":""}],"source_content_type":"text/x-rst","patch_set":53,"id":"7faddb67_6053076e","line":969,"range":{"start_line":969,"start_character":28,"end_line":969,"end_character":31},"in_reply_to":"7faddb67_cd7a5ab9","updated":"2019-08-09 05:48:29.000000000","message":"Done","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4589e79da585bfd1cb1c7e50ebdcdddc47c014ad","unresolved":false,"context_lines":[{"line_number":967,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"* ``compute:server:topology:get``"},{"line_number":970,"context_line":"* ``compute:server:topology:host:get``"},{"line_number":971,"context_line":""},{"line_number":972,"context_line":""}],"source_content_type":"text/x-rst","patch_set":53,"id":"7faddb67_6d49e68c","line":970,"range":{"start_line":970,"start_character":33,"end_line":970,"end_character":36},"updated":"2019-08-07 14:05:43.000000000","message":"s/get/index","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9543285cc8b4c6963332dae4f23fd7cf38ea71de","unresolved":false,"context_lines":[{"line_number":967,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":968,"context_line":""},{"line_number":969,"context_line":"* ``compute:server:topology:get``"},{"line_number":970,"context_line":"* ``compute:server:topology:host:get``"},{"line_number":971,"context_line":""},{"line_number":972,"context_line":""}],"source_content_type":"text/x-rst","patch_set":53,"id":"7faddb67_80508360","line":970,"range":{"start_line":970,"start_character":33,"end_line":970,"end_character":36},"in_reply_to":"7faddb67_6d49e68c","updated":"2019-08-09 05:48:29.000000000","message":"Done","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":988,"context_line":""},{"line_number":989,"context_line":"Add server sub-resource ``topology`` to show server NUMA information."},{"line_number":990,"context_line":""},{"line_number":991,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":994,"context_line":""}],"source_content_type":"text/x-rst","patch_set":57,"id":"7faddb67_80d42a21","line":991,"range":{"start_line":991,"start_character":2,"end_line":991,"end_character":3},"updated":"2019-08-22 14:31:09.000000000","message":"nit","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":988,"context_line":""},{"line_number":989,"context_line":"Add server sub-resource ``topology`` to show server NUMA information."},{"line_number":990,"context_line":""},{"line_number":991,"context_line":"*  ``GET /servers/{server_id}/topology``"},{"line_number":992,"context_line":""},{"line_number":993,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":994,"context_line":""}],"source_content_type":"text/x-rst","patch_set":57,"id":"7faddb67_231bf21c","line":991,"range":{"start_line":991,"start_character":2,"end_line":991,"end_character":3},"in_reply_to":"7faddb67_80d42a21","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"* ``compute:server:topology:index``"},{"line_number":1007,"context_line":"* ``compute:server:topology:host:index``"}],"source_content_type":"text/x-rst","patch_set":60,"id":"7faddb67_d234e0e1","line":1004,"range":{"start_line":1004,"start_character":18,"end_line":1004,"end_character":21},"updated":"2019-08-28 11:09:46.000000000","message":"add a?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"* ``compute:server:topology:index``"},{"line_number":1007,"context_line":"* ``compute:server:topology:host:index``"}],"source_content_type":"text/x-rst","patch_set":60,"id":"7faddb67_1eba76e0","line":1004,"range":{"start_line":1004,"start_character":18,"end_line":1004,"end_character":21},"in_reply_to":"7faddb67_41601836","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"* ``compute:server:topology:index``"},{"line_number":1007,"context_line":"* ``compute:server:topology:host:index``"}],"source_content_type":"text/x-rst","patch_set":60,"id":"7faddb67_5eeeaeed","line":1004,"range":{"start_line":1004,"start_character":18,"end_line":1004,"end_character":21},"in_reply_to":"7faddb67_d234e0e1","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":1001,"context_line":""},{"line_number":1002,"context_line":"* ``GET /servers/{server_id}/topology``"},{"line_number":1003,"context_line":""},{"line_number":1004,"context_line":"There will be also a new policy to control the default behavior:"},{"line_number":1005,"context_line":""},{"line_number":1006,"context_line":"* ``compute:server:topology:index``"},{"line_number":1007,"context_line":"* ``compute:server:topology:host:index``"}],"source_content_type":"text/x-rst","patch_set":60,"id":"7faddb67_41601836","line":1004,"range":{"start_line":1004,"start_character":18,"end_line":1004,"end_character":21},"in_reply_to":"7faddb67_d234e0e1","updated":"2019-08-28 15:05:13.000000000","message":"Not sure what you\u0027re suggesting but this reads correctly. I would reword slight though:\n\n  The default behavior is configurable using two new policies:","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":1010,"context_line":""},{"line_number":1011,"context_line":"* ``compute:server:topology:index``"},{"line_number":1012,"context_line":"* ``compute:server:topology:host:index``"},{"line_number":1013,"context_line":""}],"source_content_type":"text/x-rst","patch_set":61,"id":"7faddb67_f403f674","line":1013,"updated":"2019-08-29 10:13:33.000000000","message":"nit: extra newline","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":1010,"context_line":""},{"line_number":1011,"context_line":"* ``compute:server:topology:index``"},{"line_number":1012,"context_line":"* ``compute:server:topology:host:index``"},{"line_number":1013,"context_line":""}],"source_content_type":"text/x-rst","patch_set":61,"id":"7faddb67_cae9637f","line":1013,"in_reply_to":"7faddb67_f403f674","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"}],"nova/api/openstack/compute/routes.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":280,"context_line":"server_diagnostics_controller \u003d functools.partial(_create_controller,"},{"line_number":281,"context_line":"    server_diagnostics.ServerDiagnosticsController, [])"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"server_external_events_controller \u003d functools.partial(_create_controller,"},{"line_number":285,"context_line":"    server_external_events.ServerExternalEventsController, [])"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_67879a11","side":"PARENT","line":283,"updated":"2019-01-23 07:49:45.000000000","message":"unrelated","commit_id":"6e8a69daf14a15fe0b0633f21f4112f19487e9da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":280,"context_line":"server_diagnostics_controller \u003d functools.partial(_create_controller,"},{"line_number":281,"context_line":"    server_diagnostics.ServerDiagnosticsController, [])"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"server_external_events_controller \u003d functools.partial(_create_controller,"},{"line_number":285,"context_line":"    server_external_events.ServerExternalEventsController, [])"},{"line_number":286,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_93c98a79","side":"PARENT","line":283,"in_reply_to":"9fdfeff1_67879a11","updated":"2019-01-24 06:01:17.000000000","message":"Done","commit_id":"6e8a69daf14a15fe0b0633f21f4112f19487e9da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":836,"context_line":"        \u0027DELETE\u0027: [server_tags_controller, \u0027delete\u0027]"},{"line_number":837,"context_line":"    }),"},{"line_number":838,"context_line":"    (\u0027/servers/{server_id}/topology\u0027, {"},{"line_number":839,"context_line":"        \u0027GET\u0027: [server_topology_controller, \u0027index\u0027]"},{"line_number":840,"context_line":"    }),"},{"line_number":841,"context_line":")"},{"line_number":842,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_e911df05","line":839,"range":{"start_line":839,"start_character":45,"end_line":839,"end_character":50},"updated":"2019-07-29 15:07:37.000000000","message":"Why is this index rather than show? index implies listing something.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":836,"context_line":"        \u0027DELETE\u0027: [server_tags_controller, \u0027delete\u0027]"},{"line_number":837,"context_line":"    }),"},{"line_number":838,"context_line":"    (\u0027/servers/{server_id}/topology\u0027, {"},{"line_number":839,"context_line":"        \u0027GET\u0027: [server_topology_controller, \u0027index\u0027]"},{"line_number":840,"context_line":"    }),"},{"line_number":841,"context_line":")"},{"line_number":842,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_96b71f87","line":839,"range":{"start_line":839,"start_character":45,"end_line":839,"end_character":50},"in_reply_to":"7faddb67_e911df05","updated":"2019-07-30 07:49:44.000000000","message":"I refer to ``diagnostics``. But if you insist ``show`` is better I\u0027m also ok with it.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"}],"nova/api/openstack/compute/server_topology.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @wsgi.expected_errors((400, 404, 409, 501))"},{"line_number":36,"context_line":"    def index(self, req, server_id):"},{"line_number":37,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":38,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_87b87ec8","line":36,"range":{"start_line":36,"start_character":9,"end_line":36,"end_character":13},"updated":"2019-01-23 07:49:45.000000000","message":"a question here, should this be show()? or index is correct or it doesn\u0027t matter?","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":33,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @wsgi.expected_errors((400, 404, 409, 501))"},{"line_number":36,"context_line":"    def index(self, req, server_id):"},{"line_number":37,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":38,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_13ab5a89","line":36,"range":{"start_line":36,"start_character":9,"end_line":36,"end_character":13},"in_reply_to":"9fdfeff1_87b87ec8","updated":"2019-01-24 06:01:17.000000000","message":"this is pretty much like diagnostic API.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            if api_version_request.is_supported(req, min_version\u003d\u00272.68\u0027):"},{"line_number":44,"context_line":"                return self._get_numa_topology(context, instance)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":47,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_a7e022ce","line":48,"range":{"start_line":46,"start_character":8,"end_line":48,"end_character":46},"updated":"2019-01-23 07:49:45.000000000","message":"on what circumstances will this error occour?","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            if api_version_request.is_supported(req, min_version\u003d\u00272.68\u0027):"},{"line_number":44,"context_line":"                return self._get_numa_topology(context, instance)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":47,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_d394f246","line":48,"range":{"start_line":46,"start_character":8,"end_line":48,"end_character":46},"in_reply_to":"9fdfeff1_a7e022ce","updated":"2019-01-24 06:01:17.000000000","message":"we query an Instance, this should be a fuse.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":47,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"},{"line_number":52,"context_line":"            common.raise_feature_not_supported()"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_073fae25","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":72},"updated":"2019-01-23 07:49:45.000000000","message":"this too..","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"},{"line_number":52,"context_line":"            common.raise_feature_not_supported()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":55,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_872b9ee9","line":52,"range":{"start_line":51,"start_character":8,"end_line":52,"end_character":48},"updated":"2019-01-23 07:49:45.000000000","message":"this too...","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"},{"line_number":52,"context_line":"            common.raise_feature_not_supported()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":55,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_538a421b","line":52,"range":{"start_line":51,"start_character":8,"end_line":52,"end_character":48},"in_reply_to":"9fdfeff1_872b9ee9","updated":"2019-01-24 06:01:17.000000000","message":"this one, should be a fuse for query an old compute host? refer to diagnostic subresource. I think had this is better.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":57,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":58,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":59,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":60,"context_line":"            numa_topology \u003d None"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        topo \u003d {}"},{"line_number":63,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_a717c2a3","line":60,"range":{"start_line":59,"start_character":8,"end_line":60,"end_character":32},"updated":"2019-01-23 07:49:45.000000000","message":"I think the only possible error raised will be this?","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":57,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":58,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":59,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":60,"context_line":"            numa_topology \u003d None"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        topo \u003d {}"},{"line_number":63,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_939e6a61","line":60,"range":{"start_line":59,"start_character":8,"end_line":60,"end_character":32},"in_reply_to":"9fdfeff1_a717c2a3","updated":"2019-01-24 06:01:17.000000000","message":"when we do not request NUMA, it\u0027s None, but it\u0027s not an exception.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a15fd1ea337e85922d8debab64b42a65c78e53f1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(ServerTopologyController, self).__init__(*args, **kwargs)"},{"line_number":33,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @wsgi.expected_errors((400, 404, 409, 501))"},{"line_number":36,"context_line":"    def index(self, req, server_id):"},{"line_number":37,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":38,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_ef5fb86f","line":35,"range":{"start_line":35,"start_character":3,"end_line":35,"end_character":47},"updated":"2019-01-25 01:29:51.000000000","message":"We should add microversion control at here.","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"60c0efd38cf771b6f72982663fcd9431349de802","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(ServerTopologyController, self).__init__(*args, **kwargs)"},{"line_number":33,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    @wsgi.expected_errors((400, 404, 409, 501))"},{"line_number":36,"context_line":"    def index(self, req, server_id):"},{"line_number":37,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":38,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_c5cc15be","line":35,"range":{"start_line":35,"start_character":3,"end_line":35,"end_character":47},"in_reply_to":"9fdfeff1_ef5fb86f","updated":"2019-01-25 05:16:41.000000000","message":"Done","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"a15fd1ea337e85922d8debab64b42a65c78e53f1","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            if api_version_request.is_supported(req, min_version\u003d\u00272.68\u0027):"},{"line_number":44,"context_line":"                return self._get_numa_topology(context, instance)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_8f562c5c","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":73},"updated":"2019-01-25 01:29:51.000000000","message":"this is wrong place to add version control","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"60c0efd38cf771b6f72982663fcd9431349de802","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            if api_version_request.is_supported(req, min_version\u003d\u00272.68\u0027):"},{"line_number":44,"context_line":"                return self._get_numa_topology(context, instance)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_e5cfd9ad","line":43,"range":{"start_line":43,"start_character":12,"end_line":43,"end_character":73},"in_reply_to":"9fdfeff1_8f562c5c","updated":"2019-01-25 05:16:41.000000000","message":"Done","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"16b8ce326cfb0c3be7a677a82570241eb6b9f414","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            if api_version_request.is_supported(req, min_version\u003d\u00272.68\u0027):"},{"line_number":44,"context_line":"                return self._get_numa_topology(context, instance)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":47,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"},{"line_number":52,"context_line":"            common.raise_feature_not_supported()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":55,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_620c513b","line":52,"range":{"start_line":46,"start_character":8,"end_line":52,"end_character":48},"updated":"2019-01-24 07:48:51.000000000","message":"still, I don\u0027t see how these errors will be raised.","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"60c0efd38cf771b6f72982663fcd9431349de802","unresolved":false,"context_lines":[{"line_number":43,"context_line":"            if api_version_request.is_supported(req, min_version\u003d\u00272.68\u0027):"},{"line_number":44,"context_line":"                return self._get_numa_topology(context, instance)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":47,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":48,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":49,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":50,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":51,"context_line":"        except NotImplementedError:"},{"line_number":52,"context_line":"            common.raise_feature_not_supported()"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":55,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_451d8564","line":52,"range":{"start_line":46,"start_character":8,"end_line":52,"end_character":48},"in_reply_to":"9fdfeff1_620c513b","updated":"2019-01-25 05:16:41.000000000","message":"I don\u0027t know either, I just assume diagnostic had this for a reason. alex, could you please explain that?","commit_id":"5e82dda0c66b017b38b44038a780cabee79606f1"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"20ac8471db3fa1419e9a3bc30916b1bb7ec5a301","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":"        except NotImplementedError:"},{"line_number":51,"context_line":"            common.raise_feature_not_supported()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":54,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_56ca196d","line":51,"range":{"start_line":45,"start_character":8,"end_line":51,"end_character":48},"updated":"2019-01-25 07:29:10.000000000","message":"... Still, I cannot see where these exception could be raised and what scenarios did they reflect...","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4ee9b1eef3bd6fbc2836b0142de5b8af06fa19cd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":"        except NotImplementedError:"},{"line_number":51,"context_line":"            common.raise_feature_not_supported()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":54,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_7cb5777d","line":51,"range":{"start_line":45,"start_character":8,"end_line":51,"end_character":48},"in_reply_to":"9fdfeff1_56ca196d","updated":"2019-01-30 08:21:10.000000000","message":"i don\u0027t know if this correct:\nseems from API call compute api, we never should assume the compute api implement this call. this is rather common piece of code in so many API exception handling logic.\n\nit\u0027s likely correct, or other API do so unnecessary thing.","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"e5cd4e3b5f12b64c496d0317ef17e69e9f819a35","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":"        except NotImplementedError:"},{"line_number":51,"context_line":"            common.raise_feature_not_supported()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":54,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_b5b6daf9","line":51,"range":{"start_line":45,"start_character":8,"end_line":51,"end_character":48},"in_reply_to":"9fdfeff1_56ca196d","updated":"2019-01-25 09:28:22.000000000","message":"yeah, seems no place to find this error\n\nhttps://specs.openstack.org/openstack/api-wg/guidelines/http/response-codes.html#use-of-501-not-implemented\nindicated we should not use 501 here...","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4ee9b1eef3bd6fbc2836b0142de5b8af06fa19cd","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":"        except NotImplementedError:"},{"line_number":51,"context_line":"            common.raise_feature_not_supported()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":54,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_5c5e7344","line":51,"range":{"start_line":45,"start_character":8,"end_line":51,"end_character":48},"in_reply_to":"9fdfeff1_b5b6daf9","updated":"2019-01-30 08:21:10.000000000","message":"we not use 501 here. that 501 seems mean we might caught the compute node sent us 501. \n\nthanks.","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"7b44ffc8405a86cf349a6fd057eb5014d7e88a96","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":"        except NotImplementedError:"},{"line_number":51,"context_line":"            common.raise_feature_not_supported()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":54,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_c72cd003","line":51,"range":{"start_line":45,"start_character":8,"end_line":51,"end_character":48},"updated":"2019-01-30 08:30:54.000000000","message":"No, I don\u0027t think so, we usually raise the NotImplementedError in virt drivers since the capability of virt drivers are not the same. In your case, it is just get something from the DB, so this will never happen. And for invalid state error, in what kind of case will will we have this? similar to instance not ready case.","commit_id":"8fd929279d7c995996aaeb46d366104cf636c647"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"3207fd625cfc2629676f6809404baccf426cbe38","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":"        except NotImplementedError:"},{"line_number":51,"context_line":"            common.raise_feature_not_supported()"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":54,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_233d7ddc","line":51,"range":{"start_line":45,"start_character":8,"end_line":51,"end_character":48},"in_reply_to":"9fdfeff1_c72cd003","updated":"2019-01-31 07:06:39.000000000","message":"thanks, this convinced me.","commit_id":"8fd929279d7c995996aaeb46d366104cf636c647"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"3ac5eeb0e7d394d37447ae181c9bef54c6ea4d07","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @wsgi.Controller.api_version(\"2.68\")"},{"line_number":35,"context_line":"    @wsgi.expected_errors((400, 404, 409, 501))"},{"line_number":36,"context_line":"    def index(self, req, server_id):"},{"line_number":37,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":38,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_5953ce17","line":35,"range":{"start_line":35,"start_character":37,"end_line":35,"end_character":45},"updated":"2019-01-31 07:35:01.000000000","message":"so these should be removed.","commit_id":"12884eeb8884a955860767df7f168356ebc0ea95"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"706955ef687187e5df5a6e0bcee35652946148be","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    @wsgi.Controller.api_version(\"2.68\")"},{"line_number":35,"context_line":"    @wsgi.expected_errors((400, 404, 409, 501))"},{"line_number":36,"context_line":"    def index(self, req, server_id):"},{"line_number":37,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":38,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_aa14eca0","line":35,"range":{"start_line":35,"start_character":37,"end_line":35,"end_character":45},"in_reply_to":"9fdfeff1_5953ce17","updated":"2019-02-14 08:25:26.000000000","message":"Done","commit_id":"12884eeb8884a955860767df7f168356ebc0ea95"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"3ac5eeb0e7d394d37447ae181c9bef54c6ea4d07","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":52,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_7949f25d","line":49,"range":{"start_line":45,"start_character":8,"end_line":49,"end_character":72},"updated":"2019-01-31 07:35:01.000000000","message":"still in which cases will these be raised? I thought I commented pretty clear about these too in the last patchset, I don\u0027t see how these cases will occour.","commit_id":"12884eeb8884a955860767df7f168356ebc0ea95"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bfe63b3e62d439f0ae254551ffec59434f0e5bb3","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":52,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_47df5268","line":49,"range":{"start_line":45,"start_character":8,"end_line":49,"end_character":72},"in_reply_to":"9fdfeff1_7949f25d","updated":"2019-02-01 09:01:42.000000000","message":"thanks for the review. I\u0027m going to address them after the holiday, thanks again.","commit_id":"12884eeb8884a955860767df7f168356ebc0ea95"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class ServerTopologyController(wsgi.Controller):"},{"line_number":28,"context_line":"    _view_builder_class \u003d server_diagnostics.ViewBuilder"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":31,"context_line":"        super(ServerTopologyController, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_e14c08ca","line":28,"range":{"start_line":28,"start_character":4,"end_line":28,"end_character":56},"updated":"2019-02-19 08:46:10.000000000","message":"you don\u0027t need this viewbuilder","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class ServerTopologyController(wsgi.Controller):"},{"line_number":28,"context_line":"    _view_builder_class \u003d server_diagnostics.ViewBuilder"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def __init__(self, *args, **kwargs):"},{"line_number":31,"context_line":"        super(ServerTopologyController, self).__init__(*args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_d7116bb1","line":28,"range":{"start_line":28,"start_character":4,"end_line":28,"end_character":56},"in_reply_to":"9fdfeff1_e14c08ca","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_a1c4c00f","line":47,"range":{"start_line":45,"start_character":8,"end_line":47,"end_character":46},"updated":"2019-02-19 08:46:10.000000000","message":"I don\u0027t think you will get this exception","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_970be37b","line":47,"range":{"start_line":45,"start_character":8,"end_line":47,"end_character":46},"in_reply_to":"9fdfeff1_641fc65b","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_f716efa7","line":47,"range":{"start_line":45,"start_character":8,"end_line":47,"end_character":46},"in_reply_to":"9fdfeff1_a1c4c00f","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"6e8f63a8caec93d54c92926a526f2cc09d177d64","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        try:"},{"line_number":43,"context_line":"            return self._get_numa_topology(context, instance)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_641fc65b","line":47,"range":{"start_line":45,"start_character":8,"end_line":47,"end_character":46},"in_reply_to":"9fdfeff1_a1c4c00f","updated":"2019-02-19 08:49:12.000000000","message":"Yes, I have mentioned this quite a lot of time but he did not change...","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":52,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_61ced82e","line":49,"range":{"start_line":48,"start_character":8,"end_line":49,"end_character":72},"updated":"2019-02-19 08:46:10.000000000","message":"this exception already catched in the method common.get_instance","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":46,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":47,"context_line":"                    \u0027get_topology\u0027, server_id)"},{"line_number":48,"context_line":"        except exception.InstanceNotReady as e:"},{"line_number":49,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":52,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_b71067aa","line":49,"range":{"start_line":48,"start_character":8,"end_line":49,"end_character":72},"in_reply_to":"9fdfeff1_61ced82e","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":54,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":55,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":56,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":57,"context_line":"            numa_topology \u003d None"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_a1eda08f","line":55,"range":{"start_line":55,"start_character":62,"end_line":55,"end_character":78},"updated":"2019-02-19 08:46:10.000000000","message":"instance.uuid","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        try:"},{"line_number":53,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":54,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":55,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":56,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":57,"context_line":"            numa_topology \u003d None"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_57257b09","line":55,"range":{"start_line":55,"start_character":62,"end_line":55,"end_character":78},"in_reply_to":"9fdfeff1_a1eda08f","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":55,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":56,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":57,"context_line":"            numa_topology \u003d None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        topo \u003d {}"},{"line_number":60,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_2101b03a","line":57,"range":{"start_line":57,"start_character":12,"end_line":57,"end_character":32},"updated":"2019-02-19 08:46:10.000000000","message":"you can return {} directly.","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":54,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":55,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":56,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":57,"context_line":"            numa_topology \u003d None"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"        topo \u003d {}"},{"line_number":60,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_371c77c0","line":57,"range":{"start_line":57,"start_character":12,"end_line":57,"end_character":32},"in_reply_to":"9fdfeff1_2101b03a","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        topo \u003d {}"},{"line_number":60,"context_line":"        cells \u003d []"},{"line_number":61,"context_line":"        cpu_thread_policy \u003d None"},{"line_number":62,"context_line":"        if numa_topology is not None:"},{"line_number":63,"context_line":"            # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":64,"context_line":"            for ce in numa_topology.cells:"},{"line_number":65,"context_line":"                cell \u003d {}"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_01f82c47","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":37},"updated":"2019-02-19 08:46:10.000000000","message":"if you return {} at line 57, then you needn\u0027t this if condition.","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":59,"context_line":"        topo \u003d {}"},{"line_number":60,"context_line":"        cells \u003d []"},{"line_number":61,"context_line":"        cpu_thread_policy \u003d None"},{"line_number":62,"context_line":"        if numa_topology is not None:"},{"line_number":63,"context_line":"            # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":64,"context_line":"            for ce in numa_topology.cells:"},{"line_number":65,"context_line":"                cell \u003d {}"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_f77b4ff1","line":62,"range":{"start_line":62,"start_character":8,"end_line":62,"end_character":37},"in_reply_to":"9fdfeff1_01f82c47","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":64,"context_line":"            for ce in numa_topology.cells:"},{"line_number":65,"context_line":"                cell \u003d {}"},{"line_number":66,"context_line":"                if bool(ce.cpuset):"},{"line_number":67,"context_line":"                    cell[\u0027cpuset\u0027] \u003d ce.cpuset"},{"line_number":68,"context_line":"                if bool(ce.siblings):"},{"line_number":69,"context_line":"                        cell[\u0027siblings\u0027] \u003d ce.siblings"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_a1bb6073","line":66,"range":{"start_line":66,"start_character":16,"end_line":66,"end_character":35},"updated":"2019-02-19 08:46:10.000000000","message":"you needn\u0027t bool()","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":64,"context_line":"            for ce in numa_topology.cells:"},{"line_number":65,"context_line":"                cell \u003d {}"},{"line_number":66,"context_line":"                if bool(ce.cpuset):"},{"line_number":67,"context_line":"                    cell[\u0027cpuset\u0027] \u003d ce.cpuset"},{"line_number":68,"context_line":"                if bool(ce.siblings):"},{"line_number":69,"context_line":"                        cell[\u0027siblings\u0027] \u003d ce.siblings"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_9780c3c1","line":66,"range":{"start_line":66,"start_character":16,"end_line":66,"end_character":35},"in_reply_to":"9fdfeff1_a1bb6073","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                    cell[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":77,"context_line":"                    cell[\u0027threads\u0027] \u003d ce.cpu_topology.threads"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                topo_policy \u003d st_policies.BASE_POLICY_NAME %\\"},{"line_number":80,"context_line":"                                    \u0027index:host_info\u0027"},{"line_number":81,"context_line":"                show_host_info \u003d context.can(topo_policy, fatal\u003dFalse)"},{"line_number":82,"context_line":"                if show_host_info:"},{"line_number":83,"context_line":"                    cell[\u0027numa_node\u0027] \u003d ce.id"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_616a58ee","line":80,"range":{"start_line":79,"start_character":30,"end_line":80,"end_character":53},"updated":"2019-02-19 08:46:10.000000000","message":"you can use \u0027()\u0027 for wrap the line, like\n(st_policies.BASE_POLICY_NAME %\n     \u0027index:host_info\u0027)","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                    cell[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":77,"context_line":"                    cell[\u0027threads\u0027] \u003d ce.cpu_topology.threads"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                topo_policy \u003d st_policies.BASE_POLICY_NAME %\\"},{"line_number":80,"context_line":"                                    \u0027index:host_info\u0027"},{"line_number":81,"context_line":"                show_host_info \u003d context.can(topo_policy, fatal\u003dFalse)"},{"line_number":82,"context_line":"                if show_host_info:"},{"line_number":83,"context_line":"                    cell[\u0027numa_node\u0027] \u003d ce.id"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_77675f53","line":80,"range":{"start_line":79,"start_character":30,"end_line":80,"end_character":53},"in_reply_to":"9fdfeff1_616a58ee","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                topo_policy \u003d st_policies.BASE_POLICY_NAME %\\"},{"line_number":80,"context_line":"                                    \u0027index:host_info\u0027"},{"line_number":81,"context_line":"                show_host_info \u003d context.can(topo_policy, fatal\u003dFalse)"},{"line_number":82,"context_line":"                if show_host_info:"},{"line_number":83,"context_line":"                    cell[\u0027numa_node\u0027] \u003d ce.id"},{"line_number":84,"context_line":"                    if bool(ce.cpu_pinning):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_c14ea495","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":70},"updated":"2019-02-19 08:46:10.000000000","message":"I prefer to move this to line 41, then we pass the show_host_info param down there.","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"                topo_policy \u003d st_policies.BASE_POLICY_NAME %\\"},{"line_number":80,"context_line":"                                    \u0027index:host_info\u0027"},{"line_number":81,"context_line":"                show_host_info \u003d context.can(topo_policy, fatal\u003dFalse)"},{"line_number":82,"context_line":"                if show_host_info:"},{"line_number":83,"context_line":"                    cell[\u0027numa_node\u0027] \u003d ce.id"},{"line_number":84,"context_line":"                    if bool(ce.cpu_pinning):"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_57d81bef","line":81,"range":{"start_line":81,"start_character":16,"end_line":81,"end_character":70},"in_reply_to":"9fdfeff1_c14ea495","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8da6b4a66ecffa2f5ce76f923bfb76b599cec6a5","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                    \u0027index:host_info\u0027"},{"line_number":81,"context_line":"                show_host_info \u003d context.can(topo_policy, fatal\u003dFalse)"},{"line_number":82,"context_line":"                if show_host_info:"},{"line_number":83,"context_line":"                    cell[\u0027numa_node\u0027] \u003d ce.id"},{"line_number":84,"context_line":"                    if bool(ce.cpu_pinning):"},{"line_number":85,"context_line":"                        cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_c1330413","line":83,"range":{"start_line":83,"start_character":26,"end_line":83,"end_character":35},"updated":"2019-02-19 08:46:10.000000000","message":"this should be \u0027host_numa_node\u0027","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                                    \u0027index:host_info\u0027"},{"line_number":81,"context_line":"                show_host_info \u003d context.can(topo_policy, fatal\u003dFalse)"},{"line_number":82,"context_line":"                if show_host_info:"},{"line_number":83,"context_line":"                    cell[\u0027numa_node\u0027] \u003d ce.id"},{"line_number":84,"context_line":"                    if bool(ce.cpu_pinning):"},{"line_number":85,"context_line":"                        cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":86,"context_line":""}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_5701fb38","line":83,"range":{"start_line":83,"start_character":26,"end_line":83,"end_character":35},"in_reply_to":"9fdfeff1_c1330413","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        super(ServerTopologyController, self).__init__(*args, **kwargs)"},{"line_number":28,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsgi.Controller.api_version(\"2.70\")"},{"line_number":31,"context_line":"    def index(self, req, server_id):"},{"line_number":32,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":33,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_96073382","line":30,"updated":"2019-02-22 06:53:31.000000000","message":"you also need the expected_error decorator","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        super(ServerTopologyController, self).__init__(*args, **kwargs)"},{"line_number":28,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsgi.Controller.api_version(\"2.70\")"},{"line_number":31,"context_line":"    def index(self, req, server_id):"},{"line_number":32,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":33,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f15d6948","line":30,"in_reply_to":"9fdfeff1_96073382","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _get_numa_topology(self, context, instance, show_host_info):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":48,"context_line":"            return {}"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_d6d37b00","line":45,"range":{"start_line":45,"start_character":12,"end_line":45,"end_character":25},"updated":"2019-02-22 06:53:31.000000000","message":"we need to check whether numa_topology is None. From the code https://github.com/openstack/nova/blob/master/nova/objects/instance_numa_topology.py#L201, there is chance to return None.\n\nAlso please add unittest case for this","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    def _get_numa_topology(self, context, instance, show_host_info):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":48,"context_line":"            return {}"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f12249ba","line":45,"range":{"start_line":45,"start_character":12,"end_line":45,"end_character":25},"in_reply_to":"9fdfeff1_d6d37b00","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            cell \u003d {}"},{"line_number":56,"context_line":"            if ce.cpuset:"},{"line_number":57,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":58,"context_line":"            if bool(ce.siblings):"},{"line_number":59,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":60,"context_line":"            if bool(ce.memory):"},{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_3697673d","line":58,"range":{"start_line":58,"start_character":15,"end_line":58,"end_character":31},"updated":"2019-02-22 06:53:31.000000000","message":"we needn\u0027t bool()","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            cell \u003d {}"},{"line_number":56,"context_line":"            if ce.cpuset:"},{"line_number":57,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":58,"context_line":"            if bool(ce.siblings):"},{"line_number":59,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":60,"context_line":"            if bool(ce.memory):"},{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_b12cc1ac","line":58,"range":{"start_line":58,"start_character":15,"end_line":58,"end_character":31},"in_reply_to":"9fdfeff1_3697673d","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":58,"context_line":"            if bool(ce.siblings):"},{"line_number":59,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":60,"context_line":"            if bool(ce.memory):"},{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":62,"context_line":"            if bool(ce.pagesize):"},{"line_number":63,"context_line":"                cell[\u0027pagesize_kb\u0027] \u003d ce.pagesize"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_569a2b62","line":60,"range":{"start_line":60,"start_character":15,"end_line":60,"end_character":31},"updated":"2019-02-22 06:53:31.000000000","message":"ditto","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":58,"context_line":"            if bool(ce.siblings):"},{"line_number":59,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":60,"context_line":"            if bool(ce.memory):"},{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":62,"context_line":"            if bool(ce.pagesize):"},{"line_number":63,"context_line":"                cell[\u0027pagesize_kb\u0027] \u003d ce.pagesize"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_d12705c7","line":60,"range":{"start_line":60,"start_character":15,"end_line":60,"end_character":31},"in_reply_to":"9fdfeff1_569a2b62","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":60,"context_line":"            if bool(ce.memory):"},{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":62,"context_line":"            if bool(ce.pagesize):"},{"line_number":63,"context_line":"                cell[\u0027pagesize_kb\u0027] \u003d ce.pagesize"},{"line_number":64,"context_line":"            if bool(ce.cpu_topology):"},{"line_number":65,"context_line":"                cell[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f6a0ff93","line":62,"range":{"start_line":62,"start_character":15,"end_line":62,"end_character":32},"updated":"2019-02-22 06:53:31.000000000","message":"ditto","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":60,"context_line":"            if bool(ce.memory):"},{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":62,"context_line":"            if bool(ce.pagesize):"},{"line_number":63,"context_line":"                cell[\u0027pagesize_kb\u0027] \u003d ce.pagesize"},{"line_number":64,"context_line":"            if bool(ce.cpu_topology):"},{"line_number":65,"context_line":"                cell[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_911bbd7e","line":62,"range":{"start_line":62,"start_character":15,"end_line":62,"end_character":32},"in_reply_to":"9fdfeff1_f6a0ff93","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":62,"context_line":"            if bool(ce.pagesize):"},{"line_number":63,"context_line":"                cell[\u0027pagesize_kb\u0027] \u003d ce.pagesize"},{"line_number":64,"context_line":"            if bool(ce.cpu_topology):"},{"line_number":65,"context_line":"                cell[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"},{"line_number":66,"context_line":"                cell[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":67,"context_line":"                cell[\u0027threads\u0027] \u003d ce.cpu_topology.threads"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_169ca359","line":64,"range":{"start_line":64,"start_character":15,"end_line":64,"end_character":37},"updated":"2019-02-22 06:53:31.000000000","message":"ditto","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":61,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":62,"context_line":"            if bool(ce.pagesize):"},{"line_number":63,"context_line":"                cell[\u0027pagesize_kb\u0027] \u003d ce.pagesize"},{"line_number":64,"context_line":"            if bool(ce.cpu_topology):"},{"line_number":65,"context_line":"                cell[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"},{"line_number":66,"context_line":"                cell[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":67,"context_line":"                cell[\u0027threads\u0027] \u003d ce.cpu_topology.threads"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_31121164","line":64,"range":{"start_line":64,"start_character":15,"end_line":64,"end_character":37},"in_reply_to":"9fdfeff1_169ca359","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"            if show_host_info:"},{"line_number":70,"context_line":"                cell[\u0027host_numa_node\u0027] \u003d ce.id"},{"line_number":71,"context_line":"                if bool(ce.cpu_pinning):"},{"line_number":72,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            if bool(ce.cpu_thread_policy):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_96b973cc","line":71,"range":{"start_line":71,"start_character":19,"end_line":71,"end_character":40},"updated":"2019-02-22 06:53:31.000000000","message":"ditto","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":68,"context_line":""},{"line_number":69,"context_line":"            if show_host_info:"},{"line_number":70,"context_line":"                cell[\u0027host_numa_node\u0027] \u003d ce.id"},{"line_number":71,"context_line":"                if bool(ce.cpu_pinning):"},{"line_number":72,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            if bool(ce.cpu_thread_policy):"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f10b2928","line":71,"range":{"start_line":71,"start_character":19,"end_line":71,"end_character":40},"in_reply_to":"9fdfeff1_96b973cc","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                if bool(ce.cpu_pinning):"},{"line_number":72,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            if bool(ce.cpu_thread_policy):"},{"line_number":75,"context_line":"                cpu_thread_policy \u003d ce.cpu_thread_policy"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            cells.append(cell)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_36b0c7dd","line":74,"range":{"start_line":74,"start_character":15,"end_line":74,"end_character":42},"updated":"2019-02-22 06:53:31.000000000","message":"ditto","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":71,"context_line":"                if bool(ce.cpu_pinning):"},{"line_number":72,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"            if bool(ce.cpu_thread_policy):"},{"line_number":75,"context_line":"                cpu_thread_policy \u003d ce.cpu_thread_policy"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"            cells.append(cell)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_1107cd1f","line":74,"range":{"start_line":74,"start_character":15,"end_line":74,"end_character":42},"in_reply_to":"9fdfeff1_36b0c7dd","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cells.append(cell)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        topo[\u0027nodes\u0027] \u003d cells"},{"line_number":80,"context_line":"        topo[\u0027cpu_thread_policy\u0027] \u003d cpu_thread_policy"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        return topo"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_b6c35738","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":33},"updated":"2019-02-22 06:53:31.000000000","message":"why we didn\u0027t include a field for cpu policy?","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            cells.append(cell)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"        topo[\u0027nodes\u0027] \u003d cells"},{"line_number":80,"context_line":"        topo[\u0027cpu_thread_policy\u0027] \u003d cpu_thread_policy"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"        return topo"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_8c29648a","line":80,"range":{"start_line":80,"start_character":8,"end_line":80,"end_character":33},"in_reply_to":"9fdfeff1_b6c35738","updated":"2019-02-22 10:22:42.000000000","message":"align with the spec, we don\u0027t have that for cpu policy, seems that one gonna obsoleted soon?.","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e32d964f19bf3bad5e956354047a0e70509adcaf","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsgi.Controller.api_version(\"2.71\")"},{"line_number":31,"context_line":"    @wsgi.expected_errors(())"},{"line_number":32,"context_line":"    def index(self, req, server_id):"},{"line_number":33,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":34,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_979dd10b","line":31,"updated":"2019-02-25 03:49:07.000000000","message":"404","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsgi.Controller.api_version(\"2.71\")"},{"line_number":31,"context_line":"    @wsgi.expected_errors(())"},{"line_number":32,"context_line":"    def index(self, req, server_id):"},{"line_number":33,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":34,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_f2630b40","line":31,"in_reply_to":"9fdfeff1_979dd10b","updated":"2019-02-25 06:09:20.000000000","message":"Done","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e32d964f19bf3bad5e956354047a0e70509adcaf","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cells \u003d []"},{"line_number":54,"context_line":"        cpu_thread_policy \u003d None"},{"line_number":55,"context_line":"        # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":56,"context_line":"        for ce in numa_topology.cells:"},{"line_number":57,"context_line":"            cell \u003d {}"},{"line_number":58,"context_line":"            if ce.cpuset:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_b7d255d0","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":73},"updated":"2019-02-25 03:49:07.000000000","message":"why we comment this out?","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cells \u003d []"},{"line_number":54,"context_line":"        cpu_thread_policy \u003d None"},{"line_number":55,"context_line":"        # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":56,"context_line":"        for ce in numa_topology.cells:"},{"line_number":57,"context_line":"            cell \u003d {}"},{"line_number":58,"context_line":"            if ce.cpuset:"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_925abf80","line":55,"range":{"start_line":55,"start_character":8,"end_line":55,"end_character":73},"in_reply_to":"9fdfeff1_b7d255d0","updated":"2019-02-25 06:09:20.000000000","message":"should deleted. this is not in spec, due to is not topology related.","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"79305e20016d309f6420c94b24e77276c01f172e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":31,"id":"9fdfeff1_d2e6abb0","line":50,"range":{"start_line":47,"start_character":11,"end_line":50,"end_character":21},"updated":"2019-02-28 12:24:00.000000000","message":"Hmm, I was wondering if those case can both hanppen, it turns out they can:\nhttps://github.com/openstack/nova/blob/stable/rocky/nova/objects/instance_numa_topology.py#L194","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bf690a0b8883241ac77ccbcbd04921fdee21c83c","unresolved":false,"context_lines":[{"line_number":44,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":31,"id":"9fdfeff1_21af91e3","line":50,"range":{"start_line":47,"start_character":11,"end_line":50,"end_character":21},"in_reply_to":"9fdfeff1_d2e6abb0","updated":"2019-03-01 06:09:18.000000000","message":"here we handled both cases.","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"79305e20016d309f6420c94b24e77276c01f172e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                if ce.cpu_pinning:"},{"line_number":73,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            if ce.cpu_thread_policy:"},{"line_number":76,"context_line":"                cpu_thread_policy \u003d ce.cpu_thread_policy"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            cells.append(cell)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"9fdfeff1_92b26393","line":76,"range":{"start_line":75,"start_character":12,"end_line":76,"end_character":56},"updated":"2019-02-28 12:24:00.000000000","message":"A question here, so what is the relation between cpu_thread_policy and cell? I mean what is the scope of cpu_thread_policy, will ce.cpu_thread_policy be different for different ce?","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bf690a0b8883241ac77ccbcbd04921fdee21c83c","unresolved":false,"context_lines":[{"line_number":72,"context_line":"                if ce.cpu_pinning:"},{"line_number":73,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"            if ce.cpu_thread_policy:"},{"line_number":76,"context_line":"                cpu_thread_policy \u003d ce.cpu_thread_policy"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            cells.append(cell)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":31,"id":"9fdfeff1_c1ec852a","line":76,"range":{"start_line":75,"start_character":12,"end_line":76,"end_character":56},"in_reply_to":"9fdfeff1_92b26393","updated":"2019-03-01 06:09:18.000000000","message":"https://github.com/openstack/nova/blob/84682d8e7b829ccf5efc5745610e45443ef362e4/nova/virt/hardware.py#L1556\n\nfrom initialization, they seem cannot be different.","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_78bd35d6","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"updated":"2019-03-01 22:35:42.000000000","message":"You can remove this.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_04491ab6","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"in_reply_to":"9fdfeff1_78bd35d6","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsgi.Controller.api_version(\"2.72\")"},{"line_number":31,"context_line":"    @wsgi.expected_errors((404))"},{"line_number":32,"context_line":"    def index(self, req, server_id):"},{"line_number":33,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":34,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_38b7adf8","line":31,"updated":"2019-03-01 22:35:42.000000000","message":"403 should be in this list also right? context.can raises Forbidden.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.compute_api \u003d compute.API()"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    @wsgi.Controller.api_version(\"2.72\")"},{"line_number":31,"context_line":"    @wsgi.expected_errors((404))"},{"line_number":32,"context_line":"    def index(self, req, server_id):"},{"line_number":33,"context_line":"        context \u003d req.environ[\"nova.context\"]"},{"line_number":34,"context_line":"        context.can(st_policies.BASE_POLICY_NAME % \u0027index\u0027)"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_c4c8f222","line":31,"in_reply_to":"9fdfeff1_38b7adf8","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        host_policy \u003d (st_policies.BASE_POLICY_NAME % \u0027index:host_info\u0027)"},{"line_number":36,"context_line":"        show_host_info \u003d context.can(host_policy, fatal\u003dFalse)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        return self._get_numa_topology(context, instance, show_host_info)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_58863119","line":38,"updated":"2019-03-01 22:35:42.000000000","message":"We should join the numa_topology field when pulling the instance out of the database otherwise we\u0027ll have to go back to lazy-load it, so pass expected_attrs\u003d[\u0027numa_topology\u0027] to this method.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        host_policy \u003d (st_policies.BASE_POLICY_NAME % \u0027index:host_info\u0027)"},{"line_number":36,"context_line":"        show_host_info \u003d context.can(host_policy, fatal\u003dFalse)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        return self._get_numa_topology(context, instance, show_host_info)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_84d2ead0","line":38,"in_reply_to":"9fdfeff1_58863119","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def _get_numa_topology(self, context, instance, show_host_info):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_18950933","line":46,"range":{"start_line":44,"start_character":12,"end_line":46,"end_character":76},"updated":"2019-03-01 22:35:42.000000000","message":"This can simply be:\n\nnuma_topology \u003d instance.numa_topology","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def _get_numa_topology(self, context, instance, show_host_info):"},{"line_number":43,"context_line":"        try:"},{"line_number":44,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_e4e0969a","line":46,"range":{"start_line":44,"start_character":12,"end_line":46,"end_character":76},"in_reply_to":"9fdfeff1_18950933","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_98a81979","line":48,"range":{"start_line":48,"start_character":23,"end_line":48,"end_character":25},"updated":"2019-03-01 22:35:42.000000000","message":"So we\u0027re just going to return an empty dict with no keys in it? The spec and API reference both say \"If there is no NUMA information available, the corresponding key’s value will simply be set to None.\"","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":45,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_04defad9","line":48,"range":{"start_line":48,"start_character":23,"end_line":48,"end_character":25},"in_reply_to":"9fdfeff1_98a81979","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_f89b6561","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":21},"updated":"2019-03-01 22:35:42.000000000","message":"This is redundant if you use instance.numa_topology because it will already be handled:\n\nhttps://github.com/openstack/nova/blob/00686b2335823d4d921d2e82c8fffd3545d24cec/nova/objects/instance.py#L935","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_64e6e6b3","line":50,"range":{"start_line":49,"start_character":8,"end_line":50,"end_character":21},"in_reply_to":"9fdfeff1_f89b6561","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        cpu_thread_policy \u003d None"},{"line_number":55,"context_line":"        for ce in numa_topology.cells:"},{"line_number":56,"context_line":"            cell \u003d {}"},{"line_number":57,"context_line":"            if ce.cpuset:"},{"line_number":58,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":59,"context_line":"            if ce.siblings:"},{"line_number":60,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":61,"context_line":"            if ce.memory:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_98c1f932","line":58,"range":{"start_line":57,"start_character":12,"end_line":58,"end_character":44},"updated":"2019-03-01 22:35:42.000000000","message":"This kind of pattern is also kind of gross because the user can\u0027t expect which keys are going to be present in the response and therefore have to check all of them. Why don\u0027t we just return None or [] in the case where a key has no value?","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        cpu_thread_policy \u003d None"},{"line_number":55,"context_line":"        for ce in numa_topology.cells:"},{"line_number":56,"context_line":"            cell \u003d {}"},{"line_number":57,"context_line":"            if ce.cpuset:"},{"line_number":58,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":59,"context_line":"            if ce.siblings:"},{"line_number":60,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":61,"context_line":"            if ce.memory:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_84ebca76","line":58,"range":{"start_line":57,"start_character":12,"end_line":58,"end_character":44},"in_reply_to":"9fdfeff1_98c1f932","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            if ce.cpuset:"},{"line_number":58,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":59,"context_line":"            if ce.siblings:"},{"line_number":60,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":61,"context_line":"            if ce.memory:"},{"line_number":62,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":63,"context_line":"            if ce.pagesize:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_58b4f1d4","line":60,"range":{"start_line":60,"start_character":16,"end_line":60,"end_character":20},"updated":"2019-03-01 22:35:42.000000000","message":"nix","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            if ce.cpuset:"},{"line_number":58,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":59,"context_line":"            if ce.siblings:"},{"line_number":60,"context_line":"                    cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":61,"context_line":"            if ce.memory:"},{"line_number":62,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":63,"context_line":"            if ce.pagesize:"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_2400de35","line":60,"range":{"start_line":60,"start_character":16,"end_line":60,"end_character":20},"in_reply_to":"9fdfeff1_58b4f1d4","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_89f86bc4","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"updated":"2019-07-29 15:07:37.000000000","message":"Remove this.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_b6ba5b6b","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"in_reply_to":"7faddb67_89f86bc4","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        host_policy \u003d (st_policies.BASE_POLICY_NAME % \u0027index:host_info\u0027)"},{"line_number":36,"context_line":"        show_host_info \u003d context.can(host_policy, fatal\u003dFalse)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        return self._get_numa_topology(context, instance, show_host_info)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_a91c4713","line":38,"range":{"start_line":38,"start_character":26,"end_line":38,"end_character":38},"updated":"2019-07-29 15:07:37.000000000","message":"Why not pass expected_attrs\u003d[\u0027numa_topology\u0027] here? Then you don\u0027t need the try/except in _get_numa_topology to get the NUMATopology object, you just do:\n\n  instance.numa_topology\n\nSince the field will be joined when we pull the instance from the DB.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        host_policy \u003d (st_policies.BASE_POLICY_NAME % \u0027index:host_info\u0027)"},{"line_number":36,"context_line":"        show_host_info \u003d context.can(host_policy, fatal\u003dFalse)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        return self._get_numa_topology(context, instance, show_host_info)"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_56b1a78e","line":38,"range":{"start_line":38,"start_character":26,"end_line":38,"end_character":38},"in_reply_to":"7faddb67_a91c4713","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_c9b503f0","line":49,"range":{"start_line":49,"start_character":25,"end_line":49,"end_character":45},"updated":"2019-07-29 15:07:37.000000000","message":"Per the above, if we fail to load instance.numa_topology the value will be None which you can handle here in the controller:\n\n  if not instance.numa_topology:\n      return {}","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":46,"context_line":"                                                              instance.uuid)"},{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_16ab2f1d","line":49,"range":{"start_line":49,"start_character":25,"end_line":49,"end_character":45},"in_reply_to":"7faddb67_c9b503f0","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cpu_topology \u003d {}"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_6972cf4b","line":50,"updated":"2019-07-29 15:07:37.000000000","message":"Note that this means we\u0027ll return an empty response body, which is probably not what we want, right? The API reference says there are required fields in the response but if we fail to get anything we\u0027ll return just {} which is confusing. Can\u0027t we just return something like:\n\n{\n  \"cpu_topology\": {},\n  \"nodes\": [],\n  \"pagesize_kb\": ?\n}\n\nI\u0027m not sure what you\u0027d return for pagesize_kb, 0? None? If we can return None for this then we should probably mention that in the description of that API reference parameter.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":47,"context_line":"            if numa_topology is None:"},{"line_number":48,"context_line":"                return {}"},{"line_number":49,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":50,"context_line":"            return {}"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        topo \u003d {}"},{"line_number":53,"context_line":"        cpu_topology \u003d {}"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_16800f8b","line":50,"in_reply_to":"7faddb67_6972cf4b","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"07672cf947418fce7f5be51869c9e6995f996f70","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        pagesize_kb \u003d None"},{"line_number":52,"context_line":"        for ce in instance.numa_topology.cells:"},{"line_number":53,"context_line":"            cell \u003d {}"},{"line_number":54,"context_line":"            if ce.cpuset:"},{"line_number":55,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":56,"context_line":"            if ce.siblings:"},{"line_number":57,"context_line":"                cell[\u0027siblings\u0027] \u003d ce.siblings"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_8aa6fdaa","line":54,"range":{"start_line":54,"start_character":12,"end_line":54,"end_character":25},"updated":"2019-07-31 02:44:59.000000000","message":"we should always have value for cpuset?","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        pagesize_kb \u003d None"},{"line_number":52,"context_line":"        for ce in instance.numa_topology.cells:"},{"line_number":53,"context_line":"            cell \u003d {}"},{"line_number":54,"context_line":"            if ce.cpuset:"},{"line_number":55,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":56,"context_line":"            if ce.siblings:"},{"line_number":57,"context_line":"                cell[\u0027siblings\u0027] \u003d ce.siblings"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_0d86a714","line":54,"range":{"start_line":54,"start_character":12,"end_line":54,"end_character":25},"in_reply_to":"7faddb67_8aa6fdaa","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"07672cf947418fce7f5be51869c9e6995f996f70","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            cell \u003d {}"},{"line_number":54,"context_line":"            if ce.cpuset:"},{"line_number":55,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":56,"context_line":"            if ce.siblings:"},{"line_number":57,"context_line":"                cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":58,"context_line":"            if ce.memory:"},{"line_number":59,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_4abec5b4","line":56,"range":{"start_line":56,"start_character":12,"end_line":56,"end_character":27},"updated":"2019-07-31 02:44:59.000000000","message":"if we always have value for cpuset, then we always have value for siblings","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            cell \u003d {}"},{"line_number":54,"context_line":"            if ce.cpuset:"},{"line_number":55,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":56,"context_line":"            if ce.siblings:"},{"line_number":57,"context_line":"                cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":58,"context_line":"            if ce.memory:"},{"line_number":59,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_ad7e7316","line":56,"range":{"start_line":56,"start_character":12,"end_line":56,"end_character":27},"in_reply_to":"7faddb67_4abec5b4","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"07672cf947418fce7f5be51869c9e6995f996f70","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":56,"context_line":"            if ce.siblings:"},{"line_number":57,"context_line":"                cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":58,"context_line":"            if ce.memory:"},{"line_number":59,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            if show_host_info:"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_eaae917f","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":25},"updated":"2019-07-31 02:44:59.000000000","message":"also question on this. I guess we always have value for it.","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":56,"context_line":"            if ce.siblings:"},{"line_number":57,"context_line":"                cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":58,"context_line":"            if ce.memory:"},{"line_number":59,"context_line":"                cell[\u0027memory_mb\u0027] \u003d ce.memory"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"            if show_host_info:"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_cd7baf25","line":58,"range":{"start_line":58,"start_character":12,"end_line":58,"end_character":25},"in_reply_to":"7faddb67_eaae917f","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"7cdbfbaa75c5299bfbe0f37c3a64eaf5d7cd2dc4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if show_host_info:"},{"line_number":62,"context_line":"                cell[\u0027host_numa_node\u0027] \u003d ce.id"},{"line_number":63,"context_line":"                if ce.cpu_pinning:"},{"line_number":64,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            if ce.pagesize:"},{"line_number":67,"context_line":"                pagesize_kb \u003d ce.pagesize"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_ca92b557","line":64,"range":{"start_line":64,"start_character":42,"end_line":64,"end_character":56},"updated":"2019-07-31 02:37:48.000000000","message":"cpu_pinning can be: None, empty dict.  None means the cpu policy is shared. Empty dict means the instance is requesting dedicated cpu, the value will show up when the spawn is done.\n\nI think we should hide those detail. When the value is None, we can show an empty dict also.","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if show_host_info:"},{"line_number":62,"context_line":"                cell[\u0027host_numa_node\u0027] \u003d ce.id"},{"line_number":63,"context_line":"                if ce.cpu_pinning:"},{"line_number":64,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            if ce.pagesize:"},{"line_number":67,"context_line":"                pagesize_kb \u003d ce.pagesize"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_f86e6bfe","line":64,"range":{"start_line":64,"start_character":42,"end_line":64,"end_character":56},"in_reply_to":"7faddb67_aaa3b99d","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if show_host_info:"},{"line_number":62,"context_line":"                cell[\u0027host_numa_node\u0027] \u003d ce.id"},{"line_number":63,"context_line":"                if ce.cpu_pinning:"},{"line_number":64,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            if ce.pagesize:"},{"line_number":67,"context_line":"                pagesize_kb \u003d ce.pagesize"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_4da7bfbe","line":64,"range":{"start_line":64,"start_character":42,"end_line":64,"end_character":56},"in_reply_to":"7faddb67_ca92b557","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"07672cf947418fce7f5be51869c9e6995f996f70","unresolved":false,"context_lines":[{"line_number":61,"context_line":"            if show_host_info:"},{"line_number":62,"context_line":"                cell[\u0027host_numa_node\u0027] \u003d ce.id"},{"line_number":63,"context_line":"                if ce.cpu_pinning:"},{"line_number":64,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"            if ce.pagesize:"},{"line_number":67,"context_line":"                pagesize_kb \u003d ce.pagesize"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_aaa3b99d","line":64,"range":{"start_line":64,"start_character":42,"end_line":64,"end_character":56},"in_reply_to":"7faddb67_ca92b557","updated":"2019-07-31 02:44:59.000000000","message":"and add unittests for those cases.","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"7cdbfbaa75c5299bfbe0f37c3a64eaf5d7cd2dc4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if ce.pagesize:"},{"line_number":67,"context_line":"                pagesize_kb \u003d ce.pagesize"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"            if ce.cpu_topology:"},{"line_number":70,"context_line":"                cpu_topology[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":71,"context_line":"                cpu_topology[\u0027threads\u0027] \u003d ce.cpu_topology.threads"},{"line_number":72,"context_line":"                cpu_topology[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_aae73912","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":31},"updated":"2019-07-31 02:37:48.000000000","message":"I don\u0027t think we should get cpu_topology from the InstanceNUMACell object. We should get it from instance.vcpu_model","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            if ce.pagesize:"},{"line_number":67,"context_line":"                pagesize_kb \u003d ce.pagesize"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"            if ce.cpu_topology:"},{"line_number":70,"context_line":"                cpu_topology[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":71,"context_line":"                cpu_topology[\u0027threads\u0027] \u003d ce.cpu_topology.threads"},{"line_number":72,"context_line":"                cpu_topology[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"}],"source_content_type":"text/x-python","patch_set":51,"id":"7faddb67_2dbda3d7","line":69,"range":{"start_line":69,"start_character":12,"end_line":69,"end_character":31},"in_reply_to":"7faddb67_aae73912","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                else:"},{"line_number":65,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"            if ce.pagesize:"},{"line_number":68,"context_line":"                pagesize_kb \u003d ce.pagesize"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_209bf617","line":68,"range":{"start_line":67,"start_character":0,"end_line":68,"end_character":41},"updated":"2019-08-22 14:31:09.000000000","message":"This is assuming the pagesize doesn\u0027t differ between cells. I don\u0027t think we provide any way to do this currently (and hopefully won\u0027t ever), but you should probably have a test somewhere to make sure they are the same to prevent people breaking this in the future.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"242956ec2a689eb85389c29087e48ada2c66b78a","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                else:"},{"line_number":65,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"            if ce.pagesize:"},{"line_number":68,"context_line":"                pagesize_kb \u003d ce.pagesize"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_7b15239b","line":68,"range":{"start_line":67,"start_character":0,"end_line":68,"end_character":41},"in_reply_to":"7faddb67_209bf617","updated":"2019-08-22 16:16:12.000000000","message":"correct pagesize is global to the vm and we dont ever plan to change that.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                else:"},{"line_number":65,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"            if ce.pagesize:"},{"line_number":68,"context_line":"                pagesize_kb \u003d ce.pagesize"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_8eb8cde8","line":68,"range":{"start_line":67,"start_character":0,"end_line":68,"end_character":41},"in_reply_to":"7faddb67_7b15239b","updated":"2019-08-23 06:21:14.000000000","message":"thank for clarify.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        if instance.vcpu_model:"},{"line_number":73,"context_line":"            cpu_topology[\u0027cores\u0027] \u003d instance.vcpu_model.topology.cores"},{"line_number":74,"context_line":"            cpu_topology[\u0027threads\u0027] \u003d instance.vcpu_model.topology.threads"},{"line_number":75,"context_line":"            cpu_topology[\u0027sockets\u0027] \u003d instance.vcpu_model.topology.sockets"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_e0515e65","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":31},"updated":"2019-08-22 14:31:09.000000000","message":"Even if this is defined, it\u0027s possible that the topology attribute is not [1].\n\nThis leads to a larger meta issue: do we actually want to expose this information, when we already have the full topology information? I ask because libvirt has a similar feature (a combined CPU overview) but it\u0027s considered legacy and unreliable because it doesn\u0027t handle things like asymmetric topologies. What happens here if a user requests 3 VCPUs and uses \u0027hw:numa_cpus.0\u003d0\u0027, \u0027hw:numa_cpus.1\u003d1,2\u0027 (i.e. an asymmetric topology)?\n\nPersonally, I think I\u0027d drop this entire part of the spec and just focus on the topology itself.\n\n[1] https://github.com/openstack/nova/blob/f9ba1192c4/nova/virt/libvirt/driver.py#L5224-L5225","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        if instance.vcpu_model:"},{"line_number":73,"context_line":"            cpu_topology[\u0027cores\u0027] \u003d instance.vcpu_model.topology.cores"},{"line_number":74,"context_line":"            cpu_topology[\u0027threads\u0027] \u003d instance.vcpu_model.topology.threads"},{"line_number":75,"context_line":"            cpu_topology[\u0027sockets\u0027] \u003d instance.vcpu_model.topology.sockets"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_a3d4c220","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":31},"in_reply_to":"7faddb67_1bcd0f30","updated":"2019-08-23 06:21:14.000000000","message":"Due to the fact they are actually not related at all, it\u0027s safe and neat to drop it from here.\n\nThanks.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        if instance.vcpu_model:"},{"line_number":73,"context_line":"            cpu_topology[\u0027cores\u0027] \u003d instance.vcpu_model.topology.cores"},{"line_number":74,"context_line":"            cpu_topology[\u0027threads\u0027] \u003d instance.vcpu_model.topology.threads"},{"line_number":75,"context_line":"            cpu_topology[\u0027sockets\u0027] \u003d instance.vcpu_model.topology.sockets"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_83cf468a","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":31},"in_reply_to":"7faddb67_e0515e65","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"242956ec2a689eb85389c29087e48ada2c66b78a","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"            cells.append(cell)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        if instance.vcpu_model:"},{"line_number":73,"context_line":"            cpu_topology[\u0027cores\u0027] \u003d instance.vcpu_model.topology.cores"},{"line_number":74,"context_line":"            cpu_topology[\u0027threads\u0027] \u003d instance.vcpu_model.topology.threads"},{"line_number":75,"context_line":"            cpu_topology[\u0027sockets\u0027] \u003d instance.vcpu_model.topology.sockets"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_1bcd0f30","line":72,"range":{"start_line":72,"start_character":0,"end_line":72,"end_character":31},"in_reply_to":"7faddb67_e0515e65","updated":"2019-08-22 16:16:12.000000000","message":"the cpu toppology and numa toplogy are totally seperate htings. you can have 1 sokcet and 2 numa ndoes or two socket and 1 numa node.\n\nwhen the extra_specs are not defined the toplogy of the cpus is define by the virt driver.\n\nlibvirt default to 1 socket per flavor.vcpu but other driver do things more sanly.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _get_numa_topology(self, context, instance, show_host_info):"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                     \"nodes:\": [],"},{"line_number":45,"context_line":"                     \"pagesize_kb\": None"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_01e8e079","line":42,"range":{"start_line":42,"start_character":0,"end_line":42,"end_character":42},"updated":"2019-08-28 15:05:13.000000000","message":"note to self: instance.numa_topology appears to always be set to _something_ in nova.compute.resource_tracker.ResourceTracker.instance_claim\u0027 so we don\u0027t need to handle that.\n\n...could probably drop the \u0027is None\u0027 though","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                     \"nodes:\": [],"},{"line_number":45,"context_line":"                     \"pagesize_kb\": None"},{"line_number":46,"context_line":"                    }"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_814db0c5","line":44,"range":{"start_line":44,"start_character":27,"end_line":44,"end_character":28},"updated":"2019-08-28 15:05:13.000000000","message":"s/\"nodes:\"/\"nodes\"/\n\nTo say this wasn\u0027t caught earlier suggests we\u0027re missing a test.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                     \"nodes:\": [],"},{"line_number":45,"context_line":"                     \"pagesize_kb\": None"},{"line_number":46,"context_line":"                    }"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_3ebdf2d6","line":44,"range":{"start_line":44,"start_character":27,"end_line":44,"end_character":28},"in_reply_to":"7faddb67_814db0c5","updated":"2019-08-30 05:19:05.000000000","message":"Done.\n\nGood Catch, because we got a wrong test case too. Fixed.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                     \"nodes:\": [],"},{"line_number":45,"context_line":"                     \"pagesize_kb\": None"},{"line_number":46,"context_line":"                    }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        topo \u003d {}"},{"line_number":49,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_c153a86b","line":46,"range":{"start_line":44,"start_character":0,"end_line":46,"end_character":21},"updated":"2019-08-28 15:05:13.000000000","message":"nit: you can dedent this:\n\n  return {\n      \"nodes\": [],\n      \"pagesize_kb\": None,\n  }","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                     \"nodes:\": [],"},{"line_number":45,"context_line":"                     \"pagesize_kb\": None"},{"line_number":46,"context_line":"                    }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        topo \u003d {}"},{"line_number":49,"context_line":"        cells \u003d []"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_feb67af9","line":46,"range":{"start_line":44,"start_character":0,"end_line":46,"end_character":21},"in_reply_to":"7faddb67_c153a86b","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        cells \u003d []"},{"line_number":50,"context_line":"        pagesize_kb \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        for ce in instance.numa_topology.cells:"},{"line_number":53,"context_line":"            cell \u003d {}"},{"line_number":54,"context_line":"            cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":55,"context_line":"            cell[\u0027siblings\u0027] \u003d ce.siblings"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_01cf8029","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":14},"updated":"2019-08-28 15:05:13.000000000","message":"nit: Maybe call this \u0027cell_\u0027 or \u0027cell_obj\u0027?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        cells \u003d []"},{"line_number":50,"context_line":"        pagesize_kb \u003d None"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        for ce in instance.numa_topology.cells:"},{"line_number":53,"context_line":"            cell \u003d {}"},{"line_number":54,"context_line":"            cell[\u0027vcpu_set\u0027] \u003d ce.cpuset"},{"line_number":55,"context_line":"            cell[\u0027siblings\u0027] \u003d ce.siblings"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_9ecd0688","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":14},"in_reply_to":"7faddb67_01cf8029","updated":"2019-08-30 05:19:05.000000000","message":"Done. \nSo neat use cell_","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                \"nodes\": [],"},{"line_number":45,"context_line":"                \"pagesize_kb\": None"},{"line_number":46,"context_line":"            }"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":61,"id":"7faddb67_b4fd7e6f","line":44,"range":{"start_line":44,"start_character":16,"end_line":44,"end_character":23},"updated":"2019-08-29 10:13:33.000000000","message":"supernit: s/\"/\u0027/","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                \"nodes\": [],"},{"line_number":45,"context_line":"                \"pagesize_kb\": None"},{"line_number":46,"context_line":"            }"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":61,"id":"7faddb67_6a02af40","line":44,"range":{"start_line":44,"start_character":16,"end_line":44,"end_character":23},"in_reply_to":"7faddb67_b4fd7e6f","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":42,"context_line":"        if instance.numa_topology is None:"},{"line_number":43,"context_line":"            return {"},{"line_number":44,"context_line":"                \"nodes\": [],"},{"line_number":45,"context_line":"                \"pagesize_kb\": None"},{"line_number":46,"context_line":"            }"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        topo \u003d {}"}],"source_content_type":"text/x-python","patch_set":61,"id":"7faddb67_4af57350","line":45,"range":{"start_line":45,"start_character":17,"end_line":45,"end_character":28},"updated":"2019-08-30 05:19:05.000000000","message":"Ditto.","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                else:"},{"line_number":63,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d cell_.cpu_pinning"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if cell_.pagesize:"},{"line_number":66,"context_line":"                pagesize_kb \u003d cell_.pagesize"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"            cells.append(cell)"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":62,"id":"5faad753_a8933d4f","line":66,"range":{"start_line":65,"start_character":12,"end_line":66,"end_character":44},"updated":"2019-09-06 20:20:53.000000000","message":"Is it possible to have more than one cell with a pagesize? Because if so, isn\u0027t our cardinality wrong here since you\u0027re only picking the last page size found to return.","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6a38193024aebaf833253152aebdc3d3d8df3d1","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                else:"},{"line_number":63,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d cell_.cpu_pinning"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if cell_.pagesize:"},{"line_number":66,"context_line":"                pagesize_kb \u003d cell_.pagesize"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"            cells.append(cell)"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":62,"id":"5faad753_c87559fc","line":66,"range":{"start_line":65,"start_character":12,"end_line":66,"end_character":44},"in_reply_to":"5faad753_48ff2967","updated":"2019-09-06 20:27:20.000000000","message":"(3:22:10 PM) mriedem: artom: dansmith: since stephen and sean aren\u0027t around, i\u0027ll ask you this https://review.opendev.org/#/c/621476/62/nova/api/openstack/compute/server_topology.py@66\n(3:22:14 PM) mriedem: since i don\u0027t know numa\n(3:22:56 PM) dansmith: same pagesize on all cells, is that what you mean?\n(3:23:00 PM) mriedem: yeah\n(3:23:25 PM) dansmith: they will all have a pagesize and they\u0027ll all be identical\n(3:23:34 PM) dansmith: I asked that earlier in artom\u0027s series\n(3:23:45 PM) mriedem: if they will all have a page size why is that conditional?\n(3:24:16 PM) dansmith: oh, not sure they will all always have a pagesize, but if any do, they\u0027ll be the same","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3d8e0326b96be509e818c74a3f89eb3772b07407","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                else:"},{"line_number":63,"context_line":"                    cell[\u0027cpu_pinning\u0027] \u003d cell_.cpu_pinning"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"            if cell_.pagesize:"},{"line_number":66,"context_line":"                pagesize_kb \u003d cell_.pagesize"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"            cells.append(cell)"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":62,"id":"5faad753_48ff2967","line":66,"range":{"start_line":65,"start_character":12,"end_line":66,"end_character":44},"in_reply_to":"5faad753_a8933d4f","updated":"2019-09-06 20:22:46.000000000","message":"Alternatively, if more than one cell has a page size do they all have to be the same?","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":303,"context_line":"                expected_attrs.append(\"tags\")"},{"line_number":304,"context_line":"            if api_version_request.is_supported(req, \u00272.63\u0027):"},{"line_number":305,"context_line":"                expected_attrs.append(\"trusted_certs\")"},{"line_number":306,"context_line":"            if api_version_request.is_supported(req, \u00272.69\u0027):"},{"line_number":307,"context_line":"                expected_attrs.append(\"pci_devices\")"},{"line_number":308,"context_line":"            expected_attrs \u003d self._view_builder.get_show_expected_attrs("},{"line_number":309,"context_line":"                                                            expected_attrs)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_470e168e","line":306,"range":{"start_line":306,"start_character":57,"end_line":306,"end_character":58},"updated":"2019-01-23 07:49:45.000000000","message":"8","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            if api_version_request.is_supported(req, \u00272.63\u0027):"},{"line_number":305,"context_line":"                expected_attrs.append(\"trusted_certs\")"},{"line_number":306,"context_line":"            if api_version_request.is_supported(req, \u00272.69\u0027):"},{"line_number":307,"context_line":"                expected_attrs.append(\"pci_devices\")"},{"line_number":308,"context_line":"            expected_attrs \u003d self._view_builder.get_show_expected_attrs("},{"line_number":309,"context_line":"                                                            expected_attrs)"},{"line_number":310,"context_line":"        instance \u003d common.get_instance(self.compute_api, context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_e71ceac2","line":307,"range":{"start_line":307,"start_character":37,"end_line":307,"end_character":52},"updated":"2019-01-23 07:49:45.000000000","message":"pci devices? And I don\u0027t see you mention that you are going to modify the original GET /servers API in your spec.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":304,"context_line":"            if api_version_request.is_supported(req, \u00272.63\u0027):"},{"line_number":305,"context_line":"                expected_attrs.append(\"trusted_certs\")"},{"line_number":306,"context_line":"            if api_version_request.is_supported(req, \u00272.69\u0027):"},{"line_number":307,"context_line":"                expected_attrs.append(\"pci_devices\")"},{"line_number":308,"context_line":"            expected_attrs \u003d self._view_builder.get_show_expected_attrs("},{"line_number":309,"context_line":"                                                            expected_attrs)"},{"line_number":310,"context_line":"        instance \u003d common.get_instance(self.compute_api, context,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f3ca566c","line":307,"range":{"start_line":307,"start_character":37,"end_line":307,"end_character":52},"in_reply_to":"9fdfeff1_e71ceac2","updated":"2019-01-24 06:01:17.000000000","message":"we don\u0027t need this here. thanks.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":283,"context_line":"            pci_devices \u003d self._get_pci_devices(context, instance)"},{"line_number":284,"context_line":"            server[\"server\"][\"numa_topology\"] \u003d numa"},{"line_number":285,"context_line":"            server[\"server\"][\"emulator_threads_policy\"] \u003d emulator_policy"},{"line_number":286,"context_line":"            server[\"server\"][\"pci_devices\"] \u003d pci_devices"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        return server"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_a7ca6217","line":286,"range":{"start_line":286,"start_character":12,"end_line":286,"end_character":57},"updated":"2019-01-23 07:49:45.000000000","message":"don\u0027t see anything about this in your spec and also dont see anything about the GET /servers API in your spec","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":283,"context_line":"            pci_devices \u003d self._get_pci_devices(context, instance)"},{"line_number":284,"context_line":"            server[\"server\"][\"numa_topology\"] \u003d numa"},{"line_number":285,"context_line":"            server[\"server\"][\"emulator_threads_policy\"] \u003d emulator_policy"},{"line_number":286,"context_line":"            server[\"server\"][\"pci_devices\"] \u003d pci_devices"},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        return server"},{"line_number":289,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f3e1f6fd","line":286,"range":{"start_line":286,"start_character":12,"end_line":286,"end_character":57},"in_reply_to":"9fdfeff1_a7ca6217","updated":"2019-01-24 06:01:17.000000000","message":"this is junk of previous patch set. thanks.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"938bf52d8e97f79d21aca093b0635fba25a8b2d5","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        key \u003d \"os-extended-volumes:volumes_attached\""},{"line_number":575,"context_line":"        server[key] \u003d volumes_attached"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":578,"context_line":"        try:"},{"line_number":579,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":580,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":581,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":582,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":583,"context_line":"            numa_topology \u003d None"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        cells \u003d []"},{"line_number":586,"context_line":"        emulator_threads_policy \u003d None"},{"line_number":587,"context_line":"        if numa_topology is not None:"},{"line_number":588,"context_line":"            # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":589,"context_line":"            for ce in numa_topology.cells:"},{"line_number":590,"context_line":"                cell \u003d {}"},{"line_number":591,"context_line":"                if bool(ce.cpuset):"},{"line_number":592,"context_line":"                    cell[\u0027cpuset\u0027] \u003d ce.cpuset"},{"line_number":593,"context_line":"                if bool(ce.siblings):"},{"line_number":594,"context_line":"                        cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":595,"context_line":"                if bool(ce.memory):"},{"line_number":596,"context_line":"                    cell[\u0027mem\u0027] \u003d ce.memory"},{"line_number":597,"context_line":"                if bool(ce.pagesize):"},{"line_number":598,"context_line":"                    cell[\u0027pagesize\u0027] \u003d ce.pagesize"},{"line_number":599,"context_line":"                if bool(ce.cpu_topology):"},{"line_number":600,"context_line":"                    cell[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"},{"line_number":601,"context_line":"                    cell[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":602,"context_line":"                    cell[\u0027threads\u0027] \u003d ce.cpu_topology.threads"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"                if bool(cell.get(\u0027cpu_thread_policy\u0027, None)):"},{"line_number":605,"context_line":"                    cell[\u0027cpu_thread_policy\u0027] \u003d ce[\u0027cpu_thread_policy\u0027]"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"                phy_map \u003d {}"},{"line_number":608,"context_line":"                if bool(ce.cpu_pinning):"},{"line_number":609,"context_line":"                    phy_map[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":610,"context_line":"                phy_map[\u0027numa_node\u0027] \u003d ce.id"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"                cell[\u0027physical_mapping\u0027] \u003d phy_map"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"                cells.append(cell)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        return (cells, emulator_threads_policy)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"    def _get_pci_devices(self, context, instance):"},{"line_number":619,"context_line":"        # Get pci_devices associated with instance (i.e., at destination)."}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_8795dee6","line":616,"range":{"start_line":577,"start_character":0,"end_line":616,"end_character":47},"updated":"2019-01-23 07:49:45.000000000","message":"why are we doing this again seems identical in server_topology.py","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"fc3adf62b811f98eab4fe0f05e59a35232fb421d","unresolved":false,"context_lines":[{"line_number":574,"context_line":"        key \u003d \"os-extended-volumes:volumes_attached\""},{"line_number":575,"context_line":"        server[key] \u003d volumes_attached"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"    def _get_numa_topology(self, context, instance):"},{"line_number":578,"context_line":"        try:"},{"line_number":579,"context_line":"            NUMATopology \u003d objects.instance_numa_topology.InstanceNUMATopology"},{"line_number":580,"context_line":"            numa_topology \u003d NUMATopology.get_by_instance_uuid(context,"},{"line_number":581,"context_line":"                                                              instance[\u0027uuid\u0027])"},{"line_number":582,"context_line":"        except exception.NumaTopologyNotFound:"},{"line_number":583,"context_line":"            numa_topology \u003d None"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"        cells \u003d []"},{"line_number":586,"context_line":"        emulator_threads_policy \u003d None"},{"line_number":587,"context_line":"        if numa_topology is not None:"},{"line_number":588,"context_line":"            # emulator_threads_policy \u003d numa_topology.emulator_threads_policy"},{"line_number":589,"context_line":"            for ce in numa_topology.cells:"},{"line_number":590,"context_line":"                cell \u003d {}"},{"line_number":591,"context_line":"                if bool(ce.cpuset):"},{"line_number":592,"context_line":"                    cell[\u0027cpuset\u0027] \u003d ce.cpuset"},{"line_number":593,"context_line":"                if bool(ce.siblings):"},{"line_number":594,"context_line":"                        cell[\u0027siblings\u0027] \u003d ce.siblings"},{"line_number":595,"context_line":"                if bool(ce.memory):"},{"line_number":596,"context_line":"                    cell[\u0027mem\u0027] \u003d ce.memory"},{"line_number":597,"context_line":"                if bool(ce.pagesize):"},{"line_number":598,"context_line":"                    cell[\u0027pagesize\u0027] \u003d ce.pagesize"},{"line_number":599,"context_line":"                if bool(ce.cpu_topology):"},{"line_number":600,"context_line":"                    cell[\u0027sockets\u0027] \u003d ce.cpu_topology.sockets"},{"line_number":601,"context_line":"                    cell[\u0027cores\u0027] \u003d ce.cpu_topology.cores"},{"line_number":602,"context_line":"                    cell[\u0027threads\u0027] \u003d ce.cpu_topology.threads"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"                if bool(cell.get(\u0027cpu_thread_policy\u0027, None)):"},{"line_number":605,"context_line":"                    cell[\u0027cpu_thread_policy\u0027] \u003d ce[\u0027cpu_thread_policy\u0027]"},{"line_number":606,"context_line":""},{"line_number":607,"context_line":"                phy_map \u003d {}"},{"line_number":608,"context_line":"                if bool(ce.cpu_pinning):"},{"line_number":609,"context_line":"                    phy_map[\u0027cpu_pinning\u0027] \u003d ce.cpu_pinning"},{"line_number":610,"context_line":"                phy_map[\u0027numa_node\u0027] \u003d ce.id"},{"line_number":611,"context_line":""},{"line_number":612,"context_line":"                cell[\u0027physical_mapping\u0027] \u003d phy_map"},{"line_number":613,"context_line":""},{"line_number":614,"context_line":"                cells.append(cell)"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"        return (cells, emulator_threads_policy)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"    def _get_pci_devices(self, context, instance):"},{"line_number":619,"context_line":"        # Get pci_devices associated with instance (i.e., at destination)."}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_13b6fafb","line":616,"range":{"start_line":577,"start_character":0,"end_line":616,"end_character":47},"in_reply_to":"9fdfeff1_8795dee6","updated":"2019-01-24 06:01:17.000000000","message":"thanks. my bad.","commit_id":"56e179a2b9f34b9e654bf686e36e01a4928072d6"}],"nova/policies/server_topology.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bee6be39917f82c5a3882b3b5b00295c7022d69d","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.policies import base"},{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_1588066f","line":17,"range":{"start_line":16,"start_character":0,"end_line":17,"end_character":30},"updated":"2019-01-25 09:15:31.000000000","message":"nit:\nIt should be as follows:\n\nfrom oslo_policy import policy\n\nfrom nova.policies import base\n\n\nSee https://docs.openstack.org/hacking/latest/user/hacking.html#imports","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4ee9b1eef3bd6fbc2836b0142de5b8af06fa19cd","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.policies import base"},{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_47146044","line":17,"range":{"start_line":16,"start_character":0,"end_line":17,"end_character":30},"in_reply_to":"9fdfeff1_1588066f","updated":"2019-01-30 08:21:10.000000000","message":"n seems should be in ahead. pep8 would remind this.","commit_id":"bbbb5dba9afa0b0b176663615cea122b205f15ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"c2ab01f837cd9889e62e2876064ff4f577bba0a6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # control host NUMA node and cpu pining information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with detailed information\","},{"line_number":38,"context_line":"        ["},{"line_number":39,"context_line":"            {"},{"line_number":40,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_e104081b","line":37,"range":{"start_line":37,"start_character":9,"end_line":37,"end_character":53},"updated":"2019-02-19 08:47:08.000000000","message":"You should clear about this for host info","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"d76dc1ccff6ecbdee3cda19a4169eb01e3aff059","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # control host NUMA node and cpu pining information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with detailed information\","},{"line_number":38,"context_line":"        ["},{"line_number":39,"context_line":"            {"},{"line_number":40,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9fdfeff1_378d57d3","line":37,"range":{"start_line":37,"start_character":9,"end_line":37,"end_character":53},"in_reply_to":"9fdfeff1_e104081b","updated":"2019-02-20 06:50:18.000000000","message":"Done","commit_id":"5e5209b7489f2eeb7638f7f01ccc9158e43fb83c"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_f8d365d2","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"updated":"2019-03-01 22:35:42.000000000","message":"You can remove this.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_04e03a26","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"in_reply_to":"9fdfeff1_f8d365d2","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_f8fcc540","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":57},"updated":"2019-03-01 22:35:42.000000000","message":"If we followed the pattern for GET /servers/{server_id}/migrations we\u0027d use:\n\nos_compute_api:servers:topology:index\n\nBut I don\u0027t know anymore what the pattern is because we also have stuff like:\n\nos_compute_api:os-volumes-attachments:index\n\nThere are new guidelines though:\n\nhttps://docs.openstack.org/oslo.policy/latest/user/usage.html#naming-policies\n\nWhich leads me to believe we\u0027d use:\n\ncompute:server:topology:list\n\nI\u0027m not sure how \"host_info\" works into that, would need to ask lbragstad or gmann. Maybe that\u0027s just:\n\ncompute:server:topology:list:host-info","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_e44bb6ae","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":57},"in_reply_to":"9fdfeff1_c3a556a1","updated":"2019-03-04 07:40:36.000000000","message":"I do not sure I understand all of them. I updated patch per Matt comments.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_640b46d5","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":57},"in_reply_to":"9fdfeff1_f8fcc540","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"23225318e9c3bd0b3dc178ac01ca0ca82f3069d7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_c3a556a1","line":20,"range":{"start_line":20,"start_character":19,"end_line":20,"end_character":57},"in_reply_to":"9fdfeff1_f8fcc540","updated":"2019-03-01 23:17:08.000000000","message":"Following-up to say that we discussed this in the nova channel and worked through a couple of options.\n\nhttp://eavesdrop.openstack.org/irclogs/%23openstack-nova/%23openstack-nova.2019-03-01.log.html#t2019-03-01T22:44:10","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":24,"context_line":"        BASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":25,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":26,"context_line":"        \"Show the topology data for a server\","},{"line_number":27,"context_line":"        ["},{"line_number":28,"context_line":"            {"},{"line_number":29,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_98f9f94f","line":26,"range":{"start_line":26,"start_character":18,"end_line":26,"end_character":26},"updated":"2019-03-01 22:35:42.000000000","message":"NUMA topology (specifically, correct?)","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":24,"context_line":"        BASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":25,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":26,"context_line":"        \"Show the topology data for a server\","},{"line_number":27,"context_line":"        ["},{"line_number":28,"context_line":"            {"},{"line_number":29,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_c4d3125f","line":26,"range":{"start_line":26,"start_character":18,"end_line":26,"end_character":26},"in_reply_to":"9fdfeff1_98f9f94f","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["},{"line_number":39,"context_line":"            {"},{"line_number":40,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_d8ad4133","line":37,"range":{"start_line":37,"start_character":9,"end_line":37,"end_character":25},"updated":"2019-03-01 22:35:42.000000000","message":"This isn\u0027t accurate, you\u0027re just exposing compute host NUMA information for the topology for the given server, not all servers.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["},{"line_number":39,"context_line":"            {"},{"line_number":40,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_64c826a8","line":37,"range":{"start_line":37,"start_character":9,"end_line":37,"end_character":25},"in_reply_to":"9fdfeff1_d8ad4133","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"server_topology_policies \u003d ["},{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show NUMA topology data of a given server\","},{"line_number":25,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":36,"id":"9fdfeff1_a3e83bb3","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":32},"updated":"2019-03-04 13:58:38.000000000","message":"\u0027index\u0027 would be better.","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"server_topology_policies \u003d ["},{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027list\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show NUMA topology data of a given server\","},{"line_number":25,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":36,"id":"9fdfeff1_9ecd4ab9","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":32},"in_reply_to":"9fdfeff1_a3e83bb3","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host_info:list\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"List host NUMA id and cpu pinning information of given server\","},{"line_number":36,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":36,"id":"9fdfeff1_03d7c7f0","line":33,"range":{"start_line":33,"start_character":38,"end_line":33,"end_character":42},"updated":"2019-03-04 13:58:38.000000000","message":"ditto","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host_info:list\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"List host NUMA id and cpu pinning information of given server\","},{"line_number":36,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":36,"id":"9fdfeff1_3ec21e88","line":33,"range":{"start_line":33,"start_character":38,"end_line":33,"end_character":42},"in_reply_to":"9fdfeff1_03d7c7f0","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"01becfb809fd49c9a115a7a02d51235657c010ae","unresolved":false,"context_lines":[{"line_number":20,"context_line":"server_topology_policies \u003d ["},{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show NUMA topology data of a given server\","},{"line_number":25,"context_line":"        ["},{"line_number":26,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_14bdbeb6","line":23,"updated":"2019-03-06 20:14:48.000000000","message":"This could be done with:\n\n  check_str\u003d\u0027(role:reader and system_scope:all) or rule:owner\u0027,\n  scope_types\u003d[\u0027system\u0027, \u0027project\u0027],\n\nThis would prevent users with the `admin` role on any project from being able to see deployment sensitive information.","commit_id":"fc5e2c1615490688618fea1b07fafa4b8a2ba291"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"01becfb809fd49c9a115a7a02d51235657c010ae","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host_info:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"List host NUMA id and cpu pinning information of given server\","},{"line_number":36,"context_line":"        ["},{"line_number":37,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":39,"id":"5fc1f717_14a61ec3","line":34,"updated":"2019-03-06 20:14:48.000000000","message":"Since this is essentially a system-level API (one where only deployment operators are supposed to see this information), we could add:\n\n  scope_types\u003d[\u0027system\u0027],\n\nEventually, when we go through this for more of the API, operators can flip the config for oslo.policy to reject requests that were made with the wrong scope (e.g., a project administrator attempting to call this API).","commit_id":"fc5e2c1615490688618fea1b07fafa4b8a2ba291"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_29e057cc","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"updated":"2019-07-29 15:07:37.000000000","message":"Remove this.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2016 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_d64b5784","line":2,"range":{"start_line":1,"start_character":0,"end_line":2,"end_character":22},"in_reply_to":"7faddb67_29e057cc","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_062ea842","line":20,"range":{"start_line":20,"start_character":20,"end_line":20,"end_character":34},"updated":"2019-07-29 15:07:37.000000000","message":"I thought we were just moving to \"compute\" now and ditching the os_ prefix and _api suffix. Ask gmann.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_26a404b9","line":20,"range":{"start_line":20,"start_character":35,"end_line":20,"end_character":53},"updated":"2019-07-29 15:07:37.000000000","message":"I would think this should be \"servers:topology\" so the full policy rule is \"compute:servers:topology\", or maybe \"compute:servers:show:topology\".\n\nhttps://docs.openstack.org/oslo.policy/latest/user/usage.html#naming-policies\n\nAfter reading that, it looks like the policy name should be:\n\ncompute:server:topology:get\n\nWhich is \u003cservice-type\u003e:\u003cresource\u003e:\u003cattribute\u003e:\u003caction\u003e","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_b6481b87","line":20,"range":{"start_line":20,"start_character":20,"end_line":20,"end_character":34},"in_reply_to":"7faddb67_062ea842","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_765aa350","line":20,"range":{"start_line":20,"start_character":35,"end_line":20,"end_character":53},"in_reply_to":"7faddb67_1b4fdabd","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_565f6740","line":20,"range":{"start_line":20,"start_character":35,"end_line":20,"end_character":53},"in_reply_to":"7faddb67_26a404b9","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8bd971176c04e290a3d4107bfc0d5ca093ce4a7e","unresolved":false,"context_lines":[{"line_number":17,"context_line":"from oslo_policy import policy"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"BASE_POLICY_NAME \u003d \u0027os_compute_api:os-server-topology:%s\u0027"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"server_topology_policies \u003d ["},{"line_number":23,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_1b4fdabd","line":20,"range":{"start_line":20,"start_character":35,"end_line":20,"end_character":53},"in_reply_to":"7faddb67_26a404b9","updated":"2019-07-30 02:25:20.000000000","message":"yeah, \u0027compute:server:topology:get\u0027 is correct name.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        ]),"},{"line_number":33,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_66c0bc2b","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":43},"updated":"2019-07-29 15:07:37.000000000","message":"Based on the above policy naming rules, this probably becomes something like:\n\ncompute:server:topology:get-host\n\nOr something similar.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        ]),"},{"line_number":33,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_f633f311","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":43},"in_reply_to":"7faddb67_3bdf36d7","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        ]),"},{"line_number":33,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_d630370a","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":43},"in_reply_to":"7faddb67_66c0bc2b","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"8bd971176c04e290a3d4107bfc0d5ca093ce4a7e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        ]),"},{"line_number":33,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_3bdf36d7","line":35,"range":{"start_line":35,"start_character":28,"end_line":35,"end_character":43},"in_reply_to":"7faddb67_66c0bc2b","updated":"2019-07-30 02:25:20.000000000","message":"This includes the attributes[1] so we can name it like\n\n\u0027compute:server:topology:host:get\u0027 - means get server topology with host attribute. \n\n[1] \u003cservice-type\u003e:\u003cresource\u003e[:\u003csubresource\u003e][:\u003cattribute\u003e]:\u003caction\u003e[:\u003csubaction\u003e]","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["},{"line_number":39,"context_line":"            {"},{"line_number":40,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_a6ca346b","line":37,"range":{"start_line":37,"start_character":9,"end_line":37,"end_character":25},"updated":"2019-07-29 15:07:37.000000000","message":"This can\u0027t be correct - we\u0027re not listing all servers, we\u0027re showing the topology for a specific server and if the user passes this check (by default admin-only) they see host info. So this could probably just be replaced with \"Show the topology data for a server with host NUMA...\".","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":35,"context_line":"        BASE_POLICY_NAME % \u0027index:host_info\u0027,"},{"line_number":36,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":37,"context_line":"        \"List all servers with host NUMA id and cpu pinning information\","},{"line_number":38,"context_line":"        ["},{"line_number":39,"context_line":"            {"},{"line_number":40,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_562447c6","line":37,"range":{"start_line":37,"start_character":9,"end_line":37,"end_character":25},"in_reply_to":"7faddb67_a6ca346b","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"server_topology_policies \u003d ["},{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027get\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show the topology data for a server\","},{"line_number":25,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_55006802","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":31},"updated":"2019-08-05 05:24:02.000000000","message":"s/get/index/, as the spec write http://specs.openstack.org/openstack/nova-specs/specs/train/approved/show-server-numa-topology.html","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"server_topology_policies \u003d ["},{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027get\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show the topology data for a server\","},{"line_number":25,"context_line":"        ["}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_00bdccb5","line":22,"range":{"start_line":22,"start_character":28,"end_line":22,"end_character":31},"in_reply_to":"7faddb67_55006802","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:get\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_e000b003","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":36},"updated":"2019-08-05 05:24:02.000000000","message":"index:host_info","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:get\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_c0b254e5","line":33,"range":{"start_line":33,"start_character":28,"end_line":33,"end_character":36},"in_reply_to":"7faddb67_e000b003","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2baa6a02f56d226025b0a77bc7850fab6cfb57de","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show the topology data for a server\","},{"line_number":25,"context_line":"        ["},{"line_number":26,"context_line":"            {"},{"line_number":27,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_db3a1734","line":24,"range":{"start_line":24,"start_character":18,"end_line":24,"end_character":26},"updated":"2019-08-22 15:01:51.000000000","message":"NUMA topology","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":22,"context_line":"        BASE_POLICY_NAME % \u0027index\u0027,"},{"line_number":23,"context_line":"        base.RULE_ADMIN_OR_OWNER,"},{"line_number":24,"context_line":"        \"Show the topology data for a server\","},{"line_number":25,"context_line":"        ["},{"line_number":26,"context_line":"            {"},{"line_number":27,"context_line":"                \u0027method\u0027: \u0027GET\u0027,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_63deca3f","line":24,"range":{"start_line":24,"start_character":18,"end_line":24,"end_character":26},"in_reply_to":"7faddb67_db3a1734","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2baa6a02f56d226025b0a77bc7850fab6cfb57de","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_3b36cb53","line":35,"range":{"start_line":35,"start_character":67,"end_line":35,"end_character":70},"updated":"2019-08-22 15:01:51.000000000","message":"CPU","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2baa6a02f56d226025b0a77bc7850fab6cfb57de","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_1b318f5a","line":35,"range":{"start_line":35,"start_character":60,"end_line":35,"end_character":62},"updated":"2019-08-22 15:01:51.000000000","message":"ID","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2baa6a02f56d226025b0a77bc7850fab6cfb57de","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_fb37d34a","line":35,"range":{"start_line":35,"start_character":18,"end_line":35,"end_character":26},"updated":"2019-08-22 15:01:51.000000000","message":"NUMA topology","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_23e0d2f8","line":35,"range":{"start_line":35,"start_character":60,"end_line":35,"end_character":62},"in_reply_to":"7faddb67_1b318f5a","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_c3ec5ef6","line":35,"range":{"start_line":35,"start_character":67,"end_line":35,"end_character":70},"in_reply_to":"7faddb67_3b36cb53","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the topology data for a server with host NUMA id and cpu\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_83b8a6e8","line":35,"range":{"start_line":35,"start_character":18,"end_line":35,"end_character":26},"in_reply_to":"7faddb67_fb37d34a","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from nova.policies import base"},{"line_number":15,"context_line":"from oslo_policy import policy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"BASE_POLICY_NAME \u003d \u0027compute:server:topology:%s\u0027"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_52a230af","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":30},"updated":"2019-08-28 11:09:46.000000000","message":"This imort should before \"from nova.policies import base\".\n\nImports generally are grouped as:\n\n\u003cstandard library\u003e\n\n\u003cthird party dependencies - things you get from pypi\u003e\n\n\u003cnova imports\u003e","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from nova.policies import base"},{"line_number":15,"context_line":"from oslo_policy import policy"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"BASE_POLICY_NAME \u003d \u0027compute:server:topology:%s\u0027"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_1e9fd665","line":15,"range":{"start_line":15,"start_character":0,"end_line":15,"end_character":30},"in_reply_to":"7faddb67_52a230af","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            }"},{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the NUMA topology data for a server with host NUMA ID and CPU\""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_52d4701f","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":17},"updated":"2019-08-28 11:09:46.000000000","message":"nit:s/control/Control","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            }"},{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the NUMA topology data for a server with host NUMA ID and CPU\""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_3e8bb21e","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":17},"in_reply_to":"7faddb67_41933801","updated":"2019-08-30 05:19:05.000000000","message":"thanks explain. Good to know.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            }"},{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the NUMA topology data for a server with host NUMA ID and CPU\""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_41933801","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":17},"in_reply_to":"7faddb67_52d4701f","updated":"2019-08-28 15:05:13.000000000","message":"This one doesn\u0027t matter so much. I usually start inline comments with lower case. No idea why. Guess it looks nicer?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":29,"context_line":"            }"},{"line_number":30,"context_line":"        ]),"},{"line_number":31,"context_line":"    policy.DocumentedRuleDefault("},{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the NUMA topology data for a server with host NUMA ID and CPU\""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_7e97ea46","line":32,"range":{"start_line":32,"start_character":10,"end_line":32,"end_character":17},"in_reply_to":"7faddb67_52d4701f","updated":"2019-08-30 05:19:05.000000000","message":"thanks","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the NUMA topology data for a server with host NUMA ID and CPU\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_f2b31c09","line":35,"range":{"start_line":35,"start_character":75,"end_line":35,"end_character":76},"updated":"2019-08-28 11:09:46.000000000","message":"lack a space.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        # control host NUMA node and cpu pinning information"},{"line_number":33,"context_line":"        BASE_POLICY_NAME % \u0027host:index\u0027,"},{"line_number":34,"context_line":"        base.RULE_ADMIN_API,"},{"line_number":35,"context_line":"        \"Show the NUMA topology data for a server with host NUMA ID and CPU\""},{"line_number":36,"context_line":"        \"pinning information\","},{"line_number":37,"context_line":"        ["},{"line_number":38,"context_line":"            {"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_de813efd","line":35,"range":{"start_line":35,"start_character":75,"end_line":35,"end_character":76},"in_reply_to":"7faddb67_f2b31c09","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"}],"nova/tests/functional/api_sample_tests/api_samples/extensions-list-resp.json.tpl":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":793,"context_line":"            \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":794,"context_line":"        }"},{"line_number":795,"context_line":"    ]"},{"line_number":796,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":20,"id":"9fdfeff1_56846bd3","line":796,"updated":"2019-02-22 06:53:31.000000000","message":"you should remove this change","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":793,"context_line":"            \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":794,"context_line":"        }"},{"line_number":795,"context_line":"    ]"},{"line_number":796,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":20,"id":"9fdfeff1_cc2e8c8b","line":796,"in_reply_to":"9fdfeff1_56846bd3","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e32d964f19bf3bad5e956354047a0e70509adcaf","unresolved":false,"context_lines":[{"line_number":793,"context_line":"            \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":794,"context_line":"        }"},{"line_number":795,"context_line":"    ]"},{"line_number":796,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":22,"id":"9fdfeff1_37f7455c","line":796,"range":{"start_line":796,"start_character":0,"end_line":796,"end_character":1},"updated":"2019-02-25 03:49:07.000000000","message":"please remove this useless change","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":793,"context_line":"            \"updated\": \"2014-12-03T00:00:00Z\""},{"line_number":794,"context_line":"        }"},{"line_number":795,"context_line":"    ]"},{"line_number":796,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":22,"id":"9fdfeff1_b25d837a","line":796,"range":{"start_line":796,"start_character":0,"end_line":796,"end_character":1},"in_reply_to":"9fdfeff1_37f7455c","updated":"2019-02-25 06:09:20.000000000","message":"wired, I gonna try replace this file with upstream version. thanks.","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"}],"nova/tests/functional/api_sample_tests/api_samples/os-server-topology/v2.71/servers-topology-resp.json.tpl":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"eb43d530ad8d4bb2fdf18587b4372856b03915ba","unresolved":false,"context_lines":[{"line_number":16,"context_line":"            \"vcpu_set\": [0, 1]"},{"line_number":17,"context_line":"        },"},{"line_number":18,"context_line":"        {"},{"line_number":19,"context_line":"\t\t\t\"cores\": 2,"},{"line_number":20,"context_line":"            \"cpu_pinning\": {"},{"line_number":21,"context_line":"                \"2\": 1,"},{"line_number":22,"context_line":"                \"3\": 8"}],"source_content_type":"text/x-smarty","patch_set":24,"id":"9fdfeff1_bf70e7a5","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":13},"updated":"2019-02-25 09:29:04.000000000","message":"remove this tab","commit_id":"7987d6f7f897db3bf5872b02fc5b5bb9780cc360"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"05a8bf42cda0db3baf75852ad70ecfe387f7da2d","unresolved":false,"context_lines":[{"line_number":16,"context_line":"            \"vcpu_set\": [0, 1]"},{"line_number":17,"context_line":"        },"},{"line_number":18,"context_line":"        {"},{"line_number":19,"context_line":"\t\t\t\"cores\": 2,"},{"line_number":20,"context_line":"            \"cpu_pinning\": {"},{"line_number":21,"context_line":"                \"2\": 1,"},{"line_number":22,"context_line":"                \"3\": 8"}],"source_content_type":"text/x-smarty","patch_set":24,"id":"9fdfeff1_7f94bf8b","line":19,"range":{"start_line":19,"start_character":0,"end_line":19,"end_character":13},"in_reply_to":"9fdfeff1_bf70e7a5","updated":"2019-02-25 09:35:25.000000000","message":"Done","commit_id":"7987d6f7f897db3bf5872b02fc5b5bb9780cc360"}],"nova/tests/functional/api_sample_tests/api_samples/os-server-topology/v2.77/servers-topology-resp.json.tpl":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"2baa6a02f56d226025b0a77bc7850fab6cfb57de","unresolved":false,"context_lines":[{"line_number":10,"context_line":"                \"0\": 0,"},{"line_number":11,"context_line":"                \"1\": 5"},{"line_number":12,"context_line":"            },"},{"line_number":13,"context_line":"            \"host_numa_node\": 0,"},{"line_number":14,"context_line":"            \"memory_mb\": 1024,"},{"line_number":15,"context_line":"            \"siblings\": ["},{"line_number":16,"context_line":"                ["}],"source_content_type":"text/x-smarty","patch_set":57,"id":"7faddb67_5b1067ac","line":13,"range":{"start_line":13,"start_character":18,"end_line":13,"end_character":22},"updated":"2019-08-22 15:01:51.000000000","message":"This feels a bit superfluous since we know know we\u0027re talking about \u0027numa\u0027 here. I\u0027d either drop this or rename \u0027nodes\u0027 to \u0027numa_nodes\u0027","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":10,"context_line":"                \"0\": 0,"},{"line_number":11,"context_line":"                \"1\": 5"},{"line_number":12,"context_line":"            },"},{"line_number":13,"context_line":"            \"host_numa_node\": 0,"},{"line_number":14,"context_line":"            \"memory_mb\": 1024,"},{"line_number":15,"context_line":"            \"siblings\": ["},{"line_number":16,"context_line":"                ["}],"source_content_type":"text/x-smarty","patch_set":57,"id":"7faddb67_03ccb688","line":13,"range":{"start_line":13,"start_character":18,"end_line":13,"end_character":22},"in_reply_to":"7faddb67_5b1067ac","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"}],"nova/tests/functional/api_sample_tests/test_server_topology.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"79305e20016d309f6420c94b24e77276c01f172e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4096, id\u003d0,"},{"line_number":27,"context_line":"                    cpu_topology\u003dself.cpu_tp,"},{"line_number":28,"context_line":"                    cpu_pinning\u003d{\"0\": 0, \"1\": 5},"},{"line_number":29,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":30,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d40960, id\u003d1,"}],"source_content_type":"text/x-python","patch_set":31,"id":"9fdfeff1_d2378bfd","line":29,"range":{"start_line":29,"start_character":20,"end_line":29,"end_character":47},"updated":"2019-02-28 12:24:00.000000000","message":"so seems this could be different for each ce?","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bf690a0b8883241ac77ccbcbd04921fdee21c83c","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4096, id\u003d0,"},{"line_number":27,"context_line":"                    cpu_topology\u003dself.cpu_tp,"},{"line_number":28,"context_line":"                    cpu_pinning\u003d{\"0\": 0, \"1\": 5},"},{"line_number":29,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":30,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d40960, id\u003d1,"}],"source_content_type":"text/x-python","patch_set":31,"id":"9fdfeff1_61efd91c","line":29,"range":{"start_line":29,"start_character":20,"end_line":29,"end_character":47},"in_reply_to":"9fdfeff1_d2378bfd","updated":"2019-03-01 06:09:18.000000000","message":"https://github.com/openstack/nova/blob/84682d8e7b829ccf5efc5745610e45443ef362e4/nova/virt/hardware.py#L1556\n\nfrom initialization, they seem not. but not sure yet.","commit_id":"8f6d85f8e7ce34ad6fccadfe1782719b9808b6ac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class ServerTopologySamplesJsonTestV272(ServerTopologySamplesJsonTest):"},{"line_number":42,"context_line":"    ADMIN_API \u003d True"},{"line_number":43,"context_line":"    microversion \u003d \u00272.72\u0027"},{"line_number":44,"context_line":"    scenarios \u003d [(\u0027v2_72\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_d87221e5","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":20},"updated":"2019-03-01 22:35:42.000000000","message":"We should probably have both an admin and non-admin test since certain information is not going to be shown in the non-admin case.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class ServerTopologySamplesJsonTestV272(ServerTopologySamplesJsonTest):"},{"line_number":42,"context_line":"    ADMIN_API \u003d True"},{"line_number":43,"context_line":"    microversion \u003d \u00272.72\u0027"},{"line_number":44,"context_line":"    scenarios \u003d [(\u0027v2_72\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_e4e2d630","line":42,"range":{"start_line":42,"start_character":4,"end_line":42,"end_character":20},"in_reply_to":"9fdfeff1_d87221e5","updated":"2019-03-04 07:40:36.000000000","message":"we had non-admin test covered in the functional test. I hope that would be enough.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class ServerTopologySamplesJsonTestV275(ServerTopologySamplesJsonTest):"},{"line_number":42,"context_line":"    ADMIN_API \u003d True"},{"line_number":43,"context_line":"    microversion \u003d \u00272.75\u0027"},{"line_number":44,"context_line":"    scenarios \u003d [(\u0027v2_75\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_0906bb87","line":42,"updated":"2019-07-29 15:07:37.000000000","message":"We should have an admin and non-admin tests to make sure both responses are what we\u0027d expect based on user policy rules.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"class ServerTopologySamplesJsonTestV275(ServerTopologySamplesJsonTest):"},{"line_number":42,"context_line":"    ADMIN_API \u003d True"},{"line_number":43,"context_line":"    microversion \u003d \u00272.75\u0027"},{"line_number":44,"context_line":"    scenarios \u003d [(\u0027v2_75\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_f1621dad","line":42,"in_reply_to":"7faddb67_0906bb87","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ac68b04cca09db38197ec0cf2e22c5969712d541","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":25,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":26,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":27,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":28,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_4043c43f","line":27,"range":{"start_line":27,"start_character":39,"end_line":27,"end_character":46},"updated":"2019-08-05 05:26:13.000000000","message":"required","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":25,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":26,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":27,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":28,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_80c8dc54","line":27,"range":{"start_line":27,"start_character":39,"end_line":27,"end_character":46},"in_reply_to":"7faddb67_4043c43f","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ac68b04cca09db38197ec0cf2e22c5969712d541","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"},{"line_number":31,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":32,"context_line":"                    cpu_pinning\u003d{2: 1, 3: 8},"},{"line_number":33,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":34,"context_line":"                    cpuset\u003dset([2, 3]))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    vcpu \u003d vcpu_model.VirtCPUModel(topology \u003d cpu_tp)"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_e077509f","line":33,"range":{"start_line":33,"start_character":39,"end_line":33,"end_character":46},"updated":"2019-08-05 05:26:13.000000000","message":"required","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"},{"line_number":31,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":32,"context_line":"                    cpu_pinning\u003d{2: 1, 3: 8},"},{"line_number":33,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":34,"context_line":"                    cpuset\u003dset([2, 3]))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    vcpu \u003d vcpu_model.VirtCPUModel(topology \u003d cpu_tp)"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_20c3283a","line":33,"range":{"start_line":33,"start_character":39,"end_line":33,"end_character":46},"in_reply_to":"7faddb67_e077509f","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":34,"context_line":"                    cpuset\u003dset([2, 3]))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    vcpu \u003d vcpu_model.VirtCPUModel(topology \u003d cpu_tp)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    return numa.InstanceNUMATopology(cells\u003d[ce0, ce1]), vcpu"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_402e648c","line":36,"range":{"start_line":36,"start_character":35,"end_line":36,"end_character":52},"updated":"2019-08-05 05:24:02.000000000","message":"no space around the \"\u003d\"","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                    cpu_thread_policy\u003d\"require\","},{"line_number":34,"context_line":"                    cpuset\u003dset([2, 3]))"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    vcpu \u003d vcpu_model.VirtCPUModel(topology \u003d cpu_tp)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    return numa.InstanceNUMATopology(cells\u003d[ce0, ce1]), vcpu"},{"line_number":39,"context_line":""}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_40be64ae","line":36,"range":{"start_line":36,"start_character":35,"end_line":36,"end_character":52},"in_reply_to":"7faddb67_402e648c","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_e0adde32","line":1,"updated":"2019-08-22 14:31:09.000000000","message":"There are no tests for asymmetric topologies here. We need some, since those are corner cases that are likely to break stuff","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":3,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":4,"context_line":"#    a copy of the License at"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_c3ef7eaf","line":1,"in_reply_to":"7faddb67_e0adde32","updated":"2019-08-23 06:21:14.000000000","message":"Due to that information is not related to topology that much. so it\u0027s been removed from response.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from nova.tests.functional.api_sample_tests import test_servers"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.objects import instance_numa as numa"},{"line_number":17,"context_line":"from nova.objects import virt_cpu_topology as cpu_topo"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_52deb010","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":63},"updated":"2019-08-28 11:09:46.000000000","message":"This imoport should be behind the \"from nova.objects*. But I don\u0027t know why not the pep8 failed.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from nova.tests.functional.api_sample_tests import test_servers"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.objects import instance_numa as numa"},{"line_number":17,"context_line":"from nova.objects import virt_cpu_topology as cpu_topo"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_5e754e31","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":63},"in_reply_to":"7faddb67_21a07c42","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from nova.tests.functional.api_sample_tests import test_servers"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.objects import instance_numa as numa"},{"line_number":17,"context_line":"from nova.objects import virt_cpu_topology as cpu_topo"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_be76c23e","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":63},"in_reply_to":"7faddb67_52deb010","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"from nova.tests.functional.api_sample_tests import test_servers"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from nova.objects import instance_numa as numa"},{"line_number":17,"context_line":"from nova.objects import virt_cpu_topology as cpu_topo"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_21a07c42","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":63},"in_reply_to":"7faddb67_52deb010","updated":"2019-08-28 15:05:13.000000000","message":"I guess it\u0027s the newline inbetween","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def fake_get_numa():"},{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_e1aa6418","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":55},"updated":"2019-08-28 15:05:13.000000000","message":"This... (8 cores)","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def fake_get_numa():"},{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_7eddaadb","line":21,"range":{"start_line":21,"start_character":0,"end_line":21,"end_character":55},"in_reply_to":"7faddb67_e1aa6418","updated":"2019-08-30 05:19:05.000000000","message":"Done. \nGood Catch. I guess 2:1:2 is the best configration for my tests. -:)","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def fake_get_numa():"},{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_e16fc4f7","line":22,"range":{"start_line":22,"start_character":4,"end_line":22,"end_character":10},"updated":"2019-08-28 15:05:13.000000000","message":"cpu_topology? (we\u0027re not short on horizontal space here)","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"def fake_get_numa():"},{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_1e8d9629","line":22,"range":{"start_line":22,"start_character":4,"end_line":22,"end_character":10},"in_reply_to":"7faddb67_e16fc4f7","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":20,"context_line":"def fake_get_numa():"},{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":26,"context_line":"                    cpuset\u003dset([0, 1]))"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_c17408d3","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":7},"updated":"2019-08-28 15:05:13.000000000","message":"cell_0 ?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":20,"context_line":"def fake_get_numa():"},{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":26,"context_line":"                    cpuset\u003dset([0, 1]))"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_de961e3f","line":23,"range":{"start_line":23,"start_character":4,"end_line":23,"end_character":7},"in_reply_to":"7faddb67_c17408d3","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":26,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_216e3c00","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":20},"updated":"2019-08-28 15:05:13.000000000","message":"nit: you can drop this space","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":21,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 2, \u0027threads\u0027: 2}"},{"line_number":22,"context_line":"    cpu_tp \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":26,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_be9b2262","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":20},"in_reply_to":"7faddb67_216e3c00","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":26,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"},{"line_number":29,"context_line":"                    cpu_topology\u003dcpu_tp,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_81a93025","line":26,"range":{"start_line":26,"start_character":20,"end_line":26,"end_character":37},"updated":"2019-08-28 15:05:13.000000000","message":"...doesn\u0027t match this (2 cores).\n\nCan you update one?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":24,"context_line":"                    cpu_topology\u003dcpu_tp,"},{"line_number":25,"context_line":"                    cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":26,"context_line":"                    cpuset\u003dset([0, 1]))"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    ce1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"},{"line_number":29,"context_line":"                    cpu_topology\u003dcpu_tp,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_5ee22ea2","line":26,"range":{"start_line":26,"start_character":20,"end_line":26,"end_character":37},"in_reply_to":"7faddb67_81a93025","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    scenarios \u003d [(\u0027v2_77\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":39,"context_line":"    sample_dir \u003d \"os-server-topology\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def stub_out_instance_attr_load(self):"},{"line_number":42,"context_line":"        def _load_numa(self, *args, **argv):"},{"line_number":43,"context_line":"            self.numa_topology \u003d fake_get_numa()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.stub_out(\u0027nova.objects.instance.Instance._load_numa_topology\u0027,"},{"line_number":46,"context_line":"                      _load_numa)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class ServerTopologySamplesJsonTestV277_Admin(ServerTopologySamplesJson):"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_0139c0f0","line":46,"range":{"start_line":41,"start_character":0,"end_line":46,"end_character":33},"updated":"2019-08-28 15:05:13.000000000","message":"Can we do this in \u0027setUp\u0027?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    scenarios \u003d [(\u0027v2_77\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":39,"context_line":"    sample_dir \u003d \"os-server-topology\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def stub_out_instance_attr_load(self):"},{"line_number":42,"context_line":"        def _load_numa(self, *args, **argv):"},{"line_number":43,"context_line":"            self.numa_topology \u003d fake_get_numa()"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.stub_out(\u0027nova.objects.instance.Instance._load_numa_topology\u0027,"},{"line_number":46,"context_line":"                      _load_numa)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class ServerTopologySamplesJsonTestV277_Admin(ServerTopologySamplesJson):"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_1edb5621","line":46,"range":{"start_line":41,"start_character":0,"end_line":46,"end_character":33},"in_reply_to":"7faddb67_0139c0f0","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":19,"context_line":"def fake_get_numa():"},{"line_number":20,"context_line":"    cpu_info \u003d {\u0027sockets\u0027: 2, \u0027cores\u0027: 1, \u0027threads\u0027: 2}"},{"line_number":21,"context_line":"    cpu_topology \u003d cpu_topo.VirtCPUTopology.from_dict(cpu_info)"},{"line_number":22,"context_line":"    cell_0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":23,"context_line":"           cpu_topology\u003dcpu_topology,"},{"line_number":24,"context_line":"           cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":25,"context_line":"           cpuset\u003dset([0, 1]))"}],"source_content_type":"text/x-python","patch_set":62,"id":"5faad753_08a2919b","line":22,"range":{"start_line":22,"start_character":56,"end_line":22,"end_character":66},"updated":"2019-09-06 20:20:53.000000000","message":"Can this...","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e5348d9da51e27243acacc66f19068856c7442c","unresolved":false,"context_lines":[{"line_number":24,"context_line":"           cpu_pinning\u003d{0: 0, 1: 5},"},{"line_number":25,"context_line":"           cpuset\u003dset([0, 1]))"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    cell_1 \u003d numa.InstanceNUMACell(node\u003d1, memory\u003d2048, pagesize\u003d4, id\u003d1,"},{"line_number":28,"context_line":"           cpu_topology\u003dcpu_topology,"},{"line_number":29,"context_line":"           cpu_pinning\u003d{2: 1, 3: 8},"},{"line_number":30,"context_line":"           cpuset\u003dset([2, 3]))"}],"source_content_type":"text/x-python","patch_set":62,"id":"5faad753_a8bc9dbb","line":27,"range":{"start_line":27,"start_character":56,"end_line":27,"end_character":66},"updated":"2019-09-06 20:20:53.000000000","message":"...and this ever be different?","commit_id":"3dcb404b1fbb3eb23f98c0c0b6e1898cfec993c8"}],"nova/tests/unit/api/openstack/compute/test_server_topology.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    return objects.instance.Instance(uuid\u003dUUID, host\u003d\u0027123\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class fake_cell(object):"},{"line_number":36,"context_line":"    def __init__(self, node\u003dNone, cpuset\u003dNone, siblings\u003dNone, memory\u003dNone,"},{"line_number":37,"context_line":"                     pagesize\u003dNone, cpu_topology\u003dNone, cpu_pinning\u003dNone,"},{"line_number":38,"context_line":"                     cpu_thread_policy\u003dNone):"},{"line_number":39,"context_line":"        self.id \u003d node"},{"line_number":40,"context_line":"        self.cpuset \u003d cpuset"},{"line_number":41,"context_line":"        self.siblings \u003d siblings"},{"line_number":42,"context_line":"        self.pagesize \u003d pagesize"},{"line_number":43,"context_line":"        self.memory \u003d memory"},{"line_number":44,"context_line":"        self.cpu_topology \u003d cpu_topology"},{"line_number":45,"context_line":"        self.cpu_pinning \u003d cpu_pinning"},{"line_number":46,"context_line":"        self.cpu_thread_policy \u003d cpu_thread_policy"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class fake_cpu_topo(object):"},{"line_number":50,"context_line":"    def __init__(self, sockets\u003dNone, cores\u003dNone, threads\u003dNone):"},{"line_number":51,"context_line":"        self.sockets \u003d sockets"},{"line_number":52,"context_line":"        self.threads \u003d threads"},{"line_number":53,"context_line":"        self.cores \u003d cores"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class fake_numa(object):"},{"line_number":57,"context_line":"    def __init__(self, cells\u003dNone):"},{"line_number":58,"context_line":"        self.cells \u003d cells"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"top \u003d fake_cpu_topo(1, 2, 2)"},{"line_number":61,"context_line":"ce0 \u003d fake_cell(node\u003d0, memory\u003d1024, pagesize\u003d4096, cpu_topology\u003dtop,"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f6f79f8b","line":58,"range":{"start_line":35,"start_character":0,"end_line":58,"end_character":26},"updated":"2019-02-22 06:53:31.000000000","message":"We should use the real NUMA object","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    return objects.instance.Instance(uuid\u003dUUID, host\u003d\u0027123\u0027)"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"class fake_cell(object):"},{"line_number":36,"context_line":"    def __init__(self, node\u003dNone, cpuset\u003dNone, siblings\u003dNone, memory\u003dNone,"},{"line_number":37,"context_line":"                     pagesize\u003dNone, cpu_topology\u003dNone, cpu_pinning\u003dNone,"},{"line_number":38,"context_line":"                     cpu_thread_policy\u003dNone):"},{"line_number":39,"context_line":"        self.id \u003d node"},{"line_number":40,"context_line":"        self.cpuset \u003d cpuset"},{"line_number":41,"context_line":"        self.siblings \u003d siblings"},{"line_number":42,"context_line":"        self.pagesize \u003d pagesize"},{"line_number":43,"context_line":"        self.memory \u003d memory"},{"line_number":44,"context_line":"        self.cpu_topology \u003d cpu_topology"},{"line_number":45,"context_line":"        self.cpu_pinning \u003d cpu_pinning"},{"line_number":46,"context_line":"        self.cpu_thread_policy \u003d cpu_thread_policy"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"class fake_cpu_topo(object):"},{"line_number":50,"context_line":"    def __init__(self, sockets\u003dNone, cores\u003dNone, threads\u003dNone):"},{"line_number":51,"context_line":"        self.sockets \u003d sockets"},{"line_number":52,"context_line":"        self.threads \u003d threads"},{"line_number":53,"context_line":"        self.cores \u003d cores"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"class fake_numa(object):"},{"line_number":57,"context_line":"    def __init__(self, cells\u003dNone):"},{"line_number":58,"context_line":"        self.cells \u003d cells"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"top \u003d fake_cpu_topo(1, 2, 2)"},{"line_number":61,"context_line":"ce0 \u003d fake_cell(node\u003d0, memory\u003d1024, pagesize\u003d4096, cpu_topology\u003dtop,"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_2cdb984f","line":58,"range":{"start_line":35,"start_character":0,"end_line":58,"end_character":26},"in_reply_to":"9fdfeff1_f6f79f8b","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                siblings\u003d[[2, 3]])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ServerTopologyTestV21(test.NoDBTestCase):"},{"line_number":74,"context_line":"    mock_topology_method \u003d \u0027get_by_instance_uuid\u0027"},{"line_number":75,"context_line":"    api_version \u003d \u00272.1\u0027"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_d6ecdbbc","line":73,"range":{"start_line":73,"start_character":25,"end_line":73,"end_character":27},"updated":"2019-02-22 06:53:31.000000000","message":"270?","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                siblings\u003d[[2, 3]])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"class ServerTopologyTestV21(test.NoDBTestCase):"},{"line_number":74,"context_line":"    mock_topology_method \u003d \u0027get_by_instance_uuid\u0027"},{"line_number":75,"context_line":"    api_version \u003d \u00272.1\u0027"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_4cde1c3f","line":73,"range":{"start_line":73,"start_character":25,"end_line":73,"end_character":27},"in_reply_to":"9fdfeff1_d6ecdbbc","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027, version\u003dself.api_version)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_get_diagnostics_policy_failed(self):"},{"line_number":153,"context_line":"        rule_name \u003d \"os_compute_api:os-server-topology:index\""},{"line_number":154,"context_line":"        self.policy.set_rules({rule_name: \"project:non_fake\"})"},{"line_number":155,"context_line":"        exc \u003d self.assertRaises("},{"line_number":156,"context_line":"            exception.PolicyNotAuthorized,"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_9615f39d","line":153,"range":{"start_line":153,"start_character":21,"end_line":153,"end_character":61},"updated":"2019-02-22 06:53:31.000000000","message":"we also have policy for host info, can we test that also?","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027\u0027, version\u003dself.api_version)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    def test_get_diagnostics_policy_failed(self):"},{"line_number":153,"context_line":"        rule_name \u003d \"os_compute_api:os-server-topology:index\""},{"line_number":154,"context_line":"        self.policy.set_rules({rule_name: \"project:non_fake\"})"},{"line_number":155,"context_line":"        exc \u003d self.assertRaises("},{"line_number":156,"context_line":"            exception.PolicyNotAuthorized,"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_ece4b010","line":153,"range":{"start_line":153,"start_character":21,"end_line":153,"end_character":61},"in_reply_to":"9fdfeff1_9615f39d","updated":"2019-02-22 10:22:42.000000000","message":"struggle on how to test it.","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e32d964f19bf3bad5e956354047a0e70509adcaf","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":107,"context_line":"        req \u003d self._get_request()"},{"line_number":108,"context_line":"        res \u003d req.get_response(self.router)"},{"line_number":109,"context_line":"        self.assertEqual(res.status_int, 500)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027, fake_instance_get)"},{"line_number":112,"context_line":"    def test_get_topology_with_none_topology(self):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_b7eb3576","line":109,"range":{"start_line":109,"start_character":41,"end_line":109,"end_character":45},"updated":"2019-02-25 03:49:07.000000000","message":"we should never return 500...for this case we should return 404","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":107,"context_line":"        req \u003d self._get_request()"},{"line_number":108,"context_line":"        res \u003d req.get_response(self.router)"},{"line_number":109,"context_line":"        self.assertEqual(res.status_int, 500)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027, fake_instance_get)"},{"line_number":112,"context_line":"    def test_get_topology_with_none_topology(self):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_124ecfc0","line":109,"range":{"start_line":109,"start_character":41,"end_line":109,"end_character":45},"in_reply_to":"9fdfeff1_b7eb3576","updated":"2019-02-25 06:09:20.000000000","message":"Done","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e32d964f19bf3bad5e956354047a0e70509adcaf","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               side_effect\u003dexcep(instance_uuid\u003dUUID)):"},{"line_number":118,"context_line":"            res \u003d req.get_response(self.router)"},{"line_number":119,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":120,"context_line":"        self.assertEqual(expect, output)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"class ServerTopologyEnforcementV271(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_77fdcd39","line":120,"updated":"2019-02-25 03:49:07.000000000","message":"I hope you add one more case for this case https://github.com/openstack/nova/blob/master/nova/objects/instance_numa_topology.py#L201","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                               side_effect\u003dexcep(instance_uuid\u003dUUID)):"},{"line_number":118,"context_line":"            res \u003d req.get_response(self.router)"},{"line_number":119,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":120,"context_line":"        self.assertEqual(expect, output)"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":""},{"line_number":123,"context_line":"class ServerTopologyEnforcementV271(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":22,"id":"9fdfeff1_324993b6","line":120,"in_reply_to":"9fdfeff1_77fdcd39","updated":"2019-02-25 06:09:20.000000000","message":"Done","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_987c99b7","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"updated":"2019-03-01 22:35:42.000000000","message":"remove","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_64efc61d","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":22},"in_reply_to":"9fdfeff1_987c99b7","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":79,"context_line":"        self.assertEqual(expected, output)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_get_topology(self):"},{"line_number":82,"context_line":"        topology \u003d self.get_numa()"},{"line_number":83,"context_line":"        expect \u003d {\u0027cpu_thread_policy\u0027: \u0027require\u0027,"},{"line_number":84,"context_line":"                    \u0027nodes\u0027: [{\u0027cores\u0027: 2,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_3847ad7a","line":81,"updated":"2019-03-01 22:35:42.000000000","message":"This is redundant with the functional test.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":79,"context_line":"        self.assertEqual(expected, output)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_get_topology(self):"},{"line_number":82,"context_line":"        topology \u003d self.get_numa()"},{"line_number":83,"context_line":"        expect \u003d {\u0027cpu_thread_policy\u0027: \u0027require\u0027,"},{"line_number":84,"context_line":"                    \u0027nodes\u0027: [{\u0027cores\u0027: 2,"}],"source_content_type":"text/x-python","patch_set":33,"id":"9fdfeff1_44d64256","line":81,"in_reply_to":"9fdfeff1_3847ad7a","updated":"2019-03-04 07:40:36.000000000","message":"This test case includes host information which only visible for Admin. functional test does not include this information, thus the fine control policy is tested.\n\nso it\u0027s better keep this test case.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_c9ff4365","line":1,"updated":"2019-07-29 15:07:37.000000000","message":"Remove this line.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_b15ca5ed","line":1,"in_reply_to":"7faddb67_c9ff4365","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":79,"context_line":"        self.assertEqual(expected, output)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_get_topology(self):"},{"line_number":82,"context_line":"        topology \u003d self.get_numa()"},{"line_number":83,"context_line":"        expect \u003d {\u0027nodes\u0027: [{"},{"line_number":84,"context_line":"                             \u0027memory_mb\u0027: 1024,"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_89f94b81","line":81,"updated":"2019-07-29 15:07:37.000000000","message":"This is redundant with the functional test, just leave the unit tests to be negative scenarios and things not covered in the functional tests.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":79,"context_line":"        self.assertEqual(expected, output)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_get_topology(self):"},{"line_number":82,"context_line":"        topology \u003d self.get_numa()"},{"line_number":83,"context_line":"        expect \u003d {\u0027nodes\u0027: [{"},{"line_number":84,"context_line":"                             \u0027memory_mb\u0027: 1024,"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_5173f180","line":81,"in_reply_to":"7faddb67_89f94b81","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":107,"context_line":"        req \u003d self._get_request()"},{"line_number":108,"context_line":"        res \u003d req.get_response(self.router)"},{"line_number":109,"context_line":"        self.assertEqual(res.status_int, 404)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027, fake_instance_get)"},{"line_number":112,"context_line":"    def test_get_topology_with_none_topology(self):"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_e9379f4c","line":109,"range":{"start_line":109,"start_character":25,"end_line":109,"end_character":44},"updated":"2019-07-29 15:07:37.000000000","message":"Swap these args since it should be (expected, actual).","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":106,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":107,"context_line":"        req \u003d self._get_request()"},{"line_number":108,"context_line":"        res \u003d req.get_response(self.router)"},{"line_number":109,"context_line":"        self.assertEqual(res.status_int, 404)"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027, fake_instance_get)"},{"line_number":112,"context_line":"    def test_get_topology_with_none_topology(self):"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_716e2d97","line":109,"range":{"start_line":109,"start_character":25,"end_line":109,"end_character":44},"in_reply_to":"7faddb67_e9379f4c","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            res \u003d req.get_response(self.router)"},{"line_number":129,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":130,"context_line":"        self.assertEqual(expect, output)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class ServerTopologyEnforcementV275(test.NoDBTestCase):"},{"line_number":134,"context_line":"    api_version \u003d \u00272.75\u0027"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_09147b9f","line":131,"updated":"2019-07-29 15:07:37.000000000","message":"You should have a test where you try to hit this route with 2.74.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":128,"context_line":"            res \u003d req.get_response(self.router)"},{"line_number":129,"context_line":"        output \u003d jsonutils.loads(res.body)"},{"line_number":130,"context_line":"        self.assertEqual(expect, output)"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"class ServerTopologyEnforcementV275(test.NoDBTestCase):"},{"line_number":134,"context_line":"    api_version \u003d \u00272.75\u0027"}],"source_content_type":"text/x-python","patch_set":50,"id":"7faddb67_b12a6529","line":131,"in_reply_to":"7faddb67_09147b9f","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":67,"context_line":"    def test_get_topology_with_none_topology(self, fake_get):"},{"line_number":68,"context_line":"        expect \u003d {\u0027nodes:\u0027: [], \u0027cpu_topology\u0027: {}, \u0027pagesize_kb\u0027: None}"},{"line_number":69,"context_line":"        inst \u003d objects.instance.Instance(uuid\u003dUUID, host\u003d\u0027123\u0027)"},{"line_number":70,"context_line":"        inst.numa_topology \u003d None"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_c02254a3","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":44},"updated":"2019-08-05 05:24:02.000000000","message":"test_get_topology_with_no_topology","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":64,"context_line":"        self.assertEqual(404, res.status_int)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":67,"context_line":"    def test_get_topology_with_none_topology(self, fake_get):"},{"line_number":68,"context_line":"        expect \u003d {\u0027nodes:\u0027: [], \u0027cpu_topology\u0027: {}, \u0027pagesize_kb\u0027: None}"},{"line_number":69,"context_line":"        inst \u003d objects.instance.Instance(uuid\u003dUUID, host\u003d\u0027123\u0027)"},{"line_number":70,"context_line":"        inst.numa_topology \u003d None"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_e0075081","line":67,"range":{"start_line":67,"start_character":8,"end_line":67,"end_character":44},"in_reply_to":"7faddb67_c02254a3","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.assertEqual(expect, output)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":79,"context_line":"    def test_get_topology_cpu_pining_None_Null(self, fake_get):"},{"line_number":80,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":81,"context_line":"                             {\u0027memory_mb\u0027: 1024,"},{"line_number":82,"context_line":"                              \u0027siblings\u0027: [],"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_002dcc93","line":79,"range":{"start_line":79,"start_character":37,"end_line":79,"end_character":46},"updated":"2019-08-05 05:24:02.000000000","message":"s/None_Null/none_null/,\ns/pining/pinning/\nand just call it test_get_topology_cpu_pinning_with_none","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        self.assertEqual(expect, output)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":79,"context_line":"    def test_get_topology_cpu_pining_None_Null(self, fake_get):"},{"line_number":80,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":81,"context_line":"                             {\u0027memory_mb\u0027: 1024,"},{"line_number":82,"context_line":"                              \u0027siblings\u0027: [],"}],"source_content_type":"text/x-python","patch_set":52,"id":"7faddb67_20d8081c","line":79,"range":{"start_line":79,"start_character":37,"end_line":79,"end_character":46},"in_reply_to":"7faddb67_002dcc93","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(ServerTopologyTestV277, self).setUp()"},{"line_number":35,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":36,"context_line":"                            \u0027/v2/fake/servers/%s/topology\u0027 % UUID,"},{"line_number":37,"context_line":"                            version\u003dself.api_version,"},{"line_number":38,"context_line":"                            use_admin_context\u003dTrue)"},{"line_number":39,"context_line":"        self.controller \u003d server_topology.ServerTopologyController()"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_c0a4624e","line":36,"range":{"start_line":36,"start_character":61,"end_line":36,"end_character":65},"updated":"2019-08-22 14:31:09.000000000","message":"I\u0027d personally rather you stored this as an attribute on self:\n\n  self.uuid \u003d uuids.instance\n\nor similar","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(ServerTopologyTestV277, self).setUp()"},{"line_number":35,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":36,"context_line":"                            \u0027/v2/fake/servers/%s/topology\u0027 % UUID,"},{"line_number":37,"context_line":"                            version\u003dself.api_version,"},{"line_number":38,"context_line":"                            use_admin_context\u003dTrue)"},{"line_number":39,"context_line":"        self.controller \u003d server_topology.ServerTopologyController()"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_23669257","line":36,"range":{"start_line":36,"start_character":61,"end_line":36,"end_character":65},"in_reply_to":"7faddb67_c0a4624e","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                            use_admin_context\u003dTrue)"},{"line_number":39,"context_line":"        self.controller \u003d server_topology.ServerTopologyController()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _fake_numa(self, cpu_pinning\u003d{0: 0, 1: 5}):"},{"line_number":42,"context_line":"        ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":43,"context_line":"                                    cpu_topology\u003dNone,"},{"line_number":44,"context_line":"                                    cpu_pinning\u003dcpu_pinning,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_2042166a","line":41,"range":{"start_line":41,"start_character":25,"end_line":41,"end_character":51},"updated":"2019-08-22 14:31:09.000000000","message":"You can\u0027t do this in Python:\n\n    \u003e\u003e\u003e def test(x\u003d{1: \u0027foo\u0027, 2: \u0027bar\u0027}):\n    ...     print(x)\n    ...     print(3 in x)\n    ...     x[3] \u003d \u0027baz\u0027\n    ... \n    \u003e\u003e\u003e test()\n    {1: \u0027foo\u0027, 2: \u0027bar\u0027}\n    False\n    \u003e\u003e\u003e test()\n    {1: \u0027foo\u0027, 2: \u0027bar\u0027, 3: \u0027baz\u0027}\n    True\n\nDo\n\n    def _fake_numa(self, cpu_pinning\u003dNone):\n        cpu_pinning \u003d cpu_pinning or {0: 0, 1: 5}\n        ...\n\ninstead","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                            use_admin_context\u003dTrue)"},{"line_number":39,"context_line":"        self.controller \u003d server_topology.ServerTopologyController()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _fake_numa(self, cpu_pinning\u003d{0: 0, 1: 5}):"},{"line_number":42,"context_line":"        ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":43,"context_line":"                                    cpu_topology\u003dNone,"},{"line_number":44,"context_line":"                                    cpu_pinning\u003dcpu_pinning,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_43586e89","line":41,"range":{"start_line":41,"start_character":25,"end_line":41,"end_character":51},"in_reply_to":"7faddb67_2042166a","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return numa.InstanceNUMATopology(cells\u003d[ce0])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027,"},{"line_number":50,"context_line":"                side_effect\u003dexc.HTTPNotFound(\u0027Fake\u0027))"},{"line_number":51,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":52,"context_line":"        excep \u003d self.assertRaises(exc.HTTPNotFound,"},{"line_number":53,"context_line":"                         self.controller.index,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_00591a5a","line":50,"range":{"start_line":50,"start_character":15,"end_line":50,"end_character":16},"updated":"2019-08-22 14:31:09.000000000","message":"nit: indentation","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":47,"context_line":"        return numa.InstanceNUMATopology(cells\u003d[ce0])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027,"},{"line_number":50,"context_line":"                side_effect\u003dexc.HTTPNotFound(\u0027Fake\u0027))"},{"line_number":51,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":52,"context_line":"        excep \u003d self.assertRaises(exc.HTTPNotFound,"},{"line_number":53,"context_line":"                         self.controller.index,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_03527669","line":50,"range":{"start_line":50,"start_character":15,"end_line":50,"end_character":16},"in_reply_to":"7faddb67_00591a5a","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027,"},{"line_number":50,"context_line":"                side_effect\u003dexc.HTTPNotFound(\u0027Fake\u0027))"},{"line_number":51,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":52,"context_line":"        excep \u003d self.assertRaises(exc.HTTPNotFound,"},{"line_number":53,"context_line":"                         self.controller.index,"},{"line_number":54,"context_line":"                         self.req,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_c0522236","line":51,"range":{"start_line":51,"start_character":31,"end_line":51,"end_character":42},"updated":"2019-08-22 14:31:09.000000000","message":"invalid","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027,"},{"line_number":50,"context_line":"                side_effect\u003dexc.HTTPNotFound(\u0027Fake\u0027))"},{"line_number":51,"context_line":"    def test_get_topology_with_non_existed_instance(self, mock_get):"},{"line_number":52,"context_line":"        excep \u003d self.assertRaises(exc.HTTPNotFound,"},{"line_number":53,"context_line":"                         self.controller.index,"},{"line_number":54,"context_line":"                         self.req,"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_234f72bf","line":51,"range":{"start_line":51,"start_character":31,"end_line":51,"end_character":42},"in_reply_to":"7faddb67_c0522236","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.assertEqual(expect, output)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":69,"context_line":"    def test_get_topology_cpu_pining_with_none(self, fake_get):"},{"line_number":70,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":71,"context_line":"                             {\u0027memory_mb\u0027: 1024,"},{"line_number":72,"context_line":"                              \u0027siblings\u0027: [],"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_602d6ead","line":69,"range":{"start_line":69,"start_character":30,"end_line":69,"end_character":36},"updated":"2019-08-22 14:31:09.000000000","message":"pinning","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        self.assertEqual(expect, output)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":69,"context_line":"    def test_get_topology_cpu_pining_with_none(self, fake_get):"},{"line_number":70,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":71,"context_line":"                             {\u0027memory_mb\u0027: 1024,"},{"line_number":72,"context_line":"                              \u0027siblings\u0027: [],"}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_23d452bb","line":69,"range":{"start_line":69,"start_character":30,"end_line":69,"end_character":36},"in_reply_to":"7faddb67_602d6ead","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":69,"context_line":"    def test_get_topology_cpu_pining_with_none(self, fake_get):"},{"line_number":70,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":71,"context_line":"                             {\u0027memory_mb\u0027: 1024,"},{"line_number":72,"context_line":"                              \u0027siblings\u0027: [],"},{"line_number":73,"context_line":"                              \u0027vcpu_set\u0027: set([0, 1]),"},{"line_number":74,"context_line":"                              \u0027host_numa_node\u0027: 0,"},{"line_number":75,"context_line":"                              \u0027cpu_pinning\u0027:{}}],"},{"line_number":76,"context_line":"                  \u0027cpu_topology\u0027: {},"},{"line_number":77,"context_line":"                  \u0027pagesize_kb\u0027: 4}"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_8032ea0e","line":75,"range":{"start_line":71,"start_character":29,"end_line":75,"end_character":49},"updated":"2019-08-22 14:31:09.000000000","message":"nit: this indentation is weird. Maybe dedent by ~ 10 spaces?","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":69,"context_line":"    def test_get_topology_cpu_pining_with_none(self, fake_get):"},{"line_number":70,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":71,"context_line":"                             {\u0027memory_mb\u0027: 1024,"},{"line_number":72,"context_line":"                              \u0027siblings\u0027: [],"},{"line_number":73,"context_line":"                              \u0027vcpu_set\u0027: set([0, 1]),"},{"line_number":74,"context_line":"                              \u0027host_numa_node\u0027: 0,"},{"line_number":75,"context_line":"                              \u0027cpu_pinning\u0027:{}}],"},{"line_number":76,"context_line":"                  \u0027cpu_topology\u0027: {},"},{"line_number":77,"context_line":"                  \u0027pagesize_kb\u0027: 4}"},{"line_number":78,"context_line":""}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_43e62eb3","line":75,"range":{"start_line":71,"start_character":29,"end_line":75,"end_character":49},"in_reply_to":"7faddb67_8032ea0e","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"559fe2f498e338f2bb0828a14e13e20922375978","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova.objects import instance_numa as numa"},{"line_number":22,"context_line":"from nova import test"},{"line_number":23,"context_line":"from nova.tests.unit.api.openstack import fakes"},{"line_number":24,"context_line":"from webob import exc"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class ServerTopologyTestV277(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_55bd3ad5","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":21},"updated":"2019-08-28 11:09:46.000000000","message":"You should move this import behind the Line15","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":21,"context_line":"from nova.objects import instance_numa as numa"},{"line_number":22,"context_line":"from nova import test"},{"line_number":23,"context_line":"from nova.tests.unit.api.openstack import fakes"},{"line_number":24,"context_line":"from webob import exc"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class ServerTopologyTestV277(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_befc823f","line":24,"range":{"start_line":24,"start_character":0,"end_line":24,"end_character":21},"in_reply_to":"7faddb67_55bd3ad5","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(ServerTopologyTestV277, self).setUp()"},{"line_number":33,"context_line":"        self.uuid \u003d uuids.instance"},{"line_number":34,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":35,"context_line":"                            \u0027/v2/fake/servers/%s/topology\u0027 % self.uuid,"},{"line_number":36,"context_line":"                            version\u003dself.api_version,"},{"line_number":37,"context_line":"                            use_admin_context\u003dTrue)"},{"line_number":38,"context_line":"        self.controller \u003d server_topology.ServerTopologyController()"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_6c4e6b6f","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":28},"updated":"2019-08-28 15:05:13.000000000","message":"nit: can drop thiiiis much whitespace :)","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        super(ServerTopologyTestV277, self).setUp()"},{"line_number":33,"context_line":"        self.uuid \u003d uuids.instance"},{"line_number":34,"context_line":"        self.req \u003d fakes.HTTPRequest.blank("},{"line_number":35,"context_line":"                            \u0027/v2/fake/servers/%s/topology\u0027 % self.uuid,"},{"line_number":36,"context_line":"                            version\u003dself.api_version,"},{"line_number":37,"context_line":"                            use_admin_context\u003dTrue)"},{"line_number":38,"context_line":"        self.controller \u003d server_topology.ServerTopologyController()"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_de9cde0f","line":35,"range":{"start_line":35,"start_character":12,"end_line":35,"end_character":28},"in_reply_to":"7faddb67_6c4e6b6f","updated":"2019-08-30 05:19:05.000000000","message":"Done.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _fake_numa(self, cpu_pinning\u003dNone):"},{"line_number":41,"context_line":"        ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":42,"context_line":"                                    cpu_topology\u003dNone,"},{"line_number":43,"context_line":"                                    cpu_pinning\u003dcpu_pinning,"},{"line_number":44,"context_line":"                                    cpuset\u003dset([0, 1]))"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_0c5577fa","line":42,"range":{"start_line":42,"start_character":12,"end_line":42,"end_character":36},"updated":"2019-08-28 15:05:13.000000000","message":"here too","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"    def _fake_numa(self, cpu_pinning\u003dNone):"},{"line_number":41,"context_line":"        ce0 \u003d numa.InstanceNUMACell(node\u003d0, memory\u003d1024, pagesize\u003d4, id\u003d0,"},{"line_number":42,"context_line":"                                    cpu_topology\u003dNone,"},{"line_number":43,"context_line":"                                    cpu_pinning\u003dcpu_pinning,"},{"line_number":44,"context_line":"                                    cpuset\u003dset([0, 1]))"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_fe9f5aff","line":42,"range":{"start_line":42,"start_character":12,"end_line":42,"end_character":36},"in_reply_to":"7faddb67_0c5577fa","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               side_effect\u003dexc.HTTPNotFound(\u0027Fake\u0027))"},{"line_number":50,"context_line":"    def test_get_topology_with_invalid_instance(self, mock_get):"},{"line_number":51,"context_line":"        excep \u003d self.assertRaises(exc.HTTPNotFound,"},{"line_number":52,"context_line":"                         self.controller.index,"},{"line_number":53,"context_line":"                         self.req,"},{"line_number":54,"context_line":"                         self.uuid)"},{"line_number":55,"context_line":"        self.assertEqual(\"Fake\", str(excep))"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_cc3e7fb8","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":25},"updated":"2019-08-28 15:05:13.000000000","message":"and here","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":49,"context_line":"               side_effect\u003dexc.HTTPNotFound(\u0027Fake\u0027))"},{"line_number":50,"context_line":"    def test_get_topology_with_invalid_instance(self, mock_get):"},{"line_number":51,"context_line":"        excep \u003d self.assertRaises(exc.HTTPNotFound,"},{"line_number":52,"context_line":"                         self.controller.index,"},{"line_number":53,"context_line":"                         self.req,"},{"line_number":54,"context_line":"                         self.uuid)"},{"line_number":55,"context_line":"        self.assertEqual(\"Fake\", str(excep))"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_9e8666ba","line":52,"range":{"start_line":52,"start_character":12,"end_line":52,"end_character":25},"in_reply_to":"7faddb67_cc3e7fb8","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":58,"context_line":"    def test_get_topology_with_no_topology(self, fake_get):"},{"line_number":59,"context_line":"        expect \u003d {\u0027nodes:\u0027: [], \u0027pagesize_kb\u0027: None}"},{"line_number":60,"context_line":"        inst \u003d objects.instance.Instance(uuid\u003dself.uuid, host\u003d\u0027123\u0027)"},{"line_number":61,"context_line":"        inst.numa_topology \u003d None"},{"line_number":62,"context_line":"        fake_get.return_value \u003d inst"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_be06c220","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":24},"updated":"2019-08-30 05:19:05.000000000","message":"We got this wrong test case. Fixed.","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":68,"context_line":"    def test_get_topology_cpu_pinning_with_none(self, fake_get):"},{"line_number":69,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":70,"context_line":"                    {\u0027memory_mb\u0027: 1024,"},{"line_number":71,"context_line":"                     \u0027siblings\u0027: [],"},{"line_number":72,"context_line":"                     \u0027vcpu_set\u0027: set([0, 1]),"},{"line_number":73,"context_line":"                     \u0027host_node\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_e106e421","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":20},"updated":"2019-08-28 15:05:13.000000000","message":"here too","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":68,"context_line":"    def test_get_topology_cpu_pinning_with_none(self, fake_get):"},{"line_number":69,"context_line":"        expect \u003d {\u0027nodes\u0027: ["},{"line_number":70,"context_line":"                    {\u0027memory_mb\u0027: 1024,"},{"line_number":71,"context_line":"                     \u0027siblings\u0027: [],"},{"line_number":72,"context_line":"                     \u0027vcpu_set\u0027: set([0, 1]),"},{"line_number":73,"context_line":"                     \u0027host_node\u0027: 0,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_feb8ba75","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":20},"in_reply_to":"7faddb67_e106e421","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def test_hit_topology_before277(self):"},{"line_number":90,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":91,"context_line":"                            \u0027/v2/fake/servers/%s/topology\u0027 % self.uuid,"},{"line_number":92,"context_line":"                            version\u003d\u00272.76\u0027)"},{"line_number":93,"context_line":"        excep \u003d self.assertRaises(exception.VersionNotFoundForAPIMethod,"},{"line_number":94,"context_line":"                         self.controller.index,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_ec349be1","line":91,"range":{"start_line":91,"start_character":12,"end_line":91,"end_character":28},"updated":"2019-08-28 15:05:13.000000000","message":"here too","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    def test_hit_topology_before277(self):"},{"line_number":90,"context_line":"        req \u003d fakes.HTTPRequest.blank("},{"line_number":91,"context_line":"                            \u0027/v2/fake/servers/%s/topology\u0027 % self.uuid,"},{"line_number":92,"context_line":"                            version\u003d\u00272.76\u0027)"},{"line_number":93,"context_line":"        excep \u003d self.assertRaises(exception.VersionNotFoundForAPIMethod,"},{"line_number":94,"context_line":"                         self.controller.index,"}],"source_content_type":"text/x-python","patch_set":60,"id":"7faddb67_deb5be7f","line":91,"range":{"start_line":91,"start_character":12,"end_line":91,"end_character":28},"in_reply_to":"7faddb67_ec349be1","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":58,"context_line":"    def test_get_topology_with_no_topology(self, fake_get):"},{"line_number":59,"context_line":"        expect \u003d {\u0027nodes\u0027: [], \u0027pagesize_kb\u0027: None}"},{"line_number":60,"context_line":"        inst \u003d objects.instance.Instance(uuid\u003dself.uuid, host\u003d\u0027123\u0027)"},{"line_number":61,"context_line":"        inst.numa_topology \u003d None"},{"line_number":62,"context_line":"        fake_get.return_value \u003d inst"}],"source_content_type":"text/x-python","patch_set":61,"id":"7faddb67_94f2c29a","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":24},"updated":"2019-08-29 10:13:33.000000000","message":"Oh, so previously the test was asserting the _broken_ behavior (i.e. with an extra colon here). Lovely :D","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    @mock.patch.object(common, \u0027get_instance\u0027)"},{"line_number":58,"context_line":"    def test_get_topology_with_no_topology(self, fake_get):"},{"line_number":59,"context_line":"        expect \u003d {\u0027nodes\u0027: [], \u0027pagesize_kb\u0027: None}"},{"line_number":60,"context_line":"        inst \u003d objects.instance.Instance(uuid\u003dself.uuid, host\u003d\u0027123\u0027)"},{"line_number":61,"context_line":"        inst.numa_topology \u003d None"},{"line_number":62,"context_line":"        fake_get.return_value \u003d inst"}],"source_content_type":"text/x-python","patch_set":61,"id":"7faddb67_ca9e4305","line":59,"range":{"start_line":59,"start_character":19,"end_line":59,"end_character":24},"in_reply_to":"7faddb67_94f2c29a","updated":"2019-08-30 05:19:05.000000000","message":"Yeah, funny c\u0026p.","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"}],"nova/tests/unit/test_policy.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        self.fake_policy \u003d jsonutils.loads(fake_policy.policy_data)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        self.admin_only_rules \u003d ("},{"line_number":291,"context_line":"\"compute:server:topology:host:index\","},{"line_number":292,"context_line":"\"network:attach_external_network\","},{"line_number":293,"context_line":"\"os_compute_api:servers:create:forced_host\","},{"line_number":294,"context_line":"\"compute:servers:create:requested_destination\","}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_403cf2e0","line":291,"range":{"start_line":291,"start_character":1,"end_line":291,"end_character":8},"updated":"2019-08-22 14:31:09.000000000","message":"I\u0027m assuming there\u0027s a reason we\u0027re using \u0027compute\u0027 and no \u0027os_compute\u0027 so ignoring this","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9e8151a8976007b8c544a75b174d7c85eecb6c74","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        self.fake_policy \u003d jsonutils.loads(fake_policy.policy_data)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        self.admin_only_rules \u003d ("},{"line_number":291,"context_line":"\"compute:server:topology:host:index\","},{"line_number":292,"context_line":"\"network:attach_external_network\","},{"line_number":293,"context_line":"\"os_compute_api:servers:create:forced_host\","},{"line_number":294,"context_line":"\"compute:servers:create:requested_destination\","}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_cd1a5ac5","line":291,"range":{"start_line":291,"start_character":1,"end_line":291,"end_character":8},"in_reply_to":"7faddb67_403cf2e0","updated":"2019-08-22 15:35:55.000000000","message":"New naming rules:\n\nhttps://docs.openstack.org/oslo.policy/latest/user/usage.html#naming-policies","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":288,"context_line":"        self.fake_policy \u003d jsonutils.loads(fake_policy.policy_data)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"        self.admin_only_rules \u003d ("},{"line_number":291,"context_line":"\"compute:server:topology:host:index\","},{"line_number":292,"context_line":"\"network:attach_external_network\","},{"line_number":293,"context_line":"\"os_compute_api:servers:create:forced_host\","},{"line_number":294,"context_line":"\"compute:servers:create:requested_destination\","}],"source_content_type":"text/x-python","patch_set":57,"id":"7faddb67_839d066e","line":291,"range":{"start_line":291,"start_character":1,"end_line":291,"end_character":8},"in_reply_to":"7faddb67_cd1a5ac5","updated":"2019-08-23 06:21:14.000000000","message":"Thanks to clarify.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"}],"releasenotes/notes/add-server-subresource-topology-c52e21f36497e62c.yaml":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ef60f152347f9f906b20e62dc200e06c4145303b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":20,"id":"9fdfeff1_76772f0a","line":8,"range":{"start_line":4,"start_character":4,"end_line":8,"end_character":37},"updated":"2019-02-22 06:53:31.000000000","message":"also talk about the new policy?","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9f3e7d5c3ccc374fc3811b7627edd84759b1ca44","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":20,"id":"9fdfeff1_0ce014f8","line":8,"range":{"start_line":4,"start_character":4,"end_line":8,"end_character":37},"in_reply_to":"9fdfeff1_76772f0a","updated":"2019-02-22 10:22:42.000000000","message":"Done","commit_id":"af051a40a82ba9594a610935505e4fba89098468"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d1c9c631475a7e8352f7b5b59fe77c200990fe25","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":"    "},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"9fdfeff1_578769b7","line":9,"updated":"2019-02-25 03:52:01.000000000","message":"remove those extra blank space","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"ae4873e238beba1c2d70b14bdf4124bd87ff6e7f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":"    "},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":22,"id":"9fdfeff1_f2c8eb21","line":9,"in_reply_to":"9fdfeff1_578769b7","updated":"2019-02-25 06:09:20.000000000","message":"Done","commit_id":"ffcfdd9711af405d86776eb56f76a00632650a5e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_582dd1ac","line":4,"range":{"start_line":4,"start_character":34,"end_line":4,"end_character":39},"updated":"2019-03-01 22:35:42.000000000","message":"has been added to the servers API","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_a4728eaf","line":4,"range":{"start_line":4,"start_character":34,"end_line":4,"end_character":39},"in_reply_to":"9fdfeff1_582dd1ac","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_18374901","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":12},"updated":"2019-03-01 22:35:42.000000000","message":"A response with...","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, including sockets,"},{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_84718aab","line":6,"range":{"start_line":6,"start_character":4,"end_line":6,"end_character":12},"in_reply_to":"9fdfeff1_18374901","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_f81da577","line":10,"range":{"start_line":10,"start_character":46,"end_line":10,"end_character":66},"updated":"2019-03-01 22:35:42.000000000","message":"No it\u0027s not, it\u0027s admin-or-owner by default, with some of it being admin-only by default.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_98557921","line":10,"range":{"start_line":10,"start_character":4,"end_line":10,"end_character":9},"updated":"2019-03-01 22:35:42.000000000","message":"The","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_a4804e4b","line":10,"range":{"start_line":10,"start_character":4,"end_line":10,"end_character":9},"in_reply_to":"9fdfeff1_98557921","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    cores, threads, vcpu set, CPU pinning, siblings, memory size, page size, thread"},{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_04b27a4a","line":10,"range":{"start_line":10,"start_character":46,"end_line":10,"end_character":66},"in_reply_to":"9fdfeff1_f81da577","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ff021afc2d65d253b121f2862a8c2e0c0a60530e","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_b8271dc8","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":43},"updated":"2019-03-01 22:35:42.000000000","message":"This TOPOLOGY variable doesn\u0027t mean anything here, list out the actual new policy rules.","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6c17104438fa34bbd52f0f57260a0a501f51b187","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":11,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":12,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":33,"id":"9fdfeff1_045d9a14","line":11,"range":{"start_line":11,"start_character":11,"end_line":11,"end_character":43},"in_reply_to":"9fdfeff1_b8271dc8","updated":"2019-03-04 07:40:36.000000000","message":"Done","commit_id":"fbdce109d849b596ce476840d91384caee64c33a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"af9bdd8bacdb7ae317fba79a43ed26d8275774a3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    sockets, cores, threads, vcpu set, CPU pinning, siblings, memory size,"},{"line_number":8,"context_line":"    page size, thread policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    The following policy contronl information exposed by this API."},{"line_number":11,"context_line":"    * os_compute_api:servers:topology:list - The API is avalible to"},{"line_number":12,"context_line":"    admin-or-onwer by default."},{"line_number":13,"context_line":"    * os_compute_api:servers:topology:host_info:list - Keep NUMA host"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_e3eac30c","line":10,"updated":"2019-03-04 13:58:38.000000000","message":"Add a blank line between line 10 and 11.","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"324ae21519364418166efa495d4c35d72491e635","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    sockets, cores, threads, vcpu set, CPU pinning, siblings, memory size,"},{"line_number":8,"context_line":"    page size, thread policy and host NUMA node number."},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    The following policy contronl information exposed by this API."},{"line_number":11,"context_line":"    * os_compute_api:servers:topology:list - The API is avalible to"},{"line_number":12,"context_line":"    admin-or-onwer by default."},{"line_number":13,"context_line":"    * os_compute_api:servers:topology:host_info:list - Keep NUMA host"}],"source_content_type":"text/x-yaml","patch_set":36,"id":"9fdfeff1_5ed60256","line":10,"in_reply_to":"9fdfeff1_e3eac30c","updated":"2019-03-04 14:49:27.000000000","message":"Done","commit_id":"a1bcc2733b74d3105505639b25245bfc341b80cc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_e910ffaa","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":33},"updated":"2019-07-29 15:07:37.000000000","message":"``topology``","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_89270b13","line":4,"range":{"start_line":4,"start_character":34,"end_line":4,"end_character":39},"updated":"2019-07-29 15:07:37.000000000","message":"has been added to the","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_d1fe0104","line":4,"range":{"start_line":4,"start_character":34,"end_line":4,"end_character":39},"in_reply_to":"7faddb67_89270b13","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_f101bd05","line":4,"range":{"start_line":4,"start_character":23,"end_line":4,"end_character":33},"in_reply_to":"7faddb67_e910ffaa","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    These information exposed by this API is admin only by default, and fine control"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_896ceb36","line":6,"range":{"start_line":4,"start_character":54,"end_line":6,"end_character":12},"updated":"2019-07-29 15:07:37.000000000","message":"This doesn\u0027t format very nicely:\n\nhttp://logs.openstack.org/76/621476/50/check/build-openstack-releasenotes/dc54ed2/html/unreleased.html#new-features\n\nThe sentence starting with \"resource with each\" doesn\u0027t really make sense to me either. Start it as a new sentence.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource \u0027topology\u0027 added to servers API:"},{"line_number":5,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    These information exposed by this API is admin only by default, and fine control"}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_5112115a","line":6,"range":{"start_line":4,"start_character":54,"end_line":6,"end_character":12},"in_reply_to":"7faddb67_896ceb36","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":10,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":11,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_e95ebf74","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":9},"updated":"2019-07-29 15:07:37.000000000","message":"The","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":10,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":11,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_111c9968","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":9},"in_reply_to":"7faddb67_e95ebf74","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"75bfe4f6ffd4b2c43f4b4e536d003eadcf946b3f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":10,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":11,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_494fd3bc","line":10,"range":{"start_line":10,"start_character":13,"end_line":10,"end_character":21},"updated":"2019-07-29 15:07:37.000000000","message":"This is a code variable and makes no sense to an operator reading this. You need to list both policy rules in full and what they mean.","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"65c8bd3411aff59e3ad1b8b1eabc84693e2768c6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    These information exposed by this API is admin only by default, and fine control"},{"line_number":10,"context_line":"    policy ``TOPOLOGY % \u0027index:host_info\u0027`` use to keep host only information to"},{"line_number":11,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":50,"id":"7faddb67_710dcd33","line":10,"range":{"start_line":10,"start_character":13,"end_line":10,"end_character":21},"in_reply_to":"7faddb67_494fd3bc","updated":"2019-07-30 07:49:44.000000000","message":"Done","commit_id":"89428d23ea6d92fb0d37dd8bc420e741bc31aaac"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8a0d033e6ad78a5d5777416706af1c2b89d9dac2","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":"    "},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"}],"source_content_type":"text/x-yaml","patch_set":51,"id":"7faddb67_8a711d47","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":4},"updated":"2019-07-31 02:41:26.000000000","message":"remove those extra spaces","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":"    "},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"}],"source_content_type":"text/x-yaml","patch_set":51,"id":"7faddb67_0d11c704","line":5,"range":{"start_line":5,"start_character":0,"end_line":5,"end_character":4},"in_reply_to":"7faddb67_8a711d47","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"8a0d033e6ad78a5d5777416706af1c2b89d9dac2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":"    "},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":51,"id":"7faddb67_2a902943","line":7,"updated":"2019-07-31 02:41:26.000000000","message":"ditto","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ec774a39186476cca0a484def6c7f891503962f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":"    "},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":"    "},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":51,"id":"7faddb67_adf993c8","line":7,"in_reply_to":"7faddb67_2a902943","updated":"2019-07-31 07:28:36.000000000","message":"Done","commit_id":"899ccaa565d10d114d5c6e92664c5717a8634cbb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ab68fa63db0e4473a6742224dbb3b9273d5a5ac4","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:get\u0027`` use to keep host only information to"},{"line_number":13,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":52,"id":"7faddb67_8038dcd2","line":12,"range":{"start_line":12,"start_character":45,"end_line":12,"end_character":46},"updated":"2019-08-05 05:24:02.000000000","message":"an extra \"\u0027\"","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"751b17fb2a49b3fcc6ed5ded9b54bc96fb13a699","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:get\u0027`` use to keep host only information to"},{"line_number":13,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":52,"id":"7faddb67_209c8868","line":12,"range":{"start_line":12,"start_character":45,"end_line":12,"end_character":46},"in_reply_to":"7faddb67_8038dcd2","updated":"2019-08-05 07:01:43.000000000","message":"Done","commit_id":"23d55eaa709772669ca3963cfc71090c7b2b8de5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4589e79da585bfd1cb1c7e50ebdcdddc47c014ad","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:get`` use to keep host only information to"},{"line_number":13,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":53,"id":"7faddb67_0d5ab24f","line":12,"range":{"start_line":12,"start_character":42,"end_line":12,"end_character":45},"updated":"2019-08-07 14:05:43.000000000","message":"s/get/index","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9543285cc8b4c6963332dae4f23fd7cf38ea71de","unresolved":false,"context_lines":[{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:get`` use to keep host only information to"},{"line_number":13,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":53,"id":"7faddb67_00657345","line":12,"range":{"start_line":12,"start_character":42,"end_line":12,"end_character":45},"in_reply_to":"7faddb67_0d5ab24f","updated":"2019-08-09 05:48:29.000000000","message":"Done","commit_id":"626dc47990e306f1de56918788d4c03e98039587"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_a02a868e","line":6,"range":{"start_line":4,"start_character":65,"end_line":6,"end_character":41},"updated":"2019-08-22 14:31:09.000000000","message":"nit:\n\n  ... API::\n\n      GET /servers/{server_id}/topology\n\n  This ...","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_63ac8a9f","line":6,"range":{"start_line":4,"start_character":65,"end_line":6,"end_character":41},"in_reply_to":"7faddb67_a02a868e","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:index`` use to keep host only information to"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_9b181f77","line":9,"range":{"start_line":8,"start_character":0,"end_line":9,"end_character":86},"updated":"2019-08-22 14:31:09.000000000","message":"This reads rather oddly. How about:\n\n  This API provides information about the NUMA topology of a server, including\n  instance to host CPU pin mappings, if CPU pinning is used, and\n  pagesize information.","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":""},{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:index`` use to keep host only information to"}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_43806ef8","line":9,"range":{"start_line":8,"start_character":0,"end_line":9,"end_character":86},"in_reply_to":"7faddb67_9b181f77","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1d8c8806aaa1f3bcf37c5bbd3ee35dc08e4a11ee","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:index`` use to keep host only information to"},{"line_number":13,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_db3777e4","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":44},"updated":"2019-08-22 14:31:09.000000000","message":"I thought only the pinning information was admin-only, while the rest of this was available to the instance owner?\n\nDo you want to provide information about the other new policy added here?","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"06a1d965b044c074eed92a3f211efac13023856c","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Response with each cell\u0027s information belonging to one server, cores, threads,"},{"line_number":9,"context_line":"    vcpu set, CPU pinning, siblings, memory size, page size and host NUMA node number."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"    The information exposed by this API is admin only by default, and fine control"},{"line_number":12,"context_line":"    policy ``compute:server:topology:host:index`` use to keep host only information to"},{"line_number":13,"context_line":"    admin while this API expose to end user."}],"source_content_type":"text/x-yaml","patch_set":57,"id":"7faddb67_239c525a","line":13,"range":{"start_line":11,"start_character":0,"end_line":13,"end_character":44},"in_reply_to":"7faddb67_db3777e4","updated":"2019-08-23 06:21:14.000000000","message":"Done","commit_id":"33ab9acab353a3e62127d9c0c478a63fd7429af6"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ba07c415ea61fc5190241f6297c2efedbb04ecba","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    admin:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    - ``compute:server:topology:host:index``"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_ac43033f","line":21,"updated":"2019-08-28 15:05:13.000000000","message":"nit: Drop this?","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    admin:"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    - ``compute:server:topology:host:index``"},{"line_number":21,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":60,"id":"7faddb67_beaa4217","line":21,"in_reply_to":"7faddb67_ac43033f","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"8e4a8e4a5ebf9deacb63ff268920ed56622529f9"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"0071f131cd0899a6c09e24d7b9b2febeee17ec7b","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    - ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_142c92ff","line":4,"updated":"2019-08-29 10:13:33.000000000","message":"Do we need to mention the new microversion here? Maybe:\n\n  Microversion 2.78 adds a new ``topology`` sub-resource to the\n  servers API:","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5bf24576aa8254afefe61b61541c49da2208c749","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new sub-resource ``topology`` had been added to servers API:"},{"line_number":5,"context_line":""},{"line_number":6,"context_line":"    - ``GET /servers/{server_id}/topology``"},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":61,"id":"7faddb67_2a8d97d3","line":4,"in_reply_to":"7faddb67_142c92ff","updated":"2019-08-30 05:19:05.000000000","message":"Done","commit_id":"a3bf2bd92d635efaa8b567ef67b778ce8f214585"}]}
