in gce_rescue/tasks/metadata.py [0:0]
def restore_metadata_items(vm, remove_rescue_mode: bool = False) -> Dict:
"""Restore original metadata.items after the instance is running again."""
vm.refresh_fingerprint()
if not remove_rescue_mode:
vm.backup_items.append({ 'key': 'rescue-mode', 'value': vm.ts })
else:
vm.backup_items.remove({ 'key': 'rescue-mode', 'value': vm.ts })
metadata_body = {
'fingerprint': vm.data['metadata']['fingerprint'],
'items': vm.backup_items
}
_logger.info('Restoring original metadata...')
# gce-rescue/issues/21 - continue after wait period timed out
if not remove_rescue_mode:
wait_for_os_boot(vm)
operation = vm.compute.instances().setMetadata(
**vm.project_data,
instance = vm.name,
body = metadata_body).execute()
result = wait_for_operation(vm, oper=operation)
return result