[jboss-as7-dev] deployments directory usage with openshift

Scott Stark sstark at redhat.com
Tue May 24 16:04:27 EDT 2011


So right now how a user deploys an application to openshift express is 
that when they create an application, a side-effect of this is that they 
get a git repository on their local machine that maps to the server's 
deployments directory. However, it is only updated by the client 
actions. The repository is not updated to show status changes in the 
deployments status files.

Here is a client side deployment dir repo that shows two deployed 
applications:
[335](ironmaiden:deployments) > git status
# On branch master
nothing to commit (working directory clean)
[336](ironmaiden:deployments) > git pull
Already up-to-date.
[337](ironmaiden:deployments) > ls
README.txt            weld-permalink.war
ROOT.war            weld-permalink.war.dodeploy
ROOT.war.dodeploy

While the server deployments directory has updated deployment status 
file markers:
[root at ip-10-72-59-227 deployments]# ls
README.txt  ROOT.war.deployed   weld-permalink.war.deployed
ROOT.war    weld-permalink.war

The directory on the server is not actually a live repository:
[root at ip-10-72-59-227 deployments]# git status
fatal: Not a git repository (or any of the parent directories): .git

it is just a copy that is updated by a git post-receive hook.

Currently, to undeploy an application one git rms it and then pushes the 
content:
[338](ironmaiden:deployments) > git rm weld-permalink.war*
rm 'deployments/weld-permalink.war'
rm 'deployments/weld-permalink.war.dodeploy'
[339](ironmaiden:deployments) > git push
Everything up-to-date
[340](ironmaiden:deployments) > git commit -a -m "undeploy weld-permalink"
[master 6bfa575] undeploy weld-permalink
  1 files changed, 0 insertions(+), 0 deletions(-)
  delete mode 100644 deployments/weld-permalink.war
  delete mode 100644 deployments/weld-permalink.war.dodeploy
[341](ironmaiden:deployments) > git push
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 279 bytes, done.
Total 3 (delta 1), reused 1 (delta 0)
To 
ssh://efb401bdb2e641528a1f9278ca091719@as7b4test-sstark.dev.rhcloud.com/~/git/as7b4test.git/
    067829a..6bfa575  master -> master

On server:
[root at ip-10-72-59-227 standalone]# ls deployments/
README.txt  ROOT.war  ROOT.war.deployed  weld-permalink.war.undeployed

This works fine, it is just not as transparent an experience as working 
with a local directory. I'm not sure how much effort I want to put into 
trying to map the status deployment markers to the client side repo as 
I'm going to look at getting the http management interface multi-plexing 
on the 8080 port and exposed via a rest url associated with the 
application dns name, in this case it would be 
http://as7b4test-sstark.dev.rhcloud.com/management.

So, the point of this post is to ask if it is worth adding a 
x.doundeploy marker to avoid having to remove the application content. 
I'm thinking no, but maybe there are other usecases that would wan this.



More information about the jboss-as7-dev mailing list