Regression fixes for command execution

Change-Id: I8591a206268b7afcb8f561f2eab4fc21b2172fc1
Related-PROD: PROD-28199
diff --git a/cfg_checker/modules/packages/repos.py b/cfg_checker/modules/packages/repos.py
index e7c4c6a..334cbb5 100644
--- a/cfg_checker/modules/packages/repos.py
+++ b/cfg_checker/modules/packages/repos.py
@@ -821,8 +821,6 @@
             # <10symbols> \t <md5> \t sorted headers with no tag
             # ...
             # section
-            _o = ""
-
             _ss = _p.keys()
             _ss.sort()
             for _s in _ss:
@@ -830,9 +828,8 @@
                 _apps.sort()
                 # app
                 for _a in _apps:
-                    logger_cli.info(
-                        "\n# Package: {}/{}/{}".format(_s, _a, name)
-                    )
+                    _o = ""
+                    _mm = []
                     # get and sort tags
                     _vs = _p[_s][_a].keys()
                     _vs.sort()
@@ -847,18 +844,26 @@
                             _rr = _p[_s][_a][_v][_md5].keys()
                             _rr.sort()
                             for _r in _rr:
-                                _o += " "*24 + _r.replace('_', ' ')
-                                _o += " ({})\n".format(
-                                    _p[_s][_a][_v][_md5][_r]["maintainer"]
-                                )
+                                _o += " "*24 + _r.replace('_', ' ') + '\n'
+                                _m = _p[_s][_a][_v][_md5][_r]["maintainer"]
+                                if _m not in _mm:
+                                    _mm.append(_m)
 
-            logger_cli.info(_o)
+                    logger_cli.info(
+                        "\n# Package: {}/{}/{}\nMaintainers: {}".format(
+                            _s,
+                            _a,
+                            name,
+                            ", ".join(_mm)
+                        )
+                    )
+
+                    logger_cli.info(_o)
 
     @staticmethod
     def get_apps(versions, name):
         _all = True if name == '*' else False
-        _s_max = 0
-        _a_max = 0
+        _s_max = _a_max = _p_max = _v_max = 0
         _rows = []
         for _p in versions.keys():
             _vs = versions[_p]
@@ -867,13 +872,30 @@
                     if _all or name == _info['app']:
                         _s_max = max(len(_info['section']), _s_max)
                         _a_max = max(len(_info['app']), _a_max)
+                        _p_max = max(len(_p), _p_max)
+                        _v_max = max(len(_v), _v_max)
                         _rows.append([
                             _info['section'],
                             _info['app'],
-                            _p
+                            _p,
+                            _v,
+                            _md5,
+                            len(_info['repo'])
                         ])
-        _fmt = "{:"+str(_s_max)+"} {:"+str(_a_max)+"} {}"
-        _rows = [_fmt.format(s, a, p) for s, a, p in _rows]
+        # format columns
+        # section
+        _fmt = "{:"+str(_s_max)+"} "
+        # app
+        _fmt += "{:"+str(_a_max)+"} "
+        # package name
+        _fmt += "{:"+str(_p_max)+"} "
+        # version
+        _fmt += "{:"+str(_v_max)+"} "
+        # md5 and number of repos is fixed
+        _fmt += "{} in {} repos"
+
+        # fill rows
+        _rows = [_fmt.format(s, a, p, v, m, l) for s, a, p, v, m, l in _rows]
         _rows.sort()
         return _rows
 
@@ -881,12 +903,12 @@
         c = 0
         rows = self.get_apps(self._versions_mirantis, name)
         if rows:
-            logger_cli.info("# Mirantis packages for '{}'".format(name))
+            logger_cli.info("\n# Mirantis packages for '{}'".format(name))
             logger_cli.info("\n".join(rows))
             c += 1
         rows = self.get_apps(self._versions_other, name)
         if rows:
-            logger_cli.info("# Other packages for '{}'".format(name))
+            logger_cli.info("\n# Other packages for '{}'".format(name))
             logger_cli.info("\n".join(rows))
             c += 1
         if c == 0: