def dig(logger, defaultserver=None, server=None, query=None): if server in (None, u''): assert defaultserver is not None server = defaultserver if query in (None, u''): cmd = ('/usr/bin/dig', '@' + server) else: cmd = ('/usr/bin/dig', query, '@' + server) #except ProcessError process = createProcess(logger, cmd, stdout=PIPE, stderr=PIPE, env={}) return_code = process.wait() if return_code != 0: if return_code == 9: raise ResolvError("Unreachable server") stderr = readProcessOutput(process.stderr, 10) errmsg = '\n'.join(stderr) raise ResolvError(errmsg) stdout = readProcessOutput(process.stdout, 500) return stdout
def readKeytab(logger, keytab_filename): #check the file syntaxically: cmd = ('/usr/sbin/ktutil', '-k', keytab_filename, 'list') #except ProcessError process = createProcess(logger, cmd, stdout=PIPE, stderr=PIPE, env={}) return_code = process.wait() if return_code != 0: stderr = readProcessOutput(process.stderr, -1) raise NuauthException(INVALID_KEYTAB, "This keytab is unparseable:%s" % stderr) stdout = readProcessOutput(process.stdout, -1) return stdout
def apply(self): process = createProcess(self, self.arguments, stdout=PIPE, stderr=STDOUT) exitcode = waitProcess(self, process, TIMEOUT) if exitcode: lines = readProcessOutput(process.stdout, 100) lines = u'\n\n' + u'\n'.join(lines) raise RulesetError(tr("Ruleset script error (exitcode %s):%s"), exitcode, lines)
def vpn_support_last(logger): command = ["/bin/grep", "(sshd:session): session", "/var/log/auth.log"] process = createProcess(logger, command, stdout=subprocess.PIPE) return_code = process.wait() if return_code == 0: return readProcessOutput(process.stdout, 100) else: return []
def total_space_partition(logger, partition): process = createProcess(logger, ["df", "-P", partition], stdout=subprocess.PIPE, locale=False) exit_code = process.wait() if exit_code != 0: return False # Failure. value = readProcessOutput(process.stdout, 2) if len(value) < 2: return False # Failure. try: return int(value[1].split()[1]) * 1024 except Exception: return False # Failure.
def refresh_var_log(system_data, logger): # "df -P /var/log | sed -n '2s/.*\s\([0-9]\+\)%.*/\1/p'" process = createProcess(logger, ["df", "-P", "/var/log"], stdout=subprocess.PIPE, locale=False) exit_code = process.wait() if exit_code != 0: return False # Failure. value = readProcessOutput(process.stdout, 2) if len(value) < 2: return False # Failure. m = var_log_re.search(value[1]) if not m: return False # Failure. system_data["var_log"] = int(m.group(1)) return True # Success.
def getVpnSupportStatusAndIP(logger): process = createProcess(logger, "/usr/share/ufwi_rpcd/scripts/vpn_support_status_and_ip", stdout=subprocess.PIPE) # FIXME: use communicateProcess() with a timeout return_code = process.wait() if return_code == 0: return [line.strip() for line in readProcessOutput(process.stdout, 2)]