Branch 'VADER' - java/spacewalk-java.spec
by Devan Goodwin
java/spacewalk-java.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit c42a3a86517a5b2d5a8c8a97122a6bdbe0b3376d
Author: Devan Goodwin <dgoodwin(a)redhat.com>
Date: Thu Apr 2 15:56:26 2009 -0300
481130 - Move preun scriptlet to taskomatic subpackage.
Was causing error when removing spacewalk-java, as taskomatic was no longer
was installed. Judging by the post scriptlet above, it looks like this
belongs with taskomatic, not java.
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 87c3543..4a91a78 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -204,7 +204,7 @@ rm -rf $RPM_BUILD_ROOT
# This adds the proper /etc/rc*.d links for the script
/sbin/chkconfig --add taskomatic
-%preun
+%preun -n spacewalk-taskomatic
if [ $1 = 0 ] ; then
/sbin/service taskomatic stop >/dev/null 2>&1
/sbin/chkconfig --del taskomatic
15 years, 1 month
Branch 'VADER' - java/code
by Justin Sherrill
java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 3c76a0c7eac81e0f8e628ae83b912a354ff00887
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Thu Apr 2 14:43:57 2009 -0400
added missing import
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
index ff59bb8..69959ee 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
@@ -44,6 +44,7 @@ import com.redhat.rhn.domain.token.ActivationKeyFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.PackageListItem;
import com.redhat.rhn.frontend.dto.ServerPath;
+import com.redhat.rhn.frontend.dto.kickstart.CobblerProfileDto;
import com.redhat.rhn.frontend.dto.kickstart.KickstartDto;
import com.redhat.rhn.manager.action.ActionManager;
import com.redhat.rhn.manager.channel.ChannelManager;
15 years, 1 month
java/code
by Justin Sherrill
java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 802ce9d29f66fd246b88adb55d50c46c4954d210
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Thu Apr 2 14:43:57 2009 -0400
added missing import
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
index ff59bb8..69959ee 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
@@ -44,6 +44,7 @@ import com.redhat.rhn.domain.token.ActivationKeyFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.PackageListItem;
import com.redhat.rhn.frontend.dto.ServerPath;
+import com.redhat.rhn.frontend.dto.kickstart.CobblerProfileDto;
import com.redhat.rhn.frontend.dto.kickstart.KickstartDto;
import com.redhat.rhn.manager.action.ActionManager;
import com.redhat.rhn.manager.channel.ChannelManager;
15 years, 1 month
Branch 'VADER' - java/code
by Justin Sherrill
java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit b611341edd17283fc89d9fdfde0fe4b8cdfe8d94
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Thu Apr 2 14:40:04 2009 -0400
487393 - fixed issue where list count was wrong on provisioning page
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
index 12f162b..ff59bb8 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
@@ -44,7 +44,6 @@ import com.redhat.rhn.domain.token.ActivationKeyFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.PackageListItem;
import com.redhat.rhn.frontend.dto.ServerPath;
-import com.redhat.rhn.frontend.dto.kickstart.CobblerProfileDto;
import com.redhat.rhn.frontend.dto.kickstart.KickstartDto;
import com.redhat.rhn.manager.action.ActionManager;
import com.redhat.rhn.manager.channel.ChannelManager;
@@ -433,7 +432,9 @@ public class KickstartScheduleCommand extends BaseSystemOperation {
if (log.isDebugEnabled()) {
log.debug("got back from cobbler: " + dtos);
}
+ retval.setTotalSize(retval.getTotalSize() + dtos.size());
retval.addAll(dtos);
+
return retval;
}
15 years, 1 month
java/code
by Justin Sherrill
java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit 3f0a3cf23405c6047b398016d0927167a61923dc
Author: Justin Sherrill <jsherril(a)redhat.com>
Date: Thu Apr 2 14:40:04 2009 -0400
487393 - fixed issue where list count was wrong on provisioning page
diff --git a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
index 12f162b..ff59bb8 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
@@ -44,7 +44,6 @@ import com.redhat.rhn.domain.token.ActivationKeyFactory;
import com.redhat.rhn.domain.user.User;
import com.redhat.rhn.frontend.dto.PackageListItem;
import com.redhat.rhn.frontend.dto.ServerPath;
-import com.redhat.rhn.frontend.dto.kickstart.CobblerProfileDto;
import com.redhat.rhn.frontend.dto.kickstart.KickstartDto;
import com.redhat.rhn.manager.action.ActionManager;
import com.redhat.rhn.manager.channel.ChannelManager;
@@ -433,7 +432,9 @@ public class KickstartScheduleCommand extends BaseSystemOperation {
if (log.isDebugEnabled()) {
log.debug("got back from cobbler: " + dtos);
}
+ retval.setTotalSize(retval.getTotalSize() + dtos.size());
retval.addAll(dtos);
+
return retval;
}
15 years, 1 month
java/code
by Brad Buckingham
java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java | 16 --
java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java | 63 ++++++++--
java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java | 36 +++--
java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java | 35 +++--
4 files changed, 104 insertions(+), 46 deletions(-)
New commits:
commit aabbd6ec2a24997878f42050998e4852862314dc
Author: Brad Buckingham <bbuckingham(a)redhat.com>
Date: Thu Apr 2 13:24:21 2009 -0400
493111 - api - errata.delete added & fixed add/removePackages & setDetails to only modify custom errata
There were a few notable changes introduced with this commit:
1. added the errata.delete api
2. updated errata addPackages/removePackages/setDetails to throw an exception
if the user attempts to make changes to a non-custom errata (e.g. RH)
3. refactored the logic used by the UI to delete errata... we currently have
multiple pages for deleting errata using the 'published' list, 'unpublished'
list as well as deleting from the errata details page; however, the logic
across these deletions was inconsistent wrt removing packages associated
the errata from the channel where the errata is published to... updated to
make this consistent...
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java
index 56e16a0..a176656 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java
@@ -14,9 +14,7 @@
*/
package com.redhat.rhn.frontend.action.errata;
-import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.Errata;
-import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.StrutsDelegate;
import com.redhat.rhn.frontend.struts.StrutsDelegateFactory;
@@ -31,7 +29,6 @@ import org.apache.struts.actions.LookupDispatchAction;
import java.util.HashMap;
import java.util.Map;
-import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -86,19 +83,6 @@ public class DeleteErratumAction extends LookupDispatchAction {
RequestContext requestContext = new RequestContext(request);
Errata errata = requestContext.lookupErratum();
-
- //remove the packages in the channels associated with the errata
- Set<Package> errataPacks = errata.getPackages();
-
- Set<Channel> errataChans = errata.getChannels();
- for (Channel chan : errataChans) {
- for (Package pack : errataPacks) {
- if (chan.getPackages().contains(pack)) {
- chan.getPackages().remove(pack);
- }
- }
- }
-
ErrataManager.deleteErratum(requestContext.getLoggedInUser(), errata.getId());
ActionMessages msgs = new ActionMessages();
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java
index 4589656..8c6cd88 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java
@@ -36,6 +36,7 @@ import com.redhat.rhn.frontend.xmlrpc.DuplicateErrataException;
import com.redhat.rhn.frontend.xmlrpc.InvalidAdvisoryReleaseException;
import com.redhat.rhn.frontend.xmlrpc.InvalidAdvisoryTypeException;
import com.redhat.rhn.frontend.xmlrpc.InvalidChannelLabelException;
+import com.redhat.rhn.frontend.xmlrpc.InvalidErrataException;
import com.redhat.rhn.frontend.xmlrpc.InvalidPackageException;
import com.redhat.rhn.frontend.xmlrpc.MissingErrataAttributeException;
import com.redhat.rhn.frontend.xmlrpc.NoChannelsSelectedException;
@@ -251,7 +252,8 @@ public class ErrataHandler extends BaseHandler {
* @return 1 on success, exception thrown otherwise.
*
* @xmlrpc.doc Set erratum details. All arguments are optional and will only be modified
- * if included in the struct.
+ * if included in the struct. This method will only allow for modification of custom
+ * errata created either through the UI or API.
* @xmlrpc.param #param("string", "sessionKey")
* @xmlrpc.param #param("string", "advisoryName")
* @xmlrpc.param
@@ -287,6 +289,12 @@ public class ErrataHandler extends BaseHandler {
User loggedInUser = getLoggedInUser(sessionKey);
Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
if (details.containsKey("synopsis")) {
errata.setSynopsis((String)details.get("synopsis"));
}
@@ -609,7 +617,8 @@ public class ErrataHandler extends BaseHandler {
* given advisoryName cannot be found
*
* @xmlrpc.doc Add a set of packages to an erratum
- * with the given advisory name.
+ * with the given advisory name. This method will only allow for modification
+ * of custom errata created either through the UI or API.
* @xmlrpc.param #session_key()
* @xmlrpc.param #param("string", "advisoryName")
* @xmlrpc.param #array_single("int", "packageId")
@@ -623,6 +632,12 @@ public class ErrataHandler extends BaseHandler {
User loggedInUser = getLoggedInUser(sessionKey);
Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
int packagesAdded = 0;
for (Integer packageId : packageIds) {
@@ -659,7 +674,8 @@ public class ErrataHandler extends BaseHandler {
* given advisoryName cannot be found
*
* @xmlrpc.doc Remove a set of packages from an erratum
- * with the given advisory name.
+ * with the given advisory name. This method will only allow for modification
+ * of custom errata created either through the UI or API.
* @xmlrpc.param #session_key()
* @xmlrpc.param #param("string", "advisoryName")
* @xmlrpc.param #array_single("int", "packageId")
@@ -673,6 +689,12 @@ public class ErrataHandler extends BaseHandler {
User loggedInUser = getLoggedInUser(sessionKey);
Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
int packagesRemoved = 0;
for (Integer packageId : packageIds) {
@@ -727,7 +749,7 @@ public class ErrataHandler extends BaseHandler {
return errata;
}
-
+
/**
* Clones a list of errata into a specified channel
*
@@ -893,14 +915,12 @@ public class ErrataHandler extends BaseHandler {
newErrata = ErrataManager.createNewErrata();
newErrata.setOrg(loggedInUser.getOrg());
-
//all required
newErrata.setSynopsis(synopsis);
newErrata.setAdvisory(advisoryName + "-" + advisoryRelease.toString());
newErrata.setAdvisoryName(advisoryName);
newErrata.setAdvisoryRel(new Long(advisoryRelease.longValue()));
-
if (advisoryType.equals("Security Advisory") ||
advisoryType.equals("Product Enhancement Advisory") ||
advisoryType.equals("Bug Fix Advisory")) {
@@ -933,7 +953,6 @@ public class ErrataHandler extends BaseHandler {
String keyword = (String) itr.next();
newErrata.addKeyword(keyword);
}
-
newErrata.setPackages(new HashSet());
for (Iterator itr = packageIds.iterator(); itr.hasNext();) {
@@ -958,7 +977,35 @@ public class ErrataHandler extends BaseHandler {
return newErrata;
}
}
-
+
+ /**
+ * Delete an erratum.
+ * @param sessionKey session of the logged in user
+ * @param advisoryName The advisory Name of the erratum to delete
+ * @throws FaultException if unknown or invalid erratum is provided.
+ * @return 1 on success, exception thrown otherwise.
+ *
+ * @xmlrpc.doc Delete an erratum. This method will only allow for deletion
+ * of custom errata created either through the UI or API.
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("string", "advisoryName")
+ * @xmlrpc.returntype #return_int_success()
+ */
+ public Integer delete(String sessionKey, String advisoryName)
+ throws FaultException {
+ User loggedInUser = getLoggedInUser(sessionKey);
+ Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
+ ErrataManager.deleteErratum(loggedInUser, errata.getId());
+ return 1;
+ }
+
/**
* Publishes an existing (unpublished) errata to a set of channels
* @param sessionKey session of the logged in user
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java
index 774e65e..aae045d 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java
@@ -57,7 +57,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
super.setUp();
user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
}
-
public void testGetDetails() throws Exception {
Errata errata = ErrataFactoryTest.createTestErrata(user.getOrg().getId());
@@ -91,7 +90,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
// we expect this test to fail
assertTrue(true);
}
-
}
public void testSetDetails() throws Exception {
@@ -349,10 +347,8 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
chanPack.setPackageName(errataPack.getPackageName());
chanPack.setPackageEvr(evr);
-
channel.addPackage(chanPack);
-
Errata toClone = ErrataFactoryTest.createTestPublishedErrata(
admin.getOrg().getId());
toClone.addPackage(errataPack);
@@ -373,7 +369,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Channel sameChannel = ((Channel)channels.toArray()[0]);
assertEquals(channel, sameChannel);
-
Set packs = sameChannel.getPackages();
assertEquals(packs.size(), 2);
@@ -381,7 +376,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
assertTrue(packs.contains(chanPack));
}
-
public void testCreate() throws Exception {
@@ -389,7 +383,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Map errataInfo = new HashMap();
-
String advisoryName = TestUtils.randomString();
populateErrataInfo(errataInfo);
errataInfo.put("advisory_name", advisoryName);
@@ -410,6 +403,30 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
}
+ public void testDelete() throws Exception {
+ Errata errata = ErrataFactoryTest.createTestErrata(user.getOrg().getId());
+ Errata check = ErrataManager.lookupErrata(errata.getId(), user);
+ assertTrue(check.getAdvisory().equals(errata.getAdvisory()));
+ assertTrue(check.getId().equals(errata.getId()));
+
+ // delete a published erratum
+ int result = handler.delete(adminKey, errata.getAdvisory());
+ assertEquals(1, result);
+ errata = (Errata) TestUtils.reload(errata);
+ assertNull(errata);
+
+ errata = ErrataFactoryTest.createTestUnpublishedErrata(user.getOrg().getId());
+ check = ErrataManager.lookupErrata(errata.getId(), user);
+ assertTrue(check.getAdvisory().equals(errata.getAdvisory()));
+ assertTrue(check.getId().equals(errata.getId()));
+
+ // delete an unpublished erratum
+ result = handler.delete(adminKey, errata.getAdvisory());
+ assertEquals(1, result);
+ errata = (Errata) TestUtils.reload(errata);
+ assertNull(errata);
+ }
+
private void populateErrataInfo(Map errataInfo) {
errataInfo.put("synopsis", TestUtils.randomString());
errataInfo.put("advisory_release", new Integer(2));
@@ -454,7 +471,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Map errataInfo = new HashMap();
-
String advisoryName = TestUtils.randomString();
populateErrataInfo(errataInfo);
errataInfo.put("advisory_name", advisoryName);
@@ -482,7 +498,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Map errataInfo = new HashMap();
-
String advisoryName = TestUtils.randomString();
populateErrataInfo(errataInfo);
errataInfo.put("advisory_name", advisoryName);
@@ -516,9 +531,7 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
}
-
public void testListByDate() throws Exception {
-
Calendar cal = Calendar.getInstance();
Date earlyDate = cal.getTime();
@@ -546,5 +559,4 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
assertEquals(array[0], earlyErrata);
assertEquals(array[1], laterErrata);
}
-
}
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 6a0070c..e77cc7a 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -31,6 +31,7 @@ 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.rhnpackage.Package;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.rhnset.RhnSetFactory;
import com.redhat.rhn.domain.role.RoleFactory;
@@ -455,14 +456,6 @@ public class ErrataManager extends BaseManager {
//
for (Iterator erratas = dr.iterator(); erratas.hasNext();) {
OwnedErrata oe = (OwnedErrata) erratas.next();
- DataResult channels = ErrataManager.applicableChannels(
- oe.getId().longValue(), user.getOrg().getId(), null);
- for (Iterator chanItr = channels.iterator(); chanItr.hasNext();) {
- Map chan = (Map)chanItr.next();
- String lbl = chan.get("label").toString();
- ChannelManager.queueChannelChange(lbl,
- "java::deleteErrata", oe.getAdvisory());
- }
deleteErratum(user, new Long(oe.getId().longValue()));
}
@@ -488,6 +481,30 @@ public class ErrataManager extends BaseManager {
* @param errataId The erratum for deletion
*/
public static void deleteErratum(User user, Long errataId) {
+
+ Errata errata = ErrataManager.lookupErrata(errataId, user);
+ if (errata != null) {
+ if (errata.isPublished()) {
+ // If this is a published errata, we should remove the packages in the
+ // channels associated with the errata
+ //
+ // In addition, for each of the channels associated with the errata,
+ // mark them as 'metadata may have changed'
+ Set<Package> errataPacks = errata.getPackages();
+ Set<Channel> errataChans = errata.getChannels();
+ for (Channel chan : errataChans) {
+ for (Package pack : errataPacks) {
+ if (chan.getPackages().contains(pack)) {
+ chan.getPackages().remove(pack);
+ }
+ }
+
+ ChannelManager.queueChannelChange(chan.getLabel(),
+ "java::deleteErrata", errata.getAdvisory());
+ }
+ }
+ }
+
List modes = new LinkedList();
modes.add(ModeFactory.getWriteMode("Errata_queries", "deletePaidErrataTempCache"));
modes.add(ModeFactory.getWriteMode("Errata_queries", "deleteErrataFile"));
@@ -511,9 +528,7 @@ public class ErrataManager extends BaseManager {
mode.executeUpdate(errataParams);
break;
}
-
}
-
}
/**
15 years, 1 month
Branch 'VADER' - java/code
by Brad Buckingham
java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java | 16 --
java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java | 63 ++++++++--
java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java | 36 +++--
java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java | 35 +++--
4 files changed, 104 insertions(+), 46 deletions(-)
New commits:
commit ef28b81e4f725f14beefd847f0f51420d7e92ba9
Author: Brad Buckingham <bbuckingham(a)redhat.com>
Date: Thu Apr 2 13:24:21 2009 -0400
493111 - api - errata.delete added & fixed add/removePackages & setDetails to only modify custom errata
There were a few notable changes introduced with this commit:
1. added the errata.delete api
2. updated errata addPackages/removePackages/setDetails to throw an exception
if the user attempts to make changes to a non-custom errata (e.g. RH)
3. refactored the logic used by the UI to delete errata... we currently have
multiple pages for deleting errata using the 'published' list, 'unpublished'
list as well as deleting from the errata details page; however, the logic
across these deletions was inconsistent wrt removing packages associated
the errata from the channel where the errata is published to... updated to
make this consistent...
diff --git a/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java b/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java
index 56e16a0..a176656 100644
--- a/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java
+++ b/java/code/src/com/redhat/rhn/frontend/action/errata/DeleteErratumAction.java
@@ -14,9 +14,7 @@
*/
package com.redhat.rhn.frontend.action.errata;
-import com.redhat.rhn.domain.channel.Channel;
import com.redhat.rhn.domain.errata.Errata;
-import com.redhat.rhn.domain.rhnpackage.Package;
import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.frontend.struts.StrutsDelegate;
import com.redhat.rhn.frontend.struts.StrutsDelegateFactory;
@@ -31,7 +29,6 @@ import org.apache.struts.actions.LookupDispatchAction;
import java.util.HashMap;
import java.util.Map;
-import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -86,19 +83,6 @@ public class DeleteErratumAction extends LookupDispatchAction {
RequestContext requestContext = new RequestContext(request);
Errata errata = requestContext.lookupErratum();
-
- //remove the packages in the channels associated with the errata
- Set<Package> errataPacks = errata.getPackages();
-
- Set<Channel> errataChans = errata.getChannels();
- for (Channel chan : errataChans) {
- for (Package pack : errataPacks) {
- if (chan.getPackages().contains(pack)) {
- chan.getPackages().remove(pack);
- }
- }
- }
-
ErrataManager.deleteErratum(requestContext.getLoggedInUser(), errata.getId());
ActionMessages msgs = new ActionMessages();
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java
index 4589656..8c6cd88 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/ErrataHandler.java
@@ -36,6 +36,7 @@ import com.redhat.rhn.frontend.xmlrpc.DuplicateErrataException;
import com.redhat.rhn.frontend.xmlrpc.InvalidAdvisoryReleaseException;
import com.redhat.rhn.frontend.xmlrpc.InvalidAdvisoryTypeException;
import com.redhat.rhn.frontend.xmlrpc.InvalidChannelLabelException;
+import com.redhat.rhn.frontend.xmlrpc.InvalidErrataException;
import com.redhat.rhn.frontend.xmlrpc.InvalidPackageException;
import com.redhat.rhn.frontend.xmlrpc.MissingErrataAttributeException;
import com.redhat.rhn.frontend.xmlrpc.NoChannelsSelectedException;
@@ -251,7 +252,8 @@ public class ErrataHandler extends BaseHandler {
* @return 1 on success, exception thrown otherwise.
*
* @xmlrpc.doc Set erratum details. All arguments are optional and will only be modified
- * if included in the struct.
+ * if included in the struct. This method will only allow for modification of custom
+ * errata created either through the UI or API.
* @xmlrpc.param #param("string", "sessionKey")
* @xmlrpc.param #param("string", "advisoryName")
* @xmlrpc.param
@@ -287,6 +289,12 @@ public class ErrataHandler extends BaseHandler {
User loggedInUser = getLoggedInUser(sessionKey);
Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
if (details.containsKey("synopsis")) {
errata.setSynopsis((String)details.get("synopsis"));
}
@@ -609,7 +617,8 @@ public class ErrataHandler extends BaseHandler {
* given advisoryName cannot be found
*
* @xmlrpc.doc Add a set of packages to an erratum
- * with the given advisory name.
+ * with the given advisory name. This method will only allow for modification
+ * of custom errata created either through the UI or API.
* @xmlrpc.param #session_key()
* @xmlrpc.param #param("string", "advisoryName")
* @xmlrpc.param #array_single("int", "packageId")
@@ -623,6 +632,12 @@ public class ErrataHandler extends BaseHandler {
User loggedInUser = getLoggedInUser(sessionKey);
Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
int packagesAdded = 0;
for (Integer packageId : packageIds) {
@@ -659,7 +674,8 @@ public class ErrataHandler extends BaseHandler {
* given advisoryName cannot be found
*
* @xmlrpc.doc Remove a set of packages from an erratum
- * with the given advisory name.
+ * with the given advisory name. This method will only allow for modification
+ * of custom errata created either through the UI or API.
* @xmlrpc.param #session_key()
* @xmlrpc.param #param("string", "advisoryName")
* @xmlrpc.param #array_single("int", "packageId")
@@ -673,6 +689,12 @@ public class ErrataHandler extends BaseHandler {
User loggedInUser = getLoggedInUser(sessionKey);
Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
int packagesRemoved = 0;
for (Integer packageId : packageIds) {
@@ -727,7 +749,7 @@ public class ErrataHandler extends BaseHandler {
return errata;
}
-
+
/**
* Clones a list of errata into a specified channel
*
@@ -893,14 +915,12 @@ public class ErrataHandler extends BaseHandler {
newErrata = ErrataManager.createNewErrata();
newErrata.setOrg(loggedInUser.getOrg());
-
//all required
newErrata.setSynopsis(synopsis);
newErrata.setAdvisory(advisoryName + "-" + advisoryRelease.toString());
newErrata.setAdvisoryName(advisoryName);
newErrata.setAdvisoryRel(new Long(advisoryRelease.longValue()));
-
if (advisoryType.equals("Security Advisory") ||
advisoryType.equals("Product Enhancement Advisory") ||
advisoryType.equals("Bug Fix Advisory")) {
@@ -933,7 +953,6 @@ public class ErrataHandler extends BaseHandler {
String keyword = (String) itr.next();
newErrata.addKeyword(keyword);
}
-
newErrata.setPackages(new HashSet());
for (Iterator itr = packageIds.iterator(); itr.hasNext();) {
@@ -958,7 +977,35 @@ public class ErrataHandler extends BaseHandler {
return newErrata;
}
}
-
+
+ /**
+ * Delete an erratum.
+ * @param sessionKey session of the logged in user
+ * @param advisoryName The advisory Name of the erratum to delete
+ * @throws FaultException if unknown or invalid erratum is provided.
+ * @return 1 on success, exception thrown otherwise.
+ *
+ * @xmlrpc.doc Delete an erratum. This method will only allow for deletion
+ * of custom errata created either through the UI or API.
+ * @xmlrpc.param #session_key()
+ * @xmlrpc.param #param("string", "advisoryName")
+ * @xmlrpc.returntype #return_int_success()
+ */
+ public Integer delete(String sessionKey, String advisoryName)
+ throws FaultException {
+ User loggedInUser = getLoggedInUser(sessionKey);
+ Errata errata = lookupErrata(advisoryName, loggedInUser.getOrg());
+
+ if (errata.getOrg() == null) {
+ // Errata in the null org should not be modified; therefore, this is
+ // considered an invalid errata for this request
+ throw new InvalidErrataException(errata.getAdvisoryName());
+ }
+
+ ErrataManager.deleteErratum(loggedInUser, errata.getId());
+ return 1;
+ }
+
/**
* Publishes an existing (unpublished) errata to a set of channels
* @param sessionKey session of the logged in user
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java
index 774e65e..aae045d 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/errata/test/ErrataHandlerTest.java
@@ -57,7 +57,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
super.setUp();
user = UserTestUtils.createUser("testUser", admin.getOrg().getId());
}
-
public void testGetDetails() throws Exception {
Errata errata = ErrataFactoryTest.createTestErrata(user.getOrg().getId());
@@ -91,7 +90,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
// we expect this test to fail
assertTrue(true);
}
-
}
public void testSetDetails() throws Exception {
@@ -349,10 +347,8 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
chanPack.setPackageName(errataPack.getPackageName());
chanPack.setPackageEvr(evr);
-
channel.addPackage(chanPack);
-
Errata toClone = ErrataFactoryTest.createTestPublishedErrata(
admin.getOrg().getId());
toClone.addPackage(errataPack);
@@ -373,7 +369,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Channel sameChannel = ((Channel)channels.toArray()[0]);
assertEquals(channel, sameChannel);
-
Set packs = sameChannel.getPackages();
assertEquals(packs.size(), 2);
@@ -381,7 +376,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
assertTrue(packs.contains(chanPack));
}
-
public void testCreate() throws Exception {
@@ -389,7 +383,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Map errataInfo = new HashMap();
-
String advisoryName = TestUtils.randomString();
populateErrataInfo(errataInfo);
errataInfo.put("advisory_name", advisoryName);
@@ -410,6 +403,30 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
}
+ public void testDelete() throws Exception {
+ Errata errata = ErrataFactoryTest.createTestErrata(user.getOrg().getId());
+ Errata check = ErrataManager.lookupErrata(errata.getId(), user);
+ assertTrue(check.getAdvisory().equals(errata.getAdvisory()));
+ assertTrue(check.getId().equals(errata.getId()));
+
+ // delete a published erratum
+ int result = handler.delete(adminKey, errata.getAdvisory());
+ assertEquals(1, result);
+ errata = (Errata) TestUtils.reload(errata);
+ assertNull(errata);
+
+ errata = ErrataFactoryTest.createTestUnpublishedErrata(user.getOrg().getId());
+ check = ErrataManager.lookupErrata(errata.getId(), user);
+ assertTrue(check.getAdvisory().equals(errata.getAdvisory()));
+ assertTrue(check.getId().equals(errata.getId()));
+
+ // delete an unpublished erratum
+ result = handler.delete(adminKey, errata.getAdvisory());
+ assertEquals(1, result);
+ errata = (Errata) TestUtils.reload(errata);
+ assertNull(errata);
+ }
+
private void populateErrataInfo(Map errataInfo) {
errataInfo.put("synopsis", TestUtils.randomString());
errataInfo.put("advisory_release", new Integer(2));
@@ -454,7 +471,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Map errataInfo = new HashMap();
-
String advisoryName = TestUtils.randomString();
populateErrataInfo(errataInfo);
errataInfo.put("advisory_name", advisoryName);
@@ -482,7 +498,6 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
Map errataInfo = new HashMap();
-
String advisoryName = TestUtils.randomString();
populateErrataInfo(errataInfo);
errataInfo.put("advisory_name", advisoryName);
@@ -516,9 +531,7 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
}
-
public void testListByDate() throws Exception {
-
Calendar cal = Calendar.getInstance();
Date earlyDate = cal.getTime();
@@ -546,5 +559,4 @@ public class ErrataHandlerTest extends BaseHandlerTestCase {
assertEquals(array[0], earlyErrata);
assertEquals(array[1], laterErrata);
}
-
}
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 6a0070c..e77cc7a 100644
--- a/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
+++ b/java/code/src/com/redhat/rhn/manager/errata/ErrataManager.java
@@ -31,6 +31,7 @@ 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.rhnpackage.Package;
import com.redhat.rhn.domain.rhnset.RhnSet;
import com.redhat.rhn.domain.rhnset.RhnSetFactory;
import com.redhat.rhn.domain.role.RoleFactory;
@@ -455,14 +456,6 @@ public class ErrataManager extends BaseManager {
//
for (Iterator erratas = dr.iterator(); erratas.hasNext();) {
OwnedErrata oe = (OwnedErrata) erratas.next();
- DataResult channels = ErrataManager.applicableChannels(
- oe.getId().longValue(), user.getOrg().getId(), null);
- for (Iterator chanItr = channels.iterator(); chanItr.hasNext();) {
- Map chan = (Map)chanItr.next();
- String lbl = chan.get("label").toString();
- ChannelManager.queueChannelChange(lbl,
- "java::deleteErrata", oe.getAdvisory());
- }
deleteErratum(user, new Long(oe.getId().longValue()));
}
@@ -488,6 +481,30 @@ public class ErrataManager extends BaseManager {
* @param errataId The erratum for deletion
*/
public static void deleteErratum(User user, Long errataId) {
+
+ Errata errata = ErrataManager.lookupErrata(errataId, user);
+ if (errata != null) {
+ if (errata.isPublished()) {
+ // If this is a published errata, we should remove the packages in the
+ // channels associated with the errata
+ //
+ // In addition, for each of the channels associated with the errata,
+ // mark them as 'metadata may have changed'
+ Set<Package> errataPacks = errata.getPackages();
+ Set<Channel> errataChans = errata.getChannels();
+ for (Channel chan : errataChans) {
+ for (Package pack : errataPacks) {
+ if (chan.getPackages().contains(pack)) {
+ chan.getPackages().remove(pack);
+ }
+ }
+
+ ChannelManager.queueChannelChange(chan.getLabel(),
+ "java::deleteErrata", errata.getAdvisory());
+ }
+ }
+ }
+
List modes = new LinkedList();
modes.add(ModeFactory.getWriteMode("Errata_queries", "deletePaidErrataTempCache"));
modes.add(ModeFactory.getWriteMode("Errata_queries", "deleteErrataFile"));
@@ -511,9 +528,7 @@ public class ErrataManager extends BaseManager {
mode.executeUpdate(errataParams);
break;
}
-
}
-
}
/**
15 years, 1 month
Branch 'VADER' - rel-eng/lib
by Jesus M. Rodriguez
rel-eng/lib/spacewalk/releng/tagger.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
New commits:
commit cb312258803a913bfc9ff9be40254676edf05677
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Thu Apr 2 13:04:28 2009 -0400
don't die if this is a new package with no history
diff --git a/rel-eng/lib/spacewalk/releng/tagger.py b/rel-eng/lib/spacewalk/releng/tagger.py
index 995402f..4c5158e 100644
--- a/rel-eng/lib/spacewalk/releng/tagger.py
+++ b/rel-eng/lib/spacewalk/releng/tagger.py
@@ -123,12 +123,17 @@ class VersionTagger(object):
found_changelog = True
old_version = get_latest_tagged_version(self.project_name)
- last_tag = "%s-%s" % (self.project_name, old_version)
- patch_command = \
- "git log --pretty=format:%%s\ \(%%ae\)" \
- " --relative %s..%s -- %s" % \
- (last_tag, "HEAD", ".")
- output = run_command(patch_command)
+
+ # don't die if this is a new package with no history
+ if old_version != None:
+ last_tag = "%s-%s" % (self.project_name, old_version)
+ patch_command = \
+ "git log --pretty=format:%%s\ \(%%ae\)" \
+ " --relative %s..%s -- %s" % \
+ (last_tag, "HEAD", ".")
+ output = run_command(patch_command)
+ else:
+ output = "new package"
fd, name = tempfile.mkstemp()
os.write(fd, "# No changelog entry found; please edit the following\n")
15 years, 1 month
rel-eng/lib
by Jesus M. Rodriguez
rel-eng/lib/spacewalk/releng/tagger.py | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
New commits:
commit 23b0800c9063f403254e4c5dc300b4201f153f12
Author: jesus m. rodriguez <jesusr(a)redhat.com>
Date: Thu Apr 2 13:04:28 2009 -0400
don't die if this is a new package with no history
diff --git a/rel-eng/lib/spacewalk/releng/tagger.py b/rel-eng/lib/spacewalk/releng/tagger.py
index 995402f..4c5158e 100644
--- a/rel-eng/lib/spacewalk/releng/tagger.py
+++ b/rel-eng/lib/spacewalk/releng/tagger.py
@@ -123,12 +123,17 @@ class VersionTagger(object):
found_changelog = True
old_version = get_latest_tagged_version(self.project_name)
- last_tag = "%s-%s" % (self.project_name, old_version)
- patch_command = \
- "git log --pretty=format:%%s\ \(%%ae\)" \
- " --relative %s..%s -- %s" % \
- (last_tag, "HEAD", ".")
- output = run_command(patch_command)
+
+ # don't die if this is a new package with no history
+ if old_version != None:
+ last_tag = "%s-%s" % (self.project_name, old_version)
+ patch_command = \
+ "git log --pretty=format:%%s\ \(%%ae\)" \
+ " --relative %s..%s -- %s" % \
+ (last_tag, "HEAD", ".")
+ output = run_command(patch_command)
+ else:
+ output = "new package"
fd, name = tempfile.mkstemp()
os.write(fd, "# No changelog entry found; please edit the following\n")
15 years, 1 month
Branch 'VADER' - 3 commits - web/modules
by Milan Zazrivec
web/modules/rhn/RHN/SatInstall.pm | 69 ++++++++++++++++++++++++++++++++++++++
1 file changed, 69 insertions(+)
New commits:
commit a9e43a7c3288684390e11a04a2a13589d064b7e0
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Wed Apr 1 13:43:10 2009 +0200
Revert "484702 - remove dead function generate_server_pem from RHN::SatInstall."
This reverts commit 128f4ee11c4bbd18690b4974f51e97db07849c32.
Conflicts:
web/modules/rhn/RHN/SatInstall.pm
generate_server_pem() is still needed by rhn-enable-push.pl
(rhn-upgrade package).
This cannot be replaced by Spacewalk::Setup::generate_server_pem(),
because we need to be able to install rhn-upgrade on all Satellite
versions, even those that do not have Spacewalk::Setup module.
diff --git a/web/modules/rhn/RHN/SatInstall.pm b/web/modules/rhn/RHN/SatInstall.pm
index 4a9d72c..c4be158 100644
--- a/web/modules/rhn/RHN/SatInstall.pm
+++ b/web/modules/rhn/RHN/SatInstall.pm
@@ -475,6 +475,37 @@ sub get_db_population_errors {
return @errors;
}
+sub generate_server_pem {
+ my $class = shift;
+ my %params = validate(@_, { ssl_dir => 1,
+ system => 1,
+ out_file => 0 });
+
+ my @opts;
+
+ push @opts, '--ssl-dir=' . File::Spec->catfile($params{ssl_dir}, $params{system});
+
+ if ($params{out_file}) {
+ push @opts, '--out-file=' . $params{out_file};
+ }
+ my $opts = join(' ', @opts);
+
+ my $content;
+
+ open(FH, "/usr/bin/sudo /usr/bin/rhn-generate-pem.pl $opts |")
+ or throw "(satinstall:generate_pem_error) Could not generate server.pem file: $OS_ERROR";
+
+ my @content = <FH>;
+
+ close(FH);
+
+ if (not $params{out_file}) {
+ $content = join('', @content);
+ }
+
+ return $content;
+}
+
sub is_rpm_installed {
my $class = shift;
my $rpmname = shift;
commit bb9735958eb8051d47fb6a6779858abcc8ac6ca0
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Wed Apr 1 13:23:29 2009 +0200
Revert "484703 - remove dead function generate_satcon_dict from RHN::SatInstall."
This reverts commit 1de6c23dc8c136aa5576252a27ab9a27ee4730bd.
generate_satcon_dict() is still needed by rhn-load-config.pl
(rhn-upgrade package).
This cannot be replaced by Spacewalk::Setup::generate_satcon_dict(),
since we need to be able to install rhn-upgrade package on all satellite
versions, even those that do not have Spacewalk::Setup module.
diff --git a/web/modules/rhn/RHN/SatInstall.pm b/web/modules/rhn/RHN/SatInstall.pm
index 51642ed..4a9d72c 100644
--- a/web/modules/rhn/RHN/SatInstall.pm
+++ b/web/modules/rhn/RHN/SatInstall.pm
@@ -66,6 +66,24 @@ use constant DB_POP_LOG_SIZE => 154000;
# Some utility functions to do the configuration steps needed for the
# satellite install.
+sub generate_satcon_dict {
+ my $class = shift;
+ my %params = validate(@_, { conf_file => { default => DEFAULT_SATCON_DICT },
+ tree => { default => DEFAULT_RHN_SATCON_TREE },
+ });
+
+ my $ret = system("/usr/bin/sudo", "/usr/bin/satcon-build-dictionary.pl",
+ "--tree=" . $params{tree},
+ "--target=" . $params{conf_file});
+
+ if ($ret) {
+ throw 'There was a problem building the satcon dictionary. '
+ . 'See the webserver error log for details.';
+ }
+
+ return;
+}
+
sub satcon_deploy {
my $class = shift;
my %params = validate(@_, { conf_file => { default => DEFAULT_SATCON_DICT },
commit 3216f756468c14163e8ca0a05fe7e30dd0a4b1b5
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Wed Apr 1 13:21:16 2009 +0200
Revert "484705 - remove dead function satcon_deploy from RHN::SatInstall."
This reverts commit 2d680d9b12843b624c6fedfc70a366023a8911bd.
satcon_deploy() is still needed by rhn-enable-monitoring.pl,
rhn-enable-push.pl and rhn-load-config.pl (rhn-upgrade package).
This cannot be replaced by Spacewalk::Setup::satcon_deploy(), because we
need to be able to install rhn-upgrade on all Satellite versions, even
those that do not have Spacewalk::Setup module.
diff --git a/web/modules/rhn/RHN/SatInstall.pm b/web/modules/rhn/RHN/SatInstall.pm
index d2885fe..51642ed 100644
--- a/web/modules/rhn/RHN/SatInstall.pm
+++ b/web/modules/rhn/RHN/SatInstall.pm
@@ -66,6 +66,26 @@ use constant DB_POP_LOG_SIZE => 154000;
# Some utility functions to do the configuration steps needed for the
# satellite install.
+sub satcon_deploy {
+ my $class = shift;
+ my %params = validate(@_, { conf_file => { default => DEFAULT_SATCON_DICT },
+ tree => { default => DEFAULT_RHN_SATCON_TREE },
+ dest => { default => '/etc' },
+ });
+
+ my @opts = ("--source=" . $params{tree}, "--dest=" . $params{dest},
+ "--conf=" . $params{conf_file});
+
+ my $ret = system("/usr/bin/sudo", "/usr/bin/satcon-deploy-tree.pl", @opts);
+
+ if ($ret) {
+ throw 'There was a problem deploying the satellite configuration. '
+ . 'See the webserver error log for details.';
+ }
+
+ return;
+}
+
sub write_config {
my $class = shift;
my $options = shift;
15 years, 1 month