You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@senssoft.apache.org by ar...@apache.org on 2016/12/16 17:11:03 UTC

[45/58] [abbrv] [partial] incubator-senssoft-tap git commit: Fixed .gitignore file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/transport/npipesocket.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/transport/npipesocket.py b/env2/lib/python2.7/site-packages/docker/transport/npipesocket.py
deleted file mode 100644
index 3b1b644..0000000
--- a/env2/lib/python2.7/site-packages/docker/transport/npipesocket.py
+++ /dev/null
@@ -1,218 +0,0 @@
-import functools
-import io
-
-import six
-import win32file
-import win32pipe
-
-cERROR_PIPE_BUSY = 0xe7
-cSECURITY_SQOS_PRESENT = 0x100000
-cSECURITY_ANONYMOUS = 0
-
-RETRY_WAIT_TIMEOUT = 10000
-
-
-def check_closed(f):
-    @functools.wraps(f)
-    def wrapped(self, *args, **kwargs):
-        if self._closed:
-            raise RuntimeError(
-                'Can not reuse socket after connection was closed.'
-            )
-        return f(self, *args, **kwargs)
-    return wrapped
-
-
-class NpipeSocket(object):
-    """ Partial implementation of the socket API over windows named pipes.
-        This implementation is only designed to be used as a client socket,
-        and server-specific methods (bind, listen, accept...) are not
-        implemented.
-    """
-    def __init__(self, handle=None):
-        self._timeout = win32pipe.NMPWAIT_USE_DEFAULT_WAIT
-        self._handle = handle
-        self._closed = False
-
-    def accept(self):
-        raise NotImplementedError()
-
-    def bind(self, address):
-        raise NotImplementedError()
-
-    def close(self):
-        self._handle.Close()
-        self._closed = True
-
-    @check_closed
-    def connect(self, address):
-        win32pipe.WaitNamedPipe(address, self._timeout)
-        try:
-            handle = win32file.CreateFile(
-                address,
-                win32file.GENERIC_READ | win32file.GENERIC_WRITE,
-                0,
-                None,
-                win32file.OPEN_EXISTING,
-                cSECURITY_ANONYMOUS | cSECURITY_SQOS_PRESENT,
-                0
-            )
-        except win32pipe.error as e:
-            # See Remarks:
-            # https://msdn.microsoft.com/en-us/library/aa365800.aspx
-            if e.winerror == cERROR_PIPE_BUSY:
-                # Another program or thread has grabbed our pipe instance
-                # before we got to it. Wait for availability and attempt to
-                # connect again.
-                win32pipe.WaitNamedPipe(address, RETRY_WAIT_TIMEOUT)
-                return self.connect(address)
-            raise e
-
-        self.flags = win32pipe.GetNamedPipeInfo(handle)[0]
-
-        self._handle = handle
-        self._address = address
-
-    @check_closed
-    def connect_ex(self, address):
-        return self.connect(address)
-
-    @check_closed
-    def detach(self):
-        self._closed = True
-        return self._handle
-
-    @check_closed
-    def dup(self):
-        return NpipeSocket(self._handle)
-
-    @check_closed
-    def fileno(self):
-        return int(self._handle)
-
-    def getpeername(self):
-        return self._address
-
-    def getsockname(self):
-        return self._address
-
-    def getsockopt(self, level, optname, buflen=None):
-        raise NotImplementedError()
-
-    def ioctl(self, control, option):
-        raise NotImplementedError()
-
-    def listen(self, backlog):
-        raise NotImplementedError()
-
-    def makefile(self, mode=None, bufsize=None):
-        if mode.strip('b') != 'r':
-            raise NotImplementedError()
-        rawio = NpipeFileIOBase(self)
-        if bufsize is None or bufsize <= 0:
-            bufsize = io.DEFAULT_BUFFER_SIZE
-        return io.BufferedReader(rawio, buffer_size=bufsize)
-
-    @check_closed
-    def recv(self, bufsize, flags=0):
-        err, data = win32file.ReadFile(self._handle, bufsize)
-        return data
-
-    @check_closed
-    def recvfrom(self, bufsize, flags=0):
-        data = self.recv(bufsize, flags)
-        return (data, self._address)
-
-    @check_closed
-    def recvfrom_into(self, buf, nbytes=0, flags=0):
-        return self.recv_into(buf, nbytes, flags), self._address
-
-    @check_closed
-    def recv_into(self, buf, nbytes=0):
-        if six.PY2:
-            return self._recv_into_py2(buf, nbytes)
-
-        readbuf = buf
-        if not isinstance(buf, memoryview):
-            readbuf = memoryview(buf)
-
-        err, data = win32file.ReadFile(
-            self._handle,
-            readbuf[:nbytes] if nbytes else readbuf
-        )
-        return len(data)
-
-    def _recv_into_py2(self, buf, nbytes):
-        err, data = win32file.ReadFile(self._handle, nbytes or len(buf))
-        n = len(data)
-        buf[:n] = data
-        return n
-
-    @check_closed
-    def send(self, string, flags=0):
-        err, nbytes = win32file.WriteFile(self._handle, string)
-        return nbytes
-
-    @check_closed
-    def sendall(self, string, flags=0):
-        return self.send(string, flags)
-
-    @check_closed
-    def sendto(self, string, address):
-        self.connect(address)
-        return self.send(string)
-
-    def setblocking(self, flag):
-        if flag:
-            return self.settimeout(None)
-        return self.settimeout(0)
-
-    def settimeout(self, value):
-        if value is None:
-            # Blocking mode
-            self._timeout = win32pipe.NMPWAIT_WAIT_FOREVER
-        elif not isinstance(value, (float, int)) or value < 0:
-            raise ValueError('Timeout value out of range')
-        elif value == 0:
-            # Non-blocking mode
-            self._timeout = win32pipe.NMPWAIT_NO_WAIT
-        else:
-            # Timeout mode - Value converted to milliseconds
-            self._timeout = value * 1000
-
-    def gettimeout(self):
-        return self._timeout
-
-    def setsockopt(self, level, optname, value):
-        raise NotImplementedError()
-
-    @check_closed
-    def shutdown(self, how):
-        return self.close()
-
-
-class NpipeFileIOBase(io.RawIOBase):
-    def __init__(self, npipe_socket):
-        self.sock = npipe_socket
-
-    def close(self):
-        super(NpipeFileIOBase, self).close()
-        self.sock = None
-
-    def fileno(self):
-        return self.sock.fileno()
-
-    def isatty(self):
-        return False
-
-    def readable(self):
-        return True
-
-    def readinto(self, buf):
-        return self.sock.recv_into(buf)
-
-    def seekable(self):
-        return False
-
-    def writable(self):
-        return False

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/transport/unixconn.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/transport/unixconn.py b/env2/lib/python2.7/site-packages/docker/transport/unixconn.py
deleted file mode 100644
index b7905a0..0000000
--- a/env2/lib/python2.7/site-packages/docker/transport/unixconn.py
+++ /dev/null
@@ -1,87 +0,0 @@
-import six
-import requests.adapters
-import socket
-
-from .. import constants
-
-if six.PY3:
-    import http.client as httplib
-else:
-    import httplib
-
-try:
-    import requests.packages.urllib3 as urllib3
-except ImportError:
-    import urllib3
-
-
-RecentlyUsedContainer = urllib3._collections.RecentlyUsedContainer
-
-
-class UnixHTTPConnection(httplib.HTTPConnection, object):
-    def __init__(self, base_url, unix_socket, timeout=60):
-        super(UnixHTTPConnection, self).__init__(
-            'localhost', timeout=timeout
-        )
-        self.base_url = base_url
-        self.unix_socket = unix_socket
-        self.timeout = timeout
-
-    def connect(self):
-        sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
-        sock.settimeout(self.timeout)
-        sock.connect(self.unix_socket)
-        self.sock = sock
-
-
-class UnixHTTPConnectionPool(urllib3.connectionpool.HTTPConnectionPool):
-    def __init__(self, base_url, socket_path, timeout=60, maxsize=10):
-        super(UnixHTTPConnectionPool, self).__init__(
-            'localhost', timeout=timeout, maxsize=maxsize
-        )
-        self.base_url = base_url
-        self.socket_path = socket_path
-        self.timeout = timeout
-
-    def _new_conn(self):
-        return UnixHTTPConnection(
-            self.base_url, self.socket_path, self.timeout
-        )
-
-
-class UnixAdapter(requests.adapters.HTTPAdapter):
-    def __init__(self, socket_url, timeout=60,
-                 num_pools=constants.DEFAULT_NUM_POOLS):
-        socket_path = socket_url.replace('http+unix://', '')
-        if not socket_path.startswith('/'):
-            socket_path = '/' + socket_path
-        self.socket_path = socket_path
-        self.timeout = timeout
-        self.pools = RecentlyUsedContainer(
-            num_pools, dispose_func=lambda p: p.close()
-        )
-        super(UnixAdapter, self).__init__()
-
-    def get_connection(self, url, proxies=None):
-        with self.pools.lock:
-            pool = self.pools.get(url)
-            if pool:
-                return pool
-
-            pool = UnixHTTPConnectionPool(
-                url, self.socket_path, self.timeout
-            )
-            self.pools[url] = pool
-
-        return pool
-
-    def request_url(self, request, proxies):
-        # The select_proxy utility in requests errors out when the provided URL
-        # doesn't have a hostname, like is the case when using a UNIX socket.
-        # Since proxies are an irrelevant notion in the case of UNIX sockets
-        # anyway, we simply return the path URL directly.
-        # See also: https://github.com/docker/docker-py/issues/811
-        return request.path_url
-
-    def close(self):
-        self.pools.clear()

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/types/__init__.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/types/__init__.py b/env2/lib/python2.7/site-packages/docker/types/__init__.py
deleted file mode 100644
index 3609581..0000000
--- a/env2/lib/python2.7/site-packages/docker/types/__init__.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# flake8: noqa
-from .containers import LogConfig, Ulimit
-from .services import (
-    ContainerSpec, DriverConfig, Mount, Resources, RestartPolicy, TaskTemplate,
-    UpdateConfig
-)
-from .swarm import SwarmSpec, SwarmExternalCA

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/types/base.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/types/base.py b/env2/lib/python2.7/site-packages/docker/types/base.py
deleted file mode 100644
index 6891062..0000000
--- a/env2/lib/python2.7/site-packages/docker/types/base.py
+++ /dev/null
@@ -1,7 +0,0 @@
-import six
-
-
-class DictType(dict):
-    def __init__(self, init):
-        for k, v in six.iteritems(init):
-            self[k] = v

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/types/containers.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/types/containers.py b/env2/lib/python2.7/site-packages/docker/types/containers.py
deleted file mode 100644
index 40a44ca..0000000
--- a/env2/lib/python2.7/site-packages/docker/types/containers.py
+++ /dev/null
@@ -1,92 +0,0 @@
-import six
-
-from .base import DictType
-
-
-class LogConfigTypesEnum(object):
-    _values = (
-        'json-file',
-        'syslog',
-        'journald',
-        'gelf',
-        'fluentd',
-        'none'
-    )
-    JSON, SYSLOG, JOURNALD, GELF, FLUENTD, NONE = _values
-
-
-class LogConfig(DictType):
-    types = LogConfigTypesEnum
-
-    def __init__(self, **kwargs):
-        log_driver_type = kwargs.get('type', kwargs.get('Type'))
-        config = kwargs.get('config', kwargs.get('Config')) or {}
-
-        if config and not isinstance(config, dict):
-            raise ValueError("LogConfig.config must be a dictionary")
-
-        super(LogConfig, self).__init__({
-            'Type': log_driver_type,
-            'Config': config
-        })
-
-    @property
-    def type(self):
-        return self['Type']
-
-    @type.setter
-    def type(self, value):
-        self['Type'] = value
-
-    @property
-    def config(self):
-        return self['Config']
-
-    def set_config_value(self, key, value):
-        self.config[key] = value
-
-    def unset_config(self, key):
-        if key in self.config:
-            del self.config[key]
-
-
-class Ulimit(DictType):
-    def __init__(self, **kwargs):
-        name = kwargs.get('name', kwargs.get('Name'))
-        soft = kwargs.get('soft', kwargs.get('Soft'))
-        hard = kwargs.get('hard', kwargs.get('Hard'))
-        if not isinstance(name, six.string_types):
-            raise ValueError("Ulimit.name must be a string")
-        if soft and not isinstance(soft, int):
-            raise ValueError("Ulimit.soft must be an integer")
-        if hard and not isinstance(hard, int):
-            raise ValueError("Ulimit.hard must be an integer")
-        super(Ulimit, self).__init__({
-            'Name': name,
-            'Soft': soft,
-            'Hard': hard
-        })
-
-    @property
-    def name(self):
-        return self['Name']
-
-    @name.setter
-    def name(self, value):
-        self['Name'] = value
-
-    @property
-    def soft(self):
-        return self.get('Soft')
-
-    @soft.setter
-    def soft(self, value):
-        self['Soft'] = value
-
-    @property
-    def hard(self):
-        return self.get('Hard')
-
-    @hard.setter
-    def hard(self, value):
-        self['Hard'] = value

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/types/services.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/types/services.py b/env2/lib/python2.7/site-packages/docker/types/services.py
deleted file mode 100644
index 063779c..0000000
--- a/env2/lib/python2.7/site-packages/docker/types/services.py
+++ /dev/null
@@ -1,181 +0,0 @@
-import six
-
-from .. import errors
-
-
-class TaskTemplate(dict):
-    def __init__(self, container_spec, resources=None, restart_policy=None,
-                 placement=None, log_driver=None):
-        self['ContainerSpec'] = container_spec
-        if resources:
-            self['Resources'] = resources
-        if restart_policy:
-            self['RestartPolicy'] = restart_policy
-        if placement:
-            self['Placement'] = placement
-        if log_driver:
-            self['LogDriver'] = log_driver
-
-    @property
-    def container_spec(self):
-        return self.get('ContainerSpec')
-
-    @property
-    def resources(self):
-        return self.get('Resources')
-
-    @property
-    def restart_policy(self):
-        return self.get('RestartPolicy')
-
-    @property
-    def placement(self):
-        return self.get('Placement')
-
-
-class ContainerSpec(dict):
-    def __init__(self, image, command=None, args=None, env=None, workdir=None,
-                 user=None, labels=None, mounts=None, stop_grace_period=None):
-        from ..utils import split_command  # FIXME: circular import
-
-        self['Image'] = image
-
-        if isinstance(command, six.string_types):
-            command = split_command(command)
-        self['Command'] = command
-        self['Args'] = args
-
-        if env is not None:
-            self['Env'] = env
-        if workdir is not None:
-            self['Dir'] = workdir
-        if user is not None:
-            self['User'] = user
-        if labels is not None:
-            self['Labels'] = labels
-        if mounts is not None:
-            for mount in mounts:
-                if isinstance(mount, six.string_types):
-                    mounts.append(Mount.parse_mount_string(mount))
-                    mounts.remove(mount)
-            self['Mounts'] = mounts
-        if stop_grace_period is not None:
-            self['StopGracePeriod'] = stop_grace_period
-
-
-class Mount(dict):
-    def __init__(self, target, source, type='volume', read_only=False,
-                 propagation=None, no_copy=False, labels=None,
-                 driver_config=None):
-        self['Target'] = target
-        self['Source'] = source
-        if type not in ('bind', 'volume'):
-            raise errors.DockerError(
-                'Only acceptable mount types are `bind` and `volume`.'
-            )
-        self['Type'] = type
-
-        if type == 'bind':
-            if propagation is not None:
-                self['BindOptions'] = {
-                    'Propagation': propagation
-                }
-            if any([labels, driver_config, no_copy]):
-                raise errors.DockerError(
-                    'Mount type is binding but volume options have been '
-                    'provided.'
-                )
-        else:
-            volume_opts = {}
-            if no_copy:
-                volume_opts['NoCopy'] = True
-            if labels:
-                volume_opts['Labels'] = labels
-            if driver_config:
-                volume_opts['driver_config'] = driver_config
-            if volume_opts:
-                self['VolumeOptions'] = volume_opts
-            if propagation:
-                raise errors.DockerError(
-                    'Mount type is volume but `propagation` argument has been '
-                    'provided.'
-                )
-
-    @classmethod
-    def parse_mount_string(cls, string):
-        parts = string.split(':')
-        if len(parts) > 3:
-            raise errors.DockerError(
-                'Invalid mount format "{0}"'.format(string)
-            )
-        if len(parts) == 1:
-            return cls(target=parts[0])
-        else:
-            target = parts[1]
-            source = parts[0]
-            read_only = not (len(parts) == 3 or parts[2] == 'ro')
-            return cls(target, source, read_only=read_only)
-
-
-class Resources(dict):
-    def __init__(self, cpu_limit=None, mem_limit=None, cpu_reservation=None,
-                 mem_reservation=None):
-        limits = {}
-        reservation = {}
-        if cpu_limit is not None:
-            limits['NanoCPUs'] = cpu_limit
-        if mem_limit is not None:
-            limits['MemoryBytes'] = mem_limit
-        if cpu_reservation is not None:
-            reservation['NanoCPUs'] = cpu_reservation
-        if mem_reservation is not None:
-            reservation['MemoryBytes'] = mem_reservation
-
-        if limits:
-            self['Limits'] = limits
-        if reservation:
-            self['Reservations'] = reservation
-
-
-class UpdateConfig(dict):
-    def __init__(self, parallelism=0, delay=None, failure_action='continue'):
-        self['Parallelism'] = parallelism
-        if delay is not None:
-            self['Delay'] = delay
-        if failure_action not in ('pause', 'continue'):
-            raise errors.DockerError(
-                'failure_action must be either `pause` or `continue`.'
-            )
-        self['FailureAction'] = failure_action
-
-
-class RestartConditionTypesEnum(object):
-    _values = (
-        'none',
-        'on-failure',
-        'any',
-    )
-    NONE, ON_FAILURE, ANY = _values
-
-
-class RestartPolicy(dict):
-    condition_types = RestartConditionTypesEnum
-
-    def __init__(self, condition=RestartConditionTypesEnum.NONE, delay=0,
-                 max_attempts=0, window=0):
-        if condition not in self.condition_types._values:
-            raise TypeError(
-                'Invalid RestartPolicy condition {0}'.format(condition)
-            )
-
-        self['Condition'] = condition
-        self['Delay'] = delay
-        self['MaxAttempts'] = max_attempts
-        self['Window'] = window
-
-
-class DriverConfig(dict):
-    def __init__(self, name, options=None):
-        self['Name'] = name
-        if options:
-            self['Options'] = options

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/types/swarm.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/types/swarm.py b/env2/lib/python2.7/site-packages/docker/types/swarm.py
deleted file mode 100644
index 865fde6..0000000
--- a/env2/lib/python2.7/site-packages/docker/types/swarm.py
+++ /dev/null
@@ -1,40 +0,0 @@
-class SwarmSpec(dict):
-    def __init__(self, task_history_retention_limit=None,
-                 snapshot_interval=None, keep_old_snapshots=None,
-                 log_entries_for_slow_followers=None, heartbeat_tick=None,
-                 election_tick=None, dispatcher_heartbeat_period=None,
-                 node_cert_expiry=None, external_ca=None, name=None):
-        if task_history_retention_limit is not None:
-            self['Orchestration'] = {
-                'TaskHistoryRetentionLimit': task_history_retention_limit
-            }
-        if any([snapshot_interval, keep_old_snapshots,
-               log_entries_for_slow_followers, heartbeat_tick, election_tick]):
-            self['Raft'] = {
-                'SnapshotInterval': snapshot_interval,
-                'KeepOldSnapshots': keep_old_snapshots,
-                'LogEntriesForSlowFollowers': log_entries_for_slow_followers,
-                'HeartbeatTick': heartbeat_tick,
-                'ElectionTick': election_tick
-            }
-
-        if dispatcher_heartbeat_period:
-            self['Dispatcher'] = {
-                'HeartbeatPeriod': dispatcher_heartbeat_period
-            }
-
-        if node_cert_expiry or external_ca:
-            self['CAConfig'] = {
-                'NodeCertExpiry': node_cert_expiry,
-                'ExternalCA': external_ca
-            }
-
-        if name is not None:
-            self['Name'] = name
-
-
-class SwarmExternalCA(dict):
-    def __init__(self, url, protocol=None, options=None):
-        self['URL'] = url
-        self['Protocol'] = protocol
-        self['Options'] = options

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/__init__.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/__init__.py b/env2/lib/python2.7/site-packages/docker/utils/__init__.py
deleted file mode 100644
index 4bb3876..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/__init__.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# flake8: noqa
-from .utils import (
-    compare_version, convert_port_bindings, convert_volume_binds,
-    mkbuildcontext, tar, exclude_paths, parse_repository_tag, parse_host,
-    kwargs_from_env, convert_filters, datetime_to_timestamp,
-    create_host_config, create_container_config, parse_bytes, ping_registry,
-    parse_env_file, version_lt, version_gte, decode_json_header, split_command,
-    create_ipam_config, create_ipam_pool, parse_devices, normalize_links,
-)
-
-from ..types import LogConfig, Ulimit
-from ..types import SwarmExternalCA, SwarmSpec
-from .decorators import check_resource, minimum_version, update_headers

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/decorators.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/decorators.py b/env2/lib/python2.7/site-packages/docker/utils/decorators.py
deleted file mode 100644
index 2fe880c..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/decorators.py
+++ /dev/null
@@ -1,48 +0,0 @@
-import functools
-
-from .. import errors
-from . import utils
-
-
-def check_resource(f):
-    @functools.wraps(f)
-    def wrapped(self, resource_id=None, *args, **kwargs):
-        if resource_id is None:
-            if kwargs.get('container'):
-                resource_id = kwargs.pop('container')
-            elif kwargs.get('image'):
-                resource_id = kwargs.pop('image')
-        if isinstance(resource_id, dict):
-            resource_id = resource_id.get('Id', resource_id.get('ID'))
-        if not resource_id:
-            raise errors.NullResource(
-                'image or container param is undefined'
-            )
-        return f(self, resource_id, *args, **kwargs)
-    return wrapped
-
-
-def minimum_version(version):
-    def decorator(f):
-        @functools.wraps(f)
-        def wrapper(self, *args, **kwargs):
-            if utils.version_lt(self._version, version):
-                raise errors.InvalidVersion(
-                    '{0} is not available for version < {1}'.format(
-                        f.__name__, version
-                    )
-                )
-            return f(self, *args, **kwargs)
-        return wrapper
-    return decorator
-
-
-def update_headers(f):
-    def inner(self, *args, **kwargs):
-        if 'HttpHeaders' in self._auth_configs:
-            if not kwargs.get('headers'):
-                kwargs['headers'] = self._auth_configs['HttpHeaders']
-            else:
-                kwargs['headers'].update(self._auth_configs['HttpHeaders'])
-        return f(self, *args, **kwargs)
-    return inner

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/ports/__init__.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/ports/__init__.py b/env2/lib/python2.7/site-packages/docker/utils/ports/__init__.py
deleted file mode 100644
index 1dbfa3a..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/ports/__init__.py
+++ /dev/null
@@ -1,4 +0,0 @@
-from .ports import (
-    split_port,
-    build_port_bindings
-) # flake8: noqa

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/ports/ports.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/ports/ports.py b/env2/lib/python2.7/site-packages/docker/utils/ports/ports.py
deleted file mode 100644
index 326ef94..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/ports/ports.py
+++ /dev/null
@@ -1,92 +0,0 @@
-
-def add_port_mapping(port_bindings, internal_port, external):
-    if internal_port in port_bindings:
-        port_bindings[internal_port].append(external)
-    else:
-        port_bindings[internal_port] = [external]
-
-
-def add_port(port_bindings, internal_port_range, external_range):
-    if external_range is None:
-        for internal_port in internal_port_range:
-            add_port_mapping(port_bindings, internal_port, None)
-    else:
-        ports = zip(internal_port_range, external_range)
-        for internal_port, external_port in ports:
-            add_port_mapping(port_bindings, internal_port, external_port)
-
-
-def build_port_bindings(ports):
-    port_bindings = {}
-    for port in ports:
-        internal_port_range, external_range = split_port(port)
-        add_port(port_bindings, internal_port_range, external_range)
-    return port_bindings
-
-
-def to_port_range(port):
-    if not port:
-        return None
-
-    protocol = ""
-    if "/" in port:
-        parts = port.split("/")
-        if len(parts) != 2:
-            _raise_invalid_port(port)
-
-        port, protocol = parts
-        protocol = "/" + protocol
-
-    parts = str(port).split('-')
-
-    if len(parts) == 1:
-        return ["%s%s" % (port, protocol)]
-
-    if len(parts) == 2:
-        full_port_range = range(int(parts[0]), int(parts[1]) + 1)
-        return ["%s%s" % (p, protocol) for p in full_port_range]
-
-    raise ValueError('Invalid port range "%s", should be '
-                     'port or startport-endport' % port)
-
-
-def _raise_invalid_port(port):
-    raise ValueError('Invalid port "%s", should be '
-                     '[[remote_ip:]remote_port[-remote_port]:]'
-                     'port[/protocol]' % port)
-
-
-def split_port(port):
-    parts = str(port).split(':')
-
-    if not 1 <= len(parts) <= 3:
-        _raise_invalid_port(port)
-
-    if len(parts) == 1:
-        internal_port, = parts
-        return to_port_range(internal_port), None
-    if len(parts) == 2:
-        external_port, internal_port = parts
-
-        internal_range = to_port_range(internal_port)
-        external_range = to_port_range(external_port)
-
-        if internal_range is None or external_range is None:
-            _raise_invalid_port(port)
-
-        if len(internal_range) != len(external_range):
-            raise ValueError('Port ranges don\'t match in length')
-
-        return internal_range, external_range
-
-    external_ip, external_port, internal_port = parts
-    internal_range = to_port_range(internal_port)
-    external_range = to_port_range(external_port)
-    if not external_range:
-        external_range = [None] * len(internal_range)
-
-    if len(internal_range) != len(external_range):
-        raise ValueError('Port ranges don\'t match in length')
-
-    return internal_range, [(external_ip, ex_port or None)
-                            for ex_port in external_range]

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/socket.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/socket.py b/env2/lib/python2.7/site-packages/docker/utils/socket.py
deleted file mode 100644
index 164b845..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/socket.py
+++ /dev/null
@@ -1,75 +0,0 @@
-import errno
-import os
-import select
-import struct
-
-import six
-
-try:
-    from ..transport import NpipeSocket
-except ImportError:
-    NpipeSocket = type(None)
-
-
-class SocketError(Exception):
-    pass
-
-
-def read(socket, n=4096):
-    """
-    Reads at most n bytes from socket
-    """
-
-    recoverable_errors = (errno.EINTR, errno.EDEADLK, errno.EWOULDBLOCK)
-
-    # wait for data to become available
-    if not isinstance(socket, NpipeSocket):
-        select.select([socket], [], [])
-
-    try:
-        if hasattr(socket, 'recv'):
-            return socket.recv(n)
-        return os.read(socket.fileno(), n)
-    except EnvironmentError as e:
-        if e.errno not in recoverable_errors:
-            raise
-
-
-def read_exactly(socket, n):
-    """
-    Reads exactly n bytes from socket
-    Raises SocketError if there isn't enough data
-    """
-    data = six.binary_type()
-    while len(data) < n:
-        next_data = read(socket, n - len(data))
-        if not next_data:
-            raise SocketError("Unexpected EOF")
-        data += next_data
-    return data
-
-
-def next_frame_size(socket):
-    """
-    Returns the size of the next frame of data waiting to be read from socket,
-    according to the protocol defined here:
-
-    https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/attach-to-a-container
-    """
-    try:
-        data = read_exactly(socket, 8)
-    except SocketError:
-        return 0
-
-    _, actual = struct.unpack('>BxxxL', data)
-    return actual
-
-
-def frames_iter(socket):
-    """
-    Returns a generator of frames read from socket
-    """
-    n = next_frame_size(socket)
-    while n > 0:
-        yield read(socket, n)
-        n = next_frame_size(socket)

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/types.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/types.py b/env2/lib/python2.7/site-packages/docker/utils/types.py
deleted file mode 100644
index 8098c47..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/types.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Compatibility module. See https://github.com/docker/docker-py/issues/1196
-
-import warnings
-
-from ..types import Ulimit, LogConfig  # flake8: noqa
-
-warnings.warn('docker.utils.types is now docker.types', ImportWarning)

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/utils/utils.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/utils/utils.py b/env2/lib/python2.7/site-packages/docker/utils/utils.py
deleted file mode 100644
index 8d55b57..0000000
--- a/env2/lib/python2.7/site-packages/docker/utils/utils.py
+++ /dev/null
@@ -1,1139 +0,0 @@
-import base64
-import io
-import os
-import os.path
-import json
-import shlex
-import tarfile
-import tempfile
-import warnings
-from distutils.version import StrictVersion
-from datetime import datetime
-from fnmatch import fnmatch
-
-import requests
-import six
-
-from .. import constants
-from .. import errors
-from .. import tls
-from ..types import Ulimit, LogConfig
-
-if six.PY2:
-    from urllib import splitnport
-else:
-    from urllib.parse import splitnport
-
-DEFAULT_HTTP_HOST = "127.0.0.1"
-DEFAULT_UNIX_SOCKET = "http+unix://var/run/docker.sock"
-DEFAULT_NPIPE = 'npipe:////./pipe/docker_engine'
-
-BYTE_UNITS = {
-    'b': 1,
-    'k': 1024,
-    'm': 1024 * 1024,
-    'g': 1024 * 1024 * 1024
-}
-
-
-def create_ipam_pool(subnet=None, iprange=None, gateway=None,
-                     aux_addresses=None):
-    return {
-        'Subnet': subnet,
-        'IPRange': iprange,
-        'Gateway': gateway,
-        'AuxiliaryAddresses': aux_addresses
-    }
-
-
-def create_ipam_config(driver='default', pool_configs=None):
-    return {
-        'Driver': driver,
-        'Config': pool_configs or []
-    }
-
-
-def mkbuildcontext(dockerfile):
-    f = tempfile.NamedTemporaryFile()
-    t = tarfile.open(mode='w', fileobj=f)
-    if isinstance(dockerfile, io.StringIO):
-        dfinfo = tarfile.TarInfo('Dockerfile')
-        if six.PY3:
-            raise TypeError('Please use io.BytesIO to create in-memory '
-                            'Dockerfiles with Python 3')
-        else:
-            dfinfo.size = len(dockerfile.getvalue())
-            dockerfile.seek(0)
-    elif isinstance(dockerfile, io.BytesIO):
-        dfinfo = tarfile.TarInfo('Dockerfile')
-        dfinfo.size = len(dockerfile.getvalue())
-        dockerfile.seek(0)
-    else:
-        dfinfo = t.gettarinfo(fileobj=dockerfile, arcname='Dockerfile')
-    t.addfile(dfinfo, dockerfile)
-    t.close()
-    f.seek(0)
-    return f
-
-
-def decode_json_header(header):
-    data = base64.b64decode(header)
-    if six.PY3:
-        data = data.decode('utf-8')
-    return json.loads(data)
-
-
-def tar(path, exclude=None, dockerfile=None, fileobj=None, gzip=False):
-    if not fileobj:
-        fileobj = tempfile.NamedTemporaryFile()
-    t = tarfile.open(mode='w:gz' if gzip else 'w', fileobj=fileobj)
-
-    root = os.path.abspath(path)
-    exclude = exclude or []
-
-    for path in sorted(exclude_paths(root, exclude, dockerfile=dockerfile)):
-        t.add(os.path.join(root, path), arcname=path, recursive=False)
-
-    t.close()
-    fileobj.seek(0)
-    return fileobj
-
-
-def exclude_paths(root, patterns, dockerfile=None):
-    """
-    Given a root directory path and a list of .dockerignore patterns, return
-    an iterator of all paths (both regular files and directories) in the root
-    directory that do *not* match any of the patterns.
-
-    All paths returned are relative to the root.
-    """
-    if dockerfile is None:
-        dockerfile = 'Dockerfile'
-
-    exceptions = [p for p in patterns if p.startswith('!')]
-
-    include_patterns = [p[1:] for p in exceptions]
-    include_patterns += [dockerfile, '.dockerignore']
-
-    exclude_patterns = list(set(patterns) - set(exceptions))
-
-    paths = get_paths(root, exclude_patterns, include_patterns,
-                      has_exceptions=len(exceptions) > 0)
-
-    return set(paths).union(
-        # If the Dockerfile is in a subdirectory that is excluded, get_paths
-        # will not descend into it and the file will be skipped. This ensures
-        # it doesn't happen.
-        set([dockerfile])
-        if os.path.exists(os.path.join(root, dockerfile)) else set()
-    )
-
-
-def should_include(path, exclude_patterns, include_patterns):
-    """
-    Given a path, a list of exclude patterns, and a list of inclusion patterns:
-
-    1. Returns True if the path doesn't match any exclusion pattern
-    2. Returns False if the path matches an exclusion pattern and doesn't match
-       an inclusion pattern
-    3. Returns true if the path matches an exclusion pattern and matches an
-       inclusion pattern
-    """
-    for pattern in exclude_patterns:
-        if match_path(path, pattern):
-            for pattern in include_patterns:
-                if match_path(path, pattern):
-                    return True
-            return False
-    return True
-
-
-def get_paths(root, exclude_patterns, include_patterns, has_exceptions=False):
-    paths = []
-
-    for parent, dirs, files in os.walk(root, topdown=True, followlinks=False):
-        parent = os.path.relpath(parent, root)
-        if parent == '.':
-            parent = ''
-
-        # If exception rules exist, we can't skip recursing into ignored
-        # directories, as we need to look for exceptions in them.
-        #
-        # It may be possible to optimize this further for exception patterns
-        # that *couldn't* match within ignored directores.
-        #
-        # This matches the current docker logic (as of 2015-11-24):
-        # https://github.com/docker/docker/blob/37ba67bf636b34dc5c0c0265d62a089d0492088f/pkg/archive/archive.go#L555-L557
-
-        if not has_exceptions:
-
-            # Remove excluded patterns from the list of directories to traverse
-            # by mutating the dirs we're iterating over.
-            # This looks strange, but is considered the correct way to skip
-            # traversal. See https://docs.python.org/2/library/os.html#os.walk
-
-            dirs[:] = [d for d in dirs if
-                       should_include(os.path.join(parent, d),
-                                      exclude_patterns, include_patterns)]
-
-        for path in dirs:
-            if should_include(os.path.join(parent, path),
-                              exclude_patterns, include_patterns):
-                paths.append(os.path.join(parent, path))
-
-        for path in files:
-            if should_include(os.path.join(parent, path),
-                              exclude_patterns, include_patterns):
-                paths.append(os.path.join(parent, path))
-
-    return paths
-
-
-def match_path(path, pattern):
-    pattern = pattern.rstrip('/')
-    if pattern:
-        pattern = os.path.relpath(pattern)
-
-    pattern_components = pattern.split(os.path.sep)
-    path_components = path.split(os.path.sep)[:len(pattern_components)]
-    return fnmatch('/'.join(path_components), pattern)
-
-
-def compare_version(v1, v2):
-    """Compare docker versions
-
-    >>> v1 = '1.9'
-    >>> v2 = '1.10'
-    >>> compare_version(v1, v2)
-    1
-    >>> compare_version(v2, v1)
-    -1
-    >>> compare_version(v2, v2)
-    0
-    """
-    s1 = StrictVersion(v1)
-    s2 = StrictVersion(v2)
-    if s1 == s2:
-        return 0
-    elif s1 > s2:
-        return -1
-    else:
-        return 1
-
-
-def version_lt(v1, v2):
-    return compare_version(v1, v2) > 0
-
-
-def version_gte(v1, v2):
-    return not version_lt(v1, v2)
-
-
-def ping_registry(url):
-    warnings.warn(
-        'The `ping_registry` method is deprecated and will be removed.',
-        DeprecationWarning
-    )
-
-    return ping(url + '/v2/', [401]) or ping(url + '/v1/_ping')
-
-
-def ping(url, valid_4xx_statuses=None):
-    try:
-        res = requests.get(url, timeout=3)
-    except Exception:
-        return False
-    else:
-        # We don't send yet auth headers
-        # and a v2 registry will respond with status 401
-        return (
-            res.status_code < 400 or
-            (valid_4xx_statuses and res.status_code in valid_4xx_statuses)
-        )
-
-
-def _convert_port_binding(binding):
-    result = {'HostIp': '', 'HostPort': ''}
-    if isinstance(binding, tuple):
-        if len(binding) == 2:
-            result['HostPort'] = binding[1]
-            result['HostIp'] = binding[0]
-        elif isinstance(binding[0], six.string_types):
-            result['HostIp'] = binding[0]
-        else:
-            result['HostPort'] = binding[0]
-    elif isinstance(binding, dict):
-        if 'HostPort' in binding:
-            result['HostPort'] = binding['HostPort']
-            if 'HostIp' in binding:
-                result['HostIp'] = binding['HostIp']
-        else:
-            raise ValueError(binding)
-    else:
-        result['HostPort'] = binding
-
-    if result['HostPort'] is None:
-        result['HostPort'] = ''
-    else:
-        result['HostPort'] = str(result['HostPort'])
-
-    return result
-
-
-def convert_port_bindings(port_bindings):
-    result = {}
-    for k, v in six.iteritems(port_bindings):
-        key = str(k)
-        if '/' not in key:
-            key += '/tcp'
-        if isinstance(v, list):
-            result[key] = [_convert_port_binding(binding) for binding in v]
-        else:
-            result[key] = [_convert_port_binding(v)]
-    return result
-
-
-def convert_volume_binds(binds):
-    if isinstance(binds, list):
-        return binds
-
-    result = []
-    for k, v in binds.items():
-        if isinstance(k, six.binary_type):
-            k = k.decode('utf-8')
-
-        if isinstance(v, dict):
-            if 'ro' in v and 'mode' in v:
-                raise ValueError(
-                    'Binding cannot contain both "ro" and "mode": {}'
-                    .format(repr(v))
-                )
-
-            bind = v['bind']
-            if isinstance(bind, six.binary_type):
-                bind = bind.decode('utf-8')
-
-            if 'ro' in v:
-                mode = 'ro' if v['ro'] else 'rw'
-            elif 'mode' in v:
-                mode = v['mode']
-            else:
-                mode = 'rw'
-
-            result.append(
-                six.text_type('{0}:{1}:{2}').format(k, bind, mode)
-            )
-        else:
-            if isinstance(v, six.binary_type):
-                v = v.decode('utf-8')
-            result.append(
-                six.text_type('{0}:{1}:rw').format(k, v)
-            )
-    return result
-
-
-def convert_tmpfs_mounts(tmpfs):
-    if isinstance(tmpfs, dict):
-        return tmpfs
-
-    if not isinstance(tmpfs, list):
-        raise ValueError(
-            'Expected tmpfs value to be either a list or a dict, found: {}'
-            .format(type(tmpfs).__name__)
-        )
-
-    result = {}
-    for mount in tmpfs:
-        if isinstance(mount, six.string_types):
-            if ":" in mount:
-                name, options = mount.split(":", 1)
-            else:
-                name = mount
-                options = ""
-
-        else:
-            raise ValueError(
-                "Expected item in tmpfs list to be a string, found: {}"
-                .format(type(mount).__name__)
-            )
-
-        result[name] = options
-    return result
-
-
-def parse_repository_tag(repo_name):
-    parts = repo_name.rsplit('@', 1)
-    if len(parts) == 2:
-        return tuple(parts)
-    parts = repo_name.rsplit(':', 1)
-    if len(parts) == 2 and '/' not in parts[1]:
-        return tuple(parts)
-    return repo_name, None
-
-
-# Based on utils.go:ParseHost http://tinyurl.com/nkahcfh
-# fd:// protocol unsupported (for obvious reasons)
-# Added support for http and https
-# Protocol translation: tcp -> http, unix -> http+unix
-def parse_host(addr, is_win32=False, tls=False):
-    proto = "http+unix"
-    port = None
-    path = ''
-
-    if not addr and is_win32:
-        addr = DEFAULT_NPIPE
-
-    if not addr or addr.strip() == 'unix://':
-        return DEFAULT_UNIX_SOCKET
-
-    addr = addr.strip()
-    if addr.startswith('http://'):
-        addr = addr.replace('http://', 'tcp://')
-    if addr.startswith('http+unix://'):
-        addr = addr.replace('http+unix://', 'unix://')
-
-    if addr == 'tcp://':
-        raise errors.DockerException(
-            "Invalid bind address format: {0}".format(addr)
-        )
-    elif addr.startswith('unix://'):
-        addr = addr[7:]
-    elif addr.startswith('tcp://'):
-        proto = 'http{0}'.format('s' if tls else '')
-        addr = addr[6:]
-    elif addr.startswith('https://'):
-        proto = "https"
-        addr = addr[8:]
-    elif addr.startswith('npipe://'):
-        proto = 'npipe'
-        addr = addr[8:]
-    elif addr.startswith('fd://'):
-        raise errors.DockerException("fd protocol is not implemented")
-    else:
-        if "://" in addr:
-            raise errors.DockerException(
-                "Invalid bind address protocol: {0}".format(addr)
-            )
-        proto = "https" if tls else "http"
-
-    if proto in ("http", "https"):
-        address_parts = addr.split('/', 1)
-        host = address_parts[0]
-        if len(address_parts) == 2:
-            path = '/' + address_parts[1]
-        host, port = splitnport(host)
-
-        if port is None:
-            raise errors.DockerException(
-                "Invalid port: {0}".format(addr)
-            )
-
-        if not host:
-            host = DEFAULT_HTTP_HOST
-    else:
-        host = addr
-
-    if proto in ("http", "https") and port == -1:
-        raise errors.DockerException(
-            "Bind address needs a port: {0}".format(addr))
-
-    if proto == "http+unix" or proto == 'npipe':
-        return "{0}://{1}".format(proto, host).rstrip('/')
-    return "{0}://{1}:{2}{3}".format(proto, host, port, path).rstrip('/')
-
-
-def parse_devices(devices):
-    device_list = []
-    for device in devices:
-        if isinstance(device, dict):
-            device_list.append(device)
-            continue
-        if not isinstance(device, six.string_types):
-            raise errors.DockerException(
-                'Invalid device type {0}'.format(type(device))
-            )
-        device_mapping = device.split(':')
-        if device_mapping:
-            path_on_host = device_mapping[0]
-            if len(device_mapping) > 1:
-                path_in_container = device_mapping[1]
-            else:
-                path_in_container = path_on_host
-            if len(device_mapping) > 2:
-                permissions = device_mapping[2]
-            else:
-                permissions = 'rwm'
-            device_list.append({
-                'PathOnHost': path_on_host,
-                'PathInContainer': path_in_container,
-                'CgroupPermissions': permissions
-            })
-    return device_list
-
-
-def kwargs_from_env(ssl_version=None, assert_hostname=None, environment=None):
-    if not environment:
-        environment = os.environ
-    host = environment.get('DOCKER_HOST')
-
-    # empty string for cert path is the same as unset.
-    cert_path = environment.get('DOCKER_CERT_PATH') or None
-
-    # empty string for tls verify counts as "false".
-    # Any value or 'unset' counts as true.
-    tls_verify = environment.get('DOCKER_TLS_VERIFY')
-    if tls_verify == '':
-        tls_verify = False
-    else:
-        tls_verify = tls_verify is not None
-    enable_tls = cert_path or tls_verify
-
-    params = {}
-
-    if host:
-        params['base_url'] = (
-            host.replace('tcp://', 'https://') if enable_tls else host
-        )
-
-    if not enable_tls:
-        return params
-
-    if not cert_path:
-        cert_path = os.path.join(os.path.expanduser('~'), '.docker')
-
-    if not tls_verify and assert_hostname is None:
-        # assert_hostname is a subset of TLS verification,
-        # so if it's not set already then set it to false.
-        assert_hostname = False
-
-    params['tls'] = tls.TLSConfig(
-        client_cert=(os.path.join(cert_path, 'cert.pem'),
-                     os.path.join(cert_path, 'key.pem')),
-        ca_cert=os.path.join(cert_path, 'ca.pem'),
-        verify=tls_verify,
-        ssl_version=ssl_version,
-        assert_hostname=assert_hostname,
-    )
-
-    return params
-
-
-def convert_filters(filters):
-    result = {}
-    for k, v in six.iteritems(filters):
-        if isinstance(v, bool):
-            v = 'true' if v else 'false'
-        if not isinstance(v, list):
-            v = [v, ]
-        result[k] = v
-    return json.dumps(result)
-
-
-def datetime_to_timestamp(dt):
-    """Convert a UTC datetime to a Unix timestamp"""
-    delta = dt - datetime.utcfromtimestamp(0)
-    return delta.seconds + delta.days * 24 * 3600
-
-
-def parse_bytes(s):
-    if isinstance(s, six.integer_types + (float,)):
-        return s
-    if len(s) == 0:
-        return 0
-
-    if s[-2:-1].isalpha() and s[-1].isalpha():
-        if s[-1] == "b" or s[-1] == "B":
-            s = s[:-1]
-    units = BYTE_UNITS
-    suffix = s[-1].lower()
-
-    # Check if the variable is a string representation of an int
-    # without a units part. Assuming that the units are bytes.
-    if suffix.isdigit():
-        digits_part = s
-        suffix = 'b'
-    else:
-        digits_part = s[:-1]
-
-    if suffix in units.keys() or suffix.isdigit():
-        try:
-            digits = int(digits_part)
-        except ValueError:
-            raise errors.DockerException(
-                'Failed converting the string value for memory ({0}) to'
-                ' an integer.'.format(digits_part)
-            )
-
-        # Reconvert to long for the final result
-        s = int(digits * units[suffix])
-    else:
-        raise errors.DockerException(
-            'The specified value for memory ({0}) should specify the'
-            ' units. The postfix should be one of the `b` `k` `m` `g`'
-            ' characters'.format(s)
-        )
-
-    return s
-
-
-def host_config_type_error(param, param_value, expected):
-    error_msg = 'Invalid type for {0} param: expected {1} but found {2}'
-    return TypeError(error_msg.format(param, expected, type(param_value)))
-
-
-def host_config_version_error(param, version, less_than=True):
-    operator = '<' if less_than else '>'
-    error_msg = '{0} param is not supported in API versions {1} {2}'
-    return errors.InvalidVersion(error_msg.format(param, operator, version))
-
-
-def host_config_value_error(param, param_value):
-    error_msg = 'Invalid value for {0} param: {1}'
-    return ValueError(error_msg.format(param, param_value))
-
-
-def create_host_config(binds=None, port_bindings=None, lxc_conf=None,
-                       publish_all_ports=False, links=None, privileged=False,
-                       dns=None, dns_search=None, volumes_from=None,
-                       network_mode=None, restart_policy=None, cap_add=None,
-                       cap_drop=None, devices=None, extra_hosts=None,
-                       read_only=None, pid_mode=None, ipc_mode=None,
-                       security_opt=None, ulimits=None, log_config=None,
-                       mem_limit=None, memswap_limit=None,
-                       mem_reservation=None, kernel_memory=None,
-                       mem_swappiness=None, cgroup_parent=None,
-                       group_add=None, cpu_quota=None,
-                       cpu_period=None, blkio_weight=None,
-                       blkio_weight_device=None, device_read_bps=None,
-                       device_write_bps=None, device_read_iops=None,
-                       device_write_iops=None, oom_kill_disable=False,
-                       shm_size=None, sysctls=None, version=None, tmpfs=None,
-                       oom_score_adj=None, dns_opt=None, cpu_shares=None,
-                       cpuset_cpus=None, userns_mode=None, pids_limit=None):
-
-    host_config = {}
-
-    if not version:
-        warnings.warn(
-            'docker.utils.create_host_config() is deprecated. Please use '
-            'Client.create_host_config() instead.'
-        )
-        version = constants.DEFAULT_DOCKER_API_VERSION
-
-    if mem_limit is not None:
-        host_config['Memory'] = parse_bytes(mem_limit)
-
-    if memswap_limit is not None:
-        host_config['MemorySwap'] = parse_bytes(memswap_limit)
-
-    if mem_reservation:
-        if version_lt(version, '1.21'):
-            raise host_config_version_error('mem_reservation', '1.21')
-
-        host_config['MemoryReservation'] = parse_bytes(mem_reservation)
-
-    if kernel_memory:
-        if version_lt(version, '1.21'):
-            raise host_config_version_error('kernel_memory', '1.21')
-
-        host_config['KernelMemory'] = parse_bytes(kernel_memory)
-
-    if mem_swappiness is not None:
-        if version_lt(version, '1.20'):
-            raise host_config_version_error('mem_swappiness', '1.20')
-        if not isinstance(mem_swappiness, int):
-            raise host_config_type_error(
-                'mem_swappiness', mem_swappiness, 'int'
-            )
-
-        host_config['MemorySwappiness'] = mem_swappiness
-
-    if shm_size is not None:
-        if isinstance(shm_size, six.string_types):
-            shm_size = parse_bytes(shm_size)
-
-        host_config['ShmSize'] = shm_size
-
-    if pid_mode not in (None, 'host'):
-        raise host_config_value_error('pid_mode', pid_mode)
-    elif pid_mode:
-        host_config['PidMode'] = pid_mode
-
-    if ipc_mode:
-        host_config['IpcMode'] = ipc_mode
-
-    if privileged:
-        host_config['Privileged'] = privileged
-
-    if oom_kill_disable:
-        if version_lt(version, '1.20'):
-            raise host_config_version_error('oom_kill_disable', '1.19')
-
-        host_config['OomKillDisable'] = oom_kill_disable
-
-    if oom_score_adj:
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('oom_score_adj', '1.22')
-        if not isinstance(oom_score_adj, int):
-            raise host_config_type_error(
-                'oom_score_adj', oom_score_adj, 'int'
-            )
-        host_config['OomScoreAdj'] = oom_score_adj
-
-    if publish_all_ports:
-        host_config['PublishAllPorts'] = publish_all_ports
-
-    if read_only is not None:
-        host_config['ReadonlyRootfs'] = read_only
-
-    if dns_search:
-        host_config['DnsSearch'] = dns_search
-
-    if network_mode:
-        host_config['NetworkMode'] = network_mode
-    elif network_mode is None and compare_version('1.19', version) > 0:
-        host_config['NetworkMode'] = 'default'
-
-    if restart_policy:
-        if not isinstance(restart_policy, dict):
-            raise host_config_type_error(
-                'restart_policy', restart_policy, 'dict'
-            )
-
-        host_config['RestartPolicy'] = restart_policy
-
-    if cap_add:
-        host_config['CapAdd'] = cap_add
-
-    if cap_drop:
-        host_config['CapDrop'] = cap_drop
-
-    if devices:
-        host_config['Devices'] = parse_devices(devices)
-
-    if group_add:
-        if version_lt(version, '1.20'):
-            raise host_config_version_error('group_add', '1.20')
-
-        host_config['GroupAdd'] = [six.text_type(grp) for grp in group_add]
-
-    if dns is not None:
-        host_config['Dns'] = dns
-
-    if dns_opt is not None:
-        if version_lt(version, '1.21'):
-            raise host_config_version_error('dns_opt', '1.21')
-
-        host_config['DnsOptions'] = dns_opt
-
-    if security_opt is not None:
-        if not isinstance(security_opt, list):
-            raise host_config_type_error('security_opt', security_opt, 'list')
-
-        host_config['SecurityOpt'] = security_opt
-
-    if sysctls:
-        if not isinstance(sysctls, dict):
-            raise host_config_type_error('sysctls', sysctls, 'dict')
-        host_config['Sysctls'] = {}
-        for k, v in six.iteritems(sysctls):
-            host_config['Sysctls'][k] = six.text_type(v)
-
-    if volumes_from is not None:
-        if isinstance(volumes_from, six.string_types):
-            volumes_from = volumes_from.split(',')
-
-        host_config['VolumesFrom'] = volumes_from
-
-    if binds is not None:
-        host_config['Binds'] = convert_volume_binds(binds)
-
-    if port_bindings is not None:
-        host_config['PortBindings'] = convert_port_bindings(port_bindings)
-
-    if extra_hosts is not None:
-        if isinstance(extra_hosts, dict):
-            extra_hosts = [
-                '{0}:{1}'.format(k, v)
-                for k, v in sorted(six.iteritems(extra_hosts))
-            ]
-
-        host_config['ExtraHosts'] = extra_hosts
-
-    if links is not None:
-        host_config['Links'] = normalize_links(links)
-
-    if isinstance(lxc_conf, dict):
-        formatted = []
-        for k, v in six.iteritems(lxc_conf):
-            formatted.append({'Key': k, 'Value': str(v)})
-        lxc_conf = formatted
-
-    if lxc_conf is not None:
-        host_config['LxcConf'] = lxc_conf
-
-    if cgroup_parent is not None:
-        host_config['CgroupParent'] = cgroup_parent
-
-    if ulimits is not None:
-        if not isinstance(ulimits, list):
-            raise host_config_type_error('ulimits', ulimits, 'list')
-        host_config['Ulimits'] = []
-        for l in ulimits:
-            if not isinstance(l, Ulimit):
-                l = Ulimit(**l)
-            host_config['Ulimits'].append(l)
-
-    if log_config is not None:
-        if not isinstance(log_config, LogConfig):
-            if not isinstance(log_config, dict):
-                raise host_config_type_error(
-                    'log_config', log_config, 'LogConfig'
-                )
-            log_config = LogConfig(**log_config)
-
-        host_config['LogConfig'] = log_config
-
-    if cpu_quota:
-        if not isinstance(cpu_quota, int):
-            raise host_config_type_error('cpu_quota', cpu_quota, 'int')
-        if version_lt(version, '1.19'):
-            raise host_config_version_error('cpu_quota', '1.19')
-
-        host_config['CpuQuota'] = cpu_quota
-
-    if cpu_period:
-        if not isinstance(cpu_period, int):
-            raise host_config_type_error('cpu_period', cpu_period, 'int')
-        if version_lt(version, '1.19'):
-            raise host_config_version_error('cpu_period', '1.19')
-
-        host_config['CpuPeriod'] = cpu_period
-
-    if cpu_shares:
-        if version_lt(version, '1.18'):
-            raise host_config_version_error('cpu_shares', '1.18')
-
-        if not isinstance(cpu_shares, int):
-            raise host_config_type_error('cpu_shares', cpu_shares, 'int')
-
-        host_config['CpuShares'] = cpu_shares
-
-    if cpuset_cpus:
-        if version_lt(version, '1.18'):
-            raise host_config_version_error('cpuset_cpus', '1.18')
-
-        host_config['CpuSetCpus'] = cpuset_cpus
-
-    if blkio_weight:
-        if not isinstance(blkio_weight, int):
-            raise host_config_type_error('blkio_weight', blkio_weight, 'int')
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('blkio_weight', '1.22')
-        host_config["BlkioWeight"] = blkio_weight
-
-    if blkio_weight_device:
-        if not isinstance(blkio_weight_device, list):
-            raise host_config_type_error(
-                'blkio_weight_device', blkio_weight_device, 'list'
-            )
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('blkio_weight_device', '1.22')
-        host_config["BlkioWeightDevice"] = blkio_weight_device
-
-    if device_read_bps:
-        if not isinstance(device_read_bps, list):
-            raise host_config_type_error(
-                'device_read_bps', device_read_bps, 'list'
-            )
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('device_read_bps', '1.22')
-        host_config["BlkioDeviceReadBps"] = device_read_bps
-
-    if device_write_bps:
-        if not isinstance(device_write_bps, list):
-            raise host_config_type_error(
-                'device_write_bps', device_write_bps, 'list'
-            )
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('device_write_bps', '1.22')
-        host_config["BlkioDeviceWriteBps"] = device_write_bps
-
-    if device_read_iops:
-        if not isinstance(device_read_iops, list):
-            raise host_config_type_error(
-                'device_read_iops', device_read_iops, 'list'
-            )
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('device_read_iops', '1.22')
-        host_config["BlkioDeviceReadIOps"] = device_read_iops
-
-    if device_write_iops:
-        if not isinstance(device_write_iops, list):
-            raise host_config_type_error(
-                'device_write_iops', device_write_iops, 'list'
-            )
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('device_write_iops', '1.22')
-        host_config["BlkioDeviceWriteIOps"] = device_write_iops
-
-    if tmpfs:
-        if version_lt(version, '1.22'):
-            raise host_config_version_error('tmpfs', '1.22')
-        host_config["Tmpfs"] = convert_tmpfs_mounts(tmpfs)
-
-    if userns_mode:
-        if version_lt(version, '1.23'):
-            raise host_config_version_error('userns_mode', '1.23')
-
-        if userns_mode != "host":
-            raise host_config_value_error("userns_mode", userns_mode)
-        host_config['UsernsMode'] = userns_mode
-
-    if pids_limit:
-        if not isinstance(pids_limit, int):
-            raise host_config_type_error('pids_limit', pids_limit, 'int')
-        if version_lt(version, '1.23'):
-            raise host_config_version_error('pids_limit', '1.23')
-        host_config["PidsLimit"] = pids_limit
-
-    return host_config
-
-
-def normalize_links(links):
-    if isinstance(links, dict):
-        links = six.iteritems(links)
-
-    return ['{0}:{1}'.format(k, v) for k, v in sorted(links)]
-
-
-def create_networking_config(endpoints_config=None):
-    networking_config = {}
-
-    if endpoints_config:
-        networking_config["EndpointsConfig"] = endpoints_config
-
-    return networking_config
-
-
-def create_endpoint_config(version, aliases=None, links=None,
-                           ipv4_address=None, ipv6_address=None,
-                           link_local_ips=None):
-    if version_lt(version, '1.22'):
-        raise errors.InvalidVersion(
-            'Endpoint config is not supported for API version < 1.22'
-        )
-    endpoint_config = {}
-
-    if aliases:
-        endpoint_config["Aliases"] = aliases
-
-    if links:
-        endpoint_config["Links"] = normalize_links(links)
-
-    ipam_config = {}
-    if ipv4_address:
-        ipam_config['IPv4Address'] = ipv4_address
-
-    if ipv6_address:
-        ipam_config['IPv6Address'] = ipv6_address
-
-    if link_local_ips is not None:
-        if version_lt(version, '1.24'):
-            raise errors.InvalidVersion(
-                'link_local_ips is not supported for API version < 1.24'
-            )
-        ipam_config['LinkLocalIPs'] = link_local_ips
-
-    if ipam_config:
-        endpoint_config['IPAMConfig'] = ipam_config
-
-    return endpoint_config
-
-
-def parse_env_file(env_file):
-    """
-    Reads a line-separated environment file.
-    The format of each line should be "key=value".
-    """
-    environment = {}
-
-    with open(env_file, 'r') as f:
-        for line in f:
-
-            if line[0] == '#':
-                continue
-
-            parse_line = line.strip().split('=', 1)
-            if len(parse_line) == 2:
-                k, v = parse_line
-                environment[k] = v
-            else:
-                raise errors.DockerException(
-                    'Invalid line in environment file {0}:\n{1}'.format(
-                        env_file, line))
-
-    return environment
-
-
-def split_command(command):
-    if six.PY2 and not isinstance(command, six.binary_type):
-        command = command.encode('utf-8')
-    return shlex.split(command)
-
-
-def format_environment(environment):
-    def format_env(key, value):
-        if value is None:
-            return key
-        if isinstance(value, six.binary_type):
-            value = value.decode('utf-8')
-
-        return u'{key}={value}'.format(key=key, value=value)
-    return [format_env(*var) for var in six.iteritems(environment)]
-
-
-def create_container_config(
-    version, image, command, hostname=None, user=None, detach=False,
-    stdin_open=False, tty=False, mem_limit=None, ports=None, environment=None,
-    dns=None, volumes=None, volumes_from=None, network_disabled=False,
-    entrypoint=None, cpu_shares=None, working_dir=None, domainname=None,
-    memswap_limit=None, cpuset=None, host_config=None, mac_address=None,
-    labels=None, volume_driver=None, stop_signal=None, networking_config=None,
-):
-    if isinstance(command, six.string_types):
-        command = split_command(command)
-
-    if isinstance(entrypoint, six.string_types):
-        entrypoint = split_command(entrypoint)
-
-    if isinstance(environment, dict):
-        environment = format_environment(environment)
-
-    if labels is not None and compare_version('1.18', version) < 0:
-        raise errors.InvalidVersion(
-            'labels were only introduced in API version 1.18'
-        )
-
-    if cpuset is not None or cpu_shares is not None:
-        if version_gte(version, '1.18'):
-            warnings.warn(
-                'The cpuset_cpus and cpu_shares options have been moved to '
-                'host_config in API version 1.18, and will be removed',
-                DeprecationWarning
-            )
-
-    if stop_signal is not None and compare_version('1.21', version) < 0:
-        raise errors.InvalidVersion(
-            'stop_signal was only introduced in API version 1.21'
-        )
-
-    if compare_version('1.19', version) < 0:
-        if volume_driver is not None:
-            raise errors.InvalidVersion(
-                'Volume drivers were only introduced in API version 1.19'
-            )
-        mem_limit = mem_limit if mem_limit is not None else 0
-        memswap_limit = memswap_limit if memswap_limit is not None else 0
-    else:
-        if mem_limit is not None:
-            raise errors.InvalidVersion(
-                'mem_limit has been moved to host_config in API version 1.19'
-            )
-
-        if memswap_limit is not None:
-            raise errors.InvalidVersion(
-                'memswap_limit has been moved to host_config in API '
-                'version 1.19'
-            )
-
-    if isinstance(labels, list):
-        labels = dict((lbl, six.text_type('')) for lbl in labels)
-
-    if mem_limit is not None:
-        mem_limit = parse_bytes(mem_limit)
-
-    if memswap_limit is not None:
-        memswap_limit = parse_bytes(memswap_limit)
-
-    if isinstance(ports, list):
-        exposed_ports = {}
-        for port_definition in ports:
-            port = port_definition
-            proto = 'tcp'
-            if isinstance(port_definition, tuple):
-                if len(port_definition) == 2:
-                    proto = port_definition[1]
-                port = port_definition[0]
-            exposed_ports['{0}/{1}'.format(port, proto)] = {}
-        ports = exposed_ports
-
-    if isinstance(volumes, six.string_types):
-        volumes = [volumes, ]
-
-    if isinstance(volumes, list):
-        volumes_dict = {}
-        for vol in volumes:
-            volumes_dict[vol] = {}
-        volumes = volumes_dict
-
-    if volumes_from:
-        if not isinstance(volumes_from, six.string_types):
-            volumes_from = ','.join(volumes_from)
-    else:
-        # Force None, an empty list or dict causes client.start to fail
-        volumes_from = None
-
-    attach_stdin = False
-    attach_stdout = False
-    attach_stderr = False
-    stdin_once = False
-
-    if not detach:
-        attach_stdout = True
-        attach_stderr = True
-
-        if stdin_open:
-            attach_stdin = True
-            stdin_once = True
-
-    if compare_version('1.10', version) >= 0:
-        message = ('{0!r} parameter has no effect on create_container().'
-                   ' It has been moved to host_config')
-        if dns is not None:
-            raise errors.InvalidVersion(message.format('dns'))
-        if volumes_from is not None:
-            raise errors.InvalidVersion(message.format('volumes_from'))
-
-    return {
-        'Hostname': hostname,
-        'Domainname': domainname,
-        'ExposedPorts': ports,
-        'User': six.text_type(user) if user else None,
-        'Tty': tty,
-        'OpenStdin': stdin_open,
-        'StdinOnce': stdin_once,
-        'Memory': mem_limit,
-        'AttachStdin': attach_stdin,
-        'AttachStdout': attach_stdout,
-        'AttachStderr': attach_stderr,
-        'Env': environment,
-        'Cmd': command,
-        'Dns': dns,
-        'Image': image,
-        'Volumes': volumes,
-        'VolumesFrom': volumes_from,
-        'NetworkDisabled': network_disabled,
-        'Entrypoint': entrypoint,
-        'CpuShares': cpu_shares,
-        'Cpuset': cpuset,
-        'CpusetCpus': cpuset,
-        'WorkingDir': working_dir,
-        'MemorySwap': memswap_limit,
-        'HostConfig': host_config,
-        'NetworkingConfig': networking_config,
-        'MacAddress': mac_address,
-        'Labels': labels,
-        'VolumeDriver': volume_driver,
-        'StopSignal': stop_signal
-    }

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker/version.py
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker/version.py b/env2/lib/python2.7/site-packages/docker/version.py
deleted file mode 100644
index 27d014c..0000000
--- a/env2/lib/python2.7/site-packages/docker/version.py
+++ /dev/null
@@ -1,2 +0,0 @@
-version = "1.10.6"
-version_info = tuple([int(d) for d in version.split("-")[0].split(".")])

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/DESCRIPTION.rst
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/DESCRIPTION.rst b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/DESCRIPTION.rst
deleted file mode 100644
index e118723..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/DESCRIPTION.rst
+++ /dev/null
@@ -1,3 +0,0 @@
-UNKNOWN
-
-

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/INSTALLER
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/INSTALLER b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/INSTALLER
deleted file mode 100644
index a1b589e..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/INSTALLER
+++ /dev/null
@@ -1 +0,0 @@
-pip

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/METADATA
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/METADATA b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/METADATA
deleted file mode 100644
index d6f1eb7..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/METADATA
+++ /dev/null
@@ -1,32 +0,0 @@
-Metadata-Version: 2.0
-Name: docker-compose
-Version: 1.8.0
-Summary: Multi-container orchestration for Docker
-Home-page: https://www.docker.com/
-Author: Docker, Inc.
-Author-email: UNKNOWN
-License: Apache License 2.0
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Environment :: Console
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Apache Software License
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.4
-Requires-Dist: cached-property (>=1.2.0,<2)
-Requires-Dist: docopt (<0.7,>=0.6.1)
-Requires-Dist: PyYAML (<4,>=3.10)
-Requires-Dist: requests (>=2.6.1,<2.8)
-Requires-Dist: texttable (>=0.8.1,<0.9)
-Requires-Dist: websocket-client (>=0.32.0,<1.0)
-Requires-Dist: docker-py (>=1.9.0,<2.0)
-Requires-Dist: dockerpty (<0.5,>=0.4.1)
-Requires-Dist: six (>=1.3.0,<2)
-Requires-Dist: jsonschema (>=2.5.1,<3)
-Requires-Dist: enum34 (>=1.0.4,<2)
-
-UNKNOWN
-
-

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/RECORD
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/RECORD b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/RECORD
deleted file mode 100644
index 89a4211..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/RECORD
+++ /dev/null
@@ -1,83 +0,0 @@
-compose/GITSHA,sha256=jpASxQL3TVzirAeKn9RVj9Zx-UOyi9_mxHgRPjHpjY4,8
-compose/__init__.py,sha256=rTFtWHw2kt3e2ffnFskQihuIX67673YKGReuu-KrCc4,102
-compose/__main__.py,sha256=s6kkTRY0cnWgIy8ptC8T48d7Z8UHbkSIhLNYKUJYkKY,122
-compose/bundle.py,sha256=533DxcDe3lHcoMbxdnQmK-on7Mi5okjxiKEpPB8Dlks,7036
-compose/const.py,sha256=wp1a0adBcp46kHHufz6rdpoKZlD5vaeOmGlR30p0zdg,792
-compose/container.py,sha256=XMpq6GkAIlzfTIRSh7RupHeQbp7zTYm8IZmXpXH8fmk,7749
-compose/errors.py,sha256=nnCXDJvKbUu9rTY3-s82TezWDuZreBkugYZgi-phgtM,178
-compose/network.py,sha256=wEYZ0EFAFHqEvgMdQCmQebvIj4wJSFh-puEK39oDDZ8,5994
-compose/parallel.py,sha256=wqRPUqeHz2qZHFrPAO9dkTXhgQzg-M7ljbryK0kFC-E,7436
-compose/progress_stream.py,sha256=MmE4M7lOyqHikHSX5yVvpdWJyz2wNa15cDKfi5E3oJk,3019
-compose/project.py,sha256=cBNXNU07k06qZbVhpPSNDQDsLdU0hebpf8h4eALSo7E,19718
-compose/service.py,sha256=f0HYq-nM-A1eqerfrRfEg8qy6aMB7LpuybDC4xvJt30,36427
-compose/state.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-compose/utils.py,sha256=sp9vpF1euhdTqTj5yXqzR0WZgpwfCGPWUjHIUYDqy9s,2691
-compose/volume.py,sha256=lPMmFGwNQu44PATrosKaeK08BgJh7tD9yjcxV-d82IY,4640
-compose/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
-compose/cli/colors.py,sha256=xXRSficE5yN-2fAdN_ZtX9MJfizjgwM3PaxBTMCbs98,860
-compose/cli/command.py,sha256=d9XhUrWW9vnXyvlxekENpLTDbnbQfrG9yyUQ51VqShg,4041
-compose/cli/docker_client.py,sha256=nHfyxtgOyA3Kmtw8BtcOHY8R7mVSQNyON_Rj7Wpakzo,2135
-compose/cli/docopt_command.py,sha256=-ZziHSp14mIVfW7dMkO-FYPhwlgM6FYGGZx-cXECaoo,1700
-compose/cli/errors.py,sha256=vSqOqS_t1gU8CuX8OdFNKerI1jNSFcM5iexYKaCg-LY,3915
-compose/cli/formatter.py,sha256=_3KuUmpoJw7guGZixU9E8IMTGY_UWC8yAUP9FRcIRBc,1358
-compose/cli/log_printer.py,sha256=Y4pFpNBaNG_XbF2vTKA8TiT7P_lC1FaOfHKz8OkdDLM,6605
-compose/cli/main.py,sha256=uXo3isrKJiWDLgwDS7X9HJ_FDH4u5DUrmwrN2mVyK5w,37145
-compose/cli/signals.py,sha256=QlwX3FHiqIQA6f7_QCOx4rG93fUimCreurYl3bIR12s,395
-compose/cli/utils.py,sha256=QmBbqZ-m46IaHY7arVA0O46mxAeOFT24KDrjB51p0Cs,3192
-compose/cli/verbose_proxy.py,sha256=SIrY0HAIiUH9HyaRTDd692JHvMQw4kUwt0qSOZ6bCkQ,1770
-compose/config/__init__.py,sha256=nF5USHmyudNrl6SA0QoS_5kNCtkFTSr7vPfyINpxG70,325
-compose/config/config.py,sha256=pSz1RtdYDzIcqcwBLOSuSSfkchJuHe_R2AcATu-tenI,32327
-compose/config/config_schema_v1.json,sha256=y6W8hrnIP_tqp53vvbXdRYCkeZXGzN4p8zJmsnaYJEA,5475
-compose/config/config_schema_v2.0.json,sha256=iDIwdIJvC8rO2dC8IMk23sPu1gA8_3iah2P7adbxGSw,8823
-compose/config/environment.py,sha256=6saRBOppUlDZQd8yF2pFecftWsBlaBAWptKGYSE2Brw,3235
-compose/config/errors.py,sha256=MGVp2LTs8EIOLB9aMTV8E2bO5bVYFwe26YCzCSyzS-U,1432
-compose/config/interpolation.py,sha256=2cXGuIoffLnrvsrtypE6PB3VKhl3B4mHUzGnizaMTZc,1751
-compose/config/serialize.py,sha256=-e5BtcnaAPR_KR187uF44Mxi7ZfBH9f5hCPgrZyX7cw,1646
-compose/config/sort_services.py,sha256=nl2DvRHmO-_9-wrmWRetkrXE-hJO8QWr6Pk8YAUWrPE,2408
-compose/config/types.py,sha256=GrPFhEPIMspCrEIy1YqGW7m0PNRQBFhATJPaxPPTmaA,6215
-compose/config/validation.py,sha256=1-jLkCltUZBxFI4QMviUW4paPnqPXkfZuUbh8QMbxks,14474
-docker_compose-1.8.0.dist-info/DESCRIPTION.rst,sha256=OCTuuN6LcWulhHS3d5rfjdsQtW22n7HENFRh6jC6ego,10
-docker_compose-1.8.0.dist-info/METADATA,sha256=h3Y_WCbTK1PD5qljExeiyEfxj71KFCQ2tPj5O5mEkEg,1065
-docker_compose-1.8.0.dist-info/RECORD,,
-docker_compose-1.8.0.dist-info/WHEEL,sha256=siaGhHNH1IivIQO0_6mMI-08XttA7Qr2K9-kq5rC0zk,96
-docker_compose-1.8.0.dist-info/entry_points.txt,sha256=-8iKBsI1us-81I-rE86q5ZyOIQJKSiP-kBugo6Ml_gk,68
-docker_compose-1.8.0.dist-info/metadata.json,sha256=Cmku150e5kFzv2CDdEBxcdE39A071_pUXgLTdwgDZ6U,1314
-docker_compose-1.8.0.dist-info/pbr.json,sha256=VCVFzZPRQpukwD9OMPEIOF3mBeIEbAh2TrNve5nbG0U,47
-docker_compose-1.8.0.dist-info/top_level.txt,sha256=jLmhBR06QFGLqfBVdNJ3JPy-7jr7nSl7LgGemw-WiZw,8
-../../../bin/docker-compose,sha256=7DEkKhbx46PlzrtxonKKwF-r4Mjrc6I8sPKJ50pjxWY,287
-docker_compose-1.8.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
-compose/network.pyc,,
-compose/utils.pyc,,
-compose/cli/signals.pyc,,
-compose/config/types.pyc,,
-compose/const.pyc,,
-compose/state.pyc,,
-compose/service.pyc,,
-compose/config/config.pyc,,
-compose/cli/formatter.pyc,,
-compose/config/serialize.pyc,,
-compose/config/errors.pyc,,
-compose/config/__init__.pyc,,
-compose/cli/errors.pyc,,
-compose/errors.pyc,,
-compose/cli/command.pyc,,
-compose/cli/utils.pyc,,
-compose/volume.pyc,,
-compose/cli/docker_client.pyc,,
-compose/bundle.pyc,,
-compose/cli/docopt_command.pyc,,
-compose/container.pyc,,
-compose/cli/log_printer.pyc,,
-compose/config/sort_services.pyc,,
-compose/cli/main.pyc,,
-compose/project.pyc,,
-compose/cli/__init__.pyc,,
-compose/config/interpolation.pyc,,
-compose/__main__.pyc,,
-compose/__init__.pyc,,
-compose/progress_stream.pyc,,
-compose/parallel.pyc,,
-compose/cli/verbose_proxy.pyc,,
-compose/cli/colors.pyc,,
-compose/config/validation.pyc,,
-compose/config/environment.pyc,,

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/WHEEL
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/WHEEL b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/WHEEL
deleted file mode 100644
index 79e7cc9..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/WHEEL
+++ /dev/null
@@ -1,5 +0,0 @@
-Wheel-Version: 1.0
-Generator: bdist_wheel (0.30.0.a0)
-Root-Is-Purelib: true
-Tag: cp27-none-any
-

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/entry_points.txt
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/entry_points.txt b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/entry_points.txt
deleted file mode 100644
index b6dbac9..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/entry_points.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-
-    [console_scripts]
-    docker-compose=compose.cli.main:main
-    
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/metadata.json
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/metadata.json b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/metadata.json
deleted file mode 100644
index c2b1189..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/metadata.json
+++ /dev/null
@@ -1 +0,0 @@
-{"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4"], "extensions": {"python.commands": {"wrap_console": {"docker-compose": "compose.cli.main:main"}}, "python.details": {"contacts": [{"name": "Docker, Inc.", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://www.docker.com/"}}, "python.exports": {"console_scripts": {"docker-compose": "compose.cli.main:main"}}}, "extras": [], "generator": "bdist_wheel (0.30.0.a0)", "license": "Apache License 2.0", "metadata_version": "2.0", "name": "docker-compose", "run_requires": [{"requires": ["PyYAML (<4,>=3.10)", "cached-property (>=1.2.0,<2)", "docker-py (>=1.9.0,<2.0)", "dockerpty (<0.5,>=0.4.1)", "docopt (
 <0.7,>=0.6.1)", "enum34 (>=1.0.4,<2)", "jsonschema (>=2.5.1,<3)", "requests (>=2.6.1,<2.8)", "six (>=1.3.0,<2)", "texttable (>=0.8.1,<0.9)", "websocket-client (>=0.32.0,<1.0)"]}], "summary": "Multi-container orchestration for Docker", "test_requires": [{"requires": ["mock (>=1.0.1)", "pytest"]}], "version": "1.8.0"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/pbr.json
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/pbr.json b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/pbr.json
deleted file mode 100644
index 2140742..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/pbr.json
+++ /dev/null
@@ -1 +0,0 @@
-{"is_release": false, "git_version": "6c29830"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/top_level.txt
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/top_level.txt b/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/top_level.txt
deleted file mode 100644
index d66d399..0000000
--- a/env2/lib/python2.7/site-packages/docker_compose-1.8.0.dist-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-compose

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/DESCRIPTION.rst
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/DESCRIPTION.rst b/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/DESCRIPTION.rst
deleted file mode 100644
index 06d1a8e..0000000
--- a/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/DESCRIPTION.rst
+++ /dev/null
@@ -1,39 +0,0 @@
-docker-py
-=========
-
-|Build Status|
-
-A Python library for the Docker Remote API. It does everything the
-``docker`` command does, but from within Python \u2013�run containers, manage
-them, pull/push images, etc.
-
-Installation
-------------
-
-The latest stable version is always available on PyPi.
-
-::
-
-    pip install docker-py
-
-Documentation
--------------
-
-|Documentation Status|
-
-`Read the full documentation
-here <https://docker-py.readthedocs.io/en/latest/>`__. The source is
-available in the ``docs/`` directory.
-
-License
--------
-
-Docker is licensed under the Apache License, Version 2.0. See LICENSE
-for full license text
-
-.. |Build Status| image:: https://travis-ci.org/docker/docker-py.png
-   :target: https://travis-ci.org/docker/docker-py
-.. |Documentation Status| image:: https://readthedocs.org/projects/docker-py/badge/?version=latest
-   :target: https://readthedocs.org/projects/docker-py/?badge=latest
-
-

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/INSTALLER
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/INSTALLER b/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/INSTALLER
deleted file mode 100644
index a1b589e..0000000
--- a/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/INSTALLER
+++ /dev/null
@@ -1 +0,0 @@
-pip

http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/6a81d1e7/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/METADATA
----------------------------------------------------------------------
diff --git a/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/METADATA b/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/METADATA
deleted file mode 100644
index ecf839b..0000000
--- a/env2/lib/python2.7/site-packages/docker_py-1.10.6.dist-info/METADATA
+++ /dev/null
@@ -1,69 +0,0 @@
-Metadata-Version: 2.0
-Name: docker-py
-Version: 1.10.6
-Summary: Python client for Docker.
-Home-page: https://github.com/docker/docker-py/
-Author: Joffrey F
-Author-email: joffrey@docker.com
-License: UNKNOWN
-Platform: UNKNOWN
-Classifier: Development Status :: 4 - Beta
-Classifier: Environment :: Other Environment
-Classifier: Intended Audience :: Developers
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python
-Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
-Classifier: Programming Language :: Python :: 2.7
-Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Topic :: Utilities
-Classifier: License :: OSI Approved :: Apache Software License
-Requires-Dist: docker-pycreds (>=0.2.1)
-Requires-Dist: requests (>=2.5.2,!=2.11.0)
-Requires-Dist: six (>=1.4.0)
-Requires-Dist: websocket-client (>=0.32.0)
-Requires-Dist: ipaddress (>=1.0.16); python_version < "3.3"
-Requires-Dist: backports.ssl-match-hostname (>=3.5); python_version < "3.5"
-
-docker-py
-=========
-
-|Build Status|
-
-A Python library for the Docker Remote API. It does everything the
-``docker`` command does, but from within Python \u2013�run containers, manage
-them, pull/push images, etc.
-
-Installation
-------------
-
-The latest stable version is always available on PyPi.
-
-::
-
-    pip install docker-py
-
-Documentation
--------------
-
-|Documentation Status|
-
-`Read the full documentation
-here <https://docker-py.readthedocs.io/en/latest/>`__. The source is
-available in the ``docs/`` directory.
-
-License
--------
-
-Docker is licensed under the Apache License, Version 2.0. See LICENSE
-for full license text
-
-.. |Build Status| image:: https://travis-ci.org/docker/docker-py.png
-   :target: https://travis-ci.org/docker/docker-py
-.. |Documentation Status| image:: https://readthedocs.org/projects/docker-py/badge/?version=latest
-   :target: https://readthedocs.org/projects/docker-py/?badge=latest
-
-