Exemple #1
0
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
Exemple #2
0
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
Exemple #3
0
 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)
Exemple #4
0
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 []
Exemple #5
0
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.
Exemple #6
0
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.
Exemple #7
0
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)]