modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
| 7 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
| 20 ++++++++--
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
| 4 --
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
| 20 ++++++++--
4 files changed, 41 insertions(+), 10 deletions(-)
New commits:
commit 892db0b49e2c2d5a66df8e611535ea8c93939189
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Tue Nov 26 17:28:04 2013 +0100
Bug 963160 - CLI does not allow resource group plugin configuration update
diff --git a/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
b/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
index e939753..c4a8e23 100644
--- a/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
+++ b/modules/enterprise/server/jar/intentional-api-changes-since-4.9.0.xml
@@ -99,4 +99,11 @@
<justification>Adding a method to a remote API interface is
safe.</justification>
</difference>
+ <difference>
+
<className>org/rhq/enterprise/server/configuration/ConfigurationManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an
interface -->
+ <method>int
scheduleGroupPluginConfigurationUpdate(org.rhq.core.domain.auth.Subject, int,
java.util.Map)</method>
+ <justification>Adding a method to a remote API interface is
safe.</justification>
+ </difference>
+
</differences>
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
index 1e67101..a3fec04 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerBean.java
@@ -16,6 +16,7 @@
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
+
package org.rhq.enterprise.server.configuration;
import java.util.ArrayList;
@@ -1782,7 +1783,7 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
@Override
public int scheduleGroupPluginConfigurationUpdate(Subject subject, int
compatibleGroupId,
- Map<Integer, Configuration> memberPluginConfigurations) throws
SchedulerException {
+ Map<Integer, Configuration> memberPluginConfigurations) {
if (memberPluginConfigurations == null) {
throw new IllegalArgumentException(
@@ -1801,7 +1802,14 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
* actually exists)
*/
GroupPluginConfigurationUpdate groupUpdate = new
GroupPluginConfigurationUpdate(group, subject.getName());
- int updateId = configurationManager.createGroupConfigurationUpdate(groupUpdate);
+ int updateId = -1;
+ try {
+ updateId = configurationManager.createGroupConfigurationUpdate(groupUpdate);
+ } catch (SchedulerException sche) {
+ String message = "Error scheduling plugin configuration update for
group[id=" + group.getId() + "]";
+ LOG.error(message, sche);
+ throw new ResourceGroupUpdateException(message + ": " + sche);
+ }
// Create and persist updates for each of the members.
for (Integer resourceId : memberPluginConfigurations.keySet()) {
@@ -1827,7 +1835,13 @@ public class ConfigurationManagerBean implements
ConfigurationManagerLocal, Conf
*/
JobDetail jobDetail = GroupPluginConfigurationUpdateJob.getJobDetail(group,
subject, jobDataMap);
Trigger trigger = QuartzUtil.getFireOnceOffsetTrigger(jobDetail, 10000);
- scheduler.scheduleJob(jobDetail, trigger);
+ try {
+ scheduler.scheduleJob(jobDetail, trigger);
+ } catch (SchedulerException e) {
+ String message = "Error scheduling job named '" +
jobDetail.getName() + "':";
+ LOG.error(message, e);
+ throw new ResourceGroupUpdateException(message + e.getMessage());
+ }
if (LOG.isDebugEnabled()) {
LOG.debug("Scheduled plugin configuration update against
compatibleGroup[id=" + compatibleGroupId + "]");
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
index 7e8e8ef..4a2a852 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerLocal.java
@@ -16,6 +16,7 @@
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
+
package org.rhq.enterprise.server.configuration;
import java.util.List;
@@ -335,9 +336,6 @@ public interface ConfigurationManagerLocal extends
ConfigurationManagerRemote {
int createGroupConfigurationUpdate(AbstractGroupConfigurationUpdate update) throws
SchedulerException;
- int scheduleGroupPluginConfigurationUpdate(Subject subject, int compatibleGroupId,
- Map<Integer, Configuration> pluginConfigurationUpdate) throws
SchedulerException;
-
PageList<GroupPluginConfigurationUpdate>
findGroupPluginConfigurationUpdates(int groupId, PageControl pc);
PageList<GroupResourceConfigurationUpdate>
findGroupResourceConfigurationUpdates(Subject subject, int groupId,
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
index 697f15c..d58b92f 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/configuration/ConfigurationManagerRemote.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2008 Red Hat, Inc.
+ * Copyright (C) 2005-2013 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
@@ -13,9 +13,10 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * along with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
+
package org.rhq.enterprise.server.configuration;
import java.util.Map;
@@ -131,6 +132,17 @@ public interface ConfigurationManagerRemote {
boolean isGroupResourceConfigurationUpdateInProgress(Subject subject, int
resourceGroupId);
/**
+ * Schedules jobs to update the plugin configuration of resources in a compatible
group.
+ *
+ * @param subject logged in user
+ * @param compatibleGroupId the compatible group id
+ * @param pluginConfigurationUpdate {@link Configuration} objects mapped by resource
id
+ * @return the {@link GroupPluginConfigurationUpdate} id
+ */
+ int scheduleGroupPluginConfigurationUpdate(Subject subject, int compatibleGroupId,
+ Map<Integer, Configuration> pluginConfigurationUpdate);
+
+ /**
* @param subject
* @param compatibleGroupId
* @param newResourceConfigurationMap
@@ -249,4 +261,4 @@ public interface ConfigurationManagerRemote {
@Deprecated
Configuration translateResourceConfiguration(Subject subject, int resourceId,
Configuration configuration,
boolean fromStructured) throws ResourceNotFoundException;
-}
\ No newline at end of file
+}