docs: def _get_machines_cache_from_srv(self, srv):
          """Fetch list of etcd-cluster member by resolving _etcd-server._tcp. SRV record.
          This record should contain list of host and peer ports which could be used to run
          'GET http://{host}:{port}/members' request (peer protocol)"""
  
          ret = []
          for r in ['-client-ssl', '-client', '-ssl', '', '-server-ssl', '-server']:
              protocol = 'https' if '-ssl' in r else 'http'
              endpoint = '/members' if '-server' in r else ''
              for host, port in self.get_srv_record('_etcd{0}._tcp.{1}'.format(r, srv)):
                  url = uri(protocol, host, port, endpoint)
                  if endpoint:
                      try:
                          response = requests.get(url, timeout=self.read_timeout, verify=False)
                          if response.ok:
                              for member in response.json():
                                  ret.extend(member['clientURLs'])
                              break
                      except RequestException:
                          logger.exception('GET %s', url)
                  else:
                      ret.append(url)
              if ret:
                  self._protocol = protocol
                  break
          else:
              logger.warning('Can not resolve SRV for %s', srv)
          return list(set(ret))