Fix runtestmanager for CICD deployments

In CICD deployments, there are no workarounds that install
docker.io before using 'runtest' formula.
Add preparation of necessary packages to runtestmanager.

- Refactor RuntestManager to use salt CLI instead of salt API
  because salt API dones't allow to catch errors from modules
- Add preparations for docker packages, Neutron private and
  public networks based on underlay.yaml address pools, etc.

Change-Id: Iaff8046b9cde6185cd6718a5c2064998ea7dc507
diff --git a/tcp_tests/settings_oslo.py b/tcp_tests/settings_oslo.py
index 037dbd8..009eb24 100644
--- a/tcp_tests/settings_oslo.py
+++ b/tcp_tests/settings_oslo.py
@@ -123,6 +123,22 @@
                    tests or during the deployment process.
                    {'pool_name1': '<cidr>', 'pool_name2': '<cidr>', ...}""",
            default={}),
+    ct.Cfg('dhcp_ranges', ct.JSONDict(),
+           help="""DHCP ranges allocated for the address pools.
+                   This is extended object comparing to 'address_pools'.
+                   May be used to determine DHCP range start/end/gateway for a
+                   specific network from tests or during the deployment
+                   process.
+                   {'pool_name1': {'cidr': 'n.n.n.n/m',
+                                   'start': 'x.x.x.x',
+                                   'end': 'y.y.y.y',
+                                   'gateway': 'z.z.z.z'},
+                    'pool_name2': {'cidr': 'n.n.n.n/m',
+                                   'start': x.x.x.x,
+                                   'end': 'y.y.y.y',
+                                   'gateway': 'z.z.z.z'},
+                    ...}""",
+           default={}),
     ct.Cfg('ssh_keys', ct.JSONList(), default=[],
            help="SSH key pair(s) for root. If the option is left empty, "
                 "then a key pair will be generated automatically"),