java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java | 26
++++++++
java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.hbm.xml | 4 +
java/code/src/com/redhat/rhn/domain/server/Crash.java | 18 ++---
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/crash/CrashHandler.java | 32
++++++++--
4 files changed, 67 insertions(+), 13 deletions(-)
New commits:
commit b3d10031c362e2357f3bc5699500580c730bdbbd
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Sat Feb 23 16:28:15 2013 +0100
abrt: listSystemCrashes() api call returns crash package info
diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java
b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java
index efe3ca0..38ae07c 100644
--- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageFactory.java
@@ -147,6 +147,18 @@ public class PackageFactory extends HibernateFactory {
}
/**
+ * Lookup a PackageArch by its id.
+ * @param id package arch label id sought.
+ * @return the PackageArch whose id matches the given id.
+ */
+ public static PackageArch lookupPackageArchById(Long id) {
+ Map params = new HashMap();
+ params.put("id", id);
+ return (PackageArch)
singleton.lookupObjectByNamedQuery("PackageArch.findById",
+ params, true);
+ }
+
+ /**
* Lookup a PackageArch by its label.
* @param label package arch label sought.
* @return the PackageArch whose label matches the given label.
@@ -190,6 +202,20 @@ public class PackageFactory extends HibernateFactory {
}
/**
+ * lookup a PackageName object based on it's id, returns null if it does
+ * not exist
+ *
+ * @param id the package name id
+ * @return a PackageName object that has a matching id or null if that
+ * doesn't exist
+ */
+ public static PackageName lookupPackageName(Long id) {
+ PackageName returned = (PackageName)
HibernateFactory.getSession().getNamedQuery(
+ "PackageName.findById").setLong("id",
id).uniqueResult();
+ return returned;
+ }
+
+ /**
* lookup a PackageName object based on it's name, returns null if it does
* not exist
*
diff --git a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.hbm.xml
b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.hbm.xml
index 7abeb2d..72fba19 100644
--- a/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/rhnpackage/PackageName.hbm.xml
@@ -18,4 +18,8 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<query name="PackageName.findByName">
<![CDATA[from com.redhat.rhn.domain.rhnpackage.PackageName as p where p.name =
:name]]>
</query>
+
+ <query name="PackageName.findById">
+ <![CDATA[from com.redhat.rhn.domain.rhnpackage.PackageName as p where p.id =
:id]]>
+ </query>
</hibernate-mapping>
diff --git a/java/code/src/com/redhat/rhn/domain/server/Crash.java
b/java/code/src/com/redhat/rhn/domain/server/Crash.java
index 0fb4f78..0b10d6f 100644
--- a/java/code/src/com/redhat/rhn/domain/server/Crash.java
+++ b/java/code/src/com/redhat/rhn/domain/server/Crash.java
@@ -39,9 +39,9 @@ public class Crash extends BaseDomainHelper {
private String kernel;
private String reason;
private String username;
- private long packageNameId;
- private long packageEvrId;
- private long packageArchId;
+ private Long packageNameId;
+ private Long packageEvrId;
+ private Long packageArchId;
private Date created;
private Date modified;
private Set<CrashFile> crashFiles;
@@ -265,7 +265,7 @@ public class Crash extends BaseDomainHelper {
* Get the crash package name id.
* @return Returns the crash package name id.
*/
- public long getPackageNameId() {
+ public Long getPackageNameId() {
return packageNameId;
}
@@ -273,7 +273,7 @@ public class Crash extends BaseDomainHelper {
* Set the crash package name id.
* @param packageNameIdIn The crash package name id to set.
*/
- public void setPackageNameId(long packageNameIdIn) {
+ public void setPackageNameId(Long packageNameIdIn) {
packageNameId = packageNameIdIn;
}
@@ -281,7 +281,7 @@ public class Crash extends BaseDomainHelper {
* Get the crash package EVR id.
* @return Returns the crash package EVR id.
*/
- public long getPackageEvrId() {
+ public Long getPackageEvrId() {
return packageEvrId;
}
@@ -289,7 +289,7 @@ public class Crash extends BaseDomainHelper {
* Set the crash package EVR id.
* @param packageEvrIdIn The crash package EVR id to set.
*/
- public void setPackageEvrId(long packageEvrIdIn) {
+ public void setPackageEvrId(Long packageEvrIdIn) {
packageEvrId = packageEvrIdIn;
}
@@ -297,7 +297,7 @@ public class Crash extends BaseDomainHelper {
* Get the crash package arch id.
* @return Returns the crash package arch id.
*/
- public long getPackageArchId() {
+ public Long getPackageArchId() {
return packageArchId;
}
@@ -305,7 +305,7 @@ public class Crash extends BaseDomainHelper {
* Set the crash package arch id.
* @param packageArchIdIn The package arch id to set.
*/
- public void setPackageArchId(long packageArchIdIn) {
+ public void setPackageArchId(Long packageArchIdIn) {
packageArchId = packageArchIdIn;
}
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/crash/CrashHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/crash/CrashHandler.java
index c4d15d4..90439a2 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/crash/CrashHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/crash/CrashHandler.java
@@ -15,13 +15,18 @@
package com.redhat.rhn.frontend.xmlrpc.system.crash;
-import com.redhat.rhn.frontend.xmlrpc.BaseHandler;
-import com.redhat.rhn.frontend.xmlrpc.NoCrashesFoundException;
-import com.redhat.rhn.frontend.xmlrpc.system.XmlRpcSystemHelper;
+import com.redhat.rhn.domain.rhnpackage.PackageArch;
+import com.redhat.rhn.domain.rhnpackage.PackageEvr;
+import com.redhat.rhn.domain.rhnpackage.PackageEvrFactory;
+import com.redhat.rhn.domain.rhnpackage.PackageFactory;
+import com.redhat.rhn.domain.rhnpackage.PackageName;
import com.redhat.rhn.domain.server.Crash;
import com.redhat.rhn.domain.server.CrashCount;
import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.xmlrpc.BaseHandler;
+import com.redhat.rhn.frontend.xmlrpc.NoCrashesFoundException;
+import com.redhat.rhn.frontend.xmlrpc.system.XmlRpcSystemHelper;
import org.apache.log4j.Logger;
@@ -160,10 +165,29 @@ public class CrashHandler extends BaseHandler {
crashMap.put("kernel", crash.getKernel());
crashMap.put("reason", crash.getReason());
crashMap.put("username", crash.getUsername());
- // FIXME: package info
crashMap.put("created", crash.getCreated());
crashMap.put("modified", crash.getModified());
+ if (crash.getPackageNameId() != null) {
+ PackageName pname = PackageFactory.lookupPackageName(
+ crash.getPackageNameId());
+ crashMap.put("package_name", pname.getName());
+ }
+
+ if (crash.getPackageEvrId() != null) {
+ PackageEvr pevr = PackageEvrFactory.lookupPackageEvrById(
+ crash.getPackageEvrId());
+ crashMap.put("package_epoch", pevr.getEpoch());
+ crashMap.put("package_version", pevr.getVersion());
+ crashMap.put("package_release", pevr.getRelease());
+ }
+
+ if (crash.getPackageArchId() != null) {
+ PackageArch parch = PackageFactory.lookupPackageArchById(
+ crash.getPackageArchId());
+ crashMap.put("package_arch", parch.getLabel());
+ }
+
returnList.add(crashMap);
}
Show replies by date