- vcld daemon is running
- polls database every 12 seconds to check if the management node has any reservations which need to be processed
- vcld finds a reservation that needs to be processed
- vcld gathers all of the information for the reservation from the database by calling utils.pm::get_request_info() and then a DataStructure object is created
- vcld creates a new state object
- a new state object is created based on the request.stateid column for the reservation
- the main state modules are new.pm, image.pm, reserved.pm, reclaim.pm
- the constructor for all of the state modules is Module.pm::new()
- this constructor automatically calls an initialize() subroutine if initialize() has been implemented for the class being constructed
- State.pm contains an initialize() subroutine, and all of the state modules (new.pm, image.pm...) inherit from State.pm so the initialize() subroutine in State.pm is automatically called when vcld creates the state object
- State.pm::initialize() creates an OS object based on the OS of the image assigned to the reservation
- State.pm::initialize() creates a provisioning engin object based on the provisioning engine of the computer assigned to the reservation
- vcld forks a new process for the newly created state object
- the new process calls the state module's process() subroutine
- process() performs all of the tasks needed to process the reservation, returns true if successful, false if failed
{"serverDuration": 91, "requestCorrelationId": "8b2a48efd9363293"}