code: def iterate_nodes(self, key, distinct=True):
          
          if not self.runtime._ring:
              yield None
          else:
              for node in self.range(key, unique=distinct):
                  yield node['nodename']
docs: hash_ring compatibility implementation.
  
          Given a string key it returns the nodes as a generator that
          can hold the key.
          The generator iterates one time through the ring
          starting at the correct position.
          if `distinct` is set, then the nodes returned will be unique,
          i.e. no virtual copies will be returned.