)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"fb7789585c619e0f9f6541e2e43af20453f0258b","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    * nova topology"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The patch for microversion 2.75 in the nova side is"},{"line_number":15,"context_line":"edbe4192bf88ae4907a35ad0e96a98f0a0462836"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6467d52d2528a37348458baf4842b571a97f3ed2"},{"line_number":18,"context_line":"Implements: blueprint show-server-numa-topology"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_ce6ab77f","line":15,"updated":"2019-07-15 13:32:08.000000000","message":"You need a Depends-On footer with the Change-Id of the nova-side change.","commit_id":"c683c8e73dbdcf6a50e90321a15ea64878b72316"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7ce2e8e0540df572848b08441ed2c3703145bb3d","unresolved":false,"context_lines":[{"line_number":12,"context_line":"    * nova topology"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"The patch for microversion 2.75 in the nova side is"},{"line_number":15,"context_line":"edbe4192bf88ae4907a35ad0e96a98f0a0462836"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6467d52d2528a37348458baf4842b571a97f3ed2"},{"line_number":18,"context_line":"Implements: blueprint show-server-numa-topology"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7faddb67_08e2f9a0","line":15,"in_reply_to":"7faddb67_ce6ab77f","updated":"2019-07-16 04:47:54.000000000","message":"Done","commit_id":"c683c8e73dbdcf6a50e90321a15ea64878b72316"}],"doc/source/cli/nova.rst":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":3625,"context_line":""},{"line_number":3626,"context_line":"``\u003cserver\u003e``"},{"line_number":3627,"context_line":"  Name or ID of server."},{"line_number":3628,"context_line":""},{"line_number":3629,"context_line":".. _nova_trigger-crash-dump:"},{"line_number":3630,"context_line":""},{"line_number":3631,"context_line":"nova trigger-crash-dump"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_276350b4","line":3628,"updated":"2019-07-17 05:00:25.000000000","message":"Add \u0027nova topology\u0027 sub section.","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":3625,"context_line":""},{"line_number":3626,"context_line":"``\u003cserver\u003e``"},{"line_number":3627,"context_line":"  Name or ID of server."},{"line_number":3628,"context_line":""},{"line_number":3629,"context_line":".. _nova_trigger-crash-dump:"},{"line_number":3630,"context_line":""},{"line_number":3631,"context_line":"nova trigger-crash-dump"}],"source_content_type":"text/x-rst","patch_set":4,"id":"7faddb67_a1e5dadd","line":3628,"in_reply_to":"7faddb67_276350b4","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"006d271fa228c697cc56ee9dd2adca2b347e81ad","unresolved":false,"context_lines":[{"line_number":516,"context_line":"  Suspend a server."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"``topology``"},{"line_number":519,"context_line":"  Retrieve server topology."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"``trigger-crash-dump``"},{"line_number":522,"context_line":"  Trigger crash dump in an instance. (Supported"}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_3664c4b2","line":519,"range":{"start_line":519,"start_character":18,"end_line":519,"end_character":26},"updated":"2019-09-05 13:26:08.000000000","message":"NUMA topology? The response data is specific to NUMA isn\u0027t it?","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":516,"context_line":"  Suspend a server."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"``topology``"},{"line_number":519,"context_line":"  Retrieve server topology."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"``trigger-crash-dump``"},{"line_number":522,"context_line":"  Trigger crash dump in an instance. (Supported"}],"source_content_type":"text/x-rst","patch_set":6,"id":"5faad753_9a01f9b2","line":519,"range":{"start_line":519,"start_character":18,"end_line":519,"end_character":26},"in_reply_to":"7faddb67_3664c4b2","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"006d271fa228c697cc56ee9dd2adca2b347e81ad","unresolved":false,"context_lines":[{"line_number":3659,"context_line":""},{"line_number":3660,"context_line":"   usage: nova topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server topology information."},{"line_number":3663,"context_line":""},{"line_number":3664,"context_line":"**Positional arguments:**"},{"line_number":3665,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7faddb67_16fe68ae","line":3662,"updated":"2019-09-05 13:26:08.000000000","message":"Should we mention that some fields are only shown to users with the administrator role?\n\nShowing sample output of the command might also be nice - I wish we had more of that in our CLI docs.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":3659,"context_line":""},{"line_number":3660,"context_line":"   usage: nova topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server topology information."},{"line_number":3663,"context_line":""},{"line_number":3664,"context_line":"**Positional arguments:**"},{"line_number":3665,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"5faad753_fae26d01","line":3662,"in_reply_to":"7faddb67_16fe68ae","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2dbafeb935bb71041fc4aa8e34d190286cef3705","unresolved":false,"context_lines":[{"line_number":515,"context_line":"``suspend``"},{"line_number":516,"context_line":"  Suspend a server."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"``server-topology``"},{"line_number":519,"context_line":"  Retrieve NUMA topology of the given server."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"``trigger-crash-dump``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_44e163fe","line":518,"range":{"start_line":518,"start_character":0,"end_line":518,"end_character":19},"updated":"2019-09-06 09:35:58.000000000","message":"Commands are sorted in alphabetical order.\nSo it should be placed just after \u0027nova server-tag-set\u0027.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":515,"context_line":"``suspend``"},{"line_number":516,"context_line":"  Suspend a server."},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"``server-topology``"},{"line_number":519,"context_line":"  Retrieve NUMA topology of the given server."},{"line_number":520,"context_line":""},{"line_number":521,"context_line":"``trigger-crash-dump``"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_68d0e551","line":518,"range":{"start_line":518,"start_character":0,"end_line":518,"end_character":19},"in_reply_to":"5faad753_44e163fe","updated":"2019-09-06 20:44:01.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":3351,"context_line":"[hint: use \u0027--os-compute-api-version\u0027 flag to show help message for proper"},{"line_number":3352,"context_line":"version]"},{"line_number":3353,"context_line":""},{"line_number":3354,"context_line":".. versionadded:: 4.1.0"},{"line_number":3355,"context_line":""},{"line_number":3356,"context_line":"**Positional arguments:**"},{"line_number":3357,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_68454517","line":3354,"updated":"2019-09-06 20:44:01.000000000","message":"We could add something like this but the version would be 16.0.0.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","unresolved":false,"context_lines":[{"line_number":3351,"context_line":"[hint: use \u0027--os-compute-api-version\u0027 flag to show help message for proper"},{"line_number":3352,"context_line":"version]"},{"line_number":3353,"context_line":""},{"line_number":3354,"context_line":".. versionadded:: 4.1.0"},{"line_number":3355,"context_line":""},{"line_number":3356,"context_line":"**Positional arguments:**"},{"line_number":3357,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_e82a958e","line":3354,"in_reply_to":"5faad753_68454517","updated":"2019-09-06 20:52:29.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2dbafeb935bb71041fc4aa8e34d190286cef3705","unresolved":false,"context_lines":[{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":".. _nova_server_topology:"},{"line_number":3654,"context_line":""},{"line_number":3655,"context_line":"nova server-topology"},{"line_number":3656,"context_line":"--------------------"},{"line_number":3657,"context_line":""},{"line_number":3658,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_04c28b86","line":3655,"range":{"start_line":3655,"start_character":0,"end_line":3655,"end_character":20},"updated":"2019-09-06 09:35:58.000000000","message":"ditto","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":3652,"context_line":""},{"line_number":3653,"context_line":".. _nova_server_topology:"},{"line_number":3654,"context_line":""},{"line_number":3655,"context_line":"nova server-topology"},{"line_number":3656,"context_line":"--------------------"},{"line_number":3657,"context_line":""},{"line_number":3658,"context_line":".. code-block:: console"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_c8beb9fe","line":3655,"range":{"start_line":3655,"start_character":0,"end_line":3655,"end_character":20},"in_reply_to":"5faad753_04c28b86","updated":"2019-09-06 20:44:01.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":3659,"context_line":""},{"line_number":3660,"context_line":"   usage: nova server-topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server NUMA topology information. Host specific fields are only"},{"line_number":3663,"context_line":"visible to Admin or Owner by default."},{"line_number":3664,"context_line":""},{"line_number":3665,"context_line":"**Positional arguments:**"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_c85319e2","line":3662,"updated":"2019-09-06 20:44:01.000000000","message":"Need to mention the required microversion:\n\n(Supported by API versions \u00272.78\u0027 - \u00272.latest\u0027)","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4987b419421ef8dbc986a3f40695cb8562013faf","unresolved":false,"context_lines":[{"line_number":3660,"context_line":"   usage: nova server-topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server NUMA topology information. Host specific fields are only"},{"line_number":3663,"context_line":"visible to Admin or Owner by default."},{"line_number":3664,"context_line":""},{"line_number":3665,"context_line":"**Positional arguments:**"},{"line_number":3666,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_1852ec68","line":3663,"range":{"start_line":3663,"start_character":17,"end_line":3663,"end_character":25},"updated":"2019-09-06 13:30:05.000000000","message":"Is this accurate? Host-specific fields should only be visible to users with the admin role by default.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f8cdfa67def7742745491924c64e92fdfb97ef2a","unresolved":false,"context_lines":[{"line_number":3660,"context_line":"   usage: nova server-topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server NUMA topology information. Host specific fields are only"},{"line_number":3663,"context_line":"visible to Admin or Owner by default."},{"line_number":3664,"context_line":""},{"line_number":3665,"context_line":"**Positional arguments:**"},{"line_number":3666,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_d620a4fa","line":3663,"range":{"start_line":3663,"start_character":17,"end_line":3663,"end_character":25},"in_reply_to":"5faad753_1852ec68","updated":"2019-09-06 14:54:37.000000000","message":"https://review.opendev.org/#/c/621476/62/nova/api/openstack/compute/server_topology.py@58","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":3660,"context_line":"   usage: nova server-topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server NUMA topology information. Host specific fields are only"},{"line_number":3663,"context_line":"visible to Admin or Owner by default."},{"line_number":3664,"context_line":""},{"line_number":3665,"context_line":"**Positional arguments:**"},{"line_number":3666,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_e85055d7","line":3663,"range":{"start_line":3663,"start_character":17,"end_line":3663,"end_character":25},"in_reply_to":"5faad753_56e9147e","updated":"2019-09-06 20:44:01.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3ec13a205372cfa18fd7babb4b773c1a8cc0f9da","unresolved":false,"context_lines":[{"line_number":3660,"context_line":"   usage: nova server-topology \u003cserver\u003e"},{"line_number":3661,"context_line":""},{"line_number":3662,"context_line":"Retrieve server NUMA topology information. Host specific fields are only"},{"line_number":3663,"context_line":"visible to Admin or Owner by default."},{"line_number":3664,"context_line":""},{"line_number":3665,"context_line":"**Positional arguments:**"},{"line_number":3666,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"5faad753_56e9147e","line":3663,"range":{"start_line":3663,"start_character":17,"end_line":3663,"end_character":25},"in_reply_to":"5faad753_d620a4fa","updated":"2019-09-06 15:01:07.000000000","message":"Correct. The API can be called by admin or owner, but this field is admin-only","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9960267acb7596210e757401b4623128e9187323","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"``\u003ctags\u003e``"},{"line_number":3362,"context_line":"  Tag(s) to set."},{"line_number":3363,"context_line":""},{"line_number":3364,"context_line":".. _nova_server_topology:"},{"line_number":3365,"context_line":""},{"line_number":3366,"context_line":"nova server-topology"},{"line_number":3367,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5faad753_9221c6b7","line":3364,"range":{"start_line":3364,"start_character":3,"end_line":3364,"end_character":24},"updated":"2019-09-08 08:28:47.000000000","message":"nit: _nova_server-topology","commit_id":"aae95dcc7a79be019fc304ced76a351c16382ede"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d293ef1bcffb2b23072f788c454a8aee6e5e3775","unresolved":false,"context_lines":[{"line_number":3361,"context_line":"``\u003ctags\u003e``"},{"line_number":3362,"context_line":"  Tag(s) to set."},{"line_number":3363,"context_line":""},{"line_number":3364,"context_line":".. _nova_server_topology:"},{"line_number":3365,"context_line":""},{"line_number":3366,"context_line":"nova server-topology"},{"line_number":3367,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":8,"id":"5faad753_d7cde25d","line":3364,"range":{"start_line":3364,"start_character":3,"end_line":3364,"end_character":24},"in_reply_to":"5faad753_9221c6b7","updated":"2019-09-09 13:16:13.000000000","message":"I don\u0027t even know why these references are here since nothing is using them as far as I know. The section titles are implicit links and the ref would only be used outside of this document but nothing is using it. Anyway, it seems to be a pattern in here so whatever.","commit_id":"aae95dcc7a79be019fc304ced76a351c16382ede"}],"novaclient/tests/unit/fixture_data/servers.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               headers\u003dself.json_headers)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.topology \u003d {\u0027data\u0027: \u0027Fake topology\u0027}"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        metadata2 \u003d {\u0027metadata\u0027: {\u0027key1\u0027: \u0027val1\u0027}}"},{"line_number":203,"context_line":"        for u in (\u0027uuid1\u0027, \u0027uuid2\u0027, \u0027uuid3\u0027, \u0027uuid4\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_67e388a5","line":200,"range":{"start_line":200,"start_character":25,"end_line":200,"end_character":48},"updated":"2019-07-17 05:00:25.000000000","message":"It is not similar with a real JSON response body.\nUse a real JSON response body.","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               headers\u003dself.json_headers)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.topology \u003d {\u0027data\u0027: \u0027Fake topology\u0027}"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"        metadata2 \u003d {\u0027metadata\u0027: {\u0027key1\u0027: \u0027val1\u0027}}"},{"line_number":203,"context_line":"        for u in (\u0027uuid1\u0027, \u0027uuid2\u0027, \u0027uuid3\u0027, \u0027uuid4\u0027):"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_21200af7","line":200,"range":{"start_line":200,"start_character":25,"end_line":200,"end_character":48},"in_reply_to":"7faddb67_67e388a5","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"20c7da373865f8dd7bf73dc97f26fa10dcc3957f","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.topology \u003d {\u0027data\u0027: \"\"\"{"},{"line_number":201,"context_line":"                                    \"nodes\": [{"},{"line_number":202,"context_line":"                                                \"memory_mb\": 1024,"},{"line_number":203,"context_line":"                                                \"vcpu_set\": [0, 1]"},{"line_number":204,"context_line":"                                               }"},{"line_number":205,"context_line":"                                             ]}"},{"line_number":206,"context_line":"                                  \"\"\"}"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        metadata2 \u003d {\u0027metadata\u0027: {\u0027key1\u0027: \u0027val1\u0027}}"},{"line_number":209,"context_line":"        for u in (\u0027uuid1\u0027, \u0027uuid2\u0027, \u0027uuid3\u0027, \u0027uuid4\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_c527b8b5","line":206,"range":{"start_line":201,"start_character":0,"end_line":206,"end_character":38},"updated":"2019-09-05 10:54:39.000000000","message":"Why is this a string when the above is a dictionary (metadata1)","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.topology \u003d {\u0027data\u0027: \"\"\"{"},{"line_number":201,"context_line":"                                    \"nodes\": [{"},{"line_number":202,"context_line":"                                                \"memory_mb\": 1024,"},{"line_number":203,"context_line":"                                                \"vcpu_set\": [0, 1]"},{"line_number":204,"context_line":"                                               }"},{"line_number":205,"context_line":"                                             ]}"},{"line_number":206,"context_line":"                                  \"\"\"}"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        metadata2 \u003d {\u0027metadata\u0027: {\u0027key1\u0027: \u0027val1\u0027}}"},{"line_number":209,"context_line":"        for u in (\u0027uuid1\u0027, \u0027uuid2\u0027, \u0027uuid3\u0027, \u0027uuid4\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_7aa51db5","line":206,"range":{"start_line":201,"start_character":0,"end_line":206,"end_character":38},"in_reply_to":"7faddb67_c527b8b5","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               headers\u003dself.json_headers)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.server_topology \u003d {\u0027data\u0027: {"},{"line_number":201,"context_line":"            \"nodes\": [{"},{"line_number":202,"context_line":"                \"memory_mb\": 1024,"},{"line_number":203,"context_line":"                \"vcpu_set\": [0, 1]}]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_68ba25df","line":200,"updated":"2019-09-06 20:44:01.000000000","message":"I\u0027d like to use what\u0027s in the API reference docs:\n\nhttps://docs.openstack.org/api-ref/compute/?expanded\u003dshow-server-topology-detail#id401","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4d39264c16eb25d2c4c6b2df3ab4adb41c73457b","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               headers\u003dself.json_headers)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.server_topology \u003d {\u0027data\u0027: {"},{"line_number":201,"context_line":"            \"nodes\": [{"},{"line_number":202,"context_line":"                \"memory_mb\": 1024,"},{"line_number":203,"context_line":"                \"vcpu_set\": [0, 1]}]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_9ca9e6e0","line":200,"range":{"start_line":200,"start_character":33,"end_line":200,"end_character":37},"updated":"2019-09-06 20:54:43.000000000","message":"This data key isn\u0027t in the actual response. I\u0027m guessing this was copied from the fake diagnostics response.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","unresolved":false,"context_lines":[{"line_number":197,"context_line":"                               headers\u003dself.json_headers)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"        self.diagnostic \u003d {\u0027data\u0027: \u0027Fake diagnostics\u0027}"},{"line_number":200,"context_line":"        self.server_topology \u003d {\u0027data\u0027: {"},{"line_number":201,"context_line":"            \"nodes\": [{"},{"line_number":202,"context_line":"                \"memory_mb\": 1024,"},{"line_number":203,"context_line":"                \"vcpu_set\": [0, 1]}]}"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_8819a189","line":200,"in_reply_to":"5faad753_68ba25df","updated":"2019-09-06 20:52:29.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"}],"novaclient/tests/unit/v2/fakes.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        })"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: \u0027Fake topology\u0027})"},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"    #"},{"line_number":745,"context_line":"    # Server password"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_a7dd00e1","line":742,"range":{"start_line":742,"start_character":26,"end_line":742,"end_character":49},"updated":"2019-07-17 05:00:25.000000000","message":"It is not similar with a real JSON response body.\nUse a real JSON response body.","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        })"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: \u0027Fake topology\u0027})"},{"line_number":743,"context_line":""},{"line_number":744,"context_line":"    #"},{"line_number":745,"context_line":"    # Server password"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_017f0ee0","line":742,"range":{"start_line":742,"start_character":26,"end_line":742,"end_character":49},"in_reply_to":"7faddb67_a7dd00e1","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"20c7da373865f8dd7bf73dc97f26fa10dcc3957f","unresolved":false,"context_lines":[{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: \"\"\"{"},{"line_number":743,"context_line":"                                  \"nodes\": [{"},{"line_number":744,"context_line":"                                      \"memory_mb\": 1024,"},{"line_number":745,"context_line":"                                       \"vcpu_set\": [0, 1]"},{"line_number":746,"context_line":"                                       }]"},{"line_number":747,"context_line":"                                   }"},{"line_number":748,"context_line":"                                  \"\"\"})"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"    #"},{"line_number":751,"context_line":"    # Server password"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_053150ed","line":748,"range":{"start_line":743,"start_character":0,"end_line":748,"end_character":39},"updated":"2019-09-05 10:54:39.000000000","message":"Why does this have to be a string, yet the above is a proper dictionary?","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: \"\"\"{"},{"line_number":743,"context_line":"                                  \"nodes\": [{"},{"line_number":744,"context_line":"                                      \"memory_mb\": 1024,"},{"line_number":745,"context_line":"                                       \"vcpu_set\": [0, 1]"},{"line_number":746,"context_line":"                                       }]"},{"line_number":747,"context_line":"                                   }"},{"line_number":748,"context_line":"                                  \"\"\"})"},{"line_number":749,"context_line":""},{"line_number":750,"context_line":"    #"},{"line_number":751,"context_line":"    # Server password"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_5a894124","line":748,"range":{"start_line":743,"start_character":0,"end_line":748,"end_character":39},"in_reply_to":"7faddb67_053150ed","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4d39264c16eb25d2c4c6b2df3ab4adb41c73457b","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        })"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: {"},{"line_number":743,"context_line":"            \"nodes\": [{"},{"line_number":744,"context_line":"                \"memory_mb\": 1024,"},{"line_number":745,"context_line":"                \"vcpu_set\": [0, 1]}]}})"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_7ca42a09","line":742,"range":{"start_line":742,"start_character":27,"end_line":742,"end_character":31},"updated":"2019-09-06 20:54:43.000000000","message":"This data key isn\u0027t in the actual response. Did you just copy this from the diagnostics API fake (which is also wrong)?","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        })"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: {"},{"line_number":743,"context_line":"            \"nodes\": [{"},{"line_number":744,"context_line":"                \"memory_mb\": 1024,"},{"line_number":745,"context_line":"                \"vcpu_set\": [0, 1]}]}})"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"    #"},{"line_number":748,"context_line":"    # Server password"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_68eea589","line":745,"range":{"start_line":742,"start_character":25,"end_line":745,"end_character":38},"updated":"2019-09-06 20:44:01.000000000","message":"same - I\u0027d like to use the API reference sample here. We should define a constant so we can re-use the same fake data.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","unresolved":false,"context_lines":[{"line_number":739,"context_line":"        })"},{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def get_servers_1234_topology(self, **kw):"},{"line_number":742,"context_line":"        return (200, {}, {\u0027data\u0027: {"},{"line_number":743,"context_line":"            \"nodes\": [{"},{"line_number":744,"context_line":"                \"memory_mb\": 1024,"},{"line_number":745,"context_line":"                \"vcpu_set\": [0, 1]}]}})"},{"line_number":746,"context_line":""},{"line_number":747,"context_line":"    #"},{"line_number":748,"context_line":"    # Server password"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_a81edd6d","line":745,"range":{"start_line":742,"start_character":25,"end_line":745,"end_character":38},"in_reply_to":"5faad753_68eea589","updated":"2019-09-06 20:52:29.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"}],"novaclient/tests/unit/v2/test_servers.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        self.assertEqual(diagnostics[1], diagnostics_from_manager[1])"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"    def test_get_server_topology(self):"},{"line_number":772,"context_line":"        s \u003d self.cs.servers.get(1234)"},{"line_number":773,"context_line":"        topology \u003d s.topology()"},{"line_number":774,"context_line":"        self.assert_request_id(topology, fakes.FAKE_REQUEST_ID_LIST)"},{"line_number":775,"context_line":"        self.assertIsNotNone(topology)"},{"line_number":776,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        topology_from_manager \u003d self.cs.servers.topology(1234)"},{"line_number":779,"context_line":"        self.assert_request_id(topology,"},{"line_number":780,"context_line":"                               fakes.FAKE_REQUEST_ID_LIST)"},{"line_number":781,"context_line":"        self.assertIsNotNone(topology_from_manager)"},{"line_number":782,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"        self.assertEqual(topology[1], topology_from_manager[1])"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"    def test_get_vnc_console(self):"},{"line_number":787,"context_line":"        s \u003d self.cs.servers.get(1234)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_0737344f","line":784,"range":{"start_line":771,"start_character":0,"end_line":784,"end_character":63},"updated":"2019-07-17 05:00:25.000000000","message":"It should be added in the \u0027ServersV275Test\u0027 class.","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":768,"context_line":""},{"line_number":769,"context_line":"        self.assertEqual(diagnostics[1], diagnostics_from_manager[1])"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"    def test_get_server_topology(self):"},{"line_number":772,"context_line":"        s \u003d self.cs.servers.get(1234)"},{"line_number":773,"context_line":"        topology \u003d s.topology()"},{"line_number":774,"context_line":"        self.assert_request_id(topology, fakes.FAKE_REQUEST_ID_LIST)"},{"line_number":775,"context_line":"        self.assertIsNotNone(topology)"},{"line_number":776,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"        topology_from_manager \u003d self.cs.servers.topology(1234)"},{"line_number":779,"context_line":"        self.assert_request_id(topology,"},{"line_number":780,"context_line":"                               fakes.FAKE_REQUEST_ID_LIST)"},{"line_number":781,"context_line":"        self.assertIsNotNone(topology_from_manager)"},{"line_number":782,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":783,"context_line":""},{"line_number":784,"context_line":"        self.assertEqual(topology[1], topology_from_manager[1])"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"    def test_get_vnc_console(self):"},{"line_number":787,"context_line":"        s \u003d self.cs.servers.get(1234)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_a15aba7f","line":784,"range":{"start_line":771,"start_character":0,"end_line":784,"end_character":63},"in_reply_to":"7faddb67_0737344f","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"235e45b4804038cd688ed5581dab0e0412fa9816","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"7faddb67_361844cb","line":1898,"updated":"2019-09-05 13:43:11.000000000","message":"Add a test for pre 2.78 failure (VersionNotFoundForAPIMethod).","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"5faad753_ba72b510","line":1898,"in_reply_to":"7faddb67_361844cb","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":2447,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":2448,"context_line":"        self.run_command(\u0027topology sample-server\u0027)"},{"line_number":2449,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":2450,"context_line":""},{"line_number":2451,"context_line":"    def test_refresh_network(self):"},{"line_number":2452,"context_line":"        self.run_command(\u0027refresh-network 1234\u0027)"},{"line_number":2453,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/os-server-external-events\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_87ed64b8","line":2450,"updated":"2019-07-17 05:00:25.000000000","message":"Add a test that execute topology command before 2.75.","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":2447,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":2448,"context_line":"        self.run_command(\u0027topology sample-server\u0027)"},{"line_number":2449,"context_line":"        self.assert_called(\u0027GET\u0027, \u0027/servers/1234/topology\u0027)"},{"line_number":2450,"context_line":""},{"line_number":2451,"context_line":"    def test_refresh_network(self):"},{"line_number":2452,"context_line":"        self.run_command(\u0027refresh-network 1234\u0027)"},{"line_number":2453,"context_line":"        self.assert_called(\u0027POST\u0027, \u0027/os-server-external-events\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_81d8deee","line":2450,"in_reply_to":"7faddb67_87ed64b8","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_baf9554e","line":4315,"range":{"start_line":4315,"start_character":24,"end_line":4315,"end_character":25},"updated":"2019-09-06 08:09:46.000000000","message":"Confused, keep it as it is?","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"20c7da373865f8dd7bf73dc97f26fa10dcc3957f","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_05b4f034","line":4315,"range":{"start_line":4315,"start_character":17,"end_line":4315,"end_character":78},"updated":"2019-09-05 10:54:39.000000000","message":"Hmm, what does this mean? I see version wrappers in the next file. Do they not count?","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"006d271fa228c697cc56ee9dd2adca2b347e81ad","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_96233858","line":4315,"range":{"start_line":4315,"start_character":17,"end_line":4315,"end_character":78},"in_reply_to":"7faddb67_05b4f034","updated":"2019-09-05 13:26:08.000000000","message":"No, only for the shell module.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"44f73a7daf0570fbb635934c45fffd6f5a16ebdd","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_76d79c50","line":4315,"range":{"start_line":4315,"start_character":17,"end_line":4315,"end_character":78},"in_reply_to":"7faddb67_05b4f034","updated":"2019-09-05 13:25:39.000000000","message":"Remove this line.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"235e45b4804038cd688ed5581dab0e0412fa9816","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_b63994f1","line":4315,"range":{"start_line":4315,"start_character":17,"end_line":4315,"end_character":78},"in_reply_to":"7faddb67_96233858","updated":"2019-09-05 13:43:11.000000000","message":"This test is in novaclient/tests/unit/v2/test_shell.py.\nHowever it covers not only for the shell module but also python API bindings modules.\nThe test is successful even if this line is deleted.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"06df978dfecfa748fe9e5726474d4408d7a6ce2e","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_6e67a327","line":4315,"range":{"start_line":4315,"start_character":17,"end_line":4315,"end_character":78},"in_reply_to":"7faddb67_b63994f1","updated":"2019-09-06 01:34:53.000000000","message":"Should be keep this line, otherwise it will be failed by py27, maybe raise \"MismatchError: set([]) !\u003d set([78]): Minor versions [78] have been skipped.  Please do not raise API_MAX_VERSION without adding support or excluding them.\"\n\nhttps://review.opendev.org/#/c/673485/ also depend on this.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4987b419421ef8dbc986a3f40695cb8562013faf","unresolved":false,"context_lines":[{"line_number":2473,"context_line":"        exp \u003d self.assertRaises(SystemExit,"},{"line_number":2474,"context_line":"                                self.run_command,"},{"line_number":2475,"context_line":"                                \u0027server-topology 1234\u0027,"},{"line_number":2476,"context_line":"                                api_version\u003d\u00272.7\u0027)"},{"line_number":2477,"context_line":"        self.assertIn(\u00272\u0027, six.text_type(exp))"},{"line_number":2478,"context_line":""},{"line_number":2479,"context_line":"    def test_refresh_network(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_530da735","line":2476,"range":{"start_line":2476,"start_character":47,"end_line":2476,"end_character":48},"updated":"2019-09-06 13:30:05.000000000","message":"77","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","unresolved":false,"context_lines":[{"line_number":2473,"context_line":"        exp \u003d self.assertRaises(SystemExit,"},{"line_number":2474,"context_line":"                                self.run_command,"},{"line_number":2475,"context_line":"                                \u0027server-topology 1234\u0027,"},{"line_number":2476,"context_line":"                                api_version\u003d\u00272.7\u0027)"},{"line_number":2477,"context_line":"        self.assertIn(\u00272\u0027, six.text_type(exp))"},{"line_number":2478,"context_line":""},{"line_number":2479,"context_line":"    def test_refresh_network(self):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_4813a967","line":2476,"range":{"start_line":2476,"start_character":47,"end_line":2476,"end_character":48},"in_reply_to":"5faad753_530da735","updated":"2019-09-06 20:52:29.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2dbafeb935bb71041fc4aa8e34d190286cef3705","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_645fbfe5","line":4315,"range":{"start_line":4315,"start_character":12,"end_line":4315,"end_character":78},"updated":"2019-09-06 09:35:58.000000000","message":"Remove this line.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","unresolved":false,"context_lines":[{"line_number":4312,"context_line":"            75,  # There are no version-wrapped shell method changes for this."},{"line_number":4313,"context_line":"            76,  # doesn\u0027t require any changes in novaclient."},{"line_number":4314,"context_line":"            77,  # There are no version-wrapped shell method changes for this."},{"line_number":4315,"context_line":"            78,  # There are no version-wrapped shell method changes for this."},{"line_number":4316,"context_line":"        ])"},{"line_number":4317,"context_line":"        versions_supported \u003d set(range(0,"},{"line_number":4318,"context_line":"                                 novaclient.API_MAX_VERSION.ver_minor + 1))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_e803750e","line":4315,"range":{"start_line":4315,"start_character":12,"end_line":4315,"end_character":78},"in_reply_to":"5faad753_645fbfe5","updated":"2019-09-06 20:52:29.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"}],"novaclient/v2/servers.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    def diagnostics(self):"},{"line_number":303,"context_line":"        \"\"\"Diagnostics -- Retrieve server diagnostics.\"\"\""},{"line_number":304,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def topology(self):"},{"line_number":307,"context_line":"        \"\"\"topology -- Retrieve server topology.\"\"\""},{"line_number":308,"context_line":"        return self.manager.topology(self)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_87fc84b5","line":305,"updated":"2019-07-17 05:00:25.000000000","message":"@api_versions.wraps(\u00272.75\u0027)","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":302,"context_line":"    def diagnostics(self):"},{"line_number":303,"context_line":"        \"\"\"Diagnostics -- Retrieve server diagnostics.\"\"\""},{"line_number":304,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":305,"context_line":""},{"line_number":306,"context_line":"    def topology(self):"},{"line_number":307,"context_line":"        \"\"\"topology -- Retrieve server topology.\"\"\""},{"line_number":308,"context_line":"        return self.manager.topology(self)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_21e32aa6","line":305,"in_reply_to":"7faddb67_87fc84b5","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/diagnostics\" %"},{"line_number":1261,"context_line":"                                         base.getid(server))"},{"line_number":1262,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"    def topology(self, server):"},{"line_number":1265,"context_line":"        \"\"\""},{"line_number":1266,"context_line":"        Retrieve server topology."}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_273110a4","line":1263,"updated":"2019-07-17 05:00:25.000000000","message":"@api_versions.wraps(\u00272.75\u0027)","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":1260,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/diagnostics\" %"},{"line_number":1261,"context_line":"                                         base.getid(server))"},{"line_number":1262,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":1263,"context_line":""},{"line_number":1264,"context_line":"    def topology(self, server):"},{"line_number":1265,"context_line":"        \"\"\""},{"line_number":1266,"context_line":"        Retrieve server topology."}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_c1eb3675","line":1263,"in_reply_to":"7faddb67_273110a4","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":1271,"context_line":"        \"\"\""},{"line_number":1272,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/topology\" %"},{"line_number":1273,"context_line":"                                         base.getid(server))"},{"line_number":1274,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"    def _validate_create_nics(self, nics):"},{"line_number":1277,"context_line":"        # nics are required with microversion 2.37+ and can be a string or list"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_a7a500a4","line":1274,"range":{"start_line":1274,"start_character":15,"end_line":1274,"end_character":53},"updated":"2019-07-17 05:00:25.000000000","message":"It should be as follows because body is a dict (not None):\n\nbase.DictWithMeta(body, resp)","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":1271,"context_line":"        \"\"\""},{"line_number":1272,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/topology\" %"},{"line_number":1273,"context_line":"                                         base.getid(server))"},{"line_number":1274,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":1275,"context_line":""},{"line_number":1276,"context_line":"    def _validate_create_nics(self, nics):"},{"line_number":1277,"context_line":"        # nics are required with microversion 2.37+ and can be a string or list"}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_8101be3a","line":1274,"range":{"start_line":1274,"start_character":15,"end_line":1274,"end_character":53},"in_reply_to":"7faddb67_a7a500a4","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"20c7da373865f8dd7bf73dc97f26fa10dcc3957f","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        \"\"\"Diagnostics -- Retrieve server diagnostics.\"\"\""},{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.75\")"},{"line_number":320,"context_line":"    def topology(self):"},{"line_number":321,"context_line":"        \"\"\"topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.topology(self)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_e578b48f","line":319,"range":{"start_line":319,"start_character":24,"end_line":319,"end_character":29},"updated":"2019-09-05 10:54:39.000000000","message":"2.78, right?","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        \"\"\"Diagnostics -- Retrieve server diagnostics.\"\"\""},{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.75\")"},{"line_number":320,"context_line":"    def topology(self):"},{"line_number":321,"context_line":"        \"\"\"topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.topology(self)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_fa3a6d32","line":319,"range":{"start_line":319,"start_character":24,"end_line":319,"end_character":29},"in_reply_to":"7faddb67_76a9dcda","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"44f73a7daf0570fbb635934c45fffd6f5a16ebdd","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        \"\"\"Diagnostics -- Retrieve server diagnostics.\"\"\""},{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.75\")"},{"line_number":320,"context_line":"    def topology(self):"},{"line_number":321,"context_line":"        \"\"\"topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.topology(self)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_76a9dcda","line":319,"range":{"start_line":319,"start_character":24,"end_line":319,"end_character":29},"in_reply_to":"7faddb67_e578b48f","updated":"2019-09-05 13:25:39.000000000","message":"+1","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":316,"context_line":"        \"\"\"Diagnostics -- Retrieve server diagnostics.\"\"\""},{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.75\")"},{"line_number":320,"context_line":"    def topology(self):"},{"line_number":321,"context_line":"        \"\"\"topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.topology(self)"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_da3d312d","line":319,"range":{"start_line":319,"start_character":24,"end_line":319,"end_character":29},"in_reply_to":"7faddb67_e578b48f","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"44f73a7daf0570fbb635934c45fffd6f5a16ebdd","unresolved":false,"context_lines":[{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"        :param server: The :class:`Server` (or its ID) for which"},{"line_number":1300,"context_line":"                       topology to be returned"},{"line_number":1301,"context_line":"        :returns: An instance of novaclient.base.TupleWithMeta"},{"line_number":1302,"context_line":"        \"\"\""},{"line_number":1303,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/topology\" %"},{"line_number":1304,"context_line":"                                         base.getid(server))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_f6862c65","line":1301,"range":{"start_line":1301,"start_character":49,"end_line":1301,"end_character":54},"updated":"2019-09-05 13:25:39.000000000","message":"Dict","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"006d271fa228c697cc56ee9dd2adca2b347e81ad","unresolved":false,"context_lines":[{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"        :param server: The :class:`Server` (or its ID) for which"},{"line_number":1300,"context_line":"                       topology to be returned"},{"line_number":1301,"context_line":"        :returns: An instance of novaclient.base.TupleWithMeta"},{"line_number":1302,"context_line":"        \"\"\""},{"line_number":1303,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/topology\" %"},{"line_number":1304,"context_line":"                                         base.getid(server))"}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_761c7c12","line":1301,"range":{"start_line":1301,"start_character":49,"end_line":1301,"end_character":62},"updated":"2019-09-05 13:26:08.000000000","message":"DictWithMeta","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"        :param server: The :class:`Server` (or its ID) for which"},{"line_number":1300,"context_line":"                       topology to be returned"},{"line_number":1301,"context_line":"        :returns: An instance of novaclient.base.TupleWithMeta"},{"line_number":1302,"context_line":"        \"\"\""},{"line_number":1303,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/topology\" %"},{"line_number":1304,"context_line":"                                         base.getid(server))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_7a18bdd2","line":1301,"range":{"start_line":1301,"start_character":49,"end_line":1301,"end_character":62},"in_reply_to":"7faddb67_761c7c12","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":1298,"context_line":""},{"line_number":1299,"context_line":"        :param server: The :class:`Server` (or its ID) for which"},{"line_number":1300,"context_line":"                       topology to be returned"},{"line_number":1301,"context_line":"        :returns: An instance of novaclient.base.TupleWithMeta"},{"line_number":1302,"context_line":"        \"\"\""},{"line_number":1303,"context_line":"        resp, body \u003d self.api.client.get(\"/servers/%s/topology\" %"},{"line_number":1304,"context_line":"                                         base.getid(server))"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_5a1381b9","line":1301,"range":{"start_line":1301,"start_character":49,"end_line":1301,"end_character":54},"in_reply_to":"7faddb67_f6862c65","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2dbafeb935bb71041fc4aa8e34d190286cef3705","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.78\")"},{"line_number":320,"context_line":"    def server_topology(self):"},{"line_number":321,"context_line":"        \"\"\"server-topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.server_topology(self)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_84a51bb8","line":320,"range":{"start_line":320,"start_character":8,"end_line":320,"end_character":23},"updated":"2019-09-06 09:35:58.000000000","message":"The command is \u0027nova server-topology\u0027. The command name is okay for me.\nHowever IMO, \u0027topology\u0027 is better fot this method name.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4987b419421ef8dbc986a3f40695cb8562013faf","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.78\")"},{"line_number":320,"context_line":"    def server_topology(self):"},{"line_number":321,"context_line":"        \"\"\"server-topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.server_topology(self)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_d318b776","line":320,"range":{"start_line":320,"start_character":8,"end_line":320,"end_character":23},"in_reply_to":"5faad753_84a51bb8","updated":"2019-09-06 13:30:05.000000000","message":"Agree. We\u0027re already scoped to server so server_ is redundant.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":317,"context_line":"        return self.manager.diagnostics(self)"},{"line_number":318,"context_line":""},{"line_number":319,"context_line":"    @api_versions.wraps(\"2.78\")"},{"line_number":320,"context_line":"    def server_topology(self):"},{"line_number":321,"context_line":"        \"\"\"server-topology -- Retrieve server topology.\"\"\""},{"line_number":322,"context_line":"        return self.manager.server_topology(self)"},{"line_number":323,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_68a30551","line":320,"range":{"start_line":320,"start_character":8,"end_line":320,"end_character":23},"in_reply_to":"5faad753_d318b776","updated":"2019-09-06 20:44:01.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2dbafeb935bb71041fc4aa8e34d190286cef3705","unresolved":false,"context_lines":[{"line_number":1292,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":1293,"context_line":""},{"line_number":1294,"context_line":"    @api_versions.wraps(\"2.78\")"},{"line_number":1295,"context_line":"    def server_topology(self, server):"},{"line_number":1296,"context_line":"        \"\"\""},{"line_number":1297,"context_line":"        Retrieve server topology."},{"line_number":1298,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_24aa2785","line":1295,"range":{"start_line":1295,"start_character":8,"end_line":1295,"end_character":23},"updated":"2019-09-06 09:35:58.000000000","message":"ditto","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":1292,"context_line":"        return base.TupleWithMeta((resp, body), resp)"},{"line_number":1293,"context_line":""},{"line_number":1294,"context_line":"    @api_versions.wraps(\"2.78\")"},{"line_number":1295,"context_line":"    def server_topology(self, server):"},{"line_number":1296,"context_line":"        \"\"\""},{"line_number":1297,"context_line":"        Retrieve server topology."},{"line_number":1298,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_088851c4","line":1295,"range":{"start_line":1295,"start_character":8,"end_line":1295,"end_character":23},"in_reply_to":"5faad753_24aa2785","updated":"2019-09-06 20:44:01.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"}],"novaclient/v2/shell.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":2286,"context_line":"def do_topology(cs, args):"},{"line_number":2287,"context_line":"    \"\"\"Retrieve server topology.\"\"\""},{"line_number":2288,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2289,"context_line":"    utils.print_dict(cs.servers.topology(server)[1], wrap\u003d80)"},{"line_number":2290,"context_line":""},{"line_number":2291,"context_line":""},{"line_number":2292,"context_line":"@utils.arg("}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_47e3ecd9","line":2289,"range":{"start_line":2289,"start_character":48,"end_line":2289,"end_character":51},"updated":"2019-07-17 05:00:25.000000000","message":"Remove it because DictWithMeta is used.","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":2286,"context_line":"def do_topology(cs, args):"},{"line_number":2287,"context_line":"    \"\"\"Retrieve server topology.\"\"\""},{"line_number":2288,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2289,"context_line":"    utils.print_dict(cs.servers.topology(server)[1], wrap\u003d80)"},{"line_number":2290,"context_line":""},{"line_number":2291,"context_line":""},{"line_number":2292,"context_line":"@utils.arg("}],"source_content_type":"text/x-python","patch_set":4,"id":"7faddb67_41f7465a","line":2289,"range":{"start_line":2289,"start_character":48,"end_line":2289,"end_character":51},"in_reply_to":"7faddb67_47e3ecd9","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"44f73a7daf0570fbb635934c45fffd6f5a16ebdd","unresolved":false,"context_lines":[{"line_number":2312,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2313,"context_line":"    utils.print_dict(cs.servers.diagnostics(server)[1], wrap\u003d80)"},{"line_number":2314,"context_line":""},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2317,"context_line":"def do_topology(cs, args):"},{"line_number":2318,"context_line":"    \"\"\"Retrieve server topology.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7faddb67_6b8335aa","line":2315,"updated":"2019-09-05 13:25:39.000000000","message":"Add @api_versions.wraps(\"2.78\").\nSee the following example.\n\nhttps://github.com/openstack/python-novaclient/blob/e43596ca5ce076ecbb53a6788349b46f2b3f5c39/novaclient/v2/shell.py#L4653","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":2312,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2313,"context_line":"    utils.print_dict(cs.servers.diagnostics(server)[1], wrap\u003d80)"},{"line_number":2314,"context_line":""},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2317,"context_line":"def do_topology(cs, args):"},{"line_number":2318,"context_line":"    \"\"\"Retrieve server topology.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_7ac2fdeb","line":2315,"in_reply_to":"5faad753_4e4bc786","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"06df978dfecfa748fe9e5726474d4408d7a6ce2e","unresolved":false,"context_lines":[{"line_number":2312,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2313,"context_line":"    utils.print_dict(cs.servers.diagnostics(server)[1], wrap\u003d80)"},{"line_number":2314,"context_line":""},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2317,"context_line":"def do_topology(cs, args):"},{"line_number":2318,"context_line":"    \"\"\"Retrieve server topology.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_4e4bc786","line":2315,"in_reply_to":"7faddb67_6b8335aa","updated":"2019-09-06 01:34:53.000000000","message":"+1","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":2312,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2313,"context_line":"    utils.print_dict(cs.servers.diagnostics(server)[1], wrap\u003d80)"},{"line_number":2314,"context_line":""},{"line_number":2315,"context_line":""},{"line_number":2316,"context_line":"@utils.arg(\u0027server\u0027, metavar\u003d\u0027\u003cserver\u003e\u0027, help\u003d_(\u0027Name or ID of server.\u0027))"},{"line_number":2317,"context_line":"def do_topology(cs, args):"},{"line_number":2318,"context_line":"    \"\"\"Retrieve server topology.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_5abdc166","line":2315,"in_reply_to":"7faddb67_6b8335aa","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"4987b419421ef8dbc986a3f40695cb8562013faf","unresolved":false,"context_lines":[{"line_number":2318,"context_line":"def do_server_topology(cs, args):"},{"line_number":2319,"context_line":"    \"\"\"Retrieve server topology.\"\"\""},{"line_number":2320,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2321,"context_line":"    utils.print_dict(cs.servers.server_topology(server), wrap\u003d80)"},{"line_number":2322,"context_line":""},{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"@utils.arg("}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_33210ba1","line":2321,"updated":"2019-09-06 13:30:05.000000000","message":"I would still like to see what this looks like before landing this change since I suspect it\u0027s just going to be a confusing mess of json blobs.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","unresolved":false,"context_lines":[{"line_number":2318,"context_line":"def do_server_topology(cs, args):"},{"line_number":2319,"context_line":"    \"\"\"Retrieve server topology.\"\"\""},{"line_number":2320,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2321,"context_line":"    utils.print_dict(cs.servers.server_topology(server), wrap\u003d80)"},{"line_number":2322,"context_line":""},{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"@utils.arg("}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_7c6f4ac5","line":2321,"in_reply_to":"5faad753_33210ba1","updated":"2019-09-06 20:52:29.000000000","message":"This is what it looks like, which is not pretty at all:\n\nhttp://paste.openstack.org/show/772110/\n\nThat \"data\" seems weird, we should at least call that \"topology\" right? But I would think what we should do is actually make the property keys something out of the response dict, so there would be 1 property per node in the nodes list, and then a pagesize_kb property. The property value per node in the list would probably just be a dict, but that\u0027s better than this json blob.\n\nSo -1 on that for now.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c351cba2bc2657b49c812d5d39633e10efd19fe1","unresolved":false,"context_lines":[{"line_number":2318,"context_line":"def do_server_topology(cs, args):"},{"line_number":2319,"context_line":"    \"\"\"Retrieve server topology.\"\"\""},{"line_number":2320,"context_line":"    server \u003d _find_server(cs, args.server)"},{"line_number":2321,"context_line":"    utils.print_dict(cs.servers.server_topology(server), wrap\u003d80)"},{"line_number":2322,"context_line":""},{"line_number":2323,"context_line":""},{"line_number":2324,"context_line":"@utils.arg("}],"source_content_type":"text/x-python","patch_set":7,"id":"5faad753_3c4a3227","line":2321,"in_reply_to":"5faad753_7c6f4ac5","updated":"2019-09-06 21:03:41.000000000","message":"OK removing the \u0027data\u0027 thing in the response which wasn\u0027t real, it\u0027s better:\n\nhttp://paste.openstack.org/show/772111/\n\nParsing that list of node dicts still isn\u0027t pretty but I\u0027m not sure what we\u0027d call those properties without being confusing, like you couldn\u0027t call them node0 and node1 without making the user think they are actually on physical host node 0 or 1 right? I mean we could sort by host_node if that field was in the response but that\u0027s only there for admins.","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"}],"releasenotes/notes/microversion-v2_75-77a12630e668c2ae.yaml":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _microversion 2.75: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_072ad42a","line":8,"updated":"2019-07-17 05:00:25.000000000","message":"And Python API","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _microversion 2.75: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_618b62c2","line":8,"in_reply_to":"7faddb67_072ad42a","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"6a3a8e360cea474e0ee5591078212b682ab4747d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _microversion 2.75: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_0743b414","line":9,"range":{"start_line":9,"start_character":27,"end_line":9,"end_character":105},"updated":"2019-07-17 05:00:25.000000000","message":"https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _microversion 2.75: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":4,"id":"7faddb67_a19dda0a","line":9,"range":{"start_line":9,"start_character":27,"end_line":9,"end_character":105},"in_reply_to":"7faddb67_0743b414","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"71a5796f8c792a41f81b01a17c28e077bf5aa19e"}],"releasenotes/notes/microversion-v2_78-77a12630e668c2ae.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9a35b2bd37645bdad5420139ca86c6500d4d25bc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Added support for `microversion 2.78`_ which outputs the `topology informations`"},{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_564aa026","line":7,"range":{"start_line":7,"start_character":13,"end_line":7,"end_character":21},"updated":"2019-09-05 13:22:42.000000000","message":"This is a bit vague, it could be confused as host topology. Seems this should be scoped to a server/instance resource. Why don\u0027t we call it \"nova server-topology\"?","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Added support for `microversion 2.78`_ which outputs the `topology informations`"},{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5faad753_da7531ce","line":7,"range":{"start_line":7,"start_character":13,"end_line":7,"end_character":21},"in_reply_to":"5faad753_ee5b9351","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":26458,"name":"Brin Zhang","email":"zhangbailin@inspur.com","username":"zhangbailin"},"change_message_id":"06df978dfecfa748fe9e5726474d4408d7a6ce2e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Added support for `microversion 2.78`_ which outputs the `topology informations`"},{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5faad753_ee5b9351","line":7,"range":{"start_line":7,"start_character":13,"end_line":7,"end_character":21},"in_reply_to":"7faddb67_564aa026","updated":"2019-09-06 01:34:53.000000000","message":"+1, \"nova server-topology\" looks batter.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Added support for `microversion 2.78`_ which outputs the `topology informations`"},{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5faad753_fa726de3","line":7,"range":{"start_line":7,"start_character":13,"end_line":7,"end_character":21},"in_reply_to":"7faddb67_564aa026","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9a35b2bd37645bdad5420139ca86c6500d4d25bc","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_b6f19402","line":8,"updated":"2019-09-05 13:22:42.000000000","message":"This isn\u0027t a command. List the command and new python API binding method separately.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    field in the following commands:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5faad753_1a450971","line":8,"in_reply_to":"7faddb67_b6f19402","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9a35b2bd37645bdad5420139ca86c6500d4d25bc","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_36884469","line":10,"range":{"start_line":10,"start_character":27,"end_line":10,"end_character":110},"updated":"2019-09-05 13:22:42.000000000","message":"This should be https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id70 now.","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"    * ``nova topology``"},{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5faad753_5a62a118","line":10,"range":{"start_line":10,"start_character":27,"end_line":10,"end_character":110},"in_reply_to":"7faddb67_36884469","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"20c7da373865f8dd7bf73dc97f26fa10dcc3957f","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7faddb67_6564c4e5","line":11,"updated":"2019-09-05 10:54:39.000000000","message":"nit: extra newline","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5a4e0bbbc81d2f938b62b3b0a866d56054c7947a","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    * ``Python API``"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id67"},{"line_number":11,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":6,"id":"5faad753_faad8d31","line":11,"in_reply_to":"7faddb67_6564c4e5","updated":"2019-09-06 08:09:46.000000000","message":"Done","commit_id":"f007c9038a0b20ce74e57635dc082b4d2126f3b0"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","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":"    Added support for `microversion 2.78`_ which outputs the `topology informations`"},{"line_number":5,"context_line":"    field in the following command:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova server-topology``"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5faad753_68bc6569","line":4,"range":{"start_line":4,"start_character":61,"end_line":4,"end_character":62},"updated":"2019-09-06 20:44:01.000000000","message":"don\u0027t need this backticks","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e21f2b385283b705858815e9bde735aec2584867","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":"    Added support for `microversion 2.78`_ which outputs the `topology informations`"},{"line_number":5,"context_line":"    field in the following command:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova server-topology``"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5faad753_080db13d","line":4,"range":{"start_line":4,"start_character":61,"end_line":4,"end_character":62},"in_reply_to":"5faad753_68bc6569","updated":"2019-09-06 20:52:29.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"2dbafeb935bb71041fc4aa8e34d190286cef3705","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    field in the following command:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova server-topology``"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id70"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5faad753_e472cf7c","line":8,"updated":"2019-09-06 09:35:58.000000000","message":"Python API bindings added should be mentioned.\n\n* novaclient.v2.servers.Server.server_topology()\n* novaclient.v2.servers.ServerManager.server_topology()","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"79db99713af9b3a4655c013cf674e2f28a4e32da","unresolved":false,"context_lines":[{"line_number":5,"context_line":"    field in the following command:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``nova server-topology``"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"    .. _microversion 2.78: https://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id70"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"5faad753_88bd216a","line":8,"in_reply_to":"5faad753_e472cf7c","updated":"2019-09-06 20:44:01.000000000","message":"Done","commit_id":"245b5374fa3dc7d917ce3641f57418aa3faab208"}]}
