code: def __new_request_id(self):
          
          while True:
              # Since seqnum wraps on 2^64 at most, this should always fit into 32 chars (QAPI request id limit)
              with self.__seqnum_lock:
                  requestId = "%s%d" % (self.__reqpre, self.__reqnum)
              self.__reqnum += 1
              if requestId not in self.__requests:
                  break
              # in the unlikely event of a collision update prefix
              self.__reqpre = self.__rnd_string(6)
          return requestId
docs: requestId follows form "pre num" where pre is some random ascii prefix EG 6 chars long
          and num is an ever increasing number (self.__reqnum). MUST be called within self.__requests lock