mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Merge pull request #25269 from jfindlay/tomcat
Extract tomcat war version
This commit is contained in:
commit
9b6646d578
3 changed files with 26 additions and 15 deletions
|
@ -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 = {
|
||||
|
|
|
@ -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}'.
|
||||
|
|
|
@ -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'})
|
||||
|
|
Loading…
Add table
Reference in a new issue