usage of InventoryStatus.DELETED
by John Sanda
I have been investigating an issue in which a resource with an inventory
status of DELETED was still accessible (in the CLI) with
parentResource.getChildResources(). Then I Iearned that
ResourceFactoryManagerBean.completeDeleteResourceRequest does not
uninventory the deleted resource as I thought was the case. Instead, it
just sets the inventory status of the resource to DELETED. It got me
wondering what the purpose of DELETED is. I wondered why is it that we
want to keep a deleted resource in inventory but take steps to make it
appear as though it is no longer in inventory. The best I could come up
with is that we do it for auditing purposes.
I was going to modify
ResourceFactoryManagerBean.completeDeleteResourceRequest to uninventory
the resource. One problem with that change that was pointed out to me is
that the DeleteResourceHistory audit trail would be removed as part of
the uninventory. Our audit trail would be gone because
DeleteResourceHistory is linked to Resource.
I have noticed that a number of the audit trails, including
DeleteResourceHistory, CreateResourceHistory,
ResourceConfigurationUpdate, PluginConfigurationUpdate,
BundleResourceDeploymentHistory and more, are linked to Resource. The
problem with this is that when a resource is uninventoried we lose what
could be valuable information in those audit trails. If a hard link was
not maintained between the audit trails and Resource, the audit trails
could outlive the corresponding Resource objects. And I wonder if
InventoryStatus.DELETED would then even be needed.
I wanted to get some feedback on this for a couple reasons. First, it
will help provide some better context for a bug I working on. Secondly,
if these changes are feasible, we might be able to simplify some code
where InventoryStatus.DELETED is currently used, and we will be able to
provide more robust audit trails.
Thanks
-John
13 years, 1 month
Groups and Resource Activity page Portletification for RHQ4
by spinder
Hi all,
Looking for some feedback on the Portletification of the Activity pages for Groups and Resources.
Portletification description with screen shots:
http://www.rhq-project.org/display/RHQ/Groups+and+Resource+Activity+Portl...
See the [New RHQ Groups Summary/Activity pages.. thoughts?] thread in the devel list for more details about what's driving these enhancements https://fedorahosted.org/pipermail/rhq-devel/2011-February/thread.html
These changes are in master and visible in the [Resource|Group]>Summary>Activity2 pages. Take them for a spin.
Making the Activity regions into portlets makes a lot of sense, but specifically for those regions backed by Criteria queries the number of customizations possible needs some focus. For the most part we'd like to provide ways to visually customize most of the query details exposed by the Criteria, but:
a)some make more sense than others
b)given the time remaining before release it would be good to get feedback on which filters for the criteria I should focus on:
AlertCriteria
OperationsCriteria
BundleCriteria
Looking forward to your feedback.
-Simeon
13 years, 2 months
Can not log to rhq server GUI after installation of RHQ 4.0 Beta1
by Lin Gao
Hi:
I just downloaded RHQ 4.0 Beta1 and installed it using H2 database,
then can not log to the server GUI.
The exception log from rhq-server-log4j.log:
2011-03-10 21:20:10,521 ERROR
[org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/coregui]] org.rhq.enterprise.gui.coregui.CoreGUI SubjectGWTService: An Incompat
ibleRemoteServiceException was thrown while processing this call.
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: Type
'org.rhq.core.domain.criteria.SubjectCriteria' was not assignable to
'com.google.gwt.user.client.rpc.Is
Serializable' and did not have a custom field serializer. For security
purposes, this type will not be deserialized.
at
com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:308)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:186)
at
com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
at
com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at
org.rhq.enterprise.gui.coregui.server.gwt.AbstractGWTServiceImpl.service(AbstractGWTServiceImpl.java:81)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at sun.reflect.GeneratedMethodAccessor236.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil
$1.run(SecurityUtil.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283)
at org.apache.catalina.core.ApplicationFilterChain.access
$000(ApplicationFilterChain.java:56)
at org.apache.catalina.core.ApplicationFilterChain
$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
at
org.rhq.helpers.rtfilter.filter.RtFilter.doFilter(RtFilter.java:124)
at sun.reflect.GeneratedMethodAccessor238.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil
$1.run(SecurityUtil.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.access
$000(ApplicationFilterChain.java:56)
at org.apache.catalina.core.ApplicationFilterChain
$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at sun.reflect.GeneratedMethodAccessor237.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil
$1.run(SecurityUtil.java:244)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276)
at
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:218)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
at org.apache.catalina.core.ApplicationFilterChain.access
$000(ApplicationFilterChain.java:56)
at org.apache.catalina.core.ApplicationFilterChain
$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint
$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:662)
Caused by: com.google.gwt.user.client.rpc.SerializationException: Type
'org.rhq.core.domain.criteria.SubjectCriteria' was not assignable to
'com.google.gwt.user.client.rpc.IsSerializable' and did not have a
custom field serializer. For security purposes, this type will not be
deserialized.
at
com.google.gwt.user.server.rpc.impl.LegacySerializationPolicy.validateDeserialize(LegacySerializationPolicy.java:127)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserialize(ServerSerializationStreamReader.java:538)
at
com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:61)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader
$ValueReader$8.readValue(ServerSerializationStreamReader.java:137)
at
com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.deserializeValue(ServerSerializationStreamReader.java:384)
at
com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:296)
... 60 more
Do you guys get this error or are there something I need to change to
make it work?
--
Best Regards
Lin Gao
JBoss Software Engineer @ Beijing, China
IRC:lgao @ #jbosscn,#prod,#jbossas,#Eng-china
Phone Extension: 8388253
Mobile Phone: +86-13811109928
13 years, 2 months
need ideas on how to show cluster group tree issue
by John Mazzitelli
I need some ideas on this. Feel free to shout out good, bad and ugly
suggestions that come to mind. I'm sure something will stick to the wall :)
This is in regards to: https://bugzilla.redhat.com/show_bug.cgi?id=662118
Here's a screensnapshot to get an idea how the JSF UI did this:
https://bugzilla.redhat.com/attachment.cgi?id=368720
Consider: you have a compatible group with N member resources (each is a
JBossAS Server resource). One member of the group has a child resource
called "run.bat", but another member does not (this happens when one
JBossAS instance is running on Windows, and another is running on Linux).
In the "cluster" group view, you see a child node like this (see
snapshot link above for the real example of the tree in this case):
run.bat (1/2)
It's the "(1/2)" that we want to "make better". Do YOU know what that
means :) That's the problem. It is hard to understand the semantics of
this. What the 1/2 means is "there is only 1 run.bat child resource out
of the 2 total members of the group".
How can we render this information better? How can we indicate the tree
node you see in the group tree represents a "partial" child - that is,
we need to be able to say "some of your group members are missing this
child".
Tooltips, additional labels, image badging, a combination of these? We
need some mechanism to convey this information, I just don't know the
best way to do this :)
13 years, 2 months
master branch code freeze over
by Ian Springer
RHQ 4.0 Beta 1 has been tagged, so master is open again for checkins.
I'm still working on building and publishing the tag - battling the
usual hodgepodge of Maven and Hudson issues. Hopefully the release will
be up on Sourceforge before the end of the day.
-- Ian
13 years, 2 months
setting page control
by John Mazzitelli
I just noticed something yesterday and I wanted to bring it up because I
think there may problem(s) for large datasets.
I noticed in some DataSource implementations of ours, in our
executeFetch() methods, we aren't setting the page control in the
criteria... like this:
criteria.setPageControl(getPageControl(request));
without setting that, I think we are always going to only get back to
top 200 rows (since that's the default page control). Which means if we
are paging or sorting, if I read this code right, it won't actually get
us the right data.
So, we need to scour the source code, look at all executeFetch impls and
make sure we are setting the page control properly. I think if we don't
do this, its not gonna work right for datasets larger than 200.
13 years, 2 months
Schizofrenic package version creation
by Lukas Krejci
For some strange reason, we have 2 methods for creating a new package version.
ContentManagerRemote.createPackageVersion() and
ContentManagerLocal.getUploadedPackageVersion()
The only important semantical difference between these two methods, I think,
is this:
createPackageVersion doesn't update the bits or any other details of the
package from the provided inputstream if the package version already exists,
whereas getUploadPackageVersion updates them.
This is quite important difference, yet these two methods are used seemingly
interchangeably throughout the code.
(the other difference is that getUploadedPackageVersion() needs to be provided
with additional details like SHA, etc., whereas createPackageVersion()
computes them.)
I'd suggest we check all the usages of these two methods with the above
difference in mind.
For example ResourceFactoryManagerBean.createResource() chooses one or the
other of the above methods based on fact if the caller provided a map with the
additional details which I think is wrong.
I'm not sure I know all the consequences of changing the behavior of any of
these methods, so I'm asking here.
Cheers,
Lukas
13 years, 2 months
Why is the PluginDeploymentScanner keeping the descriptors around?
by Heiko W.Rupp
Hi,
from a memory dump of a running RHQ instance:
the Plugin deployers seem to keep plugin descriptors in memory - does that make sense? I think when they are
parsed, they are no longer needed ?
Heiko
--
Reg. Adresse: Red Hat GmbH, Otto-Hahn-Strasse 20, 85609 Dornach bei München
Handelsregister: Amtsgericht München HRB 153243
Geschaeftsführer: Brendan Lane, Charlie Peters, Michael Cunningham, Charles Cachera
13 years, 2 months