RHQ 4.8.0

This is the RHQ 4.8 release. It was released on June 25th, 2013

Installation noteRHQ 4.8.0 no longer has a GUI-based installer and its installation routines have changed even since 4.7. Even if you are familiar with installing earlier versions of RHQ, be sure to see Installing the Server for updated installation and upgrade instructions. Specifically, you are now required to use the rhqctl Control Script to install (and start) the RHQ server components.

Upgrade noteIf upgrading from RHQ 4.2 (4.3 and later are not affected) you must first make a manual change to your database. Have a look at the first note on the RHQ 4.4 release notes

Please noteRHQ 4.8 is recommended with Java7, and also supports Java6.

Cassandra backend for metric storage

RHQ 4.8 is the first release that uses Cassandra as backend store for metric values. This has been done to increase scalability. Numeric metric data is no longer stored in the RHQ relational database. There is no option or support to still store numeric metric data in the RHQ relational database. The use of Cassandra as a data store is intended to be an implementation detail to the greatest extent possible. This has some significant implications.

RHQ will manage the Cassandra storage nodes (This release introduces some initial management support. More management support will be added in subsequent releases).

An RHQ agent will have to be run along side Cassandra.

RHQ will not support using an arbitrary Cassandra installation for its storage node.

Some of the critical cluster management functionality is still undergoing development and testing; consequently, this release only supports a single node cluster. Please review the following bugs for known issues.

Server

Plugins

Cassandra Plugin

A new Cassandra plugin compatible with Cassandra 1.2.x is part of this release. The plugin supports monitoring and configuration for features exposed via Cassandra's JMX interface. Additional support for some important internal configuration settings (Eg. gc_grace_seconds) is also available. The plugin has enhanced support for taking and restoring snapshots.

Known Issues

Deprecations

Method org.rhq.core.util.exec.ProcessExecutor#redirectStreams has been deprecated. Callers should switch to using a new method org.rhq.core.util.exec.ProcessExecutor#redirectAllStreams method.

REST-API Endpoints introduced in 4.5.1 to create platforms and resources have been deprecated - replacements are provided

API changes

The return type of method org.rhq.enterprise.server.measurement.MeasurementDataManagerRemote#getAggregate was changed from org.rhq.core.domain.measurement.MeasurementAggregate to org.rhq.enterprise.server.measurement.MeasurementAggregate. It is the same class, only package is different. CLI scripts should remain compatible with this change, for Java clients depending on EJB remote API, fixing the imports and recompilation will solve the issue.

Translations

The GWT part of the UI has partially been translated into German, Portuguese, Japanese, Chinese, Czech, Russian and Korean. The language should be automatically selected depending on your browser settings. You can explicitly access other translations by appending a locale specifier in the URL. For example to select the German translation you would append ?locale=de to the base URL, e.g. http://localhost:7080/coregui/?locale=de.

Supported locales are:

zh for Chinese

cs for Czech

de for German

ja for Japanese

pt for Portuguese

ru for Russian

ko for Korean

Please ping us if you want to help translating the UI to your language. Translations are done via the translations project on GitHub, which also has some instructions on how to start.

Bug reporting

Please report all bugs you find in Bugzilla. If you find a bug that has been recorded in the above list, please leave a comment on them especially if this needs special steps to reproduce.

Bug 846451, 949048, 949062 * Users with just Resource Group access cannot access alerts on their Groups * Failure adding member to group with alert definition * Removing member from group with group alert definition removes all instances of the alert definition

BZ 921927 Tried to make text boxes resize when browser is resized but failed to get it to work. I tried to emulate http://www.smartclient.com/smartgwt/showcase/#layout_form_spanning but it didn't seem to work within the Toolstrip. Instead, to better support narrow browsers I: - reduced the size of the search text box by 100 px - removed the unnecessary leader spacer of 40px - was able to fully hide the savedSearch text box space when not being used

The cassandra log filename was huge, I don't think we want the whole path in the name, do we?

this is a manual cherry-pick of a master commit addinga convenience method to the ASClient.

fix a small issue in the rhq-installer.bat

Working towards rhqctl install support on windows...

On windows default the cassandra data to HOMEDRIVE:/rhq/storage/...

Fix issues in install marker file placement.

Get Agent to install and start as windows service via 'rhqctl install'

More rhqctl work - update start/stop/status commands for windows compat - fix logdir mkdir issues in rhq-server.bat - add option to ControlCommand.getCommandLine() to not append .sh to the script name - add Remove command (although currently not sure if we want this in rhqctl, so commented out)

Change the cassandra heartbeat quartz job to be non-volatile because volatile is treated as non-volatile in a Quartz cluster, and was generating logging at 5s intervals. Also, just move the job creation into the existing scheduleJobs method.

Add Server Plugin for injecting factory-installed alert templates for RHQ. This will be used to create pre-defined storage alerting, alhough at the moment it just creates a dummy template for alerting when the rhq agent goes down.

just some name changes to distinguish templates and maybe make things more clear.

Fix issues in DiscoveryBossBeanTest that could cause test interaction problems. - Incorporate test class name into plugin/entity naming - use unusual ids - delete entities based on unique naming, not in ways that could wipe another test class's data

Add the actual Process to the ProcessExecutionResults and ProcessExecutorResults. This allows the caller to inspect or detroy the process if necessary.

Make sure we always use forward slashes when generating the dev-container rhq-storage.properties file. Backslashes are treated as escapes by Properties.load().

eclipse: update stax cassandra driver version

Add support for server itests on Windows. Arquillian+Surefire+Cassandra+Windows did not like the way we used the suite deployment extension as a hook for starting and stopping a test cassandra cluster. The spawned cassandra process seems to confuse things such that the arquillian process and its deployment (eap) process would hang, and the surefire report would not be generated. Likely due to the fact that Windows does not deal with "background" processes the same way as linux. This was after already trying to trim the test cluster from 2 nodes to 1 node, for similar process-related issues.

turn off default use of FilePreferences for agent wrapper

Fix discovery issues

add rhq storage plugin to ear

Fix artifact name for storage plugin

- Fix issue with storage node setup - Go back to using pid files to kill cassandra processes on linux

trivial - fix type in log message

remove placing the dep plugins in the jar lib. The useClasses feature will get the classes from the previously loaded plugins as needed.

CassandraNodes (and StorageNodes) can't defer to JmxDiscoveryComponent.upgrade() because the resource keys are not JvmResourceKeys. Override upgrade() and just return null, there is no resource upgrade, these are new resources.

Fix test failure issues caused by unclosed streams. Also, make an anal retentive change to StreamUtil to make absolutely sure we clean up the streams when closeStreams is true.

Fix test that started failing after the change to remove JOIN FETCH from Criteria calls that include paging and optional data. It seems the new approach changes slightly the way the data is returned.

Fix test that started failing after the change to remove JOIN FETCH from Criteria calls that include paging and optional data. It seems the new approach changes slightly the way the data is returned.

Change helper method from public to private. For classes annotated with @Test all public methods are treated as tests so you have to be careful.

Use only apache logger and not the jboss logger from the base class.

BZ 966665 - Criteria queries with paging and sorting on non unique fields may return same item on different pages

Use only apache logger and not the jboss logger from the base class.

BZ 966665 - Criteria queries with paging and sorting on non unique fields may return same item on different pages

remove use of method not supported by GWT

remove use of method not supported by GWT

Make sure sub-queries used for updates do not include implicit paging/sorting.

BZ 966665 - Criteria queries with paging and sorting on non unique fields may return same item on different pages

remove use of method not supported by GWT

Add new JMX metric for "VM Memory System:Heap Usage Percentage". This provides a way to monitor/alert actual memory consumption as it is calculated as HeapUsage/HeapCommitted.

Get rid of the unnecessary and mispelled local method AlertDefinitionManagerBean.createAlertDefinitionAndRerurnIt(). It's value was that it returned the created alert def as opposed to just the id of the alert def. So, instead, have AlertDefinitionManagerBean.createAlertDefinitionInNewTransaction() return the AlertDefinition as opposed to the id.

Fix an issue with alert template application to discovered resources. The root cause has to do with sending attached entities across Tx boundaries:

BZ 915291 ] Errors in server log after first attempt to login with LDAP user

Fix issue with alert duration job when the resource in question is removed from inventory during the duration period.

rhqctl work - add some feedback to the install process while waiting for server install - improve some messaging - switch to using dmr client (as opposed to log scanning) for install completion checking - improve -Pdev update of dev-container the server-control module to update the entire module

Rhqctl work: add the 'remove' command to remove services when on windows. Add initial 'upgrade' command. Does nothing other than validate args at the moment.

On windows, make 'rhqctl install' perform a windows service reinstall even when the component is already installed. This is more like the legacy behavior for install/remove on windows.

prevent upgrade if RHQ is already installed

rhqctl install/upgrade work - move default server/storage agent dir out from under server so it can survive updates and not invalidate associated RhqAgent resources. - refactor Install and Upgrade to share abstract base class - variety of other use case work

Change to dev-container structure to push the server under dev-container/rhq-server. This allows us to install the agent in the new fixed location, which is as a sibling to the server directory, in a location that does not have to change as server versions are upgraded.

BZ 974876 [RFE] ResourceUpgradeFacet should support upgrade of plugin config properties - Implement PC config upgrade for StorageNode resources so that paths can be update to handle RHQ upgrades and maintain the same resource. - Add test code to ResourceUpgradeTest

Update StorageNode plugin to use new resource upgrade feature to update plugin config prop directory paths after an RHQ upgrade.

add a new rhqctl debug config for eclipse

Fix some upgrade bugs when upgrading from a non-rhqctl version (windows only issues)

More Upgrade fixes - Allow --storage-config option for upgrade. This is valid only for the case when upping from pre 4.8 to support the SN install. - Fix Windows issue when copying over old key/trust store settings - Enhance the help text a little for the pre 48 options

Fix upgrade issues - fix agent upgrade of existing agent in the default location (i.e. no --from-agent-dir specified) - On Windows, ensure exit codes are passed back from the storage installer and rhqctl scripts. The former is very important as otherwise errors in the storage installer do not prevent an attempt to upgrade/install the server.

Beef up RUN_AS/RUN_AS_ME option for the server and storage windows services. Make sure the RUN_AS options can be used without hanging rhqctl on a password prompt. These are now like the agent, although by default RHQ_STORAGE_PASSWORD_PROMPT is set false for storage and server, since they are primarily installed via rhqctl. It still defaults to true for the agent-wrapper, since agents are primarily not installed by rhqctl.

Jirka Kremser <jiri.kremser@gmail.com> (1):

Merge pull request #1 from lzoubek/master

Jirka Kremser <jkremser@redhat.com> (92):

Adding "/cassandra/" to .gitignore. ("./cassandra/" didn't work for me on Fedora.)

NPE was thrown by the installer when the node was not running. Adding the check for null when closing the cassandraSchemaManager.

BZ 876132 ] - Remote agent install form requires the ins. path to be non-empty, but the tooltip says it can be empty - Tooltip has been changed. Also the whole view for this use case was improved.

BZ 876132 ] - Remote agent install form requires the ins. path to be non-empty, but the tooltip says it can be empty - Allowing blank installation path. It should search for the agent install directory if the path prefix is provided or to choose a default one.

BZ 923458 - Versioning for dependencies and plugins not consistent - version of liquibase set to 2.0.3 (there was a CNF exception when running itests-2)

BZ 823908 ] - User should be redirected to Operations->History tab after operation execution on autogroup - The getListViewPath method slightly modified. Now it takes into consideration the case when scheduling the operation for autogroups.

BZ 824439 ] - Links in 'Group: Operations' and 'Group: alerts' portlet are not working in 'Summary->Activity page of autogroup - URL of links has been fixed for operations portlet.

BZ 824439 ] - Links in 'Group: Operations' and 'Group: alerts' portlet are not working in 'Summary->Activity page of autogroup - URLs have been fixed for alert portlet. Based on EntityContext.isAutogroup().

BZ 857438 ] - Create a way to let GUI session timeout be configurable - Adding the GUI Timeout as a system config property.

API checks: adding a record to intentional api changes. (restriction of visibility of serialVersionUID static field defined on class SavedSearchCriteria)

Restriction of visibility of serialVersionUID static field defined on class SavedSearchCriteria.

BZ 824439 ] - Links in 'Group: Operations' and 'Group: alerts' portlet are not working in 'Summary->Activity page of autogroup - URLs have been fixed for events portlet, resource metric portlet and resource's Alerts->Definition table column (when the alert was originaly defined on the autogroup). The ResourceTreeView component now works all the time (there was an issue when it wasn't possible to select any node in the tree and user had to refresh the page if the URL of autogroup was directly passed to browser or accessed via any link in the UI).

Adding 2 classes to the intentional API changes, namely: DisabledResourceComponent and DisabledResourceDiscoveryComponent. These two classes were introduced on Jan 25 for as a hot fix. Now they are not used anymore, because the ignoring of a whole resource type solves the original issue.

BZ 951266 ] - d3 Charts on Inventory -> Summary -> group metric portlet don't work properly for various groups - There was an timing issue with using the count down latch in class CompositeGroupMultiLineGraphListView. Also, different criteria ("filterVisible" in particular) have to be used for fetching the data for autogroups.

Splitting the JavaScript code generated by GWT compiler into smaller files. It reduces the time needed to load the login page.

Changing the "activeByDefault"for Oracle mvn profile to false.

Preventing the timing issue with rhq.cassandra.seeds property by explicitly calling the jboss-cli and setting it for the AS.

moving the .propSet away from the /home/jkremser/workspace/rhq/dev-container//bin directory; fixing a typo in StartupBean

Adding the executable bit for rhqctl script.

Moving the RMIContextFactory class to a separate maven module, because of the dependency on com.sun.* package. When depending on this Maven module, adding the exclude tag not to propagate the dependencies (on com.sun) transitively.

Adding the dependency to cassandra-driver-core and rewriting the ClusterInitService.waitForSchemaAgreement() using the CQL.

Replacing the Thrift code with JMX calls, this includes: refactoring of StorageNode; cahnges to ClusterInitService; Thrift port was replaced with JMX port

Turning off the Thrift-based rpc by default.

Adding criteria finder for StorageNode entity and itest for the finder.

Adding local interface for StorageNodeManager, moving the criteria finder from TopologyManager to StorageNodeManager, following the same file structure for itests

Adding the dependency to core-domain for module rhq-installer-util.

Removind SuppressWarnings and making the call type safe.

New icon for storage node entity.

Adding a comment explaining why simple String.format() can't be used.

Fixing a typo in a sample CLI script.

Making the height of the content of the sections in the navigation on the left hand side automatic, depending on the number of items it has.

Adding fetchResource() method to StorageNodeCriteria class.

Adding new data source and data source field class for Storage Node entity.

New views for Storage Node entity (list view and detail view); also adding the new criteria finder to the TopologyGWTServiceImpl.

The name of operation for shutting down the storage node is called "shutdown", not "stop".

BZ 958169 ] - Modified alert definition is not saved on confirming the save message after clicking on 'Back to List' button - Making the "Back to List" button disabled when editing the alert definition.

BZ 958169 ] - Modified alert definition is not saved on confirming the save message after clicking on 'Back to List' button - New method for creating an alert definitions was added to SLSB, because the UI requires the ids of newly created alert conditions.

Making the StorageNodeManagerBeanTest#testInit test passing; building the rhq-storage plugin by default

Exposing new metric for Cassandra plugin - Tokens. Also improving the jmx plugin to be able to interpret the measurements when the List is returned from attribute.getValue(). The meassurement value is then calculated as the number of elements in the obtained list.

Exposing new metric for Cassandra plugin - Ownership. This has to be calculated manually in the getValues() method on StorageServiceComponent.

Exposing new metric for Cassandra plugin - Ownership. Forgot to add one method.

Refactoring: moving the MeasurementAggregate from server/jar to core/domain in order to be able to reuse it from other modules

Fixing the build (missing import)

Adding the getLoad() method to the StorageNodeManagerBean. It is half-way don, few aggregate metrics still needs to be added. Also exposing the StorageNodeManagerBean in CLI interface.

just a typo

Making StorageNodeManagerBean.getLoad() method more efficient using named queries. Support for correct unit formatting of StorageNodeLoadComposite.toString().

Preparing UI for expandable rows. Prototyping with some artificial data.

Adding a new metric for Cassandra plugin. This metric is a calculated one and it denotes the percentage usage of the partition where the data files of C* are stored, if there are more of them, the maximum is used.

Making the getLoad method more safe. The entityManager.merge(node) wasn't doing the right thing.

Improving the StorageNode UI, making the rows expandable. Also adding the operation history view as a section to the SN detail page.

Logging the root cause of the problem in CriteriaQueryRunner.initialize() when debug LVL is on.

BZ 872731 - this fix adds the ability to define a timeout for a specific remote POJO obtained by the client factory.

Squashed commit of the following:

BZ 535289 - by default, don't get schedules from criteria if resource is not committed this addresses a problem when the group metric table view aggregated metrics that included ignored resources

fix problem with the goal - verify doesn't appear to be a valid goal name, check is valid.

BZ 535289 - when ignoring a resource, it is appropriate to set their availabilities to UNKNOWN since we will not be tracking their avails anymore. this commit adds an API to AvailManagerBean to allow us to explicitly set resource avails. When ignoring resources, we set them to UNKNOWN.

BZ 535800 - can't use default protocol because it is automatically initialized and cached, not allowing us to use a customized one add a main() for quick testing

BZ 951382 - if keystore/truststore is left undefined in agent config, we'll explicitly set the pref for the user using the "conf/" location

BZ 903402 - fix code if windows drive is missing but otherwise the path is absolute

BZ 699893 911692 - if the user ran EAP 5 with cmd line option -Djboss.server.data.dir=/some/data/dir then the AS5 plugin should look there, too, to try to find the jnp-service.url file

provide some additions to the sample skeleton plugin add a new "skinny platform" plugin sample, used mainly for testing - provides a minimal plugin you can use to run an agent with

provide another sample plugin that demonstrates using the embedded plugin extension model

BZ 951382 - for upgrades, let's use the agent preferences upgrade feature to set the cert store locations explicitly and copy the files from data/ to conf/ which is the new default location. Note that if customers already explicitly set the locations of their cert stores, we leave those intact and continue using what the customer asked to use. We only do anything IF those settings weren't set and thus defaults were taking effect.

* do not maintain a second agent-config .xml file for fear we will go out of sync over time (as proof, we've already diverged from the main agent xml copy). * do not clean the top rhq-agent pref node - that will purge everything and could effect other agents running with non-default nodes (we use this for agentcopy/agetnspawn for example) - just purge the rhq-agent/default node since we'll install using that as the default * fallback to the agent to determine its default server binding address to use - this allows the agent to do its default behavior (which uses the "rhqserver" DNS alias or, if that is unknown, using the local canonical host as a fallback) * do not purge the security token, if one exists - this lets us (poorly) do upgrades as well as do a clean install - problem is if its an upgrade, we should still keep all settings. We should consider not doing clearAgentPreferences() in org.rhq.server.control.command.Install

fix more agent install stuff for rhqctl * you can now override any agent pref via --agent-preference, including agent token if you want. you can specify more than one. * removed unused option * slurps in the config file (whether custom or the default one) and populates the preference node with it, but still maintaining security token if one exists. * sets the setup flag to true, always, since the agent is never able to ask setup questions anyway via rhqctl

* rhqctl no longer supports putting agent and storage installs in custom locations via agent-dir and storage-dir- they always go in a well-known location under the root isntall dir * --storage-data-root-dir now allows you to set the root directory where all the storage data dirs go - this allows one to easily install even if you aren't running as root * the installation will fail if the custom --storage-data-root-dir is not empty * fixed the wording on some of the help text to make it more clear about things (i.e. installing storage will imply installing an agent too; if you install just a --server, lets the user know they should have a storage node somewhere else)

turn of auto-update of the agents that are installed via rhqctl; these agents are managed by rhqctl

fix help text - we don't support agent in console right now

if one of the data directories is not empty, we abort the storage installer since this indicates we are probably stepping on another storage node installation

trivial tweeks to help text

remove some obsolete code that isn't used

provide an option to install, but not start, the agent. This provides a window of opportunity for users to reconfigure the agent before starting or add things like keystore/truststore files to it

abort the server install if something is already listening to port 9999 (which is probably another EAP instance that is in the way)

switch from using protected fields to protected getter methods.

first stab at upgrading rhq-server.properties. needs testing

* copy the old oracle jdbc driver (if one exists) to the new server install * make sure we do not overwrite the db during the upgrade by setting the autoinstall.database value to auto

log a user-friendly error to tell the user what he should do if the storage node can't write to the data directories

chmod +x the rhqctl script

fix the error message to show the option name prefixed with – to make it clear what it is referreing to fix the chmod +x for rhqctl

fix copy-n-paste bug

do some checking to make sure the build actually has the EAR where it can be accessed

throw exception immediately if the EAR URL could not be obtained

fix more things in the rhqctl upgrade - always ensure the autoinstall.enable is true and get the oracle module from the old server properly

more work to get agent and server upgraded. still nothing done yet wrt storage upgrading. this stuff still needs work. need to know if we should upgrade server and storage (i.e. if they weren't installed, we shouldn't upgrade)

* if anything is installed already (including just the agent) the upgrade will not continue. An upgrade will only happen if you unzip a distro and not install any component (i.e. you must upgrade, not install) * the old server install rhqctl script is invoked with "stop" argument so any old components still running are stopped prior to the upgrade continuing. * the agent is started after the agent upgrade happens, unless the user told us not to start the agent

stop the agent using the agent wrapper script if a from-agent-dir was specified

* change help text for --storage-data-root-dir to explain when you can and can't use it * rename method getPre48RhqServerScriptName to getRhqServerScriptName since that script name still exists and is still the same name even in RHQ 4.8+ * abort the upgrade if --storage-data-root-dir is specified but you are not upgrading a 4.8+ install. This is only valid when upgrading an older version that did not have a storage component.

fix the for-loop so it doesn't rely on the order of files coming back from listFiles

during server upgrade, make sure we copy over any keystore/truststore files that were in the old server. We put them in the new server's standalone/configuration directory.

rename --agent-no-start argument to --agent-start and have its boolean value be optional.

change the name of the --agent-start option to --agent-auto-start ... we'll come to a consensus soon on the name of this arg

fix the help text - /var/db is not the location

reorder some things so we dump the info message saying "stopping components" prior to actually stopping them. also, don't stop the agent until we are sure we can proceed with the upgrade.

BZ 928971 ] - Return the same class pool for the same context classloader so that the class cache of the class pool is consistent with what has been defined using given classloader. This should prevent the possible linkage errors when trying to define a single class multiple times in the same classloader which could have happened before this change.

BZ 928971 ] - Set the correct classloader for the dynamically created resource proxy classes.

Get rid of the dependency on the JMX plugin in the Arquillian container tests.

BZ 620603 ] - Re-enabling the limited JOIN FETCH reporting with a more informative message, asking the users to co-operate in identifying the individual uses of the problematic JOIN FETCH queries that we potentially missed.

BZ 965833 - Potential bug in join/fetch/avoidance code] It is now possible to lazily fetch fields defined in super classes.

BZ 958754 ] - d3 multi-line chart: time units should have minutes when appropriate. Added the appropriate d3 time format string and updated the nvd3 chart library neither of which fixed the issue. It appears to be an error in nvd3 chart library.

Make x-axis more readable on Safari, IE. These browsers even though they are using the same SVG fonts, render wider fonts showing up as labels running into one another. Reduced the clutter on the x-axis for increased readability.

Make the date range text box larger and dynamically calculate the what the range (difference) is. For instance '2 hours'.

Show chart values for single points: Value: 7.99.

Fix double refresh issue and make refresh more robust by delaying the redraw a bit so that the code can keep up with the screen redraw (like we have done elsehwere).

Merge from master 6/11/2013

Sometimes the sparklines graphs are not rendered they show up as '...' because the jQuery method invoking the sparkline can't find the css class in the DOM because it hasn't been fully rendered yet even though it has been added to the DOM tree. This is more likely to occur on slow machines.

i18n the date/time format for new button bar range editor. This is just the format for javascript so it is the date/time format for the range, shown while you are dragging the sliders. It is javascript (not smartGWT) that is handling the d3 brushes dragging. Updated the DE and CS date formats as well.

Make the new server metrics and related modules maven and Eclipse friendly.

Merge branch 'master' into feature/cassandra-backend

Merge branch 'master' into feature/cassandra-backend

Move baseline calculation away from SQL db. The baselines will continue to be stored and retrieved from SQL but the data for the calculation will have to come from new metrics storage system. Also removed most of the references to the old way of calculating baselines.

Allow direct setting of schedule ids for balines.

Refactor tables (column family) names into an enum.

The statement binder needs explicit conversion to string otherwise enum value is used to create the statement.

Update metrics table enum to have default ttl for data.

Initial data migrator work, only aggregate tables included.

Simplify MetricsDAO interface to use only long type for expressing date&time. Actual date&time manipulations should be done in higher layers, the dao is only used fpr retrieving/updating data so simple time in millis is sufficient.

Add raw metric migration code. Also refactor the code to attempt the migration operation a few times before failure.

Add missing precision to assert statement.

No need to have this interface deprecated since the data migrator needs to be a permanent utility.

Retrieve the full measurement schedule from the db to satisfy entity relationships. This will keep domain design and code clean.

Fix queries to match updated version of the measurement baseline entity.

Add two scripts created to help with the metrics data migration effort. One script generates random data representive of the estimation and the second parses the xml plugin descriptors to extract counts for metrics defined.

Updates to the metrics module to support paging of results. Various other updates and refactorings to support this change.

Various other updates to support pagination of results from Cassandra.

Work around driver quirks and correct iterator usage. Also, add documentation to the paged results implementations.

Add a command line runner for the data migrator to assist with benchmarking and potential usage within the application. Various updates for the data migrator. Also, update the tool that generates random data to support sql configuration from command line options.

Add dependencies for data migration command line runner.

Make test to drain statement accumulator more reliable by draining every time the number of loaded statements is equal to or exceeds the limit.

Avoid using named queries to speedup the processing since raw data is sufficient. Run the migration process in a separate thread. Use the Cassandra batch directly instead of using an array to accumulate statements before sending them to Cassandra.

Small changes to the data migrator CLI to highlight the estimation and migration processes. Also, enabled Cassandra compression by default.

Update the RHQ plugin to be compatible with Cassandra 1.2.2. Drop support for 1.1.x.

Add manual mvn install to the snappy build script since it was not called during make process.

Add delete-only option to the migrator CLI.

Completely remove support for Cassandra 1.1.x because of changes in the plugin. Also, disable integration tests.

Renable dev-container deployments and move the executable plugin out of the dev container builds.

BZ 952781 ] Update the phase for packaging third-party libs to include them in the non dev-container builds. This problem was masked in the dev-container builds due to the way the jar is constructed and deployed.

Change the default database for the migrator to rhq, which is the official default RHQ database.

Make Cassandra native port configurable and simplify the cassandra host options to take only hosts. The port is unique accross all the hosts and the thirft port is no longer need.

BZ 923458 ] The output of dependency:tree maven utility prior to any dependency version changes.

BZ 923458 ] Dependency tree output after all the changes that went in for the past week. Adjusted a few depedencies to reduce the diffs between pre&post updates.

Prevent the maven assembly plugin from overriding the main project artifact.

Fix to avoid skipping the first record of every migrated table.

Revamp the way to get information about the current node. The address, native port, and cluster name are now retrieved from the actual cassandra yaml file on discovery.

Integrate the experimental bulk export for Postgres into the data migrator code. Also, move all the migrator related code to a sub-package

Add configurable authenticator property to the plugin. The authenticator is detected on discovery and then used for CQL connections.

Update the plugin configuration propertiest to capture the file path for the yaml file. Also, remove and update other properties that were not used properly.

Add back all the transitive dependencies that were packaged by the plugin.

If the conf folder is absolute then do not base it on CWD. This can happen depending how Cassandra deamon gets started.

Add back missing snake yaml dependency.

BZ 958898 ] Avoid any possible overlap between two subsequent queries by specifying an order for the query.

BZ 958898 ] One more update to the queries to use exactly primary indexes created. Also increase query timeout considerably to avoid timeouts due to longer initial queries.

BZ 959591 ] Add back specific ant version based on local pom variables to force the download of the dependency even if not directly used in the pom. Without this, the pom would assume that the version referred here is the version from parent poms. This can cause the submodule artifact to miss ant binaries if not already in the local maven repository. (cherry picked from commit 2bb45d3c4c9d5edc71acf4380ce7a10a93937aae)

Update test to avoid disabled managers. This is especially important for the TagManager that can be disabled via build properties. (cherry picked from commit c9ccdbf61842dd115ce0d3067752e85dbb1db730)

Disable all the arquillian-integration submodules from building when maven.test.skip is true. Also, fix modules that depended on these modules to include them only if they are built. (cherry picked from commit 7e9678418a8ee2683aafb395c1cc25415ab375e3)

Default to normal operation mode for now to satisfy entity requirements.

Add more default timeout properties to the list of properties used to unitialize the entity manager.

Remove CassandraNode entity local to ccm modules in favor of the domain StorageNode entity.

Move the storage node discovery code from the session manager bean to the storage manager bean. Attempt to find the resources associated with the storage node seed list. Fill in the status of the storage node based on the resource information.

Add a streaming cursor data source to the list of available data sources and make it the default implementation. This will prevent requiring the database after the initial result, the rows will be just be streamed to the migrator in requested chunks.

Change the initialization annotation for storage node bean to comply with the stateless annotation.

Create the RHQ Storage Node plugin and update the Cassandra plugin to ignore resources these types of resources from discovery.

Update storage manager bean to link to RHQ storage node resources. Plus a few minor updates to the plugin to expose functionality to inheriting classes.

BZ 964229 ] Remove tokens trait since it gets large with virtual nodes enabled. The information is still avaiable via the tokens to endpoint map property.

BZ 958898 ] Update the estimation process to avoid count timeouts. Also, improved the estimation process by not counting the non-migration time (eg. query preparation) as part of the variable time estimation.

Clip unused line.

Update storage installer for Linux to start cassandra with a relative classpath. Before this change the Cassandra deamon was started with all the jar classpaths as absolute.

One more attempt to enforce session timeouts for Postgres due to driver ignoring hibernate imposed settings.

Update the metrics index table during the migration to insert metrics index. This will trigger aggregation on the recently migrated data if needed. The period to be added to aggreation is the from one aggregation slice before the last aggregation.

Split the big data migrator class and decouple functionality from the big main class.

Cassandra schema manager.

Move assembly plugin into a separate profile since it is not required for main artifact, only when testing with the main runner.

Update topology management to schema manager. No change to the external interface for the schema manager.

Change gc_grace_seconds updates to ALTER commands.

Add the topology change commands in the install and maven/test supporting modules.

Update the relationships between the storage nodes and corresponding managed resources when new storage nodes get discovered or removed from inventory.

Fixing a merge rebase import omission.

Update storage node bean to process nodes discovered but not set in the seeds property of the server.