<< Back to previous view

[QB-3226] Improvement of cloud profile API
Created: 23/Jul/18  Updated: 25/Jan/19

Status: Closed
Project: QuickBuild
Component/s: None
Affects Version/s: 8.0.11
Fix Version/s: None

Type: Improvement Priority: Major
Reporter: Robin Shen Assigned To: Robin Shen
Resolution: Won't Fix Votes: 1
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
We have developed an OpenStack plugin for QB for some time and to move to QB8 we had to update it to match the API changes.
While doing this I've seen a behavior that I think could be improved.
Right now, when we go through the LaunchNode to prevent QB for waiting for ever we return after asking the OpenStack platform to create a new machine.
This works fine unless the actual spawn/boot of the machine itself takes longer than the "idle timeout" you set in the cloudProfile.
Let's say you to only wait 15 min before a cloud computer is idle in QB and it takes 20 min to have a new machine up and ready then the terminateNode will be triggered before the machine is ready.
I was wondering if you could introduce a isNodeReady or something like that on the cloud profile ?
So one can either always return true is the node is ready as soon as launchNode has return, and others could implement something to make sure the node is up and ready.
Then the idle timeout would be only checked after the isNodeReady is set to true ?
We could also introduce a global "unresponsive" timeout, so if a machine doesn't say it's ready after this timeout we remove / terminate the node (for instance if we return from the launchNode and a node is spawn, but doesn't properly boot we could automatically kill them)

 Comments   
Comment by Robin Shen [ 25/Jan/19 01:09 PM ]
The idle termination counts from the time when QuickBuild agent of the launched node connects to QuickBuild server, which means that the launched node is ready.
Comment by Benoit Maury-Bouet [ 25/Jan/19 01:14 PM ]
Hi Robin,
You mean this behvior was changed then ?

"Right now, when we go through the LaunchNode to prevent QB for waiting for ever we return after asking the OpenStack platform to create a new machine.
This works fine unless the actual spawn/boot of the machine itself takes longer than the "idle timeout" you set in the cloudProfile.
Let's say you to only wait 15 min before a cloud computer is idle in QB and it takes 20 min to have a new machine up and ready then the terminateNode will be triggered before the machine is ready. "
Comment by Robin Shen [ 25/Jan/19 02:12 PM ]
It always works this way: QB will not count the time since return of launchNode call, instead it counts since start of build agent on launched node (QB server knows it as build agent will connect to QB server when it starts up).
Generated at Wed Apr 24 07:46:54 UTC 2024 using JIRA 189.