java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 33
++++++----
java/conf/cobbler/snippets/post_delete_system | 4 -
java/conf/cobbler/snippets/post_reactivation_key | 4 -
3 files changed, 27 insertions(+), 14 deletions(-)
New commits:
commit 6b34c33e1cbf3242a86b26917bfe6a9b03ab6f21
Author: Milan Zazrivec <mzazrivec(a)redhat.com>
Date: Wed Sep 21 17:27:43 2011 +0200
740306 - fix delete -> register reprovisioning scenario
For DELETION and NONE RegistrationType, we don't want to create new
reactivation key, but simply do a "bare metal" type of registration.
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 773dd26..be7c4a3 100644
--- a/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
+++ b/java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java
@@ -14,6 +14,7 @@
*/
package com.redhat.rhn.manager.kickstart;
+import com.redhat.rhn.common.conf.Config;
import com.redhat.rhn.common.conf.ConfigDefaults;
import com.redhat.rhn.common.db.datasource.DataResult;
import com.redhat.rhn.common.db.datasource.ModeFactory;
@@ -62,6 +63,7 @@ import com.redhat.rhn.manager.token.ActivationKeyManager;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
+import org.cobbler.CobblerConnection;
import org.cobbler.SystemRecord;
import java.util.ArrayList;
@@ -567,9 +569,18 @@ public class KickstartScheduleCommand extends BaseSystemOperation {
if (!cobblerOnly) {
// Setup Cobbler system profile
KickstartUrlHelper uhelper = new KickstartUrlHelper(ksdata);
- String tokenList =
- KickstartFormatter.generateActivationKeyString(
- ksdata, kickstartSession);
+ String tokenList;
+
+ if (ksdata.getRegistrationType(null).equals(RegistrationType.REACTIVATION))
{
+ tokenList = KickstartFormatter.generateActivationKeyString(
+ ksdata, kickstartSession);
+ }
+ else {
+ // RegistrationType.DELETION && RegistrationType.NONE
+ tokenList =
org.cobbler.Profile.lookupById(CobblerXMLRPCHelper.getConnection(
+ Config.get().getString(ConfigDefaults.COBBLER_AUTOMATED_USER)),
+ ksdata.getCobblerId()).getRedHatManagementKey();
+ }
CobblerSystemCreateCommand cmd =
getCobblerSystemCreateCommand(user, server,
@@ -681,14 +692,16 @@ public class KickstartScheduleCommand extends BaseSystemOperation {
RegistrationType regType = getKsdata().getRegistrationType(user);
+ if (regType.equals(RegistrationType.REACTIVATION)) {
// Create a new activation key for the target system.
- createKickstartActivationKey(this.user,
- this.ksdata,
- RegistrationType.NONE.equals(regType) ? null : getTargetServer(),
- this.kickstartSession,
- cfgMgmtFlag,
- 1L,
- note);
+ createKickstartActivationKey(this.user,
+ this.ksdata,
+ RegistrationType.REACTIVATION.equals(regType) ? getTargetServer() :
null,
+ this.kickstartSession,
+ cfgMgmtFlag,
+ 1L,
+ note);
+ }
this.createdProfile = processProfileType(this.profileType);
log.debug("** profile created: " + createdProfile);
}
diff --git a/java/conf/cobbler/snippets/post_delete_system
b/java/conf/cobbler/snippets/post_delete_system
index f2a79ca..c11f591 100644
--- a/java/conf/cobbler/snippets/post_delete_system
+++ b/java/conf/cobbler/snippets/post_delete_system
@@ -1,7 +1,7 @@
-%post --interpreter /usr/bin/python
+%post --interpreter /usr/bin/python --nochroot
import xmlrpclib
import os.path
-system_id = "/root/systemid.old"
+system_id = "/tmp/rhn/systemid"
try:
if os.path.exists(system_id):
client = xmlrpclib.Server("http://$http_server/rpc/api")
diff --git a/java/conf/cobbler/snippets/post_reactivation_key
b/java/conf/cobbler/snippets/post_reactivation_key
index ba471d3..369deab 100644
--- a/java/conf/cobbler/snippets/post_reactivation_key
+++ b/java/conf/cobbler/snippets/post_reactivation_key
@@ -2,7 +2,7 @@
try:
import xmlrpclib
import shutil
- import os
+ import sys
import os.path
old_system_id = "/tmp/rhn/systemid"
new_system_id = "/mnt/sysimage/root/systemid.old"
@@ -10,7 +10,7 @@ try:
new_keys = "$redhat_management_key"
for key in new_keys.split(','):
if key.startswith('re-'):
- os.exit(0)
+ sys.exit(0)
if os.path.exists(old_system_id):
client = xmlrpclib.Server("http://$redhat_management_server/rpc/api")
key = client.system.obtain_reactivation_key(open(old_system_id).read())
Show replies by date