|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecteu.xtreemos.system.eventmachine.stage.AbstractStage
eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage
eu.xtreemos.system.eventmachine.stage.Abstract2wayStage
eu.xtreemos.xosd.resallocator.ResAllocator
public class ResAllocator
ResAllocator is a class that provides the functionality of a reservation manager for a local node to the other services. It is mostly used by the global reservation manager, providing the information about available resources and their reservations on a per-node level. Each node has list of resources that can be managed by the reservations. Each resource holds a separate time table, which is filled with time table elements (TTElm objects).
Field Summary | |
---|---|
static java.lang.String |
CPU_ID
|
(package private) static org.apache.log4j.Logger |
logger
|
static java.lang.String |
RAM_ID
|
protected boolean |
resMonInfo
Have we obtained the Resource Monitor's information yet? |
static java.lang.String |
ROOT_ID
|
(package private) FrontendWrapper |
wrapper
In order to encapsulate the functionality of the service and of the backend, the service calls a wrapper. |
Fields inherited from class eu.xtreemos.system.eventmachine.stage.Abstract2wayStage |
---|
context, counter, curContext, sink |
Fields inherited from class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage |
---|
queue |
Fields inherited from class eu.xtreemos.system.eventmachine.stage.AbstractStage |
---|
handlerChain, handlerGroup, handlerThreads, name, running, serviceListeners |
Constructor Summary | |
---|---|
ResAllocator()
|
Method Summary | |
---|---|
java.lang.Integer |
addResourceProperty(java.lang.String resID,
IResourceProperty property)
dummy method that allows "on-hand" addition of properties. |
java.lang.Boolean |
attachToJob(java.lang.String jobID,
java.lang.String reservationID)
Associates a job with a reservation id. |
Request |
createRequestsPurgeReservationsBefore(java.util.GregorianCalendar date)
creates a request for purging all elements that finish before the given date. |
java.lang.String |
createReservation(Request info)
Creates a reservation with a given request. |
java.util.ArrayList<java.lang.String> |
createReservations(java.util.ArrayList<Request> reservations)
creates a massive a sequence of reservations. returns the ids of reservatins with a 1:1 mapping regarding their place. |
java.lang.Boolean |
detachFromJob(java.lang.String jobID,
java.lang.String reservationID)
Removes connection between a job and reservation id. |
FreeSlots |
getAllFreeSlotsFor(java.lang.String resourceID)
Returns all free slots in a timetable for some resource. |
java.lang.Object |
getAllResources()
|
java.util.ArrayList |
getDaemonsReply(java.util.ArrayList list)
|
FreeSlots |
getFreeSlotsFor(java.lang.String resourceID,
java.util.GregorianCalendar from,
java.util.GregorianCalendar to)
Returns all free slots for a given time frame for a specific resource. |
java.lang.String |
getHandledEventType()
|
java.util.ArrayList<java.lang.String> |
getInitializedResources()
returns all initialized resources |
java.util.ArrayList<java.lang.String> |
getReservationResources(java.lang.String reservationID)
Returns all resources that are used by some reservation. |
java.util.ArrayList<ReservationSlot> |
getReservationsInfo(java.util.ArrayList<java.lang.String> ids)
For a list of the IDs obtained from the createReservation(Request) , the method builds a list of
reservation slots descriptors, effectively returning the timetable
entries usable for the reservations. |
java.util.ArrayList<TTElm> |
getSelection(java.lang.String resID,
java.util.Hashtable constraints)
get all time table elements with selected attributes for a resource. |
void |
handleEvent(java.lang.Object event)
|
void |
init()
Request info about some resources from the resource monitor. |
java.lang.Integer |
initializeResource(java.lang.String id)
In order to make a new resource available and manageable (the ones that are not initialized in the startup process), one needs to register them, so that the system prepares a timetable for the reservations. |
java.lang.Integer |
invokeInit()
|
java.lang.Integer |
invokeInitFailed(java.lang.Exception ex)
|
java.lang.Integer |
invokeInitSucceeded(java.util.ArrayList<ResourceDescriptorRecord> result)
|
java.lang.Boolean |
releaseReservation(java.lang.String reservationID)
Removes all entries regarding a reservation id. |
java.lang.Boolean |
removeJob(java.lang.String jobID)
|
java.util.ArrayList<java.lang.String> |
removeReservations(java.util.ArrayList<java.lang.String> reservationIDs)
Clears the reservations associated with the selected reservation IDs from the allocation table. |
java.util.ArrayList<java.lang.String> |
reservationsForJob(java.lang.String jobID)
Remove any info regarding a job. |
java.lang.Boolean |
restoreForCheckpointBefore(java.util.ArrayList<java.lang.String> reservationIDs)
restores the state of all timetables just before the creation of the given reservation. |
java.util.ArrayList<TTElm> |
selectAvailable(java.lang.String resourceID,
java.lang.Integer amount)
selects available from all elements (see selectAvailableDT(String, Integer, GregorianCalendar, GregorianCalendar)
description!) |
java.util.ArrayList<TTElm> |
selectAvailableDT(java.lang.String resourceID,
java.lang.Integer amount,
java.util.GregorianCalendar from,
java.util.GregorianCalendar to)
selects all already reserved elements within a timetable for some resource (identified by resourceID), where the amount of available resource property CurrentAmount is smaller than MaxAmount by more than given parameter "amount". |
java.lang.Boolean |
updateReservation(java.lang.String reservationID,
Request info)
Updates a reservation with a request, but leaving the reservation id intact. |
java.lang.Boolean |
updateReservations(java.util.ArrayList<UpdateRequest> requests)
Creates a series of reservation updates. |
Methods inherited from class eu.xtreemos.system.eventmachine.stage.Abstract2wayStage |
---|
getContext, removeContext, SendException, SendException, SendException, SendReply, SendReply, SendReply, setSink |
Methods inherited from class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage |
---|
dequeue, getSource |
Methods inherited from class eu.xtreemos.system.eventmachine.stage.AbstractStage |
---|
addHandler, addHandler, addServiceListener, getName, getShortName, getThreadCount, notifyServiceInitialised, notifyServiceStarted, notifyServiceStopped, processEvent, removeHandler, removeServiceListener, setThreadCount, start, stop |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String CPU_ID
public static final java.lang.String RAM_ID
public static final java.lang.String ROOT_ID
static org.apache.log4j.Logger logger
protected boolean resMonInfo
FrontendWrapper wrapper
Constructor Detail |
---|
public ResAllocator()
Method Detail |
---|
public void init()
init
in interface eu.xtreemos.system.eventmachine.stage.IStage
init
in class eu.xtreemos.system.eventmachine.stage.AbstractStage
public java.lang.Integer invokeInit()
public java.lang.Integer invokeInitSucceeded(java.util.ArrayList<ResourceDescriptorRecord> result)
public java.lang.Integer invokeInitFailed(java.lang.Exception ex)
public java.lang.Object getAllResources()
public java.util.ArrayList getDaemonsReply(java.util.ArrayList list)
public java.lang.String getHandledEventType()
getHandledEventType
in class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage
public void handleEvent(java.lang.Object event) throws java.lang.Exception
handleEvent
in interface eu.xtreemos.system.eventmachine.queue.IEventHandler
handleEvent
in class eu.xtreemos.system.eventmachine.stage.AbstractReceivingStage
java.lang.Exception
public java.lang.String createReservation(Request info)
info
-
public java.lang.Boolean updateReservation(java.lang.String reservationID, Request info)
reservationID
- info
-
public java.lang.Boolean updateReservations(java.util.ArrayList<UpdateRequest> requests) throws AttributeConformanceException
requests
-
AttributeConformanceException
public java.lang.Boolean releaseReservation(java.lang.String reservationID)
reservationID
-
public java.util.ArrayList<java.lang.String> removeReservations(java.util.ArrayList<java.lang.String> reservationIDs) throws java.lang.Exception
java.lang.Exception
public java.util.ArrayList<java.lang.String> getReservationResources(java.lang.String reservationID)
reservationID
-
public java.lang.Boolean attachToJob(java.lang.String jobID, java.lang.String reservationID)
jobID
- reservationID
-
public java.lang.Boolean detachFromJob(java.lang.String jobID, java.lang.String reservationID)
jobID
- reservationID
-
public java.lang.Boolean removeJob(java.lang.String jobID)
public java.util.ArrayList<java.lang.String> reservationsForJob(java.lang.String jobID)
jobID
-
public FreeSlots getAllFreeSlotsFor(java.lang.String resourceID)
resourceID
-
public FreeSlots getFreeSlotsFor(java.lang.String resourceID, java.util.GregorianCalendar from, java.util.GregorianCalendar to)
resourceID
- from
- to
-
public java.util.ArrayList<TTElm> selectAvailable(java.lang.String resourceID, java.lang.Integer amount)
selectAvailableDT(String, Integer, GregorianCalendar, GregorianCalendar)
description!)
resourceID
- amount
-
public java.util.ArrayList<TTElm> selectAvailableDT(java.lang.String resourceID, java.lang.Integer amount, java.util.GregorianCalendar from, java.util.GregorianCalendar to)
resourceID
- amount
- from
- to
-
public java.lang.Integer initializeResource(java.lang.String id)
id
-
public java.util.ArrayList<java.lang.String> getInitializedResources()
public Request createRequestsPurgeReservationsBefore(java.util.GregorianCalendar date)
date
-
public java.lang.Integer addResourceProperty(java.lang.String resID, IResourceProperty property)
resID
- property
- public java.util.ArrayList<TTElm> getSelection(java.lang.String resID, java.util.Hashtable constraints)
resID
- constraints
-
public java.util.ArrayList<ReservationSlot> getReservationsInfo(java.util.ArrayList<java.lang.String> ids)
createReservation(Request)
, the method builds a list of
reservation slots descriptors, effectively returning the timetable
entries usable for the reservations.
Get required information for the ReservationManager about all
reservations slots in the time table regarding some reservation id.
reservationIDs
- A collection of the IDs obtained from
createReservation(Request)
.
public java.util.ArrayList<java.lang.String> createReservations(java.util.ArrayList<Request> reservations)
reservations
-
public java.lang.Boolean restoreForCheckpointBefore(java.util.ArrayList<java.lang.String> reservationIDs)
reservationID
-
AttributeConformanceException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |