Bug 824502

Summary: Update farmed Application Deployment (EAR/WAR) results in non-farmed deployment
Product: [JBoss] JBoss Operations Network Reporter: Stefan Negrea <snegrea>
Component: Plugin -- JBoss EAP 5Assignee: RHQ Project Maintainer <rhq-maint>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Foley <mfoley>
Severity: high Docs Contact:
Priority: unspecified    
Version: JON 3.0.0CC: asantos, ccrouch, enagai, hrupp, jsanda, loleary, mazz, rhatlapa
Target Milestone: ---   
Target Release: JON 3.1.0   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: EMBJOPR-366 Environment:
JON 2.4 EAP 5.0.1 admin-console
Last Closed: 2013-09-11 10:58:08 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 646631, 820650    
Bug Blocks: 625146, 782579    

Description Stefan Negrea 2012-05-23 15:41:07 UTC
+++ This bug was initially created as a clone of Bug #646631 +++

Description of problem:
If an application is deployed to an AS instance's farm directory and the Update Content operation is performed, application is no longer deployed to farm.

Version-Release number of selected component (if applicable):
RHQ 3.0.0
JON 2.4.0
Embedded JOPR (admin-console) with EAP 5.0.0, EAP 5.0.1

How reproducible:
Always

Steps to Reproduce:
1. Setup a two node EAP cluster
2. Deploy an application (EAR/WAR) to node1's farm using admin-console
3. Verify application was deployed to both node1 and node2
4. Update the application using the same EAR/WAR (From admin-console, expand and select the deployed EAR/WAR and select it's Content tab and then click Update)

  
Actual results:
The updated deployed application is now only deployed to node1 in its deploy directory

Expected results:
The updated deployed application is deployed to node1 and node2 and appears in their farm directory

Additional info:
This is a result of the StandaloneManagedDeploymentComponent.deployPackages method invoking DeploymentUtils.deployArchive without a means of passing in whether to deploy farmed or not. Currently, the method appears to support a deployExploded boolean but no method of passing in whether it is farmed or not. The DeploymentUtils.deployArchive method should probably accept a deployFarmed boolean as well as the deployPackages method being updated to check to see if the updated deployment was farmed. Of course, this may be very error prone as this would be directly tied to a hard-coded path name. Maybe we should gather these options from ProfileService or Inventory before we remove the old deployment?

Comment 1 Stefan Negrea 2012-05-23 15:43:30 UTC
The AS5 deployer uses the file name as-is to determine the name of the app to be updated/deployed. Instead of adding the random UUID to the archive to be deployed, add the random UUID to a temp folder name and then download content there (leaving the file name unchanged). This issue has been fixed for both farmed and non-farmed deployments.

Another update was to switch to the farm version of the AS5 deployer prior to stopping and deleting existing content. The switch to a farm deployer was happening too late (prior to deployment) and was not stopping and removing the farmed application prior to the new deployment.

release/jon3.1.x branch commits:
http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=commit;h=28f5c74ec24267eecf6ffe1e36a01a012e5c7198

http://git.fedorahosted.org/git/?p=rhq/rhq.git;a=commit;h=7b36fe4ad315679ea2e66431bbe5067037e1d539

Comment 2 Larry O'Leary 2012-05-23 15:45:20 UTC
*** Bug 824498 has been marked as a duplicate of this bug. ***

Comment 3 John Sanda 2012-06-05 14:35:59 UTC
Moving to ON_QA since this is included in the CR2 build.

Comment 4 Radim Hatlapatka 2013-03-01 14:31:40 UTC
Verified against JON 3.1.2 GA and EAP 5.1.2 and EAP 5.2.0