Package report/repo parser integration

 - parser able to filter package versions using keywords
 - warning message on missing tag
 - on the fly versions lookup (excluding '*.hotfix')
 - updated versions compare routine
 - lexical compare uses numbers, not ordinal values
 - updated release version detection
 - final report lists pkg section/app if no description given
 - final report shows repo info for detected release version

Fixes:
 - shorter alternate entrpoints: mcp-pkg, mcp-net, cmp-reclass
 - flake8 syntax
 - proper mirantis/non-mirantis versions getting
 - exit on unexpected arguments
 - salt-master class now gets linux codename by default and architecture

Change-Id: I0a2daadca8a1acaecafc8680226dc00d20cc24ce
Related-PROD: PROD-28199
diff --git a/templates/common_styles.j2 b/templates/common_styles.j2
index 604564b..66385be 100644
--- a/templates/common_styles.j2
+++ b/templates/common_styles.j2
@@ -73,7 +73,7 @@
         border-bottom: 1px dotted black;
     }
 
-    .tooltip .tooltiptext {
+    .tooltip .tooltiptext, .tooltip .repoinfotext {
         visibility: hidden;
         background-color: black;
         font-family: "Lucida Console", Monaco, monospace;
@@ -88,8 +88,16 @@
         z-index: 1;
     }
 
+    .tooltip .repoinfotext {
+        right: 0%;
+    }
+
     .tooltip:hover .tooltiptext {
         visibility: visible;
     }
 
+    .tooltip:hover .repoinfotext {
+        visibility: visible;
+    }
+
 </style>
diff --git a/templates/pkg_versions_html.j2 b/templates/pkg_versions_html.j2
index 7c52a1d..1bf216d 100644
--- a/templates/pkg_versions_html.j2
+++ b/templates/pkg_versions_html.j2
@@ -157,7 +157,7 @@
 {% macro render_package(pkg_name, dat, status_shown, action_shown, id_label) %}
         <tr onclick="toggleClassByID('{{ id_label }}_{{ pkg_name }}_{{ status_shown }}_{{ action_shown }}')" id="{{ id_label }}_{{ pkg_name }}_{{ status_shown }}_{{ action_shown }}_button">
             <td class="repo">{{ dat['desc']['repo'] }}</td>
-            <td class="component">{{ dat['desc']['component'] }}</td>
+            <td class="component">{{ dat['desc']['section'] }}</td>
             <td class="app">{{ dat['desc']['app'] }}</td>
             <td class="package_name">{{ pkg_name }}</td>
             <td class="status_container" colspan="3">
@@ -192,7 +192,12 @@
                 </div>
             </td>
             <td class="candidate">{{ nd['c'].version }}</td>
-            <td class="release">{{ dat['r'].version }}</td>
+            <td class="release">
+                <div class="tooltip">
+                    {{ dat['r'].version }}
+                    <pre class="repoinfotext">{{ dat['repos'] | make_repo_info }}</pre>
+                </div>
+            </td>
         </tr>
         {% endfor %}
         {% endfor %}