Unified command execution and unit tests

- All arguments inits moved to own clases
- Added unified way to execute commands
- Unit test structure and very basic tests
- Command line script to test coverage
- Argument parsers moved to corresponding commands
- Automatic parsers and command mapping

Change-Id: Id099d14702d9590729583dfd9574bd57022efac5
Related-PROD: PROD-28199
diff --git a/etc/versions_map.csv b/etc/versions_map.csv
index 21b0e3b..cc0ee07 100644
--- a/etc/versions_map.csv
+++ b/etc/versions_map.csv
@@ -53,9 +53,9 @@
 cinder-backup,OpenStack,Cinder,mirantis,Pike,,2:11.1.0-1~u16.04+mcp59,,,
 cinder-api,OpenStack,Cinder,mirantis,,,,,,
 cinder-backup,OpenStack,Cinder,mirantis,,,,,,
-cinder-common,OpenStack,Cinder,mirantis,Queens,,12.0.4-2~u16.04+mcp69,2:12.0.4-2~u16.04+mcp96 [5],,
-cinder-scheduler,OpenStack,Cinder,mirantis,Queens,,12.0.4-2~u16.04+mcp69,2:12.0.4-2~u16.04+mcp96 [5],,
-cinder-volume,OpenStack,Cinder,mirantis,Queens,,12.0.4-2~u16.04+mcp69,2:12.0.4-2~u16.04+mcp96 [5],,
+cinder-common,OpenStack,Cinder,mirantis,Queens,,12.0.4-2~u16.04+mcp69,2:12.0.4-2~u16.04+mcp96,,
+cinder-scheduler,OpenStack,Cinder,mirantis,Queens,,12.0.4-2~u16.04+mcp69,2:12.0.4-2~u16.04+mcp96,,
+cinder-volume,OpenStack,Cinder,mirantis,Queens,,12.0.4-2~u16.04+mcp69,2:12.0.4-2~u16.04+mcp96,,
 cloud-guest-utils,,,,,,,,,
 cloud-initramfs-copymods,,,,,,,,,
 cloud-initramfs-dyn-netconf,,,,,,,,,
@@ -187,10 +187,10 @@
 haproxy,System,HAProxy,mirror,,,1.6.3,1.6.3,,
 haveged,,,,,,,,,
 hdparm,,,,,,,,,
-heat-api,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54 [5],,
-heat-api-cfn,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54 [5],,
-heat-common,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54 [5],,
-heat-engine,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54 [5],,
+heat-api,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54,,
+heat-api-cfn,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54,,
+heat-common,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54,,
+heat-engine,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54,,
 hostname,,,,,,,,,
 htop,,,,,,,,,
 ieee-data,,,,,,,,,
@@ -721,13 +721,13 @@
 mtools,,,,,,,,,
 mtr-tiny,,,,,,,,,
 multiarch-support,,,,,,,,,
-mysql-client,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2 [5],,
+mysql-client,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2,,
 mysql-common,System,MySQL,,,,,,,
-mysql-wsrep-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2 [5],,
-mysql-wsrep-client-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2 [5],,
-mysql-wsrep-common-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2 [5],,
-mysql-wsrep-libmysqlclient18,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2 [5],,
-mysql-wsrep-server-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2 [5],,
+mysql-wsrep-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2,,
+mysql-wsrep-client-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2,,
+mysql-wsrep-common-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2,,
+mysql-wsrep-libmysqlclient18,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2,,
+mysql-wsrep-server-5.6,System,MySQL,mirror,,,5.6.35,5.6.35-0.1~u16.04+mcp2,,
 nano,,,,,,,,,
 ncurses-base,,,,,,,,,
 ncurses-bin,,,,,,,,,
@@ -736,35 +736,35 @@
 netbase,,,,,,,,,
 netcat-openbsd,,,,,,,,,
 netfilter-persistent,,,,,,,,,
-neutron-common,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
-neutron-dhcp-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
-neutron-l3-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
-neutron-metadata-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
-neutron-openvswitch-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
-neutron-plugin-ml2,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
-neutron-server,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
+neutron-common,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
+neutron-dhcp-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
+neutron-l3-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
+neutron-metadata-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
+neutron-openvswitch-agent,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
+neutron-plugin-ml2,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
+neutron-server,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
 nginx,System,NGINX,mirror,,,1.10.3,1.10.3,,
 nginx-common,System,NGINX,mirror,,,1.10.3,1.10.3,,
 nginx-core,System,NGINX,mirror,,,1.10.3,1.10.3,,
-nova-api,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-common,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-compute,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-compute-kvm,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-conductor,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-consoleauth,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-consoleproxy,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-doc,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-placement-api,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
-nova-scheduler,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
+nova-api,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-common,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-compute,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-compute-kvm,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-conductor,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-consoleauth,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-consoleproxy,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-doc,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-placement-api,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
+nova-scheduler,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
 novnc,,,,,,,,,
 ntfs-3g,,,,,,,,,
 ntp,,,,,,,,,
 nvme-cli,,,,,,,,,
-octavia-api,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69 [5],,
-octavia-common,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69 [5],,
-octavia-health-manager,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69 [5],,
-octavia-housekeeping,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69 [5],,
-octavia-worker,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69 [5],,
+octavia-api,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69,,
+octavia-common,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69,,
+octavia-health-manager,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69,,
+octavia-housekeeping,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69,,
+octavia-worker,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69,,
 open-iscsi,,,,,,,,,
 open-vm-tools,,,,,,,,,
 openipmi,,,,,,,,,
@@ -775,7 +775,7 @@
 openssh-server,System,SSH,,,,,,,
 openssh-sftp-server,System,SSH,,,,,,,
 openssl,System,SSL,,,,,,,
-openstack-dashboard,OpenStack,Horizon,mirantis,Queens,,13.0.1-9~u16.04+mcp,3:13.0.1-10~u16.04+mcp70 [5],,
+openstack-dashboard,OpenStack,Horizon,mirantis,Queens,,13.0.1-9~u16.04+mcp,3:13.0.1-10~u16.04+mcp70,,
 openvswitch-common,System,Open vSwitch,mirantis,,,,,,
 openvswitch-switch,System,Open vSwitch,mirantis,,,,,,
 os-brick-common,,,,,,,,,
@@ -871,7 +871,7 @@
 python-django-babel,,,,,,,,,
 python-django-common,,,,,,,,,
 python-django-compressor,,,,,,,,,
-python-django-horizon,OpenStack,Horizon,mirantis,Queens,,13.0.1-9~u16.04+mcp,3:13.0.1-10~u16.04+mcp70 [5],,
+python-django-horizon,OpenStack,Horizon,mirantis,Queens,,13.0.1-9~u16.04+mcp,3:13.0.1-10~u16.04+mcp70,,
 python-django-pyscss,,,,,,,,,
 python-dnspython,,,,,,,,,
 python-docker,,,,,,,,,
@@ -899,7 +899,7 @@
 python-greenlet,,,,,,,,,
 python-guestfs,,,,,,,,,
 python-gunicorn,,,,,,,,,
-python-heat,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54 [5],,
+python-heat,OpenStack,Heat,mirantis,Queens,,10.0.2-1.0~u16.04+mcp37,1:10.0.2-1.0~u16.04+mcp54,,
 python-heat-dashboard,,,,,,,,,
 python-heatclient,,,,,,,,,
 python-httplib2,,,,,,,,,
@@ -952,19 +952,19 @@
 python-netaddr,,,,,,,,,
 python-netifaces,,,,,,,,,
 python-networkx,,,,,,,,,
-python-neutron,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93 [5],,
+python-neutron,OpenStack Networking,Neutron,mirantis,Queens,,12.0.5-5~u16.04+mcp62,2:12.0.5-5~u16.04+mcp93,,
 python-neutron-fwaas,,,,,,,,,
 python-neutron-lbaas,,,,,,,,,
 python-neutron-lib,,,,,,,,,
 python-neutronclient,,,,,,,,,
-python-nova,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93 [5],,
+python-nova,OpenStack,Nova,mirantis,Queens,,17.0.7-6~u16.01+mcp90,2:17.0.9-6~u16.01+mcp93,,
 python-novaclient,,,,,,,,,
 python-novnc,,,,,,,,,
 python-numpy,,,,,,,,,
 python-oauth,,,,,,,,,
 python-oauth2client,,,,,,,,,
 python-oauthlib,,,,,,,,,
-python-octavia,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69 [5],,
+python-octavia,OpenStack Networking,Octavia,mirantis,Queens,,2.0.2-6~u16.04+mcp62,2.0.2-6~u16.04+mcp69,,
 python-octavia-dashboard,,,,,,,,,
 python-octaviaclient,,,,,,,,,
 python-openssl,,,,,,,,,