Network check fixes
- Proper network mapping
- Proper reclass lookup
- VIP detection
- Simple error gathering
- IP shown as 'exploded', i.e. in CIDR format
- MTU matching and detection
- Errors class for handling errors, including codes and indices
- Summary and detailed errors view
- Flake8 refactoring
Change-Id: I8ee37d345bdc21c7ad930bf8305acd28f8c121c8
Related-PROD: PROD-28199
diff --git a/cfg_checker/modules/packages/versions.py b/cfg_checker/modules/packages/versions.py
index 10f65dc..9352dd6 100644
--- a/cfg_checker/modules/packages/versions.py
+++ b/cfg_checker/modules/packages/versions.py
@@ -1,7 +1,7 @@
import csv
import os
-from cfg_checker.common import config, logger, logger_cli, pkg_dir, const
+from cfg_checker.common import config, const, logger_cli, pkg_dir
class PkgVersions(object):
@@ -33,15 +33,16 @@
_app = row[2]
_repo = row[3]
# if release cell empty - use keyword 'any'
- _os_release = row[4] if len(row[4]) > 0 else 'any'
+ _os_release = row[4] if len(row[4]) > 0 else 'any'
# prepare versions dict
_l = self._labels
- _versions = {_l[i]:row[5+i] for i in range(0, len(row[5:]))}
-
+ _versions = {_l[i]: row[5+i] for i in range(0, len(row[5:]))}
+
if _pkg in self._list:
if _os_release in self._list[_pkg]["versions"]:
- # all pkg/os_releases should be uniq. If found, latest one used
+ # all pkg/os_releases should be uniq.
+ # If found, latest one used
logger_cli.info(
"-> WARNING: Duplicate package info found "
"'{}' (line {})".format(
@@ -59,17 +60,17 @@
"versions": {}
}
})
-
+
# and finally, update the versions for this release
self._list[_pkg]["versions"].update({
_os_release: _versions
})
-
+
def __getitem__(self, pkg_name):
- if pkg_name in self._list:
+ if pkg_name in self._list:
return self._list[pkg_name]
else:
- #return self._dummy_desc
+ # return self._dummy_desc
return None
@@ -95,7 +96,7 @@
_ord_map = [ord(ch) not in _chars for ch in version_fragment]
# if there is nothing to extract, return at once
if not any([_s in version_fragment for _s in _symbols]) \
- and not any(_ord_map):
+ and not any(_ord_map):
# no revisions
return version_fragment, ""
else:
@@ -114,7 +115,7 @@
_main = version_fragment[:_indices[0]]
_rev = version_fragment[_indices[0]:]
return _main, _rev
-
+
def __init__(self, version_string):
# save
if len(version_string) < 1:
@@ -139,7 +140,7 @@
self.upstream, self.upstream_rev = self.split_revision(_m)
self.debian, self.debian_rev = self.split_revision(_d)
self.version = version_string
-
+
# Following functions is a freestyle python mimic of apt's upstream, enjoy
# https://github.com/chaos/apt/blob/master/apt/apt-pkg/deb/debversion.cc#L42
# mimic produced in order not to pull any packages or call external code
@@ -160,7 +161,7 @@
return _num
_li += 1
_ri += 1
-
+
# diff found? lens equal?
if not _diff and _lL != _rL:
# lens not equal? Longer - later
@@ -168,7 +169,7 @@
else:
# equal
return 0
-
+
def _cmp_num(self, lf, rf):
# split fragments into lists
_lhf = lf.split('.') if '.' in lf else list(lf)
@@ -178,14 +179,14 @@
_rhf = [int(n) for n in _rhf if len(n)]
return self._cmp_fragment(_lhf, _rhf)
-
+
def _cmp_lex(self, lf, rf):
# cast each item into its ORD value
_lhf = [ord(n) for n in lf]
_rhf = [ord(n) for n in rf]
- return self._cmp_fragment(_lhf, _rhf)
- # end of cmps
+ return self._cmp_fragment(_lhf, _rhf)
+ # end of cmps
# main part compared using splitted numbers
# if equal, revision is compared using lexical comparizon
@@ -217,7 +218,7 @@
return True
else:
return False
-
+
def update_parts(self, target, status):
# updating parts of version statuses
if self._cmp_num(self.epoch, target.epoch) != 0:
@@ -226,13 +227,13 @@
self.epoch_status = const.VERSION_OK
if self._cmp_num(self.upstream, target.upstream) != 0 \
- or self._cmp_lex(self.upstream_rev, target.upstream_rev) != 0:
+ or self._cmp_lex(self.upstream_rev, target.upstream_rev) != 0:
self.upstream_status = status
else:
self.upstream_status = const.VERSION_OK
if self._cmp_lex(self.debian, target.debian) != 0 \
- or self._cmp_lex(self.debian_rev, target.debian_rev) != 0:
+ or self._cmp_lex(self.debian_rev, target.debian_rev) != 0:
self.debian_status = status
else:
self.debian_status = const.VERSION_OK
@@ -245,13 +246,12 @@
source = None
target = None
-
def __init__(self, i, c, r):
# compare three versions and write a result
self.source = i
self.status = const.VERSION_NA
self.action = const.ACT_NA
-
+
# Check if there is a release version present
if r and len(r.version) > 0 and r.version != 'n/a':
# I < C, installed version is older
@@ -333,7 +333,7 @@
elif i == c:
self.status = const.VERSION_OK
self.action = const.ACT_NA
-
+
# and we need to update per-part status
self.source.update_parts(self.target, self.status)
@@ -342,4 +342,4 @@
if _t.debian and _t.debian > _s.debian:
return True
else:
- return false
+ return False