docs: def waitForOSState(rh, userid, desiredState, maxQueries=90, sleepSecs=5):
      """
      Wait for the virtual OS to go into the indicated state.
  
      Input:
         Request Handle
         userid whose state is to be monitored
         Desired state, 'up' or 'down', case sensitive
         Maximum attempts to wait for desired state before giving up
         Sleep duration between waits
  
      Output:
         Dictionary containing the following:
            overallRC - overall return code, 0: success, non-zero: failure
            rc        - RC returned from execCmdThruIUCV if overallRC = 0.
            rs        - RS returned from execCmdThruIUCV if overallRC = 0.
            errno     - Errno returned from execCmdThruIUCV if overallRC = 0.
            response  - Updated with an error message if wait times out.
  
      Note:
  
      """
  
      rh.printSysLog("Enter vmUtils.waitForOSState, userid: " + userid +
                             " state: " + desiredState +
                             " maxWait: " + str(maxQueries) +
                             " sleepSecs: " + str(sleepSecs))
  
      results = {}
  
      strCmd = "echo 'ping'"
      stateFnd = False
  
      for i in range(1, maxQueries + 1):
          results = execCmdThruIUCV(rh, rh.userid, strCmd)
          if results['overallRC'] == 0:
              if desiredState == 'up':
                  stateFnd = True
                  break
          else:
              if desiredState == 'down':
                  stateFnd = True
                  break
  
          if i < maxQueries:
              time.sleep(sleepSecs)
  
      if stateFnd is True:
          results = {
                  'overallRC': 0,
                  'rc': 0,
                  'rs': 0,
              }
      else:
          maxWait = maxQueries * sleepSecs
          rh.printLn("ES", msgs.msg['0413'][1] % (modId, userid,
              desiredState, maxWait))
          results = msgs.msg['0413'][0]
  
      rh.printSysLog("Exit vmUtils.waitForOSState, rc: " +
          str(results['overallRC']))
      return results