[rhq] 3 commits - modules/core modules/enterprise
by Jay Shaughnessy
modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserSessionManager.java | 11 --
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SystemGWTService.java | 2
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java | 14 +++
modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/framework/UserPreferencesUIBean.java | 39 +++++++---
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AlertAvailabilityDurationJob.java | 11 ++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java | 26 ------
7 files changed, 62 insertions(+), 43 deletions(-)
New commits:
commit 58d7b1bb4678daa13fe9a2f527ba28031c9d8d68
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 5 10:04:22 2013 -0400
Fix issue with alert duration job when the resource in question is
removed from inventory during the duration period.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AlertAvailabilityDurationJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AlertAvailabilityDurationJob.java
index 4998d01..3937710 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AlertAvailabilityDurationJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/AlertAvailabilityDurationJob.java
@@ -55,6 +55,17 @@ public class AlertAvailabilityDurationJob extends AbstractStatefulJob {
// get the current resource availability
ResourceAvailability resourceAvail = LookupUtil.getResourceAvailabilityManager().getLatestAvailability(
resourceId);
+
+ // Although unlikely, it's possible the resource has actually gone away while we waited out the duration period.
+ // If we can't find any resource avail assume the resource is gone and just end the job.
+ if (null == resourceAvail) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("AlertAvailabilityDurationJob: Assuming resource has been uninventoried [" + resourceId + "]");
+ }
+
+ return;
+ }
+
AvailabilityType availType = resourceAvail.getAvailabilityType();
// Question? Do we care whether the avail type has been the same for the entire duration (meaning we would need
commit e157ce7089416ab3d8a2c504c4a0ef3b8a757ab7
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 5 10:03:18 2013 -0400
[Bug 915291]
Errors in server log after first attempt to login with LDAP user
Sort of stepped around this problem by ensuring the UIBean (portal war)
does not perform a variety of queries for users in the midst of
construction. The SLSBs are not overly tolerent of subjects not yet
assigned an id.
diff --git a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/framework/UserPreferencesUIBean.java b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/framework/UserPreferencesUIBean.java
index 146c663..b564e7b 100644
--- a/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/framework/UserPreferencesUIBean.java
+++ b/modules/enterprise/gui/portal-war/src/main/java/org/rhq/enterprise/gui/common/framework/UserPreferencesUIBean.java
@@ -18,6 +18,7 @@
*/
package org.rhq.enterprise.gui.common.framework;
+import java.util.ArrayList;
import java.util.List;
import org.rhq.core.domain.auth.Subject;
@@ -80,8 +81,8 @@ public class UserPreferencesUIBean {
public String getLeftResourceNavState() {
updateRecentVisits();
- return EnterpriseFacesContextUtility.getWebUser().getWebPreferences().getPreference(LEFT_RESOURCE_NAV_SHOWING,
- "30");
+ return EnterpriseFacesContextUtility.getWebUser().getWebPreferences()
+ .getPreference(LEFT_RESOURCE_NAV_SHOWING, "30");
}
public void setLeftResourceNavState(String state) {
@@ -145,37 +146,55 @@ public class UserPreferencesUIBean {
}
public List<Resource> getResourceFavorites() {
+ // ignore this for users that are in the process of being created
+ Subject subject = getSubject();
+ if (0 == subject.getId()) {
+ return new ArrayList();
+ }
+
if (resourceFavorites == null) {
WebUser user = EnterpriseFacesContextUtility.getWebUser();
WebUserPreferences.FavoriteResourcePortletPreferences favoriteResources = user.getWebPreferences()
.getFavoriteResourcePortletPreferences();
- resourceFavorites = resourceManager.findResourceByIds(getSubject(), favoriteResources.asArray(), false,
+ resourceFavorites = resourceManager.findResourceByIds(subject, favoriteResources.asArray(), false,
PageControl.getUnlimitedInstance());
}
return resourceFavorites;
}
public List<SavedSearch> getSavedSearches() {
+ // ignore this for users that are in the process of being created
+ Subject subject = getSubject();
+ if (0 == subject.getId()) {
+ return new ArrayList();
+ }
+
if (savedSearches == null) {
SavedSearchCriteria criteria = new SavedSearchCriteria();
- criteria.addFilterSubjectId(getSubject().getId());
+ criteria.addFilterSubjectId(subject.getId());
criteria.addFilterGlobal(false);
criteria.addSortName(PageOrdering.ASC); // each sublist is alphabetical
- savedSearches = savedSearchManager.findSavedSearchesByCriteria(getSubject(), criteria);
+ savedSearches = savedSearchManager.findSavedSearchesByCriteria(subject, criteria);
}
return savedSearches;
}
public List<ResourceGroup> getGroupFavorites() {
+ // ignore this for users that are in the process of being created
+ Subject subject = getSubject();
+ if (0 == subject.getId()) {
+ return new ArrayList();
+ }
+
if (groupFavorites == null) {
WebUser user = EnterpriseFacesContextUtility.getWebUser();
WebUserPreferences.FavoriteGroupPortletPreferences favoriteGroups = user.getWebPreferences()
.getFavoriteGroupPortletPreferences();
- groupFavorites = groupManager.findResourceGroupByIds(getSubject(), favoriteGroups.asArray(), PageControl
- .getUnlimitedInstance());
+ groupFavorites = groupManager.findResourceGroupByIds(subject, favoriteGroups.asArray(),
+ PageControl.getUnlimitedInstance());
}
return groupFavorites;
}
@@ -199,9 +218,9 @@ public class UserPreferencesUIBean {
WebUserPreferences.ResourceVisit.Kind.valueOf(res.getResourceType().getCategory().name()));
} else if (groupId != null) {
ResourceGroup group = groupManager.getResourceGroupById(getSubject(), Integer.parseInt(groupId), null);
- visit = new WebUserPreferences.ResourceVisit(Integer.parseInt(groupId), group.getName(), (group
- .getResourceType() != null ? WebUserPreferences.ResourceVisit.Kind.COMPATIBLE_GROUP
- : WebUserPreferences.ResourceVisit.Kind.MIXED_GROUP));
+ visit = new WebUserPreferences.ResourceVisit(Integer.parseInt(groupId), group.getName(),
+ (group.getResourceType() != null ? WebUserPreferences.ResourceVisit.Kind.COMPATIBLE_GROUP
+ : WebUserPreferences.ResourceVisit.Kind.MIXED_GROUP));
}
if (visit != null) {
commit 298ab1f0dc11ac35e5d4a90c1bd4b6a3b140e2f9
Author: Jay Shaughnessy <jshaughn(a)redhat.com>
Date: Wed Jun 5 10:01:06 2013 -0400
Fix problem setting session timeout for non-settings-manager users. This was
related to a past fix for [BZ 857438] allowing GUI session timeout to be
configurable.
Also:
- fix log message in dbupgrade step
diff --git a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
index f9729cf..0e1afd3 100644
--- a/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
+++ b/modules/core/dbutils/src/main/scripts/dbupgrade/db-upgrade.xml
@@ -2030,7 +2030,7 @@
<schemaSpec version="2.132">
<schema-directSQL>
- <statement desc="Adding drift file purge system setting">
+ <statement desc="Adding session timeout system setting">
INSERT INTO rhq_system_config (id, property_key, property_value, default_property_value)
VALUES (59, 'RHQ_SESSION_TIMEOUT', '3600000', '3600000')
</statement>
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserSessionManager.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserSessionManager.java
index 6995e4f..ee36243 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserSessionManager.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/UserSessionManager.java
@@ -33,9 +33,6 @@ import com.google.gwt.user.client.Timer;
import com.google.gwt.user.client.rpc.AsyncCallback;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.common.composite.SystemSetting;
-import org.rhq.core.domain.common.composite.SystemSettings;
-import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.criteria.SubjectCriteria;
import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.gui.coregui.client.gwt.GWTServiceLookup;
@@ -423,13 +420,11 @@ public class UserSessionManager {
userPreferences = new UserPreferences(loggedInSubject);
userPreferences.setAutomaticPersistence(true);
- GWTServiceLookup.getSystemService().getSystemSettings(new AsyncCallback<SystemSettings>() {
+ GWTServiceLookup.getSystemService().getSessionTimeout(new AsyncCallback<String>() {
@Override
- public void onSuccess(SystemSettings result) {
- Configuration config = result.toConfiguration();
+ public void onSuccess(String result) {
try {
- final long millis = Long.parseLong(config.getSimpleValue(SystemSetting.RHQ_SESSION_TIMEOUT
- .getInternalName()));
+ final long millis = Long.parseLong(result);
// let's be safe here
sessionTimeout = (int) millis;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SystemGWTService.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SystemGWTService.java
index b63b1c0..dc522ea 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SystemGWTService.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/gwt/SystemGWTService.java
@@ -38,6 +38,8 @@ public interface SystemGWTService extends RemoteService {
ServerDetails getServerDetails() throws RuntimeException;
+ String getSessionTimeout() throws RuntimeException;
+
SystemSettings getSystemSettings() throws RuntimeException;
void setSystemSettings(SystemSettings settings) throws RuntimeException;
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java
index 0080751..168522d 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/server/gwt/SystemGWTServiceImpl.java
@@ -28,8 +28,10 @@ import java.util.Properties;
import org.rhq.core.domain.common.ProductInfo;
import org.rhq.core.domain.common.ServerDetails;
+import org.rhq.core.domain.common.composite.SystemSetting;
import org.rhq.core.domain.common.composite.SystemSettings;
import org.rhq.enterprise.gui.coregui.client.gwt.SystemGWTService;
+import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.core.RemoteClientManagerLocal;
import org.rhq.enterprise.server.system.SystemManagerLocal;
@@ -49,6 +51,7 @@ public class SystemGWTServiceImpl extends AbstractGWTServiceImpl implements Syst
private SystemManagerLocal systemManager = LookupUtil.getSystemManager();
private AgentManagerLocal agentManager = LookupUtil.getAgentManager();
private RemoteClientManagerLocal remoteClientManager = LookupUtil.getRemoteClientManager();
+ private SubjectManagerLocal subjectManager = LookupUtil.getSubjectManager();
@Override
public ProductInfo getProductInfo() throws RuntimeException {
@@ -69,6 +72,17 @@ public class SystemGWTServiceImpl extends AbstractGWTServiceImpl implements Syst
}
@Override
+ public String getSessionTimeout() throws RuntimeException {
+ try {
+ SystemSettings systemSettings = systemManager.getSystemSettings(subjectManager.getOverlord());
+ String sessionTimeout = systemSettings.get(SystemSetting.RHQ_SESSION_TIMEOUT);
+ return sessionTimeout;
+ } catch (Throwable t) {
+ throw getExceptionToThrowToClient(t);
+ }
+ }
+
+ @Override
public SystemSettings getSystemSettings() throws RuntimeException {
try {
return systemManager.getSystemSettings(getSessionSubject());
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java
index 50da8ed..1c5dc83 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/system/SystemManagerLocal.java
@@ -24,16 +24,13 @@ import javax.ejb.Local;
import org.rhq.core.db.DatabaseType;
import org.rhq.core.domain.auth.Subject;
-import org.rhq.core.domain.common.ProductInfo;
-import org.rhq.core.domain.common.ServerDetails;
-import org.rhq.core.domain.common.composite.SystemSettings;
/**
* Provides access to the server cloud's system configuration as well as some methods
* to perform configuration on the server in which this bean is running.
*/
@Local
-public interface SystemManagerLocal {
+public interface SystemManagerLocal extends SystemManagerRemote {
/**
* Returns the {@link DatabaseType} that corresponds to the database the JON Server uses for its backend.
*
@@ -142,25 +139,6 @@ public interface SystemManagerLocal {
void validateSystemConfiguration(Subject subject, Properties properties) throws InvalidSystemConfigurationException;
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- //
- // The following are shared with the Remote Interface
- //
- // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
- ProductInfo getProductInfo(Subject subject);
-
- ServerDetails getServerDetails(Subject subject);
-
- SystemSettings getSystemSettings(Subject subject);
-
- void setSystemSettings(Subject subject, SystemSettings settings) throws Exception;
-
- @Deprecated
- Properties getSystemConfiguration(Subject subject);
-
- @Deprecated
- void setSystemConfiguration(Subject subject, Properties properties, boolean skipValidation) throws Exception;
-
void dumpSystemInfo(Subject subject);
+
}
\ No newline at end of file
11 years
[rhq] modules/enterprise
by Jiri Kremser
modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/storage/StorageNodeDetailView.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
New commits:
commit a608227a2207bcc896e11628a22c5c89dc53362f
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Wed Jun 5 14:45:44 2013 +0200
Making storage node JMX and CQL port read-only in UI.
diff --git a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/storage/StorageNodeDetailView.java b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/storage/StorageNodeDetailView.java
index 655e5ee..a511f34 100644
--- a/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/storage/StorageNodeDetailView.java
+++ b/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/storage/StorageNodeDetailView.java
@@ -176,14 +176,15 @@ public class StorageNodeDetailView extends EnhancedVLayout implements Bookmarkab
final StaticTextItem nameItem = new StaticTextItem(FIELD_ADDRESS.propertyName(), FIELD_ADDRESS.title());
nameItem.setValue("<b>" + storageNode.getAddress() + "</b>");
- final TextItem jmxPortItem = new TextItem(FIELD_JMX_PORT.propertyName(), FIELD_JMX_PORT.title());
+// final TextItem jmxPortItem = new TextItem(FIELD_JMX_PORT.propertyName(), FIELD_JMX_PORT.title());
+ final StaticTextItem jmxPortItem = new StaticTextItem(FIELD_JMX_PORT.propertyName(), FIELD_JMX_PORT.title());
jmxPortItem.setValue(storageNode.getJmxPort());
final StaticTextItem jmxConnectionUrlItem = new StaticTextItem("jmxConnectionUrl",
MSG.view_adminTopology_storageNode_jmxConnectionUrl());
jmxConnectionUrlItem.setValue(storageNode.getJMXConnectionURL());
- final TextItem cqlPortItem = new TextItem(FIELD_CQL_PORT.propertyName(), FIELD_CQL_PORT.title());
+ final StaticTextItem cqlPortItem = new StaticTextItem(FIELD_CQL_PORT.propertyName(), FIELD_CQL_PORT.title());
cqlPortItem.setValue(storageNode.getCqlPort());
11 years
[rhq] modules/enterprise
by Thomas Segismont
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
New commits:
commit ff37b942f1181c3c22b6224e22ff91d24940c226
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Wed Jun 5 14:20:40 2013 +0200
Fix DiscoveryBossBean: wrong injection type for storageNodeManager
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index 37b2822..7382a1b 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -1,6 +1,6 @@
/*
* RHQ Management Platform
- * Copyright (C) 2005-2012 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,8 +13,8 @@
* 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.discovery;
@@ -90,7 +90,7 @@ import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.authz.AuthorizationManagerLocal;
import org.rhq.enterprise.server.authz.PermissionException;
import org.rhq.enterprise.server.authz.RequiredPermission;
-import org.rhq.enterprise.server.cloud.StorageNodeManagerBean;
+import org.rhq.enterprise.server.cloud.StorageNodeManagerLocal;
import org.rhq.enterprise.server.core.AgentManagerLocal;
import org.rhq.enterprise.server.measurement.AvailabilityManagerLocal;
import org.rhq.enterprise.server.resource.ProductVersionManagerLocal;
@@ -156,7 +156,7 @@ public class DiscoveryBossBean implements DiscoveryBossLocal, DiscoveryBossRemot
@EJB
private AvailabilityManagerLocal availabilityManager;
@EJB
- private StorageNodeManagerBean storageNodeManager;
+ private StorageNodeManagerLocal storageNodeManager;
// Do not start in a transaction. A single transaction may timeout if the report size is too large
@TransactionAttribute(TransactionAttributeType.NEVER)
11 years
[rhq] modules/enterprise
by Jiri Kremser
modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml | 8 ++++++++
1 file changed, 8 insertions(+)
New commits:
commit 2145ea6f89f142f50ff852220873e59580b32c08
Author: Jirka Kremser <jkremser(a)redhat.com>
Date: Wed Jun 5 13:55:16 2013 +0200
Annotating the change in MeasurementDataManagerRemote as intentional. For more details see the justification in intentional-api-changes-since-4.7.0.xml.
diff --git a/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml b/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml
index b759e2c..86ba8be 100644
--- a/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml
+++ b/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml
@@ -14,4 +14,12 @@
<justification>Adding a method to a remote API interface is safe. This class is never to be implemented by users.</justification>
</difference>
+ <difference>
+ <className>org/rhq/enterprise/server/measurement/MeasurementDataManagerRemote</className>
+ <differenceType>7006</differenceType> <!-- method return type changed -->
+ <method>org.rhq.enterprise.server.measurement.MeasurementAggregate getAggregate(org.rhq.core.domain.auth.Subject, int, long, long)</method>
+ <to>org.rhq.core.domain.measurement.MeasurementAggregate</to>
+ <justification>The MeasurementAggregate class was moved from server jar module to core domain module. This change is backward compatible with CLI scripts, but Java clients using the remote EJB api may need to fix the imports. This change was introduced by commit 2f6e74080e2299.</justification>
+ </difference>
+
</differences>
11 years
[rhq] modules/enterprise
by Thomas Segismont
modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh | 111 +++++++---
1 file changed, 86 insertions(+), 25 deletions(-)
New commits:
commit a704d926b0adafa8f197ba4eaf87b3d3ca858187
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Fri May 31 11:21:40 2013 +0200
Bug 956442 - Server script rhq-server.sh 'stop' command creates many shutdown threads that can exhaust user process limits
Added two variables in the script:
* one to set the number of minutes to wait for the server to shutdown after the TERM signal
* another to decide if the server should be killed if still being up after the waiting period
Stop and kill cases updated accordingly
diff --git a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh
index 959615c..8e4cc01 100755
--- a/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh
+++ b/modules/enterprise/server/appserver/src/main/bin-resources/bin/rhq-server.sh
@@ -80,6 +80,21 @@
# If not defined, this defaults to the Server's
# bin directory.
#
+# RHQ_SERVER_STOP_DELAY - the number of minutes to wait for the server to go
+# down after sending the TERM signal. Defaults to
+# 5 minutes.
+#
+# RHQ_SERVER_KILL_AFTER_STOP_DELAY - If this is defined, the server will be
+# killed if it is still running after the
+# RHQ_SERVER_STOP_DELAY. If this is not
+# defined or set to "false" the script
+# will exit with error code 127.
+#
+#
+#
+# If the embedded JRE is to be used but is not available, the fallback
+# JRE to be used will be determined by the JAVA_HOME environment variable.
+#
# This script calls standalone.sh when starting the underlying JBossAS server.
# =============================================================================
@@ -95,6 +110,8 @@
# RHQ_SERVER_ADDITIONAL_JAVA_OPTS=additional VM options
# RHQ_SERVER_CMDLINE_OPTS=standalone.sh options
# RHQ_SERVER_ADDITIONAL_CMDLINE_OPTS=additional standalone.sh options
+# RHQ_SERVER_STOP_DELAY=5
+# RHQ_SERVER_KILL_AFTER_STOP_DELAY=false
# ----------------------------------------------------------------------
# Environment variables to set in order to enable remote debugging.
@@ -189,6 +206,32 @@ unset_jboss_as_env ()
}
# ----------------------------------------------------------------------
+# Kill RHQ Server
+# ----------------------------------------------------------------------
+
+kill_rhq_server ()
+{
+ echo "Trying to kill the RHQ Server..."
+
+ echo "RHQ Server parent process (pid=${_SERVER_PID}) is being killed..."
+ while [ "$_SERVER_RUNNING" = "1" ]; do
+ kill -9 $_SERVER_PID
+ sleep 2
+ check_status "killing..."
+ done
+
+ echo "Java Virtual Machine child process (pid=${_JVM_PID}) is being killed..."
+ while [ "$_JVM_RUNNING" = "1" ]; do
+ kill -9 $_JVM_PID
+ sleep 2
+ check_status "killing..."
+ done
+
+ remove_pid_files
+ echo "RHQ Server has been killed."
+}
+
+# ----------------------------------------------------------------------
# Determine what specific platform we are running on.
# Set some platform-specific variables.
# ----------------------------------------------------------------------
@@ -493,15 +536,50 @@ case "$1" in
echo "RHQ Server (pid=${_SERVER_PID}) is stopping..."
- while [ "$_SERVER_RUNNING" = "1" ]; do
- kill -TERM $_SERVER_PID
- sleep 2
- check_status "stopping..."
+ kill -TERM $_SERVER_PID
+
+ if [ -z "$RHQ_SERVER_STOP_DELAY" ]; then
+ # RHQ_SERVER_STOP_DELAY is not set
+ RHQ_SERVER_STOP_DELAY=5
+ fi
+ case $RHQ_SERVER_STOP_DELAY in
+ ''|*[!0-9]*)
+ echo "RHQ_SERVER_STOP_DELAY is not a number (value=${RHQ_SERVER_STOP_DELAY})"
+ echo "Applying default value (5 minutes)"
+ RHQ_SERVER_STOP_DELAY=5
+ ;;
+ *) ;;
+ esac
+ if [ $RHQ_SERVER_STOP_DELAY -le 0 ]; then
+ echo "RHQ_SERVER_STOP_DELAY is less than or equal to zero (value=${RHQ_SERVER_STOP_DELAY})"
+ echo "Applying default value (5 minutes)"
+ RHQ_SERVER_STOP_DELAY=5
+ fi
+ waited_seconds=0
+ max_wait_seconds=$(expr $RHQ_SERVER_STOP_DELAY \* 60)
+ while [ "$_SERVER_RUNNING" -eq "1" ] && [ $waited_seconds -lt $max_wait_seconds ]; do
+ sleep 2s
+ waited_seconds=$(expr $waited_seconds + 2)
+ check_status "stopping..."
done
- remove_pid_files
- echo "RHQ Server has stopped."
- exit 0
+ if [ "$_SERVER_RUNNING" = "0" ]; then
+ remove_pid_files
+ echo "RHQ Server has stopped."
+ exit 0
+ fi
+
+ debug_msg "RHQ Server did not stop within $RHQ_SERVER_STOP_DELAY minutes."
+ echo "Timed out waiting for RHQ Server to stop."
+ kill -QUIT $_SERVER_PID # Generate thread dump for later investigation
+
+ if [ -n "$RHQ_SERVER_KILL_AFTER_STOP_DELAY" ] && [ "$RHQ_SERVER_KILL_AFTER_STOP_DELAY" != "false" ]; then
+ kill_rhq_server
+ exit 0
+ else
+ echo "Failed to stop RHQ Server"
+ exit 127
+ fi
;;
'kill')
@@ -514,24 +592,7 @@ case "$1" in
exit 0
fi
- echo "Trying to kill the RHQ Server..."
-
- echo "RHQ Server parent process (pid=${_SERVER_PID}) is being killed..."
- while [ "$_SERVER_RUNNING" = "1" ]; do
- kill -9 $_SERVER_PID
- sleep 2
- check_status "killing..."
- done
-
- echo "Java Virtual Machine child process (pid=${_JVM_PID}) is being killed..."
- while [ "$_JVM_RUNNING" = "1" ]; do
- kill -9 $_JVM_PID
- sleep 2
- check_status "killing..."
- done
-
- remove_pid_files
- echo "RHQ Server has been killed."
+ kill_rhq_server
exit 0
;;
11 years
[rhq] modules/enterprise
by lkrejci
modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml | 17 ++++++++++
1 file changed, 17 insertions(+)
New commits:
commit 5f41d472442b53f449e2aedddf8bc199d2fcd389
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Jun 5 11:17:14 2013 +0200
Adding API check exceptions for the newly added remote API methods.
diff --git a/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml b/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml
new file mode 100644
index 0000000..b759e2c
--- /dev/null
+++ b/modules/enterprise/server/jar/intentional-api-changes-since-4.7.0.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<differences>
+ <difference>
+ <className>org/rhq/enterprise/server/bundle/BundleManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an interface -->
+ <method>org.rhq.core.domain.bundle.BundleFile addBundleFileViaURL(org.rhq.core.domain.auth.Subject, int, java.lang.String, java.lang.String, org.rhq.core.domain.content.Architecture, java.lang.String, java.lang.String, java.lang.String)</method>
+ <justification>Adding a method to a remote API interface is safe. This class is never to be implemented by users.</justification>
+ </difference>
+
+ <difference>
+ <className>org/rhq/enterprise/server/bundle/BundleManagerRemote</className>
+ <differenceType>7012</differenceType> <!-- method added to an interface -->
+ <method>org.rhq.core.domain.bundle.BundleVersion createBundleVersionViaURL(org.rhq.core.domain.auth.Subject, java.lang.String, java.lang.String, java.lang.String)</method>
+ <justification>Adding a method to a remote API interface is safe. This class is never to be implemented by users.</justification>
+ </difference>
+
+</differences>
11 years
[rhq] Changes to 'bug/970177'
by Thomas Segismont
New branch 'bug/970177' available with the following commits:
commit d081a4ea4d2139c6caf0118d5c2e98839e35f67b
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Wed Jun 5 10:57:29 2013 +0200
Bug 970177 - Cannot browse the GUI while the plugin scan is running
Moved two @Singleton beans concurrency management setting to type 'BEAN'. In both cases state is initialized on startup and is thread safe.
11 years
[rhq] modules/enterprise
by snegrea
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerLocal.java | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
New commits:
commit 0ce256bb8e1a22058b0b58034eb3eb094bbbaf4b
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Jun 4 22:30:53 2013 -0500
Fixing a merge rebase import omission.
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerLocal.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerLocal.java
index 91ad22d..b37cd09 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerLocal.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/cloud/StorageNodeManagerLocal.java
@@ -27,6 +27,7 @@ import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.cloud.StorageNode;
import org.rhq.core.domain.cloud.StorageNodeLoadComposite;
import org.rhq.core.domain.criteria.StorageNodeCriteria;
+import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.util.PageList;
@Local
@@ -39,12 +40,12 @@ public interface StorageNodeManagerLocal {
void updateStorageNodeList(Collection<StorageNode> storageNodes);
void linkResource(Resource resource);
-
+
/**
* <p>Returns the summary of load of the storage node.</p>
- *
+ *
* <p>the subject needs to have <code>MANAGE_SETTINGS</code> permissions.</p>
- *
+ *
* @param subject user that must have proper permissions
* @param node storage node entity (it can be a new object, but the id should be set properly)
* @param beginTime the start time
11 years