[rhq] Branch 'nightly/rhq.jon' - modules/core
by Simeon Pinder
modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 0431c61670519b09c15c8c6a61a1846231b7ea56
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Wed Oct 2 15:08:25 2013 +0200
Make sure testInterruptedComponentInvocationContext cannot read a wrong value (caughtInterruptedComponentInvocation is modified in another thread)
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java
index c7c2b77..ba94121 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java
@@ -174,7 +174,7 @@ public class ResourceContainerTest {
private class MockResourceComponent implements ResourceComponent, OperationFacet {
static final String OPERATION_RESULT = "uninterrupted";
boolean naughty;
- boolean caughtInterruptedComponentInvocation;
+ volatile boolean caughtInterruptedComponentInvocation;
ResourceContext resourceContext;
MockResourceComponent(boolean naughty) {
10 years, 8 months
[rhq] Branch 'nightly/rhq.jon' - modules/enterprise
by Simeon Pinder
modules/enterprise/server/server-metrics/pom.xml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
New commits:
commit 0ede5e0d6eaec3e646d6a0938196367dbacab46a
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 1 10:48:52 2013 -0400
rename system properties set in surefire plugin configuration
diff --git a/modules/enterprise/server/server-metrics/pom.xml b/modules/enterprise/server/server-metrics/pom.xml
index 8e5c8ae..5828d9d 100644
--- a/modules/enterprise/server/server-metrics/pom.xml
+++ b/modules/enterprise/server/server-metrics/pom.xml
@@ -153,9 +153,9 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
- <rhq.cassandra.cluster.skip-shutdown>${skipClusterShutdown}</rhq.cassandra.cluster.skip-shutdown>
- <rhq.cassandra.cluster.dir>${rhq.cassandra.cluster.dir}</rhq.cassandra.cluster.dir>
- <rhq.cassandra.cluster.deploy>${deployCluster}</rhq.cassandra.cluster.deploy>
+ <rhq.storage.cluster.skip-shutdown>${skipClusterShutdown}</rhq.storage.cluster.skip-shutdown>
+ <rhq.storage.cluster.dir>${rhq.storage.cluster.dir}</rhq.storage.cluster.dir>
+ <rhq.storage.cluster.deploy>${deployCluster}</rhq.storage.cluster.deploy>
</systemPropertyVariables>
</configuration>
</plugin>
10 years, 8 months
[rhq] modules/core
by Thomas Segismont
modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 6c4b6c60d566d2a27c43a1ede117c52472af2763
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Wed Oct 2 15:08:25 2013 +0200
Make sure testInterruptedComponentInvocationContext cannot read a wrong value (caughtInterruptedComponentInvocation is modified in another thread)
diff --git a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java
index c7c2b77..ba94121 100644
--- a/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java
+++ b/modules/core/plugin-container/src/test/java/org/rhq/core/pc/inventory/ResourceContainerTest.java
@@ -174,7 +174,7 @@ public class ResourceContainerTest {
private class MockResourceComponent implements ResourceComponent, OperationFacet {
static final String OPERATION_RESULT = "uninterrupted";
boolean naughty;
- boolean caughtInterruptedComponentInvocation;
+ volatile boolean caughtInterruptedComponentInvocation;
ResourceContext resourceContext;
MockResourceComponent(boolean naughty) {
10 years, 8 months
[rhq] Branch 'nightly/rhq.jon' - modules/common
by Simeon Pinder
modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/rhq.log4j-server.properties | 39 +++++-----
1 file changed, 23 insertions(+), 16 deletions(-)
New commits:
commit be0e3e60c8b36df540f7b04c209cd17f87a128e9
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 1 11:07:38 2013 -0400
fix itest failure
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/rhq.log4j-server.properties b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/rhq.log4j-server.properties
index fcea1b3..e1c0f5e 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/rhq.log4j-server.properties
+++ b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/bundle/cassandra/conf/rhq.log4j-server.properties
@@ -13,26 +13,33 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
+# for production, you should probably set pattern to %c instead of %l.
+# (%l is slower.)
+
+# output messages into a rolling log file as well as stdout
+log4j.rootLogger=${rhq.storage.logging.level},stdout,R
+
+# stdout
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p %d{HH:mm:ss,SSS} %m%n
+
# rolling log file
-log4j.appender.R = org.apache.log4j.RollingFileAppender
+log4j.appender.R=org.apache.log4j.RollingFileAppender
+log4j.appender.R.maxFileSize=20MB
+log4j.appender.R.maxBackupIndex=50
+log4j.appender.R.layout=org.apache.log4j.PatternLayout
+log4j.appender.R.layout.ConversionPattern=%5p [%t] %d{ISO8601} %F (line %L) %m%n
# Edit the next line to point to your logs directory
-log4j.appender.R.File = ${rhq.storage.log.file}
-log4j.appender.R.Threshold = ${rhq.storage.logging.level}
-log4j.appender.R.layout = org.apache.log4j.PatternLayout
-log4j.appender.R.layout.ConversionPattern = %5p [%t] %d{ISO8601} %F (line %L) %m%n
-log4j.appender.R.maxBackupIndex = 50
-log4j.appender.R.maxFileSize = 20MB
-# stdout
-log4j.appender.stdout = org.apache.log4j.ConsoleAppender
-log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern = %5p %d{HH:mm:ss,SSS} %m%n
+log4j.appender.R.File=${rhq.storage.log.file}
+log4j.appender.R.Threshold=${rhq.storage.logging.level}
+
# Application logging options
#log4j.logger.org.apache.cassandra=DEBUG
#log4j.logger.org.apache.cassandra.db=DEBUG
#log4j.logger.org.apache.cassandra.service.StorageProxy=DEBUG
+
# Adding this to avoid thrift logging disconnect errors.
-log4j.logger.org.apache.thrift.server.TNonblockingServer = ERROR
-# for production, you should probably set pattern to %c instead of %l.
-# (%l is slower.)
-# output messages into a rolling log file as well as stdout
-log4j.rootLogger = ${rhq.storage.logging.level},stdout,R
+log4j.logger.org.apache.thrift.server.TNonblockingServer=ERROR
+
10 years, 8 months
[rhq] Changes to 'bug/1014524'
by lkrejci
New branch 'bug/1014524' available with the following commits:
commit 9df66bb9643d8280fd83418738bbc07479630741
Author: Lukas Krejci <lkrejci(a)redhat.com>
Date: Wed Oct 2 14:04:17 2013 +0200
[BZ 1014524] - Fixing CriteriaQuery.iterator()
The iterator implementation assumed the page list consistent with
the page control, which might not be true, as brought to light by recent
work on PageControl.isConsistentWith() method.
The iterator implementation has been reworked to correctly iterate even
over the inconsistent results by loosening the assumption on the total
number of rows in all the pages.
10 years, 8 months
[rhq] Branch 'nightly/rhq.jon' - modules/common modules/enterprise
by Simeon Pinder
modules/common/cassandra-ccm/cassandra-ccm-core/src/main/java/org/rhq/cassandra/CassandraClusterManager.java | 1
modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/StrippedDownStartupBeanPreparation.java | 12 ++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
New commits:
commit 495cf7edde28241410931b6ae44b1847724e1ecd
Author: Stefan Negrea <snegrea(a)redhat.com>
Date: Tue Oct 1 17:44:41 2013 -0500
Fix for itest failures dues to properties not being correctly set for storage nodes.
diff --git a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/java/org/rhq/cassandra/CassandraClusterManager.java b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/java/org/rhq/cassandra/CassandraClusterManager.java
index a49d77d..dcecf5e 100644
--- a/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/java/org/rhq/cassandra/CassandraClusterManager.java
+++ b/modules/common/cassandra-ccm/cassandra-ccm-core/src/main/java/org/rhq/cassandra/CassandraClusterManager.java
@@ -235,6 +235,7 @@ public class CassandraClusterManager {
private void getStorageClusterConfiguration() {
this.nodes = new String[deploymentOptions.getNumNodes()];
+ this.jmxPorts = new int[deploymentOptions.getNumNodes()];
for (int i = 0; i < deploymentOptions.getNumNodes(); ++i) {
this.nodes[i] = getLocalIPAddress(i + 1);
this.jmxPorts[i] = deploymentOptions.getJmxPort() + i;
diff --git a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/StrippedDownStartupBeanPreparation.java b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/StrippedDownStartupBeanPreparation.java
index 2db60d8..50a57dd 100644
--- a/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/StrippedDownStartupBeanPreparation.java
+++ b/modules/enterprise/server/itests-2/src/test/java/org/rhq/enterprise/server/test/StrippedDownStartupBeanPreparation.java
@@ -132,12 +132,20 @@ public class StrippedDownStartupBeanPreparation {
}
String cqlPort = System.getProperty("rhq.storage.cql-port");
- String gossipPort = System.getProperty("rhq.storage.gossip-port");
-
entityManager.createNativeQuery("update rhq_system_config set property_value = '" + cqlPort +
"', default_property_value = '" + cqlPort + "' where property_key = 'STORAGE_CQL_PORT'").executeUpdate();
+
+ String gossipPort = System.getProperty("rhq.storage.gossip-port");
entityManager.createNativeQuery("update rhq_system_config set property_value = '" + gossipPort +
"', default_property_value = '" + gossipPort + "' where property_key = 'STORAGE_GOSSIP_PORT'").executeUpdate();
+
+ String storageUserName = System.getProperty("rhq.storage.username");
+ entityManager.createNativeQuery("update rhq_system_config set property_value = '" + storageUserName +
+ "', default_property_value = '" + storageUserName + "' where property_key = 'STORAGE_USERNAME'").executeUpdate();
+
+ String storagePassword = System.getProperty("rhq.storage.password");
+ entityManager.createNativeQuery("update rhq_system_config set property_value = '" + storagePassword +
+ "', default_property_value = '" + storagePassword + "' where property_key = 'STORAGE_PASSWORD'").executeUpdate();
}
@Timeout
10 years, 8 months
[rhq] modules/enterprise
by Thomas Segismont
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java | 22 +-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java | 82 +++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgePluginsJob.java | 30 +++
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgeResourceTypesJob.java | 44 ++++-
4 files changed, 116 insertions(+), 62 deletions(-)
New commits:
commit 9118dcdb89cbb9cf7a67802b9890f222849579db
Author: Thomas Segismont <tsegismo(a)redhat.com>
Date: Tue Oct 1 18:51:20 2013 +0200
Bug 1014300 - java.util.NoSuchElementException thrown when deleting RHQ plugins
Do not use the criteria query iterator which is buggy (besides it adds no value here: more lines and less readable code)
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
index fba8a68..23bcc54 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDefinitionManagerBean.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,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.measurement;
@@ -51,7 +51,7 @@ import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@Stateless
public class MeasurementDefinitionManagerBean implements MeasurementDefinitionManagerLocal,
MeasurementDefinitionManagerRemote {
- private Log log = LogFactory.getLog(MeasurementDefinitionManagerBean.class);
+ private static final Log LOG = LogFactory.getLog(MeasurementDefinitionManagerBean.class);
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
private EntityManager entityManager;
@@ -95,15 +95,15 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
entityManager.remove(def);
}
} catch (EntityNotFoundException enfe) {
- if (log.isDebugEnabled()) {
- log.debug("Definition # " + def.getId() + " not found: " + enfe.getMessage());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Definition # " + def.getId() + " not found: " + enfe.getMessage());
}
} catch (PersistenceException pe) {
- if (log.isDebugEnabled()) {
- log.debug("Exception when deleting Definition # " + def.getId() + ": " + pe.getMessage());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Exception when deleting Definition # " + def.getId() + ": " + pe.getMessage());
}
} catch (Exception e) {
- log.warn(e.fillInStackTrace());
+ LOG.warn(e.fillInStackTrace());
}
}
@@ -134,10 +134,8 @@ public class MeasurementDefinitionManagerBean implements MeasurementDefinitionMa
public PageList<MeasurementDefinition> findMeasurementDefinitionsByCriteria(Subject subject,
MeasurementDefinitionCriteria criteria) {
CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria);
- ;
-
CriteriaQueryRunner<MeasurementDefinition> queryRunner = new CriteriaQueryRunner<MeasurementDefinition>(
criteria, generator, entityManager);
return queryRunner.execute();
}
-}
\ No newline at end of file
+}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java
index cf813ca..51d3112 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/MeasurementMetadataManagerBean.java
@@ -1,8 +1,29 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
package org.rhq.enterprise.server.resource.metadata;
+import static org.rhq.core.domain.criteria.Criteria.Restriction.COLLECTION_ONLY;
+
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -26,18 +47,14 @@ import org.rhq.core.domain.measurement.MeasurementUnits;
import org.rhq.core.domain.measurement.NumericType;
import org.rhq.core.domain.resource.ResourceCategory;
import org.rhq.core.domain.resource.ResourceType;
-import org.rhq.core.domain.util.PageList;
import org.rhq.enterprise.server.RHQConstants;
import org.rhq.enterprise.server.auth.SubjectManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementDefinitionManagerLocal;
import org.rhq.enterprise.server.measurement.MeasurementScheduleManagerLocal;
-import org.rhq.enterprise.server.util.CriteriaQuery;
-import org.rhq.enterprise.server.util.CriteriaQueryExecutor;
@Stateless
public class MeasurementMetadataManagerBean implements MeasurementMetadataManagerLocal {
-
- private final Log log = LogFactory.getLog(MeasurementMetadataManagerBean.class);
+ private static final Log LOG = LogFactory.getLog(MeasurementMetadataManagerBean.class);
@PersistenceContext(unitName = RHQConstants.PERSISTENCE_UNIT_NAME)
private EntityManager entityMgr;
@@ -54,7 +71,9 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
@Override
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void updateMetadata(ResourceType existingType, ResourceType newType) {
- log.debug("Updating metric definitions for " + existingType);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Updating metric definitions for " + existingType);
+ }
existingType = entityMgr.find(ResourceType.class, existingType.getId());
Set<MeasurementDefinition> existingDefinitions = existingType.getMetricDefinitions();
@@ -63,15 +82,15 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
Set<MeasurementDefinition> newTypeMetricDefinitions = getMetricDefinitions(newType);
if (existingDefinitions.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug(existingType + " currently does not define any metric definitions.");
- log.debug("New metric definitions to be added: " + newType.getMetricDefinitions());
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(existingType + " currently does not define any metric definitions. "
+ + "New metric definitions to be added: " + newType.getMetricDefinitions());
}
// They're all new.
for (MeasurementDefinition newDefinition : newType.getMetricDefinitions()) {
if (newDefinition.getDefaultInterval() < MeasurementSchedule.MINIMUM_INTERVAL) {
newDefinition.setDefaultInterval(MeasurementSchedule.MINIMUM_INTERVAL);
- log.info("Definition [" + newDefinition
+ LOG.info("Definition [" + newDefinition
+ "] has too short of a default interval, setting to minimum");
}
existingType.addMetricDefinition(newDefinition);
@@ -89,8 +108,8 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
&& (existingDefinition.isPerMinute() == newDefinition.isPerMinute())) {
found = true;
- if (log.isDebugEnabled()) {
- log.debug("Updating existing metric definition: " + existingDefinition);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Updating existing metric definition: " + existingDefinition);
}
// We normally protect the user's interval settings. But the Availability metric is
@@ -112,7 +131,7 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
// but we cannot allow too-short of an interval, so override it if necessary
if (existingDefinition.getDefaultInterval() < MeasurementSchedule.MINIMUM_INTERVAL) {
existingDefinition.setDefaultInterval(MeasurementSchedule.MINIMUM_INTERVAL);
- log.info("Definition [" + existingDefinition
+ LOG.info("Definition [" + existingDefinition
+ "] has too short of a default interval, setting to minimum");
}
@@ -128,7 +147,7 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
if (!found) {
// It's new - create it
- log.info("Metadata update: Adding new " + newDefinition.getDataType().name().toLowerCase() + " definition ["
+ LOG.info("Metadata update: Adding new " + newDefinition.getDataType().name().toLowerCase() + " definition ["
+ newDefinition.getDisplayName() + "] to type " + existingType + "...");
existingType.addMetricDefinition(newDefinition);
entityMgr.persist(newDefinition);
@@ -150,7 +169,7 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
// ... and remove them
existingDefinitions.removeAll(definitionsToDelete);
for (MeasurementDefinition definitionToDelete : definitionsToDelete) {
- log.info("Metadata update: Removing " + definitionToDelete.getDataType().name().toLowerCase() + " definition ["
+ LOG.info("Metadata update: Removing " + definitionToDelete.getDataType().name().toLowerCase() + " definition ["
+ definitionToDelete.getDisplayName() + "] from type " + existingType + "...");
measurementDefinitionMgr.removeMeasurementDefinition(definitionToDelete);
}
@@ -215,33 +234,24 @@ public class MeasurementMetadataManagerBean implements MeasurementMetadataManage
@Override
public void deleteMetadata(ResourceType existingType) {
- log.debug("Deleting metric definitions for " + existingType);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Deleting metric definitions for " + existingType);
+ }
MeasurementDefinitionCriteria criteria = new MeasurementDefinitionCriteria();
criteria.addFilterResourceTypeId(existingType.getId());
-
- //Use CriteriaQuery to automatically chunk/page through criteria query results
- CriteriaQueryExecutor<MeasurementDefinition, MeasurementDefinitionCriteria> queryExecutor = new CriteriaQueryExecutor<MeasurementDefinition, MeasurementDefinitionCriteria>() {
- @Override
- public PageList<MeasurementDefinition> execute(MeasurementDefinitionCriteria criteria) {
- return measurementDefinitionMgr
- .findMeasurementDefinitionsByCriteria(subjectMgr.getOverlord(), criteria);
- }
- };
-
- CriteriaQuery<MeasurementDefinition, MeasurementDefinitionCriteria> definitions = new CriteriaQuery<MeasurementDefinition, MeasurementDefinitionCriteria>(
- criteria, queryExecutor);
+ criteria.setRestriction(COLLECTION_ONLY);
// Remove the type's metric definitions. We do this separately, rather than just relying on cascade
// upon deletion of the ResourceType, because the removeMeasurementDefinition() will also take care
// of removing any associated schedules and those schedules' OOBs.
- if (definitions != null) {
- Iterator<MeasurementDefinition> defIter = definitions.iterator();
- while (defIter.hasNext()) {
- MeasurementDefinition def = defIter.next();
- measurementDefinitionMgr.removeMeasurementDefinition(def);
- defIter.remove();
+ List<MeasurementDefinition> definitions = Collections.emptyList();
+ do {
+ for (MeasurementDefinition definition : definitions) {
+ measurementDefinitionMgr.removeMeasurementDefinition(definition);
}
- }
+ definitions = measurementDefinitionMgr.findMeasurementDefinitionsByCriteria(subjectMgr.getOverlord(),
+ criteria);
+ } while (!definitions.isEmpty());
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgePluginsJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgePluginsJob.java
index 79e49b7..6aa3517 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgePluginsJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgePluginsJob.java
@@ -1,3 +1,22 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
package org.rhq.enterprise.server.scheduler.jobs;
import java.util.ArrayList;
@@ -19,8 +38,7 @@ import org.rhq.enterprise.server.util.LookupUtil;
* already been purged. Puring resource types is performed by {@link PurgeResourceTypesJob}.
*/
public class PurgePluginsJob extends AbstractStatefulJob {
-
- private static final Log log = LogFactory.getLog(PurgePluginsJob.class);
+ private static final Log LOG = LogFactory.getLog(PurgePluginsJob.class);
@Override
public void executeJobCode(JobExecutionContext context) throws JobExecutionException {
@@ -30,14 +48,18 @@ public class PurgePluginsJob extends AbstractStatefulJob {
for (Plugin plugin : plugins) {
if (pluginMgr.isReadyForPurge(plugin)) {
- log.debug("Preparing to purge plugin [" + plugin.getName() + "]");
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Preparing to purge plugin [" + plugin.getName() + "]");
+ }
pluginsToPurge.add(plugin);
}
}
if (!pluginsToPurge.isEmpty()) {
pluginMgr.purgePlugins(pluginsToPurge);
- log.debug("Purged " + pluginsToPurge.size() + " plugins");
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Purged " + pluginsToPurge.size() + " plugins");
+ }
}
}
}
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgeResourceTypesJob.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgeResourceTypesJob.java
index febeac2..7b24454 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgeResourceTypesJob.java
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/scheduler/jobs/PurgeResourceTypesJob.java
@@ -1,16 +1,37 @@
+/*
+ * RHQ Management Platform
+ * Copyright (C) 2005-2013 Red Hat, Inc.
+ * All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * 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.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
package org.rhq.enterprise.server.scheduler.jobs;
+import java.util.List;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
+
import org.rhq.core.domain.resource.ResourceType;
import org.rhq.enterprise.server.inventory.InventoryManagerLocal;
import org.rhq.enterprise.server.util.LookupUtil;
-import java.util.List;
-
public class PurgeResourceTypesJob extends AbstractStatefulJob {
+ private static final Log LOG = LogFactory.getLog(PurgeResourceTypesJob.class);
private static class DeletionStats {
int numDeleted;
@@ -22,8 +43,6 @@ public class PurgeResourceTypesJob extends AbstractStatefulJob {
}
}
- private static final Log log = LogFactory.getLog(PurgeResourceTypesJob.class);
-
@Override
public void executeJobCode(JobExecutionContext context) throws JobExecutionException {
InventoryManagerLocal inventoryMgr = LookupUtil.getInventoryManager();
@@ -33,20 +52,25 @@ public class PurgeResourceTypesJob extends AbstractStatefulJob {
List<ResourceType> deletedTypes = inventoryMgr.getDeletedTypes();
for (ResourceType deletedType : deletedTypes) {
if (inventoryMgr.isReadyForPermanentRemoval(deletedType)) {
- log.debug("Permanently removing " + deletedType);
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Permanently removing " + deletedType);
+ }
long startTime = System.currentTimeMillis();
inventoryMgr.purgeDeletedResourceType(deletedType);
long endTime = System.currentTimeMillis();
stats.numDeleted++;
- log.debug("Deleted " + deletedType + " in " + (endTime - startTime) + " ms");
- }
- else {
- log.debug(deletedType + " has been deleted but is not yet ready for permanent removal.");
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("Deleted " + deletedType + " in " + (endTime - startTime) + " ms");
+ }
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(deletedType + " has been deleted but is not yet ready for permanent removal.");
+ }
}
}
long stopTotalTime = System.currentTimeMillis();
stats.deletionTime = stopTotalTime - startTotalTime;
- log.debug(stats);
+ LOG.debug(stats);
}
10 years, 8 months
[rhq] modules/helpers
by John Sanda
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
New commits:
commit ccc56e6a8d8d2468b6867785ec72ac2cb9fb75eb
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 1 21:54:05 2013 -0400
use the configured node addresses
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
index 45179c5..32321e9 100644
--- a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
@@ -155,8 +155,7 @@ public class Simulator implements ShutdownManager {
private void createSchema(String[] nodes, int cqlPort) {
try {
log.info("Creating schema");
- SchemaManager schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc",
- new String[] {"127.0.0.1"}, 9142);
+ SchemaManager schemaManager = new SchemaManager("rhqadmin", "1eeb2f255e832171df8592078de921bc", nodes, 9142);
schemaManager.install();
} catch (Exception e) {
throw new RuntimeException("Failed to start simulator. An error occurred during schema creation.", e);
10 years, 8 months
[rhq] modules/helpers
by John Sanda
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/MeasurementReader.java | 99 ++++++++++
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Metrics.java | 15 +
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java | 8
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlan.java | 30 +++
modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlanner.java | 3
5 files changed, 155 insertions(+)
New commits:
commit 65dd352f3f787c4c2ee007db7f335f94e610c259
Author: John Sanda <jsanda(a)redhat.com>
Date: Tue Oct 1 20:18:55 2013 -0400
initial support for readers
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/MeasurementReader.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/MeasurementReader.java
new file mode 100644
index 0000000..22da083
--- /dev/null
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/MeasurementReader.java
@@ -0,0 +1,99 @@
+package org.rhq.metrics.simulator;
+
+import java.util.Iterator;
+import java.util.concurrent.ThreadLocalRandom;
+
+import com.codahale.metrics.Timer;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.joda.time.Days;
+import org.joda.time.Duration;
+import org.joda.time.Hours;
+
+import org.rhq.core.domain.measurement.composite.MeasurementDataNumericHighLowComposite;
+import org.rhq.server.metrics.MetricsServer;
+
+/**
+ * @author John Sanda
+ */
+public class MeasurementReader implements Runnable {
+
+ private final Log log = LogFactory.getLog(MeasurementReader.class);
+
+ private long intervalRate;
+
+ private Metrics metrics;
+
+ private MetricsServer metricsServer;
+
+ private int startingSchedule;
+
+ private int batchSize;
+
+ public MeasurementReader(long intervalRate, Metrics metrics, MetricsServer metricsServer, int startingSchedule,
+ int batchSize) {
+ this.intervalRate = intervalRate;
+ this.metrics = metrics;
+ this.metricsServer = metricsServer;
+ this.startingSchedule = startingSchedule;
+ this.batchSize = batchSize;
+ }
+
+ @Override
+ public void run() {
+ log.info("Running metrics queries");
+
+ ThreadLocalRandom random = ThreadLocalRandom.current();
+ int bound = startingSchedule + batchSize;
+
+ findResourceDataForPast24Hours(random.nextInt(startingSchedule, bound));
+ findResourceDataForPastWeek(random.nextInt(startingSchedule, bound));
+ findResourceDataForPast2Weeks(random.nextInt(startingSchedule, bound));
+ findResourceDataForPast31Days(random.nextInt(startingSchedule, bound));
+ findResourceDataForPastYear(random.nextInt(startingSchedule, bound));
+
+ log.info("Finished running metrics queries");
+ }
+
+ private void findResourceDataForPast24Hours(int scheduleId) {
+ Duration duration = Hours.hours(24).toStandardSeconds().toStandardDuration();
+ findResourceData(scheduleId, duration, metrics.twentyFourHourResourceQueryTime);
+ }
+
+ private void findResourceDataForPastWeek(int scheduleId) {
+ Duration duration = Days.SEVEN.toStandardSeconds().minus(5).toStandardDuration();
+ findResourceData(scheduleId, duration, metrics.oneWeekResourceQueryTime);
+ }
+
+ private void findResourceDataForPast2Weeks(int scheduleId) {
+ Duration duration = Days.days(14).toStandardSeconds().minus(5).toStandardDuration();
+ findResourceData(scheduleId, duration, metrics.twoWeekResourceQueryTime);
+ }
+
+ private void findResourceDataForPast31Days(int scheduleId) {
+ Duration duration = Days.days(31).toStandardSeconds().minus(5).toStandardDuration();
+ findResourceData(scheduleId, duration, metrics.monthResourceQueryTime);
+ }
+
+ private void findResourceDataForPastYear(int scheduleId) {
+ Duration duration = Days.days(365).toStandardSeconds().minus(5).toStandardDuration();
+ findResourceData(scheduleId, duration, metrics.yearResourceQueryTime);
+ }
+
+ private void findResourceData(int scheduleId, Duration duration, Timer timer) {
+ long end = System.currentTimeMillis();
+ long start = end - (duration.getMillis() / intervalRate);
+ Timer.Context context = timer.time();
+ try {
+ Iterable<MeasurementDataNumericHighLowComposite> data = metricsServer.findDataForResource(scheduleId, start,
+ end, 60);
+ Iterator<MeasurementDataNumericHighLowComposite> iterator = data.iterator();
+ for (MeasurementDataNumericHighLowComposite datum : data) {
+
+ }
+ } finally {
+ context.stop();
+ }
+ }
+}
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Metrics.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Metrics.java
index f7ea87a..59aa0dd 100644
--- a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Metrics.java
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Metrics.java
@@ -19,12 +19,27 @@ public class Metrics {
public final Timer totalAggregationTime;
+ public final Timer twentyFourHourResourceQueryTime;
+
+ public final Timer oneWeekResourceQueryTime;
+
+ public final Timer twoWeekResourceQueryTime;
+
+ public final Timer monthResourceQueryTime;
+
+ public final Timer yearResourceQueryTime;
+
public Metrics() {
registry = new MetricRegistry();
rawInserts = registry.meter(name(MeasurementCollector.class, "rawInserts"));
batchInsertTime = registry.timer(name(MeasurementCollector.class, "batchInsertTime"));
totalAggregationTime = registry.timer(name(MeasurementAggregator.class, "totalAggregationTime"));
+ twentyFourHourResourceQueryTime = registry.timer(name(MeasurementReader.class, "24HourResourceDataQuery"));
+ oneWeekResourceQueryTime = registry.timer(name(MeasurementReader.class, "oneWeekResourceQueryData"));
+ twoWeekResourceQueryTime = registry.timer(name(MeasurementReader.class, "twoWeekResourceQueryData"));
+ monthResourceQueryTime = registry.timer(name(MeasurementReader.class, "monthResourceQueryTime"));
+ yearResourceQueryTime = registry.timer(name(MeasurementReader.class, "yearResourceQueryTime"));
}
}
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
index 4b250b4..45179c5 100644
--- a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/Simulator.java
@@ -59,11 +59,14 @@ public class Simulator implements ShutdownManager {
final ScheduledExecutorService collectors = Executors.newScheduledThreadPool(
plan.getNumMeasurementCollectors(), new SimulatorThreadFactory());
final ExecutorService aggregationQueue = Executors.newSingleThreadExecutor(new SimulatorThreadFactory());
+ final ScheduledExecutorService readers = Executors.newScheduledThreadPool(plan.getNumReaders(),
+ new SimulatorThreadFactory());
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
shutdown(collectors, "collectors", 5);
+ shutdown(readers, "readers", 5);
shutdown(aggregators, "aggregators", 1);
shutdown(aggregationQueue, "aggregationQueue", Integer.MAX_VALUE);
}
@@ -96,6 +99,11 @@ public class Simulator implements ShutdownManager {
aggregators.scheduleAtFixedRate(measurementAggregator, 0, plan.getAggregationInterval(),
TimeUnit.MILLISECONDS);
+
+ MeasurementReader reader = new MeasurementReader(plan.getSimulationRate(), metrics, metricsServer, 0,
+ plan.getBatchSize());
+ readers.scheduleAtFixedRate(reader, 30, 30, TimeUnit.SECONDS);
+
try {
Thread.sleep(Minutes.minutes(plan.getSimulationTime()).toStandardDuration().getMillis());
} catch (InterruptedException e) {
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlan.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlan.java
index dfe0695..33b3bbf 100644
--- a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlan.java
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlan.java
@@ -78,6 +78,12 @@ public class SimulationPlan {
private DateTimeService dateTimeService;
+ private int numReaders;
+
+ private long readInterval;
+
+ private long simulationRate;
+
public DateTimeService getDateTimeService() {
return dateTimeService;
}
@@ -165,4 +171,28 @@ public class SimulationPlan {
public void setIntervalType(IntervalType intervalType) {
this.intervalType = intervalType;
}
+
+ public int getNumReaders() {
+ return numReaders;
+ }
+
+ public void setNumReaders(int numReaders) {
+ this.numReaders = numReaders;
+ }
+
+ public long getReadInterval() {
+ return readInterval;
+ }
+
+ public void setReadInterval(long readInterval) {
+ this.readInterval = readInterval;
+ }
+
+ public long getSimulationRate() {
+ return simulationRate;
+ }
+
+ public void setSimulationRate(long simulationRate) {
+ this.simulationRate = simulationRate;
+ }
}
diff --git a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlanner.java b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlanner.java
index 95871bd..e601212 100644
--- a/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlanner.java
+++ b/modules/helpers/metrics-simulator/src/main/java/org/rhq/metrics/simulator/plan/SimulationPlanner.java
@@ -58,6 +58,7 @@ public class SimulationPlanner {
simulation.setAggregationInterval(getLong(root.get("aggregationInterval"), 2500L));
simulation.setMetricsServerConfiguration(createSecondsConfiguration());
simulation.setMetricsReportInterval(getInt(root.get("metricsReportInterval"), 30));
+ simulation.setSimulationRate(1440);
dateTimeService = new SecondsDateTimeService();
break;
case MINUTES:
@@ -66,12 +67,14 @@ public class SimulationPlanner {
simulation.setMetricsServerConfiguration(createMinutesConfiguration());
simulation.setMetricsReportInterval(getInt(root.get("metricsReportInterval"), 180));
simulation.setDateTimeService(new MinutesDateTimeService());
+ simulation.setSimulationRate(2400);
dateTimeService = new MinutesDateTimeService();
break;
default: // HOURS
simulation.setCollectionInterval(getLong(root.get("collectionInterval"), 30000L));
simulation.setAggregationInterval(3600000L);
simulation.setMetricsReportInterval(getInt(root.get("metricsReportInterval"), 1200));
+ simulation.setSimulationRate(1000);
dateTimeService = new DateTimeService();
}
10 years, 8 months