History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-3226
Type: Improvement Improvement
Status: Closed Closed
Resolution: Won't Fix
Priority: Major Major
Assignee: Robin Shen
Reporter: Robin Shen
Votes: 1
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Improvement of cloud profile API

Created: 23/Jul/18 11:50 PM   Updated: 25/Jan/19 02:12 PM
Component/s: None
Affects Version/s: 8.0.11
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
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)

 All   Comments   Work Log   Change History      Sort Order:
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.

Change by Robin Shen [25/Jan/19 01:09 PM]
Field Original Value New Value
Status Open [ 1 ] Closed [ 6 ]
Resolution Won't Fix [ 2 ]

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. "

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).