Skip to content

Commit

Permalink
Improvment
Browse files Browse the repository at this point in the history
See : yvguim#4
  • Loading branch information
dam09fr committed May 10, 2016
1 parent 1df4aaf commit bb77939
Showing 1 changed file with 14 additions and 9 deletions.
23 changes: 14 additions & 9 deletions inventory/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,21 @@
from datetime import datetime
from django.utils.timezone import utc
from xml.sax.saxutils import escape
from distutils.version import LooseVersion, StrictVersion
import sys

def compare_versions(version1, version2):
from distutils.version import LooseVersion, StrictVersion
v1 = version1.encode('ascii', 'ignore')
v2 = version2.encode('ascii', 'ignore')
try:
return cmp(StrictVersion(version1), StrictVersion(version2))
# in case of abnormal version number, fall back to LooseVersion
return cmp(StrictVersion(v1), StrictVersion(v2))
except ValueError:
pass
try:
return cmp(LooseVersion(version1), LooseVersion(version2))
# certain LooseVersion comparions raise due to unorderable types, fallback to string comparison
except TypeError:
return cmp([str(v) for v in LooseVersion(version1).version], [str(v) for v in LooseVersion(version2).version])
# in case of abnormal version number, fall back to LooseVersion
try:
return cmp(LooseVersion(v1), LooseVersion(v2))
except TypeError:
# certain LooseVersion comparions raise due to unorderable types, fallback to string comparison
return cmp([str(v) for v in LooseVersion(v1).version], [str(v) for v in LooseVersion(v2).version])

def is_deploy_authorized(m,handling):
"""Function that define if deploy is authorized or not"""
Expand Down Expand Up @@ -197,12 +198,14 @@ def check_conditions(m,pack):
for s in softtab:
if compare_versions(s.version, condition.softwareversion) >= 0:
install = False
break
else:
if software.objects.filter(host_id=m.id, name=condition.softwarename).exists():
softtab = software.objects.filter(host_id=m.id, name=condition.softwarename)
for s in softtab:
if compare_versions(s.version, condition.softwareversion) >= 0:
install = False
break
if install == False:
status('<Packagestatus><Mid>'+str(m.id)+'</Mid><Pid>'+str(pack.id)+'</Pid><Status>Warning condition: '+escape(condition.name)+'</Status></Packagestatus>')

Expand All @@ -216,6 +219,7 @@ def check_conditions(m,pack):
for s in softtab:
if compare_versions(s.version, condition.softwareversion) <= 0:
install = False
break
else:
install = False
else:
Expand All @@ -224,6 +228,7 @@ def check_conditions(m,pack):
for s in softtab:
if compare_versions(s.version, condition.softwareversion) <= 0:
install = False
break
else:
install = False
if install == False:
Expand Down

0 comments on commit bb77939

Please sign in to comment.