java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartScriptOrderAction.java
| 2
java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptSetupActionTest.java
| 46 -------
java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptsSetupActionTest.java
| 46 +++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
| 13 +-
java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/test/ProfileHandlerTest.java
| 64 ++++++++++
5 files changed, 122 insertions(+), 49 deletions(-)
New commits:
commit 6c888d530ac6141d4b3cc30649fcf51a57d20995
Author: Stephen Herr <sherr(a)redhat.com>
Date: Fri Oct 18 16:22:49 2013 -0400
1020497 - fixing a bug and adding a unit test for ordering kickstarts
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartScriptOrderAction.java
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartScriptOrderAction.java
index ef6c008..b220917 100644
---
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartScriptOrderAction.java
+++
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/KickstartScriptOrderAction.java
@@ -196,7 +196,9 @@ public class KickstartScriptOrderAction extends
RhnLookupDispatchAction {
// update scripts with the appropriate priorities
for (KickstartScript script : scripts) {
script.setPosition(oldToNew.get(fakeToOld.get(script.getPosition())));
+ HibernateFactory.getSession().save(script);
}
+ KickstartFactory.saveKickstartData(ksdata);
getStrutsDelegate().saveMessage("kickstart.script.order.success",
request);
return
getStrutsDelegate().forwardParam(mapping.findForward("success"),
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptSetupActionTest.java
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptSetupActionTest.java
deleted file mode 100644
index 8563b6d..0000000
---
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptSetupActionTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Copyright (c) 2009--2012 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.frontend.action.kickstart.test;
-
-import com.redhat.rhn.common.db.datasource.DataResult;
-import com.redhat.rhn.domain.kickstart.KickstartData;
-import com.redhat.rhn.domain.kickstart.test.KickstartDataTest;
-import com.redhat.rhn.frontend.action.kickstart.ScriptsSetupAction;
-import com.redhat.rhn.frontend.struts.RequestContext;
-import com.redhat.rhn.testing.RhnMockStrutsTestCase;
-import com.redhat.rhn.testing.UserTestUtils;
-
-/**
- * KickstartsSetupActionTest
- * @version $Rev: 1 $
- */
-public class ScriptSetupActionTest extends RhnMockStrutsTestCase {
-
- public void testKickstartList() throws Exception {
- // Create a kickstart and the defaults so the list
- // will return something.
- UserTestUtils.addProvisioning(user.getOrg());
- KickstartData k = KickstartDataTest.createTestKickstartData(user.getOrg());
- setRequestPathInfo("/kickstart/Scripts");
- addRequestParameter(RequestContext.KICKSTART_ID, k.getId().toString());
- actionPerform();
- DataResult dr = (DataResult) request.getAttribute(ScriptsSetupAction.LIST_NAME);
- assertNotNull(dr);
- assertTrue(dr.size() > 0);
-
- }
-
-}
-
diff --git
a/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptsSetupActionTest.java
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptsSetupActionTest.java
new file mode 100644
index 0000000..cc52ea5
--- /dev/null
+++
b/java/code/src/com/redhat/rhn/frontend/action/kickstart/test/ScriptsSetupActionTest.java
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2009--2012 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.frontend.action.kickstart.test;
+
+import com.redhat.rhn.common.db.datasource.DataResult;
+import com.redhat.rhn.domain.kickstart.KickstartData;
+import com.redhat.rhn.domain.kickstart.test.KickstartDataTest;
+import com.redhat.rhn.frontend.action.kickstart.ScriptsSetupAction;
+import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.testing.RhnMockStrutsTestCase;
+import com.redhat.rhn.testing.UserTestUtils;
+
+/**
+ * KickstartsSetupActionTest
+ * @version $Rev: 1 $
+ */
+public class ScriptsSetupActionTest extends RhnMockStrutsTestCase {
+
+ public void testKickstartList() throws Exception {
+ // Create a kickstart and the defaults so the list
+ // will return something.
+ UserTestUtils.addProvisioning(user.getOrg());
+ KickstartData k = KickstartDataTest.createTestKickstartData(user.getOrg());
+ setRequestPathInfo("/kickstart/Scripts");
+ addRequestParameter(RequestContext.KICKSTART_ID, k.getId().toString());
+ actionPerform();
+ DataResult dr = (DataResult) request.getAttribute(ScriptsSetupAction.LIST_NAME);
+ assertNotNull(dr);
+ assertTrue(dr.size() > 0);
+
+ }
+
+}
+
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
index e1e6f14..4f16b34 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/ProfileHandler.java
@@ -511,17 +511,24 @@ public class ProfileHandler extends BaseHandler {
Long nextPosition = 1L;
Long nextNegativePosition = -1L;
for (Integer id : preScripts) {
- idToScript.get(id).setPosition(nextPosition);
+ KickstartScript script = idToScript.get(id);
+ script.setPosition(nextPosition);
nextPosition += 1;
+ HibernateFactory.getSession().save(script);
}
for (Integer id : postScriptsBeforeRegistration) {
- idToScript.get(id).setPosition(nextNegativePosition);
+ KickstartScript script = idToScript.get(id);
+ script.setPosition(nextNegativePosition);
nextNegativePosition -= 1;
+ HibernateFactory.getSession().save(script);
}
for (Integer id : postScriptsAfterRegistration) {
- idToScript.get(id).setPosition(nextPosition);
+ KickstartScript script = idToScript.get(id);
+ script.setPosition(nextPosition);
nextPosition += 1;
+ HibernateFactory.getSession().save(script);
}
+ KickstartFactory.saveKickstartData(data);
return 1;
}
diff --git
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/test/ProfileHandlerTest.java
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/test/ProfileHandlerTest.java
index bda9ff8..bb12aa3 100644
---
a/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/test/ProfileHandlerTest.java
+++
b/java/code/src/com/redhat/rhn/frontend/xmlrpc/kickstart/profile/test/ProfileHandlerTest.java
@@ -169,6 +169,70 @@ public class ProfileHandlerTest extends BaseHandlerTestCase {
assertTrue(found);
}
+ public void testOrderScripts() throws Exception {
+ KickstartData ks = KickstartDataTest.createKickstartWithChannel(admin.getOrg());
+ // delete kickstart scripts that are already there
+ List<KickstartScript> scripts = handler.listScripts(adminKey,
ks.getLabel());
+ for (KickstartScript script : scripts) {
+ handler.removeScript(adminKey, ks.getLabel(), script.getId().intValue());
+ }
+ ks = (KickstartData) HibernateFactory.reload(ks);
+
+ int idPost1 =
+ handler.addScript(adminKey, ks.getLabel(), "myPost1",
"This is a script",
+ "", "post", true);
+ int idPost2 =
+ handler.addScript(adminKey, ks.getLabel(), "myPost2",
"This is a script",
+ "", "post", true);
+ int idPostNochroot1 =
+ handler.addScript(adminKey, ks.getLabel(), "myPostNochroot1",
+ "This is a script", "", "post",
false);
+ int idPostNochroot2 =
+ handler.addScript(adminKey, ks.getLabel(), "myPostNochroot2",
+ "This is a script", "", "post",
false);
+ int idPre1 =
+ handler.addScript(adminKey, ks.getLabel(), "myPre1", "This
is a script",
+ "", "pre", false);
+ int idPre2 =
+ handler.addScript(adminKey, ks.getLabel(), "myPre2", "This
is a script",
+ "", "pre", false);
+ ks = (KickstartData) HibernateFactory.reload(ks);
+
+ // make sure they're in the proper order initially
+ scripts = handler.listScripts(adminKey, ks.getLabel());
+ assertNotNull(scripts);
+ assertEquals(6, scripts.size());
+ assertEquals(idPre1, scripts.get(0).getId().intValue());
+ assertEquals(scripts.get(1).getId().intValue(), idPre2);
+ assertEquals(scripts.get(2).getId().intValue(), idPostNochroot1);
+ assertEquals(scripts.get(3).getId().intValue(), idPostNochroot2);
+ assertEquals(scripts.get(4).getId().intValue(), idPost1);
+ assertEquals(scripts.get(5).getId().intValue(), idPost2);
+
+ List<Integer> orderedPre = new ArrayList<Integer>();
+ List<Integer> orderedPostBefore = new ArrayList<Integer>();
+ List<Integer> orderedPostAfter = new ArrayList<Integer>();
+ orderedPre.add(idPre2);
+ orderedPre.add(idPre1);
+ orderedPostBefore.add(idPost1);
+ orderedPostBefore.add(idPostNochroot1);
+ orderedPostAfter.add(idPost2);
+ orderedPostAfter.add(idPostNochroot2);
+
+ //make the acutal call
+ handler.orderScripts(adminKey, ks.getLabel(), orderedPre, orderedPostBefore,
+ orderedPostAfter);
+
+ //test results
+ scripts = handler.listScripts(adminKey, ks.getLabel());
+ assertTrue(scripts.get(0).getId().intValue() == idPre2);
+ assertTrue(scripts.get(1).getId().intValue() == idPre1);
+ assertTrue(scripts.get(2).getId().intValue() == idPost1);
+ assertTrue(scripts.get(3).getId().intValue() == idPostNochroot1);
+ assertTrue(scripts.get(4).getId().intValue() == idPost2);
+ assertTrue(scripts.get(5).getId().intValue() == idPostNochroot2);
+ }
+
public void testAddScript() throws Exception {
KickstartData ks =
KickstartDataTest.createKickstartWithChannel(admin.getOrg());
int id = handler.addScript(adminKey, ks.getLabel(), "sample",