backend/server/handlers/xmlrpc/abrt.py
| 31 ++++++++++
java/code/src/com/redhat/rhn/domain/server/CrashFile.hbm.xml
| 1
java/code/src/com/redhat/rhn/domain/server/CrashFile.java
| 17 +++++
java/code/src/com/redhat/rhn/frontend/dto/SoftwareCrashFileDto.java
| 15 ++++
java/code/webapp/WEB-INF/pages/systems/crashdetail.jsp
| 8 +-
schema/spacewalk/common/tables/rhnServerCrashFile.sql
| 4 +
schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.oracle
| 4 +
schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.postgresql
| 6 +
8 files changed, 83 insertions(+), 3 deletions(-)
New commits:
commit 24255c0affcd8f483585804b7fdf6f89d426cb1e
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Fri Mar 1 13:09:19 2013 +0100
abrt: display download link only for files that are available
diff --git a/backend/server/handlers/xmlrpc/abrt.py
b/backend/server/handlers/xmlrpc/abrt.py
index 414f151..7e52885 100644
--- a/backend/server/handlers/xmlrpc/abrt.py
+++ b/backend/server/handlers/xmlrpc/abrt.py
@@ -75,6 +75,22 @@ select crash_file_sizelimit
where id = :org_id
"""
+_query_set_crashfile_upload_flag = """
+update rhnServerCrashFile
+ set is_uploaded = 'Y'
+ where id = (
+ select scf.id as id
+ from rhnServerCrashFile scf,
+ rhnServerCrash sc
+ where scf.crash_id = sc.id and
+ scf.crash_id = :crash_id and
+ sc.server_id = :server_id and
+ scf.filename = :filename and
+ scf.path = :path and
+ scf.filesize = :filesize
+ )
+"""
+
class Abrt(rhnHandler):
def __init__(self):
rhnHandler.__init__(self)
@@ -129,6 +145,18 @@ class Abrt(rhnHandler):
h.execute(org_id = self.server.server['org_id'])
return h.fetchall_dict()[0]['crash_file_sizelimit']
+ def _set_crashfile_upload_flag(self, server_id, crash_id, filename, path, filesize):
+ h = rhnSQL.prepare(_query_set_crashfile_upload_flag)
+ r = h.execute(
+ server_id = server_id,
+ crash_id = crash_id,
+ filename = filename,
+ path = path,
+ filesize = filesize)
+ rhnSQL.commit()
+
+ return r
+
def create_crash(self, system_id, crash_data, pkg_data):
self.auth_system(system_id)
log_debug(1, self.server_id, crash_data, pkg_data)
@@ -226,6 +254,9 @@ class Abrt(rhnHandler):
f.write(filecontent)
f.close()
+ self._set_crashfile_upload_flag(self.server_id, crash_id,
crash_file['filename'], \
+ crash_file['path'],
crash_file['filesize'])
+
if crash_file['filename'] in self.watched_items:
# 'username' contains an extra '\n' at the end
if crash_file['filename'] == 'username':
diff --git a/java/code/src/com/redhat/rhn/domain/server/CrashFile.hbm.xml
b/java/code/src/com/redhat/rhn/domain/server/CrashFile.hbm.xml
index 632ff56..d8c1fd8 100644
--- a/java/code/src/com/redhat/rhn/domain/server/CrashFile.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/server/CrashFile.hbm.xml
@@ -15,6 +15,7 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<property name="filename" column="filename"
type="string"/>
<property name="path" column="path"
type="string"/>
<property name="filesize" column="filesize"
type="long"/>
+ <property name="isUploaded" column="is_uploaded"
type="yes_no" not-null="true"/>
<property name="created" type="timestamp"
column="created" />
<property name="modified" type="timestamp"
column="modified" />
</class>
diff --git a/java/code/src/com/redhat/rhn/domain/server/CrashFile.java
b/java/code/src/com/redhat/rhn/domain/server/CrashFile.java
index 6cf1fd2..f035436 100644
--- a/java/code/src/com/redhat/rhn/domain/server/CrashFile.java
+++ b/java/code/src/com/redhat/rhn/domain/server/CrashFile.java
@@ -29,6 +29,7 @@ public class CrashFile extends BaseDomainHelper {
private String filename;
private String path;
private long filesize;
+ private boolean isUploaded;
private Date created;
private Date modified;
@@ -120,6 +121,22 @@ public class CrashFile extends BaseDomainHelper {
}
/**
+ * Return isUploaded flag.
+ * @return Returns the isUploaded flag.
+ */
+ public boolean getIsUploaded() {
+ return isUploaded;
+ }
+
+ /**
+ * Set the isUploaded flag.
+ * @param isUploadedIn The boolean flag to set.
+ */
+ public void setIsUploaded(boolean isUploadedIn) {
+ isUploaded = isUploadedIn;
+ }
+
+ /**
* Returns the created date.
* @return the created date.
*/
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/SoftwareCrashFileDto.java
b/java/code/src/com/redhat/rhn/frontend/dto/SoftwareCrashFileDto.java
index a1d8f5b..bbbd59e 100644
--- a/java/code/src/com/redhat/rhn/frontend/dto/SoftwareCrashFileDto.java
+++ b/java/code/src/com/redhat/rhn/frontend/dto/SoftwareCrashFileDto.java
@@ -30,6 +30,7 @@ public class SoftwareCrashFileDto extends BaseDto {
private String filename;
private String path;
private long filesize;
+ private boolean isUploaded;
private Date modified;
private String downloadPath;
@@ -41,6 +42,7 @@ public class SoftwareCrashFileDto extends BaseDto {
id = cFile.getId();
filename = cFile.getFilename();
path = cFile.getPath();
+ isUploaded = cFile.getIsUploaded();
filesize = cFile.getFilesize();
modified = cFile.getModified();
}
@@ -109,6 +111,19 @@ public class SoftwareCrashFileDto extends BaseDto {
filesize = filesizeIn;
}
+ /**
+ * @return Returns the isUploaded flag.
+ */
+ public boolean getIsUploaded() {
+ return isUploaded;
+ }
+
+ /**
+ * @param isUploadedIn The isUploaded boolean flag.
+ */
+ public void setIsUploaded(boolean isUploadedIn) {
+ isUploaded = isUploadedIn;
+ }
/**
* @return Returns the modified.
diff --git a/java/code/webapp/WEB-INF/pages/systems/crashdetail.jsp
b/java/code/webapp/WEB-INF/pages/systems/crashdetail.jsp
index 8f8f07a..ab6cc59 100644
--- a/java/code/webapp/WEB-INF/pages/systems/crashdetail.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/crashdetail.jsp
@@ -41,9 +41,13 @@
sortattr="filename"
sortable="true"
filterattr="filename">
- <a href="${current.downloadPath}">
+ <c:if test="${current.isUploaded}">
+ <a href="${current.downloadPath}">
+ </c:if>
${current.filename}
- </a>
+ <c:if test="${current.isUploaded}">
+ </a>
+ </c:if>
</rl:column>
<rl:column headerkey="crashes.jsp.path" bound="false"
diff --git a/schema/spacewalk/common/tables/rhnServerCrashFile.sql
b/schema/spacewalk/common/tables/rhnServerCrashFile.sql
index dea394e..7d69deb 100644
--- a/schema/spacewalk/common/tables/rhnServerCrashFile.sql
+++ b/schema/spacewalk/common/tables/rhnServerCrashFile.sql
@@ -24,6 +24,10 @@ create table rhnServerCrashFile
filename varchar2(512) not null,
path varchar2(1024) not null,
filesize number not null,
+ is_uploaded char(1)
+ default ('N') not null
+ constraint rhn_server_crash_file_upl_ck
+ check (is_uploaded in ('Y', 'N')),
created timestamp with local time zone
default (current_timestamp) not null,
modified timestamp with local time zone
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.oracle
b/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.oracle
index dea394e..7d69deb 100644
---
a/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.oracle
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.oracle
@@ -24,6 +24,10 @@ create table rhnServerCrashFile
filename varchar2(512) not null,
path varchar2(1024) not null,
filesize number not null,
+ is_uploaded char(1)
+ default ('N') not null
+ constraint rhn_server_crash_file_upl_ck
+ check (is_uploaded in ('Y', 'N')),
created timestamp with local time zone
default (current_timestamp) not null,
modified timestamp with local time zone
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.postgresql
b/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.postgresql
index eaa8240..3c11cd8 100644
---
a/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.postgresql
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.8-to-spacewalk-schema-1.9/015-rhnServerCrashFile.sql.postgresql
@@ -1,4 +1,4 @@
--- oracle equivalent source sha1 25fffeacf4445a14bfe27e0999ea554d690710e2
+-- oracle equivalent source sha1 8027e800d1820708db136bd6896f562681ad96ef
--
-- Copyright (c) 2013 Red Hat, Inc.
--
@@ -25,6 +25,10 @@ create table rhnServerCrashFile
filename VARCHAR(512) not null,
path VARCHAR(1024) not null,
filesize NUMERIC not null,
+ is_uploaded char(1)
+ default ('N') not null
+ constraint rhn_server_crash_file_upl_ck
+ check (is_uploaded in ('Y', 'N')),
created TIMESTAMPTZ
default (current_timestamp) not null,
modified TIMESTAMPTZ