def discover_config(self, config, name='<STR_LIT>'):
pass<EOL>
Fill in missing values in `config` from the environment.

        This can literally look in :attr:`os.environ` to pick up values
        such as ``$TMPDIR``, or values published from a container system
        such as `Docker <http://www.docker.com/>`_.  It could also
        look at an external system, such as `Apache ZooKeeper
        <http://zookeeper.apache.org/>`_ or `CoreOS etcd
        <https://coreos.com/docs/distributed-configuration/etcd-api/>`_
        to find information such as what systems exist in the cluster.

        This method should limit itself to filling in missing values.
        It should modify `config` in place.  The framework will call
        this method once, walking the configurable tree for you.
        `config` will not have default values applied to it at this
        point.  If :meth:`replace_config` is also implemented, this
        method will be called only on the new object returned by
        :meth:`replace_config`.  Implementations of this method should
        be careful to trap exceptions; failure to reach an external
        configuration management system should not break initial
        configuration.

        :param dict config: configuration of this object and its
          children (read/write, does not include defaults)
        :param str name: name of the configuration block