Bug 683859
Summary: | ResourceCriteria does not filter out deleted child resources | ||
---|---|---|---|
Product: | [Other] RHQ Project | Reporter: | John Sanda <jsanda> |
Component: | Core Server | Assignee: | Nobody <nobody> |
Status: | ON_DEV --- | QA Contact: | |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 3.0.0 | ||
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | Type: | --- | |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
John Sanda
2011-03-10 14:24:47 UTC
I talked at length with Jay Shaughnessy about this. He explained that the problem here is not with ResourceCriteria. If the generated query from the ResourceCriteria object filtered out deleted child resources, then the parent resource would also get excluded. We would need to filter on the resource returned from the initial query, which would be rather inefficient. As an aside, Hibernate does offer collection filtering that is done at the database which we could use but it does not address the problem in its entirety. Conceptually from the user's standpoint, a resource that is marked deleted should be no different than a resource that has been physically deleted from the database. The solution might be as Jay suggested to break the relationship between parent and child resources. Turns out that the immediate issue is ResourceFactoryManagerBean.completeDeleteResourceRequest. The deleted resource is not uninventoried as I thought was the case. Instead, ResourceFactoryManagerBean just sets the resource's inventory status to DELETED, leaving the parentResource link intact. I have added a call to remove the parentResource link so that the deleted child resource is no longer accessible by its parent. commit hash: 4bc6d8ef2ecb6d7358934a85b5261471072f93a0 |