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 |