4 commits - backend/satellite_tools java/code spacewalk/config
by Pradeep Kilambi
backend/satellite_tools/satCerts.py | 32 +++++
java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java | 61 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java | 56 +++++++++
java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp | 16 ++
spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf | 3
5 files changed, 167 insertions(+), 1 deletion(-)
New commits:
commit af7c783ab0241b996a8969163c7e2a74d3845f26
Merge: 6a16f53... efa37df...
Author: Pradeep Kilambi <pkilambi(a)redhat.com>
Date: Tue Mar 31 19:44:41 2009 -0400
Merge branch 'vader'
commit efa37dfc2f22740b44ce93d1e02c3541d75d244f
Author: Pradeep Kilambi <pkilambi(a)redhat.com>
Date: Tue Mar 31 19:43:47 2009 -0400
Fixing the first org creation to check for ChannelFamily existance and create row if missing so the channel shows up in channels tab on sync
diff --git a/backend/satellite_tools/satCerts.py b/backend/satellite_tools/satCerts.py
index 1327ac3..d631a11 100644
--- a/backend/satellite_tools/satCerts.py
+++ b/backend/satellite_tools/satCerts.py
@@ -102,6 +102,7 @@ def create_first_org(owner):
p(owner, pword)
# Now create the first private channel family
create_first_private_chan_family()
+ verify_family_permissions()
return get_org_id()
_query_get_slot_types = rhnSQL.Statement("""
@@ -555,6 +556,37 @@ def create_first_private_chan_family():
org=1, url="First Org Created")
+def verify_family_permissions():
+ """
+ Verify channel family permissions for first org
+ """
+ _query_lookup_cfid = """
+ SELECT CF.id
+ FROM rhnChannelFamily CF
+ WHERE CF.org_id = :orgid
+ AND NOT EXISTS (
+ SELECT 1
+ FROM rhnChannelFamilyPermissions CFP
+ WHERE CFP.org_id = CF.org_id
+ AND CFP.channel_family_id = CF.id)
+ ORDER BY CF.id
+ """
+
+ h = rhnSQL.prepare(_query_lookup_cfid)
+ cfid = h.execute(orgid = 1)
+ if not cfid:
+ return
+
+ _query_create_priv_chfam = """
+ INSERT INTO rhnPrivateChannelFamily
+ (channel_family_id, org_id, max_members, current_members)
+ VALUES (:id, :org_id, NULL, 0)
+ """
+
+ h = rhnSQL.prepare(_query_create_priv_chfam)
+ h.execute(id=cfid['id'], org_id=1)
+
+
if __name__ == '__main__':
from common import initCFG, CFG
commit 04cabe7970333bdef9acc52b9bb91b9ecb6a0b9f
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 17:57:43 2009 -0400
487563 - adding enable_snapshots config value to default rhn.conf as per docs
diff --git a/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf b/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf
index f5ef1c6..5676130 100644
--- a/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf
+++ b/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf
@@ -74,4 +74,5 @@ taskomatic.com.redhat.rhn.taskomatic.task.SatelliteCertificateCheck.schedule = 0
# below the current usgage amount.
web.force_unentitlement=0
-
+# system snapshots enabled
+enable_snapshots = 1
commit fe5154b6a09d2af1a5dde8651512c9d314a0e1da
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 17:09:44 2009 -0400
458838 - adding new files for kickstart exception 404
diff --git a/java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java b/java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java
new file mode 100644
index 0000000..e47e7f7
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2009 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.common.errors;
+
+import com.redhat.rhn.common.messaging.MessageQueue;
+import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.events.TraceBackEvent;
+import com.redhat.rhn.frontend.struts.RequestContext;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ExceptionHandler;
+import org.apache.struts.config.ExceptionConfig;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * PermissionExceptionHandler
+ * @version $Rev$
+ */
+public class NoSuchKickstartExceptionHandler extends ExceptionHandler {
+
+ /**
+ * Custom Handler for HibernateLookupExceptions
+ * {@inheritDoc}
+ */
+ public ActionForward execute(Exception ex, ExceptionConfig exConfig,
+ ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response)
+ throws ServletException {
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ request.setAttribute("error", ex);
+
+
+ TraceBackEvent evt = new TraceBackEvent();
+ RequestContext requestContext = new RequestContext(request);
+ User usr = requestContext.getLoggedInUser();
+ evt.setUser(usr);
+ evt.setRequest(request);
+ evt.setException(ex);
+ MessageQueue.publish(evt);
+
+ return super.execute(ex, exConfig, mapping, form, request, response);
+ }
+
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java
new file mode 100644
index 0000000..2170ae4
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2009 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+
+/*
+ * AUTOMATICALLY GENERATED FILE, DO NOT EDIT.
+ */
+package com.redhat.rhn.frontend.xmlrpc;
+
+import com.redhat.rhn.FaultException;
+
+/**
+ * no such package
+ * <p>
+
+ *
+ * @version definition($Rev: 76724 $)/template($Rev: 67725 $)
+ */
+public class NoSuchKickstartException extends FaultException {
+
+
+ /////////////////////////
+ // Constructors
+ /////////////////////////
+ /**
+ * Constructor
+ */
+ public NoSuchKickstartException() {
+ super(2764 , "noSuchKickstart" , "The kickstart could not be found");
+ // begin member variable initialization
+ }
+
+ /**
+ * Constructor
+ * @param cause the cause (which is saved for later retrieval
+ * by the Throwable.getCause() method). (A null value is
+ * permitted, and indicates that the cause is nonexistent or
+ * unknown.)
+ */
+ public NoSuchKickstartException(Throwable cause) {
+ super(2764 , "noSuchKickstart" , "The kickstart could not be found" , cause);
+ // begin member variable initialization
+ }
+
+}
diff --git a/java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp b/java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp
new file mode 100644
index 0000000..738831f
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp
@@ -0,0 +1,16 @@
+<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+<html:xhtml/>
+<html>
+<body>
+
+<h1>
+ <img src="/img/rhn-icon-warning.gif"
+ alt="<bean:message key='error.common.errorAlt' />" />
+ <bean:message key="unknown.kickstart" />:
+</h1>
+
+<p><bean:message key="unknown.kickstart.message" /></p>
+
+</body>
+</html>
14 years, 2 months
Branch 'VADER' - backend/satellite_tools
by Pradeep Kilambi
backend/satellite_tools/satCerts.py | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
New commits:
commit efa37dfc2f22740b44ce93d1e02c3541d75d244f
Author: Pradeep Kilambi <pkilambi(a)redhat.com>
Date: Tue Mar 31 19:43:47 2009 -0400
Fixing the first org creation to check for ChannelFamily existance and create row if missing so the channel shows up in channels tab on sync
diff --git a/backend/satellite_tools/satCerts.py b/backend/satellite_tools/satCerts.py
index 1327ac3..d631a11 100644
--- a/backend/satellite_tools/satCerts.py
+++ b/backend/satellite_tools/satCerts.py
@@ -102,6 +102,7 @@ def create_first_org(owner):
p(owner, pword)
# Now create the first private channel family
create_first_private_chan_family()
+ verify_family_permissions()
return get_org_id()
_query_get_slot_types = rhnSQL.Statement("""
@@ -555,6 +556,37 @@ def create_first_private_chan_family():
org=1, url="First Org Created")
+def verify_family_permissions():
+ """
+ Verify channel family permissions for first org
+ """
+ _query_lookup_cfid = """
+ SELECT CF.id
+ FROM rhnChannelFamily CF
+ WHERE CF.org_id = :orgid
+ AND NOT EXISTS (
+ SELECT 1
+ FROM rhnChannelFamilyPermissions CFP
+ WHERE CFP.org_id = CF.org_id
+ AND CFP.channel_family_id = CF.id)
+ ORDER BY CF.id
+ """
+
+ h = rhnSQL.prepare(_query_lookup_cfid)
+ cfid = h.execute(orgid = 1)
+ if not cfid:
+ return
+
+ _query_create_priv_chfam = """
+ INSERT INTO rhnPrivateChannelFamily
+ (channel_family_id, org_id, max_members, current_members)
+ VALUES (:id, :org_id, NULL, 0)
+ """
+
+ h = rhnSQL.prepare(_query_create_priv_chfam)
+ h.execute(id=cfid['id'], org_id=1)
+
+
if __name__ == '__main__':
from common import initCFG, CFG
14 years, 2 months
Branch 'VADER' - spacewalk/config
by Justin Sherrill
spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit 04cabe7970333bdef9acc52b9bb91b9ecb6a0b9f
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 17:57:43 2009 -0400
487563 - adding enable_snapshots config value to default rhn.conf as per docs
diff --git a/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf b/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf
index f5ef1c6..5676130 100644
--- a/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf
+++ b/spacewalk/config/etc/sysconfig/rhn-satellite-prep/etc/rhn/rhn.conf
@@ -74,4 +74,5 @@ taskomatic.com.redhat.rhn.taskomatic.task.SatelliteCertificateCheck.schedule = 0
# below the current usgage amount.
web.force_unentitlement=0
-
+# system snapshots enabled
+enable_snapshots = 1
14 years, 2 months
2 commits - testfile
by Jesus M. Rodriguez
testfile | 1 -
1 file changed, 1 deletion(-)
New commits:
commit 6a16f531f29e66552ca9e6f9be49823a1e3cfdf4
Merge: a505461... 571b2e6...
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Mar 31 17:10:19 2009 -0400
Merge branch 'vader'
commit 571b2e6492b3861493d6944bd7df01c222d54949
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Mar 31 17:09:30 2009 -0400
removing test commit
diff --git a/testfile b/testfile
deleted file mode 100644
index b8802fa..0000000
--- a/testfile
+++ /dev/null
@@ -1 +0,0 @@
-just stop the whining
14 years, 2 months
Branch 'VADER' - java/code
by Justin Sherrill
java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java | 61 ++++++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java | 56 +++++++++
java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp | 16 ++
3 files changed, 133 insertions(+)
New commits:
commit fe5154b6a09d2af1a5dde8651512c9d314a0e1da
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 17:09:44 2009 -0400
458838 - adding new files for kickstart exception 404
diff --git a/java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java b/java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java
new file mode 100644
index 0000000..e47e7f7
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/common/errors/NoSuchKickstartExceptionHandler.java
@@ -0,0 +1,61 @@
+/**
+ * Copyright (c) 2009 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+package com.redhat.rhn.common.errors;
+
+import com.redhat.rhn.common.messaging.MessageQueue;
+import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.events.TraceBackEvent;
+import com.redhat.rhn.frontend.struts.RequestContext;
+
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ExceptionHandler;
+import org.apache.struts.config.ExceptionConfig;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * PermissionExceptionHandler
+ * @version $Rev$
+ */
+public class NoSuchKickstartExceptionHandler extends ExceptionHandler {
+
+ /**
+ * Custom Handler for HibernateLookupExceptions
+ * {@inheritDoc}
+ */
+ public ActionForward execute(Exception ex, ExceptionConfig exConfig,
+ ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response)
+ throws ServletException {
+ response.setStatus(HttpServletResponse.SC_NOT_FOUND);
+ request.setAttribute("error", ex);
+
+
+ TraceBackEvent evt = new TraceBackEvent();
+ RequestContext requestContext = new RequestContext(request);
+ User usr = requestContext.getLoggedInUser();
+ evt.setUser(usr);
+ evt.setRequest(request);
+ evt.setException(ex);
+ MessageQueue.publish(evt);
+
+ return super.execute(ex, exConfig, mapping, form, request, response);
+ }
+
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java
new file mode 100644
index 0000000..2170ae4
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchKickstartException.java
@@ -0,0 +1,56 @@
+/**
+ * Copyright (c) 2009 Red Hat, Inc.
+ *
+ * This software is licensed to you under the GNU General Public License,
+ * version 2 (GPLv2). There is NO WARRANTY for this software, express or
+ * implied, including the implied warranties of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2
+ * along with this software; if not, see
+ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
+ *
+ * Red Hat trademarks are not licensed under GPLv2. No permission is
+ * granted to use or replicate Red Hat trademarks that are incorporated
+ * in this software or its documentation.
+ */
+
+/*
+ * AUTOMATICALLY GENERATED FILE, DO NOT EDIT.
+ */
+package com.redhat.rhn.frontend.xmlrpc;
+
+import com.redhat.rhn.FaultException;
+
+/**
+ * no such package
+ * <p>
+
+ *
+ * @version definition($Rev: 76724 $)/template($Rev: 67725 $)
+ */
+public class NoSuchKickstartException extends FaultException {
+
+
+ /////////////////////////
+ // Constructors
+ /////////////////////////
+ /**
+ * Constructor
+ */
+ public NoSuchKickstartException() {
+ super(2764 , "noSuchKickstart" , "The kickstart could not be found");
+ // begin member variable initialization
+ }
+
+ /**
+ * Constructor
+ * @param cause the cause (which is saved for later retrieval
+ * by the Throwable.getCause() method). (A null value is
+ * permitted, and indicates that the cause is nonexistent or
+ * unknown.)
+ */
+ public NoSuchKickstartException(Throwable cause) {
+ super(2764 , "noSuchKickstart" , "The kickstart could not be found" , cause);
+ // begin member variable initialization
+ }
+
+}
diff --git a/java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp b/java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp
new file mode 100644
index 0000000..738831f
--- /dev/null
+++ b/java/code/webapp/WEB-INF/pages/common/errors/nosuchkickstart.jsp
@@ -0,0 +1,16 @@
+<%@ taglib uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
+<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
+<html:xhtml/>
+<html>
+<body>
+
+<h1>
+ <img src="/img/rhn-icon-warning.gif"
+ alt="<bean:message key='error.common.errorAlt' />" />
+ <bean:message key="unknown.kickstart" />:
+</h1>
+
+<p><bean:message key="unknown.kickstart.message" /></p>
+
+</body>
+</html>
14 years, 2 months
Branch 'VADER' - testfile
by Jesus M. Rodriguez
testfile | 1 -
1 file changed, 1 deletion(-)
New commits:
commit 571b2e6492b3861493d6944bd7df01c222d54949
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Mar 31 17:09:30 2009 -0400
removing test commit
diff --git a/testfile b/testfile
deleted file mode 100644
index b8802fa..0000000
--- a/testfile
+++ /dev/null
@@ -1 +0,0 @@
-just stop the whining
14 years, 2 months
8 commits - java/code testfile
by Jesus M. Rodriguez
java/code/src/com/redhat/rhn/frontend/action/kickstart/RenderKickstartFileAction.java | 4 +++-
java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml | 7 +++++++
java/code/webapp/WEB-INF/struts-config.xml | 3 +++
testfile | 1 +
4 files changed, 14 insertions(+), 1 deletion(-)
New commits:
commit a505461fc47ecac6cf2d0541b47cbe95f1791ab8
Merge: 5c717a3... 6db6757...
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Mar 31 17:05:15 2009 -0400
Merge branch 'vader'
commit 6db6757c855d54234a256ec6d715562256ae70dc
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Mar 31 17:03:43 2009 -0400
test commit
diff --git a/testfile b/testfile
new file mode 100644
index 0000000..b8802fa
--- /dev/null
+++ b/testfile
@@ -0,0 +1 @@
+just stop the whining
commit 540de1408e8bd35ea8c8baa8e040f4cbbc7bbe4d
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 16:11:31 2009 -0400
unit test fix
diff --git a/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java b/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java
index 189343f..2d4c94a 100644
--- a/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java
+++ b/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java
@@ -225,25 +225,14 @@ public class ErrataTest extends RhnBaseTestCase {
assertEquals(1, e.getChannels().size());
- boolean matched = false;
- Iterator i = e.getFiles().iterator();
- while (i.hasNext()) {
- PublishedErrataFile f1 = (PublishedErrataFile) i.next();
- if (f1.getId().equals(ef.getId())) {
- assertNotNull(f1.getChannels());
- assertTrue(f1.getChannels().size() > 0);
- assertTrue(f1.getChannels().contains(c));
- matched = true;
- }
- }
- assertTrue("didnt match the erratafile", matched);
+
// Now test clearing it out
e.clearChannels();
e = (Errata) TestUtils.saveAndReload(e);
assertTrue(e.getChannels() == null || e.getChannels().size() == 0);
- i = e.getFiles().iterator();
- matched = false;
+ Iterator i = e.getFiles().iterator();
+ boolean matched = false;
while (i.hasNext()) {
PublishedErrataFile f1 = (PublishedErrataFile) i.next();
assertNotNull(f1.getChannels());
commit b57158c81011ed32c5a2caf3a88bfb882683c03a
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 15:07:09 2009 -0400
unit test fix
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java
index bf78a46..1395d3b 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java
@@ -35,7 +35,7 @@ public class CloneErrataActionTest extends RhnMockStrutsTestCase {
public void setUp() throws Exception {
super.setUp();
- setRequestPathInfo("/errata/manage/CloneErrataSubmit");
+ setRequestPathInfo("/errata/manage/CloneErrata");
user.getOrg().getEntitlements().add(OrgFactory.getEntitlementEnterprise());
user.getOrg().addRole(RoleFactory.CHANNEL_ADMIN);
}
@@ -50,7 +50,7 @@ public class CloneErrataActionTest extends RhnMockStrutsTestCase {
request.addParameter("dispatch", "Clone Errata");
actionPerform();
- verifyForwardPath("/errata/manage/CloneErrata.do");
+ verifyForwardPath("/WEB-INF/pages/errata/cloneerrata.jsp");
verifyActionMessage("emptyselectionerror");
}
commit b7ec463e5e07c9ab72364a1e83734ab2235573ab
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Fri Mar 27 10:37:06 2009 -0400
490987 - fixed issue where errata files werent being refreshed, by removing the need for errata files
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
index f0d00b9..fb24cdc 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
@@ -1125,5 +1125,25 @@ GROUP BY C.id, C.name
</query>
</mode>
+<mode name="channel_errata_packages" class="com.redhat.rhn.frontend.dto.PackageDto">
+ <query params="eid, cid">
+ SELECT P.id, P.md5sum,
+ PN.name || '-' || PE.version
+ || '-' || PE.release || (CASE WHEN PE.epoch IS NULL THEN '' ELSE ':' || PE.epoch END)
+ || '-' || PA.label name
+ from rhnPackage P inner join
+ rhnChannelPackage CP on P.id = CP.package_id inner join
+ rhnErrataPackage EP on EP.package_id = CP.package_id inner join
+ rhnPackageName PN on P.name_id = PN.id inner join
+ rhnPackageEvr PE on P.evr_id = PE.id inner join
+ rhnPackageArch PA on P.package_arch_id = PA.id
+ where CP.channel_id = :cid
+ and EP.errata_id = :eid
+ ORDER by name
+ </query>
+</mode>
+
+
+
</datasource_modes>
diff --git a/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java b/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java
index 03f1ba9..bf087c4 100644
--- a/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java
+++ b/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java
@@ -16,7 +16,6 @@ package com.redhat.rhn.domain.errata.impl;
import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.AbstractErrata;
-import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.domain.errata.Cve;
import org.apache.log4j.Logger;
@@ -32,7 +31,7 @@ public class PublishedErrata extends AbstractErrata {
private static Logger log = Logger.getLogger(PublishedErrata.class);
- private Set channels;
+ private Set channels = new HashSet();
private Set<Cve> cves = new HashSet<Cve>();
/**
@@ -58,7 +57,6 @@ public class PublishedErrata extends AbstractErrata {
this.channels = new HashSet();
}
channels.add(channelIn);
- ErrataManager.refreshErrataFiles(channelIn, this);
}
/**
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java
index fc6c6b6..3253673 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java
@@ -14,20 +14,23 @@
*/
package com.redhat.rhn.frontend.action.errata;
-import com.redhat.rhn.common.db.datasource.DataResult;
+import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.user.User;
-import com.redhat.rhn.frontend.dto.ErrataPackageFile;
+import com.redhat.rhn.frontend.dto.ChannelOverview;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.struts.StrutsDelegate;
-import com.redhat.rhn.manager.errata.ErrataManager;
+import com.redhat.rhn.manager.channel.ChannelManager;
+import com.redhat.rhn.manager.user.UserManager;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -48,17 +51,23 @@ public class ErrataPackagesSetupAction extends RhnAction {
User user = requestContext.getLoggedInUser();
Errata errata = requestContext.lookupErratum();
- DataResult files = ErrataManager.packages(errata.getId(), user);
- Iterator test = files.iterator();
- while (test.hasNext()) { //remove from filename everything we won't display
- ErrataPackageFile next = (ErrataPackageFile)test.next();
- String filename = next.getFilename();
- next.setFilename(filename.substring(filename.lastIndexOf("/") + 1));
+ List<ChannelOverview> chans = new ArrayList<ChannelOverview>();
+
+ for (Channel chan : errata.getChannels()) {
+ if (UserManager.verifyChannelSubscribable(user, chan)) {
+ ChannelOverview co = new ChannelOverview();
+ co.setName(chan.getName());
+ co.setId(chan.getId());
+ co.setPackages(ChannelManager.listErrataPackages(chan, errata));
+ chans.add(co);
+ }
}
+ Collections.sort(chans);
+
request.setAttribute("errata", errata);
- request.setAttribute("files", files);
+ request.setAttribute("channels", chans);
return strutsDelegate.forwardParams(mapping.findForward("default"),
request.getParameterMap());
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java
index 504e535..642cded 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java
@@ -94,8 +94,6 @@ public class PackagePushAction extends RhnSetAction {
}
//publish them and the errata to the channel
errata = ErrataFactory.publishToChannel(errata, c, user, filePackages);
- //not sure what this is here for, but i'm scrared to remove it
- ErrataManager.refreshErrataFiles(c, errata);
RhnSet targetChannels = RhnSetDecl.CHANNELS_FOR_ERRATA.get(user);
targetChannels.removeElement(cid);
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
index 4511656..e1de4bd 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
@@ -17,8 +17,6 @@ package com.redhat.rhn.frontend.action.errata;
import com.redhat.rhn.common.db.datasource.DataResult;
import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.Errata;
-import com.redhat.rhn.domain.errata.ErrataFactory;
-import com.redhat.rhn.domain.errata.ErrataFile;
import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.rhnset.RhnSetElement;
@@ -92,23 +90,6 @@ public class RemovePackagesAction extends RhnSetAction {
//removed from the errata.
packagesRemoved++;
}
-
- //We have to do this round about way of removing errata files
- // otherwise we are modifying the set that we are working on
- // I really *hate* errata files
- List<ErrataFile> efsToRemove = new ArrayList<ErrataFile>();
- for (ErrataFile ef : errata.getFiles()) {
- if (ef.getPackages().contains(pkg)) {
- efsToRemove.add(ef);
- }
- }
- for (ErrataFile ef : efsToRemove) {
- errata.removeFile(ef.getId());
- ef.getPackages().remove(pkg);
- if (ef.getPackages().isEmpty()) {
- ErrataFactory.removeFile(ef);
- }
- }
}
//Save the errata
ErrataManager.storeErrata(errata);
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java
index 6849b79..1d861b4 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java
@@ -40,7 +40,7 @@ public class ErrataPackagesSetupActionTest extends RhnBaseTestCase {
sah.executeAction();
assertNotNull(sah.getRequest().getAttribute("errata"));
- assertNotNull(sah.getRequest().getAttribute("files"));
+ assertNotNull(sah.getRequest().getAttribute("channels"));
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java b/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java
index 793185f..d0ce40b 100644
--- a/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java
+++ b/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java
@@ -16,6 +16,9 @@ package com.redhat.rhn.frontend.dto;
import org.apache.commons.lang.builder.ToStringBuilder;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* ChannelOverview
* @version $Rev$
@@ -31,6 +34,7 @@ public class ChannelOverview extends BaseDto implements Comparable {
private String url;
private Long relevantPackages;
private Long originalId;
+ private List<PackageDto> packages = new ArrayList<PackageDto>();
/**
@@ -225,4 +229,24 @@ public class ChannelOverview extends BaseDto implements Comparable {
return hasSubscription;
}
+
+
+ /**
+ * @return Returns the packages.
+ */
+ public List<PackageDto> getPackages() {
+ return packages;
+ }
+
+
+
+ /**
+ * @param packagesIn The packages to set.
+ */
+ public void setPackages(List<PackageDto> packagesIn) {
+ this.packages = packagesIn;
+ }
+
+
+
}
diff --git a/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java b/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java
index f270ffc..9221b59 100644
--- a/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java
@@ -21,7 +21,6 @@ import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.errata.impl.PublishedClonedErrata;
import com.redhat.rhn.frontend.action.channel.manage.PublishErrataHelper;
-import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.manager.errata.cache.ErrataCacheManager;
import org.apache.log4j.Logger;
@@ -63,7 +62,6 @@ public class CloneErrataAction
Errata published = PublishErrataHelper.cloneErrataFast(errata,
msg.getUser().getOrg());
published.setChannels(channelSet);
- ErrataManager.refreshErrataFiles(currChan, published);
}
ErrataCacheManager.insertCacheForChannelErrata(cids, errata);
diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
index c4e2039..d573a1a 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
@@ -2404,6 +2404,20 @@ public class ChannelManager extends BaseManager {
ErrataCacheManager.deleteCacheEntriesForChannelErrata(chan.getId(), ids);
}
+ /**
+ * List packages that are contained in an errata and in a channel
+ * @param chan The channel
+ * @param errata the Errata
+ * @return A list of PackageDto that are in the channel and errata
+ */
+ public static List<PackageDto> listErrataPackages(Channel chan, Errata errata) {
+ Map params = new HashMap();
+ params.put("cid", chan.getId());
+ params.put("eid", errata.getId());
+ SelectMode mode = ModeFactory.getMode(
+ "Channel_queries", "channel_errata_packages");
+ return (List<PackageDto>) mode.execute(params);
+ }
}
diff --git a/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java b/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java
index 44aea87..4f52632 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java
@@ -30,6 +30,8 @@ import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.errata.test.ErrataFactoryTest;
import com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.org.OrgFactory;
+import com.redhat.rhn.domain.rhnpackage.Package;
+import com.redhat.rhn.domain.rhnpackage.test.PackageTest;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.server.Server;
@@ -40,6 +42,7 @@ import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.ChannelOverview;
import com.redhat.rhn.frontend.dto.ErrataOverview;
import com.redhat.rhn.frontend.dto.EssentialChannelDto;
+import com.redhat.rhn.frontend.dto.PackageDto;
import com.redhat.rhn.frontend.dto.PackageOverview;
import com.redhat.rhn.frontend.dto.SystemsPerChannelDto;
import com.redhat.rhn.frontend.xmlrpc.NoSuchChannelException;
@@ -713,4 +716,35 @@ public class ChannelManagerTest extends BaseTestCaseWithUser {
c = ChannelManager.lookupByLabel(user.getOrg(), c.getLabel());
assertFalse(c.getErratas().contains(eids));
}
+
+ public void testListErrataPackages() throws Exception {
+
+ Channel c = ChannelFactoryTest.createBaseChannel(user);
+ Errata e = ErrataFactoryTest.createTestErrata(user.getOrg().getId());
+
+ Package bothP = PackageTest.createTestPackage();
+ Package channelP = PackageTest.createTestPackage();
+ Package errataP = PackageTest.createTestPackage();
+
+
+ c.addPackage(bothP);
+ e.addPackage(bothP);
+
+ c.addPackage(channelP);
+ e.addPackage(errataP);
+
+ c.addErrata(e);
+
+ c = (Channel) TestUtils.saveAndReload(c);
+ e = (Errata) TestUtils.saveAndReload(e);
+
+ bothP = (Package) TestUtils.saveAndReload(bothP);
+
+
+ List<PackageDto> list = ChannelManager.listErrataPackages(c, e);
+ assertEquals(list.size(), 1);
+ assertEquals(list.get(0).getId(), (bothP.getId()));
+
+
+ }
}
diff --git a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
index 2a48b22..6a0070c 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -31,8 +31,6 @@ import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.errata.ErrataFile;
import com.redhat.rhn.domain.errata.ErrataFileType;
-import com.redhat.rhn.domain.errata.impl.PublishedErrataFile;
-import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.rhnset.RhnSetFactory;
import com.redhat.rhn.domain.role.RoleFactory;
@@ -56,7 +54,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -913,51 +910,6 @@ public class ErrataManager extends BaseManager {
public static List lookupByOriginal(User user, Errata original) {
return ErrataFactory.lookupByOriginal(user.getOrg(), original);
}
-
- /**
- * Refresh the ErrataFiles associated with this Errata and the passed in Channel.
- * @param channelIn to refresh errata files.
- * @param errata of Errata you want to refresh.
- */
- public static void refreshErrataFiles(Channel channelIn, Errata errata) {
- if (log.isDebugEnabled()) {
- log.debug("files? " + (errata.getFiles() != null) + " packages: " +
- (channelIn.getPackages() != null));
- }
- if (errata.getFiles() != null && channelIn.getPackages() != null) {
- log.debug("This errata has files and the channel has packages.");
- Set addedPackages = new HashSet();
- Iterator i = errata.getFiles().iterator();
- while (i.hasNext()) {
- log.debug("loop 2.");
- PublishedErrataFile ef = (PublishedErrataFile) i.next();
- if (log.isDebugEnabled()) {
- log.debug("Working with ef: " + ef.getFileName() +
- " id: " + ef.getId() + " cs: " + ef.getChecksum());
- }
- if (ef.getPackages() != null) {
- Iterator j = ef.getPackages().iterator();
- while (j.hasNext()) {
- Package p = (Package) j.next();
- if (log.isDebugEnabled()) {
- log.debug("Package: " + p.getPackageName().getName() +
- " arch: " + p.getPackageArch().getLabel());
- log.debug("added packages: " + addedPackages);
- }
- if (channelIn.getPackages().contains(p) &&
- !addedPackages.contains(p)) {
- if (log.isDebugEnabled()) {
- log.debug("ChannelHasPackage, adding to ef");
- }
- ef.addChannel(channelIn);
- addedPackages.add(p);
- }
- }
- }
- }
- }
-
- }
/**
* Lookup packages that are associated with errata in the RhnSet "errata_list"
diff --git a/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp b/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp
index 69d9864..69b42b3 100644
--- a/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp
+++ b/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp
@@ -14,31 +14,28 @@
<h2><bean:message key="packagelist.jsp.header.packages"/></h2>
- <c:if test="${empty files}">
- <div class="page-summary">
- <bean:message key="details.jsp.none"/>
- </div>
- </c:if>
- <c:forEach items="${files}" var="current">
+
+ <c:forEach items="${channels}" var="current">
<div class="page-summary">
+ <b><c:out value="${current.name}"/> </b>
+ <br/>
- <c:if test="${previousChannel != current.channelName}">
- <br/><b>${current.channelName}:</b> <br/>
- </c:if>
-
- <tt>${current.md5sum}</tt>
-
- <c:if test="${not empty current.packageId}">
- <a href="/rhn/software/packages/Details.do?pid=${current.packageId}">${current.filename}</a>
- </c:if>
- <c:if test="${empty current.packageId}">
- ${current.filename}
- </c:if>
- <br/>
+ <c:if test="${empty current.packages}">
+ <div class="page-summary">
+ <bean:message key="details.jsp.none"/>
+ </div>
+ </c:if>
+ <c:forEach items="${current.packages}" var="pack">
+ <tt>${pack.md5sum}</tt>
+ <a href="/rhn/software/packages/Details.do?pid=${pack.id}">
+ <c:out value="${pack.name}"/>
+ </a>
+ <br/>
+ </c:forEach>
+ <br/>
</div>
- <c:set var="previousChannel" value="${current.channelName}" />
</c:forEach>
</body>
</html>
commit 27584de051ab77765c930be917917ae8655d857a
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 14:14:25 2009 -0400
adding missing index for errata cache\
between spacewalk 0.4 and 0.5 an index was added to the upgrade sql scripts but was mistakenly left out of the base schema. This commit puts it in the base, and adds it to the 0.5 -> 0.6 upgrade scripts.
diff --git a/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql b/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql
index be40c5f..2776ce8 100644
--- a/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql
+++ b/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql
@@ -31,3 +31,8 @@ create index rhn_snc_eid_idx
tablespace [[128m_tbs]]
nologging;
+create index rhn_snc_speid_idx
+ on rhnServerNeededCache(server_id, package_id, errata_id)
+ parallel
+ tablespace [[128m_tbs]]
+ nologging;
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql b/schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql
new file mode 100644
index 0000000..e46acff
--- /dev/null
+++ b/schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql
@@ -0,0 +1,5 @@
+create index rhn_snc_speid_idx
+ on rhnServerNeededCache(server_id, package_id, errata_id)
+ parallel
+ tablespace [[128m_tbs]]
+ nologging;
commit 53366661765ffef5a4edf3e24dbd8766066167f0
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 16:44:23 2009 -0400
458838 - changing kickstart download 404s to have a descriptive message
diff --git a/java/code/src/com/redhat/rhn/frontend/action/kickstart/RenderKickstartFileAction.java b/java/code/src/com/redhat/rhn/frontend/action/kickstart/RenderKickstartFileAction.java
index f314659..9f50bc5 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/kickstart/RenderKickstartFileAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/kickstart/RenderKickstartFileAction.java
@@ -15,6 +15,7 @@
package com.redhat.rhn.frontend.action.kickstart;
import com.redhat.rhn.domain.kickstart.KickstartData;
+import com.redhat.rhn.frontend.xmlrpc.NoSuchKickstartException;
import com.redhat.rhn.manager.kickstart.KickstartManager;
import org.apache.log4j.Logger;
@@ -66,7 +67,8 @@ public class RenderKickstartFileAction extends Action {
log.error("No kickstart filecontents found for: " + url +
" params: " + params + " ksdata: " + ksdata);
// send 404 to the user since we don't have a kickstart profile match
- response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ //response.sendError(HttpServletResponse.SC_NOT_FOUND);
+ throw new NoSuchKickstartException();
}
if (log.isDebugEnabled()) {
log.debug("fileContents: " + fileContents);
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
index a661dfe..6d00c09 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/jsp/StringResource_en_US.xml
@@ -21035,6 +21035,13 @@ given channel.</source>
<context context-type="sourcefile">/rhn/systems/details/ErrataList.do</context>
</context-group>
</trans-unit>
+ <trans-unit id="unknown.kickstart">
+ <source>Kickstart Not Found</source>
+ </trans-unit>
+ <trans-unit id="unknown.kickstart.message">
+ <source>The requested kickstart file could not be found.
+ If you are requesting an organizational default kickstart, ensure that a kickstart has been selected as the "Organization Default".</source>
+ </trans-unit>
</body>
</file>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml b/java/code/webapp/WEB-INF/struts-config.xml
index 243e45d..2caf809 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -995,6 +995,9 @@
<exception type="com.redhat.rhn.frontend.xmlrpc.NoSuchPackageException"
path="/WEB-INF/pages/common/errors/nosuchpkg.jsp" key="date"
handler="com.redhat.rhn.common.errors.NoSuchPackageExceptionHandler"/>
+ <exception type="com.redhat.rhn.frontend.xmlrpc.NoSuchKickstartException"
+ path="/WEB-INF/pages/common/errors/nosuchkickstart.jsp" key="date"
+ handler="com.redhat.rhn.common.errors.NoSuchKickstartExceptionHandler"/>
</global-exceptions>
<!--
commit ada539ca65d7533e9e90bb55e36452ff58f230cc
Author: Partha Aji <paji(a)redhat.com>
Date: Tue Mar 31 14:05:45 2009 -0400
removed jasper5* from run time dependencies and made them build time instead. Tomcat 5.5 doesn;t know how to deal with the arcane versions of the these files provided in ivy.xml
diff --git a/java/buildconf/build-props.xml b/java/buildconf/build-props.xml
index 8270027..9e29092 100644
--- a/java/buildconf/build-props.xml
+++ b/java/buildconf/build-props.xml
@@ -53,7 +53,7 @@
value="bcel cglib commons-beanutils commons-cli commons-codec
commons-collections commons-configuration commons-digester commons-discovery
commons-el commons-lang commons-logging commons-validator hibernate3
- mailapi smtp jasper5-compiler jasper5-runtime jdom jpam
+ mailapi smtp jdom jpam
jspapi log4j oro redstone-xmlrpc-client redstone-xmlrpc servletapi5 struts
bcprov bcpg jcommon stringtree-json
jfreechart taglibs-core logdriver quartz
@@ -66,7 +66,7 @@
<property name="build.jar.dependencies"
value="ant ant-junit ant-contrib antlr
- ${common.jar.dependencies} tanukiwrapper
+ ${common.jar.dependencies} tanukiwrapper jasper5-compiler jasper5-runtime
concurrent" />
<property name="run.jar.dependencies"
14 years, 2 months
Branch 'VADER' - testfile
by Jesus M. Rodriguez
testfile | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 6db6757c855d54234a256ec6d715562256ae70dc
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Tue Mar 31 17:03:43 2009 -0400
test commit
diff --git a/testfile b/testfile
new file mode 100644
index 0000000..b8802fa
--- /dev/null
+++ b/testfile
@@ -0,0 +1 @@
+just stop the whining
14 years, 2 months
2 commits - java/code
by Shannon Hughes
java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java | 22 +++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
New commits:
commit 5c717a36f58b40162a5668ee6ae254604ea97f55
Merge: 271d766... 16a2c8f...
Author: Shannon Hughes <shughes(a)redhat.com>
Date: Tue Mar 31 16:58:13 2009 -0400
Merge branch 'vader'
commit 16a2c8f9c3bcc73cb3455267f9b13089721a32f7
Author: Shannon Hughes <shughes(a)redhat.com>
Date: Tue Mar 31 16:14:47 2009 -0400
489532 - unsubscribe multiorg shared channel when moving access from public to protected with deny selection
diff --git a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
index 0111025..1ab296b 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/channel/manage/EditChannelAction.java
@@ -134,9 +134,17 @@ public class EditChannelAction extends RhnAction implements Listable {
}
else if (ctx.hasParam("deny")) {
deny(form, errors, ctx);
+ if (errors.isEmpty()) {
+ createSuccessMessage(request, "message.channelupdated",
+ form.getString("name"));
+ }
}
else if (ctx.hasParam("grant")) {
grant(form, errors, ctx);
+ if (errors.isEmpty()) {
+ createSuccessMessage(request, "message.channelupdated",
+ form.getString("name"));
+ }
}
if (!errors.isEmpty()) {
request.setAttribute("channel_label", (String) form.get("label"));
@@ -206,7 +214,19 @@ public class EditChannelAction extends RhnAction implements Listable {
ActionErrors errors,
RequestContext ctx) {
Channel c = edit(form, errors, ctx);
- // now remove all of the orgs to the "rhnchanneltrust"
+ Long cid = c.getId();
+ Org org = c.getOrg();
+ // now remove all of the orgs to the "rhnchanneltrust" and unsubscribe systems
+ Set<Org> trustedOrgs = org.getTrustedOrgs();
+ for (Org o : trustedOrgs) {
+ DataResult<Map> dr =
+ SystemManager.subscribedInOrgTrust(org.getId(), o.getId());
+ for (Map item : dr) {
+ Long sid = (Long)item.get("id");
+ User user = ctx.getLoggedInUser();
+ SystemManager.unsubscribeServerFromChannel(user, sid, cid);
+ }
+ }
c.getTrustedOrgs().clear();
ChannelFactory.save(c);
return c;
14 years, 2 months
Branch 'VADER' - 4 commits - java/code schema/spacewalk
by Justin Sherrill
java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml | 20 ++++
java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java | 4
java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java | 17 ---
java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java | 31 ++++--
java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java | 2
java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java | 19 ---
java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java | 4
java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java | 2
java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java | 24 +++++
java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java | 2
java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java | 14 ++
java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java | 34 +++++++
java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java | 48 ----------
java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp | 37 +++----
schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql | 5 +
schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql | 5 +
16 files changed, 146 insertions(+), 122 deletions(-)
New commits:
commit 540de1408e8bd35ea8c8baa8e040f4cbbc7bbe4d
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 16:11:31 2009 -0400
unit test fix
diff --git a/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java b/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java
index 189343f..2d4c94a 100644
--- a/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java
+++ b/java/code/src/com/redhat/rhn/domain/errata/test/ErrataTest.java
@@ -225,25 +225,14 @@ public class ErrataTest extends RhnBaseTestCase {
assertEquals(1, e.getChannels().size());
- boolean matched = false;
- Iterator i = e.getFiles().iterator();
- while (i.hasNext()) {
- PublishedErrataFile f1 = (PublishedErrataFile) i.next();
- if (f1.getId().equals(ef.getId())) {
- assertNotNull(f1.getChannels());
- assertTrue(f1.getChannels().size() > 0);
- assertTrue(f1.getChannels().contains(c));
- matched = true;
- }
- }
- assertTrue("didnt match the erratafile", matched);
+
// Now test clearing it out
e.clearChannels();
e = (Errata) TestUtils.saveAndReload(e);
assertTrue(e.getChannels() == null || e.getChannels().size() == 0);
- i = e.getFiles().iterator();
- matched = false;
+ Iterator i = e.getFiles().iterator();
+ boolean matched = false;
while (i.hasNext()) {
PublishedErrataFile f1 = (PublishedErrataFile) i.next();
assertNotNull(f1.getChannels());
commit b57158c81011ed32c5a2caf3a88bfb882683c03a
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 15:07:09 2009 -0400
unit test fix
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java
index bf78a46..1395d3b 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/test/CloneErrataActionTest.java
@@ -35,7 +35,7 @@ public class CloneErrataActionTest extends RhnMockStrutsTestCase {
public void setUp() throws Exception {
super.setUp();
- setRequestPathInfo("/errata/manage/CloneErrataSubmit");
+ setRequestPathInfo("/errata/manage/CloneErrata");
user.getOrg().getEntitlements().add(OrgFactory.getEntitlementEnterprise());
user.getOrg().addRole(RoleFactory.CHANNEL_ADMIN);
}
@@ -50,7 +50,7 @@ public class CloneErrataActionTest extends RhnMockStrutsTestCase {
request.addParameter("dispatch", "Clone Errata");
actionPerform();
- verifyForwardPath("/errata/manage/CloneErrata.do");
+ verifyForwardPath("/WEB-INF/pages/errata/cloneerrata.jsp");
verifyActionMessage("emptyselectionerror");
}
commit b7ec463e5e07c9ab72364a1e83734ab2235573ab
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Fri Mar 27 10:37:06 2009 -0400
490987 - fixed issue where errata files werent being refreshed, by removing the need for errata files
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
index f0d00b9..fb24cdc 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Channel_queries.xml
@@ -1125,5 +1125,25 @@ GROUP BY C.id, C.name
</query>
</mode>
+<mode name="channel_errata_packages" class="com.redhat.rhn.frontend.dto.PackageDto">
+ <query params="eid, cid">
+ SELECT P.id, P.md5sum,
+ PN.name || '-' || PE.version
+ || '-' || PE.release || (CASE WHEN PE.epoch IS NULL THEN '' ELSE ':' || PE.epoch END)
+ || '-' || PA.label name
+ from rhnPackage P inner join
+ rhnChannelPackage CP on P.id = CP.package_id inner join
+ rhnErrataPackage EP on EP.package_id = CP.package_id inner join
+ rhnPackageName PN on P.name_id = PN.id inner join
+ rhnPackageEvr PE on P.evr_id = PE.id inner join
+ rhnPackageArch PA on P.package_arch_id = PA.id
+ where CP.channel_id = :cid
+ and EP.errata_id = :eid
+ ORDER by name
+ </query>
+</mode>
+
+
+
</datasource_modes>
diff --git a/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java b/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java
index 03f1ba9..bf087c4 100644
--- a/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java
+++ b/java/code/src/com/redhat/rhn/domain/errata/impl/PublishedErrata.java
@@ -16,7 +16,6 @@ package com.redhat.rhn.domain.errata.impl;
import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.AbstractErrata;
-import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.domain.errata.Cve;
import org.apache.log4j.Logger;
@@ -32,7 +31,7 @@ public class PublishedErrata extends AbstractErrata {
private static Logger log = Logger.getLogger(PublishedErrata.class);
- private Set channels;
+ private Set channels = new HashSet();
private Set<Cve> cves = new HashSet<Cve>();
/**
@@ -58,7 +57,6 @@ public class PublishedErrata extends AbstractErrata {
this.channels = new HashSet();
}
channels.add(channelIn);
- ErrataManager.refreshErrataFiles(channelIn, this);
}
/**
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java
index fc6c6b6..3253673 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/ErrataPackagesSetupAction.java
@@ -14,20 +14,23 @@
*/
package com.redhat.rhn.frontend.action.errata;
-import com.redhat.rhn.common.db.datasource.DataResult;
+import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.user.User;
-import com.redhat.rhn.frontend.dto.ErrataPackageFile;
+import com.redhat.rhn.frontend.dto.ChannelOverview;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.RhnAction;
import com.redhat.rhn.frontend.struts.StrutsDelegate;
-import com.redhat.rhn.manager.errata.ErrataManager;
+import com.redhat.rhn.manager.channel.ChannelManager;
+import com.redhat.rhn.manager.user.UserManager;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import java.util.Iterator;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -48,17 +51,23 @@ public class ErrataPackagesSetupAction extends RhnAction {
User user = requestContext.getLoggedInUser();
Errata errata = requestContext.lookupErratum();
- DataResult files = ErrataManager.packages(errata.getId(), user);
- Iterator test = files.iterator();
- while (test.hasNext()) { //remove from filename everything we won't display
- ErrataPackageFile next = (ErrataPackageFile)test.next();
- String filename = next.getFilename();
- next.setFilename(filename.substring(filename.lastIndexOf("/") + 1));
+ List<ChannelOverview> chans = new ArrayList<ChannelOverview>();
+
+ for (Channel chan : errata.getChannels()) {
+ if (UserManager.verifyChannelSubscribable(user, chan)) {
+ ChannelOverview co = new ChannelOverview();
+ co.setName(chan.getName());
+ co.setId(chan.getId());
+ co.setPackages(ChannelManager.listErrataPackages(chan, errata));
+ chans.add(co);
+ }
}
+ Collections.sort(chans);
+
request.setAttribute("errata", errata);
- request.setAttribute("files", files);
+ request.setAttribute("channels", chans);
return strutsDelegate.forwardParams(mapping.findForward("default"),
request.getParameterMap());
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java
index 504e535..642cded 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/PackagePushAction.java
@@ -94,8 +94,6 @@ public class PackagePushAction extends RhnSetAction {
}
//publish them and the errata to the channel
errata = ErrataFactory.publishToChannel(errata, c, user, filePackages);
- //not sure what this is here for, but i'm scrared to remove it
- ErrataManager.refreshErrataFiles(c, errata);
RhnSet targetChannels = RhnSetDecl.CHANNELS_FOR_ERRATA.get(user);
targetChannels.removeElement(cid);
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
index 4511656..e1de4bd 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/RemovePackagesAction.java
@@ -17,8 +17,6 @@ package com.redhat.rhn.frontend.action.errata;
import com.redhat.rhn.common.db.datasource.DataResult;
import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.Errata;
-import com.redhat.rhn.domain.errata.ErrataFactory;
-import com.redhat.rhn.domain.errata.ErrataFile;
import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.rhnset.RhnSetElement;
@@ -92,23 +90,6 @@ public class RemovePackagesAction extends RhnSetAction {
//removed from the errata.
packagesRemoved++;
}
-
- //We have to do this round about way of removing errata files
- // otherwise we are modifying the set that we are working on
- // I really *hate* errata files
- List<ErrataFile> efsToRemove = new ArrayList<ErrataFile>();
- for (ErrataFile ef : errata.getFiles()) {
- if (ef.getPackages().contains(pkg)) {
- efsToRemove.add(ef);
- }
- }
- for (ErrataFile ef : efsToRemove) {
- errata.removeFile(ef.getId());
- ef.getPackages().remove(pkg);
- if (ef.getPackages().isEmpty()) {
- ErrataFactory.removeFile(ef);
- }
- }
}
//Save the errata
ErrataManager.storeErrata(errata);
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java b/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java
index 6849b79..1d861b4 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/test/ErrataPackagesSetupActionTest.java
@@ -40,7 +40,7 @@ public class ErrataPackagesSetupActionTest extends RhnBaseTestCase {
sah.executeAction();
assertNotNull(sah.getRequest().getAttribute("errata"));
- assertNotNull(sah.getRequest().getAttribute("files"));
+ assertNotNull(sah.getRequest().getAttribute("channels"));
}
}
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java b/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java
index 793185f..d0ce40b 100644
--- a/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java
+++ b/java/code/src/com/redhat/rhn/frontend/dto/ChannelOverview.java
@@ -16,6 +16,9 @@ package com.redhat.rhn.frontend.dto;
import org.apache.commons.lang.builder.ToStringBuilder;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* ChannelOverview
* @version $Rev$
@@ -31,6 +34,7 @@ public class ChannelOverview extends BaseDto implements Comparable {
private String url;
private Long relevantPackages;
private Long originalId;
+ private List<PackageDto> packages = new ArrayList<PackageDto>();
/**
@@ -225,4 +229,24 @@ public class ChannelOverview extends BaseDto implements Comparable {
return hasSubscription;
}
+
+
+ /**
+ * @return Returns the packages.
+ */
+ public List<PackageDto> getPackages() {
+ return packages;
+ }
+
+
+
+ /**
+ * @param packagesIn The packages to set.
+ */
+ public void setPackages(List<PackageDto> packagesIn) {
+ this.packages = packagesIn;
+ }
+
+
+
}
diff --git a/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java b/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java
index f270ffc..9221b59 100644
--- a/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/events/CloneErrataAction.java
@@ -21,7 +21,6 @@ import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.errata.impl.PublishedClonedErrata;
import com.redhat.rhn.frontend.action.channel.manage.PublishErrataHelper;
-import com.redhat.rhn.manager.errata.ErrataManager;
import com.redhat.rhn.manager.errata.cache.ErrataCacheManager;
import org.apache.log4j.Logger;
@@ -63,7 +62,6 @@ public class CloneErrataAction
Errata published = PublishErrataHelper.cloneErrataFast(errata,
msg.getUser().getOrg());
published.setChannels(channelSet);
- ErrataManager.refreshErrataFiles(currChan, published);
}
ErrataCacheManager.insertCacheForChannelErrata(cids, errata);
diff --git a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
index c4e2039..d573a1a 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/ChannelManager.java
@@ -2404,6 +2404,20 @@ public class ChannelManager extends BaseManager {
ErrataCacheManager.deleteCacheEntriesForChannelErrata(chan.getId(), ids);
}
+ /**
+ * List packages that are contained in an errata and in a channel
+ * @param chan The channel
+ * @param errata the Errata
+ * @return A list of PackageDto that are in the channel and errata
+ */
+ public static List<PackageDto> listErrataPackages(Channel chan, Errata errata) {
+ Map params = new HashMap();
+ params.put("cid", chan.getId());
+ params.put("eid", errata.getId());
+ SelectMode mode = ModeFactory.getMode(
+ "Channel_queries", "channel_errata_packages");
+ return (List<PackageDto>) mode.execute(params);
+ }
}
diff --git a/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java b/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java
index 44aea87..4f52632 100644
--- a/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java
+++ b/java/code/src/com/redhat/rhn/manager/channel/test/ChannelManagerTest.java
@@ -30,6 +30,8 @@ import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.errata.test.ErrataFactoryTest;
import com.redhat.rhn.domain.org.Org;
import com.redhat.rhn.domain.org.OrgFactory;
+import com.redhat.rhn.domain.rhnpackage.Package;
+import com.redhat.rhn.domain.rhnpackage.test.PackageTest;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.role.RoleFactory;
import com.redhat.rhn.domain.server.Server;
@@ -40,6 +42,7 @@ import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.ChannelOverview;
import com.redhat.rhn.frontend.dto.ErrataOverview;
import com.redhat.rhn.frontend.dto.EssentialChannelDto;
+import com.redhat.rhn.frontend.dto.PackageDto;
import com.redhat.rhn.frontend.dto.PackageOverview;
import com.redhat.rhn.frontend.dto.SystemsPerChannelDto;
import com.redhat.rhn.frontend.xmlrpc.NoSuchChannelException;
@@ -713,4 +716,35 @@ public class ChannelManagerTest extends BaseTestCaseWithUser {
c = ChannelManager.lookupByLabel(user.getOrg(), c.getLabel());
assertFalse(c.getErratas().contains(eids));
}
+
+ public void testListErrataPackages() throws Exception {
+
+ Channel c = ChannelFactoryTest.createBaseChannel(user);
+ Errata e = ErrataFactoryTest.createTestErrata(user.getOrg().getId());
+
+ Package bothP = PackageTest.createTestPackage();
+ Package channelP = PackageTest.createTestPackage();
+ Package errataP = PackageTest.createTestPackage();
+
+
+ c.addPackage(bothP);
+ e.addPackage(bothP);
+
+ c.addPackage(channelP);
+ e.addPackage(errataP);
+
+ c.addErrata(e);
+
+ c = (Channel) TestUtils.saveAndReload(c);
+ e = (Errata) TestUtils.saveAndReload(e);
+
+ bothP = (Package) TestUtils.saveAndReload(bothP);
+
+
+ List<PackageDto> list = ChannelManager.listErrataPackages(c, e);
+ assertEquals(list.size(), 1);
+ assertEquals(list.get(0).getId(), (bothP.getId()));
+
+
+ }
}
diff --git a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
index 2a48b22..6a0070c 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -31,8 +31,6 @@ import com.redhat.rhn.domain.errata.Errata;
import com.redhat.rhn.domain.errata.ErrataFactory;
import com.redhat.rhn.domain.errata.ErrataFile;
import com.redhat.rhn.domain.errata.ErrataFileType;
-import com.redhat.rhn.domain.errata.impl.PublishedErrataFile;
-import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.rhnset.RhnSetFactory;
import com.redhat.rhn.domain.role.RoleFactory;
@@ -56,7 +54,6 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -913,51 +910,6 @@ public class ErrataManager extends BaseManager {
public static List lookupByOriginal(User user, Errata original) {
return ErrataFactory.lookupByOriginal(user.getOrg(), original);
}
-
- /**
- * Refresh the ErrataFiles associated with this Errata and the passed in Channel.
- * @param channelIn to refresh errata files.
- * @param errata of Errata you want to refresh.
- */
- public static void refreshErrataFiles(Channel channelIn, Errata errata) {
- if (log.isDebugEnabled()) {
- log.debug("files? " + (errata.getFiles() != null) + " packages: " +
- (channelIn.getPackages() != null));
- }
- if (errata.getFiles() != null && channelIn.getPackages() != null) {
- log.debug("This errata has files and the channel has packages.");
- Set addedPackages = new HashSet();
- Iterator i = errata.getFiles().iterator();
- while (i.hasNext()) {
- log.debug("loop 2.");
- PublishedErrataFile ef = (PublishedErrataFile) i.next();
- if (log.isDebugEnabled()) {
- log.debug("Working with ef: " + ef.getFileName() +
- " id: " + ef.getId() + " cs: " + ef.getChecksum());
- }
- if (ef.getPackages() != null) {
- Iterator j = ef.getPackages().iterator();
- while (j.hasNext()) {
- Package p = (Package) j.next();
- if (log.isDebugEnabled()) {
- log.debug("Package: " + p.getPackageName().getName() +
- " arch: " + p.getPackageArch().getLabel());
- log.debug("added packages: " + addedPackages);
- }
- if (channelIn.getPackages().contains(p) &&
- !addedPackages.contains(p)) {
- if (log.isDebugEnabled()) {
- log.debug("ChannelHasPackage, adding to ef");
- }
- ef.addChannel(channelIn);
- addedPackages.add(p);
- }
- }
- }
- }
- }
-
- }
/**
* Lookup packages that are associated with errata in the RhnSet "errata_list"
diff --git a/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp b/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp
index 69d9864..69b42b3 100644
--- a/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp
+++ b/java/code/webapp/WEB-INF/pages/errata/erratapackages.jsp
@@ -14,31 +14,28 @@
<h2><bean:message key="packagelist.jsp.header.packages"/></h2>
- <c:if test="${empty files}">
- <div class="page-summary">
- <bean:message key="details.jsp.none"/>
- </div>
- </c:if>
- <c:forEach items="${files}" var="current">
+
+ <c:forEach items="${channels}" var="current">
<div class="page-summary">
+ <b><c:out value="${current.name}"/> </b>
+ <br/>
- <c:if test="${previousChannel != current.channelName}">
- <br/><b>${current.channelName}:</b> <br/>
- </c:if>
-
- <tt>${current.md5sum}</tt>
-
- <c:if test="${not empty current.packageId}">
- <a href="/rhn/software/packages/Details.do?pid=${current.packageId}">${current.filename}</a>
- </c:if>
- <c:if test="${empty current.packageId}">
- ${current.filename}
- </c:if>
- <br/>
+ <c:if test="${empty current.packages}">
+ <div class="page-summary">
+ <bean:message key="details.jsp.none"/>
+ </div>
+ </c:if>
+ <c:forEach items="${current.packages}" var="pack">
+ <tt>${pack.md5sum}</tt>
+ <a href="/rhn/software/packages/Details.do?pid=${pack.id}">
+ <c:out value="${pack.name}"/>
+ </a>
+ <br/>
+ </c:forEach>
+ <br/>
</div>
- <c:set var="previousChannel" value="${current.channelName}" />
</c:forEach>
</body>
</html>
commit 27584de051ab77765c930be917917ae8655d857a
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Tue Mar 31 14:14:25 2009 -0400
adding missing index for errata cache\
between spacewalk 0.4 and 0.5 an index was added to the upgrade sql scripts but was mistakenly left out of the base schema. This commit puts it in the base, and adds it to the 0.5 -> 0.6 upgrade scripts.
diff --git a/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql b/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql
index be40c5f..2776ce8 100644
--- a/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql
+++ b/schema/spacewalk/rhnsat/tables/rhnServerNeededCache_indexes.sql
@@ -31,3 +31,8 @@ create index rhn_snc_eid_idx
tablespace [[128m_tbs]]
nologging;
+create index rhn_snc_speid_idx
+ on rhnServerNeededCache(server_id, package_id, errata_id)
+ parallel
+ tablespace [[128m_tbs]]
+ nologging;
diff --git a/schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql b/schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql
new file mode 100644
index 0000000..e46acff
--- /dev/null
+++ b/schema/spacewalk/upgrade/spacewalk-schema-0.5-to-spacewalk-schema-0.6/100-rhnServerNeededCache_indexes.sql
@@ -0,0 +1,5 @@
+create index rhn_snc_speid_idx
+ on rhnServerNeededCache(server_id, package_id, errata_id)
+ parallel
+ tablespace [[128m_tbs]]
+ nologging;
14 years, 2 months