6.123. ImageTransfer
이 서비스는 이미지 전송을 제어하는 메커니즘을 제공합니다. 클라이언트는 이미지 전송 서비스 추가를 사용하여 데이터를 전송 하도록 이미지를 지정하여 전송을 생성해야 합니다.
이렇게 하면 전송은 이 서비스에 의해 관리됩니다.
oVirt의 Python SDK 사용:
ID 123
을 사용하여 디스크
업로드(데이터 센터의 임의의 호스트)
transfers_service = system_service.image_transfers_service() transfer = transfers_service.add( types.ImageTransfer( disk=types.Disk( id='123' ) ) )
호스트
ID 456
에 id 123
로 디스크
를 업로드 :
transfers_service = system_service.image_transfers_service() transfer = transfers_service.add( types.ImageTransfer( disk=types.Disk( id='123' ), host=types.Host( id='456' ) ) )
사용자가 업로드하지 않고 디스크를 다운로드하려는 경우 해당 사용자는 전송의 방향 속성으로 다운로드를
지정해야 합니다. 그러면 쓰기 권한 대신 이미지의 읽기 권한이 부여됩니다.
E.g:
transfers_service = system_service.image_transfers_service() transfer = transfers_service.add( types.ImageTransfer( disk=types.Disk( id='123' ), direction=types.ImageTransferDirection.DOWNLOAD ) )
전송에는 업로드 / 다운로드의 흐름을 관리하는 단계가 있습니다. 이러한 흐름을 구현하는 클라이언트는 전송 단계를 폴링/확인하고 적절하게 수행해야 합니다. 가능한 모든 단계는 ImageTransferPhase 에서 찾을 수 있습니다.
새 전송을 추가한 후 해당 단계는 초기화 됩니다. 클라이언트는 변경될 때까지 전송 단계를 폴링해야 합니다. 단계가 전송 되면 세션은 전송을 시작할 준비가 되었습니다.
예를 들어 다음과 같습니다.
transfer_service = transfers_service.image_transfer_service(transfer.id) while transfer.phase == types.ImageTransferPhase.INITIALIZING: time.sleep(3) transfer = transfer_service.get()
이 단계에서 전송 단계가 paused_system 인 경우 세션이 성공적으로 설정되지 않았습니다. 이 문제는 ovirt-imageio가 선택한 호스트에서 실행되지 않는 경우 발생할 수 있습니다.
이름 | 요약 |
---|---|
| 이미지 전송 세션을 취소합니다. |
| 이미지 전송 세션을 확장합니다. |
| 데이터 전송을 완료한 후 전송을 완료합니다. |
| 이미지 전송 엔터티를 가져옵니다. |
| 이미지 전송 세션을 일시 중지합니다. |
| 이미지 전송 세션을 다시 시작합니다. |
6.123.1. POST취소
이미지 전송 세션을 취소합니다. 이렇게 하면 전송 작업이 종료되고 부분 이미지가 제거됩니다.
6.123.2. POST확장
이미지 전송 세션을 확장합니다.
6.123.3. 완료 POST
데이터 전송을 완료한 후 전송을 완료합니다.
이렇게 하면 전송 중인 데이터가 유효하고 전송 대상인 이미지 엔티티에 적합합니다. 특히, 이미지 엔티티가 QCOW 디스크인 경우 업로드된 데이터는 실제로 QCOW 파일이며 이미지에 백업 파일이 없는지 확인합니다.
6.123.4. GET가져오기
이미지 전송 엔터티를 가져옵니다.
이름 | 유형 | 방향 | 요약 |
---|---|---|---|
| in | 따라야 할 내부 링크를 나타냅니다. | |
| Out |
6.123.4.1. 팔로우
따라야 할 내부 링크를 나타냅니다. 이러한 링크에서 참조하는 오브젝트는 현재 요청의 일부로 가져옵니다. 자세한 내용은 여기를 참조하십시오.
6.123.5. pause POST
이미지 전송 세션을 일시 중지합니다.
6.123.6. POST다시 시작
이미지 전송 세션을 다시 시작합니다. 클라이언트는 재시작하는 것과 다를 때까지 전송 단계를 폴링해야 합니다
. 예를 들어 다음과 같습니다.
transfer_service = transfers_service.image_transfer_service(transfer.id) transfer_service.resume() transfer = transfer_service.get() while transfer.phase == types.ImageTransferPhase.RESUMING: time.sleep(1) transfer = transfer_service.get()