RHQ 4.9.0

This is the RHQ 4.9 release. TBA.

Installation noteRHQ 4.9.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

Improved Cassandra backend for metric storage

RHQ 4.9 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

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

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

This release adds more storage node management support that includes,

Support for multi-node deployments

Pre-defined alerts

Configuration support

Significant enhancements and improvements in the Storage Nodes admin UI

RHQ 4.8 storage patchIf you are upgrading from 4.8, you MUST apply the storage patch described below before upgrading. Without the patch, the storage node in 4.9 will not work.

In RHQ 4.8, the storage node packaged native libraries that have been removed in 4.9. If your platform has support for those native libraries, then the storage node will the functionality. You need to apply this patch to your 4.8 installation before starting the upgrade process. Unzip the patch file and follow the instructions in the .sh/.bat file. You can find some more information about the patch in this blog post.

REST API

GUI

Graphing enhancements: New date range navigation control and ability to drag a range over a graph. Video ﻿(4 min) Date Range Slider Controls

Availability Charts redesigned

Portal Charts now have large and small versions (to fit narrow column portlets)

Two small improvements to the general configuration editor: if there is only one section, no section stack is displayed; the limit number of items for displaying the combobox instead of a radio buttons is now 5 (it was 3)

Alert condition dialog now displays the base units

On the Administration page for storage nodes the following was added:

Support for displaying recent alerts across the whole storge cluster and for a specific node

Cluster wide and node specific configuration

Support for deploying and undeploying additional nodes

Fine Grained Bundle Permissions

You can now define much more fine-grained security controls around the bundle provisioning feature of RHQ. In past versions, it was an all-or-nothing proposition - a user could either do nothing with bundles, or could do everything with bundles. Now there are several permissions you can assign to users to allow for them to, say, create bundles but not deploy bundles. A new concept of "bundle groups" has also been introduced to help support this new fine-grained security model around the bundle subsystem.

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

BZ 1006577 - the new fine-grained permission to assign/unassign bundles to bundle groups is not working. For users that must be able to alter bundle group membership, use the global bundle permission to grant all permissions. This will be fixed in the next release.

Deprecations

REST-API Endpoints introduced in 4.5.1 to create platforms and resources have been deprecated - replacements are provided.
The deprecated endpoints will go away in RHQ 4.10

Bundles:

Constructor org.rhq.bundle.ant.AntLauncher#AntLauncher() has been deprecated. Callers should switch to using a new constructor org.rhq.bundle.ant.AntLauncher#AntLauncher(boolean requireExplicitCompliance).

Method org.rhq.bundle.ant.type.DeploymentUnitType#getManageRootDir() has been deprecated. Callers should switch to using a new method org.rhq.bundle.ant.type.DeploymentUnitType#getCompliance() method.

Method org.rhq.bundle.ant.type.DeploymentUnitType#setManageRootDir(String booleanString) has been deprecated. Callers should switch to using a new method org.rhq.bundle.ant.type.DeploymentUnitType#setCompliance(org.rhq.core.util.updater.DestinationComplianceMode) method.

Constructor org.rhq.core.util.updater.DeploymentData#DeploymentData(DeploymentProperties deploymentProps, Set zipFiles, Map rawFiles, File sourceDir, File destinationDir, Map zipEntriesToRealizeRegex, Set rawFilesToRealize, TemplateEngine templateEngine, Pattern ignoreRegex, boolean manageRootDir, Map zipsExploded) has been deprecated. Callers should switch to using a new constructor org.rhq.core.util.updater.DeploymentData#DeploymentData(DeploymentProperties deploymentProps, Set zipFiles, Map rawFiles, File sourceDir, File destinationDir, Map zipEntriesToRealizeRegex, Set rawFilesToRealize, TemplateEngine templateEngine, Pattern ignoreRegex, Map zipsExploded) this is because the manageRootDir parameter is deprecated and this constructor should not be used. The need for that parameter was superseded by the org.rhq.core.util.updater.DeploymentProperties#getDestinationCompliance().

Method org.rhq.core.util.updater.DeploymentData#isManageRootDir() has been deprecated. Callers should switch to using a new method org.rhq.core.util.updater.DeploymentProperties#getDestinationCompliance() method.

Method org.rhq.core.util.updater.DeploymentProperties#getManageRootDir() has been deprecated. Callers should switch to using a new method org.rhq.core.util.updater.DeploymentProperties#getDestinationCompliance() method.

Method org.rhq.core.util.updater.DeploymentProperties#setManageRootDir(boolean willManageRootDir) has been deprecated. Callers should switch to using a new method org.rhq.core.util.updater.DeploymentProperties#setDestinationCompliance(DestinationComplianceMode mode) method.

Other:

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.

Method org.rhq.enterprise.server.resource.group.LdapGroupManagerBean#getProperties(Properties systemConfig) has been deprecated.

Method org.rhq.core.domain.cloud.StorageNodeLoadComposite#getDiskSpacePercentageUsed() has been deprecated. Callers should switch to using a new method org.rhq.core.domain.cloud.StorageNodeLoadComposite#getPartitionDiskUsedPercentage() method.

Method org.rhq.core.domain.cloud.StorageNodeLoadComposite#setDiskSpacePercentageUsed(MeasurementAggregateWithUnits diskUsedPercentage) has been deprecated. Callers should switch to using a new method org.rhq.core.domain.cloud.StorageNodeLoadComposite#setPartitionDiskUsedPercentage() method.

API changes

Discovery Callback API for agent plugins

Agent plugin developers now have a way to "intercept" details from newly discovered resources that are returned from discovery components. This allows a plugin to intercept details coming from its own discovery components or coming from discovery components from dependent plugins and change them as they see fit before the details are returned to the server for processing.

To implement this new feature in your plugin, you must add a new <discovery-callbacks> section to your plugin descriptor and implement the interface org.rhq.core.pluginapi.inventory.ResourceDiscoveryCallback.

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.

get rid of the upgrade wording, it's confusing when performing an initial install.

Start setting up some infrastructure for Bundle Groups and associated permissions.

Work in progress - getting new bundle perms integrated into role views

More work on working new bundle group stuff into role edit view. Also, continued cleanup of Messages.properties.

Start of remote API design/impl for BundleGroups

Add new auth token for bundles

In progress: working through the bundle remote API and adding fine-grained authz...

Fine-grained bundle perms : checkpoint check-in - finished initial work-through of remote/local API methods and the associated coding to support the updated permission scheme - Global.MANAGE_BUNDLE is no longer used as an explicit permission but now only as a convenience for setting all of the new permissions. - merged the "FindXxxByCriteriaWithDestinationFilter" local methods into their respective "FindXxxByCriteria" methods. The base methods should be handling this filtering, otherwise they basically have a security hole.

More fine-grained bundle testing and work - add canView authz support for bundle stuff - up the serial version uid for affected entities - fix inverse relation handling on add/remove/sets - add more testing around create and delete, fix cleanup of bundle groups - fix some delete code when roles or bundles are associated with bundle groups - add some more useful authz checking for local api

complete dbupgrade work for bundle groups and new perms

add bundle deploy-related fine-graned perm tests and associated fixes

fix up the cassandra handling for the -Ddbsetup[-upgrade] and -Ddbreset handling to match master (Stefan's fixes).

- Update MANAGE_BUNDLE_GROUPS perm handling to grany VIEW_BUNDLES and to allow assign/unassign of bundles to bundle groups, as per design - add testcode - Change MANAGE_BUNDLE to grant only the new global bundle perms, which should be sufficient for all bundle tasks - update dbsetup and dbupgrade appropriately - Fix Rolemanager.updateRole to apply permission grants for MANAGE_BUNDLE and MANAGE_BUNDLE_GROUPS - Review and update bundle perm I18N descriptions - Add new bundlegroup icons - make a few changes to permissions editor in gui as suggested by UX - fix some jdoc formatting

First pass at adding in bundle group view/create/delete support, work in progress.

Fix name link issue and a few other things

make sure to fetch bundles for the fetched bundle groups, so that the selector reflects the current membership

fix some issues, add some new api methods

add initial bundle groups (tab) support to the bundle detail view

remove entries for stuff still in a branch

remove entries for stuff still in a branch

Interim check-in of work supporting bundle group selection in the bundle create wizard - not working

remove dead src branch

Finish rough coding of integrating bundle group assignment into the bundle create wizard.

Make sure to fetch the bundle groups so the selector is correctly seeded.

reverse the inverse relationship setting because as is Role.setBundleGroups would fail when trying to deserialize a bundle group update. (when calling updateRole)

fix test code to use updated api

Fix non-global bundle create workflow using the "token" approach - move BundleNotFoundException to domain so we have a good ApplicationException to use that is also recognized in the GUI. - add radio button form to bundleGroups wizard step (needs a lot of TLC still) - temporarily fix New bundle button authz, remove MANAGE_BUNDLE

get button enablement working for bundles list view using the various permission schemes - add some new authz mgr bean support for bundle perms - fix the newly added permissions filter in RoleCriteria - add BundleAuthorizedTableAction and RoleAuthorizedTableAction -

fix some issues, add some new api methods

remove entries for stuff still in a branch

add jsandas latest library additions

fix merge issue

Merge branch 'feature/bundle-gui'

fix some intentional api change entries

BundleCreateWizard BundleGroups step work - more to do - cover the use cases better - add some I18N support

more work on the create bundle wizard, initial bundle version path

Bundle create wizard: groupsStep, add title for initial groups selector when not using radio box.

Add AuthorizationManager.getBundlePermissions to fetch the bundle level permissions for a single bundle, based on bundlegroup-role-subject authz. - make relevant addition to PermissionsLoader in the gui

Fix issue in the permissions editor, deploy bundles to group was not being shown

fix button enablement in the bundle, bundleversion, bundledeplyment and bundledestination views; apply fine grained perms to delete/deploy/tagging as opposed to the legacy managebundle.

- Fix subtle bug in non-initial version groups selector setup where we potentially queried the selector for assigned records prior to oninit() being called and actually setting up the initial selection. - Fix usability issue when assigning intial bundle groups. if the only option is to leave unassigned, keep the selector disabled and the "unassigned" radio button on.

UX action item (crobson) to have click on subcategory nodes in the tree perform an expand. This improves "interaction consistency" with the other tree node behaviors.

Merge the current avail check needs into the recently updated tree work. When avail change is detected in the detail (via the title view) then 'mock' a context menu refresh rooted at the selected/detail resource node.

BZ 1003132 - Recovery alerts based on availability may not fire if AlertConditionCache isn't reloaded before next availability report] The issue here is the lag time between processing recovery actions (like disable of the to-be-recovered alert def, enable of the recovery alert def, etc) and the alerting cache reloads, which can be up to 30s. The 30s [max] time is reasonable for other HA nodes, but for the server serving the agent, and\ firing the alert that triggers the recovery handling, it can be too long because the recovery action (if automated, like a restart) may happen before the cache reload, effectively missing the recovery alert.

Increasing the time to wait for operation to finish (the test was failing non-deterministically).

Adding the "prepareForUpgrade" operation to the storage node (top level resource). This operation should be run rightbefore the upgrade to the newer version. It backs up all the keyspaces and make the server and storage stop accepting the metrics.

Removing "./cassandra" and "/cassandra/" from .gitigore.

Simplifying bash script for rhqctl completion.

Fixing the api-checks jenkins build. Adding the setDiskSpacePercentageUsed() and getDiskSpacePercentageUsed() methods back to StorageNodeLoadComposite, and marking them as deprecated.

BZ 966293 - Add validation for expression when creating Dynagroup Definition - adding a check to GroupDefinitionManagerBean.validate() method. Also making sure, the right message is correctly propagated to the web UI.

BZ 980091 - link in the alert to the parent on which the alert was created - Adding a new filter on AlertDefinitionCriteria (filter by alert id).

BZ 980091 - link in the alert to the parent on which the alert was created - Adding the link to AlertDetailsView if the alert is defined by parent definition. Parent definition could mean group alert definition, autogroup alert definition or template definition

BZ 959587 - Alert definition should display units when entering a value; e.g. 'seconds' or 'megabytes' - Adding "BaseUnits" field to the popup form. The tooltip displays all allowed units from the same MeasurementUnits.Family.

API Checks - Changing StorageNode.QUERY_FIND_BY_ADDRESS. The constants for native queries shouldn't be part of the public API.

Entities < and > in the plugin descriptor were interpreted as HTML in the ConfigurationEditor and the content between them wasn't there.

Calling the right setter.

Adding the newly (6/28/13) issued certificate for accessing the pto calendar (mail.corp.redhat.com domain) to the rhq-ircbot keystore. This one should be valid until 6/28/15.

If there is just one group definition in ConfigurationEditor, normal form is used instead SectionStack component. Also the "Jump to Section" navigation is hidden for just one group to save some space on the screen.

BZ 976827 - Description text area in General properties tab under Alerts -> Definition is not getting set to blank one it has been edited. Instead it displays the previous value that was stored - setting an empty string if descriptionField.getValue() == null

Calling the right setter.

Adding the newly (6/28/13) issued certificate for accessing the pto calendar (mail.corp.redhat.com domain) to the rhq-ircbot keystore. This one should be valid until 6/28/15.

If there is just one group definition in ConfigurationEditor, normal form is used instead SectionStack component. Also the "Jump to Section" navigation is hidden for just one group to save some space on the screen.

BZ 976827 - Description text area in General properties tab under Alerts -> Definition is not getting set to blank one it has been edited. Instead it displays the previous value that was stored - setting an empty string if descriptionField.getValue() == null

Modifying the AlertHistoryView to allow display alerts of various resources (not necessarily forming a group).

StorageNodeDatasource now fetches also the avg heap usage and avg disk space usage, because we show these aggregated metrics in the storage node table.

Exposing (making it public) the method findResourcesWithAlertDefinitions() on StorageNodeManager.

Adding new method for fetching all instances of class StorageNodeLoadComposite.

Adding two new methods to StorageGWTService.

adding ".externalToolBuilders" dir to .gitignore

New storage node ui, containing Alerts, Configuration and the table with storage nodes.

Making things more consistent - now, one hour aggregate are used for both the load sub-table and for the Memory and Disk columns.

Number of unack alerts is now displayed on the alert tab title.

Considering FILTER_RESOURCE_IDS in the AlertDatasource.getFetchCriteria().

GWT service impl layer method for finding the unacked alerts, also fetching the # of unack alerts in getStorageNodeComposites() and making 8 hours the default time value for aggregated metrics.

Fetching all the fields of StorageNode entity if only instance with id is passed to StorageNodeManagerBean.findResourcesWithAlertDefinitions() method.

Hiding the "Jump to Section" navigation if there is only one section in the ConfigurationEditor component.

Another iteration of Storage Node UI: added polling mechanism to fetch the number of unack alerts; new metric (FreeDiskToDataSizeRatio) was added.

squashed commit: If there is just one group definition in ConfigurationEditor, normal form is used instead SectionStack component. If there are more than 3 items the combo-box component is used (instead 5).

squashed commit: UI work

Adding the header next to the "Back to List" clickable arrow. This required to change AbstractTableSection to support additional canvas to save some place on the screen.

New method on server jar for sparkline graphs for storage node.

squashed commit: Added method in the GWT impl class returning the data for sparkline graph for storage nodes. Another iteration of Storage Node UI: sparkline small graphs support. Fetching also definition ids. It is needed in order to get the data for sparkline graphs.

New component for editing the storage node properties. Adding the retrieveConfiguration() to GWT service impl class.

StorageNodeConfigurationEditor now updates the configuration for particular storage nodes.

Changes to storage node detail page: adding the availability field and the operation mode field.

Unable to update the storage node configuration if there were no changes made. Changing the configuration needs restart of the node, so I've added this check.

Adding check to StorageManagerBean.findStorageNodeLoadDataForLast whether the cluster is running; AuthZ: ensuring the presence MANAGE_SETTINGS on all remotelly exposed methods on StorageManagerBean and adding the jdoc for them.

Adding a way to disable the blacklising of resource types during the discovery. This can be handy when debugging the discovery process.

Cassandra UI: Fixing a regression by bug ca723caa9 commenting out the checks for availability because we don't assume the resource to be UP to be able to (un)deploy the corresponding node.

Making the cluster settings editable again.

BZ 995431 - GUI freezes on StorageNodes page - There was a hidden tricky loop when comming from diferent admin section. (setContent() called addChild() that called component's renderView() that called ... that called ... that called setContent() again.)

C* UI: Adding a link to the storage node whose child caused the alert to the alert table.

More descriptive log warning when no storage node is found in the database (StorageNodeManagerBean.getLoad() was failing with NPE). This situation somehow happened when the nodes were installed prior to the RHQ server itself.

Removing the priority filter from the alert view for storage nodes. Also fixing the filtering by creation time.

The small sparkline graphs displayed on in the storage node admin UI now corresponds with the actual data. There was a bug that actually caused that each row contained a graph for a different row (it was shuffled).

Update to the {Grease|Tamper}monkey script: removing the syntax warinings reported by the browser extension.

Mostly code cleanup of storage UI, removing commented out code, better exception handling. Also making sure the polling job for fetching the actual number of unacknowledged alerts is correctly unscheduled when the page is not visible or the session has expired. Changing the label "New Alerts" to more descriptive one "Unacknowledged Alerts". On the detail page if the operation failed during the (un)deployment phase, it is explicitly mentioned that it happened during the (un)deployment.

Fixing one typo in constructor causing the alert view for storage node not to be working.

John Mazzitelli <mazz@redhat.com> (26):

fix eclipse classpath

BZ 872738 - need to rename the class and resurrect the old class because the API check failed. the original patch changed the public class' hierarchy. we need to maintain that API compatibility.

BZ 988735 - refine the callback API. Abort the discovery of a specific resource if more than one callback processed the details. added integration test to see it work

BZ 988735 - add ability for callbacks to VETO a discovered resource. added integration test to ensure it works. NOTE: I disabled the test DiscoveryCallbackVetoTest.testDiscoveryCallbacks because something is causing our arquillian setup to deploy another plugin from another test and its breaking this one. I'm trying to find the problem, but for now, disabling the test just so I can get this committed to master so its in the next GA. the test passes if I enable it and run it individually, so the test is functional. It just can't work in the full test suite.

Replaced UserPreferencesMeasurementRangeEditor with ButtonBarDateTimeRangeEditor in Group --> Monitoring --> Metrics tab. Altered RedrawGraphs to a more general Refreshable so it can be used with tables and not just graphs.

ResourceMetricsPortlet narrow the resourceTypes to eliminated unused resourceType when all we need is measurement.

Fix refresh to keep graph open after auto-refresh.

BZ 995541 ] Remove JSF charting from Portal.war. More specifically, remove any java AWT references from classes which are the charting classes. Also make sure to preserve existing portal.war functionality such as content and timeline.

Make the new IE tooltip work for 'no data' and 'single value' bars like old tooltips.

Change the positioning of the new chart hovers.

Fix the svg charts from cutting off at 300px. Removal of the nvd3.css code that contained the global svg css rule: display:block; width:100%; caused this.

Remove the live value dialog from metrics view.

Fix metrics view bug when collapsing rows and refreshing the already open graphs. They stay open but graphs don't get repainted.

Show metric sparklines even when there is only a single point of data. The sparkline graphs only render a plot if there is at least two points of data. When a new system first comes up and only one point of data is available no sparkline is shown. By adding an additional "0" point to the single point of data the sparkline will now render.

Ensure console objects don't cause problems in IE. In CoreGUI.html there is a js IFFE that should take care of defining an undefined console object for IE but this snippet doesn't seem to be working yet. Will come back to this later.

BZ 1003794 ] Cannot load metrics on some resources when data is not available yet. Handle null RawNumericMetric better.

Fix bug with metrics refresh firing only once.

Remove unused Class IFrameWithMeasurementRangeEditor.java as portal.war no longer servers up any graphs.

Add a viewRenderedListener to subtab nav to properly update the MetricsResourceView. This functionality was broken when I added state to the view to record the open charts when a refresh occurs. By adding state to the view there is now I had to keep the existing view around between refreshes. This meant a cached view that was not picking up changes between the subtabs; now the viewRenderedListener handles the changes between the subtabs.

Update usage of bash boolean variables one more time in if statements. The test is now explicit.

Add unit tests to the data migrator. Also, reorganized the structure of the data migration package.

Updates to the data migrator: 1) remove the preserve data option since it can be confusing to end users 2) update the way data preservation is trigger via the delete data option 3) add code to close both the SQL and Cassandra sessions prior to program completion.

BZ 961361 ] The estimation process was wrongly attempting to estimate actual data migratio when only deletion was requested by the user.

BZ 976790 ] Update the data migration process to use properties from rhq-server.properties. This way the database and cassandra configurations are automatically loaded from the main source.

BZ 976790 ] Updated the parsing of rqh server properties to be consistent with the rest of the code.

Update the way the percentage disk space use is calculated. It is now based on the aggregate usage of all the partitions that have data files. Also, this is based on the total disk use, not just Cassandra. Added an alert based on this metric.

AllDataFileLocations is not a metric and thus no need to change the collection interval.

Update the calculation for the percentage of disk space used. The percentage now represents the amount of disk used by the Cassandra data files.

Initial implementation for fetching all the alerts triggered for Storage Nodes resource and sub-sources.

Add justification for the api changes to the Storage Node Manager bean.

Initial implementation for the Storage Node configuration composite. The final resource operation still needs to be implemented but the rest of the functionality is implemented.

Temporary fix for the server jar name for dev profile (it was still using the old name).

Update the set of calculated metrics for Cassandra to incorporate latest feedback. There are three metrics now: total system used space percentage, data file disk space used percentage, and free to data disk space ratio.

Add two more properties to the list of configurable properties for the storaga node. The new properties are heap new size and thread stack size.

Implement the storage node operation for updating jvm options.

Attempt to improve the operation trigger for updates on the storage node configuration.

Fix merge rebase issue.

Update the storage node manager API for alerts to support UI functionality.

Add back code used to update storage node configuration tha was lost due to rebase. This code updates two additional storage node properties added.

Enable the new set of calculated metrics for disk space utilization in the UI and CLI.

One more place where the previous rebase removed code for the storage node configuration.

Move the restart operation to the plugin rather than server bean. This simplifies the interface between the server bean and storage node plugin.

Add support for updating the JMX Port. The process sends a restart to the resource last to avoid putting the Server in maintenance mode.

Operations are now created in a new transaction. Also, change the way the configuration is updated.

Move the restart operation to the plugin rather than server bean. This simplifies the interface between the server bean and storage node plugin.

Add support for updating the JMX Port. The process sends a restart to the resource last to avoid putting the Server in maintenance mode.

Operations are now created in a new transaction. Also, change the way the configuration is updated.

Extensive Cassandra schema manager updates: 1) The entire code was simplified and all queries moved away from code. 2) It is now possible to bind variables to queries (eg. user and password). 3) Simplified the external interface. 4) Only the main interface is now exposed outside of the package. 5) Added unit tests for the file loading and binding code 6) Cleaned the queries and the execution flow 7) The drop restores Cassandra to the original state, pre install

BZ 990245 ] Use an attached storage node entity rather than the detached one recieved from the remote interface.

Add an alert template for take snapshot operation failure for the storage service.

Remove dampening from the alert definition. Dampening not needed for discreet operation executions.

Add restart to the set of rhqctl commands.

Update the operation mode for servers to correctly use storage node cluster information: 1) The maintenance mode set by the user (via UI or properties file) is now stored in the server status bitmask 2) The transition between Maintenance and Normal operation modes is done automatically. 3) The transition between Maintenance and Normal operation modes depends on storage node cluster availability and set user maintenance mode status. 4) Cleanup the lifecycles and state transitions for the storage node client manager, server manager bean, and startup bean. 5) Updated the UI to make use newly added methods that control only the user set maintenance mode status.

Simplify the configuration update method by allowing the plugin to restart the storage node if necessary. This is possible now because the JMX port is no longer required for checking the cluster availability.

Thanks Eclipse for clipping an import on save

Update code related to initial value of status field. Also, reserved the first five bits of the bitmask for debug purposes.

One more attempt at the justification for the Server interface change.

Slight change to the comment text.

Update the schema manager to check for schema version at startup. The server should not start if there is schema disagreement.

BZ 1001128 ] Do not immediately fail if a connection cannot be established with the RHQ username. It is possible that the schema was never installed. Continue the drop procedure and by attempting to login with the generic Cassandra user as expected in the drop procedure.

Remove the fake getJmxPort from the storage node entity. The jmx port is no longer needed for the storage cluster communication.