StartVM and TerminateVM Main Flow of Cloud Drivers - cloud-barista/cb-spider GitHub Wiki
StartVM()/TerminateVM() retry timeout 조정 이력
[Init]
- StartVM: 30s
- TerminateVM: 10s
- issues:
- Alibaba TerminateVM 시 오류 발생
- OpenStack StartVM 시 오류 발생
[2021.05.21.]
- StartVM: 120s
- TerminateVM: 60s
[StartVM main flow]
- Focusing on CallLog and Waiting Loop
- Waiting Loop: VM 정보 제공을 위해서 VM 정보가 생성될 때까지(=running status) 기다리는 작업
- StartVM 규격 참고: StartVM(vmReqInfo VMReqInfo) (VMInfo, error)
- Flow에서 함수 이름은 실제 이름과 다를 수 있음
- SetUser('cb-user'): cloud-init 데이터 설정
- CreateUser('cb-user'): runSSH into VM
Driver Names | StartVM Flow | Etc |
---|---|---|
ALIBABA | GetKey() SetUser('cb-user') StartTime RunInstances() EndTime Loop-120sec(getStatus('Running'): sleep 1s) return GetVMInfo() | |
AWS | GetKey() SetUser('cb-user') StartTime RunInstances() EndTime WaitUntilInstanceRunning() return GetVMInfo() | |
AZURE | CheckVM() CreatePublicIP() CreateVNic() GetPublicKey() StartTime CreateOrUpdate() EndTime WaitForCompletionRef() return GetVMInfo() | |
CLOUDIT | StartTime Rest.Post(ACE, servers) EndTime Loop-120sec(get(PrivateIP && Running): sleep 1s) Loop-120sec(echo: sleep 1) CreateUser('cb-user') Restart(sshd) return GetVMInfo() | |
GCP | GetKey() StartTime Instances.Insert.Do() EndTime Loop-120sec(getStatus('Running'): sleep 1s) return GetVMInfo() | |
OPENSTACK | CheckVM() setUser('cb-user') StartTime servers.Create() EndTime Loop-120sec(getStatus('active'): sleep 1s) AssociatePublicIP() return GetVMInfo() |
[TerminateVM main flow]
- Focusing on CallLog and Waiting Loop
- Waiting Loop: VM이 원하는 상태로 될 때까지 기다리는 작업
- TerminateVM 규격 참고: TerminateVM(vmIID IID) (VMStatus, error)
- Flow에서 함수 이름은 실제 이름과 다를 수 있음
Driver Names | TerminateVM Flow | Etc |
---|---|---|
ALIBABA | SuspendVM() Loop-60sec(getStatus('Suspended'): sleep 1s) Starttime DeleteInstance() EndTime return 'Terminating' | |
AWS | StartTime TerminateInstances() EndTime return 'Terminating' | |
AZURE | GetVM() StartTime Delete() EndTime WaitForCompletionRef() DeleteVNic() DeletePublicIP() DeleteVMDisk() return irs.NotExist | |
CLOUDIT | GetVM() DisassociatePublicIP() sleep 5s StartTime Terminate() EndTime return irs.Terminating | |
GCP | StartTime Delete() EndTime return 'Terminating' | |
OPENSTACK | GetVM() floatingip.Delete() StartTime Delete() EndTime return irs.Terminating |