Bug 1180343

Summary: JBoss ON server installer incorrectly requires storage node to be installed locally
Product: [JBoss] JBoss Operations Network Reporter: Larry O'Leary <loleary>
Component: InstallerAssignee: Jay Shaughnessy <jshaughn>
Status: CLOSED ERRATA QA Contact: Filip Brychta <fbrychta>
Severity: high Docs Contact:
Priority: unspecified    
Version: JON 3.3.0CC: fbrychta, spinder
Target Milestone: DR01Keywords: Regression, Triaged
Target Release: JON 3.3.3   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-07-30 16:41:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description Larry O'Leary 2015-01-08 22:13:01 UTC
Description of problem:
Unable to install JBoss ON server if storage node can not be started locally by the installer. This also means that additional JBoss ON servers can not be installed unless a storage node is also installed and able to run along-side such servers. This means that all components must share the same host.

The desired deployment scenario is:

Rack 1:
  JBoss ON Server 01 (host: jon-server-01)
  JBoss ON Storage Node 01 (host: jon-storage-01)

Rack 2:
  JBoss ON Server 02 (host: jon-server-02)
  JBoss ON Storage Node 02 (host: jon-storage-02)

However, due to this bug one is required to do the following:

Rack 1:
  JBoss ON Server 01 (host: jon-server-01)
  JBoss ON Storage Node 01-FAKE (host: jon-server-01)
  JBoss ON Server 01-FAKE (host: jon-storage-01)
  JBoss ON Storage Node 01 (host: jon-storage-01)

Rack 2:
  JBoss ON Server 02 (host: jon-server-02)
  JBoss ON Storage Node 02-FAKE (host: jon-server-02)
  JBoss ON Server 02-FAKE (host: jon-storage-02)
  JBoss ON Storage Node 02 (host: jon-storage-02)

Then, once everything is finally installed and running, a removal of all the FAKE services is required.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1.  Extract JBoss ON server archive to jon-server-01 and jon-storage-01.
2.  From jon-storage-01, run storage node install passing it the rhq.agent.server.bind-address property pointing to jon-server-01:

        /opt/jboss/on/jon-server/bin/rhqctl install --storage --agent-preference="rhq.agent.server.bind-address=jon3-3-0-server-psql-01323022-02"

3.  Start the storage node on jon-storage-01:

        /opt/jboss/on/jon-server/bin/rhqctl start --storage

4.  On jon-server-01, modify rhq-server.properties rhq.storage.nodes to include the pre-configured/installed storage node running on jon-storage-01:

        sed -i 's/^rhq.storage.nodes=.*$/rhq.storage.nodes=jon-storage-01/g' /opt/jboss/on/jon-server/bin/rhq-server.properties

5.  On jon-server-01, install JBoss ON server:

        /opt/jboss/on/jon-server/bin/rhqctl install --server

Actual results:
rhqctl install --server does not do anything on jon-server-01:

    INFO  [org.jboss.modules] JBoss Modules version 1.3.3.Final-redhat-1
    WARN  [org.rhq.server.control.command.Start] It appears that the storage node is not installed. The --storage option will be ignored.
    INFO  [org.rhq.server.control.command.Install] Pausing to ensure RHQ Storage is initialized prior to RHQ Server installation.
    WARN  [org.rhq.server.control.command.Stop] It appears that the storage node is not installed. The --storage option will be ignored.

Expected results:
rhqctl install --server should have successfully installed the JBoss ON server.

Additional info:
The reason the server can not be installed without a storage node being installed locally is due to the installer attempting blindly execute rhqctl start --storage when the install --server command is used. To fix this the following might be more appropriate:

--- a/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Install.java
+++ b/modules/enterprise/server/server-control/src/main/java/org/rhq/server/control/command/Install.java
@@ -169,7 +169,7 @@
-            if ((startStorage || installServer) && rValue == RHQControl.EXIT_CODE_OK) {
+            if ((startStorage || (installServer && isStorageInstalled())) && rValue == RHQControl.EXIT_CODE_OK) {
                 startedStorage = true;
                 Start startCommand = new Start();
                 rValue = Math.max(rValue, startCommand.exec(new String[] { "--storage" }));

Comment 2 Jay Shaughnessy 2015-01-09 19:01:39 UTC
Master commit 5e9b37eea8982582fc4b0deb9743ae546ba394b8
Author: Jay Shaughnessy <jshaughn@redhat.com>
Date:   Fri Jan 9 13:51:54 2015 -0500

    Don't try and start the storage node for a server install unless there
    is a co-located storage-node.

release-4.13.1 commit b5c4eb7d674dd380c2067221639a6769a7001539
Author: Jay Shaughnessy <jshaughn@redhat.com>
Date:   Fri Jan 9 13:57:52 2015 -0500

    Cherry-Pick master 5e9b37eea8982582fc4b0deb9743ae546ba394b8
    Signed-off-by: Jay Shaughnessy <jshaughn@redhat.com>

Comment 3 Filip Brychta 2015-01-30 09:35:31 UTC
*** Bug 1187498 has been marked as a duplicate of this bug. ***

Comment 4 Simeon Pinder 2015-06-08 14:33:15 UTC
Cherry-picked to release/jon3.3.x
commit a4f5467360979533f1310fdcb46f7d54fda6411d

Moving to MODIFIED for testing in next build.

Comment 5 Simeon Pinder 2015-06-08 20:53:18 UTC
Moving to ON_QA for testing with latest brew build:

* Maps to 3.3.3 DR01 build.

Comment 6 Filip Brychta 2015-06-10 15:47:11 UTC
Verified on
Version :	
3.3.0.GA Update 03
Build Number :	

Verified that the issue is not visible when the CP3 was applied before installation of standalone JON server

Comment 8 errata-xmlrpc 2015-07-30 16:41:27 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.