v2k/n2k VM Import Cloud 통합#831
Merged
dhslove merged 4 commits intoMay 25, 2026
Merged
Conversation
21ae7bf
into
ablecloud-team:ablestack-europa
6 of 9 checks passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
개요
이 PR은
ablestack-europa브랜치의 기존 가상머신 Import/Export 화면과 API를 기준으로 VMware v2k 및 Nutanix n2k 이관을 Cloud 관점에서 통합합니다.주요 목표는 다음과 같습니다.
주요 변경 사항
API 및 Backend
listImportVMTaskslistImportVMTaskEventsexecuteImportVMTaskActionpreflightAblestackVmImportimportUnmanagedInstanceForAblestackV2KimportUnmanagedInstanceForAblestackN2KAblestackN2KConvertInstanceCommand,AblestackN2KStatusCommand,AblestackN2KCleanupCommandAblestackV2KConvertInstanceCommand,AblestackV2KStatusAnswer,AblestackV2KCleanupCommandUI
ManageInstances화면에서 VMware/Nutanix/ABLESTACK 선택 흐름 정리Nutanix에서 ABLESTACK 클러스터로 인스턴스 가져오기로 정리작업 선택드롭다운으로 통일문서 및 설계
DB 변경 사항
이 PR은 DB schema 변경을 포함합니다. DB schema가 제대로 반영되지 않으면 API/Management Server 기동 또는 Import VM Task API 호출 중 503이 발생할 수 있으므로, 배포 시 DB upgrade SQL 적용 여부를 반드시 확인해야 합니다.
변경 파일:
engine/schema/src/main/resources/META-INF/db/schema-42100to42200.sqlengine/schema/src/main/resources/META-INF/db/schema-Europa-After.sql신규 또는 확장 테이블:
cloud.import_vm_task신규 설치 경로에서는
schema-42100to42200.sql에서 테이블을 생성하고, Europa 업그레이드 경로에서는schema-Europa-After.sql에서 기존 테이블에 필요한 컬럼을 idempotent 방식으로 추가합니다.주요 컬럼:
id,uuidzone_id,account_id,user_idvm_iddisplay_name,source_vm_name,target_vm_namevcenter,datacenter,vcenter_id,vcenter_username,vcenter_passwordconvert_host_id,import_host_idcluster_id,service_offering_id,service_offering_detailsv2k_step,stepmigration_toollegacy,ablestack-v2k,ablestack-n2k등 마이그레이션 도구source_providerVMware,Nutanix등 원본 제공자target_providerablestack-cloud등 대상 제공자target_profile,target_storage_pool_id,v2k_target_storage_pool_idtarget_format,target_storage_typesource_endpoint,source_refsource_cluster_name,source_host_namesource_inventory_jsonsource_context_jsonsource_credential_idtarget_context_jsonnic_network_mapworkdir,split_mode,cutover_policycurrent_phase,migration_state,migration_stepstatus_jsonerror_codestate,description,durationcreated,updated,removed인덱스/제약:
fk_import_vm_task__zone_idfk_import_vm_task__account_idfk_import_vm_task__user_idfk_import_vm_task__vm_idfk_import_vm_task__convert_host_idfk_import_vm_task__import_host_idi_import_vm_task__zone_idi_import_vm_task__zone_tool_state_createdi_import_vm_task__zone_source_state_createdi_import_vm_task__target_phase_statei_import_vm_task__source_credential_id문자셋:
import_vm_task는utf8mb4로 변환합니다.신규 테이블:
cloud.import_vm_task_eventImport VM 작업의 상태 변경, credential 저장, Phase 진행, 오류 등 이벤트 이력을 저장합니다.
id,uuidtask_idimport_vm_task.id참조event_typephase,state,stepmessagepayload_jsoncreated인덱스/제약:
fk_import_vm_task_event__task_idi_import_vm_task_event__task_id_created문자셋:
utf8mb4신규 테이블:
cloud.import_vm_task_credentialVMware/Nutanix source credential을 암호화하여 저장합니다. Phase2, resume, retry 등의 후속 동작에서 재사용하기 위한 테이블입니다.
id,uuidtask_idimport_vm_task.id참조providercredential_typeusername_hintencrypted_payloadencryption_versionkey_idcreated,updated,removed인덱스/제약:
fk_import_vm_task_credential__task_idi_import_vm_task_credential__task_id_createdi_import_vm_task_credential__task_id_removed문자셋:
utf8mb4배포 및 운영 주의사항
schema-Europa-After.sql의 idempotent column/table 추가가 누락되면 Import VM Task API에서 503이 발생할 수 있습니다.import_vm_task_credential.encrypted_payload에는 암호화된 credential만 저장되어야 하며, API 응답/이벤트 payload에는 secret이 노출되지 않아야 합니다.mold-agent.service로 관리됩니다.검증
mvn -pl plugins/hypervisors/kvm -am -Dtest=LibvirtAblestackN2KConvertInstanceCommandWrapperTest -DfailIfNoTests=false test -Dskip.ui.build=true -Dskip.license.check=true -Dsimulator참고
ablecloud-team/ablestack-cloud:ablestack-europa