Merge pull request #25269 from jfindlay/tomcat

Extract tomcat war version
This commit is contained in:
Thomas S Hatch 2015-07-09 19:28:21 -06:00
commit 9b6646d578
3 changed files with 26 additions and 15 deletions

View file

@ -169,6 +169,14 @@ def _auth(uri):
return _build_opener(basic, digest)
def _extract_version(war):
'''
extract the version from the war name
'''
version = re.findall("-([\\d.-]+)$", os.path.basename(war).replace('.war', ''))
return version[0] if len(version) == 1 else None
def _wget(cmd, opts=None, url='http://localhost:8080/manager', timeout=180):
'''
A private function used to issue the command to tomcat via the manager
@ -572,11 +580,7 @@ def deploy_war(war,
else:
tfile = war
version_extract = re.findall("\\d+.\\d+.\\d+?", os.path.basename(war).replace('.war', ''))
if len(version_extract) == 1:
version_string = version_extract[0]
else:
version_string = None
version_string = _extract_version(war)
# Prepare options
opts = {

View file

@ -40,6 +40,11 @@ Notes:
Apache Tomcat/7.0.37
'''
from __future__ import absolute_import
# import salt libs
from salt.modules.tomcat import _extract_version
# Private
def __virtual__():
@ -96,7 +101,9 @@ def war_deployed(name,
'changes': {},
'comment': ''}
basename = war.split('/')[-1]
version = basename.replace('.war', '')
version = _extract_version(basename)
webapps = __salt__['tomcat.ls'](url, timeout)
deploy = False
undeploy = False
@ -104,7 +111,7 @@ def war_deployed(name,
# Determine what to do
try:
if (version != webapps[name]['version']) or force:
if not webapps[name]['version'].endswith(version) or force:
deploy = True
undeploy = True
ret['changes']['undeploy'] = ('undeployed {0} in version {1}'.

View file

@ -44,26 +44,26 @@ class TomcatTestCase(TestCase):
mock1 = MagicMock(return_value='saltstack')
mock2 = MagicMock(side_effect=['FAIL', 'saltstack'])
mock3 = MagicMock(return_value='deploy')
mock = MagicMock(side_effect=[{'salt': {'version': 'jenkins-1.2.4',
mock = MagicMock(side_effect=[{'salt': {'version': 'jenkins-1.20.4',
'mode': 'running'}},
{'salt': {'version': 1}},
{'salt': {'version': '1'}},
{'salt': {'version': 'jenkins-1.2.4',
'mode': 'run'}},
{'salt': {'version': 1}},
{'salt': {'version': 1}}])
{'salt': {'version': '1'}},
{'salt': {'version': '1'}}])
with patch.dict(tomcat.__salt__, {"tomcat.ls": mock,
'tomcat.start': mock1,
'tomcat.undeploy': mock2,
'tomcat.deploy_war': mock3}):
ret.update({'comment': 'salt in version jenkins-1.2.4'
ret.update({'comment': 'salt in version 1.20.4'
' is already deployed'})
self.assertDictEqual(tomcat.war_deployed('salt',
'salt://jenkins'
'-1.2.4.war'), ret)
'-1.20.4.war'), ret)
with patch.dict(tomcat.__opts__, {"test": True}):
ret.update({'changes': {'deploy': 'will deploy salt'
' in version jenkins-1.2.4',
' in version 1.2.4',
'undeploy': 'undeployed salt'
' in version 1'},
'result': None, 'comment': ''})
@ -79,7 +79,7 @@ class TomcatTestCase(TestCase):
'-1.2.4.war'), ret)
ret.update({'changes': {'deploy': 'will deploy salt in'
' version jenkins-1.2.4',
' version 1.2.4',
'undeploy': 'undeployed salt in'
' version 1'},
'comment': 'FAIL'})