def request(self, requestData, **kwArgs):
        """
        Process a request.

        Input:
           Request as either a string or a list.
           captureLogs=<True|False>
              Enables or disables log capture per request.
              This overrides the value from SMT.
           requestId=<id> to pass a value for the request Id instead of
              using one generated by SMT.

        Output:
           Dictionary containing the results.  See ReqHandle.buildReturnDict()
              for information on the contents of the dictionary.
        """

        self.reqCnt = self.reqCnt + 1

        # Determine whether the request will be capturing logs
        if 'captureLogs' in kwArgs.keys():
            logFlag = kwArgs['captureLogs']
        else:
            logFlag = self.captureLogs

        # Pass along or generate a request Id
        if 'requestId' in kwArgs.keys():
            requestId = kwArgs['requestId']
        else:
            requestId = str(self.reqIdPrefix) + str(self.reqCnt)

        rh = ReqHandle(
            requestId=requestId,
            captureLogs=logFlag,
            smt=self)

        rh.parseCmdline(requestData)
        if rh.results['overallRC'] == 0:
            rh.printSysLog("Processing: " + rh.requestString)
            rh.driveFunction()

        return rh.results
Process a request.

        Input:
           Request as either a string or a list.
           captureLogs=<True|False>
              Enables or disables log capture per request.
              This overrides the value from SMT.
           requestId=<id> to pass a value for the request Id instead of
              using one generated by SMT.

        Output:
           Dictionary containing the results.  See ReqHandle.buildReturnDict()
              for information on the contents of the dictionary.