Skip to main content
DevOps Image

This post is from the XebiaLabs blog and has not been updated since the original publish date.

Last Updated Jan 12, 2015 — DevOps Expert

Compute Property Values With Rules


A quick tip I used to help a customer. They've defined 2 extra properties on their host to help them to compute container's properties (eg home). It works fine for the generic-plugin based middleware (eg tomcat.home="${}/var/wildfly/${container.instanceId}") but not for other plugins based not based on the generic plugin. My first answer was to create a cli script that performs the computation and update the configuration items according to the expected definition but the Ops team needs to switch to another tools. My next answer was to define a control task that can called from the UI but typically the 'repositoryService' is not injected in the script's context: impossible to update the configuration item's values. So I found out the following solution: define a rule that perform the computation using a pre-plan processor and a python script:

<rule name="compute.jboss.home.context" scope="pre-plan">
And the python script 'compute/' is :
def jboss_containers():
    return filter(lambda ci: str(ci.type) == 'jbossdm.StandaloneServer', deployedApplication.environment.members)
for container in jboss_containers():
    if not container.home.startswith('/'):
        print "---- processing %s " % container
        print "processing host %s " %
        home = "%s/var/wildfly/wf-%s" % (,
        container.home = home
        repositoryService.update(, container)
The main advantage: no need to think to trigger any extra commands or control tasks: the computation is performed during the planning phase executed when XLDeploy generates the deployment tasks.xl-rules rulez !!!

More from the Blog

View more
Mar 04, 2021

Getting key stakeholder buy-in for changes perceived as risky

Organizational leaders must recognize that change is vital for the sur ...
Read More
Mar 01, 2021

Discover the change management practices that are ripe for optimization

Change has become the most important part of modern digital product cr ...
Read More
Feb 22, 2021

Reckoning DevOps’ role in the enterprise value stream

If you’re a software or digital solutions company, you may use DevOps ...
Read More
Feb 10, 2021

Customer spotlight: Schneider avoiding bumps in the road with DevOps adoption

Everyone wants to deliver software faster and more reliably. Companies ...
Read More
Contact Us