)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b67fdb80c29e452940743127bb4a7f9d4fa0ef99","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     stewie925 \u003cst6218@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-20 07:43:14 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Transform instance.unrescue  notifications (WIP)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.unrescue.start and instance.unrescue.end"},{"line_number":10,"context_line":"notifications are transformed to the versioned framework."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba5da102_09e635b4","line":7,"range":{"start_line":7,"start_character":43,"end_line":7,"end_character":48},"updated":"2016-10-27 14:12:01.000000000","message":"Could you remove this as the patch seems to be not WIP any more","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b67fdb80c29e452940743127bb4a7f9d4fa0ef99","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     stewie925 \u003cst6218@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-20 07:43:14 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Transform instance.unrescue  notifications (WIP)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.unrescue.start and instance.unrescue.end"},{"line_number":10,"context_line":"notifications are transformed to the versioned framework."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"ba5da102_69cc1136","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":29},"updated":"2016-10-27 14:12:01.000000000","message":"nit: s/  / /","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"8d15c1900aeba32748af389e6a802f40d27b7abf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     stewie925 \u003cst6218@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-10-27 18:27:19 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Transform instance.unrescue  notifications"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.unrescue.start and instance.unrescue.end"},{"line_number":10,"context_line":"notifications are transformed to the versioned framework."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba5da102_2d04d4be","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":29},"updated":"2016-10-28 08:21:27.000000000","message":"nit: remove one of the spaces","commit_id":"2386143862a71c956d530ffaa91f856c10b644e1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7ba21b4b71eb2ac94181074f31db112925d1dcca","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     stewie925 \u003cst3wty@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-03 16:51:52 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Transform instance.unrescue  notifications (WIP)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.unrescue.start and instance.unrescue.end"},{"line_number":10,"context_line":"notifications are transformed to the versioned framework."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba5201f7_96b42cd5","line":7,"range":{"start_line":7,"start_character":42,"end_line":7,"end_character":48},"updated":"2017-01-09 10:13:15.000000000","message":"I think you can drop the WIP","commit_id":"59eb5006102677b90714ab527bd5623238f03f96"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"7ba21b4b71eb2ac94181074f31db112925d1dcca","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     stewie925 \u003cst3wty@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-01-03 16:51:52 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Transform instance.unrescue  notifications (WIP)"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The instance.unrescue.start and instance.unrescue.end"},{"line_number":10,"context_line":"notifications are transformed to the versioned framework."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"ba5201f7_369f0052","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":29},"updated":"2017-01-09 10:13:15.000000000","message":"nit: s/  / /","commit_id":"59eb5006102677b90714ab527bd5623238f03f96"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2764d10c7b8507744e55ca257391f7010f976ad6","unresolved":false,"context_lines":[{"line_number":10,"context_line":"notifications are transformed to the versioned framework."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I38b28c21d21502b9c4f3e7884c7e130d3102b936"},{"line_number":13,"context_line":"Implements: bp versioned-notification-transformation-ocata"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"fa31d9ce_441874d3","line":13,"updated":"2017-02-15 11:47:32.000000000","message":"if you have to respin the patch then please change this to versioned-notification-transformation-pike","commit_id":"17b1e0e15452bc260c65e943f9c081694b545d4f"}],"api-ref/source/parameters.yaml":[{"author":{"_account_id":15888,"name":"Zhenyu Zheng","email":"zheng.zhenyu@outlook.com","username":"Kevin_Zheng"},"change_message_id":"92a886caed0c7090415c7dee4060647fe9f5354e","unresolved":false,"context_lines":[{"line_number":1056,"context_line":"  type: object"},{"line_number":1057,"context_line":"addSecurityGroup:"},{"line_number":1058,"context_line":"  description: |"},{"line_number":1059,"context_line":"    The action to add a security group to a server."},{"line_number":1060,"context_line":"  in: body"},{"line_number":1061,"context_line":"  required: true"},{"line_number":1062,"context_line":"  type: object"},{"line_number":1063,"context_line":"addTenantAccess:"},{"line_number":1064,"context_line":"  description: |"},{"line_number":1065,"context_line":"    The action."},{"line_number":1066,"context_line":"  in: body"},{"line_number":1067,"context_line":"  required: true"},{"line_number":1068,"context_line":"  type: string"},{"line_number":1069,"context_line":"adminPass_change_password:"},{"line_number":1070,"context_line":"  description: |"},{"line_number":1071,"context_line":"    The administrative password for the server."},{"line_number":1072,"context_line":"  in: body"},{"line_number":1073,"context_line":"  required: true"},{"line_number":1074,"context_line":"  type: string"},{"line_number":1075,"context_line":"adminPass_evacuate:"},{"line_number":1076,"context_line":"  description: |"},{"line_number":1077,"context_line":"    An administrative password to access the evacuated instance."},{"line_number":1078,"context_line":"    If you set ``enable_instance_password`` configuration option to ``False``,"},{"line_number":1079,"context_line":"    the API wouldn\u0027t return the ``adminPass`` field in response."},{"line_number":1080,"context_line":"  in: body"},{"line_number":1081,"context_line":"  required: false"},{"line_number":1082,"context_line":"  type: string"},{"line_number":1083,"context_line":"  max_version: 2.13"},{"line_number":1084,"context_line":"adminPass_evacuate_request:"},{"line_number":1085,"context_line":"  description: |"},{"line_number":1086,"context_line":"    An administrative password to access the evacuated instance. If you omit this parameter, the operation"},{"line_number":1087,"context_line":"    generates a new password."},{"line_number":1088,"context_line":"  in: body"},{"line_number":1089,"context_line":"  required: false"},{"line_number":1090,"context_line":"  type: string"},{"line_number":1091,"context_line":"  max_version: 2.13"},{"line_number":1092,"context_line":"adminPass_request:"},{"line_number":1093,"context_line":"  description: |"},{"line_number":1094,"context_line":"    The administrative password of the server. If you omit this parameter, the operation"},{"line_number":1095,"context_line":"    generates a new password."},{"line_number":1096,"context_line":"  in: body"},{"line_number":1097,"context_line":"  required: false"},{"line_number":1098,"context_line":"  type: string"},{"line_number":1099,"context_line":"adminPass_rescue_request:"},{"line_number":1100,"context_line":"  description: |"},{"line_number":1101,"context_line":"    The password for the rescued instance. If you omit this parameter, the operation"},{"line_number":1102,"context_line":"    generates a new password."},{"line_number":1103,"context_line":"  in: body"},{"line_number":1104,"context_line":"  required: false"},{"line_number":1105,"context_line":"  type: string"},{"line_number":1106,"context_line":"adminPass_response:"},{"line_number":1107,"context_line":"  description: |"},{"line_number":1108,"context_line":"    The administrative password for the server. If you set ``enable_instance_password`` configuration"},{"line_number":1109,"context_line":"    option to ``False``, the API wouldn\u0027t return the ``adminPass`` field in response."},{"line_number":1110,"context_line":"  in: body"},{"line_number":1111,"context_line":"  required: false"},{"line_number":1112,"context_line":"  type: string"},{"line_number":1113,"context_line":"agent:"},{"line_number":1114,"context_line":"  description: |"},{"line_number":1115,"context_line":"    The guest agent object."},{"line_number":1116,"context_line":"  in: body"},{"line_number":1117,"context_line":"  required: true"},{"line_number":1118,"context_line":"  type: object"},{"line_number":1119,"context_line":"agent_id:"},{"line_number":1120,"context_line":"  description: |"},{"line_number":1121,"context_line":"    The agent ID."},{"line_number":1122,"context_line":"  in: body"},{"line_number":1123,"context_line":"  required: true"},{"line_number":1124,"context_line":"  type: integer"},{"line_number":1125,"context_line":"agent_id_str:"},{"line_number":1126,"context_line":"  description: |"},{"line_number":1127,"context_line":"    The agent ID. (This is a bug of API, this should be integer type which is consistent with"},{"line_number":1128,"context_line":"    the responses of agent create and list. This will be fixed in later microversion.)"},{"line_number":1129,"context_line":"  in: body"},{"line_number":1130,"context_line":"  required: true"},{"line_number":1131,"context_line":"  type: string"},{"line_number":1132,"context_line":"agents:"},{"line_number":1133,"context_line":"  description: |"},{"line_number":1134,"context_line":"    A list of guest agent objects."},{"line_number":1135,"context_line":"  in: body"},{"line_number":1136,"context_line":"  required: true"},{"line_number":1137,"context_line":"  type: array"},{"line_number":1138,"context_line":"aggregate:"},{"line_number":1139,"context_line":"  description: |"},{"line_number":1140,"context_line":"    The host aggregate object."},{"line_number":1141,"context_line":"  in: body"},{"line_number":1142,"context_line":"  required: true"},{"line_number":1143,"context_line":"  type: object"},{"line_number":1144,"context_line":"aggregate_add_host:"},{"line_number":1145,"context_line":"  description: |"},{"line_number":1146,"context_line":"    The add_host object used to add host to aggregate."},{"line_number":1147,"context_line":"  in: body"},{"line_number":1148,"context_line":"  required: true"},{"line_number":1149,"context_line":"  type: object"},{"line_number":1150,"context_line":"aggregate_az:"},{"line_number":1151,"context_line":"  description: |"},{"line_number":1152,"context_line":"    The availability zone of the host aggregate."},{"line_number":1153,"context_line":"  in: body"},{"line_number":1154,"context_line":"  required: true"},{"line_number":1155,"context_line":"  type: string"},{"line_number":1156,"context_line":"aggregate_az_optional:"},{"line_number":1157,"context_line":"  description: |"},{"line_number":1158,"context_line":"    The availability zone of the host aggregate."},{"line_number":1159,"context_line":"  in: body"},{"line_number":1160,"context_line":"  required: false"},{"line_number":1161,"context_line":"  type: string"},{"line_number":1162,"context_line":"aggregate_host_list:"},{"line_number":1163,"context_line":"  description: |"},{"line_number":1164,"context_line":"    A list of host ids in this aggregate."},{"line_number":1165,"context_line":"  in: body"},{"line_number":1166,"context_line":"  required: true"},{"line_number":1167,"context_line":"  type: array"},{"line_number":1168,"context_line":"aggregate_id_body:"},{"line_number":1169,"context_line":"  description: |"},{"line_number":1170,"context_line":"    The ID of the host aggregate."},{"line_number":1171,"context_line":"  in: body"},{"line_number":1172,"context_line":"  required: true"},{"line_number":1173,"context_line":"  type: integer"},{"line_number":1174,"context_line":"aggregate_metadata:"},{"line_number":1175,"context_line":"  description: |"},{"line_number":1176,"context_line":"    Metadata key and value pairs associate with the aggregate."},{"line_number":1177,"context_line":"  in: body"},{"line_number":1178,"context_line":"  required: true"},{"line_number":1179,"context_line":"  type: object"},{"line_number":1180,"context_line":"aggregate_name:"},{"line_number":1181,"context_line":"  description: |"},{"line_number":1182,"context_line":"    The name of the host aggregate."},{"line_number":1183,"context_line":"  in: body"},{"line_number":1184,"context_line":"  required: true"},{"line_number":1185,"context_line":"  type: string"},{"line_number":1186,"context_line":"aggregate_name_optional:"},{"line_number":1187,"context_line":"  description: |"},{"line_number":1188,"context_line":"    The name of the host aggregate."},{"line_number":1189,"context_line":"  in: body"},{"line_number":1190,"context_line":"  required: false"},{"line_number":1191,"context_line":"  type: string"},{"line_number":1192,"context_line":"aggregate_remove_host:"},{"line_number":1193,"context_line":"  description: |"},{"line_number":1194,"context_line":"    The add_host object used to remove host from aggregate."},{"line_number":1195,"context_line":"  in: body"},{"line_number":1196,"context_line":"  required: true"},{"line_number":1197,"context_line":"  type: object"},{"line_number":1198,"context_line":"aggregate_uuid:"},{"line_number":1199,"context_line":"  description: |"},{"line_number":1200,"context_line":"    The UUID of the host aggregate."},{"line_number":1201,"context_line":"  in: body"},{"line_number":1202,"context_line":"  required: true"},{"line_number":1203,"context_line":"  type: string"},{"line_number":1204,"context_line":"  min_version: 2.41"},{"line_number":1205,"context_line":"aggregates:"},{"line_number":1206,"context_line":"  description: |"},{"line_number":1207,"context_line":"    The list of existing aggregates."},{"line_number":1208,"context_line":"  in: body"},{"line_number":1209,"context_line":"  required: true"},{"line_number":1210,"context_line":"  type: array"},{"line_number":1211,"context_line":"alias:"},{"line_number":1212,"context_line":"  description: |"},{"line_number":1213,"context_line":"    A short name by which this extension is also known."},{"line_number":1214,"context_line":"  in: body"},{"line_number":1215,"context_line":"  required: true"},{"line_number":1216,"context_line":"  type: string"},{"line_number":1217,"context_line":"alive:"},{"line_number":1218,"context_line":"  description: |"},{"line_number":1219,"context_line":"    Returns true if the instance is alive."},{"line_number":1220,"context_line":"  in: body"},{"line_number":1221,"context_line":"  required: true"},{"line_number":1222,"context_line":"  type: boolean"},{"line_number":1223,"context_line":"architecture:"},{"line_number":1224,"context_line":"  description: |"},{"line_number":1225,"context_line":"    The name of the cpu architecture."},{"line_number":1226,"context_line":"  in: body"},{"line_number":1227,"context_line":"  required: true"},{"line_number":1228,"context_line":"  type: string"},{"line_number":1229,"context_line":"associate_host:"},{"line_number":1230,"context_line":"  description: |"},{"line_number":1231,"context_line":"    The name of the host to associate."},{"line_number":1232,"context_line":"  in: body"},{"line_number":1233,"context_line":"  required: true"},{"line_number":1234,"context_line":"  type: string"},{"line_number":1235,"context_line":"attachment_device_resp:"},{"line_number":1236,"context_line":"  description: |"},{"line_number":1237,"context_line":"    Name of the device in the attachment object, such as, ``/dev/vdb``."},{"line_number":1238,"context_line":"  in: body"},{"line_number":1239,"context_line":"  required: false"},{"line_number":1240,"context_line":"  type: string"},{"line_number":1241,"context_line":"attachment_id_required:"},{"line_number":1242,"context_line":"  description: |"},{"line_number":1243,"context_line":"    The UUID of the attachment."},{"line_number":1244,"context_line":"  in: body"},{"line_number":1245,"context_line":"  required: true"},{"line_number":1246,"context_line":"  type: string"},{"line_number":1247,"context_line":"attachment_id_resp:"},{"line_number":1248,"context_line":"  description: |"},{"line_number":1249,"context_line":"    The UUID of the attachment."},{"line_number":1250,"context_line":"  in: body"},{"line_number":1251,"context_line":"  required: false"},{"line_number":1252,"context_line":"  type: string"},{"line_number":1253,"context_line":"attachment_server_id_resp:"},{"line_number":1254,"context_line":"  description: |"},{"line_number":1255,"context_line":"    The UUID of the server."},{"line_number":1256,"context_line":"  in: body"},{"line_number":1257,"context_line":"  required: false"},{"line_number":1258,"context_line":"  type: string"},{"line_number":1259,"context_line":"attachment_volumeId_resp:"},{"line_number":1260,"context_line":"  description: |"},{"line_number":1261,"context_line":"    The UUID of the attached volume."},{"line_number":1262,"context_line":"  in: body"},{"line_number":1263,"context_line":"  required: false"},{"line_number":1264,"context_line":"  type: string"},{"line_number":1265,"context_line":"availability_zone:"},{"line_number":1266,"context_line":"  description: |"},{"line_number":1267,"context_line":"    The availability zone."},{"line_number":1268,"context_line":"  in: body"},{"line_number":1269,"context_line":"  required: false"},{"line_number":1270,"context_line":"  type: string"},{"line_number":1271,"context_line":"availability_zone_info:"},{"line_number":1272,"context_line":"  description: |"},{"line_number":1273,"context_line":"    The list of availability zone information."},{"line_number":1274,"context_line":"  in: body"},{"line_number":1275,"context_line":"  required: true"},{"line_number":1276,"context_line":"  type: array"},{"line_number":1277,"context_line":"availability_zone_state:"},{"line_number":1278,"context_line":"  description: |"},{"line_number":1279,"context_line":"    The current state of the availability zone."},{"line_number":1280,"context_line":"  in: body"},{"line_number":1281,"context_line":"  required: true"},{"line_number":1282,"context_line":"  type: object"},{"line_number":1283,"context_line":"available:"},{"line_number":1284,"context_line":"  description: |"},{"line_number":1285,"context_line":"    Returns true if the availability zone is available."},{"line_number":1286,"context_line":"  in: body"},{"line_number":1287,"context_line":"  required: true"},{"line_number":1288,"context_line":"  type: boolean"},{"line_number":1289,"context_line":"backup_name:"},{"line_number":1290,"context_line":"  description: |"},{"line_number":1291,"context_line":"    The name of the image to be backed up."},{"line_number":1292,"context_line":"  in: body"},{"line_number":1293,"context_line":"  required: true"},{"line_number":1294,"context_line":"  type: string"},{"line_number":1295,"context_line":"backup_rotation:"},{"line_number":1296,"context_line":"  description: |"},{"line_number":1297,"context_line":"    The rotation of the back up image, the oldest image will be removed when image count"},{"line_number":1298,"context_line":"    exceed the rotation count."},{"line_number":1299,"context_line":"  in: body"},{"line_number":1300,"context_line":"  required: true"},{"line_number":1301,"context_line":"  type: integer"},{"line_number":1302,"context_line":"backup_type:"},{"line_number":1303,"context_line":"  description: |"},{"line_number":1304,"context_line":"    The type of the backup, for example, ``daily``."},{"line_number":1305,"context_line":"  in: body"},{"line_number":1306,"context_line":"  required: true"},{"line_number":1307,"context_line":"  type: string"},{"line_number":1308,"context_line":"baremetal_cpus:"},{"line_number":1309,"context_line":"  description: |"},{"line_number":1310,"context_line":"    Number of CPUs the node has."},{"line_number":1311,"context_line":""},{"line_number":1312,"context_line":"    .. note:: This is a JSON string, even though it will look like an int value."},{"line_number":1313,"context_line":"  in: body"},{"line_number":1314,"context_line":"  required: true"},{"line_number":1315,"context_line":"  type: string"},{"line_number":1316,"context_line":"baremetal_disk:"},{"line_number":1317,"context_line":"  description: |"},{"line_number":1318,"context_line":"    Amount of disk in GiB the node has."},{"line_number":1319,"context_line":""},{"line_number":1320,"context_line":"    .. note:: This is a JSON string, even though it will look like an int value."},{"line_number":1321,"context_line":"  in: body"},{"line_number":1322,"context_line":"  required: true"},{"line_number":1323,"context_line":"  type: string"},{"line_number":1324,"context_line":"baremetal_host:"},{"line_number":1325,"context_line":"  description: |"},{"line_number":1326,"context_line":"    This will always have the value ``IRONIC MANAGED``."},{"line_number":1327,"context_line":"  in: body"},{"line_number":1328,"context_line":"  required: true"},{"line_number":1329,"context_line":"  type: string"},{"line_number":1330,"context_line":"baremetal_id:"},{"line_number":1331,"context_line":"  description: |"},{"line_number":1332,"context_line":"    UUID of the baremetal node."},{"line_number":1333,"context_line":"  in: body"},{"line_number":1334,"context_line":"  required: true"},{"line_number":1335,"context_line":"  type: string"},{"line_number":1336,"context_line":"baremetal_instance_uuid:"},{"line_number":1337,"context_line":"  description: |"},{"line_number":1338,"context_line":"    UUID of the server instance on this node."},{"line_number":1339,"context_line":"  in: body"},{"line_number":1340,"context_line":"  required: true"},{"line_number":1341,"context_line":"  type: string"},{"line_number":1342,"context_line":"baremetal_interfaces:"},{"line_number":1343,"context_line":"  description: |"},{"line_number":1344,"context_line":"    A list of interface objects for active interfaces on the baremetal"},{"line_number":1345,"context_line":"    node. Each will have an ``address`` field with the address."},{"line_number":1346,"context_line":"  in: body"},{"line_number":1347,"context_line":"  required: true"},{"line_number":1348,"context_line":"  type: array"},{"line_number":1349,"context_line":"baremetal_mem:"},{"line_number":1350,"context_line":"  description: |"},{"line_number":1351,"context_line":"    Amount of memory in MiB the node has."},{"line_number":1352,"context_line":""},{"line_number":1353,"context_line":"    .. note:: This is a JSON string, even though it will look like an int value."},{"line_number":1354,"context_line":"  in: body"},{"line_number":1355,"context_line":"  required: true"},{"line_number":1356,"context_line":"  type: string"},{"line_number":1357,"context_line":"baremetal_node:"},{"line_number":1358,"context_line":"  description: |"},{"line_number":1359,"context_line":"    A baremetal node object."},{"line_number":1360,"context_line":"  in: body"},{"line_number":1361,"context_line":"  required: true"},{"line_number":1362,"context_line":"  type: object"},{"line_number":1363,"context_line":"baremetal_nodes:"},{"line_number":1364,"context_line":"  description: |"},{"line_number":1365,"context_line":"    An array of baremetal node objects."},{"line_number":1366,"context_line":"  in: body"},{"line_number":1367,"context_line":"  required: true"},{"line_number":1368,"context_line":"  type: array"},{"line_number":1369,"context_line":"baremetal_taskstate:"},{"line_number":1370,"context_line":"  description: |"},{"line_number":1371,"context_line":"    The Ironic task state for the node. See Ironic project for more"},{"line_number":1372,"context_line":"    details."},{"line_number":1373,"context_line":"  in: body"},{"line_number":1374,"context_line":"  required: true"},{"line_number":1375,"context_line":"  type: string"},{"line_number":1376,"context_line":"binary:"},{"line_number":1377,"context_line":"  description: |"},{"line_number":1378,"context_line":"    The binary name of the service."},{"line_number":1379,"context_line":"  in: body"},{"line_number":1380,"context_line":"  required: true"},{"line_number":1381,"context_line":"  type: string"},{"line_number":1382,"context_line":"block_device_mapping_v2:"},{"line_number":1383,"context_line":"  description: |"},{"line_number":1384,"context_line":"    Enables fine grained control of the block device mapping for an instance. This"},{"line_number":1385,"context_line":"    is typically used for booting servers from volumes.  An example format would look"},{"line_number":1386,"context_line":"    as follows:"},{"line_number":1387,"context_line":""},{"line_number":1388,"context_line":"      .. code-block:: javascript"},{"line_number":1389,"context_line":""},{"line_number":1390,"context_line":"        \"block_device_mapping_v2\": [{"},{"line_number":1391,"context_line":"            \"boot_index\": \"0\","},{"line_number":1392,"context_line":"            \"uuid\": \"ac408821-c95a-448f-9292-73986c790911\","},{"line_number":1393,"context_line":"            \"source_type\": \"image\","},{"line_number":1394,"context_line":"            \"volume_size\": \"25\","},{"line_number":1395,"context_line":"            \"destination_type\": \"volume\","},{"line_number":1396,"context_line":"            \"delete_on_termination\": true,"},{"line_number":1397,"context_line":"            \"tag\": \"disk1\" }]"},{"line_number":1398,"context_line":""},{"line_number":1399,"context_line":"    In microversion 2.32, ``tag`` is an optional string attribute that can"},{"line_number":1400,"context_line":"    be used to assign a tag to the block device. This tag is then exposed to"},{"line_number":1401,"context_line":"    the guest in the metadata API and the config drive and is associated to"},{"line_number":1402,"context_line":"    hardware metadata for that block device, such as bus (ex: SCSI), bus"},{"line_number":1403,"context_line":"    address (ex: 1:0:2:0), and serial."},{"line_number":1404,"context_line":""},{"line_number":1405,"context_line":"    A bug has caused the ``tag`` attribute to no longer be accepted starting"},{"line_number":1406,"context_line":"    with version 2.33. It has been restored in version 2.42."},{"line_number":1407,"context_line":"  in: body"},{"line_number":1408,"context_line":"  required: false"},{"line_number":1409,"context_line":"  type: object"},{"line_number":1410,"context_line":"block_device_uuid:"},{"line_number":1411,"context_line":"  description: |"},{"line_number":1412,"context_line":"    This is the uuid of source resource. The uuid is point to different resource"},{"line_number":1413,"context_line":"    based on the source_type. For example, if source_type is ``image`` as the above"},{"line_number":1414,"context_line":"    sample, the block device is created based on the specified image which is gotten"},{"line_number":1415,"context_line":"    from the image service."},{"line_number":1416,"context_line":"  in: body"},{"line_number":1417,"context_line":"  required: false"},{"line_number":1418,"context_line":"  type: string"},{"line_number":1419,"context_line":"block_migration:"},{"line_number":1420,"context_line":"  description: |"},{"line_number":1421,"context_line":"    Set to ``True`` to migrate local disks by using block migration. If the source"},{"line_number":1422,"context_line":"    or destination host uses shared storage and you set this value to ``True``, the"},{"line_number":1423,"context_line":"    live migration fails."},{"line_number":1424,"context_line":"  in: body"},{"line_number":1425,"context_line":"  required: true"},{"line_number":1426,"context_line":"  type: boolean"},{"line_number":1427,"context_line":"  max_version: 2.24"},{"line_number":1428,"context_line":"block_migration_2_25:"},{"line_number":1429,"context_line":"  description: |"},{"line_number":1430,"context_line":"    Migrates local disks by using block migration. Set to ``auto`` which means"},{"line_number":1431,"context_line":"    nova will detect whether source and destination hosts on shared storage. if they are"},{"line_number":1432,"context_line":"    on shared storage, the live-migration won\u0027t be block migration. Otherwise the block"},{"line_number":1433,"context_line":"    migration will be executed. Set to ``True``, means the request will fail when the"},{"line_number":1434,"context_line":"    source or destination host uses shared storage. Set to ``False`` means the request"},{"line_number":1435,"context_line":"    will fail when the source and destination hosts are not on the shared storage."},{"line_number":1436,"context_line":"  in: body"},{"line_number":1437,"context_line":"  required: true"},{"line_number":1438,"context_line":"  type: string"},{"line_number":1439,"context_line":"  min_version: 2.25"},{"line_number":1440,"context_line":"boot_index:"},{"line_number":1441,"context_line":"  description: |"},{"line_number":1442,"context_line":"    Defines the order in which a hypervisor tries devices when it attempts to boot"},{"line_number":1443,"context_line":"    the guest from storage.  Give each device a unique boot index starting from ``0``."},{"line_number":1444,"context_line":"    To disable a device from booting, set the boot index to a negative value or use"},{"line_number":1445,"context_line":"    the default boot index value, which is ``None``.  The simplest usage is, set the"},{"line_number":1446,"context_line":"    boot index of the boot device to ``0`` and use the default boot index value, ``None``,"},{"line_number":1447,"context_line":"    for any other devices. Some hypervisors might not support booting from multiple"},{"line_number":1448,"context_line":"    devices; these hypervisors consider only the device with a boot index of ``0``.  Some"},{"line_number":1449,"context_line":"    hypervisors support booting from multiple devices but only if the devices are"},{"line_number":1450,"context_line":"    of different types. For example, a disk and CD-ROM."},{"line_number":1451,"context_line":"  in: body"},{"line_number":1452,"context_line":"  required: true"},{"line_number":1453,"context_line":"  type: string"},{"line_number":1454,"context_line":"certificate:"},{"line_number":1455,"context_line":"  description: |"},{"line_number":1456,"context_line":"    The certificate object."},{"line_number":1457,"context_line":"  in: body"},{"line_number":1458,"context_line":"  required: true"},{"line_number":1459,"context_line":"  type: object"},{"line_number":1460,"context_line":"changePassword:"},{"line_number":1461,"context_line":"  description: |"},{"line_number":1462,"context_line":"    The action to change an administrative password of the server."},{"line_number":1463,"context_line":"  in: body"},{"line_number":1464,"context_line":"  required: true"},{"line_number":1465,"context_line":"  type: object"},{"line_number":1466,"context_line":"cidr:"},{"line_number":1467,"context_line":"  description: |"},{"line_number":1468,"context_line":"    The CIDR for address range."}],"source_content_type":"text/x-yaml","patch_set":14,"id":"7ffa3b31_56fa1175","line":1465,"range":{"start_line":1059,"start_character":0,"end_line":1465,"end_character":14},"updated":"2017-04-18 06:59:05.000000000","message":"these seems unrelated changes, maybe a bad rebase?","commit_id":"286eb032d33606a8fd6a8f19eb791d1de3ca0c21"}],"nova/compute/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e77effc797d8a9c01b7ec3450766056fcc10f89b","unresolved":false,"context_lines":[{"line_number":3284,"context_line":""},{"line_number":3285,"context_line":"        extra_usage_info \u003d {\u0027rescue_image_name\u0027:"},{"line_number":3286,"context_line":"                            self._get_image_name(rescue_image_meta)}"},{"line_number":3287,"context_line":"        self._notify_about_instance_usage(context, instance,"},{"line_number":3288,"context_line":"                \"rescue.start\", extra_usage_info\u003dextra_usage_info,"},{"line_number":3289,"context_line":"                network_info\u003dnetwork_info)"},{"line_number":3290,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_e68acbbe","line":3287,"updated":"2016-10-31 16:28:52.000000000","message":"As noted elsewhere, I\u0027d expect to have done a versioned rescue notification before doing unrescue (in a separate change).","commit_id":"eaca4a87a921ee23ee75c1e6805178f9ed50e0f4"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"4190b0a464aaf5f5de7931ab81741f43f69b6dfd","unresolved":false,"context_lines":[{"line_number":3284,"context_line":""},{"line_number":3285,"context_line":"        extra_usage_info \u003d {\u0027rescue_image_name\u0027:"},{"line_number":3286,"context_line":"                            self._get_image_name(rescue_image_meta)}"},{"line_number":3287,"context_line":"        self._notify_about_instance_usage(context, instance,"},{"line_number":3288,"context_line":"                \"rescue.start\", extra_usage_info\u003dextra_usage_info,"},{"line_number":3289,"context_line":"                network_info\u003dnetwork_info)"},{"line_number":3290,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_19bba028","line":3287,"in_reply_to":"ba5da102_e68acbbe","updated":"2016-11-01 16:08:38.000000000","message":"Yes you\u0027re right.  I am now prioritizing rescue notification to be pushed up first before unrescue. Thank you.","commit_id":"eaca4a87a921ee23ee75c1e6805178f9ed50e0f4"}],"nova/notifications/objects/instance.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e77effc797d8a9c01b7ec3450766056fcc10f89b","unresolved":false,"context_lines":[{"line_number":300,"context_line":"# @base.notification_sample(\u0027instance-soft_delete-end.json\u0027)"},{"line_number":301,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-start.json\u0027)"},{"line_number":302,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-end.json\u0027)"},{"line_number":303,"context_line":"@base.notification_sample(\u0027instance-unrescue-start.json\u0027)"},{"line_number":304,"context_line":"@base.notification_sample(\u0027instance-unrescue-end.json\u0027)"},{"line_number":305,"context_line":"# @base.notification_sample(\u0027instance-unshelve-start.json\u0027)"},{"line_number":306,"context_line":"# @base.notification_sample(\u0027instance-unshelve-end.json\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_e603ab40","line":303,"updated":"2016-10-31 16:28:52.000000000","message":"Hmm, I don\u0027t see a stub for the versioned notification of the rescue operation, it seems odd to have a versioned notification for unrescue but not rescue, and I\u0027d expect the versioned notification for rescue to come first.","commit_id":"eaca4a87a921ee23ee75c1e6805178f9ed50e0f4"},{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"9ecc3520a33bc6cfda2846357945ae0c5f91c680","unresolved":false,"context_lines":[{"line_number":300,"context_line":"# @base.notification_sample(\u0027instance-soft_delete-end.json\u0027)"},{"line_number":301,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-start.json\u0027)"},{"line_number":302,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-end.json\u0027)"},{"line_number":303,"context_line":"@base.notification_sample(\u0027instance-unrescue-start.json\u0027)"},{"line_number":304,"context_line":"@base.notification_sample(\u0027instance-unrescue-end.json\u0027)"},{"line_number":305,"context_line":"# @base.notification_sample(\u0027instance-unshelve-start.json\u0027)"},{"line_number":306,"context_line":"# @base.notification_sample(\u0027instance-unshelve-end.json\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba5da102_f1f4f15b","line":303,"in_reply_to":"ba5da102_e603ab40","updated":"2016-11-02 17:39:48.000000000","message":"That\u0027s because the legacy rescue notification contains some extra usage information, which can\u0027t be handled by the current InstanceActionNotification class.","commit_id":"eaca4a87a921ee23ee75c1e6805178f9ed50e0f4"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"bd9ec2828f9d6677cb06d560180c4915b2f645f0","unresolved":false,"context_lines":[{"line_number":295,"context_line":"# @base.notification_sample(\u0027instance-soft_delete-end.json\u0027)"},{"line_number":296,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-start.json\u0027)"},{"line_number":297,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-end.json\u0027)"},{"line_number":298,"context_line":"# @base.notification_sample(\u0027instance-unrescue-start.json\u0027)"},{"line_number":299,"context_line":"# @base.notification_sample(\u0027instance-unrescue-end.json\u0027)"},{"line_number":300,"context_line":"@base.notification_sample(\u0027instance-unshelve-start.json\u0027)"},{"line_number":301,"context_line":"@base.notification_sample(\u0027instance-unshelve-end.json\u0027)"},{"line_number":302,"context_line":"@base.notification_sample(\u0027instance-create-start.json\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7ffa3b31_4d910c47","line":299,"range":{"start_line":298,"start_character":0,"end_line":299,"end_character":57},"updated":"2017-04-20 10:30:13.000000000","message":"Uncomment these lines.","commit_id":"79ddc313cb34f898a49719e0bf96b3a8fb27f47e"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"ac931bbf4de19ab8795feb0fe81ef3eabbb7e3fa","unresolved":false,"context_lines":[{"line_number":295,"context_line":"# @base.notification_sample(\u0027instance-soft_delete-end.json\u0027)"},{"line_number":296,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-start.json\u0027)"},{"line_number":297,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-end.json\u0027)"},{"line_number":298,"context_line":"# @base.notification_sample(\u0027instance-unrescue-start.json\u0027)"},{"line_number":299,"context_line":"# @base.notification_sample(\u0027instance-unrescue-end.json\u0027)"},{"line_number":300,"context_line":"@base.notification_sample(\u0027instance-unshelve-start.json\u0027)"},{"line_number":301,"context_line":"@base.notification_sample(\u0027instance-unshelve-end.json\u0027)"},{"line_number":302,"context_line":"@base.notification_sample(\u0027instance-create-start.json\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7ffa3b31_bce31a34","line":299,"range":{"start_line":298,"start_character":0,"end_line":299,"end_character":57},"in_reply_to":"7ffa3b31_39439c6e","updated":"2017-04-20 15:21:00.000000000","message":"on second thoughts, I will uncomment these two lines and remove lines 263-264 in keeping with the original order of the @base.notification.samples","commit_id":"79ddc313cb34f898a49719e0bf96b3a8fb27f47e"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"c5fb2a757d8ef45fd7ac0ed451a1d7c72c4526f0","unresolved":false,"context_lines":[{"line_number":295,"context_line":"# @base.notification_sample(\u0027instance-soft_delete-end.json\u0027)"},{"line_number":296,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-start.json\u0027)"},{"line_number":297,"context_line":"# @base.notification_sample(\u0027instance-trigger_crash_dump-end.json\u0027)"},{"line_number":298,"context_line":"# @base.notification_sample(\u0027instance-unrescue-start.json\u0027)"},{"line_number":299,"context_line":"# @base.notification_sample(\u0027instance-unrescue-end.json\u0027)"},{"line_number":300,"context_line":"@base.notification_sample(\u0027instance-unshelve-start.json\u0027)"},{"line_number":301,"context_line":"@base.notification_sample(\u0027instance-unshelve-end.json\u0027)"},{"line_number":302,"context_line":"@base.notification_sample(\u0027instance-create-start.json\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"7ffa3b31_39439c6e","line":299,"range":{"start_line":298,"start_character":0,"end_line":299,"end_character":57},"in_reply_to":"7ffa3b31_4d910c47","updated":"2017-04-20 15:09:20.000000000","message":"Actually I am going to remove lines 298-299. instance-unrescue is being caled in lines 263-264.  Thanks for your review.","commit_id":"79ddc313cb34f898a49719e0bf96b3a8fb27f47e"}],"nova/tests/functional/notification_sample_tests/test_instance.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9b0a927df24da706b591e233692db07925a1550e","unresolved":false,"context_lines":[{"line_number":768,"context_line":"    def _test_rescue_server(self, server):"},{"line_number":769,"context_line":"        pass"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"    def _test_unrescue_server(self, server):"},{"line_number":772,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027rescue\u0027: {}})"},{"line_number":773,"context_line":"        self._wait_for_state_change(self.api, server,"},{"line_number":774,"context_line":"                                    expected_status\u003d\u0027RESCUE\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3f044301_271cb176","line":771,"updated":"2017-05-10 14:00:22.000000000","message":"The above _test_rescue_server call will rescue then unrescue the server then this call will rescue then unrescue the same server again. This seems like an unnecessary duplicate. \n\nI would move this on top of [1] and squash the two test step together.\n\n[1] https://review.openstack.org/#/c/385644/31/nova/tests/functional/notification_sample_tests/test_instance.py","commit_id":"8749f2bd417f2aa700fdcc700a5b1b6970612cf2"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"941e347ed4559c0bb842fcf9882f689de14084e0","unresolved":false,"context_lines":[{"line_number":768,"context_line":"    def _test_rescue_server(self, server):"},{"line_number":769,"context_line":"        pass"},{"line_number":770,"context_line":""},{"line_number":771,"context_line":"    def _test_unrescue_server(self, server):"},{"line_number":772,"context_line":"        self.api.post_server_action(server[\u0027id\u0027], {\u0027rescue\u0027: {}})"},{"line_number":773,"context_line":"        self._wait_for_state_change(self.api, server,"},{"line_number":774,"context_line":"                                    expected_status\u003d\u0027RESCUE\u0027)"}],"source_content_type":"text/x-python","patch_set":17,"id":"3f044301_87b6de3d","line":771,"in_reply_to":"3f044301_271cb176","updated":"2017-05-10 20:57:18.000000000","message":"I am putting the merged rescue and unrescue notifications under  rescue notification (https://review.openstack.org/#/c/385644/) instead of here.   WILL abandon this later after the rescue notification commit is approved.","commit_id":"8749f2bd417f2aa700fdcc700a5b1b6970612cf2"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":18602,"name":"Gábor Antal","email":"antal@inf.u-szeged.hu","username":"antal"},"change_message_id":"3c3d8b11e3f31ef37e11f2101f6dafd09de09795","unresolved":false,"context_lines":[{"line_number":2237,"context_line":"            pass"},{"line_number":2238,"context_line":"        self.stub_out(\u0027nova.virt.fake.FakeDriver.unrescue\u0027,"},{"line_number":2239,"context_line":"                       fake_unrescue)"},{"line_number":2240,"context_line":"        context \u003d self.context"},{"line_number":2241,"context_line":"        mock_context.return_value \u003d context"},{"line_number":2242,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2243,"context_line":"        self.compute.build_and_run_instance(self.context, instance, {}, {}, {},"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa6399be_9f884673","line":2240,"range":{"start_line":2240,"start_character":8,"end_line":2240,"end_character":30},"updated":"2016-10-20 16:21:21.000000000","message":"Why this is necessary?","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"c2c56980ce30e39391e301507e648f1ef4dc209e","unresolved":false,"context_lines":[{"line_number":2237,"context_line":"            pass"},{"line_number":2238,"context_line":"        self.stub_out(\u0027nova.virt.fake.FakeDriver.unrescue\u0027,"},{"line_number":2239,"context_line":"                       fake_unrescue)"},{"line_number":2240,"context_line":"        context \u003d self.context"},{"line_number":2241,"context_line":"        mock_context.return_value \u003d context"},{"line_number":2242,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2243,"context_line":"        self.compute.build_and_run_instance(self.context, instance, {}, {}, {},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_8d6320b1","line":2240,"range":{"start_line":2240,"start_character":8,"end_line":2240,"end_character":30},"in_reply_to":"ba5da102_691ec7bb","updated":"2016-10-28 08:20:30.000000000","message":"For the sake of consistency and understandability we should either use context or self.context if we talk about the same thing. This function uses self.context already in couple of places like 2243 and 2249. So I suggest to have either only self.context or only context in this function.","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"cfd3cd78dd01c2c8b7b6835a06a647b15e412451","unresolved":false,"context_lines":[{"line_number":2237,"context_line":"            pass"},{"line_number":2238,"context_line":"        self.stub_out(\u0027nova.virt.fake.FakeDriver.unrescue\u0027,"},{"line_number":2239,"context_line":"                       fake_unrescue)"},{"line_number":2240,"context_line":"        context \u003d self.context"},{"line_number":2241,"context_line":"        mock_context.return_value \u003d context"},{"line_number":2242,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2243,"context_line":"        self.compute.build_and_run_instance(self.context, instance, {}, {}, {},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_83a39dff","line":2240,"range":{"start_line":2240,"start_character":8,"end_line":2240,"end_character":30},"in_reply_to":"ba5da102_8d6320b1","updated":"2016-11-01 16:08:23.000000000","message":"thank you gibi. I\u0027ll fix this in the next patch.","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"f692712d378afd9fbf9c370c8cb1ab6c5a9a87a8","unresolved":false,"context_lines":[{"line_number":2237,"context_line":"            pass"},{"line_number":2238,"context_line":"        self.stub_out(\u0027nova.virt.fake.FakeDriver.unrescue\u0027,"},{"line_number":2239,"context_line":"                       fake_unrescue)"},{"line_number":2240,"context_line":"        context \u003d self.context"},{"line_number":2241,"context_line":"        mock_context.return_value \u003d context"},{"line_number":2242,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2243,"context_line":"        self.compute.build_and_run_instance(self.context, instance, {}, {}, {},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_691ec7bb","line":2240,"range":{"start_line":2240,"start_character":8,"end_line":2240,"end_character":30},"in_reply_to":"ba5da102_db55e0c6","updated":"2016-10-28 00:16:08.000000000","message":"Thanks for the clarification, gibi.  I think I will just keep the current format as is.","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"b67fdb80c29e452940743127bb4a7f9d4fa0ef99","unresolved":false,"context_lines":[{"line_number":2237,"context_line":"            pass"},{"line_number":2238,"context_line":"        self.stub_out(\u0027nova.virt.fake.FakeDriver.unrescue\u0027,"},{"line_number":2239,"context_line":"                       fake_unrescue)"},{"line_number":2240,"context_line":"        context \u003d self.context"},{"line_number":2241,"context_line":"        mock_context.return_value \u003d context"},{"line_number":2242,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2243,"context_line":"        self.compute.build_and_run_instance(self.context, instance, {}, {}, {},"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba5da102_db55e0c6","line":2240,"range":{"start_line":2240,"start_character":8,"end_line":2240,"end_character":30},"in_reply_to":"da6895a0_dca4210a","updated":"2016-10-27 14:12:01.000000000","message":"I think Gabor suggests that this 2240 and 2241 can be simplified to a single line like:\nmock_context.return_value \u003d self.context\n\nOf course in this case you have to use self.context in line 2256 and 2258 instead of context","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"},{"author":{"_account_id":21111,"name":"STEW TY","email":"punsoca@gmail.com","username":"stewie925"},"change_message_id":"d30a0c6ecb60ede8d4bcc1ad7fcff3903d6a02c0","unresolved":false,"context_lines":[{"line_number":2237,"context_line":"            pass"},{"line_number":2238,"context_line":"        self.stub_out(\u0027nova.virt.fake.FakeDriver.unrescue\u0027,"},{"line_number":2239,"context_line":"                       fake_unrescue)"},{"line_number":2240,"context_line":"        context \u003d self.context"},{"line_number":2241,"context_line":"        mock_context.return_value \u003d context"},{"line_number":2242,"context_line":"        instance \u003d self._create_fake_instance_obj()"},{"line_number":2243,"context_line":"        self.compute.build_and_run_instance(self.context, instance, {}, {}, {},"}],"source_content_type":"text/x-python","patch_set":4,"id":"da6895a0_dca4210a","line":2240,"range":{"start_line":2240,"start_character":8,"end_line":2240,"end_character":30},"in_reply_to":"fa6399be_9f884673","updated":"2016-10-20 18:39:58.000000000","message":"this is due to us adding the decorator in line 2232. Without this line then the unit test would have failed.","commit_id":"e967f467c810c8acbbc43580919a8bb9e93731ea"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"9b0a927df24da706b591e233692db07925a1550e","unresolved":false,"context_lines":[{"line_number":2645,"context_line":"        self._test_rescue(clean_shutdown\u003dFalse)"},{"line_number":2646,"context_line":""},{"line_number":2647,"context_line":"    @mock.patch(\u0027nova.compute.utils.notify_about_instance_action\u0027)"},{"line_number":2648,"context_line":"    def test_unrescue(self, mock_notify):"},{"line_number":2649,"context_line":"        instance \u003d fake_instance.fake_instance_obj("},{"line_number":2650,"context_line":"            self.context, vm_state\u003dvm_states.RESCUED)"},{"line_number":2651,"context_line":"        fake_nw_info \u003d network_model.NetworkInfo()"}],"source_content_type":"text/x-python","patch_set":17,"id":"3f044301_e711295f","line":2648,"updated":"2017-05-10 14:00:22.000000000","message":"You could even assert that the proper notification is emitted during the test.","commit_id":"8749f2bd417f2aa700fdcc700a5b1b6970612cf2"}]}
