adding ability to start container and monitor their status

Change-Id: I6cbfcf1046c3d9a452d4177564a6d6c1f3773b2d
diff --git a/common/utils/dockerhelpers.py b/common/utils/dockerhelpers.py
index 0b24dd8..6db4ebe 100644
--- a/common/utils/dockerhelpers.py
+++ b/common/utils/dockerhelpers.py
@@ -24,6 +24,7 @@
 from docker import Client
 
 
+docker_socket = os.environ.get('DOCKER_SOCK', 'unix://tmp/docker.sock')
 log = get_logger()
 
 
@@ -38,7 +39,7 @@
     my_container_id = os.environ.get('HOSTNAME', None)
 
     try:
-        docker_cli = Client(base_url='unix://tmp/docker.sock')
+        docker_cli = Client(base_url=docker_socket)
         info = docker_cli.inspect_container(my_container_id)
 
     except Exception, e:
@@ -49,6 +50,20 @@
 
     return name
 
+def create_host_config(volumes, ports):
+    try:
+        port_bindings = { ports[0] : None }
+        binds = ['{0}:{1}'.format(k, v) for k, v in volumes.iteritems()]
+        docker_cli = Client(base_url=docker_socket)
+        host_config = docker_cli.create_host_config(binds=binds,
+                                                    port_bindings=port_bindings)
+    except Exception, e:
+        log.exception('failed host config creation', volumes, ports, e=e)
+        raise
+
+    return host_config
+
+
 def create_container_network(name, links):
     """
     Creates a container networks based on a set of containers.
@@ -57,10 +72,10 @@
     :return: a network configuration
     """
     try:
-        docker_cli = Client(base_url='unix://tmp/docker.sock')
+        docker_cli = Client(base_url=docker_socket)
         docker_cli.create_network(name)
         networking_config = docker_cli.create_networking_config({
-            'network1': docker_cli.create_endpoint_config(links = links)
+            name : docker_cli.create_endpoint_config(links=links)
         })
     except Exception, e:
         log.exception('failed network creation', name, e=e)
@@ -77,9 +92,11 @@
     :return: the containers name
     """
     try:
-        docker_cli = Client(base_url='unix://tmp/docker.sock')
-        docker_cli.create_container(**args)
+        docker_cli = Client(base_url=docker_socket)
+        container = docker_cli.create_container(**args)
+        response = docker_cli.start(container=container.get('Id'))
     except Exception, e:
         log.exception('failed', e=e)
         raise
+    return response