org.rhq.enterprise.server.resource
Interface ResourceManagerLocal

All Known Implementing Classes:
ResourceManagerBean

public interface ResourceManagerLocal

A manager that provides methods for creating, reading, updating, and deleting Resources.

Author:
Greg Hinkle, Ian Springer

Method Summary
 void addResourceError(org.rhq.core.domain.resource.ResourceError resourceError)
          Indicates an error occurred on a resource.
 boolean bulkNamedQueryDeleteInNewTransaction(org.rhq.core.domain.auth.Subject subject, String namedQuery, List<Integer> resourceIds)
           
 boolean bulkNativeQueryDeleteInNewTransaction(org.rhq.core.domain.auth.Subject subject, String nativeQueryString, List<Integer> resourceIds)
           
 void clearResourceConfigError(int resourceId)
          Clears errors of type ResourceErrorType.INVALID_PLUGIN_CONFIGURATION
 int clearResourceConfigErrorByType(org.rhq.core.domain.auth.Subject subject, int resourceId, org.rhq.core.domain.resource.ResourceErrorType resourceErrorType)
          Clears errors of the given type.
 void createResource(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource resource, int parentId)
          Create a new Resource.
 void deleteResourceError(org.rhq.core.domain.auth.Subject user, int resourceErrorId)
          Deletes the given resource error, effectively removing it from its resource's list of errors.
<T> List<org.rhq.core.domain.resource.composite.DisambiguationReport<T>>
disambiguate(List<T> results, org.rhq.core.util.IntExtractor<? super T> resourceIdExtractor, DisambiguationUpdateStrategy updateStrategy)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findAvailableResourcesForDashboardPortlet(org.rhq.core.domain.auth.Subject user, Integer typeId, org.rhq.core.domain.resource.ResourceCategory category, int[] excludeIds, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findAvailableResourcesForRepo(org.rhq.core.domain.auth.Subject user, int repoId, String search, org.rhq.core.domain.resource.ResourceCategory category, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findAvailableResourcesForResourceGroup(org.rhq.core.domain.auth.Subject user, int groupId, org.rhq.core.domain.resource.ResourceType type, org.rhq.core.domain.resource.ResourceCategory category, String nameFilter, int[] excludeIds, org.rhq.core.domain.util.PageControl pageControl)
           
 List<org.rhq.core.domain.resource.group.composite.AutoGroupComposite> findChildrenAutoGroups(org.rhq.core.domain.auth.Subject user, int parentResourceId)
           
 List<org.rhq.core.domain.resource.group.composite.AutoGroupComposite> findChildrenAutoGroups(org.rhq.core.domain.auth.Subject user, int parentResourceId, int[] resourceTypeIds)
           
 List<Integer> findChildrenResourceIds(int parentResourceId, org.rhq.core.domain.resource.InventoryStatus status)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findChildResources(org.rhq.core.domain.auth.Subject subject, int resourceId, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findChildResourcesByCategoryAndInventoryStatus(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource parent, org.rhq.core.domain.resource.ResourceCategory category, org.rhq.core.domain.resource.InventoryStatus status, org.rhq.core.domain.util.PageControl pageControl)
           
 List<Integer> findExplicitResourceIdsByResourceGroup(int resourceGroupId)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findExplicitResourcesByResourceGroup(org.rhq.core.domain.auth.Subject subject, org.rhq.core.domain.resource.group.ResourceGroup group, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceWithAvailability> findExplicitResourceWithAvailabilityByResourceGroup(org.rhq.core.domain.auth.Subject subject, org.rhq.core.domain.resource.group.ResourceGroup group, org.rhq.core.domain.util.PageControl pageControl)
           
 List<org.rhq.core.domain.resource.composite.ResourceIdFlyWeight> findFlyWeights(int[] resourceIds)
           
 List<Integer> findIdsByTypeIds(List<Integer> resourceTypeIds)
           
 List<Integer> findImplicitResourceIdsByResourceGroup(int resourceGroupId)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findImplicitResourcesByResourceGroup(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.group.ResourceGroup group, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceWithAvailability> findImplicitResourceWithAvailabilityByResourceGroup(org.rhq.core.domain.auth.Subject subject, org.rhq.core.domain.resource.group.ResourceGroup group, org.rhq.core.domain.util.PageControl pageControl)
           
 List<org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite> findRecentlyAddedPlatforms(org.rhq.core.domain.auth.Subject user, long ctime, int maxItems)
          Gets a list of platforms that were recently added (committed) to inventory.
 List<org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite> findRecentlyAddedServers(org.rhq.core.domain.auth.Subject user, long ctime, int platformId)
          Gets a list of servers that are children of the given platform that were recently added (committed) to inventory.
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourceByIds(org.rhq.core.domain.auth.Subject subject, int[] resourceIds, boolean attachParentResource, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourceByParentAndInventoryStatus(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource parent, org.rhq.core.domain.resource.InventoryStatus status, org.rhq.core.domain.util.PageControl pageControl)
           
 List<org.rhq.core.domain.resource.composite.ResourceInstallCount> findResourceComplianceCounts(org.rhq.core.domain.auth.Subject subject)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceComposite> findResourceCompositeForParentAndTypeAndCategory(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.ResourceCategory category, int resourceTypeId, org.rhq.core.domain.resource.Resource parentResource, org.rhq.core.domain.util.PageControl pageControl)
          Get a Resource Composite for Resources limited by the given parameters
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceComposite> findResourceComposites(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.ResourceCategory category, String typeName, String pluginName, org.rhq.core.domain.resource.Resource parentResource, String searchString, boolean attachParentResource, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceComposite> findResourceCompositesByCriteria(org.rhq.core.domain.auth.Subject subject, org.rhq.core.domain.criteria.ResourceCriteria criteria)
           
 List<org.rhq.core.domain.resource.ResourceError> findResourceErrors(org.rhq.core.domain.auth.Subject user, int resourceId)
          Returns all the errors that have occurred for the given resource.
 List<org.rhq.core.domain.resource.ResourceError> findResourceErrors(org.rhq.core.domain.auth.Subject user, int resourceId, org.rhq.core.domain.resource.ResourceErrorType errorType)
          Returns the errors of the given type that have occurred for the given resource.
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceHealthComposite> findResourceHealth(org.rhq.core.domain.auth.Subject user, int[] resourceIds, org.rhq.core.domain.util.PageControl pc)
          Gets the "health" of a set of resources, where the health composite gives you the resource's availability status and the number of alerts it has emitted.
 List<org.rhq.core.domain.resource.composite.ResourceInstallCount> findResourceInstallCounts(org.rhq.core.domain.auth.Subject subject, boolean groupByVersions)
           
 List<org.rhq.core.domain.resource.Resource> findResourceLineage(org.rhq.core.domain.auth.Subject subject, int resourceId)
          #see {@link ResourceManagerRemote#findResourceLineage(Subject, int)
 List<org.rhq.core.domain.resource.group.composite.AutoGroupComposite> findResourcesAutoGroups(org.rhq.core.domain.auth.Subject subject, int[] resourceIds)
           
 List<org.rhq.core.domain.resource.flyweight.ResourceFlyweight> findResourcesByAgent(org.rhq.core.domain.auth.Subject user, int agentId, org.rhq.core.domain.util.PageControl pageControl)
          Load the entire list of resources under an agent.
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourcesByCategory(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.ResourceCategory category, org.rhq.core.domain.resource.InventoryStatus inventoryStatus, org.rhq.core.domain.util.PageControl pageControl)
           
 List<org.rhq.core.domain.resource.flyweight.ResourceFlyweight> findResourcesByCompatibleGroup(org.rhq.core.domain.auth.Subject user, int compatibleGroupId, org.rhq.core.domain.util.PageControl pageControl)
           
 org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourcesByCriteria(org.rhq.core.domain.auth.Subject subject, org.rhq.core.domain.criteria.ResourceCriteria criteria)
           
 List<org.rhq.core.domain.resource.composite.ResourceWithAvailability> findResourcesByParentAndType(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource parent, org.rhq.core.domain.resource.ResourceType type)
           
 List<Integer> findResourcesMarkedForAsyncDeletion(org.rhq.core.domain.auth.Subject user)
           
 org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary getAvailabilitySummary(org.rhq.core.domain.auth.Subject user, int resourceId)
           
 org.rhq.core.domain.measurement.ResourceAvailability getLiveResourceAvailability(org.rhq.core.domain.auth.Subject subject, int resourceId)
          #see {@link ResourceManagerRemote#getLiveResourceAvailability(Subject, int)
 org.rhq.core.domain.resource.Resource getParentResource(int resourceId)
          Returns the parent of the Resource with the specified id, or null if the Resource does not have a parent (i.e.
 org.rhq.core.domain.resource.Resource getParentResource(org.rhq.core.domain.auth.Subject subject, int resourceId)
           
 org.rhq.core.domain.resource.Resource getPlaformOfResource(org.rhq.core.domain.auth.Subject subject, int resourceId)
           
 org.rhq.core.domain.resource.Resource getPlatform(org.rhq.core.domain.resource.Agent agent)
          Returns the platform Resource associated with the specified Agent.
 org.rhq.core.domain.resource.Resource getResource(org.rhq.core.domain.auth.Subject subject, int resourceId)
          #see {@link ResourceManagerRemote#getResource(Subject, int)
 org.rhq.core.domain.resource.group.composite.AutoGroupComposite getResourceAutoGroup(org.rhq.core.domain.auth.Subject user, int resourceId)
           
 org.rhq.core.domain.resource.Resource getResourceById(org.rhq.core.domain.auth.Subject user, int resourceId)
           
 org.rhq.core.domain.resource.Resource getResourceByParentAndKey(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource parent, String key, String plugin, String typeName)
           
 Integer getResourceCount(List<Integer> resourceTypeIds)
           
 int getResourceCountByCategory(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.ResourceCategory category, org.rhq.core.domain.resource.InventoryStatus status)
           
 int getResourceCountByTypeAndIds(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.ResourceType type, int[] resourceIds)
           
 int[] getResourceCountSummary(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.InventoryStatus status)
          Get a summary of counts, by category, of the user's viewable resources having the provided inventory status.
 List<Integer> getResourceDescendantsByTypeAndName(org.rhq.core.domain.auth.Subject user, int resourceId, Integer resourceTypeId, String name)
           
 List<Integer> getResourceIdLineage(int resourceId)
           
 List<org.rhq.core.domain.resource.Resource> getResourceLineage(int resourceId)
          Returns the lineage of the Resource with the specified id.
 List<org.rhq.core.domain.resource.composite.ResourceLineageComposite> getResourceLineage(org.rhq.core.domain.auth.Subject subject, int resourceId)
          Returns the direct lineage of a resource up to the top most resource in the hierarchy.
 List<org.rhq.core.domain.resource.composite.ResourceLineageComposite> getResourceLineageAndSiblings(org.rhq.core.domain.auth.Subject subject, int resourceId)
          Returns the lineage of a resource plus all the siblings of the resources in the lineage.
 Map<Integer,String> getResourcesAncestry(org.rhq.core.domain.auth.Subject subject, Integer[] resourceIds, org.rhq.core.domain.resource.ResourceAncestryFormat format)
           
 Map<Integer,org.rhq.core.domain.resource.InventoryStatus> getResourceStatuses(int rootResourceId, boolean descendants)
           
 org.rhq.core.domain.resource.Resource getResourceTree(int rootResourceId, boolean recursive)
           
 org.rhq.core.domain.resource.Resource getRootResourceForResource(int resourceId)
          Looks up the root of a subtree in the inventory.
 org.rhq.core.domain.resource.Resource setResourceStatus(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource resource, org.rhq.core.domain.resource.InventoryStatus newStatus, boolean setDescendants)
          Changes the inventory status of the specified resource and optionally its descendants to the provided inventory status if the user is authorized to do so.
 List<Integer> uninventoryResource(org.rhq.core.domain.auth.Subject user, int resourceId)
          This will delete the resource with the given ID along with all of its child resources.
 void uninventoryResourceAsyncWork(org.rhq.core.domain.auth.Subject user, int resourceId)
          Deletes the given resource (but not its children) in a new transaction.
 List<Integer> uninventoryResources(org.rhq.core.domain.auth.Subject subject, int[] resourceIds)
          This will uninventory the resources with the given ID along with all of their child resources.
 void updateAncestry(org.rhq.core.domain.auth.Subject subject, int resourceId)
          Update the ancestry for the specified resource and its child lineage.
 org.rhq.core.domain.resource.Resource updateResource(org.rhq.core.domain.auth.Subject user, org.rhq.core.domain.resource.Resource resource)
          Update a Resource's editable properties (name, description, and location).
 

Method Detail

createResource

void createResource(org.rhq.core.domain.auth.Subject user,
                    org.rhq.core.domain.resource.Resource resource,
                    int parentId)
                    throws ResourceAlreadyExistsException
Create a new Resource.

Parameters:
user - the user creating the resource
resource - the resource to be created
parentId - set to -1 to imply that this is a root resource, which has no parent
Throws:
ResourceAlreadyExistsException - if an equivalent resource already exists

updateResource

org.rhq.core.domain.resource.Resource updateResource(org.rhq.core.domain.auth.Subject user,
                                                     org.rhq.core.domain.resource.Resource resource)
Update a Resource's editable properties (name, description, and location).

Parameters:
user - the user updating the Resource
resource - the Resource to be updated
Returns:
the updated (attached) resource

uninventoryResource

List<Integer> uninventoryResource(org.rhq.core.domain.auth.Subject user,
                                  int resourceId)
This will delete the resource with the given ID along with all of its child resources. This method will not create its own transaction; each individual child resource as well as the top level resource identified with the given ID will be deleted in its own transaction.

Parameters:
user - the user deleting the resource
resourceId - the ID of the resource to be deleted
Returns:
the list of all resources that were deleted - in effect, this will contain resourceId and its children's IDs

uninventoryResourceAsyncWork

void uninventoryResourceAsyncWork(org.rhq.core.domain.auth.Subject user,
                                  int resourceId)
Deletes the given resource (but not its children) in a new transaction. This is normally used only within this manager bean itself. Clients normally should call uninventoryResource(Subject, int). If you call this method, make sure you have a specific reason for it; check to see if calling uninventoryResource(Subject, int) would not be more appropriate.

Parameters:
user - the user deleting the resource
resourceId - the ID of the resource to be deleted

bulkNativeQueryDeleteInNewTransaction

boolean bulkNativeQueryDeleteInNewTransaction(org.rhq.core.domain.auth.Subject subject,
                                              String nativeQueryString,
                                              List<Integer> resourceIds)

bulkNamedQueryDeleteInNewTransaction

boolean bulkNamedQueryDeleteInNewTransaction(org.rhq.core.domain.auth.Subject subject,
                                             String namedQuery,
                                             List<Integer> resourceIds)

getResourceDescendantsByTypeAndName

List<Integer> getResourceDescendantsByTypeAndName(org.rhq.core.domain.auth.Subject user,
                                                  int resourceId,
                                                  Integer resourceTypeId,
                                                  String name)

setResourceStatus

org.rhq.core.domain.resource.Resource setResourceStatus(org.rhq.core.domain.auth.Subject user,
                                                        org.rhq.core.domain.resource.Resource resource,
                                                        org.rhq.core.domain.resource.InventoryStatus newStatus,
                                                        boolean setDescendants)
Changes the inventory status of the specified resource and optionally its descendants to the provided inventory status if the user is authorized to do so.

Parameters:
user - user doing the resource status changing
resource - the Resource to change
newStatus - the new status to change it to
setDescendants - if true, all descendent resources will also have their status set
Returns:
an updated copy of the resource

getResourceById

@NotNull
org.rhq.core.domain.resource.Resource getResourceById(org.rhq.core.domain.auth.Subject user,
                                                              int resourceId)

getParentResource

@Nullable
org.rhq.core.domain.resource.Resource getParentResource(int resourceId)
Returns the parent of the Resource with the specified id, or null if the Resource does not have a parent (i.e. is a platform).

Parameters:
resourceId - the id of a Resource in inventory
Returns:
the parent of the Resource with the specified id, or null if the Resource does not have a parent

getResourceIdLineage

List<Integer> getResourceIdLineage(int resourceId)

getResourceLineage

@NotNull
List<org.rhq.core.domain.resource.Resource> getResourceLineage(int resourceId)
Returns the lineage of the Resource with the specified id. The lineage is represented as a List of Resources, with the first item being the root of the Resource's ancestry (or the Resource itself if it is a root Resource (i.e. a platform)) and the last item being the Resource itself. Since the lineage includes the Resource itself, the returned List will always contain at least one item.

Parameters:
resourceId - the id of a Resource in inventory
Returns:
the lineage of the Resource with the specified id

getResourceLineage

List<org.rhq.core.domain.resource.composite.ResourceLineageComposite> getResourceLineage(org.rhq.core.domain.auth.Subject subject,
                                                                                         int resourceId)
Returns the direct lineage of a resource up to the top most resource in the hierarchy. Composites are returned that indicate whether the resource is viewable or not by the user.

Parameters:
resourceId - id of resource
Returns:
resource lineage

getResourceLineageAndSiblings

List<org.rhq.core.domain.resource.composite.ResourceLineageComposite> getResourceLineageAndSiblings(org.rhq.core.domain.auth.Subject subject,
                                                                                                    int resourceId)
Returns the lineage of a resource plus all the siblings of the resources in the lineage. This is useful for prepopulating all the resources visible in an expanded tree. Composites are returned that indicate whether the resource is viewable or should be locked in the tree.

Parameters:
resourceId - id of resource
Returns:
resource lineage and siblings

getRootResourceForResource

@NotNull
org.rhq.core.domain.resource.Resource getRootResourceForResource(int resourceId)
Looks up the root of a subtree in the inventory. This will generally find the platform on which a resource is running.

Parameters:
resourceId - the resource to find the root parent of
Returns:
the root of the supplied resource's tree

getResourceByParentAndKey

@Nullable
org.rhq.core.domain.resource.Resource getResourceByParentAndKey(org.rhq.core.domain.auth.Subject user,
                                                                         @Nullable
                                                                         org.rhq.core.domain.resource.Resource parent,
                                                                         String key,
                                                                         String plugin,
                                                                         String typeName)
Parameters:
user -
parent -
key -
Returns:
the resource, or null if no such resource exists

findResourceByParentAndInventoryStatus

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourceByParentAndInventoryStatus(org.rhq.core.domain.auth.Subject user,
                                                                                                                org.rhq.core.domain.resource.Resource parent,
                                                                                                                org.rhq.core.domain.resource.InventoryStatus status,
                                                                                                                org.rhq.core.domain.util.PageControl pageControl)

findResourcesByParentAndType

List<org.rhq.core.domain.resource.composite.ResourceWithAvailability> findResourcesByParentAndType(org.rhq.core.domain.auth.Subject user,
                                                                                                   org.rhq.core.domain.resource.Resource parent,
                                                                                                   org.rhq.core.domain.resource.ResourceType type)

findChildrenResourceIds

List<Integer> findChildrenResourceIds(int parentResourceId,
                                      org.rhq.core.domain.resource.InventoryStatus status)

findChildResourcesByCategoryAndInventoryStatus

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findChildResourcesByCategoryAndInventoryStatus(org.rhq.core.domain.auth.Subject user,
                                                                                                                        org.rhq.core.domain.resource.Resource parent,
                                                                                                                        org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                                        org.rhq.core.domain.resource.InventoryStatus status,
                                                                                                                        org.rhq.core.domain.util.PageControl pageControl)

findResourcesByCategory

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourcesByCategory(org.rhq.core.domain.auth.Subject user,
                                                                                                 org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                 org.rhq.core.domain.resource.InventoryStatus inventoryStatus,
                                                                                                 org.rhq.core.domain.util.PageControl pageControl)
See Also:
ResourceManagerRemote#findResourcesByCategory(Subject, ResourceCategory, InventoryStatus, PageControl)

findResourceComposites

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceComposite> findResourceComposites(org.rhq.core.domain.auth.Subject user,
                                                                                                                   org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                                   String typeName,
                                                                                                                   String pluginName,
                                                                                                                   org.rhq.core.domain.resource.Resource parentResource,
                                                                                                                   String searchString,
                                                                                                                   boolean attachParentResource,
                                                                                                                   org.rhq.core.domain.util.PageControl pageControl)
See Also:
ResourceManagerRemote#findResourceComposites(Subject, ResourceCategory, String, int, String, PageControl)

getResourceCountSummary

int[] getResourceCountSummary(org.rhq.core.domain.auth.Subject user,
                              org.rhq.core.domain.resource.InventoryStatus status)
Get a summary of counts, by category, of the user's viewable resources having the provided inventory status.

Parameters:
user -
status -
Returns:
A 3 element int array with counts for platform, service, service as a[0], a[1], a[2], respectively.

getResourceCountByCategory

int getResourceCountByCategory(org.rhq.core.domain.auth.Subject user,
                               org.rhq.core.domain.resource.ResourceCategory category,
                               org.rhq.core.domain.resource.InventoryStatus status)

getResourceCountByTypeAndIds

int getResourceCountByTypeAndIds(org.rhq.core.domain.auth.Subject user,
                                 org.rhq.core.domain.resource.ResourceType type,
                                 int[] resourceIds)

findResourcesMarkedForAsyncDeletion

List<Integer> findResourcesMarkedForAsyncDeletion(org.rhq.core.domain.auth.Subject user)

findRecentlyAddedPlatforms

List<org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite> findRecentlyAddedPlatforms(org.rhq.core.domain.auth.Subject user,
                                                                                                       long ctime,
                                                                                                       int maxItems)
Gets a list of platforms that were recently added (committed) to inventory.

Parameters:
user -
ctime - the oldest time (epoch mills) that a platform had to have been added for it to be returned
maxItems - the maximum number of items to return within the timeframe
Returns:
list of all platforms that were added since or at ctime

findRecentlyAddedServers

List<org.rhq.core.domain.resource.composite.RecentlyAddedResourceComposite> findRecentlyAddedServers(org.rhq.core.domain.auth.Subject user,
                                                                                                     long ctime,
                                                                                                     int platformId)
Gets a list of servers that are children of the given platform that were recently added (committed) to inventory.

Parameters:
user -
ctime - the oldest time (epoch mills) that a server had to have been added for it to be returned
Returns:
list of all servers (that are children of the given platforms) that were added since or at ctime

findExplicitResourceIdsByResourceGroup

List<Integer> findExplicitResourceIdsByResourceGroup(int resourceGroupId)

findImplicitResourceIdsByResourceGroup

List<Integer> findImplicitResourceIdsByResourceGroup(int resourceGroupId)

findFlyWeights

List<org.rhq.core.domain.resource.composite.ResourceIdFlyWeight> findFlyWeights(int[] resourceIds)

findExplicitResourcesByResourceGroup

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findExplicitResourcesByResourceGroup(org.rhq.core.domain.auth.Subject subject,
                                                                                                              org.rhq.core.domain.resource.group.ResourceGroup group,
                                                                                                              org.rhq.core.domain.util.PageControl pageControl)
Throws:
ResourceGroupNotFoundException - if the specified ResourceGroup does not exist

findImplicitResourcesByResourceGroup

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findImplicitResourcesByResourceGroup(org.rhq.core.domain.auth.Subject user,
                                                                                                              org.rhq.core.domain.resource.group.ResourceGroup group,
                                                                                                              org.rhq.core.domain.util.PageControl pageControl)
Throws:
ResourceGroupNotFoundException - if the specified ResourceGroup does not exist

findExplicitResourceWithAvailabilityByResourceGroup

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceWithAvailability> findExplicitResourceWithAvailabilityByResourceGroup(org.rhq.core.domain.auth.Subject subject,
                                                                                                                                                       org.rhq.core.domain.resource.group.ResourceGroup group,
                                                                                                                                                       org.rhq.core.domain.util.PageControl pageControl)
Throws:
ResourceGroupNotFoundException - if the specified ResourceGroup does not exist

findImplicitResourceWithAvailabilityByResourceGroup

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceWithAvailability> findImplicitResourceWithAvailabilityByResourceGroup(org.rhq.core.domain.auth.Subject subject,
                                                                                                                                                       org.rhq.core.domain.resource.group.ResourceGroup group,
                                                                                                                                                       org.rhq.core.domain.util.PageControl pageControl)
Throws:
ResourceGroupNotFoundException - if the specified ResourceGroup does not exist

findAvailableResourcesForResourceGroup

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findAvailableResourcesForResourceGroup(org.rhq.core.domain.auth.Subject user,
                                                                                                                int groupId,
                                                                                                                org.rhq.core.domain.resource.ResourceType type,
                                                                                                                org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                                String nameFilter,
                                                                                                                int[] excludeIds,
                                                                                                                org.rhq.core.domain.util.PageControl pageControl)
Throws:
ResourceGroupNotFoundException - if no ResourceGroup exists with the specified id

findAvailableResourcesForRepo

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findAvailableResourcesForRepo(org.rhq.core.domain.auth.Subject user,
                                                                                                       int repoId,
                                                                                                       String search,
                                                                                                       org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                       org.rhq.core.domain.util.PageControl pageControl)

findAvailableResourcesForDashboardPortlet

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findAvailableResourcesForDashboardPortlet(org.rhq.core.domain.auth.Subject user,
                                                                                                                   Integer typeId,
                                                                                                                   org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                                   int[] excludeIds,
                                                                                                                   org.rhq.core.domain.util.PageControl pageControl)

findResourceByIds

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourceByIds(org.rhq.core.domain.auth.Subject subject,
                                                                                           int[] resourceIds,
                                                                                           boolean attachParentResource,
                                                                                           org.rhq.core.domain.util.PageControl pageControl)

getResourceTree

org.rhq.core.domain.resource.Resource getResourceTree(int rootResourceId,
                                                      boolean recursive)

findResourceCompositeForParentAndTypeAndCategory

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceComposite> findResourceCompositeForParentAndTypeAndCategory(org.rhq.core.domain.auth.Subject user,
                                                                                                                                             org.rhq.core.domain.resource.ResourceCategory category,
                                                                                                                                             int resourceTypeId,
                                                                                                                                             org.rhq.core.domain.resource.Resource parentResource,
                                                                                                                                             org.rhq.core.domain.util.PageControl pageControl)
Get a Resource Composite for Resources limited by the given parameters

Parameters:
user - User executing the query
category - Category this query should be limited to
resourceTypeId - the PK of the desired resource type or -1 if no limit
parentResource - the desired parent resource or null if no limit
pageControl -
Returns:

findResourceErrors

@NotNull
List<org.rhq.core.domain.resource.ResourceError> findResourceErrors(org.rhq.core.domain.auth.Subject user,
                                                                            int resourceId,
                                                                            org.rhq.core.domain.resource.ResourceErrorType errorType)
Returns the errors of the given type that have occurred for the given resource.

Parameters:
user - the user asking to see the errors
resourceId - the resource whose errors are to be returned
errorType - the type of errors to return
Returns:
the list of resource errors

findResourceErrors

@NotNull
List<org.rhq.core.domain.resource.ResourceError> findResourceErrors(org.rhq.core.domain.auth.Subject user,
                                                                            int resourceId)
Returns all the errors that have occurred for the given resource.

Parameters:
user - the user asking to see the errors
resourceId - the resource whose errors are to be returned
Returns:
the list of resource errors

addResourceError

void addResourceError(org.rhq.core.domain.resource.ResourceError resourceError)
Indicates an error occurred on a resource. The given error will be associated with the resource found in the error.

Parameters:
resourceError - encapsulates all information about the error

deleteResourceError

void deleteResourceError(org.rhq.core.domain.auth.Subject user,
                         int resourceErrorId)
Deletes the given resource error, effectively removing it from its resource's list of errors. Requires the specified user to possess the MODIFY_RESOURCE permission for the Resource with which the error is associated.

Parameters:
user - the user deleting the resource error
resourceErrorId - identifies the resource error to delete

findChildrenAutoGroups

List<org.rhq.core.domain.resource.group.composite.AutoGroupComposite> findChildrenAutoGroups(org.rhq.core.domain.auth.Subject user,
                                                                                             int parentResourceId)

findChildrenAutoGroups

@NotNull
List<org.rhq.core.domain.resource.group.composite.AutoGroupComposite> findChildrenAutoGroups(org.rhq.core.domain.auth.Subject user,
                                                                                                     int parentResourceId,
                                                                                                     int[] resourceTypeIds)

getResourceAutoGroup

org.rhq.core.domain.resource.group.composite.AutoGroupComposite getResourceAutoGroup(org.rhq.core.domain.auth.Subject user,
                                                                                     int resourceId)

getResourceStatuses

Map<Integer,org.rhq.core.domain.resource.InventoryStatus> getResourceStatuses(int rootResourceId,
                                                                              boolean descendants)

findResourceHealth

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceHealthComposite> findResourceHealth(org.rhq.core.domain.auth.Subject user,
                                                                                                                     int[] resourceIds,
                                                                                                                     org.rhq.core.domain.util.PageControl pc)
Gets the "health" of a set of resources, where the health composite gives you the resource's availability status and the number of alerts it has emitted. Note that even though this takes a subject - it is assumed the caller is authorized to see the given resources and no authz checks will be made. This method takes a subject in case, in the future, we decide this implementation needs to perform authz checks.

This method is here to support the favorites portlet in the dashboard, where the favorites are stored as user preferences - and they can't make it into the preferences unless the user had access to see those resources in the first place, hence, no additional authorizations need to be made here.

Parameters:
user -
resourceIds -
pc -
Returns:
the health information on the resources

findResourcesAutoGroups

List<org.rhq.core.domain.resource.group.composite.AutoGroupComposite> findResourcesAutoGroups(org.rhq.core.domain.auth.Subject subject,
                                                                                              int[] resourceIds)

clearResourceConfigError

void clearResourceConfigError(int resourceId)
Clears errors of type ResourceErrorType.INVALID_PLUGIN_CONFIGURATION

Parameters:
resourceId - id of the resource

clearResourceConfigErrorByType

int clearResourceConfigErrorByType(org.rhq.core.domain.auth.Subject subject,
                                   int resourceId,
                                   org.rhq.core.domain.resource.ResourceErrorType resourceErrorType)
Clears errors of the given type.

Parameters:
subject - the user that is making the request
resourceId - id of the resource
resourceErrorType - type of error to clear
Returns:
the number of errors that were cleared

getPlatform

org.rhq.core.domain.resource.Resource getPlatform(org.rhq.core.domain.resource.Agent agent)
Returns the platform Resource associated with the specified Agent.

Parameters:
agent - an Agent
Returns:
the platform Resource associated with the specified Agent or null if the platform for the agent is not known yet.

findResourcesByAgent

List<org.rhq.core.domain.resource.flyweight.ResourceFlyweight> findResourcesByAgent(org.rhq.core.domain.auth.Subject user,
                                                                                    int agentId,
                                                                                    org.rhq.core.domain.util.PageControl pageControl)
Load the entire list of resources under an agent. Tries to do so in as few queries as possible while prefetching the information necessary to create a tree view of the platform inventory. This includes resource type and subcategory information as well as current availability and structure. This method also returns placeholder "locked" ResourceFlyweight objects for resources that a user should not have visibility to in order to keep the tree a directed graph.

Parameters:
user - user accessing the tree
agentId - the agent id of the platform to return inventory for
pageControl - the filter for the resources
Returns:
the list of all resources on a platform

findResourcesByCompatibleGroup

List<org.rhq.core.domain.resource.flyweight.ResourceFlyweight> findResourcesByCompatibleGroup(org.rhq.core.domain.auth.Subject user,
                                                                                              int compatibleGroupId,
                                                                                              org.rhq.core.domain.util.PageControl pageControl)

getAvailabilitySummary

org.rhq.core.domain.resource.composite.ResourceAvailabilitySummary getAvailabilitySummary(org.rhq.core.domain.auth.Subject user,
                                                                                          int resourceId)

updateAncestry

void updateAncestry(org.rhq.core.domain.auth.Subject subject,
                    int resourceId)
Update the ancestry for the specified resource and its child lineage.
 The ancestry is recursively defined as:
 
     resourceAncestry=parentResourceResourceTypeId_:_parentResourceId_:_parentResourceName_::_parentResourceAncestry
     
     * note that platform resources have no parent and therefore have a null ancestry
 
 

Parameters:
subject -
resourceId -

getLiveResourceAvailability

org.rhq.core.domain.measurement.ResourceAvailability getLiveResourceAvailability(org.rhq.core.domain.auth.Subject subject,
                                                                                 int resourceId)
#see {@link ResourceManagerRemote#getLiveResourceAvailability(Subject, int)


getResource

org.rhq.core.domain.resource.Resource getResource(org.rhq.core.domain.auth.Subject subject,
                                                  int resourceId)
#see {@link ResourceManagerRemote#getResource(Subject, int)


findResourceLineage

List<org.rhq.core.domain.resource.Resource> findResourceLineage(org.rhq.core.domain.auth.Subject subject,
                                                                int resourceId)
#see {@link ResourceManagerRemote#findResourceLineage(Subject, int)


uninventoryResources

List<Integer> uninventoryResources(org.rhq.core.domain.auth.Subject subject,
                                   int[] resourceIds)
This will uninventory the resources with the given ID along with all of their child resources. This method will not create its own transaction; each individual child resource as well as the top level resources identified with the given IDs will be uninventoried in their own transaction. This will ensure that resources are uninventoried in the proper order (for example, if a given resource is actually a child of one of the other given resources, this method ensures the uninventory occurs properly).

Parameters:
subject - the user performing the uninventory action
resourceIds - the ID of the resource to be deleted
Returns:
the list of all resources that were deleted - in effect, this will contain resourceIds and their childrens' IDs

findResourceComplianceCounts

List<org.rhq.core.domain.resource.composite.ResourceInstallCount> findResourceComplianceCounts(org.rhq.core.domain.auth.Subject subject)

findResourceInstallCounts

List<org.rhq.core.domain.resource.composite.ResourceInstallCount> findResourceInstallCounts(org.rhq.core.domain.auth.Subject subject,
                                                                                            boolean groupByVersions)

findResourceCompositesByCriteria

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.composite.ResourceComposite> findResourceCompositesByCriteria(org.rhq.core.domain.auth.Subject subject,
                                                                                                                             org.rhq.core.domain.criteria.ResourceCriteria criteria)

findResourcesByCriteria

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findResourcesByCriteria(org.rhq.core.domain.auth.Subject subject,
                                                                                                 org.rhq.core.domain.criteria.ResourceCriteria criteria)

findChildResources

org.rhq.core.domain.util.PageList<org.rhq.core.domain.resource.Resource> findChildResources(org.rhq.core.domain.auth.Subject subject,
                                                                                            int resourceId,
                                                                                            org.rhq.core.domain.util.PageControl pageControl)

getPlaformOfResource

org.rhq.core.domain.resource.Resource getPlaformOfResource(org.rhq.core.domain.auth.Subject subject,
                                                           int resourceId)

getParentResource

org.rhq.core.domain.resource.Resource getParentResource(org.rhq.core.domain.auth.Subject subject,
                                                        int resourceId)

disambiguate

<T> List<org.rhq.core.domain.resource.composite.DisambiguationReport<T>> disambiguate(List<T> results,
                                                                                      org.rhq.core.util.IntExtractor<? super T> resourceIdExtractor,
                                                                                      DisambiguationUpdateStrategy updateStrategy)
Returns:
the disambiguation result or null on error
See Also:
Disambiguator#disambiguate(List, boolean, IntExtractor, javax.persistence.EntityManager)

findIdsByTypeIds

List<Integer> findIdsByTypeIds(List<Integer> resourceTypeIds)

getResourceCount

Integer getResourceCount(List<Integer> resourceTypeIds)

getResourcesAncestry

Map<Integer,String> getResourcesAncestry(org.rhq.core.domain.auth.Subject subject,
                                         Integer[] resourceIds,
                                         org.rhq.core.domain.resource.ResourceAncestryFormat format)


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