)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"77491bc3927ce664ab3a3d6f67180378c9336d7a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add \u0027server_group\u0027 info into show server detail API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120"},{"line_number":12,"context_line":"bp: show-server-group"},{"line_number":13,"context_line":"Co-authored-by: Gerry Kopec \u003cGerry.Kopec@windriver.com\u003e"},{"line_number":14,"context_line":"Signed-off-by: Yongli He \u003cyongli.he@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f79a3b5_cc771706","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":21},"updated":"2018-12-20 23:34:56.000000000","message":"Implements: blueprint show-server-group","commit_id":"8e2c0faf1abc3727b8bfeba3180d7464f9476345"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"3e184982024588037e90b3bff7a919ac6b68b427","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add \u0027server_group\u0027 info into show server detail API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120"},{"line_number":12,"context_line":"bp: show-server-group"},{"line_number":13,"context_line":"Co-authored-by: Gerry Kopec \u003cGerry.Kopec@windriver.com\u003e"},{"line_number":14,"context_line":"Signed-off-by: Yongli He \u003cyongli.he@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"bfdaf3ff_441832d2","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":21},"in_reply_to":"3f79a3b5_cc771706","updated":"2019-01-16 06:36:33.000000000","message":"Done","commit_id":"8e2c0faf1abc3727b8bfeba3180d7464f9476345"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"65484c1b555703ac05376029e045f4914a21f5cf","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add \u0027server_group\u0027 info into show server detail API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120"},{"line_number":12,"context_line":"Implements: show-server-group"},{"line_number":13,"context_line":"Co-authored-by: Gerry Kopec \u003cGerry.Kopec@windriver.com\u003e"},{"line_number":14,"context_line":"Signed-off-by: Yongli He \u003cyongli.he@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfdaf3ff_87ecdcf3","line":12,"updated":"2019-01-16 07:32:07.000000000","message":"blueprint","commit_id":"d8cbb6c97693d659ede97a47db82b8d401f0d4ae"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8c1a9a6c1194dada46990bba1c6b7a347c6158ef","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Add \u0027server_group\u0027 info into show server detail API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120"},{"line_number":12,"context_line":"Implements: show-server-group"},{"line_number":13,"context_line":"Co-authored-by: Gerry Kopec \u003cGerry.Kopec@windriver.com\u003e"},{"line_number":14,"context_line":"Signed-off-by: Yongli He \u003cyongli.he@intel.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bfdaf3ff_706abab3","line":12,"in_reply_to":"bfdaf3ff_87ecdcf3","updated":"2019-01-17 02:48:29.000000000","message":"Done","commit_id":"d8cbb6c97693d659ede97a47db82b8d401f0d4ae"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds the server group info into show server detail API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add \u0027server_group\u0027 info into server show API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120"},{"line_number":12,"context_line":"Implements: blueprint show-server-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"9fdfeff1_e23b0299","line":9,"updated":"2019-02-27 11:00:57.000000000","message":"nit: for someone who wasn\u0027t involved with the spec review like me, it would have been nicer to get a little more detail like here like the fact you are changing:\n\n1) `POST /servers/{server_id}/action (rebuild)`\n2) `PUT /servers/{server_id}`\n3) `GET /servers/{id}`\nspecifically.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adds the server group info into show server detail API."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add \u0027server_group\u0027 info into server show API."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120"},{"line_number":12,"context_line":"Implements: blueprint show-server-group"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":26,"id":"9fdfeff1_0a009801","line":9,"in_reply_to":"9fdfeff1_e23b0299","updated":"2019-02-27 14:48:01.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"}],"api-guide/source/down_cells.rst":[{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":240,"context_line":"  - availability_zone: The availability_zone of the server if it was specified"},{"line_number":241,"context_line":"    during during boot time and \"UNKNOWN\" otherwise."},{"line_number":242,"context_line":"  - power_state: Its value will be 0 (``NOSTATE``)."},{"line_number":243,"context_line":"  - server_groups: Starting from microversion 2.71, include key"},{"line_number":244,"context_line":"    `server_groups`. The UUIDs of the server groups to which the server"},{"line_number":245,"context_line":"    belongs. Currently this can contain at most one entry."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"  A sample response for a GET /servers/{server_id} request that"},{"line_number":248,"context_line":"  includes one server from an unreachable part of the infrastructure"}],"source_content_type":"text/x-rst","patch_set":26,"id":"9fdfeff1_e18ea42c","line":245,"range":{"start_line":243,"start_character":19,"end_line":245,"end_character":57},"updated":"2019-02-27 11:00:57.000000000","message":"nit: I would prefer if we stuck to the original format where you just first describe what the key value stands for and then add the \"note\" part. like:\n\nserver_groups: The UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry. Note that this key will be in the response only from the \"2.71\" microversion.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":240,"context_line":"  - availability_zone: The availability_zone of the server if it was specified"},{"line_number":241,"context_line":"    during during boot time and \"UNKNOWN\" otherwise."},{"line_number":242,"context_line":"  - power_state: Its value will be 0 (``NOSTATE``)."},{"line_number":243,"context_line":"  - server_groups: Starting from microversion 2.71, include key"},{"line_number":244,"context_line":"    `server_groups`. The UUIDs of the server groups to which the server"},{"line_number":245,"context_line":"    belongs. Currently this can contain at most one entry."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"  A sample response for a GET /servers/{server_id} request that"},{"line_number":248,"context_line":"  includes one server from an unreachable part of the infrastructure"}],"source_content_type":"text/x-rst","patch_set":26,"id":"9fdfeff1_2af8fcc1","line":245,"range":{"start_line":243,"start_character":19,"end_line":245,"end_character":57},"in_reply_to":"9fdfeff1_e18ea42c","updated":"2019-02-27 14:48:01.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":240,"context_line":"  - availability_zone: The availability_zone of the server if it was specified"},{"line_number":241,"context_line":"    during during boot time and \"UNKNOWN\" otherwise."},{"line_number":242,"context_line":"  - power_state: Its value will be 0 (``NOSTATE``)."},{"line_number":243,"context_line":"  - server_groups: Starting from microversion 2.71, include key"},{"line_number":244,"context_line":"    `server_groups`. The UUIDs of the server groups to which the server"},{"line_number":245,"context_line":"    belongs. Currently this can contain at most one entry."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"  A sample response for a GET /servers/{server_id} request that"},{"line_number":248,"context_line":"  includes one server from an unreachable part of the infrastructure"}],"source_content_type":"text/x-rst","patch_set":26,"id":"9fdfeff1_af2abee3","line":245,"range":{"start_line":243,"start_character":19,"end_line":245,"end_character":57},"in_reply_to":"9fdfeff1_e18ea42c","updated":"2019-02-27 13:49:25.000000000","message":"thanks.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                 },"},{"line_number":276,"context_line":"                 \"OS-EXT-AZ:availability_zone\": \"geneva\","},{"line_number":277,"context_line":"                 \"OS-EXT-STS:power_state\": 0,"},{"line_number":278,"context_line":"                 \"server_groups\": [\"0fd77252-4eef-4ec4-ae9b-e05dfc98aeac\"],"},{"line_number":279,"context_line":"             }"},{"line_number":280,"context_line":"         ]"},{"line_number":281,"context_line":"     }"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9fdfeff1_cf3cd0c9","line":278,"range":{"start_line":278,"start_character":74,"end_line":278,"end_character":75},"updated":"2019-02-28 02:06:18.000000000","message":"nit: technically this wouldn\u0027t be in the actual json response","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":275,"context_line":"                 },"},{"line_number":276,"context_line":"                 \"OS-EXT-AZ:availability_zone\": \"geneva\","},{"line_number":277,"context_line":"                 \"OS-EXT-STS:power_state\": 0,"},{"line_number":278,"context_line":"                 \"server_groups\": [\"0fd77252-4eef-4ec4-ae9b-e05dfc98aeac\"],"},{"line_number":279,"context_line":"             }"},{"line_number":280,"context_line":"         ]"},{"line_number":281,"context_line":"     }"}],"source_content_type":"text/x-rst","patch_set":27,"id":"9fdfeff1_4a968ef2","line":278,"range":{"start_line":278,"start_character":74,"end_line":278,"end_character":75},"in_reply_to":"9fdfeff1_cf3cd0c9","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ad56185972b3a71f2a98dcd6ee8b036672fb3641","unresolved":false,"context_lines":[{"line_number":5813,"context_line":"  in: body"},{"line_number":5814,"context_line":"  required: false"},{"line_number":5815,"context_line":"  type: integer"},{"line_number":5816,"context_line":"server_groups: \u0026server_groups"},{"line_number":5817,"context_line":"  description: |"},{"line_number":5818,"context_line":"    The number of allowed server groups for each tenant."},{"line_number":5819,"context_line":"  in: body"},{"line_number":5820,"context_line":"  required: true"},{"line_number":5821,"context_line":"  type: integer"},{"line_number":5822,"context_line":"server_groups_list:"},{"line_number":5823,"context_line":"  description: |"},{"line_number":5824,"context_line":"    The list of existing server groups."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_c8f08e00","line":5821,"range":{"start_line":5816,"start_character":0,"end_line":5821,"end_character":15},"updated":"2019-01-28 01:09:54.000000000","message":"Here","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":5813,"context_line":"  in: body"},{"line_number":5814,"context_line":"  required: false"},{"line_number":5815,"context_line":"  type: integer"},{"line_number":5816,"context_line":"server_groups: \u0026server_groups"},{"line_number":5817,"context_line":"  description: |"},{"line_number":5818,"context_line":"    The number of allowed server groups for each tenant."},{"line_number":5819,"context_line":"  in: body"},{"line_number":5820,"context_line":"  required: true"},{"line_number":5821,"context_line":"  type: integer"},{"line_number":5822,"context_line":"server_groups_list:"},{"line_number":5823,"context_line":"  description: |"},{"line_number":5824,"context_line":"    The list of existing server groups."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_240cd139","line":5821,"range":{"start_line":5816,"start_character":0,"end_line":5821,"end_character":15},"in_reply_to":"9fdfeff1_c8f08e00","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ad56185972b3a71f2a98dcd6ee8b036672fb3641","unresolved":false,"context_lines":[{"line_number":6330,"context_line":"  in: body"},{"line_number":6331,"context_line":"  required: true"},{"line_number":6332,"context_line":"  type: array"},{"line_number":6333,"context_line":"server_groups_2_68:"},{"line_number":6334,"context_line":"  description: |"},{"line_number":6335,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":6336,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_88de066b","line":6333,"range":{"start_line":6333,"start_character":0,"end_line":6333,"end_character":18},"updated":"2019-01-28 01:09:54.000000000","message":"Parameters should be sorted.\nIt should exist just after \u0027server_groups\u0027.","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":6330,"context_line":"  in: body"},{"line_number":6331,"context_line":"  required: true"},{"line_number":6332,"context_line":"  type: array"},{"line_number":6333,"context_line":"server_groups_2_68:"},{"line_number":6334,"context_line":"  description: |"},{"line_number":6335,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":6336,"context_line":"  in: body"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_c90f1e35","line":6333,"range":{"start_line":6333,"start_character":0,"end_line":6333,"end_character":18},"in_reply_to":"9fdfeff1_88de066b","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ad56185972b3a71f2a98dcd6ee8b036672fb3641","unresolved":false,"context_lines":[{"line_number":6335,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":6336,"context_line":"  in: body"},{"line_number":6337,"context_line":"  required: true"},{"line_number":6338,"context_line":"  type: array"},{"line_number":6339,"context_line":"tenant_id_body:"},{"line_number":6340,"context_line":"  description: |"},{"line_number":6341,"context_line":"    The UUID of the tenant in a multi-tenancy cloud."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_e8ceb2b2","line":6338,"range":{"start_line":6338,"start_character":1,"end_line":6338,"end_character":13},"updated":"2019-01-28 01:09:54.000000000","message":"It is an object, not an array.","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"598da9512570dbd5c8260f39a5309e665919d01b","unresolved":false,"context_lines":[{"line_number":6330,"context_line":"  in: body"},{"line_number":6331,"context_line":"  required: true"},{"line_number":6332,"context_line":"  type: array"},{"line_number":6333,"context_line":"server_groups_2_68:"},{"line_number":6334,"context_line":"  description: |"},{"line_number":6335,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":6336,"context_line":"  in: body"},{"line_number":6337,"context_line":"  required: true"},{"line_number":6338,"context_line":"  type: array"},{"line_number":6339,"context_line":"tenant_id_body:"},{"line_number":6340,"context_line":"  description: |"},{"line_number":6341,"context_line":"    The UUID of the tenant in a multi-tenancy cloud."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_564bf957","line":6338,"range":{"start_line":6333,"start_character":0,"end_line":6338,"end_character":13},"updated":"2019-01-25 07:16:30.000000000","message":"should add ``min_vwersion: 2.68`` check the ``tags`` field above.","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":6330,"context_line":"  in: body"},{"line_number":6331,"context_line":"  required: true"},{"line_number":6332,"context_line":"  type: array"},{"line_number":6333,"context_line":"server_groups_2_68:"},{"line_number":6334,"context_line":"  description: |"},{"line_number":6335,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":6336,"context_line":"  in: body"},{"line_number":6337,"context_line":"  required: true"},{"line_number":6338,"context_line":"  type: array"},{"line_number":6339,"context_line":"tenant_id_body:"},{"line_number":6340,"context_line":"  description: |"},{"line_number":6341,"context_line":"    The UUID of the tenant in a multi-tenancy cloud."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_04074d1a","line":6338,"range":{"start_line":6333,"start_character":0,"end_line":6338,"end_character":13},"in_reply_to":"9fdfeff1_564bf957","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":6335,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":6336,"context_line":"  in: body"},{"line_number":6337,"context_line":"  required: true"},{"line_number":6338,"context_line":"  type: array"},{"line_number":6339,"context_line":"tenant_id_body:"},{"line_number":6340,"context_line":"  description: |"},{"line_number":6341,"context_line":"    The UUID of the tenant in a multi-tenancy cloud."}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_e90c6242","line":6338,"range":{"start_line":6338,"start_character":1,"end_line":6338,"end_character":13},"in_reply_to":"9fdfeff1_e8ceb2b2","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":5863,"context_line":"  type: integer"},{"line_number":5864,"context_line":"server_groups_2_71:"},{"line_number":5865,"context_line":"  description: |"},{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_c0737ae6","line":5866,"range":{"start_line":5866,"start_character":4,"end_line":5866,"end_character":61},"updated":"2019-02-26 02:51:13.000000000","message":"\"The UUID of the server group to which the server belongs or None if the server is not in any group.\"","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5992b7834155f8e4474fd0df0560bd688411af28","unresolved":false,"context_lines":[{"line_number":5863,"context_line":"  type: integer"},{"line_number":5864,"context_line":"server_groups_2_71:"},{"line_number":5865,"context_line":"  description: |"},{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_cb915b54","line":5866,"range":{"start_line":5866,"start_character":4,"end_line":5866,"end_character":61},"in_reply_to":"9fdfeff1_6bfe2fb0","updated":"2019-02-26 03:09:06.000000000","message":"Like this:\n\nhttps://review.openstack.org/#/c/612255/4/specs/stein/approved/list-server-group.rst@62","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"f36959d6fafa2bb7e9f254537d3d3ab747299cbd","unresolved":false,"context_lines":[{"line_number":5863,"context_line":"  type: integer"},{"line_number":5864,"context_line":"server_groups_2_71:"},{"line_number":5865,"context_line":"  description: |"},{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_6bfe2fb0","line":5866,"range":{"start_line":5866,"start_character":4,"end_line":5866,"end_character":61},"in_reply_to":"9fdfeff1_c0737ae6","updated":"2019-02-26 03:00:16.000000000","message":"Also, just a question, but why didn\u0027t we also decide to include the server group name in the response along with the UUID? That seems convenient while we are already looking up the server group from the database. I know the user can get the name from GET /os-server-groups/{server_group_id} but it seems nice to also return the name with the ID while we have it.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"24957844c730a0ec7d9f4715ca5fb56b0174375a","unresolved":false,"context_lines":[{"line_number":5863,"context_line":"  type: integer"},{"line_number":5864,"context_line":"server_groups_2_71:"},{"line_number":5865,"context_line":"  description: |"},{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_f3ad1fea","line":5866,"range":{"start_line":5866,"start_character":4,"end_line":5866,"end_character":61},"in_reply_to":"9fdfeff1_cb915b54","updated":"2019-02-27 00:17:02.000000000","message":"OK I guess the consensus in the mailing list seems to be to use a list like you have. But let\u0027s please change the description to be, \"The UUIDs of the server groups to which the server belongs. Currently this can contain at most one entry.\"\n\nThat way at least our docs mention that this would only have at most one entry, and then if in the future we support multiple servers groups we could update this description.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":5863,"context_line":"  type: integer"},{"line_number":5864,"context_line":"server_groups_2_71:"},{"line_number":5865,"context_line":"  description: |"},{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_f018b0d3","line":5866,"range":{"start_line":5866,"start_character":4,"end_line":5866,"end_character":61},"in_reply_to":"9fdfeff1_f3ad1fea","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"},{"line_number":5870,"context_line":"  min_version: 2.71"},{"line_number":5871,"context_line":"server_groups_list:"},{"line_number":5872,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_006e62ff","line":5869,"range":{"start_line":5869,"start_character":8,"end_line":5869,"end_character":13},"updated":"2019-02-26 02:51:13.000000000","message":"Why an array? The server can only belong to at most one server group, specified during server create.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5992b7834155f8e4474fd0df0560bd688411af28","unresolved":false,"context_lines":[{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"},{"line_number":5870,"context_line":"  min_version: 2.71"},{"line_number":5871,"context_line":"server_groups_list:"},{"line_number":5872,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_cb7abb22","line":5869,"range":{"start_line":5869,"start_character":8,"end_line":5869,"end_character":13},"in_reply_to":"9fdfeff1_006e62ff","updated":"2019-02-26 03:09:06.000000000","message":"OK I see Jay wanted this to be an array specifically:\n\nhttps://review.openstack.org/#/c/612255/11/specs/stein/approved/show-server-group.rst@67\n\nI missed that in the review comments of the spec.\n\nCan you bring this up in the mailing list because I disagree with Jay here and while I appreciate future-proofing this in the API, I also think it\u0027s misleading, and at this point I would rather not be misleading than wait for support for a server in multiple groups (which I know people have tried to add over the years and it\u0027s quite complicated so I don\u0027t see that happening anytime soon).\n\nIt\u0027s also somewhat like the server group \"policies\" vs \"policy\" change in 2.64 because the server groups API had \"policies\" but could only ever be exactly one, so it was just weird semantics and we fixed that in 2.64.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":5866,"context_line":"    The UUID of the server groups which the server belong to."},{"line_number":5867,"context_line":"  in: body"},{"line_number":5868,"context_line":"  required: true"},{"line_number":5869,"context_line":"  type: array"},{"line_number":5870,"context_line":"  min_version: 2.71"},{"line_number":5871,"context_line":"server_groups_list:"},{"line_number":5872,"context_line":"  description: |"}],"source_content_type":"text/x-yaml","patch_set":23,"id":"9fdfeff1_b00ea889","line":5869,"range":{"start_line":5869,"start_character":8,"end_line":5869,"end_character":13},"in_reply_to":"9fdfeff1_cb7abb22","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"}],"api-ref/source/servers-actions.inc":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":563,"context_line":"  - key_name: key_name_rebuild_req"},{"line_number":564,"context_line":"  - user_data: user_data_rebuild_req"},{"line_number":565,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_rebuild_req"},{"line_number":566,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":569,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":23,"id":"9fdfeff1_204cc69c","line":566,"range":{"start_line":566,"start_character":4,"end_line":566,"end_character":17},"updated":"2019-02-26 02:51:13.000000000","message":"I know this is a list in the spec:\n\nhttps://specs.openstack.org/openstack/nova-specs/specs/stein/approved/show-server-group.html#rest-api-impact\n\nBut I\u0027m not sure why since the server can only belong to at most one server group, so I would think this should just:\n\nserver_group: \u003cserver_group_id or None\u003e","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":563,"context_line":"  - key_name: key_name_rebuild_req"},{"line_number":564,"context_line":"  - user_data: user_data_rebuild_req"},{"line_number":565,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_rebuild_req"},{"line_number":566,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":569,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_47cf807e","line":566,"range":{"start_line":566,"start_character":4,"end_line":566,"end_character":37},"updated":"2019-02-27 11:00:57.000000000","message":"err, why is this added here ? probably you meant to add it to the response ?","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":563,"context_line":"  - key_name: key_name_rebuild_req"},{"line_number":564,"context_line":"  - user_data: user_data_rebuild_req"},{"line_number":565,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_rebuild_req"},{"line_number":566,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":569,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_6ab3649b","line":566,"range":{"start_line":566,"start_character":4,"end_line":566,"end_character":37},"in_reply_to":"9fdfeff1_47cf807e","updated":"2019-02-27 14:48:01.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":563,"context_line":"  - key_name: key_name_rebuild_req"},{"line_number":564,"context_line":"  - user_data: user_data_rebuild_req"},{"line_number":565,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_rebuild_req"},{"line_number":566,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":569,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_cf662252","line":566,"range":{"start_line":566,"start_character":4,"end_line":566,"end_character":37},"in_reply_to":"9fdfeff1_47cf807e","updated":"2019-02-27 13:49:25.000000000","message":"good catch. thanks.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":614,"context_line":"  - key_name: key_name_rebuild_resp"},{"line_number":615,"context_line":"  - user_data: user_data_rebuild_resp"},{"line_number":616,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-action-rebuild-resp.json"}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_07d658f3","line":617,"updated":"2019-02-27 11:00:57.000000000","message":"as in shouldn\u0027t you be adding it to the response ? and also you should link this to the api_samples.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":614,"context_line":"  - key_name: key_name_rebuild_resp"},{"line_number":615,"context_line":"  - user_data: user_data_rebuild_resp"},{"line_number":616,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-action-rebuild-resp.json"}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_0f6f4a28","line":617,"in_reply_to":"9fdfeff1_07d658f3","updated":"2019-02-27 13:49:25.000000000","message":"link to doc is removed per Matt\u0027s comments.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"765db7bc6cf08e7e75aa099e8a01bdaf2790c137","unresolved":false,"context_lines":[{"line_number":615,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":616,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-action-rebuild-resp.json"},{"line_number":621,"context_line":"   :language: javascript"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"Remove (Disassociate) Floating Ip (removeFloatingIp Action) (DEPRECATED)"},{"line_number":624,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":30,"id":"9fdfeff1_f2988f69","line":621,"range":{"start_line":618,"start_character":0,"end_line":621,"end_character":24},"updated":"2019-02-28 12:08:08.000000000","message":"could be better if you add the new sample here.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fc9b93758160c28b8f9325e7cf0ce018f542aec0","unresolved":false,"context_lines":[{"line_number":615,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":616,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-action-rebuild-resp.json"},{"line_number":621,"context_line":"   :language: javascript"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"Remove (Disassociate) Floating Ip (removeFloatingIp Action) (DEPRECATED)"},{"line_number":624,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":30,"id":"9fdfeff1_b99503e6","line":621,"range":{"start_line":618,"start_character":0,"end_line":621,"end_character":24},"in_reply_to":"9fdfeff1_e898a069","updated":"2019-02-28 17:24:54.000000000","message":"Correct, I don\u0027t think we need a sample in the docs for every minor change we make, especially when the samples are so large.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6eac606ecf0e9497d995aa0a3a48a5520dd8fab9","unresolved":false,"context_lines":[{"line_number":615,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":616,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"**Example Rebuild Server (rebuild Action) (v2.63)**"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-action-rebuild-resp.json"},{"line_number":621,"context_line":"   :language: javascript"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"Remove (Disassociate) Floating Ip (removeFloatingIp Action) (DEPRECATED)"},{"line_number":624,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":30,"id":"9fdfeff1_e898a069","line":621,"range":{"start_line":618,"start_character":0,"end_line":621,"end_character":24},"in_reply_to":"9fdfeff1_f2988f69","updated":"2019-02-28 13:29:45.000000000","message":"Matt suggests removing that. refer to earlier comments.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"}],"api-ref/source/servers.inc":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"19985f87bebb9e1fde61c32015c6b5199232f41f","unresolved":false,"context_lines":[{"line_number":726,"context_line":"  - description: server_description_resp"},{"line_number":727,"context_line":"  - tags: tags"},{"line_number":728,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":729,"context_line":"  - server_groups: server_groups_2_68"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":732,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":5,"id":"bfdaf3ff_2cf7e861","line":729,"range":{"start_line":729,"start_character":19,"end_line":729,"end_character":37},"updated":"2019-01-18 02:30:41.000000000","message":"you did not define this","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"522f20085c03a94fffdd7779d17bc98cbb75837c","unresolved":false,"context_lines":[{"line_number":726,"context_line":"  - description: server_description_resp"},{"line_number":727,"context_line":"  - tags: tags"},{"line_number":728,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":729,"context_line":"  - server_groups: server_groups_2_68"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":732,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":5,"id":"9fdfeff1_ba24ba0e","line":729,"range":{"start_line":729,"start_character":19,"end_line":729,"end_character":37},"in_reply_to":"bfdaf3ff_2cf7e861","updated":"2019-01-24 05:18:06.000000000","message":"Done","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"19985f87bebb9e1fde61c32015c6b5199232f41f","unresolved":false,"context_lines":[{"line_number":771,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-req.json"},{"line_number":772,"context_line":"   :language: javascript"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"**Example Show Server Details (2.68)**"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.68/server-get-resp.json"},{"line_number":777,"context_line":"   :language: javascript"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":""},{"line_number":780,"context_line":"Response"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"bfdaf3ff_6c71700c","line":777,"range":{"start_line":774,"start_character":1,"end_line":777,"end_character":24},"updated":"2019-01-18 02:30:41.000000000","message":"wrong place?","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"522f20085c03a94fffdd7779d17bc98cbb75837c","unresolved":false,"context_lines":[{"line_number":771,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-req.json"},{"line_number":772,"context_line":"   :language: javascript"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":"**Example Show Server Details (2.68)**"},{"line_number":775,"context_line":""},{"line_number":776,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.68/server-get-resp.json"},{"line_number":777,"context_line":"   :language: javascript"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":""},{"line_number":780,"context_line":"Response"}],"source_content_type":"text/x-c++src","patch_set":5,"id":"9fdfeff1_3a7e8ae4","line":777,"range":{"start_line":774,"start_character":1,"end_line":777,"end_character":24},"in_reply_to":"bfdaf3ff_6c71700c","updated":"2019-01-24 05:18:06.000000000","message":"Done","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":726,"context_line":"  - description: server_description_resp"},{"line_number":727,"context_line":"  - tags: tags"},{"line_number":728,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":729,"context_line":"  - server_groups: server_groups_2_68"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":732,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":6,"id":"9fdfeff1_b354ce22","line":729,"range":{"start_line":729,"start_character":4,"end_line":729,"end_character":17},"updated":"2019-01-24 06:36:11.000000000","message":"it is server_groups here but it is server_group in your sample file, and it is said to be an array in pramameters.yaml but it is a dict in the sample, so one of them must be wrong.","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":726,"context_line":"  - description: server_description_resp"},{"line_number":727,"context_line":"  - tags: tags"},{"line_number":728,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":729,"context_line":"  - server_groups: server_groups_2_68"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":732,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":6,"id":"9fdfeff1_20070f85","line":729,"range":{"start_line":729,"start_character":4,"end_line":729,"end_character":17},"in_reply_to":"9fdfeff1_b354ce22","updated":"2019-01-25 05:39:58.000000000","message":"good catch. should be same as spec:server_groups, array.","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":770,"context_line":""},{"line_number":771,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-req.json"},{"line_number":772,"context_line":"   :language: javascript"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"Response"},{"line_number":776,"context_line":"--------"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"9fdfeff1_73c186e4","line":773,"updated":"2019-01-24 06:36:11.000000000","message":"unrelated","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":770,"context_line":""},{"line_number":771,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-req.json"},{"line_number":772,"context_line":"   :language: javascript"},{"line_number":773,"context_line":""},{"line_number":774,"context_line":""},{"line_number":775,"context_line":"Response"},{"line_number":776,"context_line":"--------"}],"source_content_type":"text/x-c++src","patch_set":6,"id":"9fdfeff1_a03f7f23","line":773,"in_reply_to":"9fdfeff1_73c186e4","updated":"2019-01-25 05:39:58.000000000","message":"Done","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ad56185972b3a71f2a98dcd6ee8b036672fb3641","unresolved":false,"context_lines":[{"line_number":727,"context_line":"  - tags: tags"},{"line_number":728,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":729,"context_line":"  - server_groups: server_groups_2_68"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":732,"context_line":""},{"line_number":733,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-get-resp.json"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"9fdfeff1_a8c42a92","line":730,"updated":"2019-01-28 01:09:54.000000000","message":"Add \u0027server_groups.uuid\u0027 parameter.","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":727,"context_line":"  - tags: tags"},{"line_number":728,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":729,"context_line":"  - server_groups: server_groups_2_68"},{"line_number":730,"context_line":""},{"line_number":731,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":732,"context_line":""},{"line_number":733,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-get-resp.json"}],"source_content_type":"text/x-c++src","patch_set":7,"id":"9fdfeff1_642f398e","line":730,"in_reply_to":"9fdfeff1_a8c42a92","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"598da9512570dbd5c8260f39a5309e665919d01b","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-resp.json"},{"line_number":822,"context_line":"   :language: javascript"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"Delete Server"},{"line_number":825,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":7,"id":"9fdfeff1_1677b1a2","line":823,"updated":"2019-01-25 07:16:30.000000000","message":"could also add a new sample here.","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":820,"context_line":""},{"line_number":821,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-resp.json"},{"line_number":822,"context_line":"   :language: javascript"},{"line_number":823,"context_line":""},{"line_number":824,"context_line":"Delete Server"},{"line_number":825,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":826,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":7,"id":"9fdfeff1_bebc4906","line":823,"in_reply_to":"9fdfeff1_1677b1a2","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"86a5bafcb6ac1d7da63138520f54c6098406461c","unresolved":false,"context_lines":[{"line_number":744,"context_line":"  - description: server_description_resp"},{"line_number":745,"context_line":"  - tags: tags"},{"line_number":746,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":747,"context_line":"  - server_groups: server_groups_2_70"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":750,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":10,"id":"9fdfeff1_7100fd01","line":747,"range":{"start_line":747,"start_character":4,"end_line":747,"end_character":37},"updated":"2019-02-18 09:49:59.000000000","message":"why is uuid missing in this api","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4e7c173e7e074e0d32059b743860b56fae78c5a8","unresolved":false,"context_lines":[{"line_number":744,"context_line":"  - description: server_description_resp"},{"line_number":745,"context_line":"  - tags: tags"},{"line_number":746,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":747,"context_line":"  - server_groups: server_groups_2_70"},{"line_number":748,"context_line":""},{"line_number":749,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":750,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":10,"id":"9fdfeff1_f124db10","line":747,"range":{"start_line":747,"start_character":4,"end_line":747,"end_character":37},"in_reply_to":"9fdfeff1_7100fd01","updated":"2019-02-19 02:32:25.000000000","message":"Done","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":783,"context_line":""},{"line_number":784,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.69/server-get-resp.json"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"**Example Show Server Details (2.71)**"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.71/server-get-resp.json"},{"line_number":789,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":23,"id":"9fdfeff1_6055ee1d","line":786,"updated":"2019-02-26 02:51:13.000000000","message":"I don\u0027t think we probably need yet another sample response in the docs here do we? This is a pretty simple addition so the description of the parameter should suffice.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":783,"context_line":""},{"line_number":784,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.69/server-get-resp.json"},{"line_number":785,"context_line":""},{"line_number":786,"context_line":"**Example Show Server Details (2.71)**"},{"line_number":787,"context_line":""},{"line_number":788,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.71/server-get-resp.json"},{"line_number":789,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":23,"id":"9fdfeff1_90e284d3","line":786,"in_reply_to":"9fdfeff1_6055ee1d","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":871,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-resp.json"},{"line_number":872,"context_line":"   :language: javascript"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"**Example Update Server (2.71)**"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.71/server-update-resp.json"},{"line_number":877,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":23,"id":"9fdfeff1_4036aa05","line":874,"updated":"2019-02-26 02:51:13.000000000","message":"same","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":871,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-resp.json"},{"line_number":872,"context_line":"   :language: javascript"},{"line_number":873,"context_line":""},{"line_number":874,"context_line":"**Example Update Server (2.71)**"},{"line_number":875,"context_line":""},{"line_number":876,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.71/server-update-resp.json"},{"line_number":877,"context_line":"   :language: javascript"}],"source_content_type":"text/x-c++src","patch_set":23,"id":"9fdfeff1_b0e788e3","line":874,"in_reply_to":"9fdfeff1_4036aa05","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":768,"context_line":"  - description: server_description_resp"},{"line_number":769,"context_line":"  - tags: tags"},{"line_number":770,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":771,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":774,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_e77d54e7","line":771,"updated":"2019-02-27 11:00:57.000000000","message":"you should link it to the example api_sample docs like 2.63 response.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"dcb70690a4ba1690b6bb019764ea6ea2b29e82d3","unresolved":false,"context_lines":[{"line_number":768,"context_line":"  - description: server_description_resp"},{"line_number":769,"context_line":"  - tags: tags"},{"line_number":770,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":771,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":774,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_aa2dcc46","line":771,"in_reply_to":"9fdfeff1_6fe296d6","updated":"2019-02-27 14:13:56.000000000","message":"oops sorry did not see that. Please ignore me then.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":768,"context_line":"  - description: server_description_resp"},{"line_number":769,"context_line":"  - tags: tags"},{"line_number":770,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":771,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"**Example Show Server Details (2.63)**"},{"line_number":774,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_6fe296d6","line":771,"in_reply_to":"9fdfeff1_e77d54e7","updated":"2019-02-27 13:49:25.000000000","message":"deleted per Matt\u0027s comments. refer to prevous patch set.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":860,"context_line":"  - description: server_description_resp"},{"line_number":861,"context_line":"  - tags: tags"},{"line_number":862,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":863,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"**Example Update Server (2.63)**"},{"line_number":866,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_8709e884","line":863,"updated":"2019-02-27 11:00:57.000000000","message":"you should link it to the example api_sample docs I suppose like here: https://github.com/openstack/nova/commit/88aa23c35393cc2d1814222fa1525051e045dbcf","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":860,"context_line":"  - description: server_description_resp"},{"line_number":861,"context_line":"  - tags: tags"},{"line_number":862,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":863,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"**Example Update Server (2.63)**"},{"line_number":866,"context_line":""}],"source_content_type":"text/x-c++src","patch_set":26,"id":"9fdfeff1_8fe7bae3","line":863,"in_reply_to":"9fdfeff1_8709e884","updated":"2019-02-27 13:49:25.000000000","message":"deleted per Matt\u0027s comments. refer to prevous patch set.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"765db7bc6cf08e7e75aa099e8a01bdaf2790c137","unresolved":false,"context_lines":[{"line_number":862,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":863,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"**Example Update Server (2.63)**"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-resp.json"},{"line_number":868,"context_line":"   :language: javascript"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"Delete Server"},{"line_number":871,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":30,"id":"9fdfeff1_72a49fa3","line":868,"range":{"start_line":865,"start_character":0,"end_line":868,"end_character":24},"updated":"2019-02-28 12:08:08.000000000","message":"could be better if you add the new sample here.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"6eac606ecf0e9497d995aa0a3a48a5520dd8fab9","unresolved":false,"context_lines":[{"line_number":862,"context_line":"  - trusted_image_certificates: server_trusted_image_certificates_resp"},{"line_number":863,"context_line":"  - server_groups: server_groups_2_71"},{"line_number":864,"context_line":""},{"line_number":865,"context_line":"**Example Update Server (2.63)**"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":".. literalinclude:: ../../doc/api_samples/servers/v2.63/server-update-resp.json"},{"line_number":868,"context_line":"   :language: javascript"},{"line_number":869,"context_line":""},{"line_number":870,"context_line":"Delete Server"},{"line_number":871,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-c++src","patch_set":30,"id":"9fdfeff1_68a4b0a3","line":868,"range":{"start_line":865,"start_character":0,"end_line":868,"end_character":24},"in_reply_to":"9fdfeff1_72a49fa3","updated":"2019-02-28 13:29:45.000000000","message":"ditto. refer to earlier comments.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"}],"doc/api_samples/servers/v2.68/server-get-resp.json":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                \"name\": \"default\""},{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_group\": {"},{"line_number":80,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":81,"context_line":"        },"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"},{"line_number":84,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","}],"source_content_type":"application/json","patch_set":6,"id":"9fdfeff1_b3292e9c","line":81,"range":{"start_line":79,"start_character":8,"end_line":81,"end_character":10},"updated":"2019-01-24 06:36:11.000000000","message":"shouldn\u0027this be an array? like security_groups above, and shouldn\u0027t the name be server_groups?","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                \"name\": \"default\""},{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_group\": {"},{"line_number":80,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":81,"context_line":"        },"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"},{"line_number":84,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","}],"source_content_type":"application/json","patch_set":6,"id":"9fdfeff1_207aaff0","line":81,"range":{"start_line":79,"start_character":8,"end_line":81,"end_character":10},"in_reply_to":"9fdfeff1_b3292e9c","updated":"2019-01-25 05:39:58.000000000","message":"i gonna keep this per spec for now. and it\u0027s should be server_groups. good catch.","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"598da9512570dbd5c8260f39a5309e665919d01b","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                \"name\": \"default\""},{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_groups\": {"},{"line_number":80,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":81,"context_line":"        },"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"},{"line_number":84,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","}],"source_content_type":"application/json","patch_set":7,"id":"9fdfeff1_b66585e3","line":81,"range":{"start_line":79,"start_character":26,"end_line":81,"end_character":10},"updated":"2019-01-25 07:16:30.000000000","message":"still, this is not an array, I think it should be something similar as the security_groups above? an arry of dict?","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                \"name\": \"default\""},{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_groups\": {"},{"line_number":80,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":81,"context_line":"        },"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"},{"line_number":84,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","}],"source_content_type":"application/json","patch_set":7,"id":"9fdfeff1_be51a9db","line":81,"range":{"start_line":79,"start_character":26,"end_line":81,"end_character":10},"in_reply_to":"9fdfeff1_b66585e3","updated":"2019-01-29 08:06:37.000000000","message":"I do it per spec, but I\u0027m open for this. Spec might pitfall about this array arrangement.","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"}],"doc/api_samples/servers/v2.70/server-get-resp.json":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"86a5bafcb6ac1d7da63138520f54c6098406461c","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                \"name\": \"default\""},{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_groups\": {"},{"line_number":80,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":81,"context_line":"        },"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"}],"source_content_type":"application/json","patch_set":10,"id":"9fdfeff1_517e196a","line":80,"range":{"start_line":79,"start_character":8,"end_line":80,"end_character":48},"updated":"2019-02-18 09:49:59.000000000","message":"hmm, could this just be a simple list? like \"server_groups\":[\"group_1\", \"group_2\"]","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4e7c173e7e074e0d32059b743860b56fae78c5a8","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                \"name\": \"default\""},{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_groups\": {"},{"line_number":80,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":81,"context_line":"        },"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"}],"source_content_type":"application/json","patch_set":10,"id":"9fdfeff1_11671f54","line":80,"range":{"start_line":79,"start_character":8,"end_line":80,"end_character":48},"in_reply_to":"9fdfeff1_517e196a","updated":"2019-02-19 02:32:25.000000000","message":"this is might open. Align with spec here.","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"}],"doc/api_samples/servers/v2.71/server-action-rebuild-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        },"},{"line_number":52,"context_line":"        \"name\": \"foobar\","},{"line_number":53,"context_line":"        \"progress\": 0,"},{"line_number":54,"context_line":"        \"server_groups\": [\"11111111-1111-1111-1111-111111111111\"],"},{"line_number":55,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":56,"context_line":"        \"tags\": [],"},{"line_number":57,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_ef6514e2","line":54,"range":{"start_line":54,"start_character":26,"end_line":54,"end_character":65},"updated":"2019-02-28 02:06:18.000000000","message":"Use 52ffd591-8a01-4f1f-bfc3-cabdce815488 to be consistent with the server create sample.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        },"},{"line_number":52,"context_line":"        \"name\": \"foobar\","},{"line_number":53,"context_line":"        \"progress\": 0,"},{"line_number":54,"context_line":"        \"server_groups\": [\"11111111-1111-1111-1111-111111111111\"],"},{"line_number":55,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":56,"context_line":"        \"tags\": [],"},{"line_number":57,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_ea68a221","line":54,"range":{"start_line":54,"start_character":26,"end_line":54,"end_character":65},"in_reply_to":"9fdfeff1_ef6514e2","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"doc/api_samples/servers/v2.71/server-create-req.json":[{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""},{"line_number":12,"context_line":"        },"},{"line_number":13,"context_line":"        \"personality\": ["},{"line_number":14,"context_line":"            {"},{"line_number":15,"context_line":"                \"path\": \"/etc/banner.txt\","},{"line_number":16,"context_line":"                \"contents\": \"ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA\u003d\u003d\""},{"line_number":17,"context_line":"            }"},{"line_number":18,"context_line":"        ],"},{"line_number":19,"context_line":"        \"security_groups\": ["},{"line_number":20,"context_line":"            {"},{"line_number":21,"context_line":"                \"name\": \"default\""}],"source_content_type":"application/json","patch_set":26,"id":"9fdfeff1_62f5d2ca","line":18,"range":{"start_line":13,"start_character":8,"end_line":18,"end_character":10},"updated":"2019-02-27 11:00:57.000000000","message":"isn\u0027t this an old thing which is not allowed ? I wonder how this is still working.. see https://review.openstack.org/#/c/522027/ and https://github.com/openstack/nova/commit/d110ec59615d24e4a6528d41c0f3f73b7f93aa05#diff-5ea8f74fc5cc32e9404bf0311535586d for more details. I don\u0027t know how this isn\u0027t blowing up.\n\nyour api_samples seem to be generating the correct one: https://review.openstack.org/#/c/621474/26/nova/tests/functional/api_sample_tests/api_samples/servers/v2.71/server-create-req.json.tpl how is the doc sample having this field ? was this indeed generated using tox -e api_samples ?","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""},{"line_number":12,"context_line":"        },"},{"line_number":13,"context_line":"        \"personality\": ["},{"line_number":14,"context_line":"            {"},{"line_number":15,"context_line":"                \"path\": \"/etc/banner.txt\","},{"line_number":16,"context_line":"                \"contents\": \"ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA\u003d\u003d\""},{"line_number":17,"context_line":"            }"},{"line_number":18,"context_line":"        ],"},{"line_number":19,"context_line":"        \"security_groups\": ["},{"line_number":20,"context_line":"            {"},{"line_number":21,"context_line":"                \"name\": \"default\""}],"source_content_type":"application/json","patch_set":26,"id":"9fdfeff1_aaef0c85","line":18,"range":{"start_line":13,"start_character":8,"end_line":18,"end_character":10},"in_reply_to":"9fdfeff1_62f5d2ca","updated":"2019-02-27 14:48:01.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""},{"line_number":12,"context_line":"        },"},{"line_number":13,"context_line":"        \"personality\": ["},{"line_number":14,"context_line":"            {"},{"line_number":15,"context_line":"                \"path\": \"/etc/banner.txt\","},{"line_number":16,"context_line":"                \"contents\": \"ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6 b25zLiINCg0KLVJpY2hhcmQgQmFjaA\u003d\u003d\""},{"line_number":17,"context_line":"            }"},{"line_number":18,"context_line":"        ],"},{"line_number":19,"context_line":"        \"security_groups\": ["},{"line_number":20,"context_line":"            {"},{"line_number":21,"context_line":"                \"name\": \"default\""}],"source_content_type":"application/json","patch_set":26,"id":"9fdfeff1_cf1862d4","line":18,"range":{"start_line":13,"start_character":8,"end_line":18,"end_character":10},"in_reply_to":"9fdfeff1_62f5d2ca","updated":"2019-02-27 13:49:25.000000000","message":"this json generated by an old template, i gonna regenerated this file.\nthanks.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \"OS-SCH-HNT:scheduler_hints\": {"},{"line_number":27,"context_line":"        \"group\": \"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\""},{"line_number":28,"context_line":"    }"},{"line_number":29,"context_line":"}"}],"source_content_type":"application/json","patch_set":26,"id":"9fdfeff1_82cc7634","line":29,"updated":"2019-02-27 11:00:57.000000000","message":"also why is the \"networks\" field missing when its there in the api_sample test. I am super confused now, was this file just copied or something ? But the tests seem to pass just fine.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \"OS-SCH-HNT:scheduler_hints\": {"},{"line_number":27,"context_line":"        \"group\": \"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\""},{"line_number":28,"context_line":"    }"},{"line_number":29,"context_line":"}"}],"source_content_type":"application/json","patch_set":26,"id":"9fdfeff1_6ae5a4a3","line":29,"in_reply_to":"9fdfeff1_82cc7634","updated":"2019-02-27 14:48:01.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    \"OS-SCH-HNT:scheduler_hints\": {"},{"line_number":27,"context_line":"        \"group\": \"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\""},{"line_number":28,"context_line":"    }"},{"line_number":29,"context_line":"}"}],"source_content_type":"application/json","patch_set":26,"id":"9fdfeff1_ef1c46c3","line":29,"in_reply_to":"9fdfeff1_82cc7634","updated":"2019-02-27 13:49:25.000000000","message":"same as above, generated at first time, add to git, and late testing just ignore all of these, i suppose.\n\nthanks.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_0f6df8ca","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"updated":"2019-02-28 02:06:18.000000000","message":"Let\u0027s remove this, see bug 1817963.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"70a599e0-31e7-49b7-b260-868f441e862b\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_4a7a0ef1","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"in_reply_to":"9fdfeff1_0f6df8ca","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        \"networks\": \"auto\""},{"line_number":20,"context_line":"    },"},{"line_number":21,"context_line":"    \"OS-SCH-HNT:scheduler_hints\": {"},{"line_number":22,"context_line":"        \"group\": \"52ffd591-8a01-4f1f-bfc3-cabdce815488\""},{"line_number":23,"context_line":"    }"},{"line_number":24,"context_line":"}"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_cf6a90b1","line":22,"range":{"start_line":22,"start_character":18,"end_line":22,"end_character":54},"updated":"2019-02-28 02:06:18.000000000","message":"You should use this group ID throughout the samples for 2.71, I noticed the group ID in the rebuild response was all 1s.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        \"networks\": \"auto\""},{"line_number":20,"context_line":"    },"},{"line_number":21,"context_line":"    \"OS-SCH-HNT:scheduler_hints\": {"},{"line_number":22,"context_line":"        \"group\": \"52ffd591-8a01-4f1f-bfc3-cabdce815488\""},{"line_number":23,"context_line":"    }"},{"line_number":24,"context_line":"}"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_0a8086be","line":22,"range":{"start_line":22,"start_character":18,"end_line":22,"end_character":54},"in_reply_to":"9fdfeff1_cf6a90b1","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"doc/api_samples/servers/v2.71/server-get-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_groups\": ["},{"line_number":80,"context_line":"            \"0fd77252-4eef-4ec4-ae9b-e05dfc98aeac\""},{"line_number":81,"context_line":"        ],"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_6f9fe4b3","line":80,"updated":"2019-02-28 02:06:18.000000000","message":"This should be 52ffd591-8a01-4f1f-bfc3-cabdce815488 to match what was in the create request.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":77,"context_line":"            }"},{"line_number":78,"context_line":"        ],"},{"line_number":79,"context_line":"        \"server_groups\": ["},{"line_number":80,"context_line":"            \"0fd77252-4eef-4ec4-ae9b-e05dfc98aeac\""},{"line_number":81,"context_line":"        ],"},{"line_number":82,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":83,"context_line":"        \"tags\": [],"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_aa193ad1","line":80,"in_reply_to":"9fdfeff1_6f9fe4b3","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"doc/api_samples/servers/v2.71/server-get-server-group-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_cf9850c1","line":1,"updated":"2019-02-28 02:06:18.000000000","message":"This is the down-cell case correct? Can we rename the file to reflect that, something like server-get-down-cell-resp.json.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_8a4556b6","line":1,"in_reply_to":"9fdfeff1_cf9850c1","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"2019-02-27T07:00:09Z\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_6feda423","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"updated":"2019-02-28 02:06:18.000000000","message":"When you remove the availability_zone from the server create request sample I would expect this to change to UNKNOWN.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"2019-02-27T07:00:09Z\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_aa405aa3","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"in_reply_to":"9fdfeff1_6feda423","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            ]"},{"line_number":24,"context_line":"        },"},{"line_number":25,"context_line":"        \"server_groups\": ["},{"line_number":26,"context_line":"            \"f62aa242-fe5e-43b1-860c-8f97371a0183\""},{"line_number":27,"context_line":"        ],"},{"line_number":28,"context_line":"        \"status\": \"UNKNOWN\","},{"line_number":29,"context_line":"        \"tenant_id\": \"project\","}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_8fb56834","line":26,"updated":"2019-02-28 02:06:18.000000000","message":"52ffd591-8a01-4f1f-bfc3-cabdce815488","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            ]"},{"line_number":24,"context_line":"        },"},{"line_number":25,"context_line":"        \"server_groups\": ["},{"line_number":26,"context_line":"            \"f62aa242-fe5e-43b1-860c-8f97371a0183\""},{"line_number":27,"context_line":"        ],"},{"line_number":28,"context_line":"        \"status\": \"UNKNOWN\","},{"line_number":29,"context_line":"        \"tenant_id\": \"project\","}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_4a152e9b","line":26,"in_reply_to":"9fdfeff1_8fb56834","updated":"2019-02-28 03:34:34.000000000","message":"this is auto genarated.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"doc/api_samples/servers/v2.71/server-groups-post-req.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server_group\": {"},{"line_number":3,"context_line":"        \"name\": \"test\","},{"line_number":4,"context_line":"        \"policies\": [\"anti-affinity\"]"},{"line_number":5,"context_line":"    }"},{"line_number":6,"context_line":"}"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_afde2c67","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":17},"updated":"2019-02-28 02:06:18.000000000","message":"This is wrong - was this sample generated from the correct code? Because starting with 2.64 this parameter was changed to just \"policy\" (singular).","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server_group\": {"},{"line_number":3,"context_line":"        \"name\": \"test\","},{"line_number":4,"context_line":"        \"policies\": [\"anti-affinity\"]"},{"line_number":5,"context_line":"    }"},{"line_number":6,"context_line":"}"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_4ac8ce20","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":17},"in_reply_to":"9fdfeff1_afde2c67","updated":"2019-02-28 03:34:34.000000000","message":"Done. I guess I need regenerating all the json. thanks.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"doc/api_samples/servers/v2.71/server-groups-post-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"id\": \"1cf2b62f-8794-4486-8c06-be0065b6a08e\","},{"line_number":4,"context_line":"        \"members\": [],"},{"line_number":5,"context_line":"        \"name\": \"test\","},{"line_number":6,"context_line":"        \"policy\": \"affinity\","},{"line_number":7,"context_line":"        \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":8,"context_line":"        \"rules\": {},"},{"line_number":9,"context_line":"        \"user_id\": \"fake\""}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_6fd60452","line":6,"range":{"start_line":6,"start_character":19,"end_line":6,"end_character":27},"updated":"2019-02-28 02:06:18.000000000","message":"This should be anti-affinity to match the create request.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":3,"context_line":"        \"id\": \"1cf2b62f-8794-4486-8c06-be0065b6a08e\","},{"line_number":4,"context_line":"        \"members\": [],"},{"line_number":5,"context_line":"        \"name\": \"test\","},{"line_number":6,"context_line":"        \"policy\": \"affinity\","},{"line_number":7,"context_line":"        \"project_id\": \"6f70656e737461636b20342065766572\","},{"line_number":8,"context_line":"        \"rules\": {},"},{"line_number":9,"context_line":"        \"user_id\": \"fake\""}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_8ae1d69d","line":6,"range":{"start_line":6,"start_character":19,"end_line":6,"end_character":27},"in_reply_to":"9fdfeff1_6fd60452","updated":"2019-02-28 03:34:34.000000000","message":"Done. Should be affinity. all these json is old, I regenerate them. thanks.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"doc/api_samples/servers/v2.71/server-update-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \"name\": \"new-server-test\","},{"line_number":51,"context_line":"        \"progress\": 0,"},{"line_number":52,"context_line":"        \"server_groups\": ["},{"line_number":53,"context_line":"            \"11111111-1111-1111-1111-111111111111\""},{"line_number":54,"context_line":"        ],"},{"line_number":55,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":56,"context_line":"        \"tags\": [],"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_cfc6109b","line":53,"updated":"2019-02-28 02:06:18.000000000","message":"Would be nice to use 52ffd591-8a01-4f1f-bfc3-cabdce815488 here again to match server create.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        \"name\": \"new-server-test\","},{"line_number":51,"context_line":"        \"progress\": 0,"},{"line_number":52,"context_line":"        \"server_groups\": ["},{"line_number":53,"context_line":"            \"11111111-1111-1111-1111-111111111111\""},{"line_number":54,"context_line":"        ],"},{"line_number":55,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":56,"context_line":"        \"tags\": [],"}],"source_content_type":"application/json","patch_set":27,"id":"9fdfeff1_6a935250","line":53,"in_reply_to":"9fdfeff1_cfc6109b","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"19985f87bebb9e1fde61c32015c6b5199232f41f","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds the ``server_group`` field to servers detail and index API."},{"line_number":168,"context_line":"\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":5,"id":"bfdaf3ff_2cce082e","line":167,"range":{"start_line":167,"start_character":63,"end_line":167,"end_character":72},"updated":"2019-01-18 02:30:41.000000000","message":"not correct","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"522f20085c03a94fffdd7779d17bc98cbb75837c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds the ``server_group`` field to servers detail and index API."},{"line_number":168,"context_line":"\"\"\""},{"line_number":169,"context_line":""},{"line_number":170,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_5a4fcebc","line":167,"range":{"start_line":167,"start_character":63,"end_line":167,"end_character":72},"in_reply_to":"bfdaf3ff_2cce082e","updated":"2019-01-24 05:18:06.000000000","message":"Done","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds the ``server_group`` field to ``GET /servers/{id}``,"},{"line_number":168,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":169,"context_line":"            ``POST /servers/{server_id}/action``."},{"line_number":170,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_33177e54","line":167,"range":{"start_line":167,"start_character":21,"end_line":167,"end_character":38},"updated":"2019-01-24 06:36:11.000000000","message":"so we should be consisistant about this name","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":164,"context_line":"             os-migrations API."},{"line_number":165,"context_line":"    * 2.67 - Adds the optional ``volume_type`` field to the"},{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds the ``server_group`` field to ``GET /servers/{id}``,"},{"line_number":168,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":169,"context_line":"            ``POST /servers/{server_id}/action``."},{"line_number":170,"context_line":"\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_20de2f11","line":167,"range":{"start_line":167,"start_character":21,"end_line":167,"end_character":38},"in_reply_to":"9fdfeff1_33177e54","updated":"2019-01-25 05:39:58.000000000","message":"Done","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds the ``server_group`` field to ``GET /servers/{id}``,"},{"line_number":168,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":169,"context_line":"            ``POST /servers/{server_id}/action``."},{"line_number":170,"context_line":"\"\"\""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_4efff900","line":169,"updated":"2019-01-24 06:36:11.000000000","message":"responses, otherwise could be confused.","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":166,"context_line":"             ``block_device_mapping_v2`` parameter when creating a server."},{"line_number":167,"context_line":"    * 2.68 - Adds the ``server_group`` field to ``GET /servers/{id}``,"},{"line_number":168,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":169,"context_line":"            ``POST /servers/{server_id}/action``."},{"line_number":170,"context_line":"\"\"\""},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_80c11b31","line":169,"in_reply_to":"9fdfeff1_4efff900","updated":"2019-01-25 05:39:58.000000000","message":"Done","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"86a5bafcb6ac1d7da63138520f54c6098406461c","unresolved":false,"context_lines":[{"line_number":172,"context_line":"             condition in the deployment like an infrastructure failure."},{"line_number":173,"context_line":"    * 2.70 - Adds the ``server_groups`` field to ``GET /servers/{id}``,"},{"line_number":174,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":175,"context_line":"            ``POST /servers/{server_id}/action`` responses."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"\"\"\""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9fdfeff1_b1e3c533","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":58},"updated":"2019-02-18 09:49:59.000000000","message":"don\u0027t see you have api-ref or tests on this case?","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4e7c173e7e074e0d32059b743860b56fae78c5a8","unresolved":false,"context_lines":[{"line_number":172,"context_line":"             condition in the deployment like an infrastructure failure."},{"line_number":173,"context_line":"    * 2.70 - Adds the ``server_groups`` field to ``GET /servers/{id}``,"},{"line_number":174,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":175,"context_line":"            ``POST /servers/{server_id}/action`` responses."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"\"\"\""},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"9fdfeff1_91f22f6f","line":175,"range":{"start_line":175,"start_character":12,"end_line":175,"end_character":58},"in_reply_to":"9fdfeff1_b1e3c533","updated":"2019-02-19 02:32:25.000000000","message":"seems we do need one test. thanks. gonna fix it soon.","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":174,"context_line":"             ``os-volume_attachments`` and ``os-interface`` APIs."},{"line_number":175,"context_line":"    * 2.71 - Adds the ``server_groups`` field to ``GET /servers/{id}``,"},{"line_number":176,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":177,"context_line":"            ``POST /servers/{server_id}/action`` responses."},{"line_number":178,"context_line":"\"\"\""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_afb70c21","line":177,"range":{"start_line":177,"start_character":12,"end_line":177,"end_character":48},"updated":"2019-02-28 02:06:18.000000000","message":"``POST /servers/{server_id}/action`` (rebuild)","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":174,"context_line":"             ``os-volume_attachments`` and ``os-interface`` APIs."},{"line_number":175,"context_line":"    * 2.71 - Adds the ``server_groups`` field to ``GET /servers/{id}``,"},{"line_number":176,"context_line":"            ``PUT /servers/{server_id}`` and"},{"line_number":177,"context_line":"            ``POST /servers/{server_id}/action`` responses."},{"line_number":178,"context_line":"\"\"\""},{"line_number":179,"context_line":""},{"line_number":180,"context_line":"# The minimum and maximum versions of the API supported"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_8ad796ee","line":177,"range":{"start_line":177,"start_character":12,"end_line":177,"end_character":48},"in_reply_to":"9fdfeff1_afb70c21","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"nova/api/openstack/compute/rest_api_version_history.rst":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Adds the ``server_groups``informaion to API ``GET /servers/{server_id}``."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"The ``server_groups`` parameter will be in the response body of the following"},{"line_number":870,"context_line":"APIs:"},{"line_number":871,"context_line":""},{"line_number":872,"context_line":"* ``GET /servers/{server_id}``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fdfeff1_0e09f12a","line":869,"range":{"start_line":869,"start_character":4,"end_line":869,"end_character":21},"updated":"2019-01-24 06:36:11.000000000","message":"see, it is sever_groups again","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Adds the ``server_groups``informaion to API ``GET /servers/{server_id}``."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"The ``server_groups`` parameter will be in the response body of the following"},{"line_number":870,"context_line":"APIs:"},{"line_number":871,"context_line":""},{"line_number":872,"context_line":"* ``GET /servers/{server_id}``"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9fdfeff1_a06d3f33","line":869,"range":{"start_line":869,"start_character":4,"end_line":869,"end_character":21},"in_reply_to":"9fdfeff1_0e09f12a","updated":"2019-01-25 05:39:58.000000000","message":"Done","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"598da9512570dbd5c8260f39a5309e665919d01b","unresolved":false,"context_lines":[{"line_number":864,"context_line":"2.68"},{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Adds the ``server_groups``informaion to API ``GET /servers/{server_id}``."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"The ``server_groups`` parameter will be in the response body of the following"},{"line_number":870,"context_line":"APIs:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fdfeff1_b6aa65cf","line":867,"range":{"start_line":867,"start_character":0,"end_line":867,"end_character":73},"updated":"2019-01-25 07:16:30.000000000","message":"redundant","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":864,"context_line":"2.68"},{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Adds the ``server_groups``informaion to API ``GET /servers/{server_id}``."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"The ``server_groups`` parameter will be in the response body of the following"},{"line_number":870,"context_line":"APIs:"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9fdfeff1_de4eed36","line":867,"range":{"start_line":867,"start_character":0,"end_line":867,"end_character":73},"in_reply_to":"9fdfeff1_b6aa65cf","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f018af029e38a6378b6e532bddeb8158211d72f5","unresolved":false,"context_lines":[{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Remove support for forced live migration and evacuate server actions."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"The ``server_groups`` parameter will be in the response body of the following"},{"line_number":870,"context_line":"APIs to list the server groups to which the server belongs:"},{"line_number":871,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fdfeff1_e447364c","line":868,"updated":"2019-02-19 08:54:41.000000000","message":"you should write like line 864, to mark out this version.","commit_id":"85985dbf91df81c7d66118ae29b2a2787f3ede86"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8b544bb951e904a2667a0167c886b25e69dca86d","unresolved":false,"context_lines":[{"line_number":865,"context_line":"----"},{"line_number":866,"context_line":""},{"line_number":867,"context_line":"Remove support for forced live migration and evacuate server actions."},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"The ``server_groups`` parameter will be in the response body of the following"},{"line_number":870,"context_line":"APIs to list the server groups to which the server belongs:"},{"line_number":871,"context_line":""}],"source_content_type":"text/x-rst","patch_set":12,"id":"9fdfeff1_052fc2a7","line":868,"in_reply_to":"9fdfeff1_e447364c","updated":"2019-02-20 05:17:51.000000000","message":"Done","commit_id":"85985dbf91df81c7d66118ae29b2a2787f3ede86"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":430,"context_line":"            cell_down_support\u003dcell_down_support)"},{"line_number":431,"context_line":"        return self._view_builder.show("},{"line_number":432,"context_line":"            req, instance, cell_down_support\u003dcell_down_support,"},{"line_number":433,"context_line":"            show_server_groups\u003dTrue)"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    @staticmethod"},{"line_number":436,"context_line":"    def _process_bdms_for_create("}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_00150249","line":433,"range":{"start_line":433,"start_character":31,"end_line":433,"end_character":35},"updated":"2019-02-26 02:51:13.000000000","message":"Why is this not conditional on the microversion?","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":430,"context_line":"            cell_down_support\u003dcell_down_support)"},{"line_number":431,"context_line":"        return self._view_builder.show("},{"line_number":432,"context_line":"            req, instance, cell_down_support\u003dcell_down_support,"},{"line_number":433,"context_line":"            show_server_groups\u003dTrue)"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    @staticmethod"},{"line_number":436,"context_line":"    def _process_bdms_for_create("}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_9004c415","line":433,"range":{"start_line":433,"start_character":31,"end_line":433,"end_character":35},"in_reply_to":"9fdfeff1_00150249","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":807,"context_line":"                                           show_sec_grp\u003dFalse,"},{"line_number":808,"context_line":"                                           show_extended_status\u003dFalse,"},{"line_number":809,"context_line":"                                           show_extended_volumes\u003dFalse,"},{"line_number":810,"context_line":"                                           show_server_groups\u003dTrue)"},{"line_number":811,"context_line":"        except exception.InstanceNotFound:"},{"line_number":812,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":813,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_a00d163f","line":810,"range":{"start_line":810,"start_character":62,"end_line":810,"end_character":66},"updated":"2019-02-26 02:51:13.000000000","message":"same - I would expect this to be conditional based on the microversion.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":807,"context_line":"                                           show_sec_grp\u003dFalse,"},{"line_number":808,"context_line":"                                           show_extended_status\u003dFalse,"},{"line_number":809,"context_line":"                                           show_extended_volumes\u003dFalse,"},{"line_number":810,"context_line":"                                           show_server_groups\u003dTrue)"},{"line_number":811,"context_line":"        except exception.InstanceNotFound:"},{"line_number":812,"context_line":"            msg \u003d _(\"Instance could not be found\")"},{"line_number":813,"context_line":"            raise exc.HTTPNotFound(explanation\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_f003d00b","line":810,"range":{"start_line":810,"start_character":62,"end_line":810,"end_character":66},"in_reply_to":"9fdfeff1_a00d163f","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":1099,"context_line":"                                       show_sec_grp\u003dFalse,"},{"line_number":1100,"context_line":"                                       show_extended_status\u003dFalse,"},{"line_number":1101,"context_line":"                                       show_extended_volumes\u003dFalse,"},{"line_number":1102,"context_line":"                                       show_server_groups\u003dTrue)"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":"        # Add on the admin_password attribute since the view doesn\u0027t do it"},{"line_number":1105,"context_line":"        # unless instance passwords are disabled"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_c00a9a24","line":1102,"range":{"start_line":1102,"start_character":58,"end_line":1102,"end_character":62},"updated":"2019-02-26 02:51:13.000000000","message":"same, like how we handle show_keypair","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":1099,"context_line":"                                       show_sec_grp\u003dFalse,"},{"line_number":1100,"context_line":"                                       show_extended_status\u003dFalse,"},{"line_number":1101,"context_line":"                                       show_extended_volumes\u003dFalse,"},{"line_number":1102,"context_line":"                                       show_server_groups\u003dTrue)"},{"line_number":1103,"context_line":""},{"line_number":1104,"context_line":"        # Add on the admin_password attribute since the view doesn\u0027t do it"},{"line_number":1105,"context_line":"        # unless instance passwords are disabled"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_700fe02d","line":1102,"range":{"start_line":1102,"start_character":58,"end_line":1102,"end_character":62},"in_reply_to":"9fdfeff1_c00a9a24","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":803,"context_line":"                                                        update_dict)"},{"line_number":804,"context_line":"            return self._view_builder.show("},{"line_number":805,"context_line":"                                      req, instance,"},{"line_number":806,"context_line":"                                      extend_address\u003dFalse,"},{"line_number":807,"context_line":"                                      show_AZ\u003dFalse,"},{"line_number":808,"context_line":"                                      show_config_drive\u003dFalse,"},{"line_number":809,"context_line":"                                      show_extended_attr\u003dFalse,"},{"line_number":810,"context_line":"                                      show_host_status\u003dFalse,"},{"line_number":811,"context_line":"                                      show_keypair\u003dFalse,"},{"line_number":812,"context_line":"                                      show_srv_usg\u003dFalse,"},{"line_number":813,"context_line":"                                      show_sec_grp\u003dFalse,"},{"line_number":814,"context_line":"                                      show_extended_status\u003dFalse,"},{"line_number":815,"context_line":"                                      show_extended_volumes\u003dFalse,"},{"line_number":816,"context_line":"                                      show_server_groups\u003dshow_server_groups)"},{"line_number":817,"context_line":"        except exception.InstanceNotFound:"},{"line_number":818,"context_line":"            msg \u003d _(\"Instance could not be found\")"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_cf74d06a","line":815,"range":{"start_line":806,"start_character":38,"end_line":815,"end_character":66},"updated":"2019-02-28 02:06:18.000000000","message":"Why do we show server_groups but none of these other things? Meaning, if the server update response is meant to be more minimalist to match only what could be in the request, why return server groups (which can\u0027t change as part of the update)?\n\nI guess we kind of broke this when we started showing the embedded flavor and trusted certs because the version check on those is in the view builder itself rather than in the caller.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":1098,"context_line":"        show_server_groups \u003d api_version_request.is_supported("},{"line_number":1099,"context_line":"                           req, min_version\u003d\u00272.71\u0027)"},{"line_number":1100,"context_line":""},{"line_number":1101,"context_line":"        view \u003d self._view_builder.show(req, instance, extend_address\u003dFalse,"},{"line_number":1102,"context_line":"                                       show_AZ\u003dFalse,"},{"line_number":1103,"context_line":"                                       show_config_drive\u003dFalse,"},{"line_number":1104,"context_line":"                                       show_extended_attr\u003dFalse,"},{"line_number":1105,"context_line":"                                       show_host_status\u003dFalse,"},{"line_number":1106,"context_line":"                                       show_keypair\u003dshow_keypair,"},{"line_number":1107,"context_line":"                                       show_srv_usg\u003dFalse,"},{"line_number":1108,"context_line":"                                       show_sec_grp\u003dFalse,"},{"line_number":1109,"context_line":"                                       show_extended_status\u003dFalse,"},{"line_number":1110,"context_line":"                                       show_extended_volumes\u003dFalse,"},{"line_number":1111,"context_line":"                                       show_server_groups\u003dshow_server_groups)"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"        # Add on the admin_password attribute since the view doesn\u0027t do it"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_eff434d1","line":1110,"range":{"start_line":1101,"start_character":54,"end_line":1110,"end_character":67},"updated":"2019-02-28 02:06:18.000000000","message":"Similar to update - why show the server groups in the response when they can\u0027t change on rebuild? show_keypair is different because we can change keypairs on rebuild since 2.54. Although I think I already answered my own question there and we messed these up already.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":1098,"context_line":"        show_server_groups \u003d api_version_request.is_supported("},{"line_number":1099,"context_line":"                           req, min_version\u003d\u00272.71\u0027)"},{"line_number":1100,"context_line":""},{"line_number":1101,"context_line":"        view \u003d self._view_builder.show(req, instance, extend_address\u003dFalse,"},{"line_number":1102,"context_line":"                                       show_AZ\u003dFalse,"},{"line_number":1103,"context_line":"                                       show_config_drive\u003dFalse,"},{"line_number":1104,"context_line":"                                       show_extended_attr\u003dFalse,"},{"line_number":1105,"context_line":"                                       show_host_status\u003dFalse,"},{"line_number":1106,"context_line":"                                       show_keypair\u003dshow_keypair,"},{"line_number":1107,"context_line":"                                       show_srv_usg\u003dFalse,"},{"line_number":1108,"context_line":"                                       show_sec_grp\u003dFalse,"},{"line_number":1109,"context_line":"                                       show_extended_status\u003dFalse,"},{"line_number":1110,"context_line":"                                       show_extended_volumes\u003dFalse,"},{"line_number":1111,"context_line":"                                       show_server_groups\u003dshow_server_groups)"},{"line_number":1112,"context_line":""},{"line_number":1113,"context_line":"        # Add on the admin_password attribute since the view doesn\u0027t do it"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6ae112d0","line":1110,"range":{"start_line":1101,"start_character":54,"end_line":1110,"end_character":67},"in_reply_to":"9fdfeff1_eff434d1","updated":"2019-02-28 03:34:34.000000000","message":"we still need to keep this server_group right?","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"nova/api/openstack/compute/views/servers.py":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"d2ce4273ec6328936ea52bb0c78eb2d80230b43c","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            server[\"server\"][\"trusted_image_certificates\"] \u003d trusted_certs"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.68\") and"},{"line_number":282,"context_line":"                show_server_group is True):"},{"line_number":283,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":284,"context_line":"            try:"},{"line_number":285,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_4dbca8d4","line":282,"range":{"start_line":282,"start_character":16,"end_line":282,"end_character":43},"updated":"2018-12-05 06:35:08.000000000","message":"is this necessary? maybe just check version is enough?","commit_id":"8e2c0faf1abc3727b8bfeba3180d7464f9476345"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"84d35d3fdbd3d3ff20af3ddc5f2999da98bd83a7","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            server[\"server\"][\"trusted_image_certificates\"] \u003d trusted_certs"},{"line_number":280,"context_line":""},{"line_number":281,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.68\") and"},{"line_number":282,"context_line":"                show_server_group is True):"},{"line_number":283,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":284,"context_line":"            try:"},{"line_number":285,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0d01d06c","line":282,"range":{"start_line":282,"start_character":16,"end_line":282,"end_character":43},"in_reply_to":"3f79a3b5_4dbca8d4","updated":"2018-12-05 06:51:29.000000000","message":"base on PTG discuss we want only show the info while GET server/uuid, not in the detail.","commit_id":"8e2c0faf1abc3727b8bfeba3180d7464f9476345"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            if sg is not None:"},{"line_number":291,"context_line":"                group \u003d []"},{"line_number":292,"context_line":"                group.append(sg.uuid)"},{"line_number":293,"context_line":"                server[\u0027server\u0027][\u0027server_group\u0027] \u003d {\"uuid\": group}"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        return server"},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_8e1c016b","line":293,"range":{"start_line":293,"start_character":32,"end_line":293,"end_character":47},"updated":"2019-01-24 06:36:11.000000000","message":"server_groups","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":290,"context_line":"            if sg is not None:"},{"line_number":291,"context_line":"                group \u003d []"},{"line_number":292,"context_line":"                group.append(sg.uuid)"},{"line_number":293,"context_line":"                server[\u0027server\u0027][\u0027server_group\u0027] \u003d {\"uuid\": group}"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        return server"},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_6050b75e","line":293,"range":{"start_line":293,"start_character":32,"end_line":293,"end_character":47},"in_reply_to":"9fdfeff1_8e1c016b","updated":"2019-01-25 05:39:58.000000000","message":"Done","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"598da9512570dbd5c8260f39a5309e665919d01b","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":288,"context_line":"                sg \u003d None"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            if sg is not None:"},{"line_number":291,"context_line":"                group \u003d []"},{"line_number":292,"context_line":"                group.append(sg.uuid)"},{"line_number":293,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_569219a0","line":291,"range":{"start_line":290,"start_character":12,"end_line":291,"end_character":26},"updated":"2019-01-25 07:16:30.000000000","message":"should we also return [] if there is no server group? Since you said it is a required field in api-ref","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":288,"context_line":"                sg \u003d None"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            if sg is not None:"},{"line_number":291,"context_line":"                group \u003d []"},{"line_number":292,"context_line":"                group.append(sg.uuid)"},{"line_number":293,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_fe22d151","line":291,"range":{"start_line":290,"start_character":12,"end_line":291,"end_character":26},"in_reply_to":"9fdfeff1_569219a0","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"8dce842855d5842c34132f390a07992808140ca9","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":288,"context_line":"                sg \u003d None"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            group \u003d []"},{"line_number":291,"context_line":"            if sg is not None:"},{"line_number":292,"context_line":"                group.append(sg.uuid)"},{"line_number":293,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        return server"},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_7e15819b","line":293,"range":{"start_line":290,"start_character":0,"end_line":293,"end_character":67},"updated":"2019-01-29 08:18:15.000000000","message":"Now this seems wierd, if a server could only belong to one server_group(which seems to be the case), we should name this ``server_group``, and it doesn\u0027t need to be a list, and you should probably change also your spec https://review.openstack.org/#/c/612255/13/specs/stein/approved/show-server-group.rst@66\n\nif it can belong to serveral groups, then it should be named as ``server_groups`` and have to be a list, but you don\u0027t need this key as ``uuid`` and a dict of uuids as value, just the group list is OK","commit_id":"cd20ca77655f2d79776f4db165d03be941ac024f"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"5d5a6cf92c620fe45d741d6065e85b4c0b9aa14d","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":288,"context_line":"                sg \u003d None"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"            group \u003d []"},{"line_number":291,"context_line":"            if sg is not None:"},{"line_number":292,"context_line":"                group.append(sg.uuid)"},{"line_number":293,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"        return server"},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"9fdfeff1_61d954f1","line":293,"range":{"start_line":290,"start_character":0,"end_line":293,"end_character":67},"in_reply_to":"9fdfeff1_7e15819b","updated":"2019-01-30 06:01:59.000000000","message":"return it as a list, is suggested by Jay Pipes. you can find the spec review list for that. \n\nso return as a list is identical with the spec.\n\nthanks.","commit_id":"cd20ca77655f2d79776f4db165d03be941ac024f"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f018af029e38a6378b6e532bddeb8158211d72f5","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.70\") and"},{"line_number":343,"context_line":"                show_server_groups is True):"},{"line_number":344,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":345,"context_line":"            try:"},{"line_number":346,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":347,"context_line":"                                                            instance[\"uuid\"])"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_446402e6","line":344,"range":{"start_line":344,"start_character":12,"end_line":344,"end_character":53},"updated":"2019-02-19 08:54:41.000000000","message":"you can use context directly, the line 244 already get that.","commit_id":"85985dbf91df81c7d66118ae29b2a2787f3ede86"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8b544bb951e904a2667a0167c886b25e69dca86d","unresolved":false,"context_lines":[{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.70\") and"},{"line_number":343,"context_line":"                show_server_groups is True):"},{"line_number":344,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":345,"context_line":"            try:"},{"line_number":346,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":347,"context_line":"                                                            instance[\"uuid\"])"}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_80108051","line":344,"range":{"start_line":344,"start_character":12,"end_line":344,"end_character":53},"in_reply_to":"9fdfeff1_446402e6","updated":"2019-02-20 05:17:51.000000000","message":"Done","commit_id":"85985dbf91df81c7d66118ae29b2a2787f3ede86"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f018af029e38a6378b6e532bddeb8158211d72f5","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":349,"context_line":"                sg \u003d None"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"            group \u003d []"},{"line_number":352,"context_line":"            if sg is not None:"},{"line_number":353,"context_line":"                group.append(sg.uuid)"},{"line_number":354,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        return server"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_045efa11","line":354,"range":{"start_line":351,"start_character":12,"end_line":354,"end_character":67},"updated":"2019-02-19 08:54:41.000000000","message":"we can put those few lines into the try block","commit_id":"85985dbf91df81c7d66118ae29b2a2787f3ede86"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"8b544bb951e904a2667a0167c886b25e69dca86d","unresolved":false,"context_lines":[{"line_number":348,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":349,"context_line":"                sg \u003d None"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"            group \u003d []"},{"line_number":352,"context_line":"            if sg is not None:"},{"line_number":353,"context_line":"                group.append(sg.uuid)"},{"line_number":354,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":355,"context_line":""},{"line_number":356,"context_line":"        return server"},{"line_number":357,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"9fdfeff1_401a986f","line":354,"range":{"start_line":351,"start_character":12,"end_line":354,"end_character":67},"in_reply_to":"9fdfeff1_045efa11","updated":"2019-02-20 05:17:51.000000000","message":"Done","commit_id":"85985dbf91df81c7d66118ae29b2a2787f3ede86"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cdcae403bbee9dd67bacc289e7f667e2a30421d","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            server[\"server\"][\"trusted_image_certificates\"] \u003d trusted_certs"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.70\") and"},{"line_number":343,"context_line":"                show_server_groups is True):"},{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                            instance[\"uuid\"])"}],"source_content_type":"text/x-python","patch_set":19,"id":"9fdfeff1_5ba6d411","line":343,"range":{"start_line":343,"start_character":16,"end_line":343,"end_character":42},"updated":"2019-02-22 04:55:20.000000000","message":"just right \u0027show_server_group\u0027 instead of \u0027show_server_group is True\u0027","commit_id":"4178fb0d2e4a1033156826fda16ed01f9af8acf4"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"73ee5a37b460012abe36959379ae740c5556feb2","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            server[\"server\"][\"trusted_image_certificates\"] \u003d trusted_certs"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.70\") and"},{"line_number":343,"context_line":"                show_server_groups is True):"},{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                            instance[\"uuid\"])"}],"source_content_type":"text/x-python","patch_set":19,"id":"9fdfeff1_bb190023","line":343,"range":{"start_line":343,"start_character":16,"end_line":343,"end_character":42},"in_reply_to":"9fdfeff1_5ba6d411","updated":"2019-02-22 05:34:06.000000000","message":"Done","commit_id":"4178fb0d2e4a1033156826fda16ed01f9af8acf4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cdcae403bbee9dd67bacc289e7f667e2a30421d","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                show_server_groups is True):"},{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                            instance[\"uuid\"])"},{"line_number":347,"context_line":"                group \u003d []"},{"line_number":348,"context_line":"                if sg is not None:"},{"line_number":349,"context_line":"                    group.append(sg.uuid)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9fdfeff1_dbb16446","line":346,"range":{"start_line":346,"start_character":60,"end_line":346,"end_character":76},"updated":"2019-02-22 04:55:20.000000000","message":"instance.uuid","commit_id":"4178fb0d2e4a1033156826fda16ed01f9af8acf4"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"73ee5a37b460012abe36959379ae740c5556feb2","unresolved":false,"context_lines":[{"line_number":343,"context_line":"                show_server_groups is True):"},{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                            instance[\"uuid\"])"},{"line_number":347,"context_line":"                group \u003d []"},{"line_number":348,"context_line":"                if sg is not None:"},{"line_number":349,"context_line":"                    group.append(sg.uuid)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9fdfeff1_3bdbd04f","line":346,"range":{"start_line":346,"start_character":60,"end_line":346,"end_character":76},"in_reply_to":"9fdfeff1_dbb16446","updated":"2019-02-22 05:34:06.000000000","message":"Done","commit_id":"4178fb0d2e4a1033156826fda16ed01f9af8acf4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4cdcae403bbee9dd67bacc289e7f667e2a30421d","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                group \u003d []"},{"line_number":348,"context_line":"                if sg is not None:"},{"line_number":349,"context_line":"                    group.append(sg.uuid)"},{"line_number":350,"context_line":"                    server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":351,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":352,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": []}"},{"line_number":353,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9fdfeff1_9b851c5c","line":350,"range":{"start_line":350,"start_character":57,"end_line":350,"end_character":62},"updated":"2019-02-22 04:55:20.000000000","message":"in the spec, we don\u0027t have uuid field http://specs.openstack.org/openstack/nova-specs/specs/stein/approved/show-server-group.html#rest-api-impact?","commit_id":"4178fb0d2e4a1033156826fda16ed01f9af8acf4"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"73ee5a37b460012abe36959379ae740c5556feb2","unresolved":false,"context_lines":[{"line_number":347,"context_line":"                group \u003d []"},{"line_number":348,"context_line":"                if sg is not None:"},{"line_number":349,"context_line":"                    group.append(sg.uuid)"},{"line_number":350,"context_line":"                    server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": group}"},{"line_number":351,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":352,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d {\"uuid\": []}"},{"line_number":353,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9fdfeff1_5bded43e","line":350,"range":{"start_line":350,"start_character":57,"end_line":350,"end_character":62},"in_reply_to":"9fdfeff1_9b851c5c","updated":"2019-02-22 05:34:06.000000000","message":"Done","commit_id":"4178fb0d2e4a1033156826fda16ed01f9af8acf4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"17667b30fa2e7d0a2281a1cb16ca5aae217baa70","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                                instance.uuid)"},{"line_number":347,"context_line":"                group \u003d []"},{"line_number":348,"context_line":"                if sg is not None:"},{"line_number":349,"context_line":"                    group.append(sg.uuid)"},{"line_number":350,"context_line":"                    server[\u0027server\u0027][\u0027server_groups\u0027] \u003d group"},{"line_number":351,"context_line":"            except exception.InstanceGroupNotFound:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_b6eef7ea","line":348,"range":{"start_line":348,"start_character":16,"end_line":348,"end_character":34},"updated":"2019-02-22 06:26:16.000000000","message":"I don\u0027t we will get a None value for sg. If there is None return, the exception should be raised, so the code will go to the line 351. So I think this if condition is useless.","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b83037901b5ae97e000e26254a2bf910f5b1e01d","unresolved":false,"context_lines":[{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                                instance.uuid)"},{"line_number":347,"context_line":"                group \u003d []"},{"line_number":348,"context_line":"                if sg is not None:"},{"line_number":349,"context_line":"                    group.append(sg.uuid)"},{"line_number":350,"context_line":"                    server[\u0027server\u0027][\u0027server_groups\u0027] \u003d group"},{"line_number":351,"context_line":"            except exception.InstanceGroupNotFound:"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_d66ffb25","line":348,"range":{"start_line":348,"start_character":16,"end_line":348,"end_character":34},"in_reply_to":"9fdfeff1_b6eef7ea","updated":"2019-02-22 08:17:12.000000000","message":"Done","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_4b048b15","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"updated":"2019-02-26 02:51:13.000000000","message":"Hmm, the server group information is in the API database, so we should be able to show server group membership even for instances in a down cell, correct?","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"d342226cd1c335122109b416b0e9137d585f5683","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_3b0aabd0","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"in_reply_to":"9fdfeff1_1fa0f441","updated":"2019-02-26 13:41:47.000000000","message":"Also, since it might be difficult to change the partial response in the api_samples to prove that we can just update the docs here https://github.com/openstack/nova/blob/master/api-guide/source/down_cells.rst for server show for the new key and add a note for the 2.71 microversion.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"e24bcdd52664acbaea9bf4c0cfa26132af85f7e2","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_a91648f1","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"in_reply_to":"9fdfeff1_3b0aabd0","updated":"2019-02-27 03:00:18.000000000","message":"Do we really need the server group info when the cell is down? But I think we should add server group field at least.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_10b45435","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"in_reply_to":"9fdfeff1_3b0aabd0","updated":"2019-02-27 06:18:34.000000000","message":"I just add it, without change adding the unit/smaple test. and update the down_cell.rst.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_f088b071","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"in_reply_to":"9fdfeff1_4b048b15","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"0d072f99b6beb8f925d811414eb8585a36bad2c0","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_1fa0f441","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"in_reply_to":"9fdfeff1_4b048b15","updated":"2019-02-26 13:14:12.000000000","message":"correct, since we have the instance_uuid already this info can be fetched and the more the info the merrier I guess.\nwe could just pass \"show_server_groups\" into this call along with the \"show_extra_specs\".","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3f7cb16e9af87f77bb608cfabf63d6c95316f222","unresolved":false,"context_lines":[{"line_number":200,"context_line":"            # cells (by checking if their objects have missing keys like"},{"line_number":201,"context_line":"            # `display_name`) and return partial constructs based on the"},{"line_number":202,"context_line":"            # information available from the nova_api database."},{"line_number":203,"context_line":"            return self._show_from_down_cell("},{"line_number":204,"context_line":"                request, instance, show_extra_specs)"},{"line_number":205,"context_line":"        ip_v4 \u003d instance.get(\u0027access_ip_v4\u0027)"},{"line_number":206,"context_line":"        ip_v6 \u003d instance.get(\u0027access_ip_v6\u0027)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_8fea5a71","line":203,"range":{"start_line":203,"start_character":24,"end_line":203,"end_character":44},"in_reply_to":"9fdfeff1_a91648f1","updated":"2019-02-27 13:51:52.000000000","message":"\u003e Do we really need the server group info when the cell is down? But\n \u003e I think we should add server group field at least.\n\nWe should return what we have available to us to show for an instance when the cell it is in is down, and since security group membership is in the API DB we can get the correct information even if the cell is down.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":339,"context_line":"                trusted_certs \u003d instance.trusted_certs.ids"},{"line_number":340,"context_line":"            server[\"server\"][\"trusted_image_certificates\"] \u003d trusted_certs"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.71\") and"},{"line_number":343,"context_line":"                show_server_groups):"},{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_2b282784","line":342,"updated":"2019-02-26 02:51:13.000000000","message":"This is kind of weird that we pass in show_server_groups\u003dTrue but then are also checking the microversion. Why not just have the caller pass in show_server_groups based on the microversion? Because when this is called from detail() you\u0027re going to be checking the microversion for every instance even though show_server_groups will always be False for detail(). Just have the caller figure out the microversion and pass in show_server_groups and honor that boolean.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":339,"context_line":"                trusted_certs \u003d instance.trusted_certs.ids"},{"line_number":340,"context_line":"            server[\"server\"][\"trusted_image_certificates\"] \u003d trusted_certs"},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        if (api_version_request.is_supported(request, min_version\u003d\"2.71\") and"},{"line_number":343,"context_line":"                show_server_groups):"},{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_1018d473","line":342,"in_reply_to":"9fdfeff1_2b282784","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":344,"context_line":"            try:"},{"line_number":345,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":346,"context_line":"                                                                instance.uuid)"},{"line_number":347,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d [sg.uuid]"},{"line_number":348,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":349,"context_line":"                server[\u0027server\u0027][\u0027server_groups\u0027] \u003d []"},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"        return server"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_cb387bd4","line":349,"range":{"start_line":347,"start_character":16,"end_line":349,"end_character":54},"updated":"2019-02-26 02:51:13.000000000","message":"Again I don\u0027t see why this is a list - it\u0027s either None or a single value. A list is potentially confusing to an end user making them think that a server can be a member of multiple groups when it can\u0027t.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":180,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":181,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        if show_server_groups:"},{"line_number":184,"context_line":"            try:"},{"line_number":185,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":186,"context_line":"                                                                instance.uuid)"},{"line_number":187,"context_line":"                ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d [sg.uuid]"},{"line_number":188,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":189,"context_line":"                ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d []"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        return ret"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9fdfeff1_dc1823d4","line":189,"range":{"start_line":182,"start_character":0,"end_line":189,"end_character":51},"updated":"2019-02-27 11:00:57.000000000","message":"Since this code is just being duplicated from L354-L360, maybe we could just do this before calling _show_from_down_cell() and pass the list alone since anyways show_server_groups will always be true as 2.71 \u003e 2.69. That way this function doesn\u0027t have to end up having everything duplicated from show() unless necessary. Sorry if I confused you in my previous comment about passing the \"show_server_groups\" flag. I thought it would be \u0027moduled\u0027 into a separate function like the show_extra_specs/get_flavor(). If you prefer you could also just module this as _get_instance_server_groups() and call it from both these functions, upto you.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":180,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":181,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        if show_server_groups:"},{"line_number":184,"context_line":"            try:"},{"line_number":185,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":186,"context_line":"                                                                instance.uuid)"},{"line_number":187,"context_line":"                ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d [sg.uuid]"},{"line_number":188,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":189,"context_line":"                ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d []"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        return ret"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9fdfeff1_ca661052","line":189,"range":{"start_line":182,"start_character":0,"end_line":189,"end_character":51},"in_reply_to":"9fdfeff1_dc1823d4","updated":"2019-02-27 14:48:01.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":180,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":181,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"        if show_server_groups:"},{"line_number":184,"context_line":"            try:"},{"line_number":185,"context_line":"                sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":186,"context_line":"                                                                instance.uuid)"},{"line_number":187,"context_line":"                ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d [sg.uuid]"},{"line_number":188,"context_line":"            except exception.InstanceGroupNotFound:"},{"line_number":189,"context_line":"                ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d []"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        return ret"},{"line_number":192,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"9fdfeff1_8f001a68","line":189,"range":{"start_line":182,"start_character":0,"end_line":189,"end_character":51},"in_reply_to":"9fdfeff1_dc1823d4","updated":"2019-02-27 13:49:25.000000000","message":"seems better put it to an function.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \"created\": utils.isotime(instance.created_at),"},{"line_number":152,"context_line":"            },"},{"line_number":153,"context_line":"        }"},{"line_number":154,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        if \u0027flavor\u0027 in instance:"},{"line_number":157,"context_line":"            # If the key \u0027flavor\u0027 is present for an instance from a down cell"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_cf229052","line":154,"updated":"2019-02-28 02:06:18.000000000","message":"Move this to where it\u0027s used (within the \"if show_server_groups\" conditional below).","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                \"created\": utils.isotime(instance.created_at),"},{"line_number":152,"context_line":"            },"},{"line_number":153,"context_line":"        }"},{"line_number":154,"context_line":"        context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        if \u0027flavor\u0027 in instance:"},{"line_number":157,"context_line":"            # If the key \u0027flavor\u0027 is present for an instance from a down cell"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6aa592b4","line":154,"in_reply_to":"9fdfeff1_cf229052","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":646,"context_line":"        key \u003d \"os-extended-volumes:volumes_attached\""},{"line_number":647,"context_line":"        server[key] \u003d volumes_attached"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    def _get_server_groups(self, context, instance):"},{"line_number":650,"context_line":"        try:"},{"line_number":651,"context_line":"            sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":652,"context_line":"                                                            instance.uuid)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6fd7e424","line":649,"range":{"start_line":649,"start_character":8,"end_line":649,"end_character":26},"updated":"2019-02-28 02:06:18.000000000","message":"nit: this can be a staticmethod","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":646,"context_line":"        key \u003d \"os-extended-volumes:volumes_attached\""},{"line_number":647,"context_line":"        server[key] \u003d volumes_attached"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"    def _get_server_groups(self, context, instance):"},{"line_number":650,"context_line":"        try:"},{"line_number":651,"context_line":"            sg \u003d objects.InstanceGroup.get_by_instance_uuid(context,"},{"line_number":652,"context_line":"                                                            instance.uuid)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6a8ef22e","line":649,"range":{"start_line":649,"start_character":8,"end_line":649,"end_character":26},"in_reply_to":"9fdfeff1_6fd7e424","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"49858a0fed74b116b24aa4b7f5e2c877a2c29c1f","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            # data migrated, return UNKNOWN."},{"line_number":176,"context_line":"            ret[\"server\"][\"user_id\"] \u003d instance.user_id or \"UNKNOWN\""},{"line_number":177,"context_line":"        else:"},{"line_number":178,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_92c7c845","line":180,"range":{"start_line":178,"start_character":12,"end_line":180,"end_character":62},"updated":"2019-02-28 09:15:08.000000000","message":"@yonglihe: not related to this patch so please ignore this comment.\n\n@mriedem: looks like we should have put this \"links\" in the first common response part like after L151. Apparently we have links in the response of GET /servers/{server_id} as well and we missed it for server show from down cell :( . I guess its not fixable/not that important.\n\nDoes it make sense to add this now from 2.71 since we are making a change? - maybe not since 2.71 is addressing something different.","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"02483bf14de090febfcc13c6383fd54229c6f8e2","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            # data migrated, return UNKNOWN."},{"line_number":176,"context_line":"            ret[\"server\"][\"user_id\"] \u003d instance.user_id or \"UNKNOWN\""},{"line_number":177,"context_line":"        else:"},{"line_number":178,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_a7839e02","line":180,"range":{"start_line":178,"start_character":12,"end_line":180,"end_character":62},"in_reply_to":"9fdfeff1_39db53ed","updated":"2019-02-28 18:31:40.000000000","message":"yep thanks for responding, I will put up a patch seperately to fix it tomorrow and we can just make it a part of the same microversion (2.69) response change as far as the API samples go.","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"7f992b4be0f6f9a0b3acb513b66202c77f12b97d","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            # data migrated, return UNKNOWN."},{"line_number":176,"context_line":"            ret[\"server\"][\"user_id\"] \u003d instance.user_id or \"UNKNOWN\""},{"line_number":177,"context_line":"        else:"},{"line_number":178,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_68510362","line":180,"range":{"start_line":178,"start_character":12,"end_line":180,"end_character":62},"in_reply_to":"9fdfeff1_470e723b","updated":"2019-02-28 21:08:23.000000000","message":"thanks Matt!","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"fc9b93758160c28b8f9325e7cf0ce018f542aec0","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            # data migrated, return UNKNOWN."},{"line_number":176,"context_line":"            ret[\"server\"][\"user_id\"] \u003d instance.user_id or \"UNKNOWN\""},{"line_number":177,"context_line":"        else:"},{"line_number":178,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_39db53ed","line":180,"range":{"start_line":178,"start_character":12,"end_line":180,"end_character":62},"in_reply_to":"9fdfeff1_92c7c845","updated":"2019-02-28 17:24:54.000000000","message":"\u003e @mriedem: looks like we should have put this \"links\" in the first common response part like after L151. Apparently we have links in the response of GET /servers/{server_id} as well and we missed it for server show from down cell :( . I guess its not fixable/not that important.\n\nHonestly since this code isn\u0027t released yet, besides anyone doing continuous deployment, but even then I wouldn\u0027t expect them to be relying on this yet, I would personally be OK with just fixing this quick before we do a stein release candidate w/o dealing with microversions. If it were already released that would be a bit trickier. Just throw up a patch to fix it separately.","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"09e4b589b1e63f280ce07d222b28347483774e31","unresolved":false,"context_lines":[{"line_number":175,"context_line":"            # data migrated, return UNKNOWN."},{"line_number":176,"context_line":"            ret[\"server\"][\"user_id\"] \u003d instance.user_id or \"UNKNOWN\""},{"line_number":177,"context_line":"        else:"},{"line_number":178,"context_line":"            # GET /servers/detail includes links for GET /servers/{server_id}."},{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_470e723b","line":180,"range":{"start_line":178,"start_character":12,"end_line":180,"end_character":62},"in_reply_to":"9fdfeff1_a7839e02","updated":"2019-02-28 18:59:54.000000000","message":"I reported bug https://bugs.launchpad.net/nova/+bug/1818131 for fixing it.","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"49858a0fed74b116b24aa4b7f5e2c877a2c29c1f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":184,"context_line":"            ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d self._get_server_groups(context,"},{"line_number":185,"context_line":"                                                                     instance)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        return ret"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_f26094a7","line":185,"range":{"start_line":182,"start_character":8,"end_line":185,"end_character":78},"updated":"2019-02-28 09:15:08.000000000","message":"this needs to go inside the if condition on L155 (like after L176). Since we are only exposing this via server show and not via server list, there is going to be this extra unnecessary check for the whole list of partial servers during listing from details() which will anyways be False always. So its a redundant check while listing servers.","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7e58da692cbed6968cbd88d421551e8f7356c11f","unresolved":false,"context_lines":[{"line_number":179,"context_line":"            ret[\u0027server\u0027][\"links\"] \u003d self._get_links("},{"line_number":180,"context_line":"                request, instance.uuid, self._collection_name)"},{"line_number":181,"context_line":""},{"line_number":182,"context_line":"        if show_server_groups:"},{"line_number":183,"context_line":"            context \u003d request.environ[\u0027nova.context\u0027]"},{"line_number":184,"context_line":"            ret[\u0027server\u0027][\u0027server_groups\u0027] \u003d self._get_server_groups(context,"},{"line_number":185,"context_line":"                                                                     instance)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        return ret"},{"line_number":188,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_58b2df95","line":185,"range":{"start_line":182,"start_character":8,"end_line":185,"end_character":78},"in_reply_to":"9fdfeff1_f26094a7","updated":"2019-02-28 10:43:05.000000000","message":"Done","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"}],"nova/tests/functional/api_sample_tests/api_samples/servers/v2.68/server-get-resp.json.tpl":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"2aac7a54a8b3cdde374af57f8877cb1553da8a4d","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                \"name\": \"default\""},{"line_number":78,"context_line":"            }"},{"line_number":79,"context_line":"        ],"},{"line_number":80,"context_line":"        \"server_group\": {"},{"line_number":81,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":82,"context_line":"        },"},{"line_number":83,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":84,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","},{"line_number":85,"context_line":"        \"trusted_image_certificates\": null,"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"9fdfeff1_8e35e1dc","line":82,"range":{"start_line":80,"start_character":8,"end_line":82,"end_character":10},"updated":"2019-01-24 06:36:11.000000000","message":"it is not the same you did in the view file.","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9d18ccf0537bc97aa3d5bbdfd5accba00a79d6a2","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                \"name\": \"default\""},{"line_number":78,"context_line":"            }"},{"line_number":79,"context_line":"        ],"},{"line_number":80,"context_line":"        \"server_group\": {"},{"line_number":81,"context_line":"            \"uuid\": [\"1111-2222-3333-4444-5555\"]"},{"line_number":82,"context_line":"        },"},{"line_number":83,"context_line":"        \"status\": \"ACTIVE\","},{"line_number":84,"context_line":"        \"tenant_id\": \"6f70656e737461636b20342065766572\","},{"line_number":85,"context_line":"        \"trusted_image_certificates\": null,"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"9fdfeff1_c0ade331","line":82,"range":{"start_line":80,"start_character":8,"end_line":82,"end_character":10},"in_reply_to":"9fdfeff1_8e35e1dc","updated":"2019-01-25 05:39:58.000000000","message":"Done","commit_id":"abe5a4b64dcf678903d3db555caa2fb7f1fa01ee"}],"nova/tests/functional/api_sample_tests/api_samples/servers/v2.71/server-create-req.json.tpl":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"daa85736d23ec642a3bd85fa7f0304b90e281eaa","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"%(image_id)s\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_00ce2f2c","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"updated":"2019-02-27 21:42:24.000000000","message":"https://docs.openstack.org/nova/latest/user/aggregates.html#availability-zones-azs","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"%(image_id)s\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_cf95b041","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"in_reply_to":"9fdfeff1_00ce2f2c","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"66703679b615fbaf5246fef85f90d458f3bd91dd","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"%(image_id)s\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_60c29beb","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"in_reply_to":"9fdfeff1_00ce2f2c","updated":"2019-02-27 21:46:31.000000000","message":"See bug 1817963.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"%(image_id)s\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_8f9b2871","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"in_reply_to":"9fdfeff1_60c29beb","updated":"2019-02-28 03:34:34.000000000","message":"got","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"%(image_id)s\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"text/x-smarty","patch_set":27,"id":"9fdfeff1_4fa220b0","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"updated":"2019-02-28 02:06:18.000000000","message":"remove this","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":5,"context_line":"        \"name\" : \"new-server-test\","},{"line_number":6,"context_line":"        \"imageRef\" : \"%(image_id)s\","},{"line_number":7,"context_line":"        \"flavorRef\" : \"1\","},{"line_number":8,"context_line":"        \"availability_zone\": \"nova\","},{"line_number":9,"context_line":"        \"OS-DCF:diskConfig\": \"AUTO\","},{"line_number":10,"context_line":"        \"metadata\" : {"},{"line_number":11,"context_line":"            \"My Server Name\" : \"Apache1\""}],"source_content_type":"text/x-smarty","patch_set":27,"id":"9fdfeff1_eacbc26e","line":8,"range":{"start_line":8,"start_character":8,"end_line":8,"end_character":36},"in_reply_to":"9fdfeff1_4fa220b0","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"nova/tests/functional/api_sample_tests/api_samples/servers/v2.71/server-get-server-group-resp.json.tpl":[{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"5f2aa6482e941a20977e6d884ad54e36b90244e0","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"%(isotime)s\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_826b16b7","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"updated":"2019-02-27 11:00:57.000000000","message":"not sure if mriedem will agree with this being nova","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4cee0fc89af6ca28fb27a8f0a6ceb8a2f930cbb4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"%(isotime)s\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_cfbce2bc","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"in_reply_to":"9fdfeff1_826b16b7","updated":"2019-02-27 13:49:25.000000000","message":"I confuse too, don\u0027t know why here responded nova, the test case pretty much same as down cell one.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"dfcb7dfbd9f31a8ddc333bbb8a78b89458105c26","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"%(isotime)s\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_eaa67454","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"in_reply_to":"9fdfeff1_aa04ecc6","updated":"2019-02-27 14:48:01.000000000","message":"got.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"dcb70690a4ba1690b6bb019764ea6ea2b29e82d3","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"%(isotime)s\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_aa04ecc6","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"in_reply_to":"9fdfeff1_cfbce2bc","updated":"2019-02-27 14:13:56.000000000","message":"ah no I mean its correct as per your server create request since its mentioned that the avz should be nova. Its just that matt said its confusing to have \"nova\" as an avz value (because of default reasons). But I guess its ok considering all tests have this.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"daa85736d23ec642a3bd85fa7f0304b90e281eaa","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"},{"line_number":5,"context_line":"        \"created\": \"%(isotime)s\","},{"line_number":6,"context_line":"        \"flavor\": {"}],"source_content_type":"text/x-smarty","patch_set":26,"id":"9fdfeff1_40c8b720","line":3,"range":{"start_line":3,"start_character":40,"end_line":3,"end_character":44},"in_reply_to":"9fdfeff1_eaa67454","updated":"2019-02-27 21:42:24.000000000","message":"The reason is the warning here:\n\nhttps://docs.openstack.org/nova/latest/user/aggregates.html#availability-zones-azs\n\nUsers are discouraged from requesting the \"nova\" availability zone specifically since it is the default shown when no AZ is requested. Since we discourage it\u0027s usage in our documentation, we shouldn\u0027t have API samples that are using it in their request sample.","commit_id":"be61237a7bc7cf2fa8423f7a798e944e8ee6b3da"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"}],"source_content_type":"text/x-smarty","patch_set":27,"id":"9fdfeff1_ef90b450","line":1,"updated":"2019-02-28 02:06:18.000000000","message":"rename this file as suggested:\n\nserver-get-down-cell-resp.json.tpl","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server\": {"},{"line_number":3,"context_line":"        \"OS-EXT-AZ:availability_zone\": \"nova\","},{"line_number":4,"context_line":"        \"OS-EXT-STS:power_state\": 0,"}],"source_content_type":"text/x-smarty","patch_set":27,"id":"9fdfeff1_cad03e22","line":1,"in_reply_to":"9fdfeff1_ef90b450","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"nova/tests/functional/api_sample_tests/api_samples/servers/v2.71/server-groups-post-req.json.tpl":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server_group\": {"},{"line_number":3,"context_line":"        \"name\": \"%(name)s\","},{"line_number":4,"context_line":"        \"policy\": \"affinity\""},{"line_number":5,"context_line":"    }"},{"line_number":6,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":27,"id":"9fdfeff1_2f847c0a","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":15},"updated":"2019-02-28 02:06:18.000000000","message":"OK this is correct, the corresponding samples need to be re-generated.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"server_group\": {"},{"line_number":3,"context_line":"        \"name\": \"%(name)s\","},{"line_number":4,"context_line":"        \"policy\": \"affinity\""},{"line_number":5,"context_line":"    }"},{"line_number":6,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":27,"id":"9fdfeff1_6ac03251","line":4,"range":{"start_line":4,"start_character":9,"end_line":4,"end_character":15},"in_reply_to":"9fdfeff1_2f847c0a","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"nova/tests/functional/api_sample_tests/test_servers.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"77491bc3927ce664ab3a3d6f67180378c9336d7a","unresolved":false,"context_lines":[{"line_number":370,"context_line":"    microversion \u003d \u00272.68\u0027"},{"line_number":371,"context_line":"    scenarios \u003d [(\u0027v2_68\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def setUp(self):"},{"line_number":374,"context_line":"        super(ServersSampleJson268Test, self).setUp()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    def test_servers_post(self):"},{"line_number":377,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_0c72ef18","line":374,"range":{"start_line":373,"start_character":0,"end_line":374,"end_character":53},"updated":"2018-12-20 23:34:56.000000000","message":"It is not necessary. Remove it.","commit_id":"8e2c0faf1abc3727b8bfeba3180d7464f9476345"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"3e184982024588037e90b3bff7a919ac6b68b427","unresolved":false,"context_lines":[{"line_number":370,"context_line":"    microversion \u003d \u00272.68\u0027"},{"line_number":371,"context_line":"    scenarios \u003d [(\u0027v2_68\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"    def setUp(self):"},{"line_number":374,"context_line":"        super(ServersSampleJson268Test, self).setUp()"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"    def test_servers_post(self):"},{"line_number":377,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfdaf3ff_04878ad9","line":374,"range":{"start_line":373,"start_character":0,"end_line":374,"end_character":53},"in_reply_to":"3f79a3b5_0c72ef18","updated":"2019-01-16 06:36:33.000000000","message":"Done","commit_id":"8e2c0faf1abc3727b8bfeba3180d7464f9476345"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"86a5bafcb6ac1d7da63138520f54c6098406461c","unresolved":false,"context_lines":[{"line_number":440,"context_line":"    def test_servers_post(self):"},{"line_number":441,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def test_servers_get_server_group(self):"},{"line_number":444,"context_line":"        uuid \u003d self.test_servers_post()"},{"line_number":445,"context_line":"        self.stub_out("},{"line_number":446,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fdfeff1_3157d5cc","line":443,"range":{"start_line":443,"start_character":5,"end_line":443,"end_character":43},"updated":"2019-02-18 09:49:59.000000000","message":"suggest rename to test_servers_get_include_server_group, overwise it is a little bit confusing, but no big deal on this I guess","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4e7c173e7e074e0d32059b743860b56fae78c5a8","unresolved":false,"context_lines":[{"line_number":440,"context_line":"    def test_servers_post(self):"},{"line_number":441,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def test_servers_get_server_group(self):"},{"line_number":444,"context_line":"        uuid \u003d self.test_servers_post()"},{"line_number":445,"context_line":"        self.stub_out("},{"line_number":446,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fdfeff1_91c9cf26","line":443,"range":{"start_line":443,"start_character":5,"end_line":443,"end_character":43},"in_reply_to":"9fdfeff1_3157d5cc","updated":"2019-02-19 02:32:25.000000000","message":"Done","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"86a5bafcb6ac1d7da63138520f54c6098406461c","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":451,"context_line":"        self._verify_response(\u0027server-get-resp\u0027, subs, response, 200)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    def test_servers_update_server_groups(self):"},{"line_number":454,"context_line":"        uuid \u003d self.test_servers_post()"},{"line_number":455,"context_line":"        self.stub_out("},{"line_number":456,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fdfeff1_f174ed69","line":453,"range":{"start_line":453,"start_character":8,"end_line":453,"end_character":41},"updated":"2019-02-18 09:49:59.000000000","message":"ditto","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4e7c173e7e074e0d32059b743860b56fae78c5a8","unresolved":false,"context_lines":[{"line_number":450,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":451,"context_line":"        self._verify_response(\u0027server-get-resp\u0027, subs, response, 200)"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"    def test_servers_update_server_groups(self):"},{"line_number":454,"context_line":"        uuid \u003d self.test_servers_post()"},{"line_number":455,"context_line":"        self.stub_out("},{"line_number":456,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"9fdfeff1_31cee32d","line":453,"range":{"start_line":453,"start_character":8,"end_line":453,"end_character":41},"in_reply_to":"9fdfeff1_f174ed69","updated":"2019-02-19 02:32:25.000000000","message":"Done","commit_id":"c2331d692445796d604d27d2388309f2eb545d31"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"17667b30fa2e7d0a2281a1cb16ca5aae217baa70","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        }"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    def stub_get_by_instance_uuid(self, *kargs, **kwargs):"},{"line_number":436,"context_line":"        class fakesg(object):"},{"line_number":437,"context_line":"            name \u003d \"sg1\""},{"line_number":438,"context_line":"            uuid \u003d \"1111-2222-3333-4444-5555\""},{"line_number":439,"context_line":"        return fakesg()"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def test_servers_post(self):"},{"line_number":442,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_36a9a78f","line":439,"range":{"start_line":436,"start_character":8,"end_line":439,"end_character":23},"updated":"2019-02-22 06:26:16.000000000","message":"I prefer to use a real InstanceGroup obj","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b83037901b5ae97e000e26254a2bf910f5b1e01d","unresolved":false,"context_lines":[{"line_number":433,"context_line":"        }"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"    def stub_get_by_instance_uuid(self, *kargs, **kwargs):"},{"line_number":436,"context_line":"        class fakesg(object):"},{"line_number":437,"context_line":"            name \u003d \"sg1\""},{"line_number":438,"context_line":"            uuid \u003d \"1111-2222-3333-4444-5555\""},{"line_number":439,"context_line":"        return fakesg()"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def test_servers_post(self):"},{"line_number":442,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_91065dcd","line":439,"range":{"start_line":436,"start_character":8,"end_line":439,"end_character":23},"in_reply_to":"9fdfeff1_36a9a78f","updated":"2019-02-22 08:17:12.000000000","message":"Done","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        uuid \u003d \"11111111-1111-1111-1111-111111111111\""},{"line_number":438,"context_line":"        return objects.instance_group.InstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003duuid)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    def test_servers_post(self):"},{"line_number":441,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def test_servers_get_with_server_group(self):"},{"line_number":444,"context_line":"        uuid \u003d self.test_servers_post()"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_b78495d4","line":441,"range":{"start_line":440,"start_character":4,"end_line":441,"end_character":68},"updated":"2019-02-25 03:36:14.000000000","message":"I think we needn\u0027t this case, we can just call self._post_server() for other testcases.","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":437,"context_line":"        uuid \u003d \"11111111-1111-1111-1111-111111111111\""},{"line_number":438,"context_line":"        return objects.instance_group.InstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003duuid)"},{"line_number":439,"context_line":""},{"line_number":440,"context_line":"    def test_servers_post(self):"},{"line_number":441,"context_line":"        return self._post_server(use_common_server_api_samples\u003dTrue)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def test_servers_get_with_server_group(self):"},{"line_number":444,"context_line":"        uuid \u003d self.test_servers_post()"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_e8855c5a","line":441,"range":{"start_line":440,"start_character":4,"end_line":441,"end_character":68},"in_reply_to":"9fdfeff1_b78495d4","updated":"2019-02-25 08:05:34.000000000","message":"we should stub out the test every time we call test case. so i move the stub out here.","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def test_servers_get_with_server_group(self):"},{"line_number":444,"context_line":"        uuid \u003d self.test_servers_post()"},{"line_number":445,"context_line":"        self.stub_out("},{"line_number":446,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"},{"line_number":447,"context_line":"             self.stub_get_by_instance_uuid)"},{"line_number":448,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":449,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":450,"context_line":"        subs[\u0027id\u0027] \u003d uuid"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_3770a508","line":447,"range":{"start_line":445,"start_character":8,"end_line":447,"end_character":44},"updated":"2019-02-25 03:36:14.000000000","message":"can we stub this method in the setUp method?","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def test_servers_get_with_server_group(self):"},{"line_number":444,"context_line":"        uuid \u003d self.test_servers_post()"},{"line_number":445,"context_line":"        self.stub_out("},{"line_number":446,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"},{"line_number":447,"context_line":"             self.stub_get_by_instance_uuid)"},{"line_number":448,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":449,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":450,"context_line":"        subs[\u0027id\u0027] \u003d uuid"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_4896e896","line":447,"range":{"start_line":445,"start_character":8,"end_line":447,"end_character":44},"in_reply_to":"9fdfeff1_3770a508","updated":"2019-02-25 08:05:34.000000000","message":"Done. need to move to test_server_post.","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def test_servers_post(self):"},{"line_number":437,"context_line":"        server \u003d self._post_server(use_common_server_api_samples\u003dTrue)"},{"line_number":438,"context_line":"        self.stub_out("},{"line_number":439,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"},{"line_number":440,"context_line":"             self.stub_get_by_instance_uuid)"},{"line_number":441,"context_line":"        return server"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def stub_get_by_instance_uuid(self, *kargs, **kwargs):"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_4b524b15","line":440,"range":{"start_line":438,"start_character":8,"end_line":440,"end_character":44},"updated":"2019-02-26 02:51:13.000000000","message":"Rather than stub this out, can\u0027t we just use the APIs to create a server group (in setUp) and then create a server in that group? Then we can avoid the redundant test_servers_post and server group stub in all of these functional tests, and use the real APIs.","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":435,"context_line":""},{"line_number":436,"context_line":"    def test_servers_post(self):"},{"line_number":437,"context_line":"        server \u003d self._post_server(use_common_server_api_samples\u003dTrue)"},{"line_number":438,"context_line":"        self.stub_out("},{"line_number":439,"context_line":"            \u0027nova.objects.InstanceGroup.get_by_instance_uuid\u0027,"},{"line_number":440,"context_line":"             self.stub_get_by_instance_uuid)"},{"line_number":441,"context_line":"        return server"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def stub_get_by_instance_uuid(self, *kargs, **kwargs):"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_ad6df303","line":440,"range":{"start_line":438,"start_character":8,"end_line":440,"end_character":44},"in_reply_to":"9fdfeff1_4b524b15","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":417,"context_line":"class ServersSampleJson271Test(ServersSampleBase):"},{"line_number":418,"context_line":"    microversion \u003d \u00272.71\u0027"},{"line_number":419,"context_line":"    scenarios \u003d [(\u0027v2_71\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":420,"context_line":"    sg_uuid \u003d \u0027\u0027"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"    def setUp(self):"},{"line_number":423,"context_line":"        super(ServersSampleJson271Test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_8f748837","line":420,"range":{"start_line":420,"start_character":4,"end_line":420,"end_character":16},"updated":"2019-02-28 02:06:18.000000000","message":"nit: don\u0027t really need to define this here","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":417,"context_line":"class ServersSampleJson271Test(ServersSampleBase):"},{"line_number":418,"context_line":"    microversion \u003d \u00272.71\u0027"},{"line_number":419,"context_line":"    scenarios \u003d [(\u0027v2_71\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":420,"context_line":"    sg_uuid \u003d \u0027\u0027"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"    def setUp(self):"},{"line_number":423,"context_line":"        super(ServersSampleJson271Test, self).setUp()"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_4500c101","line":420,"range":{"start_line":420,"start_character":4,"end_line":420,"end_character":16},"in_reply_to":"9fdfeff1_8f748837","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                                              subs, response, 200)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def generalize_subs(self, subs, vanilla_regexes):"},{"line_number":444,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d (\u0027[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}\u0027"},{"line_number":445,"context_line":"                   \u0027-[0-9a-f]{4}-[0-9a-f]{12}\u0027)"},{"line_number":446,"context_line":"        return subs"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_servers_post(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_cfa3709d","line":445,"range":{"start_line":444,"start_character":26,"end_line":445,"end_character":47},"updated":"2019-02-28 02:06:18.000000000","message":"Can\u0027t this just be self.sg_uuid? No need to use a regex when we know what it\u0027s going to be. Also, if you really needed do, just use the %(uuid)s variable in the template for which we already have a common regex:\n\nhttps://github.com/openstack/nova/blob/eb93d0cffd11fcfca97b3d4679a0043142a5d998/nova/tests/functional/api_samples_test_base.py#L409","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                                              subs, response, 200)"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def generalize_subs(self, subs, vanilla_regexes):"},{"line_number":444,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d (\u0027[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}\u0027"},{"line_number":445,"context_line":"                   \u0027-[0-9a-f]{4}-[0-9a-f]{12}\u0027)"},{"line_number":446,"context_line":"        return subs"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_servers_post(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6503850e","line":445,"range":{"start_line":444,"start_character":26,"end_line":445,"end_character":47},"in_reply_to":"9fdfeff1_cfa3709d","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        return subs"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_servers_post(self):"},{"line_number":449,"context_line":"        # Set False if tests need to use extension specific sample files"},{"line_number":450,"context_line":"        subs \u003d {"},{"line_number":451,"context_line":"            \u0027image_id\u0027: fake.get_valid_image_id(),"},{"line_number":452,"context_line":"            \u0027host\u0027: self._get_host(),"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_4fb9c0c9","line":449,"range":{"start_line":449,"start_character":8,"end_line":449,"end_character":72},"updated":"2019-02-28 02:06:18.000000000","message":"Set what false? OK I see, you should be using self._post_server and passing use_common_server_api_samples\u003dFalse because you have your own server create request sample for this microversion with a server group in it.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        return subs"},{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_servers_post(self):"},{"line_number":449,"context_line":"        # Set False if tests need to use extension specific sample files"},{"line_number":450,"context_line":"        subs \u003d {"},{"line_number":451,"context_line":"            \u0027image_id\u0027: fake.get_valid_image_id(),"},{"line_number":452,"context_line":"            \u0027host\u0027: self._get_host(),"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_4a38ce9e","line":449,"range":{"start_line":449,"start_character":8,"end_line":449,"end_character":72},"in_reply_to":"9fdfeff1_4fb9c0c9","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_servers_post(self):"},{"line_number":449,"context_line":"        # Set False if tests need to use extension specific sample files"},{"line_number":450,"context_line":"        subs \u003d {"},{"line_number":451,"context_line":"            \u0027image_id\u0027: fake.get_valid_image_id(),"},{"line_number":452,"context_line":"            \u0027host\u0027: self._get_host(),"},{"line_number":453,"context_line":"            \u0027compute_endpoint\u0027: self._get_compute_endpoint(),"},{"line_number":454,"context_line":"            \u0027versioned_compute_endpoint\u0027: self._get_vers_compute_endpoint(),"},{"line_number":455,"context_line":"            \u0027glance_host\u0027: self._get_glance_host(),"},{"line_number":456,"context_line":"            \u0027access_ip_v4\u0027: \u00271.2.3.4\u0027,"},{"line_number":457,"context_line":"            \u0027access_ip_v6\u0027: \u002780fe::\u0027,"},{"line_number":458,"context_line":"            \u0027user_data\u0027: (self.user_data if six.PY2"},{"line_number":459,"context_line":"                          else self.user_data.decode(\u0027utf-8\u0027)),"},{"line_number":460,"context_line":"            \u0027uuid\u0027: \u0027[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}\u0027"},{"line_number":461,"context_line":"                   \u0027-[0-9a-f]{4}-[0-9a-f]{12}\u0027,"},{"line_number":462,"context_line":"            \u0027name\u0027: \u0027new-server-test\u0027,"},{"line_number":463,"context_line":"        }"},{"line_number":464,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d self.sg_uuid"},{"line_number":465,"context_line":"        name \u003d self._get_request_name(False)"},{"line_number":466,"context_line":"        response \u003d self._do_post(\u0027servers\u0027, name, subs)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_cfd130fd","line":463,"range":{"start_line":450,"start_character":8,"end_line":463,"end_character":9},"updated":"2019-02-28 02:06:18.000000000","message":"Do we need all this? Can\u0027t you just call self._post_server() from L466?","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":447,"context_line":""},{"line_number":448,"context_line":"    def test_servers_post(self):"},{"line_number":449,"context_line":"        # Set False if tests need to use extension specific sample files"},{"line_number":450,"context_line":"        subs \u003d {"},{"line_number":451,"context_line":"            \u0027image_id\u0027: fake.get_valid_image_id(),"},{"line_number":452,"context_line":"            \u0027host\u0027: self._get_host(),"},{"line_number":453,"context_line":"            \u0027compute_endpoint\u0027: self._get_compute_endpoint(),"},{"line_number":454,"context_line":"            \u0027versioned_compute_endpoint\u0027: self._get_vers_compute_endpoint(),"},{"line_number":455,"context_line":"            \u0027glance_host\u0027: self._get_glance_host(),"},{"line_number":456,"context_line":"            \u0027access_ip_v4\u0027: \u00271.2.3.4\u0027,"},{"line_number":457,"context_line":"            \u0027access_ip_v6\u0027: \u002780fe::\u0027,"},{"line_number":458,"context_line":"            \u0027user_data\u0027: (self.user_data if six.PY2"},{"line_number":459,"context_line":"                          else self.user_data.decode(\u0027utf-8\u0027)),"},{"line_number":460,"context_line":"            \u0027uuid\u0027: \u0027[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}\u0027"},{"line_number":461,"context_line":"                   \u0027-[0-9a-f]{4}-[0-9a-f]{12}\u0027,"},{"line_number":462,"context_line":"            \u0027name\u0027: \u0027new-server-test\u0027,"},{"line_number":463,"context_line":"        }"},{"line_number":464,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d self.sg_uuid"},{"line_number":465,"context_line":"        name \u003d self._get_request_name(False)"},{"line_number":466,"context_line":"        response \u003d self._do_post(\u0027servers\u0027, name, subs)"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6a3b529b","line":463,"range":{"start_line":450,"start_character":8,"end_line":463,"end_character":9},"in_reply_to":"9fdfeff1_cfd130fd","updated":"2019-02-28 03:34:34.000000000","message":"we need pass the server group uuid in.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d self.sg_uuid"},{"line_number":465,"context_line":"        name \u003d self._get_request_name(False)"},{"line_number":466,"context_line":"        response \u003d self._do_post(\u0027servers\u0027, name, subs)"},{"line_number":467,"context_line":"        status \u003d self._verify_response(\u0027server-create-resp\u0027, subs,"},{"line_number":468,"context_line":"                                        response, 202)"},{"line_number":469,"context_line":"        return status"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_0f32d85e","line":467,"range":{"start_line":467,"start_character":8,"end_line":467,"end_character":14},"updated":"2019-02-28 02:06:18.000000000","message":"Is this a status or a server id?","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":464,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d self.sg_uuid"},{"line_number":465,"context_line":"        name \u003d self._get_request_name(False)"},{"line_number":466,"context_line":"        response \u003d self._do_post(\u0027servers\u0027, name, subs)"},{"line_number":467,"context_line":"        status \u003d self._verify_response(\u0027server-create-resp\u0027, subs,"},{"line_number":468,"context_line":"                                        response, 202)"},{"line_number":469,"context_line":"        return status"},{"line_number":470,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_cae7de11","line":467,"range":{"start_line":467,"start_character":8,"end_line":467,"end_character":14},"in_reply_to":"9fdfeff1_0f32d85e","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":26936,"name":"Surya Seetharaman","email":"suryaseetharaman.9@gmail.com","username":"tssurya"},"change_message_id":"49858a0fed74b116b24aa4b7f5e2c877a2c29c1f","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        name \u003d self._get_request_name(False)"},{"line_number":459,"context_line":"        response \u003d self._do_post(\u0027servers\u0027, name, subs)"},{"line_number":460,"context_line":"        server_id \u003d self._verify_response(\u0027server-create-resp\u0027, subs,"},{"line_number":461,"context_line":"                                        response, 202)"},{"line_number":462,"context_line":"        return server_id"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    def test_servers_get_with_server_group(self):"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_72602402","line":461,"range":{"start_line":461,"start_character":40,"end_line":461,"end_character":42},"updated":"2019-02-28 09:15:08.000000000","message":"nit: alignment","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"7e58da692cbed6968cbd88d421551e8f7356c11f","unresolved":false,"context_lines":[{"line_number":458,"context_line":"        name \u003d self._get_request_name(False)"},{"line_number":459,"context_line":"        response \u003d self._do_post(\u0027servers\u0027, name, subs)"},{"line_number":460,"context_line":"        server_id \u003d self._verify_response(\u0027server-create-resp\u0027, subs,"},{"line_number":461,"context_line":"                                        response, 202)"},{"line_number":462,"context_line":"        return server_id"},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"    def test_servers_get_with_server_group(self):"}],"source_content_type":"text/x-python","patch_set":28,"id":"9fdfeff1_a305e011","line":461,"range":{"start_line":461,"start_character":40,"end_line":461,"end_character":42},"in_reply_to":"9fdfeff1_72602402","updated":"2019-02-28 10:43:05.000000000","message":"Done","commit_id":"c4c6e0a8942af963a681f95176f41b8078e41b36"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d1e234ff59cde96aa8a048bfc9dad7000da47ec8","unresolved":false,"context_lines":[{"line_number":420,"context_line":""},{"line_number":421,"context_line":"    def setUp(self):"},{"line_number":422,"context_line":"        super(ServersSampleJson271Test, self).setUp()"},{"line_number":423,"context_line":"        self.common_subs \u003d {"},{"line_number":424,"context_line":"            \u0027hostid\u0027: \u0027[a-f0-9]+\u0027,"},{"line_number":425,"context_line":"            \u0027instance_name\u0027: \u0027instance-\\d{8}\u0027,"},{"line_number":426,"context_line":"            \u0027hypervisor_hostname\u0027: r\u0027[\\w\\.\\-]+\u0027,"},{"line_number":427,"context_line":"            \u0027hostname\u0027: r\u0027[\\w\\.\\-]+\u0027,"},{"line_number":428,"context_line":"            \u0027access_ip_v4\u0027: \u00271.2.3.4\u0027,"},{"line_number":429,"context_line":"            \u0027access_ip_v6\u0027: \u002780fe::\u0027,"},{"line_number":430,"context_line":"            \u0027user_data\u0027: (self.user_data if six.PY2"},{"line_number":431,"context_line":"                          else self.user_data.decode(\u0027utf-8\u0027)),"},{"line_number":432,"context_line":"            \u0027cdrive\u0027: \u0027.*\u0027,"},{"line_number":433,"context_line":"        }"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"        # create server group"},{"line_number":436,"context_line":"        subs \u003d {\u0027name\u0027: \u0027test\u0027}"}],"source_content_type":"text/x-python","patch_set":30,"id":"9fdfeff1_278a4ebb","line":433,"range":{"start_line":423,"start_character":8,"end_line":433,"end_character":9},"updated":"2019-02-28 18:51:25.000000000","message":"I still think we can avoid this and most of _test_servers_post by passing extra_subs to _post_server in the base class so we can pass in the sg_uuid for the server create template. I\u0027ll pull this down and tinker with it.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"56f2965a89aa5412272d00f26530eecf2b57b63e","unresolved":false,"context_lines":[{"line_number":466,"context_line":"        response \u003d self._do_get(\u0027servers/%s\u0027 % uuid)"},{"line_number":467,"context_line":"        subs \u003d self.common_subs.copy()"},{"line_number":468,"context_line":"        subs[\u0027id\u0027] \u003d uuid"},{"line_number":469,"context_line":"        subs[\u0027sg_uuid\u0027] \u003d self.sg_uuid"},{"line_number":470,"context_line":"        self._verify_response(\u0027server-get-resp\u0027, subs, response, 200)"},{"line_number":471,"context_line":""},{"line_number":472,"context_line":"    def test_servers_update_with_server_groups(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"9fdfeff1_02e37835","line":469,"range":{"start_line":469,"start_character":8,"end_line":469,"end_character":38},"updated":"2019-02-28 19:21:41.000000000","message":"This is no longer used in the response validation - here and below.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"17667b30fa2e7d0a2281a1cb16ca5aae217baa70","unresolved":false,"context_lines":[{"line_number":2511,"context_line":"class ServersControllerTestV270(ControllerTest):"},{"line_number":2512,"context_line":"    wsgi_api_version \u003d \u00272.70\u0027"},{"line_number":2513,"context_line":""},{"line_number":2514,"context_line":"    class fake_sg(object):"},{"line_number":2515,"context_line":"            uuid \u003d \u0027fake_uuid\u0027"},{"line_number":2516,"context_line":""},{"line_number":2517,"context_line":"    expect_sg \u003d [\u0027fake_uuid\u0027]"},{"line_number":2518,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f671df78","line":2515,"range":{"start_line":2514,"start_character":4,"end_line":2515,"end_character":30},"updated":"2019-02-22 06:26:16.000000000","message":"you can use a real InstanceGroup obj with the uuid assigned value. And in the line 2530, when you use the decorator, you probably can create that object directly in the prarameter.","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b83037901b5ae97e000e26254a2bf910f5b1e01d","unresolved":false,"context_lines":[{"line_number":2511,"context_line":"class ServersControllerTestV270(ControllerTest):"},{"line_number":2512,"context_line":"    wsgi_api_version \u003d \u00272.70\u0027"},{"line_number":2513,"context_line":""},{"line_number":2514,"context_line":"    class fake_sg(object):"},{"line_number":2515,"context_line":"            uuid \u003d \u0027fake_uuid\u0027"},{"line_number":2516,"context_line":""},{"line_number":2517,"context_line":"    expect_sg \u003d [\u0027fake_uuid\u0027]"},{"line_number":2518,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_518475d3","line":2515,"range":{"start_line":2514,"start_character":4,"end_line":2515,"end_character":30},"in_reply_to":"9fdfeff1_f671df78","updated":"2019-02-22 08:17:12.000000000","message":"Done","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"17667b30fa2e7d0a2281a1cb16ca5aae217baa70","unresolved":false,"context_lines":[{"line_number":2529,"context_line":""},{"line_number":2530,"context_line":"    def test_show_with_server_group(self):"},{"line_number":2531,"context_line":"        req \u003d self.req(\u0027/fake/servers/%s\u0027 % FAKE_UUID)"},{"line_number":2532,"context_line":"        with mock.patch.object(objects.InstanceGroup,"},{"line_number":2533,"context_line":"                                \u0027get_by_instance_uuid\u0027) as mock_getgroup:"},{"line_number":2534,"context_line":"            mock_getgroup.return_value \u003d self.fake_sg()"},{"line_number":2535,"context_line":"            res_dict \u003d self.controller.show(req, FAKE_UUID)"},{"line_number":2536,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_3658c7f8","line":2533,"range":{"start_line":2532,"start_character":7,"end_line":2533,"end_character":73},"updated":"2019-02-22 06:26:16.000000000","message":"you can use decorator instead of this.","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b83037901b5ae97e000e26254a2bf910f5b1e01d","unresolved":false,"context_lines":[{"line_number":2529,"context_line":""},{"line_number":2530,"context_line":"    def test_show_with_server_group(self):"},{"line_number":2531,"context_line":"        req \u003d self.req(\u0027/fake/servers/%s\u0027 % FAKE_UUID)"},{"line_number":2532,"context_line":"        with mock.patch.object(objects.InstanceGroup,"},{"line_number":2533,"context_line":"                                \u0027get_by_instance_uuid\u0027) as mock_getgroup:"},{"line_number":2534,"context_line":"            mock_getgroup.return_value \u003d self.fake_sg()"},{"line_number":2535,"context_line":"            res_dict \u003d self.controller.show(req, FAKE_UUID)"},{"line_number":2536,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"9fdfeff1_f16a4919","line":2533,"range":{"start_line":2532,"start_character":7,"end_line":2533,"end_character":73},"in_reply_to":"9fdfeff1_3658c7f8","updated":"2019-02-22 08:17:12.000000000","message":"Done","commit_id":"be7e417bc7df90b4f062a1fd81cd4d53dda37eeb"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3469,"context_line":"        self.req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":3470,"context_line":"        self.req_user_id \u003d self.req.environ[\u0027nova.context\u0027].user_id"},{"line_number":3471,"context_line":"        self.req_project_id \u003d self.req.environ[\u0027nova.context\u0027].project_id"},{"line_number":3472,"context_line":"        self.req.api_version_request \u003d \\"},{"line_number":3473,"context_line":"            api_version_request.APIVersionRequest(\u00272.70\u0027)"},{"line_number":3474,"context_line":"        self.body \u003d {"},{"line_number":3475,"context_line":"            \"rebuild\": {"},{"line_number":3476,"context_line":"                \"imageRef\": self.image_uuid,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_37d425e9","line":3473,"range":{"start_line":3472,"start_character":39,"end_line":3473,"end_character":57},"updated":"2019-02-25 03:36:14.000000000","message":"you can wrap line like this:\n\n(self.req.api_version_request \u003d\n       api_version_request.APIVersionRequest(\u00272.70\u0027))","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3469,"context_line":"        self.req.headers[\"content-type\"] \u003d \"application/json\""},{"line_number":3470,"context_line":"        self.req_user_id \u003d self.req.environ[\u0027nova.context\u0027].user_id"},{"line_number":3471,"context_line":"        self.req_project_id \u003d self.req.environ[\u0027nova.context\u0027].project_id"},{"line_number":3472,"context_line":"        self.req.api_version_request \u003d \\"},{"line_number":3473,"context_line":"            api_version_request.APIVersionRequest(\u00272.70\u0027)"},{"line_number":3474,"context_line":"        self.body \u003d {"},{"line_number":3475,"context_line":"            \"rebuild\": {"},{"line_number":3476,"context_line":"                \"imageRef\": self.image_uuid,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_48db487c","line":3473,"range":{"start_line":3472,"start_character":39,"end_line":3473,"end_character":57},"in_reply_to":"9fdfeff1_37d425e9","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3479,"context_line":"        }"},{"line_number":3480,"context_line":""},{"line_number":3481,"context_line":"    @mock.patch(\u0027nova.compute.api.API.get\u0027)"},{"line_number":3482,"context_line":"    def _rebuild_server(self, mock_get, certs\u003dNone,"},{"line_number":3483,"context_line":"                        conf_enabled\u003dTrue, conf_certs\u003dNone):"},{"line_number":3484,"context_line":"        fakes.stub_out_trusted_certs(self, certs\u003dcerts)"},{"line_number":3485,"context_line":"        ctx \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":3486,"context_line":"        mock_get.return_value \u003d fakes.stub_instance_obj(ctx,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_970cf194","line":3483,"range":{"start_line":3482,"start_character":40,"end_line":3483,"end_character":58},"updated":"2019-02-25 03:36:14.000000000","message":"I guess we needn\u0027t those parameters, since we test simple case","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3479,"context_line":"        }"},{"line_number":3480,"context_line":""},{"line_number":3481,"context_line":"    @mock.patch(\u0027nova.compute.api.API.get\u0027)"},{"line_number":3482,"context_line":"    def _rebuild_server(self, mock_get, certs\u003dNone,"},{"line_number":3483,"context_line":"                        conf_enabled\u003dTrue, conf_certs\u003dNone):"},{"line_number":3484,"context_line":"        fakes.stub_out_trusted_certs(self, certs\u003dcerts)"},{"line_number":3485,"context_line":"        ctx \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":3486,"context_line":"        mock_get.return_value \u003d fakes.stub_instance_obj(ctx,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_e8d31c5e","line":3483,"range":{"start_line":3482,"start_character":40,"end_line":3483,"end_character":58},"in_reply_to":"9fdfeff1_970cf194","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3481,"context_line":"    @mock.patch(\u0027nova.compute.api.API.get\u0027)"},{"line_number":3482,"context_line":"    def _rebuild_server(self, mock_get, certs\u003dNone,"},{"line_number":3483,"context_line":"                        conf_enabled\u003dTrue, conf_certs\u003dNone):"},{"line_number":3484,"context_line":"        fakes.stub_out_trusted_certs(self, certs\u003dcerts)"},{"line_number":3485,"context_line":"        ctx \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":3486,"context_line":"        mock_get.return_value \u003d fakes.stub_instance_obj(ctx,"},{"line_number":3487,"context_line":"            vm_state\u003dvm_states.ACTIVE, trusted_certs\u003dcerts,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_3742e5ac","line":3484,"range":{"start_line":3484,"start_character":8,"end_line":3484,"end_character":55},"updated":"2019-02-25 03:36:14.000000000","message":"This is needless","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3481,"context_line":"    @mock.patch(\u0027nova.compute.api.API.get\u0027)"},{"line_number":3482,"context_line":"    def _rebuild_server(self, mock_get, certs\u003dNone,"},{"line_number":3483,"context_line":"                        conf_enabled\u003dTrue, conf_certs\u003dNone):"},{"line_number":3484,"context_line":"        fakes.stub_out_trusted_certs(self, certs\u003dcerts)"},{"line_number":3485,"context_line":"        ctx \u003d self.req.environ[\u0027nova.context\u0027]"},{"line_number":3486,"context_line":"        mock_get.return_value \u003d fakes.stub_instance_obj(ctx,"},{"line_number":3487,"context_line":"            vm_state\u003dvm_states.ACTIVE, trusted_certs\u003dcerts,"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_88ca909e","line":3484,"range":{"start_line":3484,"start_character":8,"end_line":3484,"end_character":55},"in_reply_to":"9fdfeff1_3742e5ac","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"            vm_state\u003dvm_states.ACTIVE, trusted_certs\u003dcerts,"},{"line_number":3488,"context_line":"            project_id\u003dself.req_project_id, user_id\u003dself.req_user_id)"},{"line_number":3489,"context_line":""},{"line_number":3490,"context_line":"        self.body[\u0027rebuild\u0027][\u0027trusted_image_certificates\u0027] \u003d certs"},{"line_number":3491,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3492,"context_line":"        server \u003d self.controller._action_rebuild("},{"line_number":3493,"context_line":"            self.req, FAKE_UUID, body\u003dself.body).obj[\u0027server\u0027]"},{"line_number":3494,"context_line":"        return server"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_1747a1be","line":3491,"range":{"start_line":3490,"start_character":8,"end_line":3491,"end_character":58},"updated":"2019-02-25 03:36:14.000000000","message":"I don\u0027t think we need those, since weonly test will simple case.","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3487,"context_line":"            vm_state\u003dvm_states.ACTIVE, trusted_certs\u003dcerts,"},{"line_number":3488,"context_line":"            project_id\u003dself.req_project_id, user_id\u003dself.req_user_id)"},{"line_number":3489,"context_line":""},{"line_number":3490,"context_line":"        self.body[\u0027rebuild\u0027][\u0027trusted_image_certificates\u0027] \u003d certs"},{"line_number":3491,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3492,"context_line":"        server \u003d self.controller._action_rebuild("},{"line_number":3493,"context_line":"            self.req, FAKE_UUID, body\u003dself.body).obj[\u0027server\u0027]"},{"line_number":3494,"context_line":"        return server"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_68bf2cfc","line":3491,"range":{"start_line":3490,"start_character":8,"end_line":3491,"end_character":58},"in_reply_to":"9fdfeff1_1747a1be","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3496,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3497,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":3498,"context_line":"    def test_rebuild_with_server_group(self, mock_sg_get):"},{"line_number":3499,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3500,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3501,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3502,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_b70fb586","line":3499,"range":{"start_line":3499,"start_character":8,"end_line":3499,"end_character":58},"updated":"2019-02-25 03:36:14.000000000","message":"why we need this?","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3496,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3497,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":3498,"context_line":"    def test_rebuild_with_server_group(self, mock_sg_get):"},{"line_number":3499,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3500,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3501,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3502,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_e838fc9f","line":3499,"range":{"start_line":3499,"start_character":8,"end_line":3499,"end_character":58},"in_reply_to":"9fdfeff1_b70fb586","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3498,"context_line":"    def test_rebuild_with_server_group(self, mock_sg_get):"},{"line_number":3499,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3500,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3501,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3502,"context_line":""},{"line_number":3503,"context_line":""},{"line_number":3504,"context_line":"class ServersControllerUpdateTest(ControllerTest):"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_d777d907","line":3501,"updated":"2019-02-25 03:36:14.000000000","message":"good to add a case for sg not existed","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3498,"context_line":"    def test_rebuild_with_server_group(self, mock_sg_get):"},{"line_number":3499,"context_line":"        self.req.body \u003d jsonutils.dump_as_bytes(self.body)"},{"line_number":3500,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3501,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3502,"context_line":""},{"line_number":3503,"context_line":""},{"line_number":3504,"context_line":"class ServersControllerUpdateTest(ControllerTest):"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_a842f40d","line":3501,"in_reply_to":"9fdfeff1_d777d907","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3792,"context_line":"class ServersControllerUpdateTestV270(ServersControllerUpdateTest):"},{"line_number":3793,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":3794,"context_line":""},{"line_number":3795,"context_line":"    def setUp(self):"},{"line_number":3796,"context_line":"        super(ServersControllerUpdateTestV270, self).setUp()"},{"line_number":3797,"context_line":""},{"line_number":3798,"context_line":"    def _get_request(self, body\u003dNone):"},{"line_number":3799,"context_line":"        req \u003d super(ServersControllerUpdateTestV270, self)._get_request("}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_77214dfc","line":3796,"range":{"start_line":3795,"start_character":4,"end_line":3796,"end_character":60},"updated":"2019-02-25 03:36:14.000000000","message":"You did nothing at here, so you can remove this.","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3792,"context_line":"class ServersControllerUpdateTestV270(ServersControllerUpdateTest):"},{"line_number":3793,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":3794,"context_line":""},{"line_number":3795,"context_line":"    def setUp(self):"},{"line_number":3796,"context_line":"        super(ServersControllerUpdateTestV270, self).setUp()"},{"line_number":3797,"context_line":""},{"line_number":3798,"context_line":"    def _get_request(self, body\u003dNone):"},{"line_number":3799,"context_line":"        req \u003d super(ServersControllerUpdateTestV270, self)._get_request("}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_2867e4b9","line":3796,"range":{"start_line":3795,"start_character":4,"end_line":3796,"end_character":60},"in_reply_to":"9fdfeff1_77214dfc","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ea8f35a70f532c8a600b7dc851f54068f4eed89d","unresolved":false,"context_lines":[{"line_number":3809,"context_line":"               }}"},{"line_number":3810,"context_line":"        req \u003d self._get_request(body)"},{"line_number":3811,"context_line":"        res_dict \u003d self.controller.update(req, FAKE_UUID, body\u003dbody)"},{"line_number":3812,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"},{"line_number":3813,"context_line":""},{"line_number":3814,"context_line":""},{"line_number":3815,"context_line":"class ServerStatusTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_371bc5ca","line":3812,"updated":"2019-02-25 03:36:14.000000000","message":"good to add one more case for sg not existed","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"bbc033888d7cbebd7f8897c61ea9c2fffbcbd6b3","unresolved":false,"context_lines":[{"line_number":3809,"context_line":"               }}"},{"line_number":3810,"context_line":"        req \u003d self._get_request(body)"},{"line_number":3811,"context_line":"        res_dict \u003d self.controller.update(req, FAKE_UUID, body\u003dbody)"},{"line_number":3812,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"},{"line_number":3813,"context_line":""},{"line_number":3814,"context_line":""},{"line_number":3815,"context_line":"class ServerStatusTest(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":21,"id":"9fdfeff1_08ef80e9","line":3812,"in_reply_to":"9fdfeff1_371bc5ca","updated":"2019-02-25 08:05:34.000000000","message":"Done","commit_id":"4f29c45b827160b9cee8604ac3dd4f87af373e78"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":2526,"context_line":""},{"line_number":2527,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":2528,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":2529,"context_line":"    def test_show_with_server_group(self, mock_sg_get):"},{"line_number":2530,"context_line":"        req \u003d self.req(\u0027/fake/servers/%s\u0027 % FAKE_UUID)"},{"line_number":2531,"context_line":"        res_dict \u003d self.controller.show(req, FAKE_UUID)"},{"line_number":2532,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_cb3ddbbb","line":2529,"updated":"2019-02-26 02:51:13.000000000","message":"This is redundant with the functional test, I don\u0027t think we need both (just drop the unit test).","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":2526,"context_line":""},{"line_number":2527,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":2528,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":2529,"context_line":"    def test_show_with_server_group(self, mock_sg_get):"},{"line_number":2530,"context_line":"        req \u003d self.req(\u0027/fake/servers/%s\u0027 % FAKE_UUID)"},{"line_number":2531,"context_line":"        res_dict \u003d self.controller.show(req, FAKE_UUID)"},{"line_number":2532,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_4e0fa2df","line":2529,"in_reply_to":"9fdfeff1_cb3ddbbb","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":3490,"context_line":""},{"line_number":3491,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3492,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":3493,"context_line":"    def test_rebuild_with_server_group(self, mock_sg_get):"},{"line_number":3494,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3495,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3496,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_6b462f53","line":3493,"updated":"2019-02-26 02:51:13.000000000","message":"same - we already have this in the functional test","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":3490,"context_line":""},{"line_number":3491,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3492,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":3493,"context_line":"    def test_rebuild_with_server_group(self, mock_sg_get):"},{"line_number":3494,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3495,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3496,"context_line":""}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_0ef51acb","line":3493,"in_reply_to":"9fdfeff1_6b462f53","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":3495,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3496,"context_line":""},{"line_number":3497,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3498,"context_line":"                       side_effect\u003dexception.InstanceGroupNotFound(FAKE_UUID))"},{"line_number":3499,"context_line":"    def test_rebuild_with_server_group_not_exist(self, mock_sg_get):"},{"line_number":3500,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3501,"context_line":"        self.assertEqual([], server[\u0027server_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_cb663bee","line":3498,"range":{"start_line":3498,"start_character":67,"end_line":3498,"end_character":76},"updated":"2019-02-26 02:51:13.000000000","message":"this is now the message, I think you mean group_uuid\u003dFAKE_UUID?","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":3495,"context_line":"        self.assertEqual(self.expect_sg, server[\u0027server_groups\u0027])"},{"line_number":3496,"context_line":""},{"line_number":3497,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3498,"context_line":"                       side_effect\u003dexception.InstanceGroupNotFound(FAKE_UUID))"},{"line_number":3499,"context_line":"    def test_rebuild_with_server_group_not_exist(self, mock_sg_get):"},{"line_number":3500,"context_line":"        server \u003d self._rebuild_server()"},{"line_number":3501,"context_line":"        self.assertEqual([], server[\u0027server_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_eee5360b","line":3498,"range":{"start_line":3498,"start_character":67,"end_line":3498,"end_character":76},"in_reply_to":"9fdfeff1_cb663bee","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":3801,"context_line":""},{"line_number":3802,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3803,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":3804,"context_line":"    def test_update_with_server_group(self, mock_sg_get):"},{"line_number":3805,"context_line":"        req \u003d self._get_request(self.body)"},{"line_number":3806,"context_line":"        res_dict \u003d self.controller.update(req, FAKE_UUID, body\u003dself.body)"},{"line_number":3807,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_8b43533f","line":3804,"updated":"2019-02-26 02:51:13.000000000","message":"same, this is redundant","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":3801,"context_line":""},{"line_number":3802,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3803,"context_line":"                       return_value\u003dInstanceGroup(name\u003d\u0027sg1\u0027, uuid\u003dFAKE_UUID))"},{"line_number":3804,"context_line":"    def test_update_with_server_group(self, mock_sg_get):"},{"line_number":3805,"context_line":"        req \u003d self._get_request(self.body)"},{"line_number":3806,"context_line":"        res_dict \u003d self.controller.update(req, FAKE_UUID, body\u003dself.body)"},{"line_number":3807,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_6e2dc644","line":3804,"in_reply_to":"9fdfeff1_8b43533f","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3b70eaeff08e842eecb2c11d926f343610e0b2f0","unresolved":false,"context_lines":[{"line_number":3807,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"},{"line_number":3808,"context_line":""},{"line_number":3809,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3810,"context_line":"                       side_effect\u003dexception.InstanceGroupNotFound(FAKE_UUID))"},{"line_number":3811,"context_line":"    def test_update_with_server_group_not_exist(self, mock_sg_get):"},{"line_number":3812,"context_line":"        req \u003d self._get_request(self.body)"},{"line_number":3813,"context_line":"        res_dict \u003d self.controller.update(req, FAKE_UUID, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_2b76e7a5","line":3810,"range":{"start_line":3810,"start_character":67,"end_line":3810,"end_character":76},"updated":"2019-02-26 02:51:13.000000000","message":"this is wrong, did you mean group_uuid\u003dFAKE_UUID?","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"b9f83bace3e706f8360449e15d4de812c481a934","unresolved":false,"context_lines":[{"line_number":3807,"context_line":"        self.assertEqual(self.expect_sg, res_dict[\u0027server\u0027][\u0027server_groups\u0027])"},{"line_number":3808,"context_line":""},{"line_number":3809,"context_line":"    @mock.patch.object(InstanceGroup, \u0027get_by_instance_uuid\u0027,"},{"line_number":3810,"context_line":"                       side_effect\u003dexception.InstanceGroupNotFound(FAKE_UUID))"},{"line_number":3811,"context_line":"    def test_update_with_server_group_not_exist(self, mock_sg_get):"},{"line_number":3812,"context_line":"        req \u003d self._get_request(self.body)"},{"line_number":3813,"context_line":"        res_dict \u003d self.controller.update(req, FAKE_UUID, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":23,"id":"9fdfeff1_cefab2b8","line":3810,"range":{"start_line":3810,"start_character":67,"end_line":3810,"end_character":76},"in_reply_to":"9fdfeff1_2b76e7a5","updated":"2019-02-27 06:18:34.000000000","message":"Done","commit_id":"a76bed1000da15a6f45766484680e0b6ae352102"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":2511,"context_line":""},{"line_number":2512,"context_line":"class ServersControllerTestV271(ControllerTest):"},{"line_number":2513,"context_line":"    wsgi_api_version \u003d \u00272.71\u0027"},{"line_number":2514,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":2515,"context_line":""},{"line_number":2516,"context_line":"    def req(self, url, use_admin_context\u003dFalse):"},{"line_number":2517,"context_line":"        return fakes.HTTPRequest.blank(url,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_4f7a20f1","line":2514,"range":{"start_line":2514,"start_character":4,"end_line":2514,"end_character":27},"updated":"2019-02-28 02:06:18.000000000","message":"This isn\u0027t used.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":2511,"context_line":""},{"line_number":2512,"context_line":"class ServersControllerTestV271(ControllerTest):"},{"line_number":2513,"context_line":"    wsgi_api_version \u003d \u00272.71\u0027"},{"line_number":2514,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":2515,"context_line":""},{"line_number":2516,"context_line":"    def req(self, url, use_admin_context\u003dFalse):"},{"line_number":2517,"context_line":"        return fakes.HTTPRequest.blank(url,"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_ead8a27f","line":2514,"range":{"start_line":2514,"start_character":4,"end_line":2514,"end_character":27},"in_reply_to":"9fdfeff1_4f7a20f1","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":3451,"context_line":""},{"line_number":3452,"context_line":""},{"line_number":3453,"context_line":"class ServersControllerRebuildTestV271(ControllerTest):"},{"line_number":3454,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":3455,"context_line":"    image_uuid \u003d \u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027"},{"line_number":3456,"context_line":""},{"line_number":3457,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_2f831ccd","line":3454,"range":{"start_line":3454,"start_character":4,"end_line":3454,"end_character":27},"updated":"2019-02-28 02:06:18.000000000","message":"not used","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":3451,"context_line":""},{"line_number":3452,"context_line":""},{"line_number":3453,"context_line":"class ServersControllerRebuildTestV271(ControllerTest):"},{"line_number":3454,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":3455,"context_line":"    image_uuid \u003d \u002776fa36fc-c930-4bf3-8c8a-ea2a2420deb6\u0027"},{"line_number":3456,"context_line":""},{"line_number":3457,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_aade1a67","line":3454,"range":{"start_line":3454,"start_character":4,"end_line":3454,"end_character":27},"in_reply_to":"9fdfeff1_2f831ccd","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":3777,"context_line":""},{"line_number":3778,"context_line":""},{"line_number":3779,"context_line":"class ServersControllerUpdateTestV271(ServersControllerUpdateTest):"},{"line_number":3780,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":3781,"context_line":"    body \u003d {\u0027server\u0027: {\u0027name\u0027: \u0027server_test\u0027}}"},{"line_number":3782,"context_line":""},{"line_number":3783,"context_line":"    def _get_request(self, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_cf6db032","line":3780,"range":{"start_line":3780,"start_character":4,"end_line":3780,"end_character":27},"updated":"2019-02-28 02:06:18.000000000","message":"not used","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":3777,"context_line":""},{"line_number":3778,"context_line":""},{"line_number":3779,"context_line":"class ServersControllerUpdateTestV271(ServersControllerUpdateTest):"},{"line_number":3780,"context_line":"    expect_sg \u003d [FAKE_UUID]"},{"line_number":3781,"context_line":"    body \u003d {\u0027server\u0027: {\u0027name\u0027: \u0027server_test\u0027}}"},{"line_number":3782,"context_line":""},{"line_number":3783,"context_line":"    def _get_request(self, body\u003dNone):"}],"source_content_type":"text/x-python","patch_set":27,"id":"9fdfeff1_6ad6f251","line":3780,"range":{"start_line":3780,"start_character":4,"end_line":3780,"end_character":27},"in_reply_to":"9fdfeff1_cf6db032","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"}],"releasenotes/notes/show-server-group-8d4bf609213a94de.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"db6646530ed0d7663f229aaee1cd32e2b74f4f99","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new v2.71 Nova API microversion adds the ability to show server"},{"line_number":5,"context_line":"    group UUID in `GET /servers/{server_id}`, `PUT /servers/{server_id}`"},{"line_number":6,"context_line":"    and `POST /servers/{server_id}/action` rebuild responses."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":27,"id":"9fdfeff1_0f59788c","line":6,"range":{"start_line":5,"start_character":15,"end_line":6,"end_character":61},"updated":"2019-02-28 02:06:18.000000000","message":"The list format from https://review.openstack.org/#/c/621474/27/nova/api/openstack/compute/rest_api_version_history.rst is easier to read so please re-use that here.","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"4af659b7a65862ef4e24067a6810075f67e175b7","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new v2.71 Nova API microversion adds the ability to show server"},{"line_number":5,"context_line":"    group UUID in `GET /servers/{server_id}`, `PUT /servers/{server_id}`"},{"line_number":6,"context_line":"    and `POST /servers/{server_id}/action` rebuild responses."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":27,"id":"9fdfeff1_ca983ec1","line":6,"range":{"start_line":5,"start_character":15,"end_line":6,"end_character":61},"in_reply_to":"9fdfeff1_0f59788c","updated":"2019-02-28 03:34:34.000000000","message":"Done","commit_id":"3f46eb1d971fddd98cbde2ce9ff3f11687c00e7b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d1e234ff59cde96aa8a048bfc9dad7000da47ec8","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":"    The ``server_groups`` parameter will be in the response body of the following"},{"line_number":5,"context_line":"    APIs to list the server groups to which the server belongs:"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"    * ``GET /servers/{server_id}``"}],"source_content_type":"text/x-yaml","patch_set":30,"id":"9fdfeff1_67adb62f","line":4,"updated":"2019-02-28 18:51:25.000000000","message":"Mention the 2.71 microversion as you had in PS27.","commit_id":"86fb5fd4fe484838b2d70bcdd914fe04c020a7d6"}],"releasenotes/notes/show-server-group.yaml":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"19985f87bebb9e1fde61c32015c6b5199232f41f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new v2.68 Nova API microversion adds the ability to show server"},{"line_number":5,"context_line":"    group UUID in `GET /servers/{server_id}`, `PUT /servers/{server_id}`"},{"line_number":6,"context_line":"    and `POST /servers/{server_id}/action`."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"bfdaf3ff_0cf22471","line":6,"updated":"2019-01-18 02:30:41.000000000","message":"responses","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"522f20085c03a94fffdd7779d17bc98cbb75837c","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new v2.68 Nova API microversion adds the ability to show server"},{"line_number":5,"context_line":"    group UUID in `GET /servers/{server_id}`, `PUT /servers/{server_id}`"},{"line_number":6,"context_line":"    and `POST /servers/{server_id}/action`."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9fdfeff1_fa600235","line":6,"in_reply_to":"bfdaf3ff_0cf22471","updated":"2019-01-24 05:18:06.000000000","message":"Done","commit_id":"7df93f1e87c4c821e274dbdbfee6cccf9447963b"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"ad56185972b3a71f2a98dcd6ee8b036672fb3641","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new v2.68 Nova API microversion adds the ability to show server"},{"line_number":5,"context_line":"    group UUID in `GET /servers/{server_id}`, `PUT /servers/{server_id}`"},{"line_number":6,"context_line":"    and `POST /servers/{server_id}/action` responses."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_28d91a7e","line":6,"range":{"start_line":6,"start_character":42,"end_line":6,"end_character":43},"updated":"2019-01-28 01:09:54.000000000","message":"(Rebuild)","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"},{"author":{"_account_id":7543,"name":"Yongli He","email":"yongli.he@intel.com","username":"yongli.he"},"change_message_id":"9b314c5b1f9399506ac7c59ad8904d51473075bf","unresolved":false,"context_lines":[{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    A new v2.68 Nova API microversion adds the ability to show server"},{"line_number":5,"context_line":"    group UUID in `GET /servers/{server_id}`, `PUT /servers/{server_id}`"},{"line_number":6,"context_line":"    and `POST /servers/{server_id}/action` responses."},{"line_number":7,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fdfeff1_9ec2a558","line":6,"range":{"start_line":6,"start_character":42,"end_line":6,"end_character":43},"in_reply_to":"9fdfeff1_28d91a7e","updated":"2019-01-29 08:06:37.000000000","message":"Done","commit_id":"a44cae9c1c692811d6e6b29951421f0aeb6af5c5"}]}
