Changes to 'refs/tags/spacewalk-java-1.6.49-1'
by Tomas Lestach
Tag 'spacewalk-java-1.6.49-1' created by Tomas Lestach <tlestach(a)redhat.com> at 2011-09-22 16:18 +0000
Tagging package [spacewalk-java] version [1.6.49-1] in directory [java/].
Changes since spacewalk-backend-1.6.21-1:
Tomas Lestach (2):
610157 - introduce system.getScriptActionDetails API
Automatic commit of package [spacewalk-java] release [1.6.49-1].
---
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java | 71 ++++++++--
java/spacewalk-java.spec | 8 -
rel-eng/packages/spacewalk-java | 2
3 files changed, 66 insertions(+), 15 deletions(-)
---
12 years, 7 months
java/spacewalk-java.spec rel-eng/packages
by Tomas Lestach
java/spacewalk-java.spec | 8 +++++++-
rel-eng/packages/spacewalk-java | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
New commits:
commit 95b8dc52608264a187045012baa61cd882b203e4
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Sep 22 18:18:12 2011 +0200
Automatic commit of package [spacewalk-java] release [1.6.49-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index 730f914..10f5d00 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -17,7 +17,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 1.6.48
+Version: 1.6.49
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -557,6 +557,12 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Thu Sep 22 2011 Tomas Lestach <tlestach(a)redhat.com> 1.6.49-1
+- 610157 - introduce system.getScriptActionDetails API (tlestach(a)redhat.com)
+- 740427 - use sequence_nextval function (tlestach(a)redhat.com)
+- 610784 - adding 'updated' attribute to system.listNotes API
+ (tlestach(a)redhat.com)
+
* Thu Sep 22 2011 Tomas Lestach <tlestach(a)redhat.com> 1.6.48-1
- 680489 - introduce tag system tag related API calls (tlestach(a)redhat.com)
- 680489 - intorduce system.provisioning.snapshot.addTagToSnapshot API call
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index f3bfab9..58e1e2f 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-1.6.48-1 java/
+1.6.49-1 java/
12 years, 7 months
java/code
by Tomas Lestach
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java | 71 ++++++++--
1 file changed, 58 insertions(+), 13 deletions(-)
New commits:
commit 7f9dea2c3ff517090ad9a26833b03909e9b0c3d8
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Sep 22 14:56:45 2011 +0200
610157 - introduce system.getScriptActionDetails API
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
index 800d5fc..a362436 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
@@ -3301,19 +3301,7 @@ public class SystemHandler extends BaseHandler {
*/
public Object [] getScriptResults(String sessionKey, Integer actionId) {
User loggedInUser = getLoggedInUser(sessionKey);
-
- ScriptRunAction action = null;
- try {
- action = (ScriptRunAction)ActionManager.lookupAction(loggedInUser,
- new Long(actionId.longValue()));
- }
- catch (LookupException e) {
- throw new NoSuchActionException(actionId.toString(), e);
- }
- catch (ClassCastException e) {
- throw new InvalidActionTypeException(e);
- }
-
+ ScriptRunAction action = lookupScriptRunAction(actionId, loggedInUser);
ScriptActionDetails details = action.getScriptActionDetails();
if (details.getResults() == null) {
@@ -3329,6 +3317,63 @@ public class SystemHandler extends BaseHandler {
}
/**
+ * Returns action script contents for script run actions
+ * @param sessionKey session key
+ * @param actionId action identifier
+ * @return script details
+ *
+ * @xmlrpc.doc Returns script details for script run actions
+ * @xmlrpc.param #param("string", "sessionKey")
+ * @xmlrpc.param #param_desc("int", "actionId", "ID of the script run action.")
+ * @xmlrpc.returntype
+ * #struct("Script details")
+ * #prop_desc("int" "id" "action id")
+ * #prop_desc("string" "content" "script content")
+ * #prop_desc("string" "id" "action id")
+ * #prop_desc("string" "run_as_user" "Run as user")
+ * #prop_desc("string" "run_as_group" "Run as group")
+ * #prop_desc("int" "timeout" "Timeout in seconds")
+ * #prop("$ScriptResultSerializer", "result")
+ * #struct_end()
+ */
+ public Map getScriptActionDetails(String sessionKey, Integer actionId) {
+ Map retDetails = new HashMap();
+ User loggedInUser = getLoggedInUser(sessionKey);
+ ScriptRunAction action = lookupScriptRunAction(actionId, loggedInUser);
+ ScriptActionDetails details = action.getScriptActionDetails();
+ retDetails.put("id", action.getId());
+ retDetails.put("content", details.getScriptContents());
+ retDetails.put("run_as_user", details.getUsername());
+ retDetails.put("run_as_group", details.getGroupname());
+ retDetails.put("timeout", details.getTimeout());
+
+ if (details.getResults() != null) {
+ List<ScriptResult> results = new LinkedList<ScriptResult>();
+ for (Iterator it = details.getResults().iterator(); it.hasNext();) {
+ ScriptResult r = (ScriptResult)it.next();
+ results.add(r);
+ }
+ retDetails.put("result", results.toArray());
+ }
+ return retDetails;
+ }
+
+ private ScriptRunAction lookupScriptRunAction(Integer actionId, User loggedInUser) {
+ ScriptRunAction action = null;
+ try {
+ action = (ScriptRunAction)ActionManager.lookupAction(loggedInUser,
+ new Long(actionId.longValue()));
+ }
+ catch (LookupException e) {
+ throw new NoSuchActionException(actionId.toString(), e);
+ }
+ catch (ClassCastException e) {
+ throw new InvalidActionTypeException(e);
+ }
+ return action;
+ }
+
+ /**
* Schedule a system reboot
*
* @param sessionKey User's session key.
12 years, 7 months
Changes to 'refs/tags/spacewalk-backend-1.6.21-1'
by aparsons
Tag 'spacewalk-backend-1.6.21-1' created by Aron Parsons <parsonsa(a)bit-sys.com> at 2011-09-22 14:23 +0000
Tagging package [spacewalk-backend] version [1.6.21-1] in directory [backend/].
Changes since spacewalk-java-1.6.48-1:
Aron Parsons (2):
fix broken --list-channels option
Automatic commit of package [spacewalk-backend] release [1.6.21-1].
Tomas Lestach (2):
610784 - adding 'updated' attribute to system.listNotes API
740427 - use sequence_nextval function
---
backend/satellite_tools/disk_dumper/iss.py | 2 +-
backend/spacewalk-backend.spec | 6 +++++-
java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml | 2 +-
java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/NoteSerializer.java | 1 +
rel-eng/packages/spacewalk-backend | 2 +-
5 files changed, 9 insertions(+), 4 deletions(-)
---
12 years, 7 months
2 commits - backend/satellite_tools backend/spacewalk-backend.spec rel-eng/packages
by aparsons
backend/satellite_tools/disk_dumper/iss.py | 2 +-
backend/spacewalk-backend.spec | 6 +++++-
rel-eng/packages/spacewalk-backend | 2 +-
3 files changed, 7 insertions(+), 3 deletions(-)
New commits:
commit 0c1fc1b383d9aac1d8d7746c0a3bb53322ef49ba
Author: Aron Parsons <parsonsa(a)bit-sys.com>
Date: Thu Sep 22 10:23:51 2011 -0400
Automatic commit of package [spacewalk-backend] release [1.6.21-1].
diff --git a/backend/spacewalk-backend.spec b/backend/spacewalk-backend.spec
index 2b53703..3ef4fff 100644
--- a/backend/spacewalk-backend.spec
+++ b/backend/spacewalk-backend.spec
@@ -11,7 +11,7 @@ Name: spacewalk-backend
Summary: Common programs needed to be installed on the Spacewalk servers/proxies
Group: Applications/Internet
License: GPLv2 and Python
-Version: 1.6.20
+Version: 1.6.21
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -674,6 +674,10 @@ rm -f %{rhnconf}/rhnSecret.py*
# $Id$
%changelog
+* Thu Sep 22 2011 Aron Parsons <parsonsa(a)bit-sys.com> 1.6.21-1
+- fix broken --list-channels option (parsonsa(a)bit-sys.com)
+- Fix nvl2/case conversion (Joshua.Roys(a)gtri.gatech.edu)
+
* Mon Sep 19 2011 Michael Mraka <michael.mraka(a)redhat.com> 1.6.20-1
- 732325 - nvl2 replace with ANSI case
diff --git a/rel-eng/packages/spacewalk-backend b/rel-eng/packages/spacewalk-backend
index 3740626..875c573 100644
--- a/rel-eng/packages/spacewalk-backend
+++ b/rel-eng/packages/spacewalk-backend
@@ -1 +1 @@
-1.6.20-1 backend/
+1.6.21-1 backend/
commit b0e612cdbe3e1e9e7e020acd19fb773fd5479996
Author: Aron Parsons <parsonsa(a)bit-sys.com>
Date: Mon Sep 19 14:32:55 2011 -0400
fix broken --list-channels option
diff --git a/backend/satellite_tools/disk_dumper/iss.py b/backend/satellite_tools/disk_dumper/iss.py
index 22aac29..113a28c 100644
--- a/backend/satellite_tools/disk_dumper/iss.py
+++ b/backend/satellite_tools/disk_dumper/iss.py
@@ -908,7 +908,7 @@ class ExporterMain:
sys.exit(0)
if self.options.list_channels:
- self.print_list_channels()
+ self.print_list_channels(self.list_channels())
sys.exit(0)
#From this point on everything should assume a list of channels, so it needs to be a list
12 years, 7 months
java/code
by Tomas Lestach
java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 0cf822d36c4386e749efe9b08d0ad430afd013a5
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Sep 22 13:51:00 2011 +0200
740427 - use sequence_nextval function
accorging to https://fedorahosted.org/spacewalk/wiki/PostgreSQLPortingGuide
Addressing:
com.redhat.rhn.common.db.datasource.CachedStatement - Error while processing cached statement sql: INSERT INTO rhnActionConfigRevision (id, server_id, action_id, config_revision_id) values (rhn_actioncr_id_seq.nextval, ?, ?, ?)
com.redhat.rhn.common.db.WrappedSQLException: ERROR: missing FROM-clause entry for table rhn_actioncr_id_seq at
com.redhat.rhn.common.translation.SqlExceptionTranslator.postgreSqlException(SqlExceptionTranslator.java:56)
...
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml
index 43ac7b6..af6c9c2 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/Action_queries.xml
@@ -313,7 +313,7 @@ INSERT INTO rhnServerAction (server_id, action_id, status, REMAINING_TRIES)
<write-mode name="add_config_rev_to_action">
<query params="sid, aid, crid">
INSERT INTO rhnActionConfigRevision (id, server_id, action_id, config_revision_id)
- values (rhn_actioncr_id_seq.nextval, :sid, :aid, :crid)
+ values (sequence_nextval('rhn_actioncr_id_seq'), :sid, :aid, :crid)
</query>
</write-mode>
12 years, 7 months
java/code
by Tomas Lestach
java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/NoteSerializer.java | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 5fb7b30ec7f47ce680969db2a374f95c89899bf6
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Sep 22 12:30:15 2011 +0200
610784 - adding 'updated' attribute to system.listNotes API
to notify the date a note was updated
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/NoteSerializer.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/NoteSerializer.java
index 890f494..6cae823 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/NoteSerializer.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/serializer/NoteSerializer.java
@@ -63,6 +63,7 @@ public class NoteSerializer implements XmlRpcCustomSerializer {
add(helper, "note", note.getNote());
add(helper, "system_id", note.getServer().getId());
add(helper, "creator", note.getCreator().getLogin());
+ add(helper, "updated", note.getModified());
helper.writeTo(output);
}
12 years, 7 months
Changes to 'refs/tags/spacewalk-java-1.6.48-1'
by Tomas Lestach
Tag 'spacewalk-java-1.6.48-1' created by Tomas Lestach <tlestach(a)redhat.com> at 2011-09-22 10:18 +0000
Tagging package [spacewalk-java] version [1.6.48-1] in directory [java/].
Changes since spacewalk-proxy-installer-1.6.5-1:
Milan Zazrivec (1):
740306 - fix delete -> register reprovisioning scenario
Tomas Lestach (4):
checkstyle issues
680489 - intorduce system.provisioning.snapshot.addTagToSnapshot API call
680489 - introduce tag system tag related API calls
Automatic commit of package [spacewalk-java] release [1.6.48-1].
---
java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml | 12 +
java/code/src/com/redhat/rhn/domain/server/ServerFactory.java | 43 ++++++
java/code/src/com/redhat/rhn/domain/server/ServerSnapshot.java | 15 ++
java/code/src/com/redhat/rhn/domain/server/SnapshotTag.hbm.xml | 5
java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml | 8 +
java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchSnapshotTagException.java | 40 ++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/SnapshotTagAlreadyExistsException.java | 40 ++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java | 62 +++++++++-
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/provisioning/snapshot/SnapshotHandler.java | 22 +++
java/code/src/com/redhat/rhn/manager/kickstart/KickstartScheduleCommand.java | 23 ++-
java/conf/cobbler/snippets/post_delete_system | 4
java/conf/cobbler/snippets/post_reactivation_key | 4
java/spacewalk-java.spec | 10 +
rel-eng/packages/spacewalk-java | 2
14 files changed, 278 insertions(+), 12 deletions(-)
---
12 years, 7 months
java/spacewalk-java.spec rel-eng/packages
by Tomas Lestach
java/spacewalk-java.spec | 10 +++++++++-
rel-eng/packages/spacewalk-java | 2 +-
2 files changed, 10 insertions(+), 2 deletions(-)
New commits:
commit 300ee0acc41398c51b13f3c890be658d00c0c260
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Thu Sep 22 12:18:37 2011 +0200
Automatic commit of package [spacewalk-java] release [1.6.48-1].
diff --git a/java/spacewalk-java.spec b/java/spacewalk-java.spec
index b443186..730f914 100644
--- a/java/spacewalk-java.spec
+++ b/java/spacewalk-java.spec
@@ -17,7 +17,7 @@ Name: spacewalk-java
Summary: Spacewalk Java site packages
Group: Applications/Internet
License: GPLv2
-Version: 1.6.47
+Version: 1.6.48
Release: 1%{?dist}
URL: https://fedorahosted.org/spacewalk
Source0: https://fedorahosted.org/releases/s/p/spacewalk/%{name}-%{version}.tar.gz
@@ -557,6 +557,14 @@ fi
%{jardir}/postgresql-jdbc.jar
%changelog
+* Thu Sep 22 2011 Tomas Lestach <tlestach(a)redhat.com> 1.6.48-1
+- 680489 - introduce tag system tag related API calls (tlestach(a)redhat.com)
+- 680489 - intorduce system.provisioning.snapshot.addTagToSnapshot API call
+ (tlestach(a)redhat.com)
+- checkstyle issues (tlestach(a)redhat.com)
+- 740306 - fix delete -> register reprovisioning scenario
+ (mzazrivec(a)redhat.com)
+
* Fri Sep 16 2011 Tomas Lestach <tlestach(a)redhat.com> 1.6.47-1
- 717984 - list only ssm systems in SSM Selected Systems List tab
(tlestach(a)redhat.com)
diff --git a/rel-eng/packages/spacewalk-java b/rel-eng/packages/spacewalk-java
index 4f2caf4..f3bfab9 100644
--- a/rel-eng/packages/spacewalk-java
+++ b/rel-eng/packages/spacewalk-java
@@ -1 +1 @@
-1.6.47-1 java/
+1.6.48-1 java/
12 years, 7 months
2 commits - java/code
by Tomas Lestach
java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml | 12 +
java/code/src/com/redhat/rhn/domain/server/ServerFactory.java | 43 ++++++
java/code/src/com/redhat/rhn/domain/server/ServerSnapshot.java | 15 ++
java/code/src/com/redhat/rhn/domain/server/SnapshotTag.hbm.xml | 5
java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml | 8 +
java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchSnapshotTagException.java | 40 ++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/SnapshotTagAlreadyExistsException.java | 40 ++++++
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java | 62 +++++++++-
java/code/src/com/redhat/rhn/frontend/xmlrpc/system/provisioning/snapshot/SnapshotHandler.java | 22 +++
9 files changed, 246 insertions(+), 1 deletion(-)
New commits:
commit bf6eba9de2555c76d09a7620453ee25041917a93
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Wed Sep 21 15:13:26 2011 +0200
680489 - introduce tag system tag related API calls
- system.tagLatestSnapshot
- system.deleteTagFromSnapshot
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
index 33bec6a..94cd23f 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
@@ -1383,6 +1383,12 @@ SELECT S.id,
</query>
</callable-mode>
+<callable-mode name="remove_tag_from_snapshot">
+ <query params="server_id, tag_id">
+ { call rhn_server.tag_delete(:server_id, :tag_id) }
+ </query>
+</callable-mode>
+
<callable-mode name="can_entitle_server">
<query params="sid, entitlement">
{:retval = call rhn_entitlements.can_entitle_server(:sid, :entitlement)}
diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java
index d8aa095..bcf38a6 100644
--- a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java
@@ -828,4 +828,32 @@ public class ServerFactory extends HibernateFactory {
inParams.put("tag_name", tagName);
m.execute(inParams, new HashMap());
}
+
+ /**
+ * Removes tag from system snapshot
+ * @param serverId server id
+ * @param tag snapshot tag
+ */
+ public static void removeTagFromSnapshot(Long serverId, SnapshotTag tag) {
+ CallableMode m = ModeFactory.getCallableMode("System_queries",
+ "remove_tag_from_snapshot");
+ Map inParams = new HashMap();
+ inParams.put("server_id", serverId);
+ inParams.put("tag_id", tag.getId());
+ m.execute(inParams, new HashMap());
+ }
+
+ /**
+ * Looks up snapshot tag by tag name
+ * @param tagName name of the tag
+ * @return snapshot tag
+ */
+ public static SnapshotTag lookupSnapshotTagbyName(String tagName) {
+ SnapshotTag retval = (SnapshotTag) HibernateFactory
+ .getSession().getNamedQuery("SnapshotTag.lookupByTagName")
+ .setString("tag_name", tagName)
+ // Retrieve from cache if there
+ .setCacheable(true).uniqueResult();
+ return retval;
+ }
}
diff --git a/java/code/src/com/redhat/rhn/domain/server/SnapshotTag.hbm.xml b/java/code/src/com/redhat/rhn/domain/server/SnapshotTag.hbm.xml
index e189c32..5e111c5 100644
--- a/java/code/src/com/redhat/rhn/domain/server/SnapshotTag.hbm.xml
+++ b/java/code/src/com/redhat/rhn/domain/server/SnapshotTag.hbm.xml
@@ -22,4 +22,9 @@ PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
column="name_id" cascade="all"/>
</class>
+ <query name="SnapshotTag.lookupByTagName">
+ <![CDATA[from com.redhat.rhn.domain.server.SnapshotTag as st
+ where st.name.name = :tag_name]]>
+ </query>
+
</hibernate-mapping>
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 0e35d01..bf7c206 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -8109,6 +8109,10 @@ Follow this url to see the full list of inactive systems:
<source>Snapshot tag already exists: {0}</source>
</trans-unit>
+ <trans-unit id="api.provisioning.snapshot.nosuchtag">
+ <source>No such server snapshot tag: {0}</source>
+ </trans-unit>
+
<trans-unit id="api.package.provider.invalidKeyType">
<source>The package key type specified ({0}) is invalid.</source>
</trans-unit>
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchSnapshotTagException.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchSnapshotTagException.java
new file mode 100644
index 0000000..2916fe2
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/NoSuchSnapshotTagException.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2011 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.xmlrpc;
+
+import com.redhat.rhn.FaultException;
+import com.redhat.rhn.common.localization.LocalizationService;
+
+
+/**
+ * NoSuchSnapshotTagException
+ * @version $Rev$
+ */
+public class NoSuchSnapshotTagException extends FaultException {
+
+ /**
+ * Comment for <code>serialVersionUID</code>
+ */
+ private static final long serialVersionUID = 1631706001739029048L;
+
+ /**
+ * Constructor
+ * @param tagName name of the tag
+ */
+ public NoSuchSnapshotTagException(String tagName) {
+ super(1212, "NoSuchSnapshotTag", LocalizationService.getInstance().
+ getMessage("api.provisioning.snapshot.nosuchtag", new Object [] {tagName}));
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
index 9239b56..800d5fc 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/SystemHandler.java
@@ -66,6 +66,8 @@ import com.redhat.rhn.domain.server.Note;
import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.server.ServerFactory;
import com.redhat.rhn.domain.server.ServerGroupFactory;
+import com.redhat.rhn.domain.server.ServerSnapshot;
+import com.redhat.rhn.domain.server.SnapshotTag;
import com.redhat.rhn.domain.server.VirtualInstance;
import com.redhat.rhn.domain.server.VirtualInstanceFactory;
import com.redhat.rhn.domain.token.ActivationKey;
@@ -90,6 +92,7 @@ import com.redhat.rhn.frontend.xmlrpc.MethodInvalidParamException;
import com.redhat.rhn.frontend.xmlrpc.NoSuchActionException;
import com.redhat.rhn.frontend.xmlrpc.NoSuchCobblerSystemRecordException;
import com.redhat.rhn.frontend.xmlrpc.NoSuchPackageException;
+import com.redhat.rhn.frontend.xmlrpc.NoSuchSnapshotTagException;
import com.redhat.rhn.frontend.xmlrpc.NoSuchSystemException;
import com.redhat.rhn.frontend.xmlrpc.NotEnoughEntitlementsException;
import com.redhat.rhn.frontend.xmlrpc.PermissionCheckFailureException;
@@ -97,6 +100,7 @@ import com.redhat.rhn.frontend.xmlrpc.ProfileNameTooLongException;
import com.redhat.rhn.frontend.xmlrpc.ProfileNameTooShortException;
import com.redhat.rhn.frontend.xmlrpc.ProfileNoBaseChannelException;
import com.redhat.rhn.frontend.xmlrpc.RhnXmlRpcServer;
+import com.redhat.rhn.frontend.xmlrpc.SnapshotTagAlreadyExistsException;
import com.redhat.rhn.frontend.xmlrpc.SystemIdInstantiationException;
import com.redhat.rhn.frontend.xmlrpc.SystemsNotDeletedException;
import com.redhat.rhn.frontend.xmlrpc.UndefinedCustomFieldsException;
@@ -4814,7 +4818,7 @@ public class SystemHandler extends BaseHandler {
*
* @xmlrpc.doc Get the UUID from the given system ID.
* @xmlrpc.param #param("string", "sessionKey")
- * @xmlrpc.param #param("string", "serverId")
+ * @xmlrpc.param #param("int", "serverId")
* @xmlrpc.returntype string
*/
public String getUuid(String sessionKey, Integer serverId) {
@@ -4828,4 +4832,60 @@ public class SystemHandler extends BaseHandler {
return "";
}
}
+
+ /**
+ * Tags latest system snapshot
+ * @param sessionKey the session key
+ * @param serverId server id
+ * @param tagName tag
+ * @return 1 on success, exception thrown otherwise.
+ *
+ * @xmlrpc.doc Tags latest system snapshot
+ * @xmlrpc.param #param("string", "sessionKey")
+ * @xmlrpc.param #param("int", "serverId")
+ * @xmlrpc.param #param("string", "tagName")
+ * @xmlrpc.return int - #return_int_success()
+ */
+ public int tagLatestSnapshot(String sessionKey, Integer serverId, String tagName) {
+ User loggedInUser = getLoggedInUser(sessionKey);
+ Server server = lookupServer(loggedInUser, serverId);
+ if (!(server.hasEntitlement(EntitlementManager.PROVISIONING))) {
+ throw new FaultException(-2, "provisionError",
+ "System does not have provisioning entitlement: " + server.getId());
+ }
+ List<ServerSnapshot> snps = ServerFactory.listSnapshots(loggedInUser.getOrg(),
+ server, null, null);
+ if (snps.isEmpty()) {
+ SystemManager.snapshotServer(server, "Initial snapshot");
+ snps = ServerFactory.listSnapshots(loggedInUser.getOrg(), server, null, null);
+ }
+ if (!snps.get(0).addTag(tagName)) {
+ throw new SnapshotTagAlreadyExistsException(tagName);
+ }
+ return 1;
+ }
+
+ /**
+ * Deletes tag from system snapshot
+ * @param sessionKey the session key
+ * @param serverId server id
+ * @param tagName tag
+ * @return 1 on success, exception thrown otherwise.
+ *
+ * @xmlrpc.doc Deletes tag from system snapshot
+ * @xmlrpc.param #param("string", "sessionKey")
+ * @xmlrpc.param #param("int", "serverId")
+ * @xmlrpc.param #param("string", "tagName")
+ * @xmlrpc.return int - #return_int_success()
+ */
+ public int deleteTagFromSnapshot(String sessionKey, Integer serverId, String tagName) {
+ User loggedInUser = getLoggedInUser(sessionKey);
+ Server server = lookupServer(loggedInUser, serverId);
+ SnapshotTag tag = ServerFactory.lookupSnapshotTagbyName(tagName);
+ if (tag == null) {
+ throw new NoSuchSnapshotTagException(tagName);
+ }
+ ServerFactory.removeTagFromSnapshot(server.getId(), tag);
+ return 1;
+ }
}
commit 6d6f9c464a2b5bc60b5b9954d535440ca35f253c
Author: Tomas Lestach <tlestach(a)redhat.com>
Date: Mon Sep 19 14:47:58 2011 +0200
680489 - intorduce system.provisioning.snapshot.addTagToSnapshot API call
diff --git a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
index 0b7bf98..33bec6a 100644
--- a/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
+++ b/java/code/src/com/redhat/rhn/common/db/datasource/xml/System_queries.xml
@@ -1377,6 +1377,12 @@ SELECT S.id,
</query>
</callable-mode>
+<callable-mode name="add_tag_to_snapshot">
+ <query params="snapshot_id, org_id, tag_name">
+ { call rhn_server.tag_snapshot(:snapshot_id, :org_id, :tag_name) }
+ </query>
+</callable-mode>
+
<callable-mode name="can_entitle_server">
<query params="sid, entitlement">
{:retval = call rhn_entitlements.can_entitle_server(:sid, :entitlement)}
diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java
index ac301e3..d8aa095 100644
--- a/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java
+++ b/java/code/src/com/redhat/rhn/domain/server/ServerFactory.java
@@ -813,4 +813,19 @@ public class ServerFactory extends HibernateFactory {
new HashMap(), systemIds, "sids");
}
+ /**
+ * Adds tag to the snapshot
+ * @param snpId snapshot id
+ * @param orgId org id
+ * @param tagName name of the tag
+ */
+ public static void addTagToSnapshot(Long snpId, Long orgId, String tagName) {
+ CallableMode m = ModeFactory.getCallableMode("System_queries",
+ "add_tag_to_snapshot");
+ Map inParams = new HashMap();
+ inParams.put("snapshot_id", snpId);
+ inParams.put("org_id", orgId);
+ inParams.put("tag_name", tagName);
+ m.execute(inParams, new HashMap());
+ }
}
diff --git a/java/code/src/com/redhat/rhn/domain/server/ServerSnapshot.java b/java/code/src/com/redhat/rhn/domain/server/ServerSnapshot.java
index 0573d39..a5f20e0 100644
--- a/java/code/src/com/redhat/rhn/domain/server/ServerSnapshot.java
+++ b/java/code/src/com/redhat/rhn/domain/server/ServerSnapshot.java
@@ -209,6 +209,21 @@ public class ServerSnapshot extends BaseDomainHelper {
}
/**
+ * adds tag to the snapshot
+ * @param tagName name of the tag
+ * @return true if tag was added to snapshot
+ */
+ public boolean addTag(String tagName) {
+ for (SnapshotTag tag : getTags()) {
+ if (tagName.equals(tag.getName().getName())) {
+ return false;
+ }
+ }
+ ServerFactory.addTagToSnapshot(getId(), getOrg().getId(), tagName);
+ return true;
+ }
+
+ /**
*
* {@inheritDoc}
*/
diff --git a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
index 55ea6ec..0e35d01 100644
--- a/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
+++ b/java/code/src/com/redhat/rhn/frontend/strings/java/StringResource_en_US.xml
@@ -8105,6 +8105,10 @@ Follow this url to see the full list of inactive systems:
<source>Kickstart label already exists: {0}</source>
</trans-unit>
+ <trans-unit id="api.provisioning.snapshot.tagalreadyinuse">
+ <source>Snapshot tag already exists: {0}</source>
+ </trans-unit>
+
<trans-unit id="api.package.provider.invalidKeyType">
<source>The package key type specified ({0}) is invalid.</source>
</trans-unit>
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/SnapshotTagAlreadyExistsException.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/SnapshotTagAlreadyExistsException.java
new file mode 100644
index 0000000..3e15f4c
--- /dev/null
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/SnapshotTagAlreadyExistsException.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2011 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.xmlrpc;
+
+import com.redhat.rhn.FaultException;
+import com.redhat.rhn.common.localization.LocalizationService;
+
+
+/**
+ * SnapshotTagAlreadyExistsException
+ * @version $Rev$
+ */
+public class SnapshotTagAlreadyExistsException extends FaultException {
+ /**
+ * Comment for <code>serialVersionUID</code>
+ */
+ private static final long serialVersionUID = -4258121382559963776L;
+
+ /**
+ * Contructor
+ * @param tagName name of the snaphot tag
+ */
+ public SnapshotTagAlreadyExistsException(String tagName) {
+ super(1211, "SnapshotTagAlreadyExists", LocalizationService.getInstance().
+ getMessage("api.provisioning.snapshot.tagalreadyinuse"),
+ new Object[] {tagName});
+ }
+}
diff --git a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/provisioning/snapshot/SnapshotHandler.java b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/provisioning/snapshot/SnapshotHandler.java
index ad0a8e8..d1052cb 100644
--- a/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/provisioning/snapshot/SnapshotHandler.java
+++ b/java/code/src/com/redhat/rhn/frontend/xmlrpc/system/provisioning/snapshot/SnapshotHandler.java
@@ -20,6 +20,7 @@ import com.redhat.rhn.domain.server.Server;
import com.redhat.rhn.domain.server.ServerFactory;
import com.redhat.rhn.domain.server.ServerSnapshot;
import com.redhat.rhn.domain.user.User;
+import com.redhat.rhn.frontend.xmlrpc.SnapshotTagAlreadyExistsException;
import com.redhat.rhn.frontend.xmlrpc.BaseHandler;
import com.redhat.rhn.frontend.xmlrpc.InvalidArgsException;
import com.redhat.rhn.frontend.xmlrpc.NoSuchSnapshotException;
@@ -265,6 +266,27 @@ public class SnapshotHandler extends BaseHandler {
}
/**
+ * Adds tag to snapshot
+ * @param sessionKey session key
+ * @param snapId shapshot id
+ * @param tagName name iof the snapshot tag
+ * @return 1 on success
+
+ * @xmlrpc.param sessionKey #session_key()
+ * @xmlrpc.param snapId #param_desc("int", "snapshotId", "Id of the snapshot")
+ * @xmlrpc.param tagName #param_desc("string", "tag", "Name of the snapshot tag")
+ * @xmlrpc.returntype #return_int_success()
+ */
+ public int addTagToSnapshot(String sessionKey, Integer snapId, String tagName) {
+ User loggedInUser = getLoggedInUser(sessionKey);
+ ServerSnapshot snap = lookupSnapshot(loggedInUser, snapId);
+ if (!snap.addTag(tagName)) {
+ throw new SnapshotTagAlreadyExistsException(tagName);
+ }
+ return 1;
+ }
+
+ /**
* Private helper method to lookup a server from an sid, and throws a FaultException
* if the server cannot be found.
* @param user The user looking up the server
12 years, 7 months