Signed-off-by: Christian Berendt<bere...@b1-systems.de>
---
.../common/db/datasource/xml/General_queries.xml | 2 +-
.../rhn/domain/kickstart/KickstartScript.hbm.xml | 1 +
.../rhn/domain/kickstart/KickstartScript.java | 18 ++++++++++++++++++
.../domain/kickstart/builder/KickstartBuilder.java | 2 +-
.../kickstart/BaseKickstartScriptAction.java | 6 +++++-
.../rhn/frontend/dto/kickstart/ScriptDto.java | 17 +++++++++++++++++
.../frontend/strings/jsp/StringResource_en_US.xml | 14 ++++++++++++++
.../kickstart/BaseKickstartScriptCommand.java | 20 +++++++++++++++++++-
.../kickstart/test/KickstartScriptCommandTest.java | 4 ++--
.../WEB-INF/pages/kickstart/script-form.jspf | 8 ++++++++
.../WEB-INF/pages/kickstart/scriptdelete.jsp | 8 ++++++++
.../webapp/WEB-INF/pages/kickstart/scripts.jsp | 3 +++
java/code/webapp/WEB-INF/struts-config.xml | 1 +
.../spacewalk/common/tables/rhnKickstartScript.sql | 3 ++-
...01-add_rhnKickstartScript_scriptname.sql.oracle | 1 +
...dd_rhnKickstartScript_scriptname.sql.postgresql | 2 ++
16 files changed, 103 insertions(+), 7 deletions(-)
create mode 100644
schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.oracle
create mode 100644
schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.postgresql
diff --git
a/java/code/src/com/redhat/rhn/common/db/datasource/xml/General_queries.xml
b/java/code/src/com/redhat/rhn/common/db/datasource/xml/General_queries.xml
index 6f6be26..4af6f3d 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/General_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/General_queries.xml
@@ -64,7 +64,7 @@ ORDER BY KS.label, KS.id
<mode name="scripts_for_kickstart"
class="com.redhat.rhn.frontend.dto.kickstart.ScriptDto">
<query params="kickstart_id">
- SELECT KS.id, KS.script_type, KS.chroot, KS.interpreter
+ SELECT KS.id, KS.script_type, KS.chroot, KS.interpreter, KS.scriptname
FROM rhnKickstartScript KS
WHERE KS.kickstart_id = :kickstart_id
</query>
diff --git
a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.hbm.xml
b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.hbm.xml
index 9e495c5..2b144db 100644
--- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.hbm.xml
@@ -16,6 +16,7 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
<property name="chroot" column="chroot" not-null="true" type="string"
length="1" />
<property name="raw" column="raw_script" not-null="true" type="yes_no"
/>
<property name="interpreter" column="interpreter" type="string"
length="80" />
+<property name="scriptname" column="scriptname" not-null="true" type="string"
length="40" />
<property name="data" column="data" type="binary" />
<property name="created" column="created" not-null="true"
type="timestamp" insert="false" update="false"/>
diff --git a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.java
b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.java
index 9bee435..e6c9e53 100644
--- a/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.java
+++ b/java/code/src/com/redhat/rhn/domain/kickstart/KickstartScript.java
@@ -32,6 +32,7 @@ public class KickstartScript implements
Comparable<KickstartScript> {
private String scriptType;
private String chroot;
private String interpreter;
+ private String scriptname;
private byte[] data;
private Date created;
private Date modified;
@@ -48,6 +49,22 @@ public class KickstartScript implements
Comparable<KickstartScript> {
}
/**
+ * Getter for scriptname
+ * @return String to get
+ */
+ public String getScriptname() {
+ return this.scriptname;
+ }
+
+ /**
+ * Setter for scriptname
+ * @param scriptnameIn to set
+ */
+ public void setScriptname(String scriptnameIn) {
+ this.scriptname = scriptnameIn;
+ }
+
+ /**
* Getter for id
* @return Long to get
*/
@@ -214,6 +231,7 @@ public class KickstartScript implements
Comparable<KickstartScript> {
public KickstartScript deepCopy(KickstartData ksDataIn) {
KickstartScript cloned = new KickstartScript();
cloned.setChroot(this.getChroot());
+ cloned.setScriptname(this.getScriptname());
cloned.setData(this.getData());
cloned.setInterpreter(this.getInterpreter());
cloned.setKsdata(ksDataIn);
diff --git
a/java/code/src/com/redhat/rhn/domain/kickstart/builder/KickstartBuilder.java
b/java/code/src/com/redhat/rhn/domain/kickstart/builder/KickstartBuilder.java
index b92155e..b5f7721 100644
---
a/java/code/src/com/redhat/rhn/domain/kickstart/builder/KickstartBuilder.java
+++
b/java/code/src/com/redhat/rhn/domain/kickstart/builder/KickstartBuilder.java
@@ -328,7 +328,7 @@ public class KickstartBuilder {
type = KickstartScript.TYPE_POST;
}
- scriptCommand.setScript(interpreter, buf.toString(), type, chroot,
false);
+ scriptCommand.setScript(interpreter, buf.toString(), type, chroot,
false, null);
scriptCommand.store();
}
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/BaseKickstartScriptAction.java
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/BaseKickstartScriptAction.java
index ba54031..fca01ac 100644
---
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/BaseKickstartScriptAction.java
+++
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/BaseKickstartScriptAction.java
@@ -35,6 +35,7 @@ import javax.servlet.http.HttpServletRequest;
*/
public abstract class BaseKickstartScriptAction extends
BaseKickstartEditAction {
+ public static final String SCRIPTNAME = "scriptname";
public static final String CONTENTS = "contents";
public static final String LANGUAGE = "language";
public static final String TYPE = "type";
@@ -73,11 +74,13 @@ public abstract class BaseKickstartScriptAction extends
BaseKickstartEditAction
return new ValidatorError("kickstart.script.toolarge",
LocalizationService.getInstance().formatNumber(new
Long(maxLength)));
}
+
kssc.setScript(form.getString(LANGUAGE),
scriptValue,
form.getString(TYPE),
chroot,
- template);
+ template,
+ form.getString(SCRIPTNAME));
return null;
}
@@ -100,6 +103,7 @@ public abstract class BaseKickstartScriptAction extends
BaseKickstartEditAction
BaseKickstartScriptCommand kssc = (BaseKickstartScriptCommand) cmd;
form.set(CONTENTS, kssc.getContents());
+ form.set(SCRIPTNAME, kssc.getScriptname());
form.set(LANGUAGE, kssc.getLanguage());
form.set(TYPE, kssc.getType());
form.set(NOCHROOT, kssc.getNoChrootVal());
diff --git a/java/code/src/com/redhat/rhn/frontend/dto/kickstart/ScriptDto.java
b/java/code/src/com/redhat/rhn/frontend/dto/kickstart/ScriptDto.java
index ca86155..d9c1626 100644
--- a/java/code/src/com/redhat/rhn/frontend/dto/kickstart/ScriptDto.java
+++ b/java/code/src/com/redhat/rhn/frontend/dto/kickstart/ScriptDto.java
@@ -30,6 +30,7 @@ public class ScriptDto extends BaseDto {
private String chroot;
private String interpreter;
private int position;
+ private String scriptname;
private static final String BASH = "bash";
private static final String PRE = "Pre";
private static final String POST = "Post";
@@ -37,6 +38,22 @@ public class ScriptDto extends BaseDto {
/**
*
+ * @return scriptname
+ */
+ public String getScriptname() {
+ return scriptname;
+ }
+
+ /**
+ *
+ * @param scriptnameIn to set
+ */
+ public void setScriptname(String scriptnameIn) {
+ this.scriptname = scriptnameIn;
+ }
+
+ /**
+ *
* @return chroot
*/
public String getChroot() {
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 3ff73ba..d1c7227 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
@@ -10571,6 +10571,13 @@ Please note that some manual configuration of these
scripts may still be require
</context-group>
</trans-unit>
+<trans-unit id="kickstartscript.jsp.scriptname">
+<source>Script Name</source>
+<context-group name="ctx">
+<context context-type="sourcefile">/rhn/kickstart/Scripts</context>
+</context-group>
+</trans-unit>
+
<trans-unit id="kickstartscript.jsp.language">
<source>Scripting Language</source>
<context-group name="ctx">
@@ -11646,6 +11653,13 @@ Please note that some manual configuration of these
scripts may still be require
</context-group>
</trans-unit>
+<trans-unit id="kickstart.script.scriptname">
+<source>Script Name</source>
+<context-group name="ctx">
+<context
context-type="sourcefile">/rhn/kickstart/KickstartScriptEdit.do</context>
+</context-group>
+</trans-unit>
+
<trans-unit id="kickstart.script.contents">
<source>Script Contents</source>
<context-group name="ctx">
diff --git
a/java/code/src/com/redhat/rhn/manager/kickstart/BaseKickstartScriptCommand.java
b/java/code/src/com/redhat/rhn/manager/kickstart/BaseKickstartScriptCommand.java
index 0ae0ba6..000efdd 100644
---
a/java/code/src/com/redhat/rhn/manager/kickstart/BaseKickstartScriptCommand.java
+++
b/java/code/src/com/redhat/rhn/manager/kickstart/BaseKickstartScriptCommand.java
@@ -61,9 +61,11 @@ public class BaseKickstartScriptCommand extends
BaseKickstartCommand {
* @param typeIn of script (KickstartScript.TYPE_POST or
KickstartScript.TYPE_PRE)
* @param chrootIn value of chroot ("Y" or "N")
* @param templatize whether to templatize the script or not
+ * @param scriptname name of the script
*/
public void setScript(String language, String contentsIn,
- String typeIn, String chrootIn, boolean
templatize) {
+ String typeIn, String chrootIn, boolean
templatize,
+ String scriptname) {
if (!typeIn.equals(KickstartScript.TYPE_POST)&&
!typeIn.equals(KickstartScript.TYPE_PRE)) {
throw new IllegalArgumentException("Unknown script type: " +
typeIn);
@@ -86,10 +88,18 @@ public class BaseKickstartScriptCommand extends
BaseKickstartCommand {
language = language.trim();
}
+ if (StringUtils.isBlank(scriptname)) {
+ scriptname = null;
+ }
+ else {
+ scriptname = scriptname.trim();
+ }
+
this.script.setInterpreter(language);
this.script.setScriptType(typeIn);
this.script.setChroot(chrootIn);
this.script.setRaw(!templatize); //template is the ! of raw
+ this.script.setScriptname(scriptname);
}
/**
@@ -110,6 +120,14 @@ public class BaseKickstartScriptCommand extends
BaseKickstartCommand {
}
/**
+ * Get the name of this script
+ * @return String
+ */
+ public String getScriptname() {
+ return this.script.getScriptname();
+ }
+
+ /**
* Get the type of Script this is. See KickstartScript.TYPE_PRE,
TYPE_POST.
* Defaults to KickstartScript.TYPE_PRE
*
diff --git
a/java/code/src/com/redhat/rhn/manager/kickstart/test/KickstartScriptCommandTest.java
b/java/code/src/com/redhat/rhn/manager/kickstart/test/KickstartScriptCommandTest.java
index 7b9d363..e8a1fcf 100644
---
a/java/code/src/com/redhat/rhn/manager/kickstart/test/KickstartScriptCommandTest.java
+++
b/java/code/src/com/redhat/rhn/manager/kickstart/test/KickstartScriptCommandTest.java
@@ -52,7 +52,7 @@ public class KickstartScriptCommandTest extends
BaseKickstartCommandTestCase {
assertNotNull(cmd.getKickstartData().getScripts());
KickstartScript kss = cmd.getScript();
assertNotNull(kss.getScriptType());
- cmd.setScript(language, contents, KickstartScript.TYPE_PRE, chroot,
false);
+ cmd.setScript(language, contents, KickstartScript.TYPE_PRE, chroot,
false, null);
cmd.store();
ksdata = (KickstartData) reload(ksdata);
assertEquals(contents, cmd.getContents());
@@ -67,7 +67,7 @@ public class KickstartScriptCommandTest extends
BaseKickstartCommandTestCase {
String chroot = "Y";
KickstartScriptEditCommand cmd =
new KickstartScriptEditCommand(ksdata.getId(), kss.getId(), user);
- cmd.setScript(language, contents, KickstartScript.TYPE_PRE, chroot,
true);
+ cmd.setScript(language, contents, KickstartScript.TYPE_PRE, chroot,
true, null);
cmd.store();
ksdata = (KickstartData) reload(ksdata);
assertEquals(contents, cmd.getContents());
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/script-form.jspf
b/java/code/webapp/WEB-INF/pages/kickstart/script-form.jspf
index 15ea3e3..8552e5e 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/script-form.jspf
+++ b/java/code/webapp/WEB-INF/pages/kickstart/script-form.jspf
@@ -21,6 +21,14 @@
</tr>
<tr>
<th>
+<bean:message key="kickstart.script.scriptname"/>
+</th>
+<td>
+<html:text property="scriptname" maxlength="40" size="20" /><br/>
+</td>
+</tr>
+<tr>
+<th>
<rhn:required-field key="kickstart.script.contents"/>
</th>
<td>
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/scriptdelete.jsp
b/java/code/webapp/WEB-INF/pages/kickstart/scriptdelete.jsp
index 6f54e05..6f42a68 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/scriptdelete.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/scriptdelete.jsp
@@ -30,6 +30,14 @@
</tr>
<tr>
<th>
+<bean:message key="kickstart.script.scriptname"/>
+</th>
+<td>
+ ${ksscript.scriptname}
+</td>
+</tr>
+<tr>
+<th>
<bean:message key="kickstart.script.language"/>
</th>
<td>
diff --git a/java/code/webapp/WEB-INF/pages/kickstart/scripts.jsp
b/java/code/webapp/WEB-INF/pages/kickstart/scripts.jsp
index 3f1158f..d36c2d0 100644
--- a/java/code/webapp/WEB-INF/pages/kickstart/scripts.jsp
+++ b/java/code/webapp/WEB-INF/pages/kickstart/scripts.jsp
@@ -41,6 +41,9 @@
<rhn:column header="kickstartscript.jsp.scriptnum">
<a
href="/rhn/kickstart/KickstartScriptEdit.do?kssid=${current.id}&ksid=${ksdata.id}"><bean:message
key="kickstartscript.jsp.script"/> ${current.position}</a>
</rhn:column>
+<rhn:column header="kickstartscript.jsp.scriptname">
+<a
href="/rhn/kickstart/KickstartScriptEdit.do?kssid=${current.id}&ksid=${ksdata.id}">${current.scriptname}</a>
+</rhn:column>
<rhn:column header="kickstartscript.jsp.language">
${current.interpreter}
</rhn:column>
diff --git a/java/code/webapp/WEB-INF/struts-config.xml
b/java/code/webapp/WEB-INF/struts-config.xml
index f991165..2496628 100644
--- a/java/code/webapp/WEB-INF/struts-config.xml
+++ b/java/code/webapp/WEB-INF/struts-config.xml
@@ -680,6 +680,7 @@
<form-bean name="kickstartScriptForm"
type="com.redhat.rhn.frontend.struts.ScrubbingDynaActionForm">
<form-property name="language" type="java.lang.String" />
+<form-property name="scriptname" type="java.lang.String" />
<form-property name="contents" type="java.lang.String" />
<form-property name="type" type="java.lang.String" />
<form-property name="nochroot" type="java.lang.Boolean" />
diff --git a/schema/spacewalk/common/tables/rhnKickstartScript.sql
b/schema/spacewalk/common/tables/rhnKickstartScript.sql
index 1be4bc8..181763f 100644
--- a/schema/spacewalk/common/tables/rhnKickstartScript.sql
+++ b/schema/spacewalk/common/tables/rhnKickstartScript.sql
@@ -38,7 +38,8 @@ CREATE TABLE rhnKickstartScript
created DATE
DEFAULT (sysdate) NOT NULL,
modified DATE
- DEFAULT (sysdate) NOT NULL
+ DEFAULT (sysdate) NOT NULL,
+ scriptname VARCHAR2(40)
)
ENABLE ROW MOVEMENT
;
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.oracle
b/schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.oracle
new file mode 100644
index 0000000..296b616
--- /dev/null
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.oracle
@@ -0,0 +1 @@
+alter table rhnKickstartScript add scriptname varchar2(40);
diff --git
a/schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.postgresql
b/schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.postgresql
new file mode 100644
index 0000000..3511e24
--- /dev/null
+++
b/schema/spacewalk/upgrade/spacewalk-schema-1.5-to-spacewalk-schema-1.6/101-add_rhnKickstartScript_scriptname.sql.postgresql
@@ -0,0 +1,2 @@
+-- oracle equivalent source sha1 ebfe8df38b1935e67ea3ddd3d5937cef6de9ae91
+alter table rhnKickstartScript add column scriptname varchar2(40);