docs: def isLoggedOn(rh, userid):
      """
      Determine whether a virtual machine is logged on.
  
      Input:
         Request Handle:
            userid being queried
  
      Output:
         Dictionary containing the following:
            overallRC - overall return code, 0: success, non-zero: failure
            rc        - 0: if we got status.  Otherwise, it is the
                          error return code from the commands issued.
            rs        - Based on rc value.  For rc==0, rs is:
                        0: if we determined it is logged on.
                        1: if we determined it is logged off.
      """
  
      rh.printSysLog("Enter vmUtils.isLoggedOn, userid: " + userid)
  
      results = {
                'overallRC': 0,
                'rc': 0,
                'rs': 0,
               }
  
      cmd = ["sudo", "/sbin/vmcp", "query", "user", userid]
      strCmd = ' '.join(cmd)
      rh.printSysLog("Invoking: " + strCmd)
      try:
          subprocess.check_output(
              cmd,
              close_fds=True,
              stderr=subprocess.STDOUT)
      except CalledProcessError as e:
          search_pattern = '(^HCP\w\w\w045E|^HCP\w\w\w361E)'.encode()
          match = re.search(search_pattern, e.output)
          if match:
              # Not logged on
              results['rs'] = 1
          else:
              # Abnormal failure
              rh.printLn("ES", msgs.msg['0415'][1] % (modId, strCmd,
                  e.returncode, e.output))
              results = msgs.msg['0415'][0]
              results['rs'] = e.returncode
      except Exception as e:
          # All other exceptions.
          results = msgs.msg['0421'][0]
          rh.printLn("ES", msgs.msg['0421'][1] % (modId, strCmd,
              type(e).__name__, str(e)))
  
      rh.printSysLog("Exit vmUtils.isLoggedOn, overallRC: " +
          str(results['overallRC']) + " rc: " + str(results['rc']) +
          " rs: " + str(results['rs']))
      return results