def search_keys(self, query, keyserver='pgp.mit.edu'):

        args = ['--fixed-list-mode', '--fingerprint', '--with-colons',
                '--keyserver', shell_quote(keyserver), '--search-keys',
                shell_quote(query)]
        p = self._open_subprocess(args)

        # Get the response information
        result = self.result_map['search'](self)
        self._collect_output(p, result, stdin=p.stdin)
        lines = result.data.decode(self.encoding,
                                   self.decode_errors).splitlines()
        valid_keywords = ['pub', 'uid']
        for line in lines:
            if self.verbose:
                print(line)
            logger.debug('line: %r', line.rstrip())
            if not line:    # sometimes get blank lines on Windows
                continue
            L = line.strip().split(':')
            if not L:
                continue
            keyword = L[0]
            if keyword in valid_keywords:
                getattr(result, keyword)(L)
        return result
Instructs the AppController to collect logs across all machines, place
dataset/ETHPy150Open buanzo/jiffy/gnupg.py/GPG.search_keys--crossover with--dataset/ETHPy150Open AppScale/appscale/AppDashboard/dashboard.py/LogDownloader.get