code: def add_remote_provider(self, provider, client, path):
          
          if provider not in constants.SUPPORTED_REMOTE_PROVIDERS:
              raise errors.UnsupportedRemoteProviderError(provider)
  
          host = ""
          if provider == "etcd":
              host = "{0}://{1}:{2}".format(client.protocol, client.host,
                                            client.port)
          elif provider == "consul":
              host = "{0}://{1}:{2}".format(client.http.scheme, client.http.host,
                                            client.http.port)
          elif provider == "zookeeper":
              host = ",".join(
                  str("{0}:{1}".format(h[0], h[1])) for h in client.hosts)
  
          log.info("Adding {0}:{1} to remote provider list".format(
              provider, host))
  
          rp = remote.RemoteProvider(provider, client, path, self)
          if not self._provider_path_exists(rp):
              self._remote_providers.append(rp)
docs: Adds a remote configuration source.
          Remote Providers are searched in the order they are added.
          provider is a string value, "etcd", "consul" and "zookeeper" are
          currently supported.
          client is a client object
          path is the path in the k/v store to retrieve configuration
          To retrieve a config file called myapp.json from /configs/myapp.json
          you should set path to /configs and set config name (set_config_name)
          to "myapp"