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/managers/envmanager_devops.py b/tcp_tests/managers/envmanager_devops.py
index 7424a49..bd4024c 100644
--- a/tcp_tests/managers/envmanager_devops.py
+++ b/tcp_tests/managers/envmanager_devops.py
@@ -71,6 +71,7 @@
             self._create_environment()
         self.set_dns_config()
         self.set_address_pools_config()
+        self.set_dhcp_ranges_config()
 
     @property
     def _devops_config(self):
@@ -522,3 +523,14 @@
         """Store address pools CIDRs in config object"""
         for ap in self.__env.get_address_pools():
             self.__config.underlay.address_pools[ap.name] = ap.net
+
+    def set_dhcp_ranges_config(self):
+        """Store DHCP ranges in config object"""
+        for ap in self.__env.get_address_pools():
+            if "gateway" in ap.ip_reserved and "dhcp" in ap.ip_ranges:
+                self.__config.underlay.dhcp_ranges[ap.name] = {
+                    "cidr": ap.net,
+                    "start": ap.ip_range_start("dhcp"),
+                    "end": ap.ip_range_end("dhcp"),
+                    "gateway": ap.gateway,
+                }