org.rhq.enterprise.server.measurement
Interface AvailabilityManagerLocal

All Known Implementing Classes:
AvailabilityManagerBean

public interface AvailabilityManagerLocal

Manager that is used to determine a resource's availability over a span of time.

Author:
Heiko W. Rupp, John Mazzitelli

Method Summary
 List<AvailabilityPoint> findAvailabilitiesForAutoGroup(org.rhq.core.domain.auth.Subject subject, int parentResourceId, int resourceTypeId, long begin, long end, int points, boolean withCurrentAvailability)
          Get the individual availability data points for the given auto group.
 List<AvailabilityPoint> findAvailabilitiesForResource(org.rhq.core.domain.auth.Subject subject, int resourceId, long begin, long end, int points, boolean withCurrentAvailability)
          Get the individual availability data points for the given resource.
 List<AvailabilityPoint> findAvailabilitiesForResourceGroup(org.rhq.core.domain.auth.Subject subject, int groupId, long begin, long end, int points, boolean withCurrentAvailability)
          Get the individual availability data points for the given resource group.
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.measurement.Availability> findAvailabilityForResource(org.rhq.core.domain.auth.Subject subject, int resourceId, org.rhq.core.domain.util.PageControl pc)
          #see {@link AvailabilityManagerRemote#getAvailabilityForResource(Subject, int, PageControl)
 List<org.rhq.core.domain.measurement.Availability> findAvailabilityWithinInterval(int resourceId, Date startDate, Date endDate)
           
 org.rhq.core.domain.measurement.Availability getCurrentAvailabilityForResource(org.rhq.core.domain.auth.Subject subject, int resourceId)
          #see {@link AvailabilityManagerRemote#getCurrentAvailabilityForResource(Subject, int)
 org.rhq.core.domain.measurement.AvailabilityType getCurrentAvailabilityTypeForResource(org.rhq.core.domain.auth.Subject subject, int resourceId)
          Indicates if the given resource is currently up (i.e.
 boolean mergeAvailabilityReport(org.rhq.core.domain.discovery.AvailabilityReport report)
          Merge an AvailabilityReport that has been received from an agent.
 int purgeAvailabilities(long oldest)
          Purges all availabilities that are old.
 void setAllAgentResourceAvailabilities(int agentId, org.rhq.core.domain.measurement.AvailabilityType availabilityType)
          Sets all availabilities for all resources managed by the given agent to the given availability type (which may be null to indicate unknown).
 void updateLastAvailabilityReport(int agentId)
          Executing this method will update the given agent's lastAvailabilityReport time in a new transaction
 

Method Detail

purgeAvailabilities

int purgeAvailabilities(long oldest)
Purges all availabilities that are old. The oldest time is the epoch milliseconds of the oldest availability that is to be retained. The end time is the time that is examined. No availability row with a null end time will ever be purged.

Parameters:
oldest - oldest time (in epoch milliseconds) to retain; older records get purged
Returns:
the number of availabilities that were purged

getCurrentAvailabilityTypeForResource

org.rhq.core.domain.measurement.AvailabilityType getCurrentAvailabilityTypeForResource(org.rhq.core.domain.auth.Subject subject,
                                                                                       int resourceId)
Indicates if the given resource is currently up (i.e. available) or down.

Parameters:
subject -
resourceId -
Returns:
the current status of the resource

findAvailabilitiesForResource

List<AvailabilityPoint> findAvailabilitiesForResource(org.rhq.core.domain.auth.Subject subject,
                                                      int resourceId,
                                                      long begin,
                                                      long end,
                                                      int points,
                                                      boolean withCurrentAvailability)
Get the individual availability data points for the given resource.

Parameters:
subject -
resourceId - PK of the resource wanted
begin - start time for data we are interested in
end - end time for data we are interested in
points - number of data points to return
withCurrentAvailability - if true, the last data point in the range will match the resource's current availability no matter what
Returns:
the availabilities over the given time span in a list

findAvailabilitiesForResourceGroup

List<AvailabilityPoint> findAvailabilitiesForResourceGroup(org.rhq.core.domain.auth.Subject subject,
                                                           int groupId,
                                                           long begin,
                                                           long end,
                                                           int points,
                                                           boolean withCurrentAvailability)
Get the individual availability data points for the given resource group.

Parameters:
subject -
groupId - PK of the resource group wanted
begin - start time for data we are interested in
end - end time for data we are interested in
points - number of data points to return
withCurrentAvailability - if true, the last data point in the range will match the resource group's current availability no matter what
Returns:
the availabilities over the given time span in a list

findAvailabilitiesForAutoGroup

List<AvailabilityPoint> findAvailabilitiesForAutoGroup(org.rhq.core.domain.auth.Subject subject,
                                                       int parentResourceId,
                                                       int resourceTypeId,
                                                       long begin,
                                                       long end,
                                                       int points,
                                                       boolean withCurrentAvailability)
Get the individual availability data points for the given auto group.

Parameters:
subject -
parentResourceId - PK of the parent resource of the auto group wanted
resourceTypeId - PK of the resource type of the auto group wanted
begin - start time for data we are interested in
end - end time for data we are interested in
points - number of data points to return
withCurrentAvailability - if true, the last data point in the range will match the autogroup's current availability no matter what
Returns:
the availabilities over the given time span in a list

mergeAvailabilityReport

boolean mergeAvailabilityReport(org.rhq.core.domain.discovery.AvailabilityReport report)
Merge an AvailabilityReport that has been received from an agent. A report will only contain those availabilities that have changed since the agent's last sent report. Note that if an agent has been restarted, it will always send a full report as its first. An agent is obliged to sent at least one availability record in the report in order for the server to determine which agent is sending the report (since a record has a Resource in it and from any Resource we can dsetermine the Agent).

Parameters:
report - the report containing 1 or more availabilities for 1 or more resources.
Returns:
If true, this indicates everything seems OK - the server merged everything successfully and the server and agent seem to be in sync with each. If false, the server thinks something isn't right and it may be out of sync with the agent. When false is returned, the caller should send in a full availability report the next time in order to ensure the server and agent are in sync. true should always be returned if the given availability report is already a full report.

updateLastAvailabilityReport

void updateLastAvailabilityReport(int agentId)
Executing this method will update the given agent's lastAvailabilityReport time in a new transaction

Parameters:
agentId - the id of the agent

setAllAgentResourceAvailabilities

void setAllAgentResourceAvailabilities(int agentId,
                                       org.rhq.core.domain.measurement.AvailabilityType availabilityType)
Sets all availabilities for all resources managed by the given agent to the given availability type (which may be null to indicate unknown).

Parameters:
agentId - all resources managed by this agent will have their availabilities changed
availabilityType - the type that all of the agent's resources will have

findAvailabilityWithinInterval

List<org.rhq.core.domain.measurement.Availability> findAvailabilityWithinInterval(int resourceId,
                                                                                  Date startDate,
                                                                                  Date endDate)

findAvailabilityForResource

org.rhq.core.domain.util.PageList<org.rhq.core.domain.measurement.Availability> findAvailabilityForResource(org.rhq.core.domain.auth.Subject subject,
                                                                                                            int resourceId,
                                                                                                            org.rhq.core.domain.util.PageControl pc)
#see {@link AvailabilityManagerRemote#getAvailabilityForResource(Subject, int, PageControl)


getCurrentAvailabilityForResource

org.rhq.core.domain.measurement.Availability getCurrentAvailabilityForResource(org.rhq.core.domain.auth.Subject subject,
                                                                               int resourceId)
#see {@link AvailabilityManagerRemote#getCurrentAvailabilityForResource(Subject, int)

Throws:
FetchException - TODO
See Also:
getCurrentAvailabilityTypeForResource(Subject, int), ResourceAvailabilityManagerLocal


Copyright © 2008-2012 Red Hat, Inc.. All Rights Reserved.