diff --git a/.gitignore b/.gitignore index 10d98990..69a8ea98 100644 --- a/.gitignore +++ b/.gitignore @@ -11,5 +11,8 @@ doc/man/man7/cdist-type__*.text doc/man/man7/cdist-reference.text doc/man/man*/docbook-xsl.css -# Ignore cache for version control -cache/ +# Ignore cdist cache for version control +/cache/ + +# Python / cache +__pycache__/ diff --git a/HACKERS_README b/HACKERS_README deleted file mode 100755 index ad3fe3fd..00000000 --- a/HACKERS_README +++ /dev/null @@ -1,40 +0,0 @@ -cat << eof - -Hey hackers, - -this README is for you, for those who want to dig into cdist, hack it or try -to get a deeper understanding. Please read doc/man/man7/cdist-hacker.text. - -I hope you have a lot of fun with cdist, because it was also a lot of fun to -develop it! - - -- Nico, 20110324 - -## Running cdist when developing - -This file is suitable for execution and saving the objects and -explorers from cdist. I usually do it like this: - - % ./HACKERS_README - -################################################################################ -eof - -set -x -# Tell the user what we do, so this script makes sense during execution - -# prepare use (only from top level directory) -export PATH="$(pwd -P)/bin:$PATH" -export __cdist_conf_dir="$(pwd -P)/conf" - -# Allow user to supply hostname -target="${1:-localhost}" - -# And use hostname as basedir (dangerous, but hackers know what they do) -export __cdist_local_base_dir="/tmp/$target" - -# Run the real script -cdist-deploy-to "$target" - -# Display results -find "${__cdist_local_base_dir}" diff --git a/README b/README index 635d381d..35a25099 100644 --- a/README +++ b/README @@ -15,7 +15,7 @@ "P' "" "" -[[!toc levels=2]] +[[!toc levels=3]] ## Introduction @@ -38,13 +38,13 @@ Design | Define target state, do not focus on methods or scripts Design | Push architecture: Instantly apply your changes Small core | cdist's core is very small - less code, less bugs Fast development | Focus on straightforwardness of type creation is a main development objective +Modern Programming Language | cdist is written in Python Requirements, Scalability | No central server needed, cdist operates in push mode and can be run from any computer Requirements, Scalability, Upgrade | cdist only needs to be updated on the master, not on the target hosts Requirements, Security | Uses well-know [SSH](http://www.openssh.com/) as transport protocol Requirements, Simplicity | Requires only shell and SSH server on the target UNIX | Reuse of existing tools like cat, find, mv, ... UNIX, familar environment, documentation | Is available as manpages and HTML -UNIX, simplicity, familar environment | cdist is written in POSIX shell UNIX, simplicity, familar environment | cdist is configured in POSIX shell """]] @@ -53,8 +53,6 @@ UNIX, simplicity, familar environment | cdist is configured in POSIX shell The cdist documentation is included as manpages in the distribution. * You can [browse the documentation of the latest version online](man) as well. - * Or you can watch the youtube **video** -[cdist installation and first usage in less than 60 seconds][http://www.youtube.com/watch?v=PRMjzy48eTI). * Have a look at the [given speeches](speeches) ### OS support @@ -63,12 +61,14 @@ cdist was tested or is know to run on at least * [Archlinux](http://www.archlinux.org/) * [Debian](http://www.debian.org/) + * [CentOS](http://www.centos.org/) * [Fedora](http://fedoraproject.org/) * [Gentoo](http://www.gentoo.org/) * [Mac OS X](http://www.apple.com/macosx/) * [OpenBSD](http://www.openbsd.org) * [Redhat](http://www.redhat.com/) * [Ubuntu](http://www.ubuntu.com/) + * [XenServer](http://www.citrix.com/xenserver/) ## Requirements @@ -76,7 +76,9 @@ cdist was tested or is know to run on at least ### Server * A posix like shell + * Python (>= 3.2 required) * SSH-Client + * Asciidoc (for building the manpages) ### Client ("target host") @@ -84,21 +86,54 @@ cdist was tested or is know to run on at least * SSH-Server -## Getting cdist +## Installation + +### Preperation + +Ensure you have Python 3.x and the **argparse** module installed on +the machine you use to **deploy to the targets**. + +#### Archlinux + +Archlinux already has python >= 3.2, so you only need to do: + + pacman -S python + +#### Debian + + aptitude install python3 python3-setuptools + easy_install3 argparse + + +#### Gentoo + +Gentoo only provides python 3.2 in testing packages (http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3&chap=3). +If you want to ensure nothing breaks you must set back the python version to what was default before. + + emerge -av =python-3.2.2 --autounmask-write + emerge -av =python-3.2.2 + eselect python list + eselect python list set python3.2 + +#### Max OS X + +Ensure you have port installed and configured (http://www.macports.org/install.php). + + port install python32 + ln -s /opt/local/bin/python3.2 /opt/local/bin/python3 + +### Get cdist You can clone cdist from git, which gives you the advantage of having a version control in place for development of your own stuff as well. - -### Installation - To install cdist, execute the following commands: git clone git://git.schottelius.org/cdist cd cdist export PATH=$PATH:$(pwd -P)/bin - # If you want the manpages (requires gmake and asciidoc to be installed) - ./build.sh man + # If you want the manpages + ./build man export MANPATH=$MANPATH:$(pwd -P)/doc/man @@ -109,11 +144,12 @@ how to use cdist. There are at least the following branches available: - * master: the development branch - * 1.7: Bugfixes, cleanups, new type and explorer rename + * Development: master + * 2.0: Python rewrite of cdist core Old versions: + * 1.7: Bugfixes, cleanups, new type and explorer rename * 1.6: New types, cleaned up \_\_package* types, internal cleanup * 1.5: Focus on object orientation instead of global stage orientation * 1.4: Support for redefiniton of objects (if equal) @@ -129,13 +165,13 @@ may vanish at any point. To select a specific branch use git checkout -b origin/ # Stay on a specific version - version=1.7 + version=2.0 git checkout -b $version origin/$version ### Mirrors * git://github.com/telmich/cdist.git ([github](https://github.com/telmich/cdist)) - * git://git.sans.ethz.ch/cdist ([sans](http://git.sans.ethz.ch/?p=cdist;a=summary)) + * git://git.code.sf.net/p/cdist/code ([sourceforge](https://sourceforge.net/p/cdist/code)) ## Update @@ -144,13 +180,21 @@ To upgrade cdist in the current branch use git pull # Also update the manpages - ./build.sh man + ./build man export MANPATH=$MANPATH:$(pwd -P)/doc/man If you stay on a version branche (i.e. 1.0, 1.1., ...), nothing should break. The master branch on the other hand is the development branch and may not be working, break your setup or eat the tree in your garden. +### Upgrading from 1.7 to 2.0 + +* Ensure python (>= 3.2) is installed on the server +* Use "cdist config host" instead of "cdist-deploy-to host" +* Use "cdist config -p host1 host2" instead of "cdist-mass-deploy" +* Use "cdist banner" for fun +* Use **\_\_object_fq** instead of **\_\_self** in manifests + ### Upgrading from 1.6 to 1.7 * If you used the global explorer **hardware_type**, you need to change diff --git a/bin/cdist b/bin/cdist new file mode 100755 index 00000000..06e82cc9 --- /dev/null +++ b/bin/cdist @@ -0,0 +1,234 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +def commandline(): + """Parse command line""" + import argparse + + import cdist.banner + import cdist.config + import cdist.install + + # Construct parser others can reuse + parser = {} + # Options _all_ parsers have in common + parser['loglevel'] = argparse.ArgumentParser(add_help=False) + parser['loglevel'].add_argument('-d', '--debug', + help='Set log level to debug', action='store_true', + default=False) + parser['loglevel'].add_argument('-v', '--verbose', + help='Set log level to info, be more verbose', + action='store_true', default=False) + + # Main subcommand parser + parser['main'] = argparse.ArgumentParser(description='cdist ' + cdist.VERSION, + parents=[parser['loglevel']]) + parser['main'].add_argument('-V', '--version', + help='Show version', action='version', + version='%(prog)s ' + cdist.VERSION) + parser['sub'] = parser['main'].add_subparsers(title="Commands") + + # Banner + parser['banner'] = parser['sub'].add_parser('banner', + parents=[parser['loglevel']]) + parser['banner'].set_defaults(func=cdist.banner.banner) + + # Config and install (common stuff) + parser['configinstall'] = argparse.ArgumentParser(add_help=False) + parser['configinstall'].add_argument('host', nargs='+', + help='one or more hosts to operate on') + parser['configinstall'].add_argument('-c', '--cdist-home', + help='Change cdist home (default: .. from bin directory)', + action='store') + parser['configinstall'].add_argument('-i', '--initial-manifest', + help='Path to a cdist manifest or \'-\' to read from stdin.', + dest='manifest', required=False) + parser['configinstall'].add_argument('-p', '--parallel', + help='Operate on multiple hosts in parallel', + action='store_true', dest='parallel') + parser['configinstall'].add_argument('-s', '--sequential', + help='Operate on multiple hosts sequentially (default)', + action='store_false', dest='parallel') + + # Config + parser['config'] = parser['sub'].add_parser('config', + parents=[parser['loglevel'], parser['configinstall']]) + parser['config'].set_defaults(func=config) + + # Install + parser['install'] = parser['sub'].add_parser('install', + parents=[parser['loglevel'], parser['configinstall']]) + parser['install'].set_defaults(func=install) + + for p in parser: + parser[p].epilog = "Get cdist at http://www.nico.schottelius.org/software/cdist/" + + args = parser['main'].parse_args(sys.argv[1:]) + + # Loglevels are handled globally in here and debug wins over verbose + if args.verbose: + logging.root.setLevel(logging.INFO) + if args.debug: + logging.root.setLevel(logging.DEBUG) + + log.debug(args) + args.func(args) + +def config(args): + configinstall(args, mode=cdist.config.Config) + +def install(args): + configinstall(args, mode=cdist.install.Install) + +def configinstall(args, mode): + """Configure or install remote system""" + import multiprocessing + import time + + initial_manifest_tempfile = None + if args.manifest == '-': + # read initial manifest from stdin + import tempfile + handle, initial_manifest_temp_path = tempfile.mkstemp(prefix='cdist.stdin.') + with os.fdopen(handle, 'w') as fd: + fd.write(sys.stdin.read()) + args.manifest = initial_manifest_temp_path + import atexit + atexit.register(lambda: os.remove(initial_manifest_temp_path)) + + try: + process = {} + failed_hosts = [] + time_start = time.time() + + for host in args.host: + if args.parallel: + log.debug("Creating child process for %s", host) + process[host] = multiprocessing.Process(target=configinstall_onehost, args=(host, args, mode, True)) + process[host].start() + else: + if not configinstall_onehost(host, args, mode, parallel=False): + failed_hosts.append(host) + + if args.parallel: + for p in process.keys(): + log.debug("Joining process %s", p) + process[p].join() + + if not process[p].exitcode == 0: + failed_hosts.append(p) + + if len(failed_hosts) > 0: + log.warn("Failed to deploy to the following hosts: " + + " ".join(failed_hosts)) + + time_end = time.time() + log.info("Total processing time for %s host(s): %s", len(args.host), + (time_end - time_start)) + + except KeyboardInterrupt: + if args.parallel: + for p in process.keys(): + # NOT needed: KeyBoardInterrupet (aka SIGINT) + # is forwarded to processes spawned by multiprocess! + # pid = process[p].pid.__str__() + #log.warn("Terminating deploy " + p + " (" + pid + ")") + # process[p].terminate() + pass + + sys.exit(0) + + +def configinstall_onehost(host, args, mode, parallel): + """Configure or install ONE remote system""" + + try: + import cdist.context + + context = cdist.context.Context( + target_host=host, + initial_manifest=args.manifest, + base_path=args.cdist_home, + exec_path=sys.argv[0], + debug=args.debug) + + c = mode(context) + c.deploy_and_cleanup() + context.cleanup() + + except cdist.Error as e: + log.error(e) + return False + except KeyboardInterrupt: + # Do not care in sequential mode, catch in parallel mode + if not parallel: + raise + else: + # Catch here, above does not need to know about our errors + return False + + return True + +def emulator(): + """Prepare and run emulator""" + try: + import cdist.emulator + emulator = cdist.emulator.Emulator(sys.argv) + emulator.run() + + except cdist.Error as e: + log.error(e) + sys.exit(1) + +if __name__ == "__main__": + try: + import logging + import os + import re + import sys + + cdistpythonversion = '3.2' + if sys.version < cdistpythonversion: + print('Cdist requires Python >= ' + cdistpythonversion + + ' on the source host.') + sys.exit(1) + + # Ensure our /lib/ is included into PYTHON_PATH + sys.path.insert(0, os.path.abspath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), '../lib'))) + + # And now import our stuff + import cdist + + log = logging.getLogger("cdist") + + logging.basicConfig(format='%(levelname)s: %(message)s') + + if re.match("__", os.path.basename(sys.argv[0])): + emulator() + else: + commandline() + + except KeyboardInterrupt: + sys.exit(0) + + sys.exit(0) diff --git a/bin/cdist-code-run b/bin/cdist-code-run deleted file mode 100755 index 3d7499bf..00000000 --- a/bin/cdist-code-run +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This binary is executed on the remote side to execute code -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -ue - -__cdist_object_self="$1"; shift -__cdist_code_type="$1"; shift - -if [ ! -d "$(__cdist_object_dir "$__cdist_object_self")" ]; then - __cdist_exit_err "Object undefined" -fi - -__cdist_code="$(__cdist_object_code "$__cdist_object_self" "${__cdist_code_type}")" - -__cdist_echo info "Checking code-${__cdist_code_type}" - -if [ -e "$__cdist_code" ]; then - if [ -f "$__cdist_code" ]; then - if [ -x "$__cdist_code" ]; then - __cdist_echo info "Executing code-${__cdist_code_type}" - __cdist_exec_fail_on_error "$__cdist_code" - else - __cdist_exit_err "$__cdist_code exists, but is not executable." - fi - else - __cdist_exit_err "$__cdist_code exists, but is not a file." - fi -fi diff --git a/bin/cdist-config b/bin/cdist-config deleted file mode 100644 index 88e3068f..00000000 --- a/bin/cdist-config +++ /dev/null @@ -1,438 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# - -__cdist_version="1.7.0" - -# Fail if something bogus is going on -set -u - -################################################################################ -# cconf standard vars prefixed with cdist - -__cdist_pwd="$(pwd -P)" -__cdist_mydir="${0%/*}"; -__cdist_abs_mydir="$(cd "$__cdist_mydir" && pwd -P)" -__cdist_myname=${0##*/}; -__cdist_abs_myname="$__cdist_abs_mydir/$__cdist_myname" - -################################################################################ -# Names / Constants -# -# Most values can be overriden from outside, so you can -# customise paths as you like (for distributors, geeks and hackers) -# - -: ${__cdist_name_bin:=bin} -: ${__cdist_name_cache:=cache} -: ${__cdist_name_code:=code} -: ${__cdist_name_conf_dir:=conf} -: ${__cdist_name_dot_cdist:=.cdist} -: ${__cdist_name_explorer:=explorer} -: ${__cdist_name_gencode:=gencode} -: ${__cdist_name_gencode_local:=local} -: ${__cdist_name_gencode_remote:=remote} -: ${__cdist_name_global:=global} -: ${__cdist_name_host:=host} -: ${__cdist_name_init:=init} -: ${__cdist_name_manifest:=manifest} -: ${__cdist_name_object:=object} -: ${__cdist_name_object_finished:=done} -: ${__cdist_name_object_prepared:=prepared} -: ${__cdist_name_object_id:=object_id} -: ${__cdist_name_object_source:=source} -: ${__cdist_name_objects_created:=.objects_created} -: ${__cdist_name_out_dir:=out} -: ${__cdist_name_parameter:=parameter} -: ${__cdist_name_parameter_required:=required} -: ${__cdist_name_parameter_optional:=optional} -: ${__cdist_name_require:=require} -: ${__cdist_name_self:=self} -: ${__cdist_name_singleton:=singleton} -: ${__cdist_name_target_host:=target_host} -: ${__cdist_name_target_user:=target_user} -: ${__cdist_name_type:=type} -: ${__cdist_name_type_bin:=type_bin} -: ${__cdist_name_type_explorer:=type_explorer} -: ${__cdist_name_type_explorer_pushed:=.explorer_pushed} - -# Used for IDs: Allow everything not starting with - and . -: ${__cdist_sane_regexp:=[^-\.].*} - -# Default remote user -: ${__cdist_remote_user:=root} - - -################################################################################ -# Exported variable names (usable for non core -# -: ${__cdist_name_var_explorer:=__$__cdist_name_explorer} -: ${__cdist_name_var_type_explorer:=__$__cdist_name_type_explorer} -: ${__cdist_name_var_global:=__$__cdist_name_global} -: ${__cdist_name_var_manifest:=__$__cdist_name_manifest} -: ${__cdist_name_var_target_host:=__$__cdist_name_target_host} -: ${__cdist_name_var_target_user:=__$__cdist_name_target_user} -: ${__cdist_name_var_object:=__$__cdist_name_object} -: ${__cdist_name_var_object_id:=__$__cdist_name_object_id} -: ${__cdist_name_var_self:=__$__cdist_name_self} -: ${__cdist_name_var_type:=__$__cdist_name_type} - - -################################################################################ -# Tempfiles -# -: ${__cdist_tmp_base_dir=/tmp} -__cdist_tmp_dir=$(mktemp -d "$__cdist_tmp_base_dir/cdist.XXXXXXXXXXXX") -__cdist_tmp_file=$(mktemp "$__cdist_tmp_dir/cdist.XXXXXXXXXXXX") - -################################################################################ -# Local Base -# -: ${__cdist_local_base_dir:=$__cdist_tmp_dir} - -# Cache may *NOT* be below __cdist_local_base_dir! -: ${__cdist_local_base_cache_dir:=$__cdist_abs_mydir/../$__cdist_name_cache} - -: ${__cdist_conf_dir:="$(cd "$__cdist_abs_mydir/../conf" && pwd -P)"} - -: ${__cdist_explorer_dir:=$__cdist_conf_dir/$__cdist_name_explorer} -: ${__cdist_manifest_dir:=$__cdist_conf_dir/$__cdist_name_manifest} -: ${__cdist_manifest_init:=$__cdist_manifest_dir/$__cdist_name_init} -: ${__cdist_type_dir:=$__cdist_conf_dir/$__cdist_name_type} - -################################################################################ -# Local output -# -: ${__cdist_out_dir:=$__cdist_local_base_dir/$__cdist_name_out_dir} -: ${__cdist_out_explorer_dir:=$__cdist_out_dir/$__cdist_name_explorer} -: ${__cdist_out_object_dir:=$__cdist_out_dir/$__cdist_name_object} -: ${__cdist_out_type_dir:=$__cdist_out_dir/$__cdist_name_type} -: ${__cdist_out_type_bin_dir:=$__cdist_out_dir/$__cdist_name_type_bin} - -: ${__cdist_objects_created:=$__cdist_out_object_dir/$__cdist_name_objects_created} - -################################################################################ -# Remote base -# -: ${__cdist_remote_base_dir:=/var/lib/cdist} -: ${__cdist_remote_bin_dir:=$__cdist_remote_base_dir/$__cdist_name_bin} -: ${__cdist_remote_conf_dir:=$__cdist_remote_base_dir/$__cdist_name_conf_dir} - -: ${__cdist_remote_explorer_dir:=$__cdist_remote_conf_dir/$__cdist_name_explorer} -: ${__cdist_remote_type_dir:=$__cdist_remote_conf_dir/$__cdist_name_type} - -################################################################################ -# Remote output -# -: ${__cdist_remote_out_dir:=$__cdist_remote_base_dir/$__cdist_name_out_dir} -: ${__cdist_remote_out_explorer_dir:=$__cdist_remote_out_dir/$__cdist_name_explorer} -: ${__cdist_remote_out_object_dir:=$__cdist_remote_out_dir/$__cdist_name_object} - - -################################################################################ -# Internal functions -# -__cdist_echo() -{ - __cdist_echo_type="$1"; shift - - set +u - if [ "$__cdist_object_self" ]; then - __cdist_echo_prefix="${__cdist_object_self}:" - else - __cdist_echo_prefix="core: " - fi - set -u - - case "$__cdist_echo_type" in - debug) - set +u - if [ "$__cdist_debug" ]; then - echo $__cdist_echo_prefix "Debug: $@" - fi - set -u - ;; - info) - echo $__cdist_echo_prefix "$@" - ;; - warn) - echo $__cdist_echo_prefix "Warning: $@" - ;; - error) - echo $__cdist_echo_prefix "Error: $@" >&2 - ;; - *) - echo "CORE BUG, who created the broken commit in $0?" >&2 - exit 23 - ;; - esac -} - -__cdist_exec_fail_on_error() -{ - set +e - sh -e "$@" - if [ "$?" -ne 0 ]; then - __cdist_echo error "$1 exited non-zero" - __cdist_echo warn "Faulty code:" - cat "$1" - __cdist_exit_err "Aborting due to non-zero exit code." - fi -} - -__cdist_exit_err() -{ - __cdist_echo error "$@" - exit 1 -} - -__cdist_usage() -{ - __cdist_exit_err "$__cdist_myname: $@" -} - -__cdist_init_deploy() -{ - __cdist_echo info "Creating clean directory structure " - - # Ensure there is no old stuff, neither local nor remote - rm -rf "$__cdist_local_base_dir" - ssh "${__cdist_remote_user}@$1" "rm -rf ${__cdist_remote_base_dir}" - - # Init base - mkdir -p "$__cdist_local_base_dir" - ssh "${__cdist_remote_user}@$1" "mkdir -p ${__cdist_remote_base_dir}" - - # Link configuration source directory - consistent with remote - ln -sf "$__cdist_conf_dir" "$__cdist_local_base_dir/$__cdist_name_conf_dir" -} - -################################################################################ -# Cache -# -__cdist_cache_dir() -{ - cd "${__cdist_local_base_cache_dir}" && pwd -P -} - -__cdist_host_cache_dir() -{ - echo "$(__cdist_cache_dir)/$1" -} - -################################################################################ -# Object -# - -__cdist_object_code() -{ - echo "$(__cdist_object_dir "$1")/${__cdist_name_code}-$2" -} - -__cdist_object_prepared() -{ - echo "$(__cdist_object_dir "$1")/${__cdist_name_object_prepared}" -} - -__cdist_object_finished() -{ - echo "$(__cdist_object_dir "$1")/${__cdist_name_object_finished}" -} - -__cdist_object_dir() -{ - echo "$(__cdist_object_base_dir "$1")/${__cdist_name_dot_cdist}" -} - -__cdist_object_base_dir() -{ - echo "${__cdist_out_object_dir}/$1" -} - - -__cdist_object_id_from_object() -{ - echo "${1#*/}" -} - -# Find objects, remove ./ and /MARKER -__cdist_object_list() -{ - local basedir="$1"; shift - - # Use subshell to prevent changing cwd in program - ( - cd "${basedir}" - - find . -name "$__cdist_name_dot_cdist" | \ - sed -e 's;^./;;' -e "s;/${__cdist_name_dot_cdist}\$;;" - ) -} - -__cdist_object_parameter_dir() -{ - echo "$(__cdist_object_dir "$1")/${__cdist_name_parameter}" -} - -__cdist_object_require() -{ - echo "$(__cdist_object_dir "$1")/${__cdist_name_require}" -} - -__cdist_object_source_name() -{ - echo "$1/${__cdist_name_object_source}" -} - -__cdist_object_source() -{ - cat "$(__cdist_object_source_name "$1")" -} - -__cdist_object_source_add() -{ - echo "$__cdist_manifest" >> "$(__cdist_object_source_name "$1")" -} - -__cdist_object_type_explorer_dir() -{ - echo "$(__cdist_object_dir "$1")/${__cdist_name_explorer}" -} - -################################################################################ -# Remote -# - -__cdist_remote_object_base_dir() -{ - echo "${__cdist_remote_out_object_dir}/$1" -} - -__cdist_remote_object_dir() -{ - echo "$(__cdist_remote_object_base_dir "$1")/${__cdist_name_dot_cdist}" -} - -__cdist_remote_object_parameter_dir() -{ - echo "$(__cdist_remote_object_dir "$1")/${__cdist_name_parameter}" -} - -__cdist_remote_object_type_explorer_dir() -{ - echo "$(__cdist_remote_object_dir "$1")/${__cdist_name_explorer}" -} - - -__cdist_remote_type_explorer_dir() -{ - echo "${__cdist_remote_type_dir}/$1/${__cdist_name_explorer}" -} - - -################################################################################ -# Traps -# -__cdist_tmp_removal() -{ - rm -rf "${__cdist_tmp_dir}" -} - -# Does not work in children, will be called again in every script! -# Use only in interactive "front end" scripts -__cdist_kill_on_interrupt() -{ - __cdist_tmp_removal - kill 0 - exit 1 -} - -# Remove tempfiles at normal exit -trap __cdist_tmp_removal EXIT - - -################################################################################ -# Type -# -__cdist_type_dir() -{ - echo "${__cdist_type_dir}/$1" -} - -__cdist_type_explorer_dir() -{ - echo "${__cdist_type_dir}/$1/${__cdist_name_explorer}" -} - -__cdist_type_from_object() -{ - echo "${1%%/*}" -} - -__cdist_type_has_explorer() -{ - # We only create output, if there's at least one explorer - # and can thus be used as a boolean ;-) - if [ -d "$(__cdist_type_explorer_dir "$1")" ]; then - ls -1 "$(__cdist_type_explorer_dir "$1")" - fi -} - -__cdist_type_explorer_pushed() -{ - [ -f "${__cdist_out_type_dir}/${__cdist_name_type_explorer_pushed}" ] \ - && grep -x -q "$1" "${__cdist_out_type_dir}/${__cdist_name_type_explorer_pushed}" -} - -__cdist_type_explorer_pushed_add() -{ - [ -d "$__cdist_out_type_dir" ] || mkdir "$__cdist_out_type_dir" - echo "$1" >> "${__cdist_out_type_dir}/${__cdist_name_type_explorer_pushed}" -} - -__cdist_type_gencode() -{ - echo "${__cdist_type_dir}/$1/${__cdist_name_gencode}-$2" -} - -__cdist_type_manifest() -{ - echo "${__cdist_type_dir}/$1/${__cdist_name_manifest}" -} - -__cdist_type_parameter_dir() -{ - echo "$(__cdist_type_dir "$1")/${__cdist_name_parameter}" -} - -__cdist_type_parameter_optional() -{ - echo "$(__cdist_type_parameter_dir "$1")/$__cdist_name_parameter_optional" -} - -__cdist_type_parameter_required() -{ - echo "$(__cdist_type_parameter_dir "$1")/$__cdist_name_parameter_required" -} - -__cdist_type_singleton() -{ - echo "${__cdist_type_dir}/$1/${__cdist_name_singleton}" -} diff --git a/bin/cdist-deploy-to b/bin/cdist-deploy-to deleted file mode 100755 index bf5614bc..00000000 --- a/bin/cdist-deploy-to +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Deploy configuration to a host -# - -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -eu - -# Kill children on interrupt - only in interactive scripts -trap __cdist_kill_on_interrupt INT TERM - -__cdist_target_host="$1" - -# Make target host available for non-core -export $__cdist_name_var_target_host="$__cdist_target_host" -export $__cdist_name_var_target_user="$__cdist_remote_user" - -# Export variables for core, which others do not reset -export __cdist_local_base_dir - -__cdist_echo info "cdist $__cdist_version: Configuring $__cdist_target_host " - -################################################################################ -# See cdist-stages(7) -# - -# Prepare local and remote directories -__cdist_init_deploy "$__cdist_target_host" - -# Transfer cdist executables -__cdist_echo info "Transferring cdist binaries to the target host " -cdist-dir push "$__cdist_target_host" \ - "${__cdist_abs_mydir}" "${__cdist_remote_bin_dir}" -cdist-explorer-run-global "$__cdist_target_host" -cdist-manifest-run-init "$__cdist_target_host" -cdist-object-all "$__cdist_target_host" cdist-object-prepare -cdist-object-all "$__cdist_target_host" cdist-object-run -cdist-cache "$__cdist_target_host" - -__cdist_echo info "cdist $__cdist_version: Successfully finished run" diff --git a/bin/cdist-dir b/bin/cdist-dir deleted file mode 100755 index 0d30e14a..00000000 --- a/bin/cdist-dir +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Push a directory to a target, both sides have the same name (i.e. explorers) -# or -# Pull a directory from a target, both sides have the same name (i.e. explorers) -# - - -. cdist-config -[ $# -eq 4 ] || __cdist_usage " " -set -ue - -__cdist_action="$1"; shift -__cdist_target_host="$1"; shift -__cdist_src_dir="$1"; shift -__cdist_dst_dir="$1"; shift - -# This will be the destination directory, so no subdirectories -# of the same name are created, if the directory is already existing -__cdist_top_dir="${__cdist_dst_dir%/*}" - -if [ "$__cdist_action" = "push" ]; then - ssh "${__cdist_remote_user}@${__cdist_target_host}" \ - "mkdir -p \"${__cdist_dst_dir}\"" - scp -qr "$__cdist_src_dir" \ - "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_top_dir}" -elif [ "$__cdist_action" = "pull" ]; then - mkdir -p "${__cdist_dst_dir}" - scp -qr "${__cdist_remote_user}@${__cdist_target_host}:${__cdist_src_dir}" \ - "${__cdist_top_dir}" -else - __cdist_exit_err "Unknown action $__cdist_action" -fi diff --git a/bin/cdist-explorer-run-global b/bin/cdist-explorer-run-global deleted file mode 100755 index b0c024f2..00000000 --- a/bin/cdist-explorer-run-global +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Copy & run the global explorers, i.e. not bound to types -# - -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -ue - -__cdist_target_host="$1"; shift - -__cdist_echo info "Running global explorers " - -# copy the explorers -cdist-dir push "$__cdist_target_host" \ - "${__cdist_explorer_dir}" "${__cdist_remote_explorer_dir}" - -# run the initial explorers remotely -cdist-run-remote "${__cdist_target_host}" cdist-remote-explorer-run \ - "$__cdist_name_var_explorer" "$__cdist_remote_explorer_dir" \ - "$__cdist_remote_out_explorer_dir" - -# retrieve the results -cdist-dir pull "$__cdist_target_host" \ - "${__cdist_remote_out_explorer_dir}" "${__cdist_out_explorer_dir}" diff --git a/bin/cdist-manifest-run b/bin/cdist-manifest-run deleted file mode 100755 index d4ea18bb..00000000 --- a/bin/cdist-manifest-run +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# 2010 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Let's build a cconfig tree from a configuration -# And save it into the cache tree -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -u - -__cdist_target_host="$1"; shift -__cdist_manifest="$1"; shift - -################################################################################ -# Export information for cdist-type-emulator or manifest -# - -# Config dir should not get reset - FIXME: why did I do this? -export __cdist_conf_dir - -# Used to record the source in the object -export __cdist_manifest - -# Export information for manifests - __cdist_out_dir comes from cdist-config -export __global="$__cdist_out_dir" - -################################################################################ -# The actual run -# - -# Ensure binaries exist and are up-to-date -cdist-type-build-emulation "${__cdist_out_type_bin_dir}" \ - || __cdist_exit_err "Failed to build type emulation binaries" - -# prepend our path, so all cdist tools come before other tools -export PATH="${__cdist_out_type_bin_dir}:$PATH" - -__cdist_exec_fail_on_error "${__cdist_manifest}" diff --git a/bin/cdist-mass-deploy b/bin/cdist-mass-deploy deleted file mode 100755 index 5ebfa1c2..00000000 --- a/bin/cdist-mass-deploy +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Deploy configuration to many hosts -# - -. cdist-config -[ $# -ge 1 ] || __cdist_usage "[-p] [target host ]" -set -u - -# Kill children on interrupt - only in interactive scripts -trap __cdist_kill_on_interrupt INT TERM - -filter() -{ - awk -v host=$1 '{ print "[" host "] " $0 }' -} - -parallel="" -if [ "$1" = "-p" ]; then - parallel=yes - shift -fi - -i=0 -while [ $# -gt 0 ]; do - if [ "$parallel" ]; then - cdist-deploy-to "$1" | filter "$1" & - # Record pid and host for use later - i=$((i+1)) - eval pid_$i=$! - eval host_$i=\$1 - else - cdist-deploy-to "$1" | filter "$1" - fi - shift -done - -e=0 -if [ "$parallel" ]; then - __cdist_echo info "Waiting for cdist-deploy-to jobs to finish" - while [ "$i" -gt 0 ]; do - eval pid=\$pid_$i - wait "$pid" - if [ $? -ne 0 ]; then - e=$((e+1)) - eval e_host_$e=\$host_$i - fi - i=$((i-1)) - done -fi - -# Display all failed hosts after all runs are done, so the sysadmin gets them -while [ "$e" -gt 0 ]; do - eval host=\$host_$e - __cdist_echo error "Configuration of host $host failed." - e=$((e-1)) -done diff --git a/bin/cdist-object-all b/bin/cdist-object-all deleted file mode 100755 index 391c9cc7..00000000 --- a/bin/cdist-object-all +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Run the given command for each created object. -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu - -__cdist_target_host="$1"; shift -__cdist_command="$1"; shift - -__cdist_objects="$__cdist_tmp_dir/objects" - -# Ensure object dir exists, so marker can be created -mkdir -p "${__cdist_out_object_dir}" - -# Loop until we do not create new objects anymore -# which is equal to all objects have been run -touch "$__cdist_objects_created" -while [ -f "$__cdist_objects_created" ]; do - # Assume we're done after this run - rm "$__cdist_objects_created" - - # Get listing of objects - __cdist_object_list "$__cdist_out_object_dir" > "$__cdist_objects" - - # NEED TO CREATE ARRAY, SSH DESTROYS WHILE READ LOOP - while read __cdist_object; do - set -- "$@" "$__cdist_object" - done < "$__cdist_objects" - - while [ $# -gt 0 ]; do - __cdist_object="$1"; shift - $__cdist_command "$__cdist_target_host" "$__cdist_object" - done -done diff --git a/bin/cdist-object-explorer-run b/bin/cdist-object-explorer-run deleted file mode 100755 index b65c5cc1..00000000 --- a/bin/cdist-object-explorer-run +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Run the explorers for the given object on the target host. -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu - -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift - -__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")" -__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")" - -# Check if type of object has >= 1 explorer -__cdist_has_explorer="$(__cdist_type_has_explorer "$__cdist_type")" -# Run the type explorers for the current object if any -if [ "$__cdist_has_explorer" ]; then - if ! __cdist_type_explorer_pushed "$__cdist_type"; then - src_dir="$(__cdist_type_explorer_dir "$__cdist_type")" - dst_dir="$(__cdist_remote_type_explorer_dir "$__cdist_type")" - __cdist_echo info "Transfering explorers for $__cdist_type " - cdist-dir push "$__cdist_target_host" "$src_dir" "$dst_dir" - __cdist_type_explorer_pushed_add "$__cdist_type" - fi - - __cdist_echo info "Running explorers" - # Copy object parameters - cdist-dir push "$__cdist_target_host" \ - "$(__cdist_object_parameter_dir "$__cdist_object_self")" \ - "$(__cdist_remote_object_parameter_dir "$__cdist_object_self")" - - # Execute explorers - cdist-run-remote "$__cdist_target_host" \ - "$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object_self")\"" \ - "$__cdist_name_var_object_id=\"$__cdist_object_id\"" \ - "$__cdist_name_var_self=\"$__cdist_object_self\"" \ - cdist-remote-explorer-run \ - "$__cdist_name_var_type_explorer" \ - "$(__cdist_remote_type_explorer_dir "$__cdist_type")" \ - "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")" - - # Copy back results - cdist-dir pull "$__cdist_target_host" \ - "$(__cdist_remote_object_type_explorer_dir "$__cdist_object_self")" \ - "$(__cdist_object_type_explorer_dir "$__cdist_object_self")" -fi diff --git a/bin/cdist-object-gencode b/bin/cdist-object-gencode deleted file mode 100755 index e21568a3..00000000 --- a/bin/cdist-object-gencode +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Generate code from one object (object must be relative path!) -# WARNING: OUTPUT ON STDOUT, ERRORS NEED TO BE ON STDERR! -# - -. cdist-config -[ $# -eq 3 ] || __cdist_usage "" "" "" -set -eu - -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift -__cdist_gencode_type="$1"; shift - -__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")" -__cdist_type_gencode="$(__cdist_type_gencode "$__cdist_type" "$__cdist_gencode_type")" -__cdist_code_output="$(__cdist_object_code "$__cdist_object_self" "$__cdist_gencode_type")" - -# export variables for the gencode script -export __object_id="$(__cdist_object_id_from_object "$__cdist_object_self")" -export __object="$(__cdist_object_dir "$__cdist_object_self")" -export __global="$__cdist_out_dir" - -if [ -x "$__cdist_type_gencode" ]; then - __cdist_exec_fail_on_error "$__cdist_type_gencode" > "$__cdist_tmp_file" -else - if [ -e "$__cdist_type_gencode" ]; then - __cdist_exit_err "$__cdist_type_gencode exists, but is not executable" - fi - - # Ensure it's empty, if there is no gencode - : > "$__cdist_tmp_file" -fi - -# Only create code, if gencode created output -if [ "$(wc -l < "$__cdist_tmp_file")" -gt 0 ]; then - cat - "$__cdist_tmp_file" << eof > "$__cdist_code_output" -# -# The following code was generated by $__cdist_type_gencode -# - -eof - chmod u+x "${__cdist_code_output}" -fi diff --git a/bin/cdist-object-manifest-run b/bin/cdist-object-manifest-run deleted file mode 100755 index 34d4f867..00000000 --- a/bin/cdist-object-manifest-run +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -# -# 2010 Nico Schottelius (nico-cdist at schottelius.org) -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Run the manifest for the given object. -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu - -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift - -# FIXME: rename to __cdist_object_dir (everywhere!) -__cdist_cur_object_dir="$(__cdist_object_dir "$__cdist_object_self")" -__cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object_self")" - -__cdist_echo info "Checking manifest " - -__cdist_type="$(__cdist_type_from_object "$__cdist_object_self")" -__cdist_manifest="$(__cdist_type_manifest "$__cdist_type")" - -if [ -f "$__cdist_manifest" ]; then - if [ -x "$__cdist_manifest" ]; then - # Make __cdist_manifest available for cdist-type-emulator - export __cdist_manifest - - __cdist_echo info "Executing manifest " - export $__cdist_name_var_object="$__cdist_cur_object_dir" - export $__cdist_name_var_object_id="$__cdist_object_id" - export $__cdist_name_var_type="$(__cdist_type_dir "$__cdist_type")" - - cdist-manifest-run "$__cdist_target_host" "$__cdist_manifest" - - # Tell cdist-object-run-all that there may be new objects - touch "$__cdist_objects_created" - else - __cdist_exit_err "${__cdist_manifest} needs to be executable." - fi -fi diff --git a/bin/cdist-object-prepare b/bin/cdist-object-prepare deleted file mode 100755 index d21d8a63..00000000 --- a/bin/cdist-object-prepare +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# For the given object: -# - run type explorers -# - run type manifest -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu - -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift -__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")" -[ -d "$__cdist_object_dir" ] || __cdist_exit_err "Object undefined" - -# Export to non-core for use in manifest and gencode scripts -export $__cdist_name_var_self=$__cdist_object_self - -__cdist_object_prepared="$(__cdist_object_prepared "$__cdist_object_self")" -if [ ! -f "$__cdist_object_prepared" ]; then - __cdist_echo info "Preparing object" - cdist-object-explorer-run "$__cdist_target_host" "$__cdist_object_self" - cdist-object-manifest-run "$__cdist_target_host" "$__cdist_object_self" - - # Mark this object as prepared - touch "$__cdist_object_prepared" -fi diff --git a/bin/cdist-object-run b/bin/cdist-object-run deleted file mode 100755 index 4f40e7c1..00000000 --- a/bin/cdist-object-run +++ /dev/null @@ -1,65 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# 2011 Steven Armstrong (steven-cdist at armstrong.cc) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# For the given object: -# - run type explorers -# - run type manifest -# - generate code -# - copy object to target -# - execute code on target -# - -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu - -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift -__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")" -[ -d "$__cdist_object_dir" ] || __cdist_exit_err "Object undefined" - -# Export to non-core for use in manifest and gencode scripts -export $__cdist_name_var_self=$__cdist_object_self - -__cdist_object_finished="$(__cdist_object_finished "$__cdist_object_self")" -if [ ! -f "$__cdist_object_finished" ]; then - # Resolve dependencies, if any - __cdist_object_require="$(__cdist_object_require "$__cdist_object_self")" - if [ -f "$__cdist_object_require" ]; then - # NEED TO CREATE ARRAY, SSH DESTROYS WHILE READ LOOP - while read __cdist_requirement; do - set -- "$@" "$__cdist_requirement" - done < "$__cdist_object_require" - - while [ $# -gt 0 ]; do - __cdist_requirement="$1"; shift - __cdist_echo info "Resolving requirement $__cdist_requirement" - cdist-object-run "$__cdist_target_host" "$__cdist_requirement" - done - fi - - cdist-object-gencode-run "$__cdist_target_host" "$__cdist_object_self" - cdist-object-push "$__cdist_target_host" "$__cdist_object_self" - cdist-object-code-run "$__cdist_target_host" "$__cdist_object_self" - - # Mark this object as done - touch "$__cdist_object_finished" -fi diff --git a/bin/cdist-quickstart b/bin/cdist-quickstart deleted file mode 100755 index 4d89180c..00000000 --- a/bin/cdist-quickstart +++ /dev/null @@ -1,310 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Give the user an introduction into cdist -# - -. cdist-config -set -eu - -banner="cdist-quickstart>" -continue="Press enter to continue or ctrl-c to abort." -create_continue="Press enter to create the described files/directories" - -__prompt() -{ - echo -n "$banner" "$@" - read answer -} - -################################################################################ -# Intro of quickstart -# -cat << eof -$banner cdist version $__cdist_version - -Welcome to the interactive guide to cdist! -This is the interactive tutorial and beginners help for cdist and here's -our schedule: - - - Stages: How cdist operates - - Explorer: Explore facts of the target host - - Manifest: Map configurations to hosts - - Types: Bundled functionality - - Deploy a configuration to the local host! - -eof -__prompt "$continue" - -################################################################################ -# Stages -# -cat << eof - -To deploy configurations to a host, you call - - cdist-deploy-to - -which makes calls to other scripts, which realise the so called "stages". -Usually you'll not notice this, but in case you want to debug or hack cdist, -you can run each stage on its own. Besides that, you just need to remember -that the command cdist-deploy-to is the main cdist command. - -See also: - - Source of cdist-deploy-to(1), cdist-stages(7) - -eof -__prompt "$continue" - -################################################################################ -# Explorer -# -cat << eof - -The first thing cdist always does is running different explorers on the -target host. The explorers can be found in the directory - - ${__cdist_explorer_dir} - -An explorer is executed on the target host and its output is saved to a file. -You can use these files later to decide what or how to configure the host. - -For a demonstration, we'll call the OS explorer locally now, but remember: -This is only for demonstration, normally it is run on the target host. -The os explorer will which either displays the detected operating system or -nothing if it does not know your OS. - -See also: - - cdist-explorer(7) - -eof -explorer="${__cdist_explorer_dir}/os" - -__prompt "Press enter to execute $explorer" - -set -x -"$explorer" -set +x - -################################################################################ -# Manifest -# -cat << eof - -The initial manifest is the entry point for cdist to find out, what you would -like to have configured. It is located at - - ${__cdist_manifest_init} - -And can be as simple as - --------------------------------------------------------------------------------- -__file /etc/cdist-configured --type file --------------------------------------------------------------------------------- - -See also: - - cdist-manifest(7) - -eof -__prompt "$continue" - -cat << eof - -Let's take a deeper look at the initial manifest to understand what it means: - - __file /etc/cdist-configured --type file - | | | \\ - | | The parameter type \\ With the value file - | | - | | - | | This is the object id - | - __file is a so called "type" - - -This essentially looks like a standard command executed in the shell. -eof -__prompt "$continue" - -cat << eof - -And that's exactly true. Manifests are shell snippets that can use -types as commands with arguments. cdist prepends a special path -that contain links to the cdist-type-emulator, to \$PATH, so you -can use your types as a command. - -This is also the reason why types should always be prefixed with -"__", to prevent collisions with existing binaries. - -The object id is unique per type and used to prevent you from creating -the same object twice. - -Parameters are type specific and are always specified as --parameter . - -See also: - - cdist-type-build-emulation(1), cdist-type-emulator(1) - -eof -__prompt "$continue" - -################################################################################ -# Types -# -cat << eof - -Types are bundled functionality and are the main component of cdist. -If you want to have a feature x, you write the type __x. Types are stored in - - ${__cdist_type_dir} - -And cdist ships with some types already! - -See also: - - cdist-type(7) - -eof -__prompt "Press enter to see available types" - -set -x -ls ${__cdist_type_dir} -set +x - -cat << eof - -Types consist of the following parts: - - - ${__cdist_name_parameter} (${__cdist_name_parameter_required}/${__cdist_name_parameter_optional} - - ${__cdist_name_manifest} - - ${__cdist_name_explorer} - - ${__cdist_name_gencode} - -eof -__prompt "$continue" - - -cat << eof - -Every type must have a directory named ${__cdist_name_parameter}, which -contains required or optional parameters (in newline seperated files). - -If an object of a specific type was created in the initial manifest, -the manifest of the type is run and may create other objects. - -A type may have ${__cdist_name_explorer}, which are very similar to the -${__cdist_name_explorer} seen above, but with a different purpose: -They are specific to the type and are not relevant for other types. - -You may use them for instance to find out details on the target host, -so you can decide what to do on the target host eventually. - -After the ${__cdist_name_manifest} and the ${__cdist_name_explorer} of -a type have been run, ${__cdist_name_gencode} is executed, which creates -code to be executed on the target on stdout. - -eof -__prompt "$continue" - -################################################################################ -# Deployment -# - -cat << eof - -Now you've got some basic knowledge about cdist, let's configure your a host! - -Ensure that you have a ssh server running on the host and that you can login as root. - -eof - -__prompt "Enter hostname or press enter for localhost: " - -if [ "$answer" ]; then - host="$answer" -else - host="localhost" -fi - -manifestinit="conf/manifest/init" -cat << eof - -I'll know setup $manifestinit, containing the following code: - --------------------------------------------------------------------------------- -# Every machine becomes a marker, so sysadmins know that automatic -# configurations are happening -__file /etc/cdist-configured - -case "\$__target_host" in - $host) - __link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic - __addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist" - ;; -esac --------------------------------------------------------------------------------- - -WARNING: This will overwrite ${manifestinit}. - -eof - -cat > "$__cdist_abs_mydir/../$manifestinit" << eof - -# Every machine becomes a marker, so sysadmins know that automatic -# configurations are happening -__file /etc/cdist-configured - -case "\$__target_host" in - $host) - __link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic - __addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist" - ;; -esac - -eof - -chmod u+x "$__cdist_abs_mydir/../$manifestinit" - -cmd="cdist-deploy-to $host" - -__prompt "Press enter to run \"$cmd\"" - -# No quotes, we need field splitting -$cmd - -################################################################################ -# End -# - -cat << eof - - --------------------------------------------------------------------------------- -That's it, this is the end of the cdist-quickstart. - -I hope you've got some impression on how cdist works, here are again some -pointers on where to continue to read: - -cdist(7), cdist-deploy-to(1), cdist-type(7), cdist-stages(7) - -eof diff --git a/bin/cdist-remote-explorer-run b/bin/cdist-remote-explorer-run deleted file mode 100755 index d95913ba..00000000 --- a/bin/cdist-remote-explorer-run +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# This binary is executed on the remote side to execute explorers -# -# It supports different variables names to be used, so __explorers -# and __type_explorers can be submitted :-) -# - -. cdist-config -[ $# -eq 3 ] || __cdist_usage " " -set -ue - -# Variable that defines the home of the explorers -__cdist_variable_name="$1"; shift - -# Find explorers here -__cdist_explorer_dir="$1"; shift - -# Write output here -__cdist_my_out_dir="$1"; shift - -# Setup environment -export $__cdist_variable_name="$__cdist_explorer_dir" -export __global="$__cdist_remote_out_dir" - -mkdir -p "$__cdist_my_out_dir" - -# Ensure there is at least one explorer -num="$(ls -1 "$__cdist_explorer_dir" | wc -l)" -if [ "$num" -lt 1 ]; then - __cdist_exit_err "${__cdist_explorer_dir}: Contains no explorers" -fi - -# Execute all explorers -for explorer in "$__cdist_explorer_dir/"*; do - explorer_name="${explorer##*/}" - - if [ -f "$explorer" ]; then - if [ ! -x "$explorer" ]; then - __cdist_exit_err "Explorer \"$explorer\" exists, but is not executable." - fi - - # Execute explorers and save results in remote destination directory - "$explorer" > "${__cdist_my_out_dir}/$explorer_name" - else - if [ -e "$explorer" ]; then - __cdist_exit_err "Explorer \"$explorer\" exists, but is not a file." - fi - fi -done diff --git a/bin/cdist-type-build-emulation b/bin/cdist-type-build-emulation deleted file mode 100755 index 51c2f5b4..00000000 --- a/bin/cdist-type-build-emulation +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# Build pseudo binaries for type emulation -# - -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -eu - -__cdist_output_dir="$1"; shift - -__cdist_type_emulator="$__cdist_abs_mydir/cdist-type-emulator" - -if [ ! -d "${__cdist_type_dir}" ]; then - __cdist_exit_err "$__cdist_type_dir must exist and contain available types" -fi - -# Get Types -cd "${__cdist_type_dir}" -ls -1 > "${__cdist_tmp_file}" - -# Create binaries -mkdir -p "${__cdist_output_dir}" -while read type; do - ln -sf "${__cdist_type_emulator}" "${__cdist_output_dir}/${type}" -done < "${__cdist_tmp_file}" diff --git a/bin/cdist-type-emulator b/bin/cdist-type-emulator deleted file mode 100755 index 8ff190ad..00000000 --- a/bin/cdist-type-emulator +++ /dev/null @@ -1,182 +0,0 @@ -#!/bin/sh -# -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Wrapper script that generates cconfig from arguments -# -# This script will be called everytime the manifest decides to create -# a new type -# - -. cdist-config -set -u - -################################################################################ -# Prepare object and type -# - -__cdist_type="$__cdist_myname" - -# Find out whether type is a singleton or regular type -if [ -f "$(__cdist_type_singleton "$__cdist_type")" ]; then - __cdist_object_id="$__cdist_name_singleton" -else - [ $# -ge 1 ] || __cdist_usage " " - __cdist_object_id="$1"; shift -fi - -# Verify object id -__cdist_object_id_sane=$(echo "$__cdist_object_id" | grep "^${__cdist_sane_regexp}\$") -if [ -z "$__cdist_object_id_sane" ]; then - __cdist_usage "Insane object id, ${__cdist_object_id}." -fi - -# Prevent double slash if id begins with / -if [ "$(echo $__cdist_object_id | grep "^/")" ]; then - __cdist_object_self="${__cdist_type}${__cdist_object_id}" -else - __cdist_object_self="${__cdist_type}/${__cdist_object_id}" -fi -################################################################################ -# Internal quirks -# - -# Append id for error messages -__cdist_myname="$__cdist_myname ($__cdist_object_id)" - -################################################################################ -# Create object in tmpdir first -# - -# Save original destination -__cdist_out_object_dir_orig="$__cdist_out_object_dir" - -# Store to tmp now -__cdist_out_object_dir="$__cdist_tmp_dir" - -__cdist_new_object_dir="$(__cdist_object_dir "$__cdist_object_self")" - -# Initialise object -mkdir -p "${__cdist_new_object_dir}" - -# Record parameter -__cdist_parameter_dir="$(__cdist_object_parameter_dir "$__cdist_object_self")" -mkdir -p "${__cdist_parameter_dir}" - -while [ $# -gt 0 ]; do - opt="$1"; shift - - echo "$opt" | grep -q "^--${__cdist_sane_regexp}\$" || \ - __cdist_usage "Provide sane options" - - opt_file="${opt#--}" - - [ $# -ge 1 ] || __cdist_usage "Missing value for $opt" - - value="$1"; shift - - echo "${value}" > "${__cdist_parameter_dir}/${opt_file}" -done - -# Record requirements -# it's fine, if it's not set -set +u -for requirement in $require; do - echo $requirement >> "$(__cdist_object_require "$__cdist_object_self")" - __cdist_echo info "Recording requirement $requirement" -done -set -u - -################################################################################ -# Check newly created object -# - -# -# Ensure required parameters are given -# -if [ -f "$(__cdist_type_parameter_required "$__cdist_type")" ]; then - while read required; do - if [ ! -f "${__cdist_parameter_dir}/${required}" ]; then - __cdist_usage "Missing required parameter $required" - fi - done < "$(__cdist_type_parameter_required "$__cdist_type")" -fi - -# -# Ensure that only optional or required parameters are given -# - -if [ -f "$(__cdist_type_parameter_optional "$__cdist_type")" ]; then - cat "$(__cdist_type_parameter_optional "$__cdist_type")" > \ - "$__cdist_tmp_file" -fi - -if [ -f "$(__cdist_type_parameter_required "$__cdist_type")" ]; then - cat "$(__cdist_type_parameter_required "$__cdist_type")" >> \ - "$__cdist_tmp_file" -fi - -cd "$__cdist_parameter_dir" -for parameter in $(ls -1); do - is_valid=$(grep "^$parameter\$" "$__cdist_tmp_file") - - [ "$is_valid" ] || __cdist_usage "Unknown parameter $parameter" -done - -################################################################################ -# Merge object -# -# Restore original destination -__cdist_out_object_dir="$__cdist_out_object_dir_orig" - -__cdist_object_dir="$(__cdist_object_dir "$__cdist_object_self")" - -# -# If the object already exists and is exactly the same, merge it. Otherwise fail. -# -if [ -e "${__cdist_object_dir}" ]; then - # Allow diff to fail - set +e - diff -ru "${__cdist_new_object_dir}/${__cdist_name_parameter}" \ - "${__cdist_object_dir}/${__cdist_name_parameter}" \ - > "$__cdist_tmp_file"; ret=$? - set -e - - if [ "$ret" != 0 ]; then - # Go to standard error - exec >&2 - echo "${__cdist_object_self} already exists differently." - echo "Recorded source(s):" - __cdist_object_source "${__cdist_object_dir}" - echo "Differences:" - cat "$__cdist_tmp_file" - __cdist_exit_err "Aborting due to object conflict." - fi -else - # - # Move object into tree: - # Create full path minus .cdist and move .cdist - # - __cdist_new_object_base_dir="$(__cdist_object_base_dir "$__cdist_object_self")" - mkdir -p "$__cdist_new_object_base_dir" - mv "$__cdist_new_object_dir" "$__cdist_new_object_base_dir" -fi - -# Add "I was here message" -__cdist_object_source_add "${__cdist_object_dir}" diff --git a/bin/cdist-type-template b/bin/cdist-type-template deleted file mode 100755 index 6d8a3f15..00000000 --- a/bin/cdist-type-template +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/sh -# -# 2011 Nico Schottelius (nico-cdist at schottelius.org) -# -# This file is part of cdist. -# -# cdist is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# cdist is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with cdist. If not, see . -# -# -# Create a new type from scratch -# - -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -eu - -__cdist_type="$1"; shift -__cdist_my_type_dir="$(__cdist_type_dir "$__cdist_type")" - -if [ -d "$__cdist_my_type_dir" ]; then - __cdist_usage "Type $__cdist_type already exists" -fi - -echo "Creating type $__cdist_type in $__cdist_my_type_dir ..." -# Base -mkdir -p "$__cdist_my_type_dir" - -# Parameter -mkdir -p "$(__cdist_type_parameter_dir "$__cdist_type")" -touch "$(__cdist_type_parameter_dir "$__cdist_type")/${__cdist_name_parameter_required}" -touch "$(__cdist_type_parameter_dir "$__cdist_type")/${__cdist_name_parameter_optional}" - -# Manifest -cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$__cdist_my_type_dir/${__cdist_name_manifest}" - -# -# This is the manifest, which can be used to create other objects like this: -# __file /path/to/destination --source /from/where/ -# -# To tell cdist to make use of it, you need to make it executable (chmod +x) -# -# - -eof - -# Gencode remote -cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$(__cdist_type_dir "$__cdist_type")/${__cdist_name_gencode}-${__cdist_name_gencode_remote}" - -# -# This file should generate code on stdout, which will be collected by cdist -# and run on the target. -# -# To tell cdist to make use of it, you need to make it executable (chmod +x) -# -# - -eof - -cat "$__cdist_abs_mydir/../doc/dev/header" - << eof > "$(__cdist_type_dir "$__cdist_type")/${__cdist_name_gencode}-${__cdist_name_gencode_local}" - -# -# This file should generate code on stdout, which will be collected by cdist -# and run on the same machine cdist-deploy-to is executed. -# -# To tell cdist to make use of it, you need to make it executable (chmod +x) -# -# - -eof - -# Explorer -mkdir -p "$__cdist_my_type_dir/${__cdist_name_explorer}" diff --git a/build.sh b/build similarity index 76% rename from build.sh rename to build index b1d27817..e3a6e7f9 100755 --- a/build.sh +++ b/build @@ -26,13 +26,16 @@ # exit on any error #set -e +version=$(git describe) + # Manpage and HTML -A2XM="a2x -f manpage --no-xmllint" -A2XH="a2x -f xhtml --no-xmllint" +A2XM="a2x -f manpage --no-xmllint -a encoding=UTF-8" +A2XH="a2x -f xhtml --no-xmllint -a encoding=UTF-8" # Developer webbase WEBDIR=$HOME/niconetz -WEBBASE=software/cdist +WEBBASE=$WEBDIR/software/cdist +WEBMAN=$WEBBASE/man/$version WEBPAGE=${WEBBASE}.mdwn # Documentation @@ -88,29 +91,34 @@ case "$1" in speeches) cd "$SPEECHESDIR" for speech in *tex; do - pdflatex $speech - pdflatex $speech - pdflatex $speech + pdflatex "$speech" + pdflatex "$speech" + pdflatex "$speech" done ;; web) - cp README ${WEBDIR}/${WEBPAGE} - rm -rf ${WEBDIR}/${WEBBASE}/man && mkdir ${WEBDIR}/${WEBBASE}/man - rm -rf ${WEBDIR}/${WEBBASE}/speeches && mkdir ${WEBDIR}/${WEBBASE}/speeches + cp README ${WEBPAGE} + rm -rf ${WEBMAN} + mkdir -p ${WEBMAN}/man1 ${WEBMAN}/man7 - cp ${MAN1DSTDIR}/*.html ${MAN7DSTDIR}/*.html ${WEBDIR}/${WEBBASE}/man - cp ${SPEECHESDIR}/*.pdf ${WEBDIR}/${WEBBASE}/speeches + # old stuff + # rm -rf ${WEBDIR}/${WEBBASE}/speeches && mkdir ${WEBDIR}/${WEBBASE}/speeches + # cp ${SPEECHESDIR}/*.pdf ${WEBDIR}/${WEBBASE}/speeches + # git describe > ${WEBDIR}/${WEBBASE}/man/VERSION + + cp ${MAN1DSTDIR}/*.html ${WEBMAN}/man1 + cp ${MAN7DSTDIR}/*.html ${WEBMAN}/man7 - git describe > ${WEBDIR}/${WEBBASE}/man/VERSION cd ${WEBDIR} && git add ${WEBBASE} cd ${WEBDIR} && git commit -m "cdist update" ${WEBBASE} ${WEBPAGE} cd ${WEBDIR} && make pub ;; - pub) + p|pu|pub) git push --mirror git push --mirror github + git push --mirror sf ;; clean) @@ -123,14 +131,26 @@ case "$1" in | xargs rm -f ;; + test) + shift # skip t + export PYTHONPATH=$PYTHONPATH:$(pwd -P)/lib + + if [ $# -lt 1 ]; then + python3 -m cdist.test + else + python3 -m unittest "$@" + fi + ;; + *) echo '' echo 'Welcome to cdist!' echo '' echo 'Here are the possible targets:' echo '' - echo ' man: Build manpages (requires Asciidoc)' echo ' clean: Remove build stuff' + echo ' man: Build manpages (requires Asciidoc)' + echo ' test: Run tests' echo '' echo '' echo "Unknown target, \"$1\"" >&2 diff --git a/conf/explorer/lsb_codename b/conf/explorer/lsb_codename new file mode 100755 index 00000000..bc742cf7 --- /dev/null +++ b/conf/explorer/lsb_codename @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +set +e +lsb_release=$(which lsb_release 2>/dev/null) +if [ -x "$lsb_release" ]; then + $lsb_release --short --codename +fi diff --git a/conf/explorer/lsb_description b/conf/explorer/lsb_description new file mode 100755 index 00000000..f6c30322 --- /dev/null +++ b/conf/explorer/lsb_description @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +set +e +lsb_release=$(which lsb_release 2>/dev/null) +if [ -x "$lsb_release" ]; then + $lsb_release --short --description +fi diff --git a/conf/explorer/lsb_id b/conf/explorer/lsb_id new file mode 100755 index 00000000..6cb2359b --- /dev/null +++ b/conf/explorer/lsb_id @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +set +e +lsb_release=$(which lsb_release 2>/dev/null) +if [ -x "$lsb_release" ]; then + $lsb_release --short --id +fi diff --git a/conf/explorer/lsb_release b/conf/explorer/lsb_release new file mode 100755 index 00000000..a96ac50b --- /dev/null +++ b/conf/explorer/lsb_release @@ -0,0 +1,26 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +set +e +lsb_release=$(which lsb_release 2>/dev/null) +if [ -x "$lsb_release" ]; then + $lsb_release --short --release +fi diff --git a/conf/explorer/os b/conf/explorer/os index 6684ff78..1aafb468 100755 --- a/conf/explorer/os +++ b/conf/explorer/os @@ -49,7 +49,7 @@ if grep -q ^Fedora /etc/redhat-release 2>/dev/null; then exit 0 fi -# CentOS is also based on Redhat, this return before redhat! +# CentOS is also based on Redhat, thus return before redhat! if grep -q ^CentOS /etc/redhat-release 2>/dev/null; then echo centos exit 0 @@ -65,6 +65,16 @@ if [ -f /etc/SuSE-release ]; then exit 0 fi +if [ -f /etc/owl-release ]; then + echo owl + exit 0 +fi + +if [ -f /etc/cdist-preos ]; then + echo cdist-preos + exit 0 +fi + uname_s="$(uname -s)" # Assume there is no tr on the client -> do lower case ourselves diff --git a/conf/explorer/os_version b/conf/explorer/os_version index 08fda60b..ef80e8fc 100755 --- a/conf/explorer/os_version +++ b/conf/explorer/os_version @@ -42,6 +42,9 @@ case "$($__explorer/os)" in *bsd|solaris) uname -r ;; + owl) + cat /etc/owl-release + ;; redhat|centos) cat /etc/redhat-release ;; diff --git a/conf/type/__addifnosuchline/explorer/findline b/conf/type/__addifnosuchline/explorer/findline index c1633626..b45bd6ea 100755 --- a/conf/type/__addifnosuchline/explorer/findline +++ b/conf/type/__addifnosuchline/explorer/findline @@ -1,6 +1,7 @@ #!/bin/sh # # 2010-2011 Daniel Roth (dani-cdist@d-roth.li) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) # # This file is part of cdist. # @@ -25,9 +26,18 @@ else file="/$__object_id" fi -regex=$(cat "$__object/parameter/line") +if [ -f "$__object/parameter/regex" ]; then + regex=$(cat "$__object/parameter/regex") +else + wrap=$(cat "$__object/parameter/line") + regex="^$wrap\$" +fi + if [ -f "$file" ]; then - grep -q "^$regex\$" "$file" + # sh -e is our environment, we know what we do, + # skip error detection for now + set +e + grep -q "$regex" "$file" if [ $? -eq 1 ]; then echo "NOTFOUND" else diff --git a/conf/type/__addifnosuchline/man.text b/conf/type/__addifnosuchline/man.text index 722a3080..3051ff36 100644 --- a/conf/type/__addifnosuchline/man.text +++ b/conf/type/__addifnosuchline/man.text @@ -25,7 +25,9 @@ OPTIONAL PARAMETERS file:: If supplied, use this as the destination file. Otherwise the object_id is used. - +regex:: + If supplied, search for this regex. + Otherwise entire line must be matched. EXAMPLES -------- diff --git a/conf/type/__addifnosuchline/parameter/optional b/conf/type/__addifnosuchline/parameter/optional index f73f3093..7ecfcde9 100644 --- a/conf/type/__addifnosuchline/parameter/optional +++ b/conf/type/__addifnosuchline/parameter/optional @@ -1 +1,2 @@ file +regex diff --git a/conf/type/__apt_ppa/manifest b/conf/type/__apt_ppa/manifest index 5aa84931..04c66ce0 100755 --- a/conf/type/__apt_ppa/manifest +++ b/conf/type/__apt_ppa/manifest @@ -27,4 +27,4 @@ require="__package/python-software-properties" \ --source "$__type/files/remove-apt-repository" \ --mode 0755 -require="$__self" __apt_update_index +require="$__object_name" __apt_update_index diff --git a/conf/type/__autofs_map/manifest b/conf/type/__autofs_map/manifest index 74672e46..d86ea799 100755 --- a/conf/type/__autofs_map/manifest +++ b/conf/type/__autofs_map/manifest @@ -38,5 +38,5 @@ if [ -f "$__object/parameter/comment" ]; then fi echo "$entry" >> "$__object/parameter/entry" -require="$__self" __autofs_master +require="$__object_name" __autofs_master diff --git a/conf/type/__autofs_master/manifest b/conf/type/__autofs_master/manifest index e37a5d34..e429842e 100755 --- a/conf/type/__autofs_master/manifest +++ b/conf/type/__autofs_master/manifest @@ -24,7 +24,7 @@ if [ ! -f "$__object/parameter/header" ]; then fi [ -d "$__object/files" ] || mkdir "$__object/files" -require="$__self" __file /etc/auto.master --source "$__object/files/auto.master" \ +require="$__object_name" __file /etc/auto.master --source "$__object/files/auto.master" \ --mode 644 \ --owner root \ --group root diff --git a/conf/type/__cdistmarker/gencode-remote b/conf/type/__cdistmarker/gencode-remote new file mode 100755 index 00000000..e332df38 --- /dev/null +++ b/conf/type/__cdistmarker/gencode-remote @@ -0,0 +1,37 @@ +#!/bin/sh +# +# Copyright (C) 2011 Daniel Maher (phrawzty+cdist at gmail.com) +# +# This file is part of cdist (https://github.com/telmich/cdist/). +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +# The marker file is established in the docs, but it isn't obligatory. +if [ -f "$__object/parameter/destination" ]; then + destination="$(cat "$__object/parameter/destination")" +else + destination='/etc/cdist-configured' +fi + +# The basic output of date is usually good enough, but variety is the +# spice of life... +if [ -f "$__object/parameter/format" ]; then + format="$(cat "$__object/parameter/format")" +else + format='-u' +fi + +# Dump the timestamp in UTC to the marker +echo "date $format > $destination" diff --git a/conf/type/__cdistmarker/man.text b/conf/type/__cdistmarker/man.text new file mode 100644 index 00000000..360598d8 --- /dev/null +++ b/conf/type/__cdistmarker/man.text @@ -0,0 +1,55 @@ +cdist-type__cdistmarker(7) +========================== +Daniel Maher + + +NAME +---- +cdist-type__cdistmarker - Add a timestamped cdist marker. + + +DESCRIPTION +----------- +This type is used to add a common marker file which indicates that a given +machine is being managed by cdist. The contents of this file consist of a +timestamp, which can be used to determine the most recent time at which cdist +was run against the machine in question. + + +REQUIRED PARAMETERS +------------------- +None. + + +OPTIONAL PARAMETERS +------------------- +destination:: + The path and filename of the marker. + Default: /etc/cdist-configured + +format:: + The format of the timestamp. This is passed directly to system 'date'. + Default: -u + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Creates the marker as normal. +__cdistmarker + +# Creates the marker differently. +__cdistmarker --file /tmp/cdist_marker --format '+%s' +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2011 Daniel Maher. Free use of this software is granted under +the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__cdistmarker/parameter/optional b/conf/type/__cdistmarker/parameter/optional new file mode 100644 index 00000000..c8e637c0 --- /dev/null +++ b/conf/type/__cdistmarker/parameter/optional @@ -0,0 +1,2 @@ +destination +format diff --git a/conf/type/__cdistmarker/singleton b/conf/type/__cdistmarker/singleton new file mode 100644 index 00000000..e69de29b diff --git a/conf/type/__cron/explorer/entry b/conf/type/__cron/explorer/entry new file mode 100755 index 00000000..362c96fe --- /dev/null +++ b/conf/type/__cron/explorer/entry @@ -0,0 +1,39 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +name="$__object_id" +user="$(cat "$__object/parameter/user")" + +prefix="#cdist:__cron/$name" +suffix="#/cdist:__cron/$name" + +crontab -u $user -l | awk -v prefix="$prefix" -v suffix="$suffix" ' +{ + if (index($0,prefix)) { + triggered=1 + } + if (triggered) { + if (index($0,suffix)) { + triggered=0 + } + print + } +} +' diff --git a/conf/type/__cron/gencode-remote b/conf/type/__cron/gencode-remote new file mode 100755 index 00000000..947c75ae --- /dev/null +++ b/conf/type/__cron/gencode-remote @@ -0,0 +1,63 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +user="$(cat "$__object/parameter/user")" +state_should="$(cat "$__object/parameter/state")" +state_is=$(diff -q "$__object/parameter/entry" "$__object/explorer/entry" \ + && echo present \ + || echo absent +) + +if [ "$state_is" != "$state_should" ]; then + case "$state_should" in + present) + cat << DONE +tmp=\$(mktemp) +crontab -u $user -l > \$tmp +cat >> \$tmp << EOC +$(cat "$__object/parameter/entry")" +EOC +crontab -u $user \$tmp +rm \$tmp +DONE + ;; + absent) + # defined in type manifest + prefix="$(cat "$__object/parameter/prefix")" + suffix="$(cat "$__object/parameter/suffix")" + cat << DONE +crontab -u $user -l | awk -v prefix="$prefix" -v suffix="$suffix" ' +{ + if (index(\$0,prefix)) { + triggered=1 + } + if (triggered) { + if (index(\$0,suffix)) { + triggered=0 + } + } else { + print + } +} +' | crontab -u $user - +DONE + ;; + esac +fi diff --git a/conf/type/__cron/man.text b/conf/type/__cron/man.text new file mode 100644 index 00000000..c4852b7f --- /dev/null +++ b/conf/type/__cron/man.text @@ -0,0 +1,61 @@ +cdist-type__cron(7) +=================== +Steven Armstrong + + +NAME +---- +cdist-type__cron - installs and manages cron jobs + + +DESCRIPTION +----------- +This cdist type allows you to manage entries in a users crontab. + + +REQUIRED PARAMETERS +------------------- +user:: + The user who's crontab is edited +command:: + The command to run. + + +OPTIONAL PARAMETERS +------------------- +state:: + Either present or absent. Defaults to present. +minute:: + See crontab(5). Defaults to * +hour:: + See crontab(5). Defaults to * +day_of_month:: + See crontab(5). Defaults to * +month:: + See crontab(5). Defaults to * +day_of_week:: + See crontab(5). Defaults to * + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# add cronjob +__cron some-id --user root --command "/path/to/script" + +# remove cronjob +__cron some-id --user root --command "/path/to/script" --state absent +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- crontab(5) + + +COPYING +------- +Copyright \(C) 2011 Steven Armstrong. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__cron/manifest b/conf/type/__cron/manifest new file mode 100755 index 00000000..01c4358c --- /dev/null +++ b/conf/type/__cron/manifest @@ -0,0 +1,66 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +name="$__object_id" +user="$(cat "$__object/parameter/user")" +command="$(cat "$__object/parameter/command")" + +# set defaults +if [ ! -f "$__object/parameter/state" ]; then + echo "present" > "$__object/parameter/state" +fi +if [ -f "$__object/parameter/minute" ]; then + minute="$(cat "$__object/parameter/minute")" +else + minute="*" + echo "$minute" > "$__object/parameter/minute" +fi +if [ -f "$__object/parameter/hour" ]; then + hour="$(cat "$__object/parameter/hour")" +else + hour="*" + echo "$hour" > "$__object/parameter/hour" +fi +if [ -f "$__object/parameter/day_of_month" ]; then + day_of_month="$(cat "$__object/parameter/day_of_month")" +else + day_of_month="*" + echo "$day_of_month" > "$__object/parameter/day_of_month" +fi +if [ -f "$__object/parameter/month" ]; then + month="$(cat "$__object/parameter/month")" +else + month="*" + echo "$month" > "$__object/parameter/month" +fi +if [ -f "$__object/parameter/day_of_week" ]; then + day_of_week="$(cat "$__object/parameter/day_of_week")" +else + day_of_week="*" + echo "$day_of_week" > "$__object/parameter/day_of_week" +fi + +# NOTE: if changed, also change in explorers +prefix="#cdist:__cron/$name" +suffix="#/cdist:__cron/$name" +echo "$prefix" | tee "$__object/parameter/prefix" > "$__object/parameter/entry" +echo "$minute $hour $day_of_month $month $day_of_week $command" >> "$__object/parameter/entry" +echo "$suffix" | tee "$__object/parameter/suffix" >> "$__object/parameter/entry" + diff --git a/conf/type/__cron/parameter/optional b/conf/type/__cron/parameter/optional new file mode 100644 index 00000000..1a4aae3d --- /dev/null +++ b/conf/type/__cron/parameter/optional @@ -0,0 +1,6 @@ +state +minute +hour +day_of_month +month +day_of_week diff --git a/conf/type/__cron/parameter/required b/conf/type/__cron/parameter/required new file mode 100644 index 00000000..711a59ab --- /dev/null +++ b/conf/type/__cron/parameter/required @@ -0,0 +1,2 @@ +user +command diff --git a/conf/type/__mkfs/gencode-remote b/conf/type/__mkfs/gencode-remote new file mode 100755 index 00000000..b3561bad --- /dev/null +++ b/conf/type/__mkfs/gencode-remote @@ -0,0 +1,38 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +device="$(cat "$__object/parameter/device")" +type="$(cat "$__object/parameter/type")" + +if [ "$type" = "swap" ]; then + echo "mkswap $device" +else + command="mkfs -t $type -q" + if [ -f "$__object/parameter/options" ]; then + options="$(cat "$__object/parameter/options")" + command="$command $options" + fi + command="$command $device" + if [ -f "$__object/parameter/blocks" ]; then + blocks="$(cat "$__object/parameter/blocks")" + command="$command $blocks" + fi + echo "$command" +fi diff --git a/conf/type/__mkfs/install b/conf/type/__mkfs/install new file mode 100644 index 00000000..e69de29b diff --git a/conf/type/__mkfs/man.text b/conf/type/__mkfs/man.text new file mode 100644 index 00000000..4320c639 --- /dev/null +++ b/conf/type/__mkfs/man.text @@ -0,0 +1,57 @@ +cdist-type__mkfs(7) +=================== +Steven Armstrong + + +NAME +---- +cdist-type__mkfs - build a linux file system + + +DESCRIPTION +----------- +This cdist type is a wrapper for the mkfs command. + + +REQUIRED PARAMETERS +------------------- +type:: + The filesystem type to use. Same as mkfs -t. + + +OPTIONAL PARAMETERS +------------------- +device:: + defaults to object_id + +options:: + file system-specific options to be passed to the mkfs command + +blocks:: + the number of blocks to be used for the file system + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# reiserfs /dev/sda5 +__mkfs /dev/sda5 --type reiserfs +# same thing with explicit device +__mkfs whatever --device /dev/sda5 --type reiserfs + +# jfs with journal on /dev/sda2 +__mkfs /dev/sda1 --type jfs --options "-j /dev/sda2" +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- mkfs(8) + + +COPYING +------- +Copyright \(C) 2011 Steven Armstrong. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__mkfs/manifest b/conf/type/__mkfs/manifest new file mode 100755 index 00000000..e9d275a4 --- /dev/null +++ b/conf/type/__mkfs/manifest @@ -0,0 +1,31 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +# set defaults +if [ -f "$__object/parameter/device" ]; then + device="(cat "$__object/parameter/device")" +else + device="/$__object_id" + echo "$device" > "$__object/parameter/device" +fi + +type="(cat "$__object/parameter/type")" + +options="(cat "$__object/parameter/options")" diff --git a/conf/type/__mkfs/parameter/optional b/conf/type/__mkfs/parameter/optional new file mode 100644 index 00000000..86aeae30 --- /dev/null +++ b/conf/type/__mkfs/parameter/optional @@ -0,0 +1,3 @@ +device +options +blocks diff --git a/conf/type/__mkfs/parameter/required b/conf/type/__mkfs/parameter/required new file mode 100644 index 00000000..aa80e646 --- /dev/null +++ b/conf/type/__mkfs/parameter/required @@ -0,0 +1 @@ +type diff --git a/conf/type/__package/manifest b/conf/type/__package/manifest index b331d32d..765ece36 100755 --- a/conf/type/__package/manifest +++ b/conf/type/__package/manifest @@ -49,4 +49,4 @@ for property in $(ls .); do fi done -require="$__self" __package_$type "$@" +require="$__object_name" __package_$type "$@" diff --git a/conf/type/__package_apt/gencode-remote b/conf/type/__package_apt/gencode-remote index df8fd823..a5384ee3 100755 --- a/conf/type/__package_apt/gencode-remote +++ b/conf/type/__package_apt/gencode-remote @@ -27,13 +27,6 @@ else name="$__object_id" fi -# Check for preseeding and add preseed as here document -if [ -f "$__object/parameter/preseed" ]; then - echo "debconf-set-selections << __file-eof" - cat "$(cat "$__object/parameter/preseed")" - echo "__file-eof" -fi - state="$(cat "$__object/parameter/state")" is_installed="$(grep "^Status: install ok installed" "$__object/explorer/pkg_status" || true)" diff --git a/conf/type/__package_luarocks/explorer/pkg_status b/conf/type/__package_luarocks/explorer/pkg_status new file mode 100755 index 00000000..3eb73298 --- /dev/null +++ b/conf/type/__package_luarocks/explorer/pkg_status @@ -0,0 +1,31 @@ +#!/bin/sh +# +# 2012 SwellPath, Inc. +# Christian G. Warden +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# Retrieve the status of a rock +# + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +# Accept luarocks failing if package is not known/installed +luarocks list "$name" | egrep -A1 "^$name$" || exit 0 diff --git a/conf/type/__package_luarocks/gencode-remote b/conf/type/__package_luarocks/gencode-remote new file mode 100755 index 00000000..179022b1 --- /dev/null +++ b/conf/type/__package_luarocks/gencode-remote @@ -0,0 +1,52 @@ +#!/bin/sh +# +# 2012 SwellPath, Inc. +# Christian G. Warden +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Manage LuaRocks packages +# + + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +state="$(cat "$__object/parameter/state")" +is_installed="$(grep "(installed)" "$__object/explorer/pkg_status" || true)" + +case "$state" in + installed) + # Install only if non-existent + if [ -z "$is_installed" ]; then + echo luarocks install \"$name\" + fi + ;; + removed) + # Remove only if existent + if [ -n "$is_installed" ]; then + echo luarocks remove \"$name\" + fi + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 + ;; +esac diff --git a/conf/type/__package_luarocks/man.text b/conf/type/__package_luarocks/man.text new file mode 100644 index 00000000..6c1e6734 --- /dev/null +++ b/conf/type/__package_luarocks/man.text @@ -0,0 +1,49 @@ +cdist-type__package_luarocks(7) +============================== +Christian G. Warden + + +NAME +---- +cdist-type__package_luarocks - Manage luarocks packages + + +DESCRIPTION +----------- +LuaRocks is a deployment and management system for Lua modules. + + +REQUIRED PARAMETERS +------------------- +state:: + Either "installed" or "removed". + + +OPTIONAL PARAMETERS +------------------- +name:: + If supplied, use the name and not the object id as the package name. + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Ensure luasocket is installed +__package_luarocks luasocket --state installed + +# Remove package +__package_luarocks luasocket --state removed +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- cdist-type__package(7) + + +COPYING +------- +Copyright \(C) 2012 SwellPath, Inc. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__package_luarocks/manifest b/conf/type/__package_luarocks/manifest new file mode 100644 index 00000000..8e626714 --- /dev/null +++ b/conf/type/__package_luarocks/manifest @@ -0,0 +1,23 @@ +#!/bin/sh +# +# 2012 SwellPath, Inc. +# Christian G. Warden +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +__package luarocks --state installed +__package make --state installed diff --git a/conf/type/__package_luarocks/parameter/optional b/conf/type/__package_luarocks/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/conf/type/__package_luarocks/parameter/optional @@ -0,0 +1 @@ +name diff --git a/conf/type/__package_luarocks/parameter/required b/conf/type/__package_luarocks/parameter/required new file mode 100644 index 00000000..ff72b5c7 --- /dev/null +++ b/conf/type/__package_luarocks/parameter/required @@ -0,0 +1 @@ +state diff --git a/conf/type/__package_rubygem/explorer/pkg_status b/conf/type/__package_rubygem/explorer/pkg_status new file mode 100755 index 00000000..97620892 --- /dev/null +++ b/conf/type/__package_rubygem/explorer/pkg_status @@ -0,0 +1,30 @@ +#!/bin/sh +# +# 2011 Chase Allen James (nx-cdist@nu-ex.com) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# Retrieve the status of a rubygem +# + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +# Except gem failing, if package is not known / installed +gem list -i "$name" 2>/dev/null || exit 0 diff --git a/conf/type/__package_rubygem/gencode-remote b/conf/type/__package_rubygem/gencode-remote new file mode 100755 index 00000000..daaba524 --- /dev/null +++ b/conf/type/__package_rubygem/gencode-remote @@ -0,0 +1,51 @@ +#!/bin/sh +# +# 2011 Chase Allen James +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Manage Rubygem packages +# + + +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +state="$(cat "$__object/parameter/state")" +is_installed="$(grep "true" "$__object/explorer/pkg_status" || true)" + +case "$state" in + installed) + # Install only if non-existent + if [ -z "$is_installed" ]; then + echo gem install \"$name\" --no-ri --no-rdoc + fi + ;; + removed) + # Remove only if existent + if [ -n "$is_installed" ]; then + echo gem uninstall \"$name\" + fi + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 + ;; +esac diff --git a/conf/type/__package_rubygem/man.text b/conf/type/__package_rubygem/man.text new file mode 100644 index 00000000..c6248ee3 --- /dev/null +++ b/conf/type/__package_rubygem/man.text @@ -0,0 +1,49 @@ +cdist-type__package_rubygem(7) +============================== +Chase Allen James + + +NAME +---- +cdist-type__package_rubygem - Manage rubygem packages + + +DESCRIPTION +----------- +Rubygems is the default package management system for the Ruby programming language. + + +REQUIRED PARAMETERS +------------------- +state:: + Either "installed" or "removed". + + +OPTIONAL PARAMETERS +------------------- +name:: + If supplied, use the name and not the object id as the package name. + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Ensure sinatra is installed +__package_rubygem sinatra --state installed + +# Remove package +__package_rubygem rails --state removed +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- cdist-type__package(7) + + +COPYING +------- +Copyright \(C) 2011 Chase Allen James. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__package_rubygem/parameter/optional b/conf/type/__package_rubygem/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/conf/type/__package_rubygem/parameter/optional @@ -0,0 +1 @@ +name diff --git a/conf/type/__package_rubygem/parameter/required b/conf/type/__package_rubygem/parameter/required new file mode 100644 index 00000000..ff72b5c7 --- /dev/null +++ b/conf/type/__package_rubygem/parameter/required @@ -0,0 +1 @@ +state diff --git a/conf/type/__partition_msdos/install b/conf/type/__partition_msdos/install new file mode 100644 index 00000000..e69de29b diff --git a/conf/type/__partition_msdos/man.text b/conf/type/__partition_msdos/man.text new file mode 100644 index 00000000..78220ee0 --- /dev/null +++ b/conf/type/__partition_msdos/man.text @@ -0,0 +1,62 @@ +cdist-type__partition_msdos(7) +============================== +Steven Armstrong + + +NAME +---- +cdist-type__partition_msdos - creates msdos partitions + + +DESCRIPTION +----------- +This cdist type allows you to create msdos paritions. + + +REQUIRED PARAMETERS +------------------- +type:: + the partition type used in fdisk (such as 82 or 83) or "extended" + + +OPTIONAL PARAMETERS +------------------- +partition:: + defaults to object_id +bootable:: + mark partition as bootable, true or false, defaults to false +size:: + the size of the partition (such as 32M or 15G, whole numbers + only), '+' for remaining space, or 'n%' for percentage of remaining + (these should only be used after all specific partition sizes are + specified). Defaults to +. + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# 128MB, linux, bootable +__partition_msdos /dev/sda1 --type 83 --size 128M --bootable true +# 512MB, swap +__partition_msdos /dev/sda2 --type 82 --size 512M +# 100GB, extended +__partition_msdos /dev/sda3 --type extended --size 100G +# 10GB, linux +__partition_msdos /dev/sda5 --type 83 --size 10G +# 50% of the free space of the extended partition, linux +__partition_msdos /dev/sda6 --type 83 --size 50% +# rest of the extended partition, linux +__partition_msdos /dev/sda7 --type 83 --size + +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2011 Steven Armstrong. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__partition_msdos/manifest b/conf/type/__partition_msdos/manifest new file mode 100755 index 00000000..21e43856 --- /dev/null +++ b/conf/type/__partition_msdos/manifest @@ -0,0 +1,41 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +# set defaults +if [ -f "$__object/parameter/partition" ]; then + partition="(cat "$__object/parameter/partition")" +else + partition="/$__object_id" + echo "$partition" > "$__object/parameter/partition" +fi +device="$(echo "$partition" | sed 's/[0-9]//g')" +echo "$device" > "$__object/parameter/device" +minor="$(echo "$partition" | sed 's/[^0-9]//g')" +echo "$minor" > "$__object/parameter/minor" + +if [ ! -f "$__object/parameter/bootable" ]; then + echo "false" > "$__object/parameter/bootable" +fi +if [ ! -f "$__object/parameter/size" ]; then + echo "+" > "$__object/parameter/size" +fi + +# pull in the type that actually does something with the above parameters +require="$__object_name" __partition_msdos_apply diff --git a/conf/type/__partition_msdos/parameter/optional b/conf/type/__partition_msdos/parameter/optional new file mode 100644 index 00000000..b2b0a4c2 --- /dev/null +++ b/conf/type/__partition_msdos/parameter/optional @@ -0,0 +1,3 @@ +partition +bootable +size diff --git a/conf/type/__partition_msdos/parameter/required b/conf/type/__partition_msdos/parameter/required new file mode 100644 index 00000000..aa80e646 --- /dev/null +++ b/conf/type/__partition_msdos/parameter/required @@ -0,0 +1 @@ +type diff --git a/conf/type/__partition_msdos_apply/explorer/partitions b/conf/type/__partition_msdos_apply/explorer/partitions new file mode 100755 index 00000000..6be61af4 --- /dev/null +++ b/conf/type/__partition_msdos_apply/explorer/partitions @@ -0,0 +1,3 @@ +#!/bin/sh + +cat /proc/partitions diff --git a/conf/type/__partition_msdos_apply/files/lib.sh b/conf/type/__partition_msdos_apply/files/lib.sh new file mode 100644 index 00000000..5767ea43 --- /dev/null +++ b/conf/type/__partition_msdos_apply/files/lib.sh @@ -0,0 +1,61 @@ +die() { + echo "[__partition_msdos_apply] $@" >&2 + exit 1 +} +debug() { + #echo "[__partition_msdos_apply] $@" >&2 + : +} + +fdisk_command() { + local device="$1" + local cmd="$2" + + debug fdisk_command "running fdisk command '${cmd}' on device ${device}" + printf "${cmd}\nw\n" | fdisk -c -u "$device" + # give disk some time + sleep 1 + return $? +} + +create_disklabel() { + local device=$1 + + debug create_disklabel "creating new msdos disklabel" + fdisk_command ${device} "o" + return $? +} + +create_partition() { + local device="$1" + local minor="$2" + local size="$3" + local type="$4" + local primary_count="$5" + + if [ "$type" = "extended" -o "$type" = "5" ]; then + # Extended partition + primary_extended="e\n" + first_minor="${minor}\n" + [ "${minor}" = "4" ] && first_minor="" + type_minor="${minor}\n" + [ "${minor}" = "1" ] && type_minor="" + type="5" + elif [ "${minor}" -lt "5" ]; then + primary_extended="p\n" + first_minor="${minor}\n" + [ "${minor}" = "4" ] && first_minor="" + type_minor="${minor}\n" + [ "${minor}" = "1" ] && type_minor="" + else + # Logical partitions + first_minor="${minor}\n" + type_minor="${minor}\n" + primary_extended="l\n" + [ "$primary_count" -gt "3" ] && primary_extended="" + fi + [ -n "${size}" ] && size="+${size}M" + fdisk_command ${device} "n\n${primary_extended}${first_minor}\n${size}\nt\n${type_minor}${type}\n" + return $? +} + diff --git a/conf/type/__partition_msdos_apply/gencode-remote b/conf/type/__partition_msdos_apply/gencode-remote new file mode 100755 index 00000000..1d5c33cb --- /dev/null +++ b/conf/type/__partition_msdos_apply/gencode-remote @@ -0,0 +1,138 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# + +die() { + echo "[__partition_msdos_apply] $@" >&2 + exit 1 +} +debug() { + #echo "[__partition_msdos_apply] $@" >&2 + : +} + +# Convert a size specifier 1G 100M or 50% into the corresponding numeric MB. +size_to_mb() { + local size=$1 + local available_size="$2" + + local number_suffix="$(echo ${size} | sed -e 's:\.[0-9]\+::' -e 's:\([0-9]\+\)\([MmGg%]\)[Bb]\?:\1|\2:')" + local number="$(echo ${number_suffix} | cut -d '|' -f1)" + local suffix="$(echo ${number_suffix} | cut -d '|' -f2)" + + case "$suffix" in + M|m) + size="$number" + ;; + G|g) + size="$(( $number * 1024 ))" + ;; + %) + size="$(( $available_size * $number / 100 ))" + ;; + *) + size="-1" + esac + echo "$size" +} + +# include function library for use on target +cat "$__type/files/lib.sh" + +partitions="$__object/explorer/partitions" +objects=$(find "$__global/object/__partition_msdos" -path "*.cdist") +current_device="" +available_device_size= +available_extended_size= +available_size= +primary_count=0 +for object in $objects; do + device="$(cat "$object/parameter/device")" + if [ "$current_device" != "$device" ]; then + echo "create_disklabel \"$device\" || die 'Failed to create disklabel for $device'" + current_device="$device" + device_name=$(echo ${device} | sed -e 's:^/dev/::;s:/:\\/:g') + available_device_size=$(( $(awk "/${device_name}\$/ { print \$3; }" "$partitions") / 1024)) + # make sure we don't go past the end of the drive + available_device_size=$((available_device_size - 2)) + available_extended_size=0 + primary_count=0 + debug "----- $device" + debug "current_device=$current_device" + debug "available_device_size=$available_device_size" + fi + + type="$(cat "$object/parameter/type")" + partition="$(cat "$object/parameter/partition")" + minor="$(cat "$object/parameter/minor")" + + bootable="$(cat "$object/parameter/bootable")" + size="$(cat "$object/parameter/size")" + + + if [ "${minor}" -lt "5" ]; then + # Primary partitions + primary_count=$(( $primary_count + 1 )) + available_size=$available_device_size + else + # Logical partitions + available_size=$available_extended_size + fi + + if [ "$size" = "+" ]; then + # use rest of device + partition_size="" + available_size=0 + else + partition_size=$(size_to_mb "$size" "$available_size") + available_size="$(( $available_size - $partition_size ))" + fi + + if [ "${minor}" -lt "5" ]; then + # Primary partitions + available_device_size=$available_size + if [ "$type" = "extended" -o "$type" = "5" ]; then + # Extended partition + available_extended_size=$partition_size + fi + else + # Logical paritions + available_extended_size=$available_size + fi + + [ "$partition_size" = "-1" ] && die "could not translate size '$size' to a usable value" + debug "----- $partition" + debug "primary_count=$primary_count" + debug "current_device=$current_device" + debug "device=$device" + debug "type=$type" + debug "partition=$partition" + debug "minor=$minor" + debug "bootable=$bootable" + debug "size=$size" + debug "partition_size=$partition_size" + debug "available_size=$available_size" + debug "available_device_size=$available_device_size" + debug "available_extended_size=$available_extended_size" + debug "----------" + + echo "create_partition '$device' '$minor' '$partition_size' '$type' '$primary_count' \ + || die 'Failed to create partition: $partition'" +done + diff --git a/conf/type/__partition_msdos_apply/install b/conf/type/__partition_msdos_apply/install new file mode 100644 index 00000000..e69de29b diff --git a/conf/type/__partition_msdos_apply/man.text b/conf/type/__partition_msdos_apply/man.text new file mode 100644 index 00000000..6cc53b77 --- /dev/null +++ b/conf/type/__partition_msdos_apply/man.text @@ -0,0 +1,42 @@ +cdist-type__partition_msdos_apply(7) +==================================== +Steven Armstrong + + +NAME +---- +cdist-type__partition_msdos_apply - Apply dos partition settings + + +DESCRIPTION +----------- +Create the partitions defined with __partition_msdos + + +REQUIRED PARAMETERS +------------------- +None + + +OPTIONAL PARAMETERS +------------------- +None. + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +__partition_msdos_apply +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- cdist-type__partition_msdos_apply(7) + +COPYING +------- +Copyright \(C) 2011 Steven Armstrong. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/conf/type/__partition_msdos_apply/singleton b/conf/type/__partition_msdos_apply/singleton new file mode 100644 index 00000000..e69de29b diff --git a/conf/type/__process/explorer/runs b/conf/type/__process/explorer/runs index 2bfa8f84..240ebef9 100755 --- a/conf/type/__process/explorer/runs +++ b/conf/type/__process/explorer/runs @@ -24,7 +24,7 @@ if [ -f "$__object/parameter/name" ]; then name="$(cat "$__object/parameter/name")" else - name="/$__object_id" + name="$__object_id" fi pgrep -x -f "$name" || true diff --git a/conf/type/__process/man.text b/conf/type/__process/man.text index fd3bcf49..065beeef 100644 --- a/conf/type/__process/man.text +++ b/conf/type/__process/man.text @@ -50,6 +50,10 @@ __process /usr/sbin/sshd --state stopped --stop "/etc/rc.d/sshd stop" # Ensure cups is running, which runs with -C ...: __process cups --start "/etc/rc.d/cups start" --state running \ --name "/usr/sbin/cupsd -C /etc/cups/cupsd.conf" + +# Ensure rpc.statd is running (which usually runs with -L) using a regexp +__process rpcstatd --state running --start "/etc/init.d/statd start" \ + --name "rpc.statd.*" -------------------------------------------------------------------------------- diff --git a/conf/type/__user/gencode-remote b/conf/type/__user/gencode-remote index 31c93655..c4f9123a 100755 --- a/conf/type/__user/gencode-remote +++ b/conf/type/__user/gencode-remote @@ -55,7 +55,7 @@ if grep -q "^${name}:" "$__object/explorer/passwd"; then current_value="$(awk -F: '{ print $ENVIRON["field"] }' < "$file")" if [ "$new_value" != "$current_value" ]; then - set -- "$@" "--$property" \"$new_value\" + set -- "$@" "--$property" \'$new_value\' fi done @@ -67,7 +67,7 @@ if grep -q "^${name}:" "$__object/explorer/passwd"; then else for property in $(ls .); do new_value="$(cat "$property")" - set -- "$@" "--$property" \"$new_value\" + set -- "$@" "--$property" \'$new_value\' done echo useradd "$@" "$name" diff --git a/doc/changelog b/doc/changelog index a603573b..3e1bed97 100644 --- a/doc/changelog +++ b/doc/changelog @@ -1,4 +1,44 @@ -1.7.1: +2.0.5: + * New Type: __package_luarocks (Christian G. Warden) + * Feature: __addifnosuchline supports matching on + regular expressions (Daniel Maher) + * Documentation: (Re)write of the tutorial + * Cleanup: Explicitly require Python >= 3.2 (do not fail implicitly) + +2.0.4: 2011-11-18 + * Bugfix core: Remove traceback when sending SIGINT (aka Ctrl-C) + * Bugfix core: Accept parameters with - in the name (Steven Armstrong) + * Cleanup: __object_fq variable removed (never used) + * Cleanup: Environment variable __self DEPRECATED, use __object_name instead + * Cleanup: Environment variable __self scheduled for removal in cdist 2.1 + * Documentation: Many examples for use of __remote_* (Steven Armstrong) + * Feature: Automatically require all used objects (Steven Armstrong) + * New Type: __cron (Steven Armstrong) + +2.0.3: 2011-10-18 + * Improved logging, added --verbose, by more quiet by default + * Bugfix __user: Correct quoting (Steven Armstrong) + * Bugfix __addifnosuchline: Falsely exited + * Bugfix requirements: Restore original require="" behaviour + * Feature requirements: Check for broken object_ids and abort + * Massive refactoring and unittesting introduced (Steven Armstrong) + +2.0.2: 2011-09-27 + * Add support for detection of OpenWall Linux (Matthias Teege) + * Add support for __debug variable in manifests + * Bugfix core: Various issues with type emulator + +2.0.1: 2011-09-23 + * Bugfix core: Always print source of error in case of exec errors + * Bugfix core: Various smaller bugs in string concatenation + * Feature: Add marker "changed" to changed objects + +2.0.0: 2011-09-16 + * New Type: __package_rubygem (Chase Allen James) + * __self replaced by __object_fq + * Rewrote cdist in Python + +1.7.1: 2011-07-26 * Documentation: Add explorers to reference * Documentation: Typo cleanup (Derek Brost) * Type __key_value: Bugfix (Steven Armstrong) diff --git a/doc/dev/benchmark-parallel-deploy b/doc/dev/benchmark-parallel-deploy new file mode 100755 index 00000000..0e7c4a2f --- /dev/null +++ b/doc/dev/benchmark-parallel-deploy @@ -0,0 +1,12 @@ +#!/bin/sh + +outfile="$1"; shift + +( + for host in "$@"; do + hosts="$hosts $host" + cdist config -c ~/p/cdist-nutzung -p $hosts 2>&1 + done +) | tee "$outfile" +echo "----------" +grep 'INFO: Total processing time for' "$outfile" | sed 's/.*: //' diff --git a/doc/dev/fancy-ideas b/doc/dev/fancy-ideas new file mode 100644 index 00000000..f125a884 --- /dev/null +++ b/doc/dev/fancy-ideas @@ -0,0 +1,7 @@ +== types with namespaces == +- allow types to have namespaces, e.g. + __path/my/type +implemented as a proof of concept at: +https://github.com/asteven/cdist/tree/type-namespaces + + diff --git a/doc/dev/lastchanges b/doc/dev/lastchanges new file mode 100755 index 00000000..8679372a --- /dev/null +++ b/doc/dev/lastchanges @@ -0,0 +1,24 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Show the lastest changes from this (upcoming) release +# + +awk '/^$/ { exit } { print $0 } END { print "-----" }' < "${0%/*}/../changelog" diff --git a/doc/dev/logs/2011-04-20.slashdot-articles b/doc/dev/logs/2011-04-20.slashdot-articles new file mode 100644 index 00000000..24b3baf0 --- /dev/null +++ b/doc/dev/logs/2011-04-20.slashdot-articles @@ -0,0 +1,2 @@ +http://slashdot.org/submission/1533922/cdist-162---usable-configuration-management +http://slashdot.org/submission/1522134/Cdist-Configuration-management-that-makes-fun# diff --git a/doc/dev/logs/2011-04-21.benchmark-eth b/doc/dev/logs/2011-04-21.benchmark-eth new file mode 100644 index 00000000..f1dfa05a --- /dev/null +++ b/doc/dev/logs/2011-04-21.benchmark-eth @@ -0,0 +1,7 @@ +cdist-mass-deploy -p ikq02.ethz.ch; 142 +cdist-mass-deploy -p ikq02.ethz.ch ikq03.ethz.ch; 194 +cdist-mass-deploy -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch; 271 +cdist-mass-deploy -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch ikq05.ethz.ch; 328 +cdist-mass-deploy -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch ikq05.ethz.ch ikq06.ethz.ch; 456 +cdist-mass-deploy -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch ikq05.ethz.ch ikq06.ethz.ch ikq07.ethz.ch; 568 + diff --git a/doc/dev/logs/2011-04-27.benchmark b/doc/dev/logs/2011-04-27.benchmark new file mode 100644 index 00000000..6f1f1e21 --- /dev/null +++ b/doc/dev/logs/2011-04-27.benchmark @@ -0,0 +1,56 @@ +% x200 +data = [ 1 104; 2 129; 6 249 ; 25 1267 ] + +% x201, 4.2.2.4 dns, eth +data = [ 1 143; 2 159; 3 198; 4 244; 5 299; 6 350; 7 435; 8 429 ]; + +% x201, von zuhause aus +data2 = [ 226 242 275 296 306 357 403 400 409 685 617 672 ] +plot(0:size(data)(2)-1, data) + + +hold off; +plot(data(:,1), data(:,2)) +% per host time: +data(:,2)' ./ data(:,1)' +hold on; +plot(data(:,1), data(:,2)' ./ data(:,1)') + + +Testing on + Intel(R) Core(TM)2 Duo CPU P8400 @ 2.26GHz + 4 GiB RAM + Intel Gbit Nic + +- 169 objects, all done (i.e. rerun) +- runs are cpu bound + +1 host: + +core: cdist 1.6.2: Successfully finished run +Run: 104s (1 minutes) + +2 hosts: + +[13:48] kr:cdist-nutzung% mytime cdist-mass-deploy -p ikq03.ethz.ch ikq04.ethz.ch +Run: 129s (2 minutes) + +6 hosts: (7 specified, but ikq01.ethz.ch is dead) +cdist-mass-deploy -p ikq01.ethz.ch ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch ikq05.ethz.ch ikq06.ethz.ch ikq07.ethz.ch +Run: 294s (4 minutes) + +25 hosts + +[13:58] kr:cdist-nutzung% mytime cdist-mass-deploy -p $(sed 's/^root@//' ~/.dsh/group/ikr) + +Run: 723s (12 minutes) + + +25 hosts without proxy command now: + +Run: 1267s (21 minutes) +Run: 1212s (20 minutes) + + +[14:11] kr:cdist-nutzung% mytime cdist-mass-deploy -p $(sed 's/^root@//' ~/.dsh/group/ikr) + diff --git a/doc/dev/logs/2011-04-27.benchmark.dash b/doc/dev/logs/2011-04-27.benchmark.dash new file mode 100644 index 00000000..635062e8 --- /dev/null +++ b/doc/dev/logs/2011-04-27.benchmark.dash @@ -0,0 +1,9 @@ +Run: 78s (1 minutes) +[13:25] kr:cdist-nutzung% mytime cdist-deploy-to ikq02.ethz.ch + +% mit dash, eth, x201, Mit Apr 27 13:41:49 CEST 2011 +data = [ 0 73 77 89 107 130 151 180 197 228 251 260 199 295 335 276 ] +plot(0:size(data2)(2)-1, data2) + + + diff --git a/doc/dev/logs/2011-04-27.debug-timing b/doc/dev/logs/2011-04-27.debug-timing new file mode 100644 index 00000000..e6c99d4d --- /dev/null +++ b/doc/dev/logs/2011-04-27.debug-timing @@ -0,0 +1,1725 @@ +core: cdist 1.6.2: Configuring ikq04.ethz.ch +core: Creating clean directory structure +core: Transferring cdist binaries to the target host +core: Debug: Mit Apr 27 14:17:37 CEST 2011 +core: Debug: Mit Apr 27 14:17:37 CEST 2011 +core: Running global explorers +core: Debug: Mit Apr 27 14:17:38 CEST 2011 +core: Running initial manifest for ikq04.ethz.ch +core: Debug: Mit Apr 27 14:17:39 CEST 2011 +__ethz_systems/singleton: Preparing object +__ethz_systems/singleton: Checking manifest +__ethz_systems/singleton: Executing manifest +__file/etc/cdist-configured: Preparing object +__file/etc/cdist-configured: Transfering explorers for __file +__file/etc/cdist-configured: Running explorers +__file/etc/cdist-configured: Checking manifest +__package/puppet: Preparing object +__package/puppet: Checking manifest +__package/puppet: Executing manifest +__ethz_systems_root_via_ssh/subasui: Preparing object +__ethz_systems_root_via_ssh/subasui: Checking manifest +__ethz_systems_root_via_ssh/subasui: Executing manifest +__ethz_systems_root_via_ssh/blukas: Preparing object +__ethz_systems_root_via_ssh/blukas: Checking manifest +__ethz_systems_root_via_ssh/blukas: Executing manifest +__ethz_systems_root_via_ssh/petfisch: Preparing object +__ethz_systems_root_via_ssh/petfisch: Checking manifest +__ethz_systems_root_via_ssh/petfisch: Executing manifest +__ethz_nullmailer/singleton: Preparing object +__ethz_nullmailer/singleton: Checking manifest +__ethz_nullmailer/singleton: Executing manifest +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__ethz_systems_ldap_krb5_autofs/singleton: Preparing object +__ethz_systems_ldap_krb5_autofs/singleton: Checking manifest +__ethz_systems_ldap_krb5_autofs/singleton: Executing manifest +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__etc_hosts/singleton: Preparing object +__etc_hosts/singleton: Checking manifest +__etc_hosts/singleton: Executing manifest +__directory/local: Preparing object +__directory/local: Transfering explorers for __directory +__directory/local: Running explorers +__directory/local: Checking manifest +__ethz_ntpd/singleton: Preparing object +__ethz_ntpd/singleton: Checking manifest +__ethz_ntpd/singleton: Executing manifest +__ethz_systems_packages/singleton: Preparing object +__ethz_systems_packages/singleton: Checking manifest +__ethz_systems_packages/singleton: Executing manifest +__package_apt/puppet: Preparing object +__package_apt/puppet: Transfering explorers for __package_apt +__package_apt/puppet: Running explorers +__package_apt/puppet: Checking manifest +__addifnosuchline/ssh-root-subasui: Preparing object +__addifnosuchline/ssh-root-subasui: Transfering explorers for __addifnosuchline +__addifnosuchline/ssh-root-subasui: Running explorers +__addifnosuchline/ssh-root-subasui: Checking manifest +__addifnosuchline/ssh-root-blukas: Preparing object +__addifnosuchline/ssh-root-blukas: Running explorers +__addifnosuchline/ssh-root-blukas: Checking manifest +__addifnosuchline/ssh-root-petfisch: Preparing object +__addifnosuchline/ssh-root-petfisch: Running explorers +__addifnosuchline/ssh-root-petfisch: Checking manifest +__ethz_systems_motd/singleton: Preparing object +__ethz_systems_motd/singleton: Checking manifest +__ethz_systems_motd/singleton: Executing manifest +__ethz_systems_sudo/singleton: Preparing object +__ethz_systems_sudo/singleton: Checking manifest +__ethz_systems_sudo/singleton: Executing manifest +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__ethz_sans_syslog/singleton: Preparing object +__ethz_sans_syslog/singleton: Checking manifest +__ethz_sans_syslog/singleton: Executing manifest +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto.pub: Preparing object +__file/etc/ethz/autofs/auto.pub: Running explorers +__file/etc/ethz/autofs/auto.pub: Checking manifest +__file/etc/default/openntpd: Preparing object +__file/etc/default/openntpd: Running explorers +__file/etc/default/openntpd: Checking manifest +__file/etc/hosts: Preparing object +__file/etc/hosts: Running explorers +__file/etc/hosts: Checking manifest +__file/etc/syslog-ng/syslog-ng.conf: Preparing object +__file/etc/syslog-ng/syslog-ng.conf: Running explorers +__file/etc/syslog-ng/syslog-ng.conf: Checking manifest +__file/etc/nullmailer/remotes: Preparing object +__file/etc/nullmailer/remotes: Running explorers +__file/etc/nullmailer/remotes: Checking manifest +__file/etc/openntpd/ntpd.conf: Preparing object +__file/etc/openntpd/ntpd.conf: Running explorers +__file/etc/openntpd/ntpd.conf: Checking manifest +__file/etc/sudoers.d/systems: Preparing object +__file/etc/sudoers.d/systems: Running explorers +__file/etc/sudoers.d/systems: Checking manifest +__link/etc/motd: Preparing object +__link/etc/motd: Checking manifest +__motd/singleton: Preparing object +__motd/singleton: Checking manifest +__motd/singleton: Executing manifest +__package/mc: Preparing object +__package/mc: Checking manifest +__package/mc: Executing manifest +__package/ant: Preparing object +__package/ant: Checking manifest +__package/ant: Executing manifest +__package/gcc: Preparing object +__package/gcc: Checking manifest +__package/gcc: Executing manifest +__package/gdb: Preparing object +__package/gdb: Checking manifest +__package/gdb: Executing manifest +__package/vim: Preparing object +__package/vim: Checking manifest +__package/vim: Executing manifest +__package/git-core: Preparing object +__package/git-core: Checking manifest +__package/git-core: Executing manifest +__package/atop: Preparing object +__package/atop: Checking manifest +__package/atop: Executing manifest +__package/flex: Preparing object +__package/flex: Checking manifest +__package/flex: Executing manifest +__package/gawk: Preparing object +__package/gawk: Checking manifest +__package/gawk: Executing manifest +__package/make: Preparing object +__package/make: Checking manifest +__package/make: Executing manifest +__package/sudo: Preparing object +__package/sudo: Checking manifest +__package/sudo: Executing manifest +__package/swig: Preparing object +__package/swig: Checking manifest +__package/swig: Executing manifest +__package/libreadline5-dev: Preparing object +__package/libreadline5-dev: Checking manifest +__package/libreadline5-dev: Executing manifest +__package/libexpat1-dev: Preparing object +__package/libexpat1-dev: Checking manifest +__package/libexpat1-dev: Executing manifest +__package/libnet-ssleay-perl: Preparing object +__package/libnet-ssleay-perl: Checking manifest +__package/libnet-ssleay-perl: Executing manifest +__package/subversion: Preparing object +__package/subversion: Checking manifest +__package/subversion: Executing manifest +__package/libcurl4-openssl-dev: Preparing object +__package/libcurl4-openssl-dev: Checking manifest +__package/libcurl4-openssl-dev: Executing manifest +__package/bison: Preparing object +__package/bison: Checking manifest +__package/bison: Executing manifest +__package/cmake: Preparing object +__package/cmake: Checking manifest +__package/cmake: Executing manifest +__package/emacs: Preparing object +__package/emacs: Checking manifest +__package/emacs: Executing manifest +__package/xfce4: Preparing object +__package/xfce4: Checking manifest +__package/xfce4: Executing manifest +__package/xterm: Preparing object +__package/xterm: Checking manifest +__package/xterm: Executing manifest +__package/tcl8.4-dev: Preparing object +__package/tcl8.4-dev: Checking manifest +__package/tcl8.4-dev: Executing manifest +__package/libio-socket-ssl-perl: Preparing object +__package/libio-socket-ssl-perl: Checking manifest +__package/libio-socket-ssl-perl: Executing manifest +__package/doxygen: Preparing object +__package/doxygen: Checking manifest +__package/doxygen: Executing manifest +__package/zlib1g-dev: Preparing object +__package/zlib1g-dev: Checking manifest +__package/zlib1g-dev: Executing manifest +__package/autoconf: Preparing object +__package/autoconf: Checking manifest +__package/autoconf: Executing manifest +__package/libtool: Preparing object +__package/libtool: Checking manifest +__package/libtool: Executing manifest +__package/syslog-ng: Preparing object +__package/syslog-ng: Checking manifest +__package/syslog-ng: Executing manifest +__package/traceroute-nanog: Preparing object +__package/traceroute-nanog: Checking manifest +__package/traceroute-nanog: Executing manifest +__package/libncurses5-dev: Preparing object +__package/libncurses5-dev: Checking manifest +__package/libncurses5-dev: Executing manifest +__package/libaio-dev: Preparing object +__package/libaio-dev: Checking manifest +__package/libaio-dev: Executing manifest +__package/libboost-dev: Preparing object +__package/libboost-dev: Checking manifest +__package/libboost-dev: Executing manifest +__package/xtightvncviewer: Preparing object +__package/xtightvncviewer: Checking manifest +__package/xtightvncviewer: Executing manifest +__package/nullmailer: Preparing object +__package/nullmailer: Checking manifest +__package/nullmailer: Executing manifest +__package/libxml2-dev: Preparing object +__package/libxml2-dev: Checking manifest +__package/libxml2-dev: Executing manifest +__package/libtidy-dev: Preparing object +__package/libtidy-dev: Checking manifest +__package/libtidy-dev: Executing manifest +__package/manpages: Preparing object +__package/manpages: Checking manifest +__package/manpages: Executing manifest +__package/gcc-doc: Preparing object +__package/gcc-doc: Checking manifest +__package/gcc-doc: Executing manifest +__package/fluxbox: Preparing object +__package/fluxbox: Checking manifest +__package/fluxbox: Executing manifest +__package/libicu-dev: Preparing object +__package/libicu-dev: Checking manifest +__package/libicu-dev: Executing manifest +__package/libc6-dev-i386: Preparing object +__package/libc6-dev-i386: Checking manifest +__package/libc6-dev-i386: Executing manifest +__package/mercurial: Preparing object +__package/mercurial: Checking manifest +__package/mercurial: Executing manifest +__package/git-doc: Preparing object +__package/git-doc: Checking manifest +__package/git-doc: Executing manifest +__package/git-svn: Preparing object +__package/git-svn: Checking manifest +__package/git-svn: Executing manifest +__package/libnuma-dev: Preparing object +__package/libnuma-dev: Checking manifest +__package/libnuma-dev: Executing manifest +__package/gnuplot: Preparing object +__package/gnuplot: Checking manifest +__package/gnuplot: Executing manifest +__package/screen: Preparing object +__package/screen: Checking manifest +__package/screen: Executing manifest +__package/openntpd: Preparing object +__package/openntpd: Checking manifest +__package/openntpd: Executing manifest +__package/gcc-multilib: Preparing object +__package/gcc-multilib: Checking manifest +__package/gcc-multilib: Executing manifest +__package/libboost-regex-dev: Preparing object +__package/libboost-regex-dev: Checking manifest +__package/libboost-regex-dev: Executing manifest +__package/g++-multilib: Preparing object +__package/g++-multilib: Checking manifest +__package/g++-multilib: Executing manifest +__package/xfonts-base: Preparing object +__package/xfonts-base: Checking manifest +__package/xfonts-base: Executing manifest +__package/rdesktop: Preparing object +__package/rdesktop: Checking manifest +__package/rdesktop: Executing manifest +__package/build-essential: Preparing object +__package/build-essential: Checking manifest +__package/build-essential: Executing manifest +__package/tightvncserver: Preparing object +__package/tightvncserver: Checking manifest +__package/tightvncserver: Executing manifest +__package/python-crypto: Preparing object +__package/python-crypto: Checking manifest +__package/python-crypto: Executing manifest +__package/libc6-dev: Preparing object +__package/libc6-dev: Checking manifest +__package/libc6-dev: Executing manifest +__package/manpages-dev: Preparing object +__package/manpages-dev: Checking manifest +__package/manpages-dev: Executing manifest +__package/ia32-libs: Preparing object +__package/ia32-libs: Checking manifest +__package/ia32-libs: Executing manifest +__package/libxml-checker-perl: Preparing object +__package/libxml-checker-perl: Checking manifest +__package/libxml-checker-perl: Executing manifest +__ethz_pam_krb5/singleton: Preparing object +__ethz_pam_krb5/singleton: Checking manifest +__ethz_pam_krb5/singleton: Executing manifest +__ethz_dinfk_autofs/singleton: Preparing object +__ethz_dinfk_autofs/singleton: Checking manifest +__ethz_dinfk_autofs/singleton: Executing manifest +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__ethz_dinfk_ldap/singleton: Preparing object +__ethz_dinfk_ldap/singleton: Checking manifest +__ethz_dinfk_ldap/singleton: Executing manifest +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__directory/etc/ethz/autofs: Preparing object +__directory/etc/ethz/autofs: Running explorers +__directory/etc/ethz/autofs: Checking manifest +__ethz_krb5/singleton: Preparing object +__ethz_krb5/singleton: Checking manifest +__ethz_krb5/singleton: Executing manifest +__package_apt/mc: Preparing object +__package_apt/mc: Running explorers +__package_apt/mc: Checking manifest +__package_apt/ant: Preparing object +__package_apt/ant: Running explorers +__package_apt/ant: Checking manifest +__package_apt/gcc: Preparing object +__package_apt/gcc: Running explorers +__package_apt/gcc: Checking manifest +__package_apt/gdb: Preparing object +__package_apt/gdb: Running explorers +__package_apt/gdb: Checking manifest +__package_apt/vim: Preparing object +__package_apt/vim: Running explorers +__package_apt/vim: Checking manifest +__package_apt/git-core: Preparing object +__package_apt/git-core: Running explorers +__package_apt/git-core: Checking manifest +__package_apt/atop: Preparing object +__package_apt/atop: Running explorers +__package_apt/atop: Checking manifest +__package_apt/flex: Preparing object +__package_apt/flex: Running explorers +__package_apt/flex: Checking manifest +__package_apt/gawk: Preparing object +__package_apt/gawk: Running explorers +__package_apt/gawk: Checking manifest +__package_apt/make: Preparing object +__package_apt/make: Running explorers +__package_apt/make: Checking manifest +__package_apt/sudo: Preparing object +__package_apt/sudo: Running explorers +__package_apt/sudo: Checking manifest +__package_apt/swig: Preparing object +__package_apt/swig: Running explorers +__package_apt/swig: Checking manifest +__package_apt/libreadline5-dev: Preparing object +__package_apt/libreadline5-dev: Running explorers +__package_apt/libreadline5-dev: Checking manifest +__package_apt/libexpat1-dev: Preparing object +__package_apt/libexpat1-dev: Running explorers +__package_apt/libexpat1-dev: Checking manifest +__package_apt/libnet-ssleay-perl: Preparing object +__package_apt/libnet-ssleay-perl: Running explorers +__package_apt/libnet-ssleay-perl: Checking manifest +__package_apt/subversion: Preparing object +__package_apt/subversion: Running explorers +__package_apt/subversion: Checking manifest +__package_apt/libcurl4-openssl-dev: Preparing object +__package_apt/libcurl4-openssl-dev: Running explorers +__package_apt/libcurl4-openssl-dev: Checking manifest +__package_apt/bison: Preparing object +__package_apt/bison: Running explorers +__package_apt/bison: Checking manifest +__package_apt/cmake: Preparing object +__package_apt/cmake: Running explorers +__package_apt/cmake: Checking manifest +__package_apt/emacs: Preparing object +__package_apt/emacs: Running explorers +__package_apt/emacs: Checking manifest +__package_apt/xfce4: Preparing object +__package_apt/xfce4: Running explorers +__package_apt/xfce4: Checking manifest +__package_apt/xterm: Preparing object +__package_apt/xterm: Running explorers +__package_apt/xterm: Checking manifest +__package_apt/tcl8.4-dev: Preparing object +__package_apt/tcl8.4-dev: Running explorers +__package_apt/tcl8.4-dev: Checking manifest +__package_apt/libio-socket-ssl-perl: Preparing object +__package_apt/libio-socket-ssl-perl: Running explorers +__package_apt/libio-socket-ssl-perl: Checking manifest +__package_apt/doxygen: Preparing object +__package_apt/doxygen: Running explorers +__package_apt/doxygen: Checking manifest +__package_apt/zlib1g-dev: Preparing object +__package_apt/zlib1g-dev: Running explorers +__package_apt/zlib1g-dev: Checking manifest +__package_apt/autoconf: Preparing object +__package_apt/autoconf: Running explorers +__package_apt/autoconf: Checking manifest +__package_apt/libtool: Preparing object +__package_apt/libtool: Running explorers +__package_apt/libtool: Checking manifest +__package_apt/syslog-ng: Preparing object +__package_apt/syslog-ng: Running explorers +__package_apt/syslog-ng: Checking manifest +__package_apt/traceroute-nanog: Preparing object +__package_apt/traceroute-nanog: Running explorers +__package_apt/traceroute-nanog: Checking manifest +__package_apt/libncurses5-dev: Preparing object +__package_apt/libncurses5-dev: Running explorers +__package_apt/libncurses5-dev: Checking manifest +__package_apt/libaio-dev: Preparing object +__package_apt/libaio-dev: Running explorers +__package_apt/libaio-dev: Checking manifest +__package_apt/libboost-dev: Preparing object +__package_apt/libboost-dev: Running explorers +__package_apt/libboost-dev: Checking manifest +__package_apt/xtightvncviewer: Preparing object +__package_apt/xtightvncviewer: Running explorers +__package_apt/xtightvncviewer: Checking manifest +__package_apt/nullmailer: Preparing object +__package_apt/nullmailer: Running explorers +__package_apt/nullmailer: Checking manifest +__package_apt/libxml2-dev: Preparing object +__package_apt/libxml2-dev: Running explorers +__package_apt/libxml2-dev: Checking manifest +__package_apt/libtidy-dev: Preparing object +__package_apt/libtidy-dev: Running explorers +__package_apt/libtidy-dev: Checking manifest +__package_apt/manpages: Preparing object +__package_apt/manpages: Running explorers +__package_apt/manpages: Checking manifest +__package_apt/gcc-doc: Preparing object +__package_apt/gcc-doc: Running explorers +__package_apt/gcc-doc: Checking manifest +__package_apt/fluxbox: Preparing object +__package_apt/fluxbox: Running explorers +__package_apt/fluxbox: Checking manifest +__package_apt/libicu-dev: Preparing object +__package_apt/libicu-dev: Running explorers +__package_apt/libicu-dev: Checking manifest +__package_apt/libc6-dev-i386: Preparing object +__package_apt/libc6-dev-i386: Running explorers +__package_apt/libc6-dev-i386: Checking manifest +__package_apt/mercurial: Preparing object +__package_apt/mercurial: Running explorers +__package_apt/mercurial: Checking manifest +__package_apt/git-doc: Preparing object +__package_apt/git-doc: Running explorers +__package_apt/git-doc: Checking manifest +__package_apt/git-svn: Preparing object +__package_apt/git-svn: Running explorers +__package_apt/git-svn: Checking manifest +__package_apt/libnuma-dev: Preparing object +__package_apt/libnuma-dev: Running explorers +__package_apt/libnuma-dev: Checking manifest +__package_apt/gnuplot: Preparing object +__package_apt/gnuplot: Running explorers +__package_apt/gnuplot: Checking manifest +__package_apt/screen: Preparing object +__package_apt/screen: Running explorers +__package_apt/screen: Checking manifest +__package_apt/openntpd: Preparing object +__package_apt/openntpd: Running explorers +__package_apt/openntpd: Checking manifest +__package_apt/gcc-multilib: Preparing object +__package_apt/gcc-multilib: Running explorers +__package_apt/gcc-multilib: Checking manifest +__package_apt/libboost-regex-dev: Preparing object +__package_apt/libboost-regex-dev: Running explorers +__package_apt/libboost-regex-dev: Checking manifest +__package_apt/g++-multilib: Preparing object +__package_apt/g++-multilib: Running explorers +__package_apt/g++-multilib: Checking manifest +__package_apt/xfonts-base: Preparing object +__package_apt/xfonts-base: Running explorers +__package_apt/xfonts-base: Checking manifest +__package_apt/rdesktop: Preparing object +__package_apt/rdesktop: Running explorers +__package_apt/rdesktop: Checking manifest +__package_apt/build-essential: Preparing object +__package_apt/build-essential: Running explorers +__package_apt/build-essential: Checking manifest +__package_apt/tightvncserver: Preparing object +__package_apt/tightvncserver: Running explorers +__package_apt/tightvncserver: Checking manifest +__package_apt/python-crypto: Preparing object +__package_apt/python-crypto: Running explorers +__package_apt/python-crypto: Checking manifest +__package_apt/libc6-dev: Preparing object +__package_apt/libc6-dev: Running explorers +__package_apt/libc6-dev: Checking manifest +__package_apt/manpages-dev: Preparing object +__package_apt/manpages-dev: Running explorers +__package_apt/manpages-dev: Checking manifest +__package_apt/ia32-libs: Preparing object +__package_apt/ia32-libs: Running explorers +__package_apt/ia32-libs: Checking manifest +__package_apt/libxml-checker-perl: Preparing object +__package_apt/libxml-checker-perl: Running explorers +__package_apt/libxml-checker-perl: Checking manifest +__file/etc/nsswitch.conf: Preparing object +__file/etc/nsswitch.conf: Running explorers +__file/etc/nsswitch.conf: Checking manifest +__file/etc/ethz/autofs/auto_home: Preparing object +__file/etc/ethz/autofs/auto_home: Running explorers +__file/etc/ethz/autofs/auto_home: Checking manifest +__file/etc/auto.master: Preparing object +__file/etc/auto.master: Running explorers +__file/etc/auto.master: Checking manifest +__file/etc/motd.tail: Preparing object +__file/etc/motd.tail: Running explorers +__file/etc/motd.tail: Checking manifest +__file/etc/nslcd.conf: Preparing object +__file/etc/nslcd.conf: Running explorers +__file/etc/nslcd.conf: Checking manifest +__package/python-ldap: Preparing object +__package/python-ldap: Checking manifest +__package/python-ldap: Executing manifest +__package/libnss-ldapd: Preparing object +__package/libnss-ldapd: Checking manifest +__package/libnss-ldapd: Executing manifest +__package/autofs: Preparing object +__package/autofs: Checking manifest +__package/autofs: Executing manifest +__package/libpam-krb5: Preparing object +__package/libpam-krb5: Checking manifest +__package/libpam-krb5: Executing manifest +__package_apt/python-ldap: Preparing object +__package_apt/python-ldap: Running explorers +__package_apt/python-ldap: Checking manifest +__package_apt/libnss-ldapd: Preparing object +__package_apt/libnss-ldapd: Running explorers +__package_apt/libnss-ldapd: Checking manifest +__package_apt/autofs: Preparing object +__package_apt/autofs: Running explorers +__package_apt/autofs: Checking manifest +__package_apt/libpam-krb5: Preparing object +__package_apt/libpam-krb5: Running explorers +__package_apt/libpam-krb5: Checking manifest +__file/etc/krb5.conf: Preparing object +__file/etc/krb5.conf: Running explorers +__file/etc/krb5.conf: Checking manifest +core: Debug: Mit Apr 27 14:18:44 CEST 2011 +__ethz_nullmailer/singleton: Generating local code +__ethz_nullmailer/singleton: Generating remote code +__ethz_nullmailer/singleton: Transferring object +__ethz_nullmailer/singleton: Checking code-local +__ethz_nullmailer/singleton: Executing code-local +__ethz_nullmailer/singleton: Checking code-remote +__ethz_nullmailer/singleton: Executing code-remote +__ethz_systems_ldap_krb5_autofs/singleton: Generating local code +__ethz_systems_ldap_krb5_autofs/singleton: Generating remote code +__ethz_systems_ldap_krb5_autofs/singleton: Transferring object +__ethz_systems_ldap_krb5_autofs/singleton: Checking code-local +__ethz_systems_ldap_krb5_autofs/singleton: Executing code-local +__ethz_systems_ldap_krb5_autofs/singleton: Checking code-remote +__ethz_systems_ldap_krb5_autofs/singleton: Executing code-remote +__etc_hosts/singleton: Generating local code +__etc_hosts/singleton: Generating remote code +__etc_hosts/singleton: Transferring object +__etc_hosts/singleton: Checking code-local +__etc_hosts/singleton: Executing code-local +__etc_hosts/singleton: Checking code-remote +__etc_hosts/singleton: Executing code-remote +__directory/etc/ethz/autofs: Generating local code +__directory/etc/ethz/autofs: Generating remote code +__directory/etc/ethz/autofs: Transferring object +__directory/etc/ethz/autofs: Checking code-local +__directory/etc/ethz/autofs: Executing code-local +__directory/etc/ethz/autofs: Checking code-remote +__directory/etc/ethz/autofs: Executing code-remote +__directory/local: Generating local code +__directory/local: Generating remote code +__directory/local: Transferring object +__directory/local: Checking code-local +__directory/local: Executing code-local +__directory/local: Checking code-remote +__directory/local: Executing code-remote +__ethz_krb5/singleton: Generating local code +__ethz_krb5/singleton: Generating remote code +__ethz_krb5/singleton: Transferring object +__ethz_krb5/singleton: Checking code-local +__ethz_krb5/singleton: Executing code-local +__ethz_krb5/singleton: Checking code-remote +__ethz_krb5/singleton: Executing code-remote +__ethz_ntpd/singleton: Generating local code +__ethz_ntpd/singleton: Generating remote code +__ethz_ntpd/singleton: Transferring object +__ethz_ntpd/singleton: Checking code-local +__ethz_ntpd/singleton: Executing code-local +__ethz_ntpd/singleton: Checking code-remote +__ethz_ntpd/singleton: Executing code-remote +__ethz_systems_packages/singleton: Generating local code +__ethz_systems_packages/singleton: Generating remote code +__ethz_systems_packages/singleton: Transferring object +__ethz_systems_packages/singleton: Checking code-local +__ethz_systems_packages/singleton: Executing code-local +__ethz_systems_packages/singleton: Checking code-remote +__ethz_systems_packages/singleton: Executing code-remote +__package_apt/mc: Generating local code +__package_apt/mc: Generating remote code +__package_apt/mc: Transferring object +__package_apt/mc: Checking code-local +__package_apt/mc: Executing code-local +__package_apt/mc: Checking code-remote +__package_apt/mc: Executing code-remote +__package_apt/ant: Generating local code +__package_apt/ant: Generating remote code +__package_apt/ant: Transferring object +__package_apt/ant: Checking code-local +__package_apt/ant: Executing code-local +__package_apt/ant: Checking code-remote +__package_apt/ant: Executing code-remote +__package_apt/gcc: Generating local code +__package_apt/gcc: Generating remote code +__package_apt/gcc: Transferring object +__package_apt/gcc: Checking code-local +__package_apt/gcc: Executing code-local +__package_apt/gcc: Checking code-remote +__package_apt/gcc: Executing code-remote +__package_apt/gdb: Generating local code +__package_apt/gdb: Generating remote code +__package_apt/gdb: Transferring object +__package_apt/gdb: Checking code-local +__package_apt/gdb: Executing code-local +__package_apt/gdb: Checking code-remote +__package_apt/gdb: Executing code-remote +__package_apt/vim: Generating local code +__package_apt/vim: Generating remote code +__package_apt/vim: Transferring object +__package_apt/vim: Checking code-local +__package_apt/vim: Executing code-local +__package_apt/vim: Checking code-remote +__package_apt/vim: Executing code-remote +__package_apt/git-core: Generating local code +__package_apt/git-core: Generating remote code +__package_apt/git-core: Transferring object +__package_apt/git-core: Checking code-local +__package_apt/git-core: Executing code-local +__package_apt/git-core: Checking code-remote +__package_apt/git-core: Executing code-remote +__package_apt/atop: Generating local code +__package_apt/atop: Generating remote code +__package_apt/atop: Transferring object +__package_apt/atop: Checking code-local +__package_apt/atop: Executing code-local +__package_apt/atop: Checking code-remote +__package_apt/atop: Executing code-remote +__package_apt/flex: Generating local code +__package_apt/flex: Generating remote code +__package_apt/flex: Transferring object +__package_apt/flex: Checking code-local +__package_apt/flex: Executing code-local +__package_apt/flex: Checking code-remote +__package_apt/flex: Executing code-remote +__package_apt/gawk: Generating local code +__package_apt/gawk: Generating remote code +__package_apt/gawk: Transferring object +__package_apt/gawk: Checking code-local +__package_apt/gawk: Executing code-local +__package_apt/gawk: Checking code-remote +__package_apt/gawk: Executing code-remote +__package_apt/make: Generating local code +__package_apt/make: Generating remote code +__package_apt/make: Transferring object +__package_apt/make: Checking code-local +__package_apt/make: Executing code-local +__package_apt/make: Checking code-remote +__package_apt/make: Executing code-remote +__package_apt/sudo: Generating local code +__package_apt/sudo: Generating remote code +__package_apt/sudo: Transferring object +__package_apt/sudo: Checking code-local +__package_apt/sudo: Executing code-local +__package_apt/sudo: Checking code-remote +__package_apt/sudo: Executing code-remote +__package_apt/swig: Generating local code +__package_apt/swig: Generating remote code +__package_apt/swig: Transferring object +__package_apt/swig: Checking code-local +__package_apt/swig: Executing code-local +__package_apt/swig: Checking code-remote +__package_apt/swig: Executing code-remote +__package_apt/libreadline5-dev: Generating local code +__package_apt/libreadline5-dev: Generating remote code +__package_apt/libreadline5-dev: Transferring object +__package_apt/libreadline5-dev: Checking code-local +__package_apt/libreadline5-dev: Executing code-local +__package_apt/libreadline5-dev: Checking code-remote +__package_apt/libreadline5-dev: Executing code-remote +__package_apt/libexpat1-dev: Generating local code +__package_apt/libexpat1-dev: Generating remote code +__package_apt/libexpat1-dev: Transferring object +__package_apt/libexpat1-dev: Checking code-local +__package_apt/libexpat1-dev: Executing code-local +__package_apt/libexpat1-dev: Checking code-remote +__package_apt/libexpat1-dev: Executing code-remote +__package_apt/libnet-ssleay-perl: Generating local code +__package_apt/libnet-ssleay-perl: Generating remote code +__package_apt/libnet-ssleay-perl: Transferring object +__package_apt/libnet-ssleay-perl: Checking code-local +__package_apt/libnet-ssleay-perl: Executing code-local +__package_apt/libnet-ssleay-perl: Checking code-remote +__package_apt/libnet-ssleay-perl: Executing code-remote +__package_apt/subversion: Generating local code +__package_apt/subversion: Generating remote code +__package_apt/subversion: Transferring object +__package_apt/subversion: Checking code-local +__package_apt/subversion: Executing code-local +__package_apt/subversion: Checking code-remote +__package_apt/subversion: Executing code-remote +__package_apt/libcurl4-openssl-dev: Generating local code +__package_apt/libcurl4-openssl-dev: Generating remote code +__package_apt/libcurl4-openssl-dev: Transferring object +__package_apt/libcurl4-openssl-dev: Checking code-local +__package_apt/libcurl4-openssl-dev: Executing code-local +__package_apt/libcurl4-openssl-dev: Checking code-remote +__package_apt/libcurl4-openssl-dev: Executing code-remote +__package_apt/bison: Generating local code +__package_apt/bison: Generating remote code +__package_apt/bison: Transferring object +__package_apt/bison: Checking code-local +__package_apt/bison: Executing code-local +__package_apt/bison: Checking code-remote +__package_apt/bison: Executing code-remote +__package_apt/cmake: Generating local code +__package_apt/cmake: Generating remote code +__package_apt/cmake: Transferring object +__package_apt/cmake: Checking code-local +__package_apt/cmake: Executing code-local +__package_apt/cmake: Checking code-remote +__package_apt/cmake: Executing code-remote +__package_apt/emacs: Generating local code +__package_apt/emacs: Generating remote code +__package_apt/emacs: Transferring object +__package_apt/emacs: Checking code-local +__package_apt/emacs: Executing code-local +__package_apt/emacs: Checking code-remote +__package_apt/emacs: Executing code-remote +__package_apt/xfce4: Generating local code +__package_apt/xfce4: Generating remote code +__package_apt/xfce4: Transferring object +__package_apt/xfce4: Checking code-local +__package_apt/xfce4: Executing code-local +__package_apt/xfce4: Checking code-remote +__package_apt/xfce4: Executing code-remote +__package_apt/xterm: Generating local code +__package_apt/xterm: Generating remote code +__package_apt/xterm: Transferring object +__package_apt/xterm: Checking code-local +__package_apt/xterm: Executing code-local +__package_apt/xterm: Checking code-remote +__package_apt/xterm: Executing code-remote +__package_apt/tcl8.4-dev: Generating local code +__package_apt/tcl8.4-dev: Generating remote code +__package_apt/tcl8.4-dev: Transferring object +__package_apt/tcl8.4-dev: Checking code-local +__package_apt/tcl8.4-dev: Executing code-local +__package_apt/tcl8.4-dev: Checking code-remote +__package_apt/tcl8.4-dev: Executing code-remote +__package_apt/libio-socket-ssl-perl: Generating local code +__package_apt/libio-socket-ssl-perl: Generating remote code +__package_apt/libio-socket-ssl-perl: Transferring object +__package_apt/libio-socket-ssl-perl: Checking code-local +__package_apt/libio-socket-ssl-perl: Executing code-local +__package_apt/libio-socket-ssl-perl: Checking code-remote +__package_apt/libio-socket-ssl-perl: Executing code-remote +__package_apt/doxygen: Generating local code +__package_apt/doxygen: Generating remote code +__package_apt/doxygen: Transferring object +__package_apt/doxygen: Checking code-local +__package_apt/doxygen: Executing code-local +__package_apt/doxygen: Checking code-remote +__package_apt/doxygen: Executing code-remote +__package_apt/zlib1g-dev: Generating local code +__package_apt/zlib1g-dev: Generating remote code +__package_apt/zlib1g-dev: Transferring object +__package_apt/zlib1g-dev: Checking code-local +__package_apt/zlib1g-dev: Executing code-local +__package_apt/zlib1g-dev: Checking code-remote +__package_apt/zlib1g-dev: Executing code-remote +__package_apt/autoconf: Generating local code +__package_apt/autoconf: Generating remote code +__package_apt/autoconf: Transferring object +__package_apt/autoconf: Checking code-local +__package_apt/autoconf: Executing code-local +__package_apt/autoconf: Checking code-remote +__package_apt/autoconf: Executing code-remote +__package_apt/python-ldap: Generating local code +__package_apt/python-ldap: Generating remote code +__package_apt/python-ldap: Transferring object +__package_apt/python-ldap: Checking code-local +__package_apt/python-ldap: Executing code-local +__package_apt/python-ldap: Checking code-remote +__package_apt/python-ldap: Executing code-remote +__package_apt/libtool: Generating local code +__package_apt/libtool: Generating remote code +__package_apt/libtool: Transferring object +__package_apt/libtool: Checking code-local +__package_apt/libtool: Executing code-local +__package_apt/libtool: Checking code-remote +__package_apt/libtool: Executing code-remote +__package_apt/syslog-ng: Generating local code +__package_apt/syslog-ng: Generating remote code +__package_apt/syslog-ng: Transferring object +__package_apt/syslog-ng: Checking code-local +__package_apt/syslog-ng: Executing code-local +__package_apt/syslog-ng: Checking code-remote +__package_apt/syslog-ng: Executing code-remote +__package_apt/traceroute-nanog: Generating local code +__package_apt/traceroute-nanog: Generating remote code +__package_apt/traceroute-nanog: Transferring object +__package_apt/traceroute-nanog: Checking code-local +__package_apt/traceroute-nanog: Executing code-local +__package_apt/traceroute-nanog: Checking code-remote +__package_apt/traceroute-nanog: Executing code-remote +__package_apt/libnss-ldapd: Generating local code +__package_apt/libnss-ldapd: Generating remote code +__package_apt/libnss-ldapd: Transferring object +__package_apt/libnss-ldapd: Checking code-local +__package_apt/libnss-ldapd: Executing code-local +__package_apt/libnss-ldapd: Checking code-remote +__package_apt/libnss-ldapd: Executing code-remote +__package_apt/libncurses5-dev: Generating local code +__package_apt/libncurses5-dev: Generating remote code +__package_apt/libncurses5-dev: Transferring object +__package_apt/libncurses5-dev: Checking code-local +__package_apt/libncurses5-dev: Executing code-local +__package_apt/libncurses5-dev: Checking code-remote +__package_apt/libncurses5-dev: Executing code-remote +__package_apt/libaio-dev: Generating local code +__package_apt/libaio-dev: Generating remote code +__package_apt/libaio-dev: Transferring object +__package_apt/libaio-dev: Checking code-local +__package_apt/libaio-dev: Executing code-local +__package_apt/libaio-dev: Checking code-remote +__package_apt/libaio-dev: Executing code-remote +__package_apt/libboost-dev: Generating local code +__package_apt/libboost-dev: Generating remote code +__package_apt/libboost-dev: Transferring object +__package_apt/libboost-dev: Checking code-local +__package_apt/libboost-dev: Executing code-local +__package_apt/libboost-dev: Checking code-remote +__package_apt/libboost-dev: Executing code-remote +__package_apt/xtightvncviewer: Generating local code +__package_apt/xtightvncviewer: Generating remote code +__package_apt/xtightvncviewer: Transferring object +__package_apt/xtightvncviewer: Checking code-local +__package_apt/xtightvncviewer: Executing code-local +__package_apt/xtightvncviewer: Checking code-remote +__package_apt/xtightvncviewer: Executing code-remote +__package_apt/nullmailer: Generating local code +__package_apt/nullmailer: Generating remote code +__package_apt/nullmailer: Transferring object +__package_apt/nullmailer: Checking code-local +__package_apt/nullmailer: Executing code-local +__package_apt/nullmailer: Checking code-remote +__package_apt/nullmailer: Executing code-remote +__package_apt/libxml2-dev: Generating local code +__package_apt/libxml2-dev: Generating remote code +__package_apt/libxml2-dev: Transferring object +__package_apt/libxml2-dev: Checking code-local +__package_apt/libxml2-dev: Executing code-local +__package_apt/libxml2-dev: Checking code-remote +__package_apt/libxml2-dev: Executing code-remote +__package_apt/libtidy-dev: Generating local code +__package_apt/libtidy-dev: Generating remote code +__package_apt/libtidy-dev: Transferring object +__package_apt/libtidy-dev: Checking code-local +__package_apt/libtidy-dev: Executing code-local +__package_apt/libtidy-dev: Checking code-remote +__package_apt/libtidy-dev: Executing code-remote +__package_apt/manpages: Generating local code +__package_apt/manpages: Generating remote code +__package_apt/manpages: Transferring object +__package_apt/manpages: Checking code-local +__package_apt/manpages: Executing code-local +__package_apt/manpages: Checking code-remote +__package_apt/manpages: Executing code-remote +__package_apt/autofs: Generating local code +__package_apt/autofs: Generating remote code +__package_apt/autofs: Transferring object +__package_apt/autofs: Checking code-local +__package_apt/autofs: Executing code-local +__package_apt/autofs: Checking code-remote +__package_apt/autofs: Executing code-remote +__package_apt/gcc-doc: Generating local code +__package_apt/gcc-doc: Generating remote code +__package_apt/gcc-doc: Transferring object +__package_apt/gcc-doc: Checking code-local +__package_apt/gcc-doc: Executing code-local +__package_apt/gcc-doc: Checking code-remote +__package_apt/gcc-doc: Executing code-remote +__package_apt/fluxbox: Generating local code +__package_apt/fluxbox: Generating remote code +__package_apt/fluxbox: Transferring object +__package_apt/fluxbox: Checking code-local +__package_apt/fluxbox: Executing code-local +__package_apt/fluxbox: Checking code-remote +__package_apt/fluxbox: Executing code-remote +__package_apt/libicu-dev: Generating local code +__package_apt/libicu-dev: Generating remote code +__package_apt/libicu-dev: Transferring object +__package_apt/libicu-dev: Checking code-local +__package_apt/libicu-dev: Executing code-local +__package_apt/libicu-dev: Checking code-remote +__package_apt/libicu-dev: Executing code-remote +__package_apt/libc6-dev-i386: Generating local code +__package_apt/libc6-dev-i386: Generating remote code +__package_apt/libc6-dev-i386: Transferring object +__package_apt/libc6-dev-i386: Checking code-local +__package_apt/libc6-dev-i386: Executing code-local +__package_apt/libc6-dev-i386: Checking code-remote +__package_apt/libc6-dev-i386: Executing code-remote +__package_apt/mercurial: Generating local code +__package_apt/mercurial: Generating remote code +__package_apt/mercurial: Transferring object +__package_apt/mercurial: Checking code-local +__package_apt/mercurial: Executing code-local +__package_apt/mercurial: Checking code-remote +__package_apt/mercurial: Executing code-remote +__package_apt/git-doc: Generating local code +__package_apt/git-doc: Generating remote code +__package_apt/git-doc: Transferring object +__package_apt/git-doc: Checking code-local +__package_apt/git-doc: Executing code-local +__package_apt/git-doc: Checking code-remote +__package_apt/git-doc: Executing code-remote +__package_apt/git-svn: Generating local code +__package_apt/git-svn: Generating remote code +__package_apt/git-svn: Transferring object +__package_apt/git-svn: Checking code-local +__package_apt/git-svn: Executing code-local +__package_apt/git-svn: Checking code-remote +__package_apt/git-svn: Executing code-remote +__package_apt/libnuma-dev: Generating local code +__package_apt/libnuma-dev: Generating remote code +__package_apt/libnuma-dev: Transferring object +__package_apt/libnuma-dev: Checking code-local +__package_apt/libnuma-dev: Executing code-local +__package_apt/libnuma-dev: Checking code-remote +__package_apt/libnuma-dev: Executing code-remote +__package_apt/gnuplot: Generating local code +__package_apt/gnuplot: Generating remote code +__package_apt/gnuplot: Transferring object +__package_apt/gnuplot: Checking code-local +__package_apt/gnuplot: Executing code-local +__package_apt/gnuplot: Checking code-remote +__package_apt/gnuplot: Executing code-remote +__package_apt/puppet: Generating local code +__package_apt/puppet: Generating remote code +__package_apt/puppet: Transferring object +__package_apt/puppet: Checking code-local +__package_apt/puppet: Executing code-local +__package_apt/puppet: Checking code-remote +__package_apt/puppet: Executing code-remote +__package_apt/screen: Generating local code +__package_apt/screen: Generating remote code +__package_apt/screen: Transferring object +__package_apt/screen: Checking code-local +__package_apt/screen: Executing code-local +__package_apt/screen: Checking code-remote +__package_apt/screen: Executing code-remote +__package_apt/openntpd: Generating local code +__package_apt/openntpd: Generating remote code +__package_apt/openntpd: Transferring object +__package_apt/openntpd: Checking code-local +__package_apt/openntpd: Executing code-local +__package_apt/openntpd: Checking code-remote +__package_apt/openntpd: Executing code-remote +__package_apt/gcc-multilib: Generating local code +__package_apt/gcc-multilib: Generating remote code +__package_apt/gcc-multilib: Transferring object +__package_apt/gcc-multilib: Checking code-local +__package_apt/gcc-multilib: Executing code-local +__package_apt/gcc-multilib: Checking code-remote +__package_apt/gcc-multilib: Executing code-remote +__package_apt/libboost-regex-dev: Generating local code +__package_apt/libboost-regex-dev: Generating remote code +__package_apt/libboost-regex-dev: Transferring object +__package_apt/libboost-regex-dev: Checking code-local +__package_apt/libboost-regex-dev: Executing code-local +__package_apt/libboost-regex-dev: Checking code-remote +__package_apt/libboost-regex-dev: Executing code-remote +__package_apt/g++-multilib: Generating local code +__package_apt/g++-multilib: Generating remote code +__package_apt/g++-multilib: Transferring object +__package_apt/g++-multilib: Checking code-local +__package_apt/g++-multilib: Executing code-local +__package_apt/g++-multilib: Checking code-remote +__package_apt/g++-multilib: Executing code-remote +__package_apt/xfonts-base: Generating local code +__package_apt/xfonts-base: Generating remote code +__package_apt/xfonts-base: Transferring object +__package_apt/xfonts-base: Checking code-local +__package_apt/xfonts-base: Executing code-local +__package_apt/xfonts-base: Checking code-remote +__package_apt/xfonts-base: Executing code-remote +__package_apt/rdesktop: Generating local code +__package_apt/rdesktop: Generating remote code +__package_apt/rdesktop: Transferring object +__package_apt/rdesktop: Checking code-local +__package_apt/rdesktop: Executing code-local +__package_apt/rdesktop: Checking code-remote +__package_apt/rdesktop: Executing code-remote +__package_apt/build-essential: Generating local code +__package_apt/build-essential: Generating remote code +__package_apt/build-essential: Transferring object +__package_apt/build-essential: Checking code-local +__package_apt/build-essential: Executing code-local +__package_apt/build-essential: Checking code-remote +__package_apt/build-essential: Executing code-remote +__package_apt/tightvncserver: Generating local code +__package_apt/tightvncserver: Generating remote code +__package_apt/tightvncserver: Transferring object +__package_apt/tightvncserver: Checking code-local +__package_apt/tightvncserver: Executing code-local +__package_apt/tightvncserver: Checking code-remote +__package_apt/tightvncserver: Executing code-remote +__package_apt/python-crypto: Generating local code +__package_apt/python-crypto: Generating remote code +__package_apt/python-crypto: Transferring object +__package_apt/python-crypto: Checking code-local +__package_apt/python-crypto: Executing code-local +__package_apt/python-crypto: Checking code-remote +__package_apt/python-crypto: Executing code-remote +__package_apt/libpam-krb5: Generating local code +__package_apt/libpam-krb5: Generating remote code +__package_apt/libpam-krb5: Transferring object +__package_apt/libpam-krb5: Checking code-local +__package_apt/libpam-krb5: Executing code-local +__package_apt/libpam-krb5: Checking code-remote +__package_apt/libpam-krb5: Executing code-remote +__package_apt/libc6-dev: Generating local code +__package_apt/libc6-dev: Generating remote code +__package_apt/libc6-dev: Transferring object +__package_apt/libc6-dev: Checking code-local +__package_apt/libc6-dev: Executing code-local +__package_apt/libc6-dev: Checking code-remote +__package_apt/libc6-dev: Executing code-remote +__package_apt/manpages-dev: Generating local code +__package_apt/manpages-dev: Generating remote code +__package_apt/manpages-dev: Transferring object +__package_apt/manpages-dev: Checking code-local +__package_apt/manpages-dev: Executing code-local +__package_apt/manpages-dev: Checking code-remote +__package_apt/manpages-dev: Executing code-remote +__package_apt/ia32-libs: Generating local code +__package_apt/ia32-libs: Generating remote code +__package_apt/ia32-libs: Transferring object +__package_apt/ia32-libs: Checking code-local +__package_apt/ia32-libs: Executing code-local +__package_apt/ia32-libs: Checking code-remote +__package_apt/ia32-libs: Executing code-remote +__package_apt/libxml-checker-perl: Generating local code +__package_apt/libxml-checker-perl: Generating remote code +__package_apt/libxml-checker-perl: Transferring object +__package_apt/libxml-checker-perl: Checking code-local +__package_apt/libxml-checker-perl: Executing code-local +__package_apt/libxml-checker-perl: Checking code-remote +__package_apt/libxml-checker-perl: Executing code-remote +__addifnosuchline/ssh-root-subasui: Generating local code +__addifnosuchline/ssh-root-subasui: Generating remote code +__addifnosuchline/ssh-root-subasui: Transferring object +__addifnosuchline/ssh-root-subasui: Checking code-local +__addifnosuchline/ssh-root-subasui: Executing code-local +__addifnosuchline/ssh-root-subasui: Checking code-remote +__addifnosuchline/ssh-root-subasui: Executing code-remote +__addifnosuchline/ssh-root-blukas: Generating local code +__addifnosuchline/ssh-root-blukas: Generating remote code +__addifnosuchline/ssh-root-blukas: Transferring object +__addifnosuchline/ssh-root-blukas: Checking code-local +__addifnosuchline/ssh-root-blukas: Executing code-local +__addifnosuchline/ssh-root-blukas: Checking code-remote +__addifnosuchline/ssh-root-blukas: Executing code-remote +__addifnosuchline/ssh-root-petfisch: Generating local code +__addifnosuchline/ssh-root-petfisch: Generating remote code +__addifnosuchline/ssh-root-petfisch: Transferring object +__addifnosuchline/ssh-root-petfisch: Checking code-local +__addifnosuchline/ssh-root-petfisch: Executing code-local +__addifnosuchline/ssh-root-petfisch: Checking code-remote +__addifnosuchline/ssh-root-petfisch: Executing code-remote +__ethz_systems/singleton: Generating local code +__ethz_systems/singleton: Generating remote code +__ethz_systems/singleton: Transferring object +__ethz_systems/singleton: Checking code-local +__ethz_systems/singleton: Executing code-local +__ethz_systems/singleton: Checking code-remote +__ethz_systems/singleton: Executing code-remote +__file/etc/nsswitch.conf: Resolving requirement __package/libnss-ldapd +__package/libnss-ldapd: Generating local code +__package/libnss-ldapd: Generating remote code +__package/libnss-ldapd: Transferring object +__package/libnss-ldapd: Checking code-local +__package/libnss-ldapd: Executing code-local +__package/libnss-ldapd: Checking code-remote +__package/libnss-ldapd: Executing code-remote +__file/etc/nsswitch.conf: Resolving requirement __file//etc/nslcd.conf +__file//etc/nslcd.conf: Generating local code +__file//etc/nslcd.conf: Generating remote code +__file//etc/nslcd.conf: Transferring object +__file//etc/nslcd.conf: Checking code-local +__file//etc/nslcd.conf: Executing code-local +__file//etc/nslcd.conf: Checking code-remote +__file//etc/nslcd.conf: Executing code-remote +__file/etc/nsswitch.conf: Generating local code +__file/etc/nsswitch.conf: Generating remote code +__file/etc/nsswitch.conf: Transferring object +__file/etc/nsswitch.conf: Checking code-local +__file/etc/nsswitch.conf: Executing code-local +__file/etc/nsswitch.conf: Checking code-remote +__file/etc/nsswitch.conf: Executing code-remote +__file/etc/ethz/autofs/auto.pub: Resolving requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Generating local code +__file/etc/ethz/autofs/auto.pub: Generating remote code +__file/etc/ethz/autofs/auto.pub: Transferring object +__file/etc/ethz/autofs/auto.pub: Checking code-local +__file/etc/ethz/autofs/auto.pub: Executing code-local +__file/etc/ethz/autofs/auto.pub: Checking code-remote +__file/etc/ethz/autofs/auto.pub: Executing code-remote +__file/etc/ethz/autofs/auto_home: Resolving requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Resolving requirement __package/python-ldap +__package/python-ldap: Generating local code +__package/python-ldap: Generating remote code +__package/python-ldap: Transferring object +__package/python-ldap: Checking code-local +__package/python-ldap: Executing code-local +__package/python-ldap: Checking code-remote +__package/python-ldap: Executing code-remote +__file/etc/ethz/autofs/auto_home: Generating local code +__file/etc/ethz/autofs/auto_home: Generating remote code +__file/etc/ethz/autofs/auto_home: Transferring object +__file/etc/ethz/autofs/auto_home: Checking code-local +__file/etc/ethz/autofs/auto_home: Executing code-local +__file/etc/ethz/autofs/auto_home: Checking code-remote +__file/etc/ethz/autofs/auto_home: Executing code-remote +__file/etc/default/openntpd: Generating local code +__file/etc/default/openntpd: Generating remote code +__file/etc/default/openntpd: Transferring object +__file/etc/default/openntpd: Checking code-local +__file/etc/default/openntpd: Executing code-local +__file/etc/default/openntpd: Checking code-remote +__file/etc/default/openntpd: Executing code-remote +__file/etc/auto.master: Resolving requirement __package/autofs +__package/autofs: Generating local code +__package/autofs: Generating remote code +__package/autofs: Transferring object +__package/autofs: Checking code-local +__package/autofs: Executing code-local +__package/autofs: Checking code-remote +__package/autofs: Executing code-remote +__file/etc/auto.master: Generating local code +__file/etc/auto.master: Generating remote code +__file/etc/auto.master: Transferring object +__file/etc/auto.master: Checking code-local +__file/etc/auto.master: Executing code-local +__file/etc/auto.master: Checking code-remote +__file/etc/auto.master: Executing code-remote +__file/etc/hosts: Generating local code +__file/etc/hosts: Generating remote code +__file/etc/hosts: Transferring object +__file/etc/hosts: Checking code-local +__file/etc/hosts: Executing code-local +__file/etc/hosts: Checking code-remote +__file/etc/hosts: Executing code-remote +__file/etc/krb5.conf: Generating local code +__file/etc/krb5.conf: Generating remote code +__file/etc/krb5.conf: Transferring object +__file/etc/krb5.conf: Checking code-local +__file/etc/krb5.conf: Executing code-local +__file/etc/krb5.conf: Checking code-remote +__file/etc/krb5.conf: Executing code-remote +__file/etc/syslog-ng/syslog-ng.conf: Resolving requirement __package/syslog-ng +__package/syslog-ng: Generating local code +__package/syslog-ng: Generating remote code +__package/syslog-ng: Transferring object +__package/syslog-ng: Checking code-local +__package/syslog-ng: Executing code-local +__package/syslog-ng: Checking code-remote +__package/syslog-ng: Executing code-remote +__file/etc/syslog-ng/syslog-ng.conf: Generating local code +__file/etc/syslog-ng/syslog-ng.conf: Generating remote code +__file/etc/syslog-ng/syslog-ng.conf: Transferring object +__file/etc/syslog-ng/syslog-ng.conf: Checking code-local +__file/etc/syslog-ng/syslog-ng.conf: Executing code-local +__file/etc/syslog-ng/syslog-ng.conf: Checking code-remote +__file/etc/syslog-ng/syslog-ng.conf: Executing code-remote +__file/etc/nullmailer/remotes: Resolving requirement __package/nullmailer +__package/nullmailer: Generating local code +__package/nullmailer: Generating remote code +__package/nullmailer: Transferring object +__package/nullmailer: Checking code-local +__package/nullmailer: Executing code-local +__package/nullmailer: Checking code-remote +__package/nullmailer: Executing code-remote +__file/etc/nullmailer/remotes: Generating local code +__file/etc/nullmailer/remotes: Generating remote code +__file/etc/nullmailer/remotes: Transferring object +__file/etc/nullmailer/remotes: Checking code-local +__file/etc/nullmailer/remotes: Executing code-local +__file/etc/nullmailer/remotes: Checking code-remote +__file/etc/nullmailer/remotes: Executing code-remote +__file/etc/cdist-configured: Generating local code +__file/etc/cdist-configured: Generating remote code +__file/etc/cdist-configured: Transferring object +__file/etc/cdist-configured: Checking code-local +__file/etc/cdist-configured: Executing code-local +__file/etc/cdist-configured: Checking code-remote +__file/etc/cdist-configured: Executing code-remote +__file/etc/motd.tail: Generating local code +__file/etc/motd.tail: Generating remote code +__file/etc/motd.tail: Transferring object +__file/etc/motd.tail: Checking code-local +__file/etc/motd.tail: Executing code-local +__file/etc/motd.tail: Checking code-remote +__file/etc/motd.tail: Executing code-remote +__file/etc/openntpd/ntpd.conf: Generating local code +__file/etc/openntpd/ntpd.conf: Generating remote code +__file/etc/openntpd/ntpd.conf: Transferring object +__file/etc/openntpd/ntpd.conf: Checking code-local +__file/etc/openntpd/ntpd.conf: Executing code-local +__file/etc/openntpd/ntpd.conf: Checking code-remote +__file/etc/openntpd/ntpd.conf: Executing code-remote +__file/etc/sudoers.d/systems: Resolving requirement __package/sudo +__package/sudo: Generating local code +__package/sudo: Generating remote code +__package/sudo: Transferring object +__package/sudo: Checking code-local +__package/sudo: Executing code-local +__package/sudo: Checking code-remote +__package/sudo: Executing code-remote +__file/etc/sudoers.d/systems: Generating local code +__file/etc/sudoers.d/systems: Generating remote code +__file/etc/sudoers.d/systems: Transferring object +__file/etc/sudoers.d/systems: Checking code-local +__file/etc/sudoers.d/systems: Executing code-local +__file/etc/sudoers.d/systems: Checking code-remote +__file/etc/sudoers.d/systems: Executing code-remote +__link/etc/motd: Generating local code +__link/etc/motd: Generating remote code +__link/etc/motd: Transferring object +__link/etc/motd: Checking code-local +__link/etc/motd: Executing code-local +__link/etc/motd: Checking code-remote +__link/etc/motd: Executing code-remote +__motd/singleton: Generating local code +__motd/singleton: Generating remote code +__motd/singleton: Transferring object +__motd/singleton: Checking code-local +__motd/singleton: Executing code-local +__motd/singleton: Checking code-remote +__motd/singleton: Executing code-remote +__package/mc: Generating local code +__package/mc: Generating remote code +__package/mc: Transferring object +__package/mc: Checking code-local +__package/mc: Executing code-local +__package/mc: Checking code-remote +__package/mc: Executing code-remote +__package/ant: Generating local code +__package/ant: Generating remote code +__package/ant: Transferring object +__package/ant: Checking code-local +__package/ant: Executing code-local +__package/ant: Checking code-remote +__package/ant: Executing code-remote +__package/gcc: Generating local code +__package/gcc: Generating remote code +__package/gcc: Transferring object +__package/gcc: Checking code-local +__package/gcc: Executing code-local +__package/gcc: Checking code-remote +__package/gcc: Executing code-remote +__package/gdb: Generating local code +__package/gdb: Generating remote code +__package/gdb: Transferring object +__package/gdb: Checking code-local +__package/gdb: Executing code-local +__package/gdb: Checking code-remote +__package/gdb: Executing code-remote +__package/vim: Generating local code +__package/vim: Generating remote code +__package/vim: Transferring object +__package/vim: Checking code-local +__package/vim: Executing code-local +__package/vim: Checking code-remote +__package/vim: Executing code-remote +__package/git-core: Generating local code +__package/git-core: Generating remote code +__package/git-core: Transferring object +__package/git-core: Checking code-local +__package/git-core: Executing code-local +__package/git-core: Checking code-remote +__package/git-core: Executing code-remote +__package/atop: Generating local code +__package/atop: Generating remote code +__package/atop: Transferring object +__package/atop: Checking code-local +__package/atop: Executing code-local +__package/atop: Checking code-remote +__package/atop: Executing code-remote +__package/flex: Generating local code +__package/flex: Generating remote code +__package/flex: Transferring object +__package/flex: Checking code-local +__package/flex: Executing code-local +__package/flex: Checking code-remote +__package/flex: Executing code-remote +__package/gawk: Generating local code +__package/gawk: Generating remote code +__package/gawk: Transferring object +__package/gawk: Checking code-local +__package/gawk: Executing code-local +__package/gawk: Checking code-remote +__package/gawk: Executing code-remote +__package/make: Generating local code +__package/make: Generating remote code +__package/make: Transferring object +__package/make: Checking code-local +__package/make: Executing code-local +__package/make: Checking code-remote +__package/make: Executing code-remote +__package/swig: Generating local code +__package/swig: Generating remote code +__package/swig: Transferring object +__package/swig: Checking code-local +__package/swig: Executing code-local +__package/swig: Checking code-remote +__package/swig: Executing code-remote +__package/libreadline5-dev: Generating local code +__package/libreadline5-dev: Generating remote code +__package/libreadline5-dev: Transferring object +__package/libreadline5-dev: Checking code-local +__package/libreadline5-dev: Executing code-local +__package/libreadline5-dev: Checking code-remote +__package/libreadline5-dev: Executing code-remote +__package/libexpat1-dev: Generating local code +__package/libexpat1-dev: Generating remote code +__package/libexpat1-dev: Transferring object +__package/libexpat1-dev: Checking code-local +__package/libexpat1-dev: Executing code-local +__package/libexpat1-dev: Checking code-remote +__package/libexpat1-dev: Executing code-remote +__package/libnet-ssleay-perl: Generating local code +__package/libnet-ssleay-perl: Generating remote code +__package/libnet-ssleay-perl: Transferring object +__package/libnet-ssleay-perl: Checking code-local +__package/libnet-ssleay-perl: Executing code-local +__package/libnet-ssleay-perl: Checking code-remote +__package/libnet-ssleay-perl: Executing code-remote +__package/subversion: Generating local code +__package/subversion: Generating remote code +__package/subversion: Transferring object +__package/subversion: Checking code-local +__package/subversion: Executing code-local +__package/subversion: Checking code-remote +__package/subversion: Executing code-remote +__package/libcurl4-openssl-dev: Generating local code +__package/libcurl4-openssl-dev: Generating remote code +__package/libcurl4-openssl-dev: Transferring object +__package/libcurl4-openssl-dev: Checking code-local +__package/libcurl4-openssl-dev: Executing code-local +__package/libcurl4-openssl-dev: Checking code-remote +__package/libcurl4-openssl-dev: Executing code-remote +__package/bison: Generating local code +__package/bison: Generating remote code +__package/bison: Transferring object +__package/bison: Checking code-local +__package/bison: Executing code-local +__package/bison: Checking code-remote +__package/bison: Executing code-remote +__package/cmake: Generating local code +__package/cmake: Generating remote code +__package/cmake: Transferring object +__package/cmake: Checking code-local +__package/cmake: Executing code-local +__package/cmake: Checking code-remote +__package/cmake: Executing code-remote +__package/emacs: Generating local code +__package/emacs: Generating remote code +__package/emacs: Transferring object +__package/emacs: Checking code-local +__package/emacs: Executing code-local +__package/emacs: Checking code-remote +__package/emacs: Executing code-remote +__package/xfce4: Generating local code +__package/xfce4: Generating remote code +__package/xfce4: Transferring object +__package/xfce4: Checking code-local +__package/xfce4: Executing code-local +__package/xfce4: Checking code-remote +__package/xfce4: Executing code-remote +__package/xterm: Generating local code +__package/xterm: Generating remote code +__package/xterm: Transferring object +__package/xterm: Checking code-local +__package/xterm: Executing code-local +__package/xterm: Checking code-remote +__package/xterm: Executing code-remote +__package/tcl8.4-dev: Generating local code +__package/tcl8.4-dev: Generating remote code +__package/tcl8.4-dev: Transferring object +__package/tcl8.4-dev: Checking code-local +__package/tcl8.4-dev: Executing code-local +__package/tcl8.4-dev: Checking code-remote +__package/tcl8.4-dev: Executing code-remote +__package/libio-socket-ssl-perl: Generating local code +__package/libio-socket-ssl-perl: Generating remote code +__package/libio-socket-ssl-perl: Transferring object +__package/libio-socket-ssl-perl: Checking code-local +__package/libio-socket-ssl-perl: Executing code-local +__package/libio-socket-ssl-perl: Checking code-remote +__package/libio-socket-ssl-perl: Executing code-remote +__package/doxygen: Generating local code +__package/doxygen: Generating remote code +__package/doxygen: Transferring object +__package/doxygen: Checking code-local +__package/doxygen: Executing code-local +__package/doxygen: Checking code-remote +__package/doxygen: Executing code-remote +__package/zlib1g-dev: Generating local code +__package/zlib1g-dev: Generating remote code +__package/zlib1g-dev: Transferring object +__package/zlib1g-dev: Checking code-local +__package/zlib1g-dev: Executing code-local +__package/zlib1g-dev: Checking code-remote +__package/zlib1g-dev: Executing code-remote +__package/autoconf: Generating local code +__package/autoconf: Generating remote code +__package/autoconf: Transferring object +__package/autoconf: Checking code-local +__package/autoconf: Executing code-local +__package/autoconf: Checking code-remote +__package/autoconf: Executing code-remote +__package/libtool: Generating local code +__package/libtool: Generating remote code +__package/libtool: Transferring object +__package/libtool: Checking code-local +__package/libtool: Executing code-local +__package/libtool: Checking code-remote +__package/libtool: Executing code-remote +__package/traceroute-nanog: Generating local code +__package/traceroute-nanog: Generating remote code +__package/traceroute-nanog: Transferring object +__package/traceroute-nanog: Checking code-local +__package/traceroute-nanog: Executing code-local +__package/traceroute-nanog: Checking code-remote +__package/traceroute-nanog: Executing code-remote +__package/libncurses5-dev: Generating local code +__package/libncurses5-dev: Generating remote code +__package/libncurses5-dev: Transferring object +__package/libncurses5-dev: Checking code-local +__package/libncurses5-dev: Executing code-local +__package/libncurses5-dev: Checking code-remote +__package/libncurses5-dev: Executing code-remote +__package/libaio-dev: Generating local code +__package/libaio-dev: Generating remote code +__package/libaio-dev: Transferring object +__package/libaio-dev: Checking code-local +__package/libaio-dev: Executing code-local +__package/libaio-dev: Checking code-remote +__package/libaio-dev: Executing code-remote +__package/libboost-dev: Generating local code +__package/libboost-dev: Generating remote code +__package/libboost-dev: Transferring object +__package/libboost-dev: Checking code-local +__package/libboost-dev: Executing code-local +__package/libboost-dev: Checking code-remote +__package/libboost-dev: Executing code-remote +__package/xtightvncviewer: Generating local code +__package/xtightvncviewer: Generating remote code +__package/xtightvncviewer: Transferring object +__package/xtightvncviewer: Checking code-local +__package/xtightvncviewer: Executing code-local +__package/xtightvncviewer: Checking code-remote +__package/xtightvncviewer: Executing code-remote +__package/libxml2-dev: Generating local code +__package/libxml2-dev: Generating remote code +__package/libxml2-dev: Transferring object +__package/libxml2-dev: Checking code-local +__package/libxml2-dev: Executing code-local +__package/libxml2-dev: Checking code-remote +__package/libxml2-dev: Executing code-remote +__package/libtidy-dev: Generating local code +__package/libtidy-dev: Generating remote code +__package/libtidy-dev: Transferring object +__package/libtidy-dev: Checking code-local +__package/libtidy-dev: Executing code-local +__package/libtidy-dev: Checking code-remote +__package/libtidy-dev: Executing code-remote +__package/manpages: Generating local code +__package/manpages: Generating remote code +__package/manpages: Transferring object +__package/manpages: Checking code-local +__package/manpages: Executing code-local +__package/manpages: Checking code-remote +__package/manpages: Executing code-remote +__package/gcc-doc: Generating local code +__package/gcc-doc: Generating remote code +__package/gcc-doc: Transferring object +__package/gcc-doc: Checking code-local +__package/gcc-doc: Executing code-local +__package/gcc-doc: Checking code-remote +__package/gcc-doc: Executing code-remote +__package/fluxbox: Generating local code +__package/fluxbox: Generating remote code +__package/fluxbox: Transferring object +__package/fluxbox: Checking code-local +__package/fluxbox: Executing code-local +__package/fluxbox: Checking code-remote +__package/fluxbox: Executing code-remote +__package/libicu-dev: Generating local code +__package/libicu-dev: Generating remote code +__package/libicu-dev: Transferring object +__package/libicu-dev: Checking code-local +__package/libicu-dev: Executing code-local +__package/libicu-dev: Checking code-remote +__package/libicu-dev: Executing code-remote +__package/libc6-dev-i386: Generating local code +__package/libc6-dev-i386: Generating remote code +__package/libc6-dev-i386: Transferring object +__package/libc6-dev-i386: Checking code-local +__package/libc6-dev-i386: Executing code-local +__package/libc6-dev-i386: Checking code-remote +__package/libc6-dev-i386: Executing code-remote +__package/mercurial: Generating local code +__package/mercurial: Generating remote code +__package/mercurial: Transferring object +__package/mercurial: Checking code-local +__package/mercurial: Executing code-local +__package/mercurial: Checking code-remote +__package/mercurial: Executing code-remote +__package/git-doc: Generating local code +__package/git-doc: Generating remote code +__package/git-doc: Transferring object +__package/git-doc: Checking code-local +__package/git-doc: Executing code-local +__package/git-doc: Checking code-remote +__package/git-doc: Executing code-remote +__package/git-svn: Generating local code +__package/git-svn: Generating remote code +__package/git-svn: Transferring object +__package/git-svn: Checking code-local +__package/git-svn: Executing code-local +__package/git-svn: Checking code-remote +__package/git-svn: Executing code-remote +__package/libnuma-dev: Generating local code +__package/libnuma-dev: Generating remote code +__package/libnuma-dev: Transferring object +__package/libnuma-dev: Checking code-local +__package/libnuma-dev: Executing code-local +__package/libnuma-dev: Checking code-remote +__package/libnuma-dev: Executing code-remote +__package/gnuplot: Generating local code +__package/gnuplot: Generating remote code +__package/gnuplot: Transferring object +__package/gnuplot: Checking code-local +__package/gnuplot: Executing code-local +__package/gnuplot: Checking code-remote +__package/gnuplot: Executing code-remote +__package/puppet: Generating local code +__package/puppet: Generating remote code +__package/puppet: Transferring object +__package/puppet: Checking code-local +__package/puppet: Executing code-local +__package/puppet: Checking code-remote +__package/puppet: Executing code-remote +__package/screen: Generating local code +__package/screen: Generating remote code +__package/screen: Transferring object +__package/screen: Checking code-local +__package/screen: Executing code-local +__package/screen: Checking code-remote +__package/screen: Executing code-remote +__package/openntpd: Generating local code +__package/openntpd: Generating remote code +__package/openntpd: Transferring object +__package/openntpd: Checking code-local +__package/openntpd: Executing code-local +__package/openntpd: Checking code-remote +__package/openntpd: Executing code-remote +__package/gcc-multilib: Generating local code +__package/gcc-multilib: Generating remote code +__package/gcc-multilib: Transferring object +__package/gcc-multilib: Checking code-local +__package/gcc-multilib: Executing code-local +__package/gcc-multilib: Checking code-remote +__package/gcc-multilib: Executing code-remote +__package/libboost-regex-dev: Generating local code +__package/libboost-regex-dev: Generating remote code +__package/libboost-regex-dev: Transferring object +__package/libboost-regex-dev: Checking code-local +__package/libboost-regex-dev: Executing code-local +__package/libboost-regex-dev: Checking code-remote +__package/libboost-regex-dev: Executing code-remote +__package/g++-multilib: Generating local code +__package/g++-multilib: Generating remote code +__package/g++-multilib: Transferring object +__package/g++-multilib: Checking code-local +__package/g++-multilib: Executing code-local +__package/g++-multilib: Checking code-remote +__package/g++-multilib: Executing code-remote +__package/xfonts-base: Generating local code +__package/xfonts-base: Generating remote code +__package/xfonts-base: Transferring object +__package/xfonts-base: Checking code-local +__package/xfonts-base: Executing code-local +__package/xfonts-base: Checking code-remote +__package/xfonts-base: Executing code-remote +__package/rdesktop: Generating local code +__package/rdesktop: Generating remote code +__package/rdesktop: Transferring object +__package/rdesktop: Checking code-local +__package/rdesktop: Executing code-local +__package/rdesktop: Checking code-remote +__package/rdesktop: Executing code-remote +__package/build-essential: Generating local code +__package/build-essential: Generating remote code +__package/build-essential: Transferring object +__package/build-essential: Checking code-local +__package/build-essential: Executing code-local +__package/build-essential: Checking code-remote +__package/build-essential: Executing code-remote +__package/tightvncserver: Generating local code +__package/tightvncserver: Generating remote code +__package/tightvncserver: Transferring object +__package/tightvncserver: Checking code-local +__package/tightvncserver: Executing code-local +__package/tightvncserver: Checking code-remote +__package/tightvncserver: Executing code-remote +__package/python-crypto: Generating local code +__package/python-crypto: Generating remote code +__package/python-crypto: Transferring object +__package/python-crypto: Checking code-local +__package/python-crypto: Executing code-local +__package/python-crypto: Checking code-remote +__package/python-crypto: Executing code-remote +__package/libpam-krb5: Generating local code +__package/libpam-krb5: Generating remote code +__package/libpam-krb5: Transferring object +__package/libpam-krb5: Checking code-local +__package/libpam-krb5: Executing code-local +__package/libpam-krb5: Checking code-remote +__package/libpam-krb5: Executing code-remote +__package/libc6-dev: Generating local code +__package/libc6-dev: Generating remote code +__package/libc6-dev: Transferring object +__package/libc6-dev: Checking code-local +__package/libc6-dev: Executing code-local +__package/libc6-dev: Checking code-remote +__package/libc6-dev: Executing code-remote +__package/manpages-dev: Generating local code +__package/manpages-dev: Generating remote code +__package/manpages-dev: Transferring object +__package/manpages-dev: Checking code-local +__package/manpages-dev: Executing code-local +__package/manpages-dev: Checking code-remote +__package/manpages-dev: Executing code-remote +__package/ia32-libs: Generating local code +__package/ia32-libs: Generating remote code +__package/ia32-libs: Transferring object +__package/ia32-libs: Checking code-local +__package/ia32-libs: Executing code-local +__package/ia32-libs: Checking code-remote +__package/ia32-libs: Executing code-remote +__package/libxml-checker-perl: Generating local code +__package/libxml-checker-perl: Generating remote code +__package/libxml-checker-perl: Transferring object +__package/libxml-checker-perl: Checking code-local +__package/libxml-checker-perl: Executing code-local +__package/libxml-checker-perl: Checking code-remote +__package/libxml-checker-perl: Executing code-remote +__ethz_systems_root_via_ssh/subasui: Generating local code +__ethz_systems_root_via_ssh/subasui: Generating remote code +__ethz_systems_root_via_ssh/subasui: Transferring object +__ethz_systems_root_via_ssh/subasui: Checking code-local +__ethz_systems_root_via_ssh/subasui: Executing code-local +__ethz_systems_root_via_ssh/subasui: Checking code-remote +__ethz_systems_root_via_ssh/subasui: Executing code-remote +__ethz_systems_root_via_ssh/blukas: Generating local code +__ethz_systems_root_via_ssh/blukas: Generating remote code +__ethz_systems_root_via_ssh/blukas: Transferring object +__ethz_systems_root_via_ssh/blukas: Checking code-local +__ethz_systems_root_via_ssh/blukas: Executing code-local +__ethz_systems_root_via_ssh/blukas: Checking code-remote +__ethz_systems_root_via_ssh/blukas: Executing code-remote +__ethz_systems_root_via_ssh/petfisch: Generating local code +__ethz_systems_root_via_ssh/petfisch: Generating remote code +__ethz_systems_root_via_ssh/petfisch: Transferring object +__ethz_systems_root_via_ssh/petfisch: Checking code-local +__ethz_systems_root_via_ssh/petfisch: Executing code-local +__ethz_systems_root_via_ssh/petfisch: Checking code-remote +__ethz_systems_root_via_ssh/petfisch: Executing code-remote +__ethz_systems_motd/singleton: Generating local code +__ethz_systems_motd/singleton: Generating remote code +__ethz_systems_motd/singleton: Transferring object +__ethz_systems_motd/singleton: Checking code-local +__ethz_systems_motd/singleton: Executing code-local +__ethz_systems_motd/singleton: Checking code-remote +__ethz_systems_motd/singleton: Executing code-remote +__ethz_systems_sudo/singleton: Generating local code +__ethz_systems_sudo/singleton: Generating remote code +__ethz_systems_sudo/singleton: Transferring object +__ethz_systems_sudo/singleton: Checking code-local +__ethz_systems_sudo/singleton: Executing code-local +__ethz_systems_sudo/singleton: Checking code-remote +__ethz_systems_sudo/singleton: Executing code-remote +__ethz_sans_syslog/singleton: Generating local code +__ethz_sans_syslog/singleton: Generating remote code +__ethz_sans_syslog/singleton: Transferring object +__ethz_sans_syslog/singleton: Checking code-local +__ethz_sans_syslog/singleton: Executing code-local +__ethz_sans_syslog/singleton: Checking code-remote +__ethz_sans_syslog/singleton: Executing code-remote +__ethz_pam_krb5/singleton: Generating local code +__ethz_pam_krb5/singleton: Generating remote code +__ethz_pam_krb5/singleton: Transferring object +__ethz_pam_krb5/singleton: Checking code-local +__ethz_pam_krb5/singleton: Executing code-local +__ethz_pam_krb5/singleton: Checking code-remote +__ethz_pam_krb5/singleton: Executing code-remote +__ethz_dinfk_autofs/singleton: Generating local code +__ethz_dinfk_autofs/singleton: Generating remote code +__ethz_dinfk_autofs/singleton: Transferring object +__ethz_dinfk_autofs/singleton: Checking code-local +__ethz_dinfk_autofs/singleton: Executing code-local +__ethz_dinfk_autofs/singleton: Checking code-remote +__ethz_dinfk_autofs/singleton: Executing code-remote +__ethz_dinfk_ldap/singleton: Generating local code +__ethz_dinfk_ldap/singleton: Generating remote code +__ethz_dinfk_ldap/singleton: Transferring object +__ethz_dinfk_ldap/singleton: Checking code-local +__ethz_dinfk_ldap/singleton: Executing code-local +__ethz_dinfk_ldap/singleton: Checking code-remote +__ethz_dinfk_ldap/singleton: Executing code-remote +core: Debug: Mit Apr 27 14:19:30 CEST 2011 +core: Saving cache to /home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/cache/ikq04.ethz.ch +core: Debug: Mit Apr 27 14:19:31 CEST 2011 +core: cdist 1.6.2: Successfully finished run diff --git a/doc/dev/logs/2011-06-24.cinst_preos b/doc/dev/logs/2011-06-24.cinst_preos new file mode 100644 index 00000000..892ee5f7 --- /dev/null +++ b/doc/dev/logs/2011-06-24.cinst_preos @@ -0,0 +1,20 @@ +- new executable cinst-deploy-to +- types used by cinst are marked as such ('cinst-only') +- cdist-deploy-to and cinst-deploy-to read the same manifest +- cdist ignores types marked as 'cinst-only' +- cinst ignores types not marked as 'cinst-only' + +- update $__explorer/os to recognize preos + +- cinst types will ONLY BE CALLED if $__explorer/os == 'preos' + +-------------------------------------------------------------------------------- +cinst types: +__partition_msdos /dev/sda1 --type 83 --size 100M --bootable +__partition_msdos /dev/sda2 --type 82 --size 512M +__fs_jfs /dev/sda1 --args "-c -q" +__fstab_entry /dev/sda1 --type jfs --mountpoint / --options noatime --freq 0 --passno 0 +__fstab_entry /dev/sda2 --type swap + + + diff --git a/doc/dev/logs/2011-06-25.trigger-graphic b/doc/dev/logs/2011-06-25.trigger-graphic new file mode 100644 index 00000000..f17220e1 --- /dev/null +++ b/doc/dev/logs/2011-06-25.trigger-graphic @@ -0,0 +1,15 @@ + + + + + + +client -------------------> trigger via ssh ----------> server + ~/.ssh/authorized_keys + -> cdist-deploy-to + +ssh -R + +server -> via cdist-deploy-to -> client + +cdist-mass-deploy -p diff --git a/doc/dev/logs/2011-09-08.obsolete_debugging b/doc/dev/logs/2011-09-08.obsolete_debugging new file mode 100644 index 00000000..42413285 --- /dev/null +++ b/doc/dev/logs/2011-09-08.obsolete_debugging @@ -0,0 +1,4 @@ +Debugging cdist: + +[0:13] kr:cdist-nutzung% ./local/update-local-core && __cdist_debug=1 __cdist_local_base_dir=/tmp/cdist cdist-deploy-to ikq04.ethz.ch + diff --git a/doc/dev/logs/2011-09-12 b/doc/dev/logs/2011-09-12 new file mode 100644 index 00000000..1ace466f --- /dev/null +++ b/doc/dev/logs/2011-09-12 @@ -0,0 +1,110 @@ +Benchmark from home/X201 (2 cores, 4 threads): + + ikq (1): 72.192397 + ikq (2): INFO: Total processing time for 2 hosts: 74.1845 + ikq* (6): INFO: Total processing time: 117.572312 + ikq* + ikr3 (9): INFO: Total processing time: 120.307662 + ikq* + ikr (14): INFO: Total processing time: 139.769807 + ikq* + ikr (18): INFO: Total processing time: 186.354398 + ikq* + ikr (22): INFO: Total processing time: 225.793533 + ikq* + ikr (26): INFO: Total processing time: 237.06687 + ikq* + ikr (31): INFO: Total processing time: 276.912414 + + +ikr07.ethz.ch ikr09.ethz.ch ikr10.ethz.ch ikr11.ethz.ch +ikr13.ethz.ch ikr14.ethz.ch ikr15.ethz.ch ikr16.ethz.ch +ikr17.ethz.ch ikr19.ethz.ch ikr20.ethz.ch ikr21.ethz.ch +ikr23.ethz.ch ikr24.ethz.ch ikr25.ethz.ch ikr26.ethz.ch +ikr27.ethz.ch ikr28.ethz.ch ikr29.ethz.ch ikr30.ethz.ch +ikr31.ethz.ch + +cdist -c ~/p/cdist-nutzung -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch ikq05.ethz.ch ikq06.ethz.ch ikq07.ethz.ch ikr01.ethz.ch ikr02.ethz.ch ikr03.ethz.ch ikr05.ethz.ch ikr07.ethz.ch ikr09.ethz.ch ikr10.ethz.ch ikr11.ethz.ch ikr13.ethz.ch ikr14.ethz.ch ikr15.ethz.ch ikr16.ethz.ch ikr17.ethz.ch ikr19.ethz.ch ikr20.ethz.ch ikr21.ethz.ch + + +-------------------------------------------------------------------------------- +INFO: Total processing time for 1 hosts: 72.166661 +INFO: Total processing time for 2 hosts: 76.633228 +INFO: Total processing time for 3 host(s): 77.199817 +INFO: Total processing time for 4 host(s): 94.045175 +INFO: Total processing time for 5 host(s): 103.226354 +INFO: Total processing time for 6 host(s): 107.76097 +INFO: Total processing time for 7 host(s): 101.571705 +INFO: Total processing time for 8 host(s): 107.600093 +INFO: Total processing time for 9 host(s): 116.500371 +INFO: Total processing time for 10 host(s): 119.445805 +INFO: Total processing time for 11 host(s): 123.944385 +INFO: Total processing time for 12 host(s): 130.499098 +INFO: Total processing time for 13 host(s): 137.250861 +INFO: Total processing time for 14 host(s): 154.9841 +INFO: Total processing time for 15 host(s): 139.659637 +INFO: Total processing time for 16 host(s): 142.70005 +INFO: Total processing time for 17 host(s): 148.541452 +INFO: Total processing time for 18 host(s): 159.360809 +INFO: Total processing time for 19 host(s): 171.907864 +INFO: Total processing time for 20 host(s): 178.76695 +INFO: Total processing time for 21 host(s): 183.856671 +INFO: Total processing time for 22 host(s): 194.504221 +INFO: Total processing time for 23 host(s): 207.314842 +INFO: Total processing time for 24 host(s): 215.846502 +INFO: Total processing time for 25 host(s): 217.223581 +INFO: Total processing time for 26 host(s): 238.591705 +INFO: Total processing time for 27 host(s): 238.478493 +INFO: Total processing time for 28 host(s): 246.058718 +INFO: Total processing time for 29 host(s): 264.208372 +INFO: Total processing time for 30 host(s): 265.560685 +INFO: Total processing time for 31 host(s): 282.264488 + +-------------------------------------------------------------------------------- +Use: + grep "^INFO: Total processing time" doc/dev/logs/2011-09-12 | sed 's/.*: //' + octave + times = [ /* paste here ] + plot(times) + # keep the graph + hold on + # Scale linearly with the single host value + plot((1:31)*times(1)) + +-------------------------------------------------------------------------------- +code: + +octave +time = [ +72.166661 +76.633228 +77.199817 +94.045175 +103.226354 +107.76097 +101.571705 +107.600093 +116.500371 +119.445805 +123.944385 +130.499098 +137.250861 +154.9841 +139.659637 +142.70005 +148.541452 +159.360809 +171.907864 +178.76695 +183.856671 +194.504221 +207.314842 +215.846502 +217.223581 +238.591705 +238.478493 +246.058718 +264.208372 +265.560685 +282.264488 +] +plot(times, "-;cdist;", times(1)*[1:length(times)]', "-;linear;") +title("Configuration duration (cdist-2.0.0-rc4)") +ylabel("Number of hosts") +xlabel("Time in seconds") +print('cdist-2.0.0-rc4.png', '-dpng') + diff --git a/doc/dev/logs/2011-09-12.benchmark-home b/doc/dev/logs/2011-09-12.benchmark-home new file mode 100644 index 00000000..8cfc4971 --- /dev/null +++ b/doc/dev/logs/2011-09-12.benchmark-home @@ -0,0 +1,6960 @@ +INFO: Deploying to ikq02.ethz.ch +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq02.ethz.ch in 72.155556 seconds +I should cleanup /home/users/nico/.tmp/tmp013zxv +INFO: Total processing time for 1 hosts: 72.166661 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 76.556882 seconds +I should cleanup /home/users/nico/.tmp/tmpduad9n +INFO: Finished run of ikq02.ethz.ch in 76.617933 seconds +I should cleanup /home/users/nico/.tmp/tmpjqi6ey +INFO: Total processing time for 2 hosts: 76.633228 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 75.974003 seconds +I should cleanup /home/users/nico/.tmp/tmpg1dcf2 +INFO: Finished run of ikq04.ethz.ch in 76.961455 seconds +I should cleanup /home/users/nico/.tmp/tmp_bsndy +INFO: Finished run of ikq02.ethz.ch in 77.188361 seconds +I should cleanup /home/users/nico/.tmp/tmp9b0x11 +INFO: Total processing time for 3 host(s): 77.199817 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq04.ethz.ch in 75.857977 seconds +I should cleanup /home/users/nico/.tmp/tmpxhc33m +INFO: Finished run of ikq02.ethz.ch in 76.034966 seconds +I should cleanup /home/users/nico/.tmp/tmp0za5q0 +INFO: Finished run of ikq03.ethz.ch in 77.967854 seconds +I should cleanup /home/users/nico/.tmp/tmp_nt6ju +INFO: Finished run of ikq05.ethz.ch in 94.015012 seconds +I should cleanup /home/users/nico/.tmp/tmpihxpq1 +INFO: Total processing time for 4 host(s): 94.045175 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 84.249886 seconds +I should cleanup /home/users/nico/.tmp/tmp9pwps4 +INFO: Finished run of ikq04.ethz.ch in 84.70692 seconds +I should cleanup /home/users/nico/.tmp/tmp5q2_ov +INFO: Finished run of ikq06.ethz.ch in 84.831273 seconds +I should cleanup /home/users/nico/.tmp/tmpo5o5fi +INFO: Finished run of ikq02.ethz.ch in 85.648583 seconds +I should cleanup /home/users/nico/.tmp/tmp04au_u +INFO: Finished run of ikq05.ethz.ch in 103.18759 seconds +I should cleanup /home/users/nico/.tmp/tmpw5hgcq +INFO: Total processing time for 5 host(s): 103.226354 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 88.717419 seconds +I should cleanup /home/users/nico/.tmp/tmp463z4s +INFO: Finished run of ikq04.ethz.ch in 88.791926 seconds +I should cleanup /home/users/nico/.tmp/tmpbdipwj +INFO: Finished run of ikq02.ethz.ch in 89.046225 seconds +I should cleanup /home/users/nico/.tmp/tmpk832sn +INFO: Finished run of ikq03.ethz.ch in 89.067941 seconds +I should cleanup /home/users/nico/.tmp/tmpvmj5rq +INFO: Finished run of ikq07.ethz.ch in 89.412403 seconds +I should cleanup /home/users/nico/.tmp/tmpyljtcf +INFO: Finished run of ikq05.ethz.ch in 107.729915 seconds +I should cleanup /home/users/nico/.tmp/tmpmfc384 +INFO: Total processing time for 6 host(s): 107.76097 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 85.171819 seconds +I should cleanup /home/users/nico/.tmp/tmpjb2ow1 +INFO: Finished run of ikq02.ethz.ch in 85.507466 seconds +I should cleanup /home/users/nico/.tmp/tmpnql8_x +INFO: Finished run of ikq07.ethz.ch in 85.526465 seconds +I should cleanup /home/users/nico/.tmp/tmpl_34em +INFO: Finished run of ikq04.ethz.ch in 85.759357 seconds +I should cleanup /home/users/nico/.tmp/tmp807dx7 +INFO: Finished run of ikq03.ethz.ch in 85.897374 seconds +I should cleanup /home/users/nico/.tmp/tmpyjynp8 +INFO: Finished run of ikq05.ethz.ch in 101.540372 seconds +I should cleanup /home/users/nico/.tmp/tmpqgnkn1 +INFO: Total processing time for 7 host(s): 101.571705 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq07.ethz.ch in 88.958072 seconds +I should cleanup /home/users/nico/.tmp/tmpj824nd +INFO: Finished run of ikq04.ethz.ch in 89.290431 seconds +I should cleanup /home/users/nico/.tmp/tmpxi0eml +INFO: Finished run of ikq03.ethz.ch in 89.699189 seconds +I should cleanup /home/users/nico/.tmp/tmppx9o9p +INFO: Finished run of ikq06.ethz.ch in 89.807729 seconds +I should cleanup /home/users/nico/.tmp/tmpf3_ow_ +INFO: Finished run of ikq02.ethz.ch in 90.018545 seconds +I should cleanup /home/users/nico/.tmp/tmp6_ozkd +INFO: Finished run of ikr02.ethz.ch in 97.221764 seconds +I should cleanup /home/users/nico/.tmp/tmpsg71wy +INFO: Finished run of ikq05.ethz.ch in 107.564915 seconds +I should cleanup /home/users/nico/.tmp/tmp5zptvo +INFO: Total processing time for 8 host(s): 107.600093 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq02.ethz.ch in 97.849914 seconds +I should cleanup /home/users/nico/.tmp/tmp3nnh2u +INFO: Finished run of ikq07.ethz.ch in 97.975998 seconds +I should cleanup /home/users/nico/.tmp/tmpbb7tm2 +INFO: Finished run of ikq06.ethz.ch in 98.577879 seconds +I should cleanup /home/users/nico/.tmp/tmpz03p9m +INFO: Finished run of ikq03.ethz.ch in 98.676198 seconds +I should cleanup /home/users/nico/.tmp/tmpye5yk9 +INFO: Finished run of ikq04.ethz.ch in 98.671269 seconds +I should cleanup /home/users/nico/.tmp/tmphuyj_f +INFO: Finished run of ikr02.ethz.ch in 109.003609 seconds +I should cleanup /home/users/nico/.tmp/tmpwepj8y +INFO: Finished run of ikr03.ethz.ch in 109.930106 seconds +I should cleanup /home/users/nico/.tmp/tmp6kinml +INFO: Finished run of ikq05.ethz.ch in 116.455232 seconds +I should cleanup /home/users/nico/.tmp/tmpxrp5bs +INFO: Total processing time for 9 host(s): 116.500371 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq04.ethz.ch in 103.832242 seconds +I should cleanup /home/users/nico/.tmp/tmp9o5jfq +INFO: Finished run of ikq02.ethz.ch in 104.073833 seconds +I should cleanup /home/users/nico/.tmp/tmpip0crc +INFO: Finished run of ikq06.ethz.ch in 104.439403 seconds +I should cleanup /home/users/nico/.tmp/tmpcf69h4 +INFO: Finished run of ikq07.ethz.ch in 104.863176 seconds +I should cleanup /home/users/nico/.tmp/tmpg0cr4s +INFO: Finished run of ikq03.ethz.ch in 104.975989 seconds +I should cleanup /home/users/nico/.tmp/tmp086l_6 +INFO: Finished run of ikr05.ethz.ch in 112.545759 seconds +I should cleanup /home/users/nico/.tmp/tmpdtb7q2 +INFO: Finished run of ikr02.ethz.ch in 113.6572 seconds +I should cleanup /home/users/nico/.tmp/tmp8n7m4x +INFO: Finished run of ikr03.ethz.ch in 113.657078 seconds +I should cleanup /home/users/nico/.tmp/tmpcyi98d +INFO: Finished run of ikq05.ethz.ch in 119.403885 seconds +I should cleanup /home/users/nico/.tmp/tmpjow046 +INFO: Total processing time for 10 host(s): 119.445805 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq02.ethz.ch in 107.594849 seconds +I should cleanup /home/users/nico/.tmp/tmpam7130 +INFO: Finished run of ikq04.ethz.ch in 108.012557 seconds +I should cleanup /home/users/nico/.tmp/tmpksan74 +INFO: Finished run of ikq07.ethz.ch in 108.044124 seconds +I should cleanup /home/users/nico/.tmp/tmpbtfim0 +INFO: Finished run of ikq06.ethz.ch in 108.341489 seconds +I should cleanup /home/users/nico/.tmp/tmprweak0 +INFO: Finished run of ikq03.ethz.ch in 108.389863 seconds +I should cleanup /home/users/nico/.tmp/tmp0vl1nl +INFO: Finished run of ikr05.ethz.ch in 118.315184 seconds +I should cleanup /home/users/nico/.tmp/tmpcnj64y +INFO: Finished run of ikr07.ethz.ch in 119.454786 seconds +I should cleanup /home/users/nico/.tmp/tmp5f6dcf +INFO: Finished run of ikr02.ethz.ch in 119.734442 seconds +I should cleanup /home/users/nico/.tmp/tmpgx6lga +INFO: Finished run of ikr03.ethz.ch in 119.813266 seconds +I should cleanup /home/users/nico/.tmp/tmpza8ftn +INFO: Finished run of ikq05.ethz.ch in 123.912563 seconds +I should cleanup /home/users/nico/.tmp/tmpokg3bw +INFO: Total processing time for 11 host(s): 123.944385 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 112.532755 seconds +I should cleanup /home/users/nico/.tmp/tmpkwi6o4 +INFO: Finished run of ikq03.ethz.ch in 113.655432 seconds +I should cleanup /home/users/nico/.tmp/tmpheiprp +INFO: Finished run of ikq02.ethz.ch in 114.308282 seconds +I should cleanup /home/users/nico/.tmp/tmp1krz1m +INFO: Finished run of ikq07.ethz.ch in 114.580586 seconds +I should cleanup /home/users/nico/.tmp/tmpg23sal +INFO: Finished run of ikq04.ethz.ch in 114.981261 seconds +I should cleanup /home/users/nico/.tmp/tmplged7b +INFO: Finished run of ikr05.ethz.ch in 124.918792 seconds +I should cleanup /home/users/nico/.tmp/tmpsijvc9 +INFO: Finished run of ikr02.ethz.ch in 125.388647 seconds +I should cleanup /home/users/nico/.tmp/tmpw1e4ji +INFO: Finished run of ikr07.ethz.ch in 125.691531 seconds +I should cleanup /home/users/nico/.tmp/tmpx_9iz6 +INFO: Finished run of ikr03.ethz.ch in 126.951817 seconds +I should cleanup /home/users/nico/.tmp/tmpuikakt +INFO: Finished run of ikr09.ethz.ch in 126.947601 seconds +I should cleanup /home/users/nico/.tmp/tmpoyxlah +INFO: Finished run of ikq05.ethz.ch in 130.467261 seconds +I should cleanup /home/users/nico/.tmp/tmpobh15j +INFO: Total processing time for 12 host(s): 130.499098 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq02.ethz.ch in 121.864821 seconds +I should cleanup /home/users/nico/.tmp/tmpfgqxt5 +INFO: Finished run of ikq04.ethz.ch in 121.929722 seconds +I should cleanup /home/users/nico/.tmp/tmps2c8x0 +INFO: Finished run of ikq03.ethz.ch in 122.486316 seconds +I should cleanup /home/users/nico/.tmp/tmpnmea2b +INFO: Finished run of ikq06.ethz.ch in 123.168465 seconds +I should cleanup /home/users/nico/.tmp/tmp_5ns1o +INFO: Finished run of ikq07.ethz.ch in 123.623172 seconds +I should cleanup /home/users/nico/.tmp/tmp86yazu +INFO: Finished run of ikr05.ethz.ch in 131.530627 seconds +I should cleanup /home/users/nico/.tmp/tmp_wjz4q +INFO: Finished run of ikr10.ethz.ch in 132.29461 seconds +I should cleanup /home/users/nico/.tmp/tmpd9b7e6 +INFO: Finished run of ikr02.ethz.ch in 132.860874 seconds +I should cleanup /home/users/nico/.tmp/tmp5ruwiq +INFO: Finished run of ikr07.ethz.ch in 133.120448 seconds +I should cleanup /home/users/nico/.tmp/tmpdg8gnz +INFO: Finished run of ikr09.ethz.ch in 133.144026 seconds +I should cleanup /home/users/nico/.tmp/tmpdqnwj8 +INFO: Finished run of ikr03.ethz.ch in 133.569501 seconds +I should cleanup /home/users/nico/.tmp/tmp0ib7vd +INFO: Finished run of ikq05.ethz.ch in 137.219204 seconds +I should cleanup /home/users/nico/.tmp/tmpjnp_34 +INFO: Total processing time for 13 host(s): 137.250861 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq04.ethz.ch in 137.290435 seconds +I should cleanup /home/users/nico/.tmp/tmp3qrvii +INFO: Finished run of ikq06.ethz.ch in 137.430914 seconds +I should cleanup /home/users/nico/.tmp/tmpbut7j0 +INFO: Finished run of ikq02.ethz.ch in 137.888909 seconds +I should cleanup /home/users/nico/.tmp/tmp4vyy9p +INFO: Finished run of ikq03.ethz.ch in 138.237095 seconds +I should cleanup /home/users/nico/.tmp/tmpfj1yim +INFO: Finished run of ikq07.ethz.ch in 138.392173 seconds +I should cleanup /home/users/nico/.tmp/tmpfw3bx4 +INFO: Finished run of ikr05.ethz.ch in 150.274366 seconds +I should cleanup /home/users/nico/.tmp/tmpyn7rh1 +INFO: Finished run of ikr10.ethz.ch in 150.478504 seconds +I should cleanup /home/users/nico/.tmp/tmpn50v6l +INFO: Finished run of ikr07.ethz.ch in 150.514287 seconds +I should cleanup /home/users/nico/.tmp/tmp_mvlp2 +INFO: Finished run of ikr09.ethz.ch in 151.015286 seconds +I should cleanup /home/users/nico/.tmp/tmpm549_r +INFO: Finished run of ikr03.ethz.ch in 151.541814 seconds +I should cleanup /home/users/nico/.tmp/tmpynae4z +INFO: Finished run of ikr11.ethz.ch in 151.624163 seconds +I should cleanup /home/users/nico/.tmp/tmpyerp4y +INFO: Finished run of ikr02.ethz.ch in 151.81055 seconds +I should cleanup /home/users/nico/.tmp/tmp1t9rdc +INFO: Finished run of ikq05.ethz.ch in 154.945986 seconds +I should cleanup /home/users/nico/.tmp/tmpwxljjr +INFO: Total processing time for 14 host(s): 154.9841 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +Warning: Permanently added 'ikr13.ethz.ch,129.132.186.26' (RSA) to the list of known hosts. +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 120.523743 seconds +I should cleanup /home/users/nico/.tmp/tmp0_7fgv +INFO: Finished run of ikq02.ethz.ch in 121.060225 seconds +I should cleanup /home/users/nico/.tmp/tmpjxa6qw +INFO: Finished run of ikq04.ethz.ch in 121.754777 seconds +I should cleanup /home/users/nico/.tmp/tmpvnzs7k +INFO: Finished run of ikq07.ethz.ch in 121.782193 seconds +I should cleanup /home/users/nico/.tmp/tmp1o26v7 +INFO: Finished run of ikq06.ethz.ch in 122.575204 seconds +I should cleanup /home/users/nico/.tmp/tmp592kot +INFO: Finished run of ikr10.ethz.ch in 131.920153 seconds +I should cleanup /home/users/nico/.tmp/tmp_iwf_6 +INFO: Finished run of ikr05.ethz.ch in 132.153554 seconds +I should cleanup /home/users/nico/.tmp/tmpbk7wid +INFO: Finished run of ikr02.ethz.ch in 132.330635 seconds +I should cleanup /home/users/nico/.tmp/tmp9n2a4e +INFO: Finished run of ikr09.ethz.ch in 132.486383 seconds +I should cleanup /home/users/nico/.tmp/tmp__xwmz +INFO: Finished run of ikr07.ethz.ch in 136.013244 seconds +I should cleanup /home/users/nico/.tmp/tmp2gdyhj +INFO: Finished run of ikr11.ethz.ch in 136.471268 seconds +I should cleanup /home/users/nico/.tmp/tmphgxzio +INFO: Finished run of ikr03.ethz.ch in 136.565002 seconds +I should cleanup /home/users/nico/.tmp/tmpsdws1m +INFO: Finished run of ikq05.ethz.ch in 139.613692 seconds +I should cleanup /home/users/nico/.tmp/tmpp0lh4k +INFO: Total processing time for 15 host(s): 139.659637 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 123.802602 seconds +I should cleanup /home/users/nico/.tmp/tmpoag3uo +INFO: Finished run of ikq04.ethz.ch in 125.244272 seconds +I should cleanup /home/users/nico/.tmp/tmpzc8p8r +INFO: Finished run of ikq07.ethz.ch in 126.049417 seconds +I should cleanup /home/users/nico/.tmp/tmpg0wjs1 +INFO: Finished run of ikq02.ethz.ch in 126.635092 seconds +I should cleanup /home/users/nico/.tmp/tmpnhuefm +INFO: Finished run of ikq03.ethz.ch in 126.683252 seconds +I should cleanup /home/users/nico/.tmp/tmp569klp +INFO: Finished run of ikr10.ethz.ch in 135.902786 seconds +I should cleanup /home/users/nico/.tmp/tmp_pepbg +INFO: Finished run of ikr05.ethz.ch in 137.519519 seconds +I should cleanup /home/users/nico/.tmp/tmpog_4d2 +INFO: Finished run of ikr14.ethz.ch in 137.486553 seconds +I should cleanup /home/users/nico/.tmp/tmp35z1n7 +INFO: Finished run of ikr09.ethz.ch in 139.393357 seconds +I should cleanup /home/users/nico/.tmp/tmpa3d3le +INFO: Finished run of ikr11.ethz.ch in 139.367952 seconds +I should cleanup /home/users/nico/.tmp/tmpdyzpgw +INFO: Finished run of ikr03.ethz.ch in 139.772987 seconds +I should cleanup /home/users/nico/.tmp/tmprxzbm6 +INFO: Finished run of ikr02.ethz.ch in 139.962957 seconds +I should cleanup /home/users/nico/.tmp/tmpyrnk23 +INFO: Finished run of ikr07.ethz.ch in 140.554612 seconds +I should cleanup /home/users/nico/.tmp/tmpob7r8v +INFO: Finished run of ikq05.ethz.ch in 142.669111 seconds +I should cleanup /home/users/nico/.tmp/tmp8qcpjv +INFO: Total processing time for 16 host(s): 142.70005 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 132.945203 seconds +I should cleanup /home/users/nico/.tmp/tmpzot_mg +INFO: Finished run of ikq07.ethz.ch in 132.982484 seconds +I should cleanup /home/users/nico/.tmp/tmpgsp6q2 +INFO: Finished run of ikq02.ethz.ch in 133.229802 seconds +I should cleanup /home/users/nico/.tmp/tmpd4zxn8 +INFO: Finished run of ikq04.ethz.ch in 133.299541 seconds +I should cleanup /home/users/nico/.tmp/tmp4zq45z +INFO: Finished run of ikq06.ethz.ch in 133.802036 seconds +I should cleanup /home/users/nico/.tmp/tmpzwrs5v +INFO: Finished run of ikr14.ethz.ch in 145.03485 seconds +I should cleanup /home/users/nico/.tmp/tmpbqcwz0 +INFO: Finished run of ikr02.ethz.ch in 145.416967 seconds +I should cleanup /home/users/nico/.tmp/tmp1lse41 +INFO: Finished run of ikr10.ethz.ch in 145.693574 seconds +I should cleanup /home/users/nico/.tmp/tmpur3wfv +INFO: Finished run of ikr07.ethz.ch in 145.978708 seconds +I should cleanup /home/users/nico/.tmp/tmpr0an2_ +INFO: Finished run of ikr05.ethz.ch in 146.286686 seconds +I should cleanup /home/users/nico/.tmp/tmpl29did +INFO: Finished run of ikr09.ethz.ch in 146.501529 seconds +I should cleanup /home/users/nico/.tmp/tmpydoin6 +INFO: Finished run of ikr15.ethz.ch in 147.016223 seconds +I should cleanup /home/users/nico/.tmp/tmpbcp5p8 +INFO: Finished run of ikr03.ethz.ch in 147.12484 seconds +I should cleanup /home/users/nico/.tmp/tmpuowz74 +INFO: Finished run of ikr11.ethz.ch in 147.286151 seconds +I should cleanup /home/users/nico/.tmp/tmph25hy8 +INFO: Finished run of ikq05.ethz.ch in 148.506819 seconds +I should cleanup /home/users/nico/.tmp/tmp7brn95 +INFO: Total processing time for 17 host(s): 148.541452 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq04.ethz.ch in 143.675686 seconds +I should cleanup /home/users/nico/.tmp/tmp82nal9 +INFO: Finished run of ikq06.ethz.ch in 144.765412 seconds +I should cleanup /home/users/nico/.tmp/tmppxbr5e +INFO: Finished run of ikq07.ethz.ch in 144.895368 seconds +I should cleanup /home/users/nico/.tmp/tmp2waolo +INFO: Finished run of ikq03.ethz.ch in 145.051027 seconds +I should cleanup /home/users/nico/.tmp/tmp4984jk +INFO: Finished run of ikq02.ethz.ch in 145.822406 seconds +I should cleanup /home/users/nico/.tmp/tmpaz8a8n +INFO: Finished run of ikr14.ethz.ch in 154.113672 seconds +I should cleanup /home/users/nico/.tmp/tmpxy2kg4 +INFO: Finished run of ikr10.ethz.ch in 156.984583 seconds +I should cleanup /home/users/nico/.tmp/tmp6ppd8k +INFO: Finished run of ikr02.ethz.ch in 157.091568 seconds +I should cleanup /home/users/nico/.tmp/tmpxxou_a +INFO: Finished run of ikr07.ethz.ch in 157.520308 seconds +I should cleanup /home/users/nico/.tmp/tmpow0v1c +INFO: Finished run of ikr09.ethz.ch in 157.634227 seconds +I should cleanup /home/users/nico/.tmp/tmpi3gg17 +INFO: Finished run of ikr03.ethz.ch in 157.85916 seconds +I should cleanup /home/users/nico/.tmp/tmp3aybb1 +INFO: Finished run of ikr05.ethz.ch in 157.896262 seconds +I should cleanup /home/users/nico/.tmp/tmphqwu6l +INFO: Finished run of ikr16.ethz.ch in 158.078375 seconds +I should cleanup /home/users/nico/.tmp/tmptkh_yn +INFO: Finished run of ikr11.ethz.ch in 158.379867 seconds +I should cleanup /home/users/nico/.tmp/tmp1mdfoi +INFO: Finished run of ikr15.ethz.ch in 158.426851 seconds +I should cleanup /home/users/nico/.tmp/tmp4lcx43 +INFO: Finished run of ikq05.ethz.ch in 159.319045 seconds +I should cleanup /home/users/nico/.tmp/tmp2f_gug +INFO: Total processing time for 18 host(s): 159.360809 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq07.ethz.ch in 151.304278 seconds +I should cleanup /home/users/nico/.tmp/tmpqkb2pc +INFO: Finished run of ikq06.ethz.ch in 156.467966 seconds +I should cleanup /home/users/nico/.tmp/tmp35zxo7 +INFO: Finished run of ikq04.ethz.ch in 157.188747 seconds +I should cleanup /home/users/nico/.tmp/tmpvb0nxt +INFO: Finished run of ikq03.ethz.ch in 157.955866 seconds +I should cleanup /home/users/nico/.tmp/tmp4k7jgo +INFO: Finished run of ikq02.ethz.ch in 158.316461 seconds +I should cleanup /home/users/nico/.tmp/tmpeddhr1 +INFO: Finished run of ikr10.ethz.ch in 167.801774 seconds +I should cleanup /home/users/nico/.tmp/tmpn_7hlf +INFO: Finished run of ikr14.ethz.ch in 167.906681 seconds +I should cleanup /home/users/nico/.tmp/tmpdemdfp +INFO: Finished run of ikr02.ethz.ch in 169.536628 seconds +I should cleanup /home/users/nico/.tmp/tmpcaeatj +INFO: Finished run of ikr17.ethz.ch in 169.68007 seconds +I should cleanup /home/users/nico/.tmp/tmpzz1gwu +INFO: Finished run of ikr05.ethz.ch in 170.014506 seconds +I should cleanup /home/users/nico/.tmp/tmpksj9is +INFO: Finished run of ikr15.ethz.ch in 170.512682 seconds +I should cleanup /home/users/nico/.tmp/tmpdb72hk +INFO: Finished run of ikr09.ethz.ch in 170.696373 seconds +I should cleanup /home/users/nico/.tmp/tmpe3dz9b +INFO: Finished run of ikr07.ethz.ch in 170.923977 seconds +I should cleanup /home/users/nico/.tmp/tmpuvt1ke +INFO: Finished run of ikr11.ethz.ch in 170.89362 seconds +I should cleanup /home/users/nico/.tmp/tmpuk0_7g +INFO: Finished run of ikr03.ethz.ch in 171.598123 seconds +I should cleanup /home/users/nico/.tmp/tmp4i12vh +INFO: Finished run of ikr16.ethz.ch in 171.502924 seconds +I should cleanup /home/users/nico/.tmp/tmp55ix1x +INFO: Finished run of ikq05.ethz.ch in 171.874543 seconds +I should cleanup /home/users/nico/.tmp/tmp417ofh +INFO: Total processing time for 19 host(s): 171.907864 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq02.ethz.ch in 157.829713 seconds +I should cleanup /home/users/nico/.tmp/tmpqf9wcb +INFO: Finished run of ikq04.ethz.ch in 161.470424 seconds +I should cleanup /home/users/nico/.tmp/tmpaxrqmo +INFO: Finished run of ikq06.ethz.ch in 163.020342 seconds +I should cleanup /home/users/nico/.tmp/tmpt5dwxt +INFO: Finished run of ikq03.ethz.ch in 164.391855 seconds +I should cleanup /home/users/nico/.tmp/tmpd_5zb6 +INFO: Finished run of ikq07.ethz.ch in 165.180659 seconds +I should cleanup /home/users/nico/.tmp/tmp97ikmr +INFO: Finished run of ikr14.ethz.ch in 173.059971 seconds +I should cleanup /home/users/nico/.tmp/tmpefe37g +INFO: Finished run of ikr07.ethz.ch in 173.134127 seconds +I should cleanup /home/users/nico/.tmp/tmp7vam9i +INFO: Finished run of ikr05.ethz.ch in 174.793465 seconds +I should cleanup /home/users/nico/.tmp/tmplu772y +INFO: Finished run of ikr19.ethz.ch in 175.448245 seconds +I should cleanup /home/users/nico/.tmp/tmpkrzksf +INFO: Finished run of ikr02.ethz.ch in 175.624194 seconds +I should cleanup /home/users/nico/.tmp/tmpln5e7p +INFO: Finished run of ikr10.ethz.ch in 177.161247 seconds +I should cleanup /home/users/nico/.tmp/tmp04oa95 +INFO: Finished run of ikr17.ethz.ch in 177.641062 seconds +I should cleanup /home/users/nico/.tmp/tmpuke4jq +INFO: Finished run of ikr03.ethz.ch in 177.805503 seconds +I should cleanup /home/users/nico/.tmp/tmp9m6kgk +INFO: Finished run of ikr09.ethz.ch in 178.068981 seconds +I should cleanup /home/users/nico/.tmp/tmpwsvt18 +INFO: Finished run of ikr11.ethz.ch in 178.26438 seconds +I should cleanup /home/users/nico/.tmp/tmpvsc9oz +INFO: Finished run of ikr15.ethz.ch in 178.416205 seconds +I should cleanup /home/users/nico/.tmp/tmpmzzacs +INFO: Finished run of ikr16.ethz.ch in 178.473477 seconds +I should cleanup /home/users/nico/.tmp/tmplh_80t +INFO: Finished run of ikq05.ethz.ch in 178.735551 seconds +I should cleanup /home/users/nico/.tmp/tmpslnq9v +INFO: Total processing time for 20 host(s): 178.76695 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq02.ethz.ch in 170.169321 seconds +I should cleanup /home/users/nico/.tmp/tmpdgynh9 +INFO: Finished run of ikq06.ethz.ch in 171.461174 seconds +I should cleanup /home/users/nico/.tmp/tmpwxtd79 +INFO: Finished run of ikq03.ethz.ch in 171.626668 seconds +I should cleanup /home/users/nico/.tmp/tmpiqc3ji +INFO: Finished run of ikq04.ethz.ch in 171.724653 seconds +I should cleanup /home/users/nico/.tmp/tmpdt2og0 +INFO: Finished run of ikq07.ethz.ch in 171.78001 seconds +I should cleanup /home/users/nico/.tmp/tmpl4krs7 +INFO: Finished run of ikr10.ethz.ch in 177.048099 seconds +I should cleanup /home/users/nico/.tmp/tmpne6_s_ +INFO: Finished run of ikr17.ethz.ch in 180.562186 seconds +I should cleanup /home/users/nico/.tmp/tmpl199q5 +INFO: Finished run of ikr19.ethz.ch in 181.223109 seconds +I should cleanup /home/users/nico/.tmp/tmpoky1qz +INFO: Finished run of ikr11.ethz.ch in 182.462812 seconds +I should cleanup /home/users/nico/.tmp/tmp2xfmtx +INFO: Finished run of ikr14.ethz.ch in 182.498966 seconds +I should cleanup /home/users/nico/.tmp/tmpbaa_1v +INFO: Finished run of ikr20.ethz.ch in 182.598193 seconds +I should cleanup /home/users/nico/.tmp/tmp0goxf_ +INFO: Finished run of ikr03.ethz.ch in 183.01005 seconds +I should cleanup /home/users/nico/.tmp/tmpa7d_j6 +INFO: Finished run of ikr15.ethz.ch in 182.994708 seconds +I should cleanup /home/users/nico/.tmp/tmphvktgk +INFO: Finished run of ikr07.ethz.ch in 183.413644 seconds +I should cleanup /home/users/nico/.tmp/tmpxfe884 +INFO: Finished run of ikr02.ethz.ch in 183.470895 seconds +I should cleanup /home/users/nico/.tmp/tmphd7ynb +INFO: Finished run of ikr05.ethz.ch in 183.46156 seconds +I should cleanup /home/users/nico/.tmp/tmpfniywk +INFO: Finished run of ikr16.ethz.ch in 183.371318 seconds +I should cleanup /home/users/nico/.tmp/tmpqsd782 +INFO: Finished run of ikr09.ethz.ch in 183.467264 seconds +I should cleanup /home/users/nico/.tmp/tmph84dh1 +INFO: Finished run of ikq05.ethz.ch in 183.813915 seconds +I should cleanup /home/users/nico/.tmp/tmp_w3anv +INFO: Total processing time for 21 host(s): 183.856671 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 169.955614 seconds +I should cleanup /home/users/nico/.tmp/tmplmg5_y +INFO: Finished run of ikq02.ethz.ch in 170.411064 seconds +I should cleanup /home/users/nico/.tmp/tmpwr3ygp +INFO: Finished run of ikq07.ethz.ch in 173.554952 seconds +I should cleanup /home/users/nico/.tmp/tmpso42zx +INFO: Finished run of ikq04.ethz.ch in 173.63845 seconds +I should cleanup /home/users/nico/.tmp/tmpsqgh9o +INFO: Finished run of ikq03.ethz.ch in 173.951844 seconds +I should cleanup /home/users/nico/.tmp/tmp8fjghd +INFO: Finished run of ikr20.ethz.ch in 185.922176 seconds +I should cleanup /home/users/nico/.tmp/tmpt3rtcq +INFO: Finished run of ikr07.ethz.ch in 191.153275 seconds +I should cleanup /home/users/nico/.tmp/tmpr39dmz +INFO: Finished run of ikr10.ethz.ch in 191.982504 seconds +I should cleanup /home/users/nico/.tmp/tmpz_ear7 +INFO: Finished run of ikr14.ethz.ch in 192.653998 seconds +I should cleanup /home/users/nico/.tmp/tmp7wvfhq +INFO: Finished run of ikr17.ethz.ch in 192.652562 seconds +I should cleanup /home/users/nico/.tmp/tmp51k0hh +INFO: Finished run of ikr19.ethz.ch in 192.814789 seconds +I should cleanup /home/users/nico/.tmp/tmp760hc3 +INFO: Finished run of ikr05.ethz.ch in 193.44574 seconds +I should cleanup /home/users/nico/.tmp/tmp73204x +INFO: Finished run of ikr09.ethz.ch in 193.537 seconds +I should cleanup /home/users/nico/.tmp/tmpf4z4q5 +INFO: Finished run of ikr16.ethz.ch in 193.584303 seconds +I should cleanup /home/users/nico/.tmp/tmp12jwnj +INFO: Finished run of ikr11.ethz.ch in 193.668931 seconds +I should cleanup /home/users/nico/.tmp/tmptudl3_ +INFO: Finished run of ikr02.ethz.ch in 193.800381 seconds +I should cleanup /home/users/nico/.tmp/tmpf588if +INFO: Finished run of ikr15.ethz.ch in 193.754252 seconds +I should cleanup /home/users/nico/.tmp/tmpp71hsb +INFO: Finished run of ikr03.ethz.ch in 193.866005 seconds +I should cleanup /home/users/nico/.tmp/tmppevhzu +INFO: Finished run of ikr21.ethz.ch in 193.84791 seconds +I should cleanup /home/users/nico/.tmp/tmpe0umjh +INFO: Finished run of ikq05.ethz.ch in 194.471906 seconds +I should cleanup /home/users/nico/.tmp/tmp6y2zuq +INFO: Total processing time for 22 host(s): 194.504221 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 183.331036 seconds +I should cleanup /home/users/nico/.tmp/tmp3zzf35 +INFO: Finished run of ikq04.ethz.ch in 188.245634 seconds +I should cleanup /home/users/nico/.tmp/tmppsfm7g +INFO: Finished run of ikq07.ethz.ch in 189.097252 seconds +I should cleanup /home/users/nico/.tmp/tmpckmmbr +INFO: Finished run of ikq02.ethz.ch in 189.168067 seconds +I should cleanup /home/users/nico/.tmp/tmp_wbxqv +INFO: Finished run of ikq03.ethz.ch in 191.178122 seconds +I should cleanup /home/users/nico/.tmp/tmp4xyb0h +INFO: Finished run of ikr17.ethz.ch in 200.405666 seconds +I should cleanup /home/users/nico/.tmp/tmpwl3901 +INFO: Finished run of ikr20.ethz.ch in 201.125398 seconds +I should cleanup /home/users/nico/.tmp/tmpt4gwst +INFO: Finished run of ikr05.ethz.ch in 204.457668 seconds +I should cleanup /home/users/nico/.tmp/tmpquc21r +INFO: Finished run of ikr19.ethz.ch in 204.61935 seconds +I should cleanup /home/users/nico/.tmp/tmpth2imd +INFO: Finished run of ikr03.ethz.ch in 205.782259 seconds +I should cleanup /home/users/nico/.tmp/tmp5qgmy3 +INFO: Finished run of ikr02.ethz.ch in 206.089122 seconds +I should cleanup /home/users/nico/.tmp/tmp_0yydj +INFO: Finished run of ikr10.ethz.ch in 206.344087 seconds +I should cleanup /home/users/nico/.tmp/tmprppnti +INFO: Finished run of ikr14.ethz.ch in 206.487929 seconds +I should cleanup /home/users/nico/.tmp/tmpg1sm5o +INFO: Finished run of ikr07.ethz.ch in 206.592221 seconds +I should cleanup /home/users/nico/.tmp/tmpz8h8u7 +INFO: Finished run of ikr21.ethz.ch in 206.574162 seconds +I should cleanup /home/users/nico/.tmp/tmp29bf91 +INFO: Finished run of ikr09.ethz.ch in 206.757285 seconds +I should cleanup /home/users/nico/.tmp/tmpkfk0tl +INFO: Finished run of ikr16.ethz.ch in 206.751199 seconds +I should cleanup /home/users/nico/.tmp/tmpjxql2a +INFO: Finished run of ikr15.ethz.ch in 206.951335 seconds +I should cleanup /home/users/nico/.tmp/tmpslol4l +INFO: Finished run of ikq05.ethz.ch in 207.10716 seconds +I should cleanup /home/users/nico/.tmp/tmpryt7ok +INFO: Finished run of ikr23.ethz.ch in 207.047179 seconds +I should cleanup /home/users/nico/.tmp/tmph8jagj +INFO: Finished run of ikr11.ethz.ch in 207.16906 seconds +I should cleanup /home/users/nico/.tmp/tmpl2hbm8 +INFO: Total processing time for 23 host(s): 207.314842 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq07.ethz.ch in 187.618723 seconds +I should cleanup /home/users/nico/.tmp/tmpyoqguq +INFO: Finished run of ikq03.ethz.ch in 187.750961 seconds +I should cleanup /home/users/nico/.tmp/tmpjwp515 +INFO: Finished run of ikq02.ethz.ch in 196.709864 seconds +I should cleanup /home/users/nico/.tmp/tmpm221lr +INFO: Finished run of ikq06.ethz.ch in 197.81424 seconds +I should cleanup /home/users/nico/.tmp/tmpkyt260 +INFO: Finished run of ikq04.ethz.ch in 198.512346 seconds +I should cleanup /home/users/nico/.tmp/tmpkwgaqh +INFO: Finished run of ikr14.ethz.ch in 208.879349 seconds +I should cleanup /home/users/nico/.tmp/tmpnshneg +INFO: Finished run of ikr19.ethz.ch in 211.066451 seconds +I should cleanup /home/users/nico/.tmp/tmpc0tm26 +INFO: Finished run of ikr20.ethz.ch in 212.537745 seconds +I should cleanup /home/users/nico/.tmp/tmpw16xze +INFO: Finished run of ikr03.ethz.ch in 213.771479 seconds +I should cleanup /home/users/nico/.tmp/tmpa4pj9v +INFO: Finished run of ikr10.ethz.ch in 214.089014 seconds +I should cleanup /home/users/nico/.tmp/tmpbbmh5z +INFO: Finished run of ikr15.ethz.ch in 214.168849 seconds +I should cleanup /home/users/nico/.tmp/tmp_hj_82 +INFO: Finished run of ikr17.ethz.ch in 214.377309 seconds +I should cleanup /home/users/nico/.tmp/tmpvltd85 +INFO: Finished run of ikr21.ethz.ch in 214.424358 seconds +I should cleanup /home/users/nico/.tmp/tmp9fv334 +INFO: Finished run of ikr07.ethz.ch in 214.840774 seconds +I should cleanup /home/users/nico/.tmp/tmpqm165u +INFO: Finished run of ikr05.ethz.ch in 214.906573 seconds +I should cleanup /home/users/nico/.tmp/tmpsjzrd3 +INFO: Finished run of ikr02.ethz.ch in 214.947938 seconds +I should cleanup /home/users/nico/.tmp/tmpdomosr +INFO: Finished run of ikr09.ethz.ch in 214.892808 seconds +I should cleanup /home/users/nico/.tmp/tmpwv5fb2 +INFO: Finished run of ikr11.ethz.ch in 215.352163 seconds +I should cleanup /home/users/nico/.tmp/tmp0_c8kz +INFO: Finished run of ikq05.ethz.ch in 215.460435 seconds +I should cleanup /home/users/nico/.tmp/tmpypqk55 +INFO: Finished run of ikr16.ethz.ch in 215.318416 seconds +I should cleanup /home/users/nico/.tmp/tmpypq7ta +INFO: Finished run of ikr24.ethz.ch in 215.365107 seconds +I should cleanup /home/users/nico/.tmp/tmpri18dz +INFO: Finished run of ikr23.ethz.ch in 215.594156 seconds +I should cleanup /home/users/nico/.tmp/tmpglm4ku +INFO: Total processing time for 24 host(s): 215.846502 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr25.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq07.ethz.ch in 188.442055 seconds +I should cleanup /home/users/nico/.tmp/tmprcj8hv +INFO: Finished run of ikq04.ethz.ch in 188.602631 seconds +I should cleanup /home/users/nico/.tmp/tmpe6svdv +INFO: Finished run of ikq02.ethz.ch in 191.545683 seconds +I should cleanup /home/users/nico/.tmp/tmpw7tyqo +INFO: Finished run of ikq06.ethz.ch in 191.972664 seconds +I should cleanup /home/users/nico/.tmp/tmpc3xcoh +INFO: Finished run of ikq03.ethz.ch in 200.27211 seconds +I should cleanup /home/users/nico/.tmp/tmpej_9wz +INFO: Finished run of ikr17.ethz.ch in 211.689402 seconds +I should cleanup /home/users/nico/.tmp/tmpab2j3n +INFO: Finished run of ikr20.ethz.ch in 213.782377 seconds +I should cleanup /home/users/nico/.tmp/tmpeb5m8a +INFO: Finished run of ikr25.ethz.ch in 214.437128 seconds +I should cleanup /home/users/nico/.tmp/tmpltec25 +INFO: Finished run of ikr10.ethz.ch in 214.723128 seconds +I should cleanup /home/users/nico/.tmp/tmpn3tnws +INFO: Finished run of ikr19.ethz.ch in 214.907271 seconds +I should cleanup /home/users/nico/.tmp/tmpimo16x +INFO: Finished run of ikr14.ethz.ch in 215.026046 seconds +I should cleanup /home/users/nico/.tmp/tmpf6wp_u +INFO: Finished run of ikr05.ethz.ch in 215.731064 seconds +I should cleanup /home/users/nico/.tmp/tmp_67b2k +INFO: Finished run of ikr24.ethz.ch in 215.736746 seconds +I should cleanup /home/users/nico/.tmp/tmpsj8gpp +INFO: Finished run of ikr11.ethz.ch in 216.207536 seconds +I should cleanup /home/users/nico/.tmp/tmpsvg8rs +INFO: Finished run of ikr09.ethz.ch in 216.40167 seconds +I should cleanup /home/users/nico/.tmp/tmpr76lo2 +INFO: Finished run of ikr02.ethz.ch in 216.476902 seconds +I should cleanup /home/users/nico/.tmp/tmpoa5woy +INFO: Finished run of ikr03.ethz.ch in 216.760169 seconds +I should cleanup /home/users/nico/.tmp/tmpoos_8z +INFO: Finished run of ikr23.ethz.ch in 216.673695 seconds +I should cleanup /home/users/nico/.tmp/tmphffunh +INFO: Finished run of ikr15.ethz.ch in 216.889297 seconds +I should cleanup /home/users/nico/.tmp/tmpaesns3 +INFO: Finished run of ikr07.ethz.ch in 217.052298 seconds +I should cleanup /home/users/nico/.tmp/tmpn87am6 +INFO: Finished run of ikr21.ethz.ch in 216.951911 seconds +I should cleanup /home/users/nico/.tmp/tmps2kfri +INFO: Finished run of ikr16.ethz.ch in 217.021147 seconds +I should cleanup /home/users/nico/.tmp/tmpfyxjsx +INFO: Finished run of ikq05.ethz.ch in 217.191655 seconds +I should cleanup /home/users/nico/.tmp/tmpx5i4km +INFO: Total processing time for 25 host(s): 217.223581 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr25.ethz.ch +INFO: Deploying to ikr26.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 209.543172 seconds +I should cleanup /home/users/nico/.tmp/tmpb51g1n +INFO: Finished run of ikq03.ethz.ch in 210.337092 seconds +I should cleanup /home/users/nico/.tmp/tmpce1qe3 +INFO: Finished run of ikq02.ethz.ch in 210.760602 seconds +I should cleanup /home/users/nico/.tmp/tmpfnduir +INFO: Finished run of ikq07.ethz.ch in 211.315784 seconds +I should cleanup /home/users/nico/.tmp/tmpq3tw15 +INFO: Finished run of ikq04.ethz.ch in 213.717476 seconds +I should cleanup /home/users/nico/.tmp/tmp9b4_69 +INFO: Finished run of ikr03.ethz.ch in 233.40723 seconds +I should cleanup /home/users/nico/.tmp/tmpk_n0av +INFO: Finished run of ikr10.ethz.ch in 233.780751 seconds +I should cleanup /home/users/nico/.tmp/tmp91phvb +INFO: Finished run of ikr07.ethz.ch in 234.993885 seconds +I should cleanup /home/users/nico/.tmp/tmpexumzi +INFO: Finished run of ikr14.ethz.ch in 236.126748 seconds +I should cleanup /home/users/nico/.tmp/tmpyjxqk5 +INFO: Finished run of ikr05.ethz.ch in 236.907114 seconds +I should cleanup /home/users/nico/.tmp/tmp2mfxb9 +INFO: Finished run of ikr19.ethz.ch in 236.805215 seconds +I should cleanup /home/users/nico/.tmp/tmpmlyizv +INFO: Finished run of ikr20.ethz.ch in 237.000427 seconds +I should cleanup /home/users/nico/.tmp/tmpwy_utm +INFO: Finished run of ikr25.ethz.ch in 237.06996 seconds +I should cleanup /home/users/nico/.tmp/tmpgqrsfd +INFO: Finished run of ikr11.ethz.ch in 237.62119 seconds +I should cleanup /home/users/nico/.tmp/tmpwd0a1c +INFO: Finished run of ikr26.ethz.ch in 237.554682 seconds +I should cleanup /home/users/nico/.tmp/tmp7wsaqu +INFO: Finished run of ikr17.ethz.ch in 237.715835 seconds +I should cleanup /home/users/nico/.tmp/tmparrgy1 +INFO: Finished run of ikr15.ethz.ch in 237.961549 seconds +I should cleanup /home/users/nico/.tmp/tmpt74239 +INFO: Finished run of ikq05.ethz.ch in 238.126596 seconds +I should cleanup /home/users/nico/.tmp/tmpvfigmw +INFO: Finished run of ikr02.ethz.ch in 238.134702 seconds +I should cleanup /home/users/nico/.tmp/tmpb7v16x +INFO: Finished run of ikr16.ethz.ch in 238.099716 seconds +I should cleanup /home/users/nico/.tmp/tmpb0x56o +INFO: Finished run of ikr09.ethz.ch in 238.20569 seconds +I should cleanup /home/users/nico/.tmp/tmpl5qoyz +INFO: Finished run of ikr24.ethz.ch in 238.230154 seconds +I should cleanup /home/users/nico/.tmp/tmp93hwbz +INFO: Finished run of ikr21.ethz.ch in 238.300384 seconds +I should cleanup /home/users/nico/.tmp/tmp619s6n +INFO: Finished run of ikr23.ethz.ch in 238.322157 seconds +I should cleanup /home/users/nico/.tmp/tmpvb2kh5 +INFO: Total processing time for 26 host(s): 238.591705 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr25.ethz.ch +INFO: Deploying to ikr26.ethz.ch +INFO: Deploying to ikr27.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 215.332411 seconds +I should cleanup /home/users/nico/.tmp/tmpjvsfb6 +INFO: Finished run of ikq02.ethz.ch in 217.196822 seconds +I should cleanup /home/users/nico/.tmp/tmptbx4cl +INFO: Finished run of ikq06.ethz.ch in 217.198258 seconds +I should cleanup /home/users/nico/.tmp/tmpm7ducc +INFO: Finished run of ikq07.ethz.ch in 220.168978 seconds +I should cleanup /home/users/nico/.tmp/tmpzum8_c +INFO: Finished run of ikq04.ethz.ch in 220.311359 seconds +I should cleanup /home/users/nico/.tmp/tmpf8oh_z +E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. +ERROR: Command failed: ssh root@ikr27.ethz.ch /var/lib/cdist/object/__package_apt/collectd/.cdist/code-remote +INFO: Finished run of ikr25.ethz.ch in 231.729276 seconds +I should cleanup /home/users/nico/.tmp/tmpkw4l8y +INFO: Finished run of ikr14.ethz.ch in 235.616386 seconds +I should cleanup /home/users/nico/.tmp/tmpierma3 +INFO: Finished run of ikr26.ethz.ch in 235.793067 seconds +I should cleanup /home/users/nico/.tmp/tmpf9hmfe +INFO: Finished run of ikr02.ethz.ch in 236.019716 seconds +I should cleanup /home/users/nico/.tmp/tmpd1x7cn +INFO: Finished run of ikr17.ethz.ch in 236.038355 seconds +I should cleanup /home/users/nico/.tmp/tmpwla840 +INFO: Finished run of ikr19.ethz.ch in 236.343239 seconds +I should cleanup /home/users/nico/.tmp/tmp16gann +INFO: Finished run of ikr20.ethz.ch in 236.550018 seconds +I should cleanup /home/users/nico/.tmp/tmpmfhiu3 +INFO: Finished run of ikr09.ethz.ch in 236.68465 seconds +I should cleanup /home/users/nico/.tmp/tmpm_jeke +INFO: Finished run of ikr07.ethz.ch in 237.023632 seconds +I should cleanup /home/users/nico/.tmp/tmpwpb50n +INFO: Finished run of ikr10.ethz.ch in 237.252747 seconds +I should cleanup /home/users/nico/.tmp/tmps57avh +INFO: Finished run of ikr05.ethz.ch in 237.343652 seconds +I should cleanup /home/users/nico/.tmp/tmpcz9apl +INFO: Finished run of ikq05.ethz.ch in 237.564124 seconds +I should cleanup /home/users/nico/.tmp/tmpgo8u_q +INFO: Finished run of ikr03.ethz.ch in 237.561235 seconds +I should cleanup /home/users/nico/.tmp/tmp37xbfa +INFO: Finished run of ikr16.ethz.ch in 237.55441 seconds +I should cleanup /home/users/nico/.tmp/tmp_y6cb0 +INFO: Finished run of ikr23.ethz.ch in 237.589377 seconds +I should cleanup /home/users/nico/.tmp/tmpmswsnx +INFO: Finished run of ikr11.ethz.ch in 237.791683 seconds +I should cleanup /home/users/nico/.tmp/tmprlbap0 +INFO: Finished run of ikr24.ethz.ch in 237.819221 seconds +I should cleanup /home/users/nico/.tmp/tmpjywrgt +INFO: Finished run of ikr15.ethz.ch in 238.148722 seconds +I should cleanup /home/users/nico/.tmp/tmpdefzkg +INFO: Finished run of ikr21.ethz.ch in 238.227193 seconds +I should cleanup /home/users/nico/.tmp/tmppsg0pc +INFO: Total processing time for 27 host(s): 238.478493 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr25.ethz.ch +INFO: Deploying to ikr26.ethz.ch +INFO: Deploying to ikr27.ethz.ch +INFO: Deploying to ikr28.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +ERROR: Command failed: ssh root@ikr17.ethz.ch mkdir -p /var/lib/cdist/conf/type/__package_apt +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq04.ethz.ch in 215.567874 seconds +I should cleanup /home/users/nico/.tmp/tmp99c8j5 +INFO: Finished run of ikq06.ethz.ch in 219.752235 seconds +I should cleanup /home/users/nico/.tmp/tmpb1628u +INFO: Finished run of ikq07.ethz.ch in 221.491529 seconds +I should cleanup /home/users/nico/.tmp/tmpjr3i7w +INFO: Finished run of ikq02.ethz.ch in 222.054742 seconds +I should cleanup /home/users/nico/.tmp/tmpia1edb +INFO: Finished run of ikq03.ethz.ch in 229.509667 seconds +I should cleanup /home/users/nico/.tmp/tmpvdfr2q +INFO: Finished run of ikq05.ethz.ch in 231.337049 seconds +I should cleanup /home/users/nico/.tmp/tmpwz_8tv +E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. +ERROR: Command failed: ssh root@ikr27.ethz.ch /var/lib/cdist/object/__package_apt/collectd/.cdist/code-remote +INFO: Finished run of ikr20.ethz.ch in 239.14496 seconds +I should cleanup /home/users/nico/.tmp/tmpx63vlh +INFO: Finished run of ikr02.ethz.ch in 241.402815 seconds +I should cleanup /home/users/nico/.tmp/tmp_bmfp_ +INFO: Finished run of ikr25.ethz.ch in 241.948038 seconds +I should cleanup /home/users/nico/.tmp/tmpohdpq5 +INFO: Finished run of ikr05.ethz.ch in 243.861596 seconds +I should cleanup /home/users/nico/.tmp/tmpr_vxd_ +INFO: Finished run of ikr19.ethz.ch in 244.322837 seconds +I should cleanup /home/users/nico/.tmp/tmpripuph +INFO: Finished run of ikr10.ethz.ch in 244.439443 seconds +I should cleanup /home/users/nico/.tmp/tmp8wacqr +INFO: Finished run of ikr14.ethz.ch in 244.572394 seconds +I should cleanup /home/users/nico/.tmp/tmpuw2ppx +INFO: Finished run of ikr26.ethz.ch in 244.781803 seconds +I should cleanup /home/users/nico/.tmp/tmpt_4vqo +INFO: Finished run of ikr23.ethz.ch in 244.916033 seconds +I should cleanup /home/users/nico/.tmp/tmp9lgge8 +INFO: Finished run of ikr03.ethz.ch in 245.12315 seconds +I should cleanup /home/users/nico/.tmp/tmpb072wd +INFO: Finished run of ikr16.ethz.ch in 245.353491 seconds +I should cleanup /home/users/nico/.tmp/tmpsq8pj3 +INFO: Finished run of ikr11.ethz.ch in 245.445685 seconds +I should cleanup /home/users/nico/.tmp/tmpsomf09 +INFO: Finished run of ikr07.ethz.ch in 245.47506 seconds +I should cleanup /home/users/nico/.tmp/tmppu7tq2 +INFO: Finished run of ikr09.ethz.ch in 245.576609 seconds +I should cleanup /home/users/nico/.tmp/tmpoliguo +INFO: Finished run of ikr15.ethz.ch in 245.57091 seconds +I should cleanup /home/users/nico/.tmp/tmpic_4ln +INFO: Finished run of ikr28.ethz.ch in 245.673558 seconds +I should cleanup /home/users/nico/.tmp/tmpceanz0 +INFO: Finished run of ikr21.ethz.ch in 245.785506 seconds +I should cleanup /home/users/nico/.tmp/tmphd9b_a +INFO: Finished run of ikr24.ethz.ch in 245.762761 seconds +I should cleanup /home/users/nico/.tmp/tmp6q4lt_ +INFO: Total processing time for 28 host(s): 246.058718 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr25.ethz.ch +INFO: Deploying to ikr26.ethz.ch +INFO: Deploying to ikr27.ethz.ch +INFO: Deploying to ikr28.ethz.ch +INFO: Deploying to ikr29.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq06.ethz.ch in 235.403198 seconds +I should cleanup /home/users/nico/.tmp/tmplh0yub +INFO: Finished run of ikq03.ethz.ch in 237.3758 seconds +I should cleanup /home/users/nico/.tmp/tmpnwzceq +INFO: Finished run of ikq07.ethz.ch in 238.054173 seconds +I should cleanup /home/users/nico/.tmp/tmpezdl2v +INFO: Finished run of ikq02.ethz.ch in 240.123134 seconds +I should cleanup /home/users/nico/.tmp/tmph4zyv1 +INFO: Finished run of ikq04.ethz.ch in 240.240325 seconds +I should cleanup /home/users/nico/.tmp/tmp1hgnqr +INFO: Finished run of ikr07.ethz.ch in 255.212756 seconds +I should cleanup /home/users/nico/.tmp/tmpu4etp8 +E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. +ERROR: Command failed: ssh root@ikr27.ethz.ch /var/lib/cdist/object/__package_apt/collectd/.cdist/code-remote +INFO: Finished run of ikr20.ethz.ch in 257.655047 seconds +I should cleanup /home/users/nico/.tmp/tmpraen0m +INFO: Finished run of ikr26.ethz.ch in 260.095529 seconds +I should cleanup /home/users/nico/.tmp/tmptw0mi2 +INFO: Finished run of ikq05.ethz.ch in 260.533335 seconds +I should cleanup /home/users/nico/.tmp/tmp8d93a8 +INFO: Finished run of ikr14.ethz.ch in 262.082391 seconds +I should cleanup /home/users/nico/.tmp/tmpcq9jn8 +INFO: Finished run of ikr09.ethz.ch in 262.202072 seconds +I should cleanup /home/users/nico/.tmp/tmpdvdnr6 +INFO: Finished run of ikr11.ethz.ch in 262.398554 seconds +I should cleanup /home/users/nico/.tmp/tmp78uy18 +INFO: Finished run of ikr17.ethz.ch in 262.513191 seconds +I should cleanup /home/users/nico/.tmp/tmpr97wjm +INFO: Finished run of ikr25.ethz.ch in 262.614397 seconds +I should cleanup /home/users/nico/.tmp/tmpjc9obd +INFO: Finished run of ikr02.ethz.ch in 263.127853 seconds +I should cleanup /home/users/nico/.tmp/tmpvkl1m9 +INFO: Finished run of ikr05.ethz.ch in 263.338641 seconds +I should cleanup /home/users/nico/.tmp/tmplyywfq +INFO: Finished run of ikr21.ethz.ch in 263.232372 seconds +I should cleanup /home/users/nico/.tmp/tmpatqdlm +INFO: Finished run of ikr15.ethz.ch in 263.457294 seconds +I should cleanup /home/users/nico/.tmp/tmprddqa0 +INFO: Finished run of ikr19.ethz.ch in 263.424671 seconds +I should cleanup /home/users/nico/.tmp/tmpq1ap51 +INFO: Finished run of ikr03.ethz.ch in 263.622373 seconds +I should cleanup /home/users/nico/.tmp/tmp_7rzac +INFO: Finished run of ikr16.ethz.ch in 263.564308 seconds +INFO: Finished run of ikr10.ethz.ch in 263.634145 seconds +I should cleanup /home/users/nico/.tmp/tmpspg21e +I should cleanup /home/users/nico/.tmp/tmpb1swlv +INFO: Finished run of ikr28.ethz.ch in 263.507415 seconds +I should cleanup /home/users/nico/.tmp/tmp54z8g_ +INFO: Finished run of ikr29.ethz.ch in 263.598878 seconds +I should cleanup /home/users/nico/.tmp/tmp2kr9cs +INFO: Finished run of ikr23.ethz.ch in 263.668785 seconds +I should cleanup /home/users/nico/.tmp/tmpxb7jsn +INFO: Finished run of ikr24.ethz.ch in 263.903858 seconds +I should cleanup /home/users/nico/.tmp/tmplikdv8 +INFO: Total processing time for 29 host(s): 264.208372 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr25.ethz.ch +INFO: Deploying to ikr26.ethz.ch +INFO: Deploying to ikr27.ethz.ch +INFO: Deploying to ikr28.ethz.ch +INFO: Deploying to ikr29.ethz.ch +INFO: Deploying to ikr30.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 229.360922 seconds +I should cleanup /home/users/nico/.tmp/tmplykkga +INFO: Finished run of ikq02.ethz.ch in 231.154059 seconds +I should cleanup /home/users/nico/.tmp/tmppmmhz3 +INFO: Finished run of ikq04.ethz.ch in 233.577996 seconds +I should cleanup /home/users/nico/.tmp/tmppdxzl3 +INFO: Finished run of ikq07.ethz.ch in 237.22933 seconds +I should cleanup /home/users/nico/.tmp/tmpiomb4i +INFO: Finished run of ikq06.ethz.ch in 239.725816 seconds +I should cleanup /home/users/nico/.tmp/tmpqj3pl6 +E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. +ERROR: Command failed: ssh root@ikr27.ethz.ch /var/lib/cdist/object/__package_apt/collectd/.cdist/code-remote +INFO: Finished run of ikr20.ethz.ch in 258.466225 seconds +I should cleanup /home/users/nico/.tmp/tmpve9wdi +INFO: Finished run of ikr14.ethz.ch in 259.177486 seconds +I should cleanup /home/users/nico/.tmp/tmp_d36bl +INFO: Finished run of ikr17.ethz.ch in 260.754277 seconds +I should cleanup /home/users/nico/.tmp/tmpv5frqn +INFO: Finished run of ikr11.ethz.ch in 261.107312 seconds +I should cleanup /home/users/nico/.tmp/tmp5oacup +INFO: Finished run of ikr05.ethz.ch in 261.154726 seconds +I should cleanup /home/users/nico/.tmp/tmpghnptx +INFO: Finished run of ikq05.ethz.ch in 262.048584 seconds +I should cleanup /home/users/nico/.tmp/tmpugqfjj +INFO: Finished run of ikr25.ethz.ch in 262.233978 seconds +I should cleanup /home/users/nico/.tmp/tmppf3xu8 +INFO: Finished run of ikr10.ethz.ch in 262.713893 seconds +I should cleanup /home/users/nico/.tmp/tmpu2nkra +INFO: Finished run of ikr19.ethz.ch in 263.068704 seconds +I should cleanup /home/users/nico/.tmp/tmpi_jrg4 +INFO: Finished run of ikr02.ethz.ch in 264.085429 seconds +I should cleanup /home/users/nico/.tmp/tmpu6hfym +INFO: Finished run of ikr03.ethz.ch in 264.10239 seconds +I should cleanup /home/users/nico/.tmp/tmpzj0tpo +INFO: Finished run of ikr09.ethz.ch in 264.294349 seconds +I should cleanup /home/users/nico/.tmp/tmpkeo6qa +INFO: Finished run of ikr26.ethz.ch in 264.343501 seconds +I should cleanup /home/users/nico/.tmp/tmpofeovc +INFO: Finished run of ikr15.ethz.ch in 264.650148 seconds +I should cleanup /home/users/nico/.tmp/tmp2tooi_ +INFO: Finished run of ikr24.ethz.ch in 264.585275 seconds +I should cleanup /home/users/nico/.tmp/tmpk0vvl3 +INFO: Finished run of ikr07.ethz.ch in 264.743286 seconds +I should cleanup /home/users/nico/.tmp/tmp9lk9_m +INFO: Finished run of ikr30.ethz.ch in 264.505029 seconds +I should cleanup /home/users/nico/.tmp/tmpygy8g0 +INFO: Finished run of ikr23.ethz.ch in 264.681778 seconds +I should cleanup /home/users/nico/.tmp/tmpgd7nqn +INFO: Finished run of ikr29.ethz.ch in 264.590897 seconds +I should cleanup /home/users/nico/.tmp/tmp7m95p2 +INFO: Finished run of ikr16.ethz.ch in 264.863193 seconds +I should cleanup /home/users/nico/.tmp/tmpzqsbdu +INFO: Finished run of ikr21.ethz.ch in 264.933458 seconds +I should cleanup /home/users/nico/.tmp/tmphlqu6i +INFO: Finished run of ikr28.ethz.ch in 265.162021 seconds +I should cleanup /home/users/nico/.tmp/tmplpjyze +INFO: Total processing time for 30 host(s): 265.560685 +INFO: Deploying to ikq02.ethz.ch +INFO: Deploying to ikq03.ethz.ch +INFO: Deploying to ikq04.ethz.ch +INFO: Deploying to ikq05.ethz.ch +INFO: Deploying to ikq07.ethz.ch +INFO: Deploying to ikq06.ethz.ch +INFO: Deploying to ikr01.ethz.ch +INFO: Deploying to ikr02.ethz.ch +INFO: Deploying to ikr03.ethz.ch +INFO: Deploying to ikr05.ethz.ch +INFO: Deploying to ikr07.ethz.ch +INFO: Deploying to ikr09.ethz.ch +INFO: Deploying to ikr10.ethz.ch +INFO: Deploying to ikr11.ethz.ch +INFO: Deploying to ikr13.ethz.ch +INFO: Deploying to ikr14.ethz.ch +INFO: Deploying to ikr15.ethz.ch +INFO: Deploying to ikr16.ethz.ch +INFO: Deploying to ikr17.ethz.ch +INFO: Deploying to ikr19.ethz.ch +INFO: Deploying to ikr20.ethz.ch +INFO: Deploying to ikr21.ethz.ch +INFO: Deploying to ikr23.ethz.ch +INFO: Deploying to ikr24.ethz.ch +INFO: Deploying to ikr25.ethz.ch +INFO: Deploying to ikr27.ethz.ch +INFO: Deploying to ikr26.ethz.ch +INFO: Deploying to ikr28.ethz.ch +INFO: Deploying to ikr29.ethz.ch +INFO: Deploying to ikr30.ethz.ch +INFO: Deploying to ikr31.ethz.ch +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr01.ethz.ch:/var/lib/cdist/conf/explorer +scp: /var/lib/cdist/conf/explorer: No such file or directory +ERROR: Command failed: scp -qr /home/users/nico/p/cdist-nutzung/conf/explorer root@ikr13.ethz.ch:/var/lib/cdist/conf/explorer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/collectd/collectd.conf: Recording requirement __package/collectd +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/nullmailer/remotes: Recording requirement __package/nullmailer +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto.pub: Recording requirement __directory/etc/ethz/autofs +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/openntpd/ntpd.conf: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/default/openntpd_rc_config: Recording requirement __package/openntpd +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/sudoers.d/systems: Recording requirement __package/sudo +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/syslog-ng/syslog-ng.conf: Recording requirement __package/syslog-ng +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __directory/etc/ethz/autofs +__file/etc/ethz/autofs/auto_home: Recording requirement __package/python-ldap +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/auto.master: Recording requirement __package/autofs +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __package/libnss-ldapd +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +__file/etc/nsswitch.conf: Recording requirement __file//etc/nslcd.conf +INFO: Finished run of ikq03.ethz.ch in 245.694879 seconds +I should cleanup /home/users/nico/.tmp/tmp0aaihh +INFO: Finished run of ikq07.ethz.ch in 248.839127 seconds +I should cleanup /home/users/nico/.tmp/tmp4tv23i +INFO: Finished run of ikq04.ethz.ch in 250.96365 seconds +I should cleanup /home/users/nico/.tmp/tmp9oaog8 +INFO: Finished run of ikq02.ethz.ch in 251.910723 seconds +I should cleanup /home/users/nico/.tmp/tmpcy7p6n +INFO: Finished run of ikq06.ethz.ch in 252.163352 seconds +I should cleanup /home/users/nico/.tmp/tmp74it6k +E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. +ERROR: Command failed: ssh root@ikr27.ethz.ch /var/lib/cdist/object/__package_apt/collectd/.cdist/code-remote +E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. +ERROR: Command failed: ssh root@ikr31.ethz.ch /var/lib/cdist/object/__package_apt/collectd/.cdist/code-remote +INFO: Finished run of ikr05.ethz.ch in 277.210317 seconds +I should cleanup /home/users/nico/.tmp/tmp34x6v6 +INFO: Finished run of ikr10.ethz.ch in 277.482534 seconds +I should cleanup /home/users/nico/.tmp/tmprellu1 +INFO: Finished run of ikr14.ethz.ch in 279.009467 seconds +I should cleanup /home/users/nico/.tmp/tmpxxp654 +INFO: Finished run of ikr20.ethz.ch in 279.292188 seconds +I should cleanup /home/users/nico/.tmp/tmpw5ck4p +INFO: Finished run of ikr21.ethz.ch in 279.423259 seconds +I should cleanup /home/users/nico/.tmp/tmpe94eay +INFO: Finished run of ikr25.ethz.ch in 279.533419 seconds +I should cleanup /home/users/nico/.tmp/tmpbdgd2g +INFO: Finished run of ikq05.ethz.ch in 279.9565 seconds +I should cleanup /home/users/nico/.tmp/tmp5opdkg +INFO: Finished run of ikr07.ethz.ch in 280.496576 seconds +I should cleanup /home/users/nico/.tmp/tmpmqujdo +INFO: Finished run of ikr26.ethz.ch in 280.333344 seconds +I should cleanup /home/users/nico/.tmp/tmp63f8d8 +INFO: Finished run of ikr29.ethz.ch in 280.291517 seconds +I should cleanup /home/users/nico/.tmp/tmpnqfqpz +INFO: Finished run of ikr15.ethz.ch in 281.228734 seconds +I should cleanup /home/users/nico/.tmp/tmp42p3g5 +INFO: Finished run of ikr17.ethz.ch in 281.222566 seconds +I should cleanup /home/users/nico/.tmp/tmpn97co2 +INFO: Finished run of ikr19.ethz.ch in 281.258219 seconds +I should cleanup /home/users/nico/.tmp/tmpdc5pcf +INFO: Finished run of ikr30.ethz.ch in 281.333785 seconds +I should cleanup /home/users/nico/.tmp/tmp8t0k25 +INFO: Finished run of ikr11.ethz.ch in 281.610303 seconds +I should cleanup /home/users/nico/.tmp/tmph9g41k +INFO: Finished run of ikr28.ethz.ch in 281.513334 seconds +I should cleanup /home/users/nico/.tmp/tmpj44fq4 +INFO: Finished run of ikr02.ethz.ch in 281.870902 seconds +I should cleanup /home/users/nico/.tmp/tmprmqa8b +INFO: Finished run of ikr24.ethz.ch in 281.668327 seconds +I should cleanup /home/users/nico/.tmp/tmpcglj4f +INFO: Finished run of ikr03.ethz.ch in 282.150378 seconds +INFO: Finished run of ikr16.ethz.ch in 282.022936 seconds +I should cleanup /home/users/nico/.tmp/tmpa5nbnv +I should cleanup /home/users/nico/.tmp/tmpkpwd2x +INFO: Finished run of ikr23.ethz.ch in 281.993304 seconds +I should cleanup /home/users/nico/.tmp/tmpw0ts8q +INFO: Finished run of ikr09.ethz.ch in 282.136105 seconds +I should cleanup /home/users/nico/.tmp/tmp882egu +INFO: Total processing time for 31 host(s): 282.264488 diff --git a/doc/dev/logs/2011-09-13 b/doc/dev/logs/2011-09-13 new file mode 100644 index 00000000..b55a2d4e --- /dev/null +++ b/doc/dev/logs/2011-09-13 @@ -0,0 +1,3 @@ +Name for installer: + installer (flag) + $__installer (variable) - gesetzt oder nicht diff --git a/doc/dev/logs/2011-09-16.benchmark-r815-no-control-socket b/doc/dev/logs/2011-09-16.benchmark-r815-no-control-socket new file mode 100644 index 00000000..315ebf75 --- /dev/null +++ b/doc/dev/logs/2011-09-16.benchmark-r815-no-control-socket @@ -0,0 +1,63 @@ +48 core +model name : AMD Opteron(tm) Processor 6174 +128 GB RAM +Dell PowerEdge R815 + +root@sgs-r815-01:~/cdist-nutzung# grep "Total processing time for" deploy-all-benchmark-noikr13 +INFO: Total processing time for 1 host(s): 257.641541 +INFO: Total processing time for 2 host(s): 257.025783 +INFO: Total processing time for 3 host(s): 258.933088 +INFO: Total processing time for 4 host(s): 259.253074 +INFO: Total processing time for 5 host(s): 260.331896 +INFO: Total processing time for 6 host(s): 262.051349 +INFO: Total processing time for 7 host(s): 323.820878 +INFO: Total processing time for 8 host(s): 329.081856 +INFO: Total processing time for 9 host(s): 333.346278 +INFO: Total processing time for 10 host(s): 334.832419 +INFO: Total processing time for 11 host(s): 330.572375 +INFO: Total processing time for 12 host(s): 331.726628 +INFO: Total processing time for 13 host(s): 331.740591 +INFO: Total processing time for 14 host(s): 331.237139 +INFO: Total processing time for 15 host(s): 331.718861 +INFO: Total processing time for 16 host(s): 332.374645 +INFO: Total processing time for 17 host(s): 331.510445 +INFO: Total processing time for 18 host(s): 332.030743 +INFO: Total processing time for 19 host(s): 332.193198 +INFO: Total processing time for 20 host(s): 333.933765 +INFO: Total processing time for 21 host(s): 335.292953 +INFO: Total processing time for 22 host(s): 337.253608 +INFO: Total processing time for 23 host(s): 337.831493 +INFO: Total processing time for 24 host(s): 339.024737 +INFO: Total processing time for 25 host(s): 343.515044 +INFO: Total processing time for 26 host(s): 339.759678 +INFO: Total processing time for 27 host(s): 339.378998 +INFO: Total processing time for 28 host(s): 339.640378 +INFO: Total processing time for 29 host(s): 340.885614 +INFO: Total processing time for 30 host(s): 341.836923 +INFO: Total processing time for 31 host(s): 343.825758 +INFO: Total processing time for 32 host(s): 344.176089 +INFO: Total processing time for 33 host(s): 345.408518 +INFO: Total processing time for 34 host(s): 347.15322 +INFO: Total processing time for 35 host(s): 351.330649 +INFO: Total processing time for 36 host(s): 347.640758 +INFO: Total processing time for 37 host(s): 347.381126 +INFO: Total processing time for 38 host(s): 347.053406 +INFO: Total processing time for 39 host(s): 347.453166 +INFO: Total processing time for 40 host(s): 347.84804 +INFO: Total processing time for 41 host(s): 349.035272 +INFO: Total processing time for 42 host(s): 349.41507 +INFO: Total processing time for 43 host(s): 351.208072 +INFO: Total processing time for 44 host(s): 351.788401 +INFO: Total processing time for 45 host(s): 351.730259 +INFO: Total processing time for 46 host(s): 515.693497 +INFO: Total processing time for 47 host(s): 352.702677 +INFO: Total processing time for 48 host(s): 353.418003 +INFO: Total processing time for 49 host(s): 355.07111 +INFO: Total processing time for 50 host(s): 354.622388 +INFO: Total processing time for 51 host(s): 355.192521 +INFO: Total processing time for 52 host(s): 355.283238 +INFO: Total processing time for 53 host(s): 358.112329 +INFO: Total processing time for 54 host(s): 357.717426 +INFO: Total processing time for 55 host(s): 357.748707 +INFO: Total processing time for 56 host(s): 358.902118 +INFO: Total processing time for 57 host(s): 367.817594 diff --git a/doc/dev/logs/2011-09-16.benchmark-r815-no-control-socket.dmidecode b/doc/dev/logs/2011-09-16.benchmark-r815-no-control-socket.dmidecode new file mode 100644 index 00000000..f96db8b3 --- /dev/null +++ b/doc/dev/logs/2011-09-16.benchmark-r815-no-control-socket.dmidecode @@ -0,0 +1,1373 @@ +# dmidecode 2.9 +SMBIOS 2.6 present. +101 structures occupying 5955 bytes. +Table at 0xDF79C000. + +Handle 0xDA00, DMI type 218, 11 bytes +OEM-specific Type + Header and Data: + DA 0B 00 DA B0 00 17 00 0E 20 00 + +Handle 0x0000, DMI type 0, 24 bytes +BIOS Information + Vendor: Dell Inc. + Version: 1.0.0 + Release Date: 04/08/2010 + Address: 0xF0000 + Runtime Size: 64 kB + ROM Size: 4096 kB + Characteristics: + ISA is supported + PCI is supported + PNP is supported + BIOS is upgradeable + BIOS shadowing is allowed + Boot from CD is supported + Selectable boot is supported + EDD is supported + Japanese floppy for Toshiba 1.2 MB is supported (int 13h) + 5.25"/360 KB floppy services are supported (int 13h) + 5.25"/1.2 MB floppy services are supported (int 13h) + 3.5"/720 KB floppy services are supported (int 13h) + 8042 keyboard services are supported (int 9h) + Serial services are supported (int 14h) + CGA/mono video services are supported (int 10h) + ACPI is supported + USB legacy is supported + BIOS boot specification is supported + Function key-initiated network boot is supported + Targeted content distribution is supported + BIOS Revision: 1.0 + +Handle 0x0100, DMI type 1, 27 bytes +System Information + Manufacturer: Dell Inc. + Product Name: PowerEdge R815 + Version: Not Specified + Serial Number: HYGTS4J + UUID: 44454C4C-5900-1047-8054-C8C04F53344A + Wake-up Type: Power Switch + SKU Number: Not Specified + Family: Not Specified + +Handle 0x0200, DMI type 2, 9 bytes +Base Board Information + Manufacturer: Dell Inc. + Product Name: 06JC9T + Version: A00 + Serial Number: ..CN7475104Q0184. + +Handle 0x0300, DMI type 3, 21 bytes +Chassis Information + Manufacturer: Dell Inc. + Type: Rack Mount Chassis + Lock: Present + Version: Not Specified + Serial Number: HYGTS4J + Asset Tag: Not Specified + Boot-up State: Safe + Power Supply State: Safe + Thermal State: Safe + Security Status: Unknown + OEM Information: 0x00000000 + Height: 2 U + Number Of Power Cords: Unspecified + Contained Elements: 0 + +Handle 0x0400, DMI type 4, 40 bytes +Processor Information + Socket Designation: CPU1 + Type: Central Processor + Family: + Manufacturer: AMD + ID: 91 0F 10 00 FF FB 8B 17 + Version: AMD Opteron(tm) Processor 6174 + Voltage: 1.1 V + External Clock: 3200 MHz + Max Speed: 3600 MHz + Current Speed: 2200 MHz + Status: Populated, Enabled + Upgrade: + L1 Cache Handle: 0x0700 + L2 Cache Handle: 0x0701 + L3 Cache Handle: 0x0702 + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified + Core Count: 12 + Core Enabled: 12 + Thread Count: 12 + Characteristics: + 64-bit capable + +Handle 0x0401, DMI type 4, 40 bytes +Processor Information + Socket Designation: CPU2 + Type: Central Processor + Family: + Manufacturer: AMD + ID: 91 0F 10 00 FF FB 8B 17 + Version: AMD Opteron(tm) Processor 6174 + Voltage: 1.1 V + External Clock: 3200 MHz + Max Speed: 3600 MHz + Current Speed: 2200 MHz + Status: Populated, Idle + Upgrade: + L1 Cache Handle: 0x0703 + L2 Cache Handle: 0x0704 + L3 Cache Handle: 0x0705 + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified + Core Count: 12 + Core Enabled: 12 + Thread Count: 12 + Characteristics: + 64-bit capable + +Handle 0x0402, DMI type 4, 40 bytes +Processor Information + Socket Designation: CPU3 + Type: Central Processor + Family: + Manufacturer: AMD + ID: 91 0F 10 00 FF FB 8B 17 + Version: AMD Opteron(tm) Processor 6174 + Voltage: 1.1 V + External Clock: 3200 MHz + Max Speed: 3600 MHz + Current Speed: 2200 MHz + Status: Populated, Idle + Upgrade: + L1 Cache Handle: 0x0706 + L2 Cache Handle: 0x0707 + L3 Cache Handle: 0x0708 + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified + Core Count: 12 + Core Enabled: 12 + Thread Count: 12 + Characteristics: + 64-bit capable + +Handle 0x0403, DMI type 4, 40 bytes +Processor Information + Socket Designation: CPU4 + Type: Central Processor + Family: + Manufacturer: AMD + ID: 91 0F 10 00 FF FB 8B 17 + Version: AMD Opteron(tm) Processor 6174 + Voltage: 1.1 V + External Clock: 3200 MHz + Max Speed: 3600 MHz + Current Speed: 2200 MHz + Status: Populated, Idle + Upgrade: + L1 Cache Handle: 0x0709 + L2 Cache Handle: 0x070A + L3 Cache Handle: 0x070B + Serial Number: Not Specified + Asset Tag: Not Specified + Part Number: Not Specified + Core Count: 12 + Core Enabled: 12 + Thread Count: 12 + Characteristics: + 64-bit capable + +Handle 0x0700, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 1 + Operational Mode: Write Back + Location: Internal + Installed Size: 768 KB + Maximum Size: 768 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 2-way Set-associative + +Handle 0x0701, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 2 + Operational Mode: Write Back + Location: Internal + Installed Size: 6144 KB + Maximum Size: 6144 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 16-way Set-associative + +Handle 0x0702, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 3 + Operational Mode: Write Back + Location: Internal + Installed Size: 10240 KB + Maximum Size: 10240 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: Other + +Handle 0x0703, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 1 + Operational Mode: Write Back + Location: Internal + Installed Size: 768 KB + Maximum Size: 768 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 2-way Set-associative + +Handle 0x0704, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 2 + Operational Mode: Write Back + Location: Internal + Installed Size: 6144 KB + Maximum Size: 6144 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 16-way Set-associative + +Handle 0x0705, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 3 + Operational Mode: Write Back + Location: Internal + Installed Size: 10240 KB + Maximum Size: 10240 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: Other + +Handle 0x0706, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 1 + Operational Mode: Write Back + Location: Internal + Installed Size: 768 KB + Maximum Size: 768 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 2-way Set-associative + +Handle 0x0707, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 2 + Operational Mode: Write Back + Location: Internal + Installed Size: 6144 KB + Maximum Size: 6144 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 16-way Set-associative + +Handle 0x0708, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 3 + Operational Mode: Write Back + Location: Internal + Installed Size: 10240 KB + Maximum Size: 10240 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: Other + +Handle 0x0709, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 1 + Operational Mode: Write Back + Location: Internal + Installed Size: 768 KB + Maximum Size: 768 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 2-way Set-associative + +Handle 0x070A, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 2 + Operational Mode: Write Back + Location: Internal + Installed Size: 6144 KB + Maximum Size: 6144 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: 16-way Set-associative + +Handle 0x070B, DMI type 7, 19 bytes +Cache Information + Socket Designation: Not Specified + Configuration: Enabled, Not Socketed, Level 3 + Operational Mode: Write Back + Location: Internal + Installed Size: 10240 KB + Maximum Size: 10240 KB + Supported SRAM Types: + Unknown + Installed SRAM Type: Unknown + Speed: Unknown + Error Correction Type: Multi-bit ECC + System Type: Unified + Associativity: Other + +Handle 0x0800, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: DB-15 female + Port Type: Video Port + +Handle 0x0801, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: DB-15 female + Port Type: Video Port + +Handle 0x0802, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: Access Bus (USB) + Port Type: USB + +Handle 0x0803, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: Access Bus (USB) + Port Type: USB + +Handle 0x0804, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: Access Bus (USB) + Port Type: USB + +Handle 0x0805, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: Access Bus (USB) + Port Type: USB + +Handle 0x0806, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: Access Bus (USB) + Port Type: USB + +Handle 0x0807, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: Access Bus (USB) + Port Type: USB + +Handle 0x0808, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: INT_USB + Internal Connector Type: Access Bus (USB) + External Reference Designator: Not Specified + External Connector Type: None + Port Type: USB + +Handle 0x0809, DMI type 126, 9 bytes +Inactive + +Handle 0x080A, DMI type 126, 9 bytes +Inactive + +Handle 0x080B, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: RJ-45 + Port Type: Network Port + +Handle 0x080C, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: RJ-45 + Port Type: Network Port + +Handle 0x080D, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: RJ-45 + Port Type: Network Port + +Handle 0x080E, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: RJ-45 + Port Type: Network Port + +Handle 0x080F, DMI type 8, 9 bytes +Port Connector Information + Internal Reference Designator: Not Specified + Internal Connector Type: None + External Reference Designator: Not Specified + External Connector Type: DB-9 male + Port Type: Serial Port 16550A Compatible + +Handle 0x0900, DMI type 9, 17 bytes +System Slot Information + Designation: PCI1 + Type: x8 + Current Usage: Available + Length: Long + Characteristics: + 3.3 V is provided + PME signal is supported + +Handle 0x0901, DMI type 9, 17 bytes +System Slot Information + Designation: PCI2 + Type: x4 + Current Usage: Available + Length: Short + Characteristics: + 3.3 V is provided + PME signal is supported + +Handle 0x0902, DMI type 9, 17 bytes +System Slot Information + Designation: PCI3 + Type: x8 + Current Usage: Available + Length: Short + Characteristics: + 3.3 V is provided + PME signal is supported + +Handle 0x0903, DMI type 9, 17 bytes +System Slot Information + Designation: PCI4 + Type: x8 + Current Usage: Available + Length: Short + Characteristics: + 3.3 V is provided + PME signal is supported + +Handle 0x0904, DMI type 9, 17 bytes +System Slot Information + Designation: PCI5 + Type: x8 + Current Usage: Available + Length: Long + Characteristics: + 3.3 V is provided + PME signal is supported + +Handle 0x0905, DMI type 9, 17 bytes +System Slot Information + Designation: PCI6 + Type: x8 + Current Usage: Available + Length: Long + Characteristics: + 3.3 V is provided + PME signal is supported + +Handle 0x0A00, DMI type 10, 16 bytes +On Board Device 1 Information + Type: Video + Status: Enabled + Description: Embedded Matrox G200 Video +On Board Device 2 Information + Type: Ethernet + Status: Enabled + Description: Embedded Broadcom 5709C NIC 1 +On Board Device 3 Information + Type: Ethernet + Status: Enabled + Description: Embedded Broadcom 5709C NIC 2 +On Board Device 4 Information + Type: Ethernet + Status: Enabled + Description: Embedded Broadcom 5709C NIC 3 +On Board Device 5 Information + Type: Ethernet + Status: Enabled + Description: Embedded Broadcom 5709C NIC 4 +On Board Device 6 Information + Type: SAS Controller + Status: Enabled + Description: Integrated SAS Controller + +Handle 0x0B00, DMI type 11, 5 bytes +OEM Strings + String 1: Dell System + String 2: 5[0000] + +Handle 0x7E00, DMI type 126, 154 bytes +Inactive + +Handle 0x0C00, DMI type 12, 5 bytes +System Configuration Options + Option 1: NVRAM_CLR: Clear user settable NVRAM areas and set defaults + Option 2: PWRD_EN: Close to enable password + +Handle 0x0D00, DMI type 13, 22 bytes +BIOS Language Information + Installable Languages: 1 + en|US|iso8859-1 + Currently Installed Language: en|US|iso8859-1 + +Handle 0x1000, DMI type 16, 15 bytes +Physical Memory Array + Location: System Board Or Motherboard + Use: System Memory + Error Correction Type: Multi-bit ECC + Maximum Capacity: 256 GB + Error Information Handle: Not Provided + Number Of Devices: 32 + +Handle 0x1100, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 1 + Locator: DIMM_A1 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBE6 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1101, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 1 + Locator: DIMM_A2 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBC6 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1102, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 2 + Locator: DIMM_A3 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBFF + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1103, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 2 + Locator: DIMM_A4 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC05 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1104, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 3 + Locator: DIMM_A5 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBB0 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1105, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 3 + Locator: DIMM_A6 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBED + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1106, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 4 + Locator: DIMM_A7 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC06 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1107, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 4 + Locator: DIMM_A8 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBF7 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1108, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 5 + Locator: DIMM_B1 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFB92 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1109, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 5 + Locator: DIMM_B2 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBF4 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x110A, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 6 + Locator: DIMM_B3 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBC7 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x110B, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 6 + Locator: DIMM_B4 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC26 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x110C, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 7 + Locator: DIMM_B5 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBE4 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x110D, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 7 + Locator: DIMM_B6 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBA4 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x110E, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 8 + Locator: DIMM_B7 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBB6 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x110F, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 8 + Locator: DIMM_B8 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFB0D + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1110, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 9 + Locator: DIMM_C1 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC37 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1111, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 9 + Locator: DIMM_C2 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC23 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1112, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 10 + Locator: DIMM_C3 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFB0E + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1113, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 10 + Locator: DIMM_C4 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFB04 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1114, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 11 + Locator: DIMM_C5 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBF6 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1115, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 11 + Locator: DIMM_C6 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC21 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1116, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 12 + Locator: DIMM_C7 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFC28 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1117, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 12 + Locator: DIMM_C8 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBAC + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1118, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 13 + Locator: DIMM_D1 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBCD + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1119, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 13 + Locator: DIMM_D2 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBBD + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x111A, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 14 + Locator: DIMM_D3 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFAD0 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x111B, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 14 + Locator: DIMM_D4 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBBC + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x111C, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 15 + Locator: DIMM_D5 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFB2A + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x111D, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 15 + Locator: DIMM_D6 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBEB + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x111E, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 16 + Locator: DIMM_D7 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFADB + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x111F, DMI type 17, 28 bytes +Memory Device + Array Handle: 0x1000 + Error Information Handle: Not Provided + Total Width: 72 bits + Data Width: 64 bits + Size: 4096 MB + Form Factor: DIMM + Set: 16 + Locator: DIMM_D8 + Bank Locator: Not Specified + Type: + Type Detail: Synchronous + Speed: 1333 MHz (0.8 ns) + Manufacturer: 80CE80B380CE + Serial Number: 851CFBC9 + Asset Tag: 02101861 + Part Number: M393B5170EH1-CH9 + +Handle 0x1300, DMI type 19, 15 bytes +Memory Array Mapped Address + Starting Address: 0x00000000000 + Ending Address: 0x000DFFFFFFF + Range Size: 3584 MB + Physical Array Handle: 0x1000 + Partition Width: 0 + +Handle 0x1301, DMI type 19, 15 bytes +Memory Array Mapped Address + Starting Address: 0x00100000000 + Ending Address: 0x0201FFFFFFF + Range Size: 127488 MB + Physical Array Handle: 0x1000 + Partition Width: 0 + +Handle 0x2000, DMI type 32, 11 bytes +System Boot Information + Status: No errors detected + +Handle 0x2600, DMI type 38, 18 bytes +IPMI Device Information + Interface Type: KCS (Keyboard Control Style) + Specification Version: 2.0 + I2C Slave Address: 0x10 + NV Storage Device: Not Present + Base Address: 0x0000000000000CA8 (I/O) + Register Spacing: 32-bit Boundaries + +Handle 0x2900, DMI type 41, 11 bytes +Unknown Type + Header and Data: + 29 0B 00 29 01 85 01 00 00 01 00 + Strings: + Embedded NIC 1 + +Handle 0x2901, DMI type 41, 11 bytes +Unknown Type + Header and Data: + 29 0B 01 29 01 85 02 00 00 01 01 + Strings: + Embedded NIC 2 + +Handle 0x2902, DMI type 41, 11 bytes +Unknown Type + Header and Data: + 29 0B 02 29 01 85 03 00 00 02 00 + Strings: + Embedded NIC 3 + +Handle 0x2903, DMI type 41, 11 bytes +Unknown Type + Header and Data: + 29 0B 03 29 01 85 04 00 00 02 01 + Strings: + Embedded NIC 4 + +Handle 0x2904, DMI type 41, 11 bytes +Unknown Type + Header and Data: + 29 0B 04 29 01 8A 04 00 00 05 00 + Strings: + Integrated SAS + +Handle 0x2905, DMI type 126, 11 bytes +Inactive + +Handle 0x2906, DMI type 41, 11 bytes +Unknown Type + Header and Data: + 29 0B 06 29 01 83 04 00 00 0A 18 + Strings: + Embedded Video + +Handle 0xD000, DMI type 208, 16 bytes +OEM-specific Type + Header and Data: + D0 10 00 D0 02 00 FE 00 44 04 00 00 01 01 00 00 + +Handle 0xD200, DMI type 210, 12 bytes +OEM-specific Type + Header and Data: + D2 0C 00 D2 F8 03 04 03 06 80 04 05 + +Handle 0xD400, DMI type 212, 127 bytes +OEM-specific Type + Header and Data: + D4 7F 00 D4 70 00 71 00 00 10 2D 2E 42 00 11 FE + 01 43 00 11 FE 00 70 01 11 9F 20 6F 01 11 9F 00 + 00 00 11 9F 20 00 00 11 9F 00 31 40 11 FB 00 32 + 40 11 FB 04 9D 00 11 FD 02 9E 00 11 FD 00 9F 00 + 26 FE 01 A0 00 26 FE 00 28 40 26 DF 20 29 40 26 + DF 00 38 02 27 BF 40 39 02 27 BF 00 F1 01 27 FC + 01 F2 01 27 FC 02 F3 01 27 FC 03 F5 01 27 F3 04 + F6 01 27 F3 08 F7 01 27 F3 0C FF FF 00 00 00 + +Handle 0xD401, DMI type 212, 252 bytes +OEM-specific Type + Header and Data: + D4 FC 01 D4 70 00 71 00 03 40 5A 6D 5C 00 78 BF + 40 5D 00 78 BF 00 6C 01 57 FC 00 6B 01 57 FC 01 + 6A 01 57 FC 02 12 02 57 EF 00 11 02 57 EF 10 00 + 00 5B FB 04 00 00 5B FB 00 77 01 54 FC 00 78 01 + 54 FC 01 79 01 54 FC 02 7A 01 54 FC 03 33 40 54 + CF 00 34 40 54 CF 10 35 40 54 CF 20 36 40 54 CF + 30 1A 40 54 FB 04 1B 40 54 FB 00 1C 40 54 F7 08 + 1D 40 54 F7 00 43 40 58 DF 20 42 40 58 DF 00 24 + 40 58 BF 40 25 40 58 BF 00 6E 00 58 FC 01 2D 00 + 58 FC 02 DA 01 58 FC 03 22 40 58 EF 10 23 40 58 + EF 00 BB 00 58 F3 04 BC 00 58 F3 08 DB 01 58 F3 + 0C 2D 02 55 FE 01 2E 02 55 FE 00 D8 00 55 7F 80 + D9 00 55 7F 00 54 02 56 DF 00 57 02 56 DF 20 4D + 02 56 BF 00 4E 02 56 BF 40 2D 01 56 7F 80 2E 01 + 56 7F 00 00 C0 5C 00 0A 03 C0 67 00 05 83 00 76 + 00 00 84 00 77 00 00 FF FF 00 00 00 + +Handle 0xD402, DMI type 212, 177 bytes +OEM-specific Type + Header and Data: + D4 B1 02 D4 72 00 73 00 00 C0 DD DE D3 00 80 00 + 02 D4 00 82 00 02 D5 00 84 00 02 D6 00 86 00 02 + 4A 01 C6 BF 40 4B 01 C6 BF 00 00 90 AC 00 00 01 + 90 AD 00 00 00 00 C9 EB 14 00 00 C9 EF 10 DA 00 + C9 FB 04 00 00 C9 EB 00 00 00 C9 7F 00 00 00 C9 + 7F 80 CA 00 C9 FC 00 CB 00 C9 FC 01 00 00 C9 FC + 02 DE 00 E3 FE 01 26 40 C2 FE 01 27 40 C2 FE 00 + 17 01 CA FE 00 18 01 CA FE 01 00 00 CA FD 00 00 + 00 CA FD 02 35 01 CB FC 00 37 01 CB FC 01 02 40 + C6 DF 00 01 40 C6 DF 20 FC 01 C5 BF 00 FD 01 C5 + BF 40 00 00 C5 7F 80 00 00 C5 7F 00 FF FF 00 00 + 00 + +Handle 0xD403, DMI type 212, 132 bytes +OEM-specific Type + Header and Data: + D4 84 03 D4 72 00 73 00 00 C0 DD DE 32 02 C0 07 + 10 31 02 C0 07 20 6F 02 C0 07 30 70 02 C0 07 40 + 71 02 C0 07 50 72 02 C0 07 60 6E 02 C0 07 00 00 + 00 C6 FE 00 00 00 C6 FE 01 40 01 C7 EF 10 41 01 + C7 EF 00 C4 01 D0 FE 00 C5 01 D0 FE 01 73 01 D0 + BF 40 74 01 D0 BF 00 AB 02 D0 DF 20 AC 02 D0 DF + 00 A9 02 D0 EF 10 AA 02 D0 EF 00 6A 02 DB FE 00 + 6B 02 DB FE 01 7B 02 DB FD 00 7C 02 DB FD 02 FF + FF 00 00 00 + +Handle 0xD800, DMI type 216, 9 bytes +OEM-specific Type + Header and Data: + D8 09 00 D8 01 02 01 00 00 + Strings: + MATROX + VGA/VBE BIOS, Version V3.8WO + +Handle 0xDE00, DMI type 222, 16 bytes +OEM-specific Type + Header and Data: + DE 10 00 DE 01 08 FF FF 00 00 00 00 00 00 00 01 + +Handle 0x7F00, DMI type 127, 4 bytes +End Of Table + diff --git a/doc/dev/logs/2011-10-04 b/doc/dev/logs/2011-10-04 new file mode 100644 index 00000000..f3bb852d --- /dev/null +++ b/doc/dev/logs/2011-10-04 @@ -0,0 +1,3 @@ +Testing for single tests: + PYTHONPATH=$PYTHONPATH:$(pwd -P)/lib python3 -m unittest cdist.test.test_install.Install.test_explorer_ran + diff --git a/doc/dev/logs/2011-10-05 b/doc/dev/logs/2011-10-05 new file mode 100644 index 00000000..39fc48a2 --- /dev/null +++ b/doc/dev/logs/2011-10-05 @@ -0,0 +1,116 @@ +Config/Install/Deploy/Run: + target host + remote_cmd_prefix - ssh user@bla sudo foo????? + remote_cp_prefix - cp statt scp oder so + + debug -> env für alles += __debug + + +Storage/Metaobject/Tree? == Path? + base_dir? + nimmt objekte + + Sammelt Objekte + + Ist prepared hier? + +Object + "Infos" / Datenhalde + + Base_Dir-Abhängigkeit? - wo + + out_dir - wo speichern + + nur eigenes verzeichnis interessant? + -> nicht für shell code / aka gencode! + -> __global abhängigkeit + + object.gencode()? + + hast du type-explorer? + ja? + führe JEDEN remote aus + speichere ausgabe in object + nein: + fertig + hast du gencode-{local,remote}? + ja? + führe local oder remote aus + speichere ausgabe in s/^gen// + nein: + fertig + + hast du code-{local,remote}? + ja? + führe local oder remote aus + nein: + fertig + + ich habe ... + object_id + type + type.singleton() == False -> require object_id + parameter gegeben + requirements / order + + type_explorer := methode zum ausführen? + + cdist.object.Object(type, id) + + methoden: + gen_code + code + run_manifest + manifest == ort + +Type + singleton: ja / nein + install: ja / nein + type_explorer := liste + + optional_parameter + required_parameter + + TypeExplorer + verwandt oder == explorer + Verwandschaft klären! + + sehr abhängig von base_dir! + - welche gibt es? + - was für optionen haben sie + + cdist.type.Type("/path/to/type") + Tree/Path vieh, das liste von $_ speichert + Einfach iterieren + + + +Explorer + execute(env) + env == __explorer -> nur im explorer + +z.B. BaseExplorer oder andersherum GlobalExplorer + +Manifest + +Exec + wrapper um auszuführen, + error handling, + output redirection (variable, file, beides, socat :-) + + +-------------------------------------------------------------------------------- + +- base_dir (conf/, type, ...) +- manifest (initiale) + $methode_mit_inhalt_von_manifest? + run_manifest(code) + ob sinnvoll? + geht auch mit stdin oder datei + + stdin -> muss in tmp-datei, für sh -e? +- +-------------------------------------------------------------------------------- + +save output of shell in buffer instead of displaying? + -> freedom to decide whether to display or not! diff --git a/doc/dev/logs/2011-10-06 b/doc/dev/logs/2011-10-06 new file mode 100644 index 00000000..14edab51 --- /dev/null +++ b/doc/dev/logs/2011-10-06 @@ -0,0 +1,30 @@ +GlobalExplorer + list_explorers() + list_explorers_names() + + base_dir + __init__(name) + out_dir + env + name = id + path + return_code + return_value + +-------------------------------------------------------------------------------- +Exec: + +normal: + +scp /from/where $USER@$HOST:REMOTE_BASE/cdist-internal +ssh $USER@$HOST MY_CMD_THAT_NEEDS_TO_RUN_IN_BIN_SH (including ENV) + +sudo: + +scp $USER@$HOST:REMOTE_BASE/cdist-internal +ssh $USER@$HOST sudo MY_CMD_THAT_NEEDS_TO_RUN_IN_BIN_SH (including ENV) + +chroot: + +[sudo] cp file /chroot/THE_HOST_BASE/REMOTE_BASE/cdist-internal +[sudo] chroot /chroot MY_CMD_THAT_NEEDS_TO_RUN_IN_BIN_SH (including ENV) diff --git a/doc/dev/logs/2011-10-06.ssh_scp_sudo_chroot b/doc/dev/logs/2011-10-06.ssh_scp_sudo_chroot new file mode 100644 index 00000000..ec89a999 --- /dev/null +++ b/doc/dev/logs/2011-10-06.ssh_scp_sudo_chroot @@ -0,0 +1,87 @@ +Commands needed: + conf/cmd/remote_exec + conf/cmd/copy + +If ! conf/cmd/remote_exec: + use builtin +If ! conf/cmd/copy: + use builtin + +-------------------------------------------------------------------------------- + +--cmd-dir? +$__cdist_cmd_dir + +-------------------------------------------------------------------------------- + -> Depend on session! + +Builtin: + cdist.exec.run_or_fail(["scp", "-qr", source, + self.remote_user + "@" + + self.target_host + ":" + + destination]) + +self.remote_prefix = ["ssh", self.remote_user + "@" + self.target_host] + + self.remote_user = remote_user + self.remote_prefix = remote_prefix + +-------------------------------------------------------------------------------- +What is in a session? + + base_dir + target_host + +-------------------------------------------------------------------------------- +remote_user + pseudo-static, can be hardcoded again +-------------------------------------------------------------------------------- + +Result: + +os.environ['__remote_exec'] = ["ssh", "-l", "root" ] + +os.environ['__remote_exec'] = ["ssh", "-o", "User=root" ] +os.environ['__remote_copy'] = ["scp", "-o", "User=root" ] + + +__remote_exec=~/sudossh __remote_copy=... cdist config localhost + +~/sudossh hostname $@... +~/sudocopy a hostname:b + +~/chrootssh +~/chrootcopy + + + +a) + 3 cmd verzeichnnise: cdist, sudo, chroot + pro aufruf variable ändern + +b) + 1 dir, mit zeug + pro aufruf variablen ändern + + +conf/cmd/remote_exec + +args for __remote_exec + $1 = hostname + $2 - ... = stuff to be executed in /bin/sh on remote side + $2 - $7 = env + $7 - 12 = cmd + + +args for __remote_copy + $1 = file here + $2 = hostname:destination + +-------------------------------------------------------------------------------- +There needs to be an easy way to change those cmds! +-------------------------------------------------------------------------------- +Env-Passing: + _a=b test -> test can access $_a + _a=b test $_a -> $1 = "", because _a is *not* set within the shell + _a=b; test -> can access $_a + _a=b; test $_a -> $1 == "b" diff --git a/doc/dev/logs/2011-10-11.emulator-output b/doc/dev/logs/2011-10-11.emulator-output new file mode 100644 index 00000000..d1f066c5 --- /dev/null +++ b/doc/dev/logs/2011-10-11.emulator-output @@ -0,0 +1,8 @@ +Debug: +DEBUG: Namespace(name=None, state='installed') +DEBUG: Object output dir = /home/users/nico/.tmp/tmpsdaonx/out/object/__package_pacman/zsh/.cdist +DEBUG: Object param dir = /home/users/nico/.tmp/tmpsdaonx/out/object/__package_pacman/zsh/.cdist/parameter +DEBUG: /home/users/nico/.tmp/tmpsdaonx/out/object/__package_pacman/zsh/.cdist/parameter/state<-state = installed +DEBUG: zsh:Writing requirements: +DEBUG: Finished __package_pacman/zsh{'state': 'installed', 'name': None} + diff --git a/doc/dev/logs/2011-10-12 b/doc/dev/logs/2011-10-12 new file mode 100644 index 00000000..22caf05e --- /dev/null +++ b/doc/dev/logs/2011-10-12 @@ -0,0 +1,8 @@ +Todo today + tests: + +- explorer (nico) + - create env here +- exec -> local+remote (steven) +- make configinstall work again (nico) +- make manifest work (steven) + - create env here diff --git a/doc/dev/logs/2011-10-13.output b/doc/dev/logs/2011-10-13.output new file mode 100644 index 00000000..3eb68e1f --- /dev/null +++ b/doc/dev/logs/2011-10-13.output @@ -0,0 +1,10 @@ +[17:07] brief:cdist% ./bin/cdist config localhost +cat: /home/users/nico/.tmp/tmpfgy16_/out/object/__directory/tmp/foo/bar/.cdist/explorer/exists: No such file or directory +chgrp: cannot access `/tmp/foo/bar': No such file or directory +ERROR: localhost: Code that raised the error: +chgrp -R "postdrop" "/tmp/foo/bar" +chown -R "nico" "/tmp/foo/bar" + +ERROR: Remote script execution failed: /var/lib/cdist/object/__directory/tmp/foo/bar/.cdist/code-remote ['ssh', '-o', 'User=root', '-q', 'localhost', '/bin/sh', '-e', '/var/lib/cdist/object/__directory/tmp/foo/bar/.cdist/code-remote'] +[17:08] brief:cdist% + diff --git a/doc/dev/logs/2011-10-14.error-output b/doc/dev/logs/2011-10-14.error-output new file mode 100644 index 00000000..4414de13 --- /dev/null +++ b/doc/dev/logs/2011-10-14.error-output @@ -0,0 +1,46 @@ +[23:24] brief:cdist% ./bin/cdist config -c ~/p/cdist-nutzung -v ikq04.ethz.ch +INFO: ikq04.ethz.ch: Deploying to ikq04.ethz.ch +INFO: ikq04.ethz.ch: Running object manifests and type explorers +cat: /home/users/nico/.tmp/tmpf969y2/out/object/__addifnosuchline/ssh-root-blukas/.cdist/parameter/line: No such file or directory +#!/bin/sh +# +# 2010-2011 Daniel Roth (dani-cdist@d-roth.li) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +if [ -f "$__object/parameter/file" ]; then + file=$(cat "$__object/parameter/file") +else + file="/$__object_id" +fi + +regex=$(cat "$__object/parameter/line") +if [ -f "$file" ]; then + grep -q "^$regex\$" "$file" + if [ $? -eq 1 ]; then + echo "NOTFOUND" + else + echo "FOUND" + fi +else + echo "NOTFOUND" +fi +ERROR: ikq04.ethz.ch: Code that raised the error: +None +ERROR: Remote script execution failed: /var/lib/cdist/conf/type/__addifnosuchline/explorer/findline ['ssh', '-o', 'User=root', '-q', 'ikq04.ethz.ch', '__explorer=/var/lib/cdist/conf/explorer', '__object_fq=__addifnosuchline/ssh-root-blukas/.cdist', '__target_host=ikq04.ethz.ch', '__object_id=ssh-root-blukas', '__type_explorer=/var/lib/cdist/conf/type/__addifnosuchline/explorer', '__object=/home/users/nico/.tmp/tmpf969y2/out/object/__addifnosuchline/ssh-root-blukas/.cdist', '/bin/sh', '-e', '/var/lib/cdist/conf/type/__addifnosuchline/explorer/findline'] +[23:25] brief:cdist% diff --git a/doc/dev/logs/2011-10-15.prefix-output-missing b/doc/dev/logs/2011-10-15.prefix-output-missing new file mode 100644 index 00000000..05788fd5 --- /dev/null +++ b/doc/dev/logs/2011-10-15.prefix-output-missing @@ -0,0 +1,10 @@ +Prefix is missing in some parts for a run, they all need to include +the hostname (required for clean parallel processing) + +[0:13] brief:cdist% ./bin/cdist config -c ~/p/cdist-nutzung -v ikq04.ethz.ch +INFO: ikq04.ethz.ch: Running global explorers +INFO: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq04.ethz.ch: Running object manifests and type explorers +ERROR: requirements object_id may not start with /: __file//etc/nslcd.conf +ERROR: ikq04.ethz.ch: Code that raised the error: + diff --git a/doc/dev/logs/2011-10-15.ugly-output-on-breaking-explorer b/doc/dev/logs/2011-10-15.ugly-output-on-breaking-explorer new file mode 100644 index 00000000..921f0c90 --- /dev/null +++ b/doc/dev/logs/2011-10-15.ugly-output-on-breaking-explorer @@ -0,0 +1,43 @@ +[0:15] brief:cdist% ./bin/cdist config -c ~/p/cdist-nutzung -v ikq04.ethz.ch +INFO: ikq04.ethz.ch: Running global explorers +INFO: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq04.ethz.ch: Running object manifests and type explorers +/var/lib/cdist/conf/type/__file/explorer/.exists.swp: 1: Syntax error: ")" unexpected +Traceback (most recent call last): + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/exec/remote.py", line 147, in run_script + return subprocess.check_output(command).decode() + File "/usr/lib/python3.2/subprocess.py", line 518, in check_output + raise CalledProcessError(retcode, cmd, output=output) +subprocess.CalledProcessError: Command '['ssh', '-o', 'User=root', '-q', 'ikq04.ethz.ch', '__explorer=/var/lib/cdist/conf/explorer', '__object_fq=__file/etc/cdist-configured/.cdist', '__target_host=ikq04.ethz.ch', '__object_id=etc/cdist-configured', '__type_explorer=/var/lib/cdist/conf/type/__file/explorer', '__object=/var/lib/cdist/object/__file/etc/cdist-configured/.cdist', '/bin/sh', '-e', '/var/lib/cdist/conf/type/__file/explorer/.exists.swp']' returned non-zero exit status 2 + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "./bin/cdist", line 161, in + commandline() + File "./bin/cdist", line 103, in commandline + args.func(args) + File "./bin/cdist", line 106, in config + configinstall(args, mode=cdist.config.Config) + File "./bin/cdist", line 133, in configinstall + c.deploy_and_cleanup() + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/config_install.py", line 71, in deploy_and_cleanup + self.deploy_to() + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/config_install.py", line 65, in deploy_to + self.stage_prepare() + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/config_install.py", line 94, in stage_prepare + self.object_prepare(cdist_object) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/config_install.py", line 122, in object_prepare + self.run_type_explorers(cdist_object) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/config_install.py", line 115, in run_type_explorers + output = self.explorer.run_type_explorer(explorer, cdist_object) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/core/explorer.py", line 135, in run_type_explorer + return self.remote.run_script(script, env=env, return_output=True) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/exec/remote.py", line 151, in run_script + script_content = self.run(["cat", script], return_output=True) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/exec/remote.py", line 97, in run + return self.run_command(cmd, env=env, return_output=return_output) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist/lib/cdist/exec/remote.py", line 117, in run_command + return subprocess.check_output(command).decode() +UnicodeDecodeError: 'utf8' codec can't decode byte 0xb6 in position 17: invalid start byte + diff --git a/doc/dev/logs/2011-10-16.keyboardirqoutputs b/doc/dev/logs/2011-10-16.keyboardirqoutputs new file mode 100644 index 00000000..5d843dac --- /dev/null +++ b/doc/dev/logs/2011-10-16.keyboardirqoutputs @@ -0,0 +1,143 @@ +1) + +[0:19] brief:~% ./p/cdist/bin/cdist config -v localhost +INFO: localhost: Running global explorers +INFO: localhost: Running initial manifest /home/users/nico/oeffentlich/rechner/projekte/cdist/conf/manifest +^Chandling in config +Traceback (most recent call last): + File "/usr/lib/python3.2/functools.py", line 176, in wrapper + result = cache[key] +KeyError: (, '[ \\f\\t]*(\\\\\\r?\\n[ \\f\\t]*)*(#[^\\r\\n]*)?((([0-9]+[jJ]|(([0-9]+\\.[0-9]*|\\.[0-9]+)([eE][-+]?[0-9]+)?|[0-9]+[eE][-+]?[0-9]+)[jJ])|(([0-9]+\\.[0-9]*|\\.[0-9]+)([eE][-+]?[0-9]+)?|[0-9]+[eE][-+]?[0-9]+)|(0[xX][0-9a-fA-F]+|0[bB][01]+|0[oO][0-7]+|(?:0+|[1-9][0-9]*)))|((\\*\\*=?|>>=?|<<=?|!=|//=?|->|[+\\-*/%&|^=<>]=?|~)|[][(){}]|(\\r?\\n|\\.\\.\\.|[:;.,@]))|([bB]?[rR]?\'[^\\n\'\\\\]*(?:\\\\.[^\\n\'\\\\]*)*\'|[bB]?[rR]?"[^\\n"\\\\]*(?:\\\\.[^\\n"\\\\]*)*")|\\w+)', 32) + +During handling of the above exception, another exception occurred: + +Traceback (most recent call last): + File "/usr/lib/python3.2/site.py", line 58, in + import traceback + File "/usr/lib/python3.2/traceback.py", line 3, in + import linecache + File "/usr/lib/python3.2/linecache.py", line 10, in + import tokenize + File "/usr/lib/python3.2/tokenize.py", line 118, in + _compile, (Token, PseudoToken, Single3, Double3)) + File "/usr/lib/python3.2/tokenize.py", line 115, in _compile + return re.compile(expr, re.UNICODE) + File "/usr/lib/python3.2/re.py", line 206, in compile + return _compile(pattern, flags) + File "/usr/lib/python3.2/re.py", line 255, in _compile + return _compile_typed(type(pattern), pattern, flags) + File "/usr/lib/python3.2/functools.py", line 180, in wrapper + result = user_function(*args, **kwds) + File "/usr/lib/python3.2/re.py", line 267, in _compile_typed + return sre_compile.compile(pattern, flags) + File "/usr/lib/python3.2/sre_compile.py", line 495, in compile + code = _code(p, flags) + File "/usr/lib/python3.2/sre_compile.py", line 477, in _code + _compile_info(code, p, flags) + File "/usr/lib/python3.2/sre_compile.py", line 366, in _compile_info +[0:19] brief:~% lo, hi = pattern.getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 163, in getwidth + i, j = av[1].getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 153, in getwidth + l, h = av.getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 163, in getwidth + i, j = av[1].getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 153, in getwidth + l, h = av.getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 163, in getwidth + i, j = av[1].getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 153, in getwidth + l, h = av.getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 163, in getwidth + i, j = av[1].getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 153, in getwidth + l, h = av.getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 163, in getwidth + i, j = av[1].getwidth() + File "/usr/lib/python3.2/sre_parse.py", line 148, in getwidth + for op, av in self.data: +KeyboardInterrupt + +2) +[0:19] brief:~% ./p/cdist/bin/cdist config -v localhost +INFO: localhost: Running global explorers +INFO: localhost: Running initial manifest /home/users/nico/oeffentlich/rechner/projekte/cdist/conf/manifest +^CFatal Python error: Py_Initialize: can't initialize sys standard streams +Traceback (most recent call last): + File "/usr/lib/python3.2/io.py", line 60, in +handling in config + import _io + File "/usr/lib/python3.2/os.py", line 26, in +[0:19] brief:~% import sys, errno +KeyboardInterrupt +/home/users/nico/oeffentlich/rechner/projekte/cdist/conf/manifest/init: line 6: 8370 Aborted __directory /tmp/foo/bar --parents yes --owner nico --group postdrop --recursive yes + +[0:19] brief:~% + +3) + +[1:12] brief:cdist% ./bin/cdist config -vp -c ~/p/cdist-nutzung ikq05.ethz.ch ikq06.ethz.ch ikq07.ethz.ch +INFO: ikq06.ethz.ch: Running global explorers +INFO: ikq05.ethz.ch: Running global explorers +INFO: ikq07.ethz.ch: Running global explorers +INFO: ikq07.ethz.ch: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq06.ethz.ch: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq05.ethz.ch: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq07.ethz.ch: Running object manifests and type explorers +INFO: ikq07.ethz.ch: Running manifest and explorers for __ethz_collectd/singleton +INFO: ikq05.ethz.ch: Running object manifests and type explorers +INFO: ikq05.ethz.ch: Running manifest and explorers for __ethz_collectd/singleton +^Ccatch, ikq05.ethz.ch +catch, ikq07.ethz.ch +[1:12] brief:cdist% ./bin/cdist config -vp -c ~/p/cdist-nutzung ikq05.ethz.ch ikq06.ethz.ch ikq07.ethz.ch +INFO: ikq05.ethz.ch: Running global explorers +INFO: ikq06.ethz.ch: Running global explorers +INFO: ikq07.ethz.ch: Running global explorers +INFO: ikq05.ethz.ch: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq06.ethz.ch: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +INFO: ikq07.ethz.ch: Running initial manifest /home/users/nico/p/cdist-nutzung/conf/manifest +^CTraceback (most recent call last): + File "/usr/lib/python3.2/site.py", line 529, in +catch, ikq05.ethz.ch +Fatal Python error: Py_Initialize: can't initialize sys standard streams +Traceback (most recent call last): + File "/usr/lib/python3.2/io.py", line 60, in +catch, ikq07.ethz.ch + main() + File "/usr/lib/python3.2/site.py", line 517, in main +catch, ikq06.ethz.ch + known_paths = addusersitepackages(known_paths) + File "/usr/lib/python3.2/site.py", line 263, in addusersitepackages +Fatal Python error: Py_Initialize: can't initialize sys standard streams +Traceback (most recent call last): + File "/usr/lib/python3.2/io.py", line 60, in + user_site = getusersitepackages() + File "/usr/lib/python3.2/site.py", line 238, in getusersitepackages + user_base = getuserbase() # this will also set USER_BASE + File "/usr/lib/python3.2/site.py", line 228, in getuserbase + USER_BASE = get_config_var('userbase') + File "/usr/lib/python3.2/sysconfig.py", line 577, in get_config_var + return get_config_vars().get(name) + File "/usr/lib/python3.2/sysconfig.py", line 474, in get_config_vars + _init_posix(_CONFIG_VARS) + File "/usr/lib/python3.2/sysconfig.py", line 344, in _init_posix + parse_config_h(f, vars) + File "/usr/lib/python3.2/sysconfig.py", line 386, in parse_config_h + line = fp.readline() + File "/usr/lib/python3.2/codecs.py", line 302, in decode + self.buffer = data[consumed:] +KeyboardInterrupt + import _io + File "/usr/lib/python3.2/os.py", line 49, in + import posixpath as path + File "/usr/lib/python3.2/posixpath.py", line 11, in + import _io + File "/usr/lib/python3.2/os.py", line 44, in + """ from posix import * +KeyboardInterrupt +/home/users/nico/p/cdist-nutzung/conf/manifest/init: line 10: 19830 Aborted __ethz_systems_root_via_ssh $ik --state present + +KeyboardInterrupt +[1:12] brief:cdist% /home/users/nico/p/cdist-nutzung/conf/manifest/init: line 10: 19829 Aborted __ethz_systems_root_via_ssh $ik --state present + + diff --git a/doc/dev/logs/2011-10-18.requirement-object b/doc/dev/logs/2011-10-18.requirement-object new file mode 100644 index 00000000..47873aa4 --- /dev/null +++ b/doc/dev/logs/2011-10-18.requirement-object @@ -0,0 +1,8 @@ +require="__broken_type/foo" breaks too late + +- always catch OSError/IOError: (check all occurences) +- type __director does not exist, abort in emulator + - if called type is not existing + - if required type is not existing +- type constructor fails if type does not exist +- test type emulator with non existent types -> should raise NoSuchTypeError diff --git a/doc/dev/logs/2011-10-18.traceback-gencode b/doc/dev/logs/2011-10-18.traceback-gencode new file mode 100644 index 00000000..3de967c1 --- /dev/null +++ b/doc/dev/logs/2011-10-18.traceback-gencode @@ -0,0 +1,28 @@ +[...] +INFO: sgv-sysadmin-01: Running gencode and code for __director/home/services/nfs +Traceback (most recent call last): + File "./bin/cdist", line 211, in + commandline() + File "./bin/cdist", line 110, in commandline + args.func(args) + File "./bin/cdist", line 113, in config + configinstall(args, mode=cdist.config.Config) + File "./bin/cdist", line 131, in configinstall + if not configinstall_onehost(host, args, mode, parallel=False): + File "./bin/cdist", line 177, in configinstall_onehost + c.deploy_and_cleanup() + File "/home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/lib/cdist/config_install.py", line 71, in deploy_and_cleanup + self.deploy_to() + File "/home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/lib/cdist/config_install.py", line 66, in deploy_to + self.stage_run() + File "/home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/lib/cdist/config_install.py", line 164, in stage_run + self.object_run(cdist_object) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/lib/cdist/config_install.py", line 143, in object_run + self.object_run(required_object) + File "/home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/lib/cdist/config_install.py", line 135, in object_run + cdist_object.ran = True + File "/home/users/nico/oeffentlich/rechner/projekte/cdist-nutzung/lib/cdist/util/fsproperty.py", line 237, in __set__ + open(path, "w").close() +IOError: [Errno 2] No such file or directory: '/home/users/nico/.tmp/tmp2gau4p/out/object/__director/home/services/nfs/.cdist/ran' +[10:43] brief:cdist-nutzung% + diff --git a/doc/dev/logs/2012-01-06.python3-in-distros b/doc/dev/logs/2012-01-06.python3-in-distros new file mode 100644 index 00000000..81f7b844 --- /dev/null +++ b/doc/dev/logs/2012-01-06.python3-in-distros @@ -0,0 +1,51 @@ +Any: [supported everywhere [tm]] + Python 3.2.2 (via source) + => solution for distros with python < 3.2 + +Arch: [supported] + python 3.2.2-2 + +CentOS: [no python 3] + Python 2.6.6 + +Debian: [supported in testing] + Package python3 + squeeze (stable) (python): interactive high-level object-oriented language (default python3 version) 3.1.3-12: all + wheezy (testing) (python): interactive high-level object-oriented language (default python3 version) 3.2.2~rc1-2: all + sid (unstable) (python): interactive high-level object-oriented language (default python3 version) 3.2.2~rc1-2: all + +Fedora: [supported since 2011-05-24] + 14: python3-3.1.2-14.fc14 + 15: python3-3.2-1.fc15 + 16: python3-3.2.1-1.fc16 + 17: python3-3.2.2-8.fc17 + +FreeBSD: + python32 - 3.2.2 + +Gentoo: + python 3.2.2 + +NetBSD: + python 3.1.4 + +OpenBSD: + python 3.2? (empty ports dir) + +OpenSuse [supported since 2011-11] + 11.4: python3-3.1.3-3.3.x86_64.rpm + 12.1: python3-3.2.1-5.1.3.x86_64.rpm + +Redhat 6: [no python 3] + See Centos 6 + +Slackware: [no python 3] + python-2.6.6-i486-1.txz + +Ubuntu: [>= natty, supported since 2011-04] + Package python3 + lucid (python): An interactive high-level object-oriented language (default python3 version) 3.1.2-0ubuntu1: all + maverick (python): interactive high-level object-oriented language (default python3 version) 3.1.3-3ubuntu5~really3.1.2: all + natty (python): interactive high-level object-oriented language (default python3 version) 3.2-1ubuntu1: all + oneiric (python): interactive high-level object-oriented language (default python3 version) 3.2.2-0ubuntu2: all + precise (python): interactive high-level object-oriented language (default python3 version) 3.2.2-0ubuntu2: all diff --git a/doc/dev/releasechecklist b/doc/dev/releasechecklist index fef1f53b..55d6221b 100755 --- a/doc/dev/releasechecklist +++ b/doc/dev/releasechecklist @@ -1,35 +1,50 @@ -#!/bin/sh -e +#!/bin/sh +# Nico Schottelius -files="bin/cdist-config doc/changelog" +files="doc/changelog lib/cdist/__init__.py" # Stuff to take care of when doing a release echo "Preparing next release" # Ensure documentation builds cleanly -./build.sh clean && ./build.sh man +echo "Testing documentation..." +./build clean && ./build man || exit 1 # get version -version=$(awk -F'=' '/^__cdist_version/ { print $2 }' bin/cdist-config | sed 's/"//g') +changelog_version=$(head -n1 doc/changelog | sed 's/:.*//') +#git_version=$(git describe) +lib_version=$(grep ^VERSION lib/cdist/__init__.py | sed -e 's/.*= //' -e 's/"//g') + +echo "Ensure you fixed/prepared version files: $files" +echo "changelog: $changelog_version" +#echo "git: $git_version" +echo "lib: $lib_version" + +if [ "$lib_version" != "$changelog_version" ]; then + echo "Messed up versions, not releasing" + exit 1 +else + echo "Versions are sane, continuing" +fi +echo "Press enter to continue" +read wait +version=$lib_version # get target branch branch=${version%.?} -# adjust version and release date -vi $files - -# Commit stuff -git commit $files - # add tag -printf "Enter description for %s>" "$version" +printf "Enter tag description for %s> " "$version" read tagmessage git tag "$version" -m "$tagmessage" # Import into current version branch +echo "git merge into $branch" git checkout $branch git merge master git checkout master # Publish manpages and sourcecode -./build.sh web -./build.sh pub +echo "publising doc/ and code/" +./build web +./build pub diff --git a/doc/dev/todo/TAKEME b/doc/dev/todo/TAKEME index a3d74661..be76b040 100644 --- a/doc/dev/todo/TAKEME +++ b/doc/dev/todo/TAKEME @@ -5,26 +5,22 @@ Feel free to pick one! CORE ---- -- Inconsistent error messages if object is not existing! - -> always use "Object undefined" -- Add echo function / beautify output - __cdist_echo [level] [messages...] - level := syslog alike: - debug, notice, err - Include object_self prefixing, if given! -- Think about moving cdist-type-build-emulation out of cdist-manifest-run to - cdist-deploy-to: more dependency of cdist-manifest-run, but a lot of - less cycles consumed +- Add subcommand to create template of a type with working manpage + (cdist type-template or so) -- cdist-object-gencode: remove code if output empty? - - also take care of that in cdist-code-run! -- Remove cdist-object-push, covers only one line and is used only once: - [20:22] kr:bin% grep cdist-object-push * - cdist-object-run: cdist-object-push "$__cdist_target_host" "$__cdist_object" - [20:22] kr:bin% +TESTS +----- +- multiple defines of object: + - fail if different parameters + - succeed if same parameters +- verify that all env variables in doc/man/cdist-reference.text.sh + exist in the right stages +- test DependencyResolver -- probably remove or improve cdist-type-template -- add $__tmp? + +USER INTERFACE +-------------- +- add support $__tmp? - for use in manifest, code, etc.? - for creating temporary files, etc. @@ -36,18 +32,13 @@ CORE -> for current host -> add function to cdist-config, import from cdist-cache -- check all all internal variables are prefixed with __cdist - Define / document "this is what should be on host X" and have it parsable by different (shinken) tool -> given after manifest run already! -- Allow types to have parameters without values (boolean flags). - e.g. __chair fancychair --pink --wood - would result in: - $__object/parameter/ - pink # empty file - wood # empty file - +- use absent/present for state by default? +- buggy output with packages that don't exist in archlinux and fedora: + python3 vs. python TYPES ------ @@ -55,7 +46,6 @@ TYPES - __file_edit - regexp replace (can probably cover all?) -> aka sed. -- __cron - __user add option to include --create-home @@ -64,5 +54,3 @@ DOCUMENTATION - asciidoc interprets __, which we use for variables names -> seek through docs and replace with \_\_! - reference explorers in cdist-reference! -- compare running times: - one, 5, 10, 50, 100, 1000 hosts => how does cdist scale? diff --git a/doc/dev/todo/install b/doc/dev/todo/install new file mode 100644 index 00000000..f0e7a040 --- /dev/null +++ b/doc/dev/todo/install @@ -0,0 +1,8 @@ +missing types: + __bootloader + __taball_get + __mount + __mount-point-create + __fstab + - run user postinstall script + - for e.g. reboot, chroot && start sshd diff --git a/doc/dev/todo/niconext b/doc/dev/todo/niconext index 5ba529ad..f8c2d6da 100644 --- a/doc/dev/todo/niconext +++ b/doc/dev/todo/niconext @@ -1 +1,328 @@ -Catch broken instances in cdist-mass-deploy -p and report broken deployements at the end! +- check speech publishing + - and speeches, which may be outdated as well + +- write tutorial + +- Fix / rewrite cdist-quickstart + + - like ccollect! + - include ssh control master! + - add local/ hint (and add to git) + - add hint for ssh StrictHostKeyChecking no + - and that ssh will wait for answer of prompt + - nasty if used in parallel mode (scroll up!) + +- rewrite cdist-stages, remove +- update man7! +- exec flag is not true for manifest anymore + +SSH HINTS +--------- +Control master, ssh agent + +Everything you specify in manifests + + +# Intro of quickstart +# +cat << eof +$banner cdist version $__cdist_version + +Welcome to the interactive guide to cdist! +This is the interactive tutorial and beginners help for cdist and here's +our schedule: + + - Stages: How cdist operates + - Explorer: Explore facts of the target host + - Manifest: Map configurations to hosts + - Types: Bundled functionality + - Deploy a configuration to the local host! + +eof +__prompt "$continue" + +################################################################################ +# Stages +# +cat << eof + +To deploy configurations to a host, you call + + cdist-deploy-to + +which makes calls to other scripts, which realise the so called "stages". +Usually you'll not notice this, but in case you want to debug or hack cdist, +you can run each stage on its own. Besides that, you just need to remember +that the command cdist-deploy-to is the main cdist command. + +See also: + + Source of cdist-deploy-to(1), cdist-stages(7) + +eof +__prompt "$continue" + +################################################################################ +# Explorer +# +cat << eof + +The first thing cdist always does is running different explorers on the +target host. The explorers can be found in the directory + + ${__cdist_explorer_dir} + +An explorer is executed on the target host and its output is saved to a file. +You can use these files later to decide what or how to configure the host. + +For a demonstration, we'll call the OS explorer locally now, but remember: +This is only for demonstration, normally it is run on the target host. +The os explorer will which either displays the detected operating system or +nothing if it does not know your OS. + +See also: + + cdist-explorer(7) + +eof +explorer="${__cdist_explorer_dir}/os" + +__prompt "Press enter to execute $explorer" + +set -x +"$explorer" +set +x + +################################################################################ +# Manifest +# +cat << eof + +The initial manifest is the entry point for cdist to find out, what you would +like to have configured. It is located at + + ${__cdist_manifest_init} + +And can be as simple as + +-------------------------------------------------------------------------------- +__file /etc/cdist-configured --type file +-------------------------------------------------------------------------------- + +See also: + + cdist-manifest(7) + +eof +__prompt "$continue" + +cat << eof + +Let's take a deeper look at the initial manifest to understand what it means: + + __file /etc/cdist-configured --type file + | | | \\ + | | The parameter type \\ With the value file + | | + | | + | | This is the object id + | + __file is a so called "type" + + +This essentially looks like a standard command executed in the shell. +eof +__prompt "$continue" + +cat << eof + +And that's exactly true. Manifests are shell snippets that can use +types as commands with arguments. cdist prepends a special path +that contain links to the cdist-type-emulator, to \$PATH, so you +can use your types as a command. + +This is also the reason why types should always be prefixed with +"__", to prevent collisions with existing binaries. + +The object id is unique per type and used to prevent you from creating +the same object twice. + +Parameters are type specific and are always specified as --parameter . + +See also: + + cdist-type-build-emulation(1), cdist-type-emulator(1) + +eof +__prompt "$continue" + +################################################################################ +# Types +# +cat << eof + +Types are bundled functionality and are the main component of cdist. +If you want to have a feature x, you write the type __x. Types are stored in + + ${__cdist_type_dir} + +And cdist ships with some types already! + +See also: + + cdist-type(7) + +eof +__prompt "Press enter to see available types" + +set -x +ls ${__cdist_type_dir} +set +x + +cat << eof + +Types consist of the following parts: + + - ${__cdist_name_parameter} (${__cdist_name_parameter_required}/${__cdist_name_parameter_optional} + - ${__cdist_name_manifest} + - ${__cdist_name_explorer} + - ${__cdist_name_gencode} + +eof +__prompt "$continue" + + +cat << eof + +Every type must have a directory named ${__cdist_name_parameter}, which +contains required or optional parameters (in newline seperated files). + +If an object of a specific type was created in the initial manifest, +the manifest of the type is run and may create other objects. + +A type may have ${__cdist_name_explorer}, which are very similar to the +${__cdist_name_explorer} seen above, but with a different purpose: +They are specific to the type and are not relevant for other types. + +You may use them for instance to find out details on the target host, +so you can decide what to do on the target host eventually. + +After the ${__cdist_name_manifest} and the ${__cdist_name_explorer} of +a type have been run, ${__cdist_name_gencode} is executed, which creates +code to be executed on the target on stdout. + +eof +__prompt "$continue" + +################################################################################ +# Deployment +# + +cat << eof + +Now you've got some basic knowledge about cdist, let's configure your a host! + +Ensure that you have a ssh server running on the host and that you can login as root. + +eof + +__prompt "Enter hostname or press enter for localhost: " + +if [ "$answer" ]; then + host="$answer" +else + host="localhost" +fi + +manifestinit="conf/manifest/init" +cat << eof + +I'll now setup $manifestinit, containing the following code: + +-------------------------------------------------------------------------------- +# Every machine becomes a marker, so sysadmins know that automatic +# configurations are happening +__file /etc/cdist-configured + +case "\$__target_host" in + $host) + __link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic + __addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist" + ;; +esac +-------------------------------------------------------------------------------- + +WARNING: This will overwrite ${manifestinit}. + +eof + +cat > "$__cdist_abs_mydir/../$manifestinit" << eof + +# Every machine becomes a marker, so sysadmins know that automatic +# configurations are happening +__file /etc/cdist-configured + +case "\$__target_host" in + $host) + __link /tmp/cdist-testfile --source /etc/cdist-configured --type symbolic + __addifnosuchline /tmp/cdist-welcome --line "Welcome to cdist" + ;; +esac + +eof + +chmod u+x "$__cdist_abs_mydir/../$manifestinit" + +cmd="cdist-deploy-to $host" + +__prompt "Press enter to run \"$cmd\"" + +# No quotes, we need field splitting +$cmd + +################################################################################ +# End +# + +cat << eof + + +-------------------------------------------------------------------------------- +That's it, this is the end of the cdist-quickstart. + +I hope you've got some impression on how cdist works, here are again some +pointers on where to continue to read: + + +eof +-------------------------------------------------------------------------------- + +- Initial install support + - setup $__install = "yes" for + manifest(s), gencode-* + + - run standard manifest (?) + - creates initial objects + - only those having the installer flag? + - requires changegs to cdist-type-emulator! + - Goto Rewrite cdist-type-emulator + + - run all other manifests + - creates all objects + - what about type explorer? + - do not run, create empty output (types should be able + to handle this!) + via __global/ + +- Support parallel execution + - error handling / report failed hosts + +- Create new video for cdist 2.0.0 + http://www.youtube.com/watch?v=PRMjzy48eTI + +- Setup __debug, if -d is given, so other tools can reuse it + - implement everywhere to external! + +- remote_prefix: + scp vs. ssh issue +locale_type diff --git a/doc/dev/todo/steven b/doc/dev/todo/steven index e69de29b..2aacaa42 100644 --- a/doc/dev/todo/steven +++ b/doc/dev/todo/steven @@ -0,0 +1,118 @@ +autorequire: + - objects defined in type manifests should be automatically prerequisites of the current object + - __foo/some-id + __other other-id --state present + => require="__other/other-id" __foo/some-id + + +metaparameters: + - steal the metaparameters from puppet: + + # I have to be there before the other one + __directory /etc/ssh \ + --before __file/etc/ssh/sshd_config + + # the other one has to be there before me + __file /etc/ssh/sshd_config \ + --after __directory/etc/ssh + + # if I change, tell the other one about it + __file /etc/ssh/sshd_config \ + --notify __init_script/etc/rc.d/sshd + + # whenever the other one changes, I want to know + __init_script /etc/rc.d/sshd \ + --subscribe __file/etc/ssh/sshd_config + + - how does a type react to a received 'event'? + - maybe something like: + __some_type/ + manifest + ... + gencode-refresh + ... + - gencode-refresh -> code-refresh -> ssh $target sh -e code-refresh + + + + +logging: + - logging from type emulator without clobbering stdout + maybe implement logging server as described here [1] + [1] http://docs.python.org/py3k/howto/logging-cookbook.html#configuration-server-example + + - use different logger to limit output to current area of interest, + e.g. + explorer.$target_host: explorer related messages for the run for $target_host + manifest.$target_host: manifest related messages for the run for $target_host + ... + then one could filter e.g. on explorer.* + + - more granular debug output, + [2] http://blog.ooz.ie/2011/03/python-logging-extending-standard.html + + + +tests: + + __init__(): + - sets up env: __target_host + + run_initial_manifest(): + - parameter is actually used (from __init__) + - ensure changing the manifest actually runs a different manifest + -> give ConfigInstall Constructor different manifest + -> different manifest is executed. + - test all submitted (from core to type manifest) variables: + - ENVIRONMENT + - they are set + - they contain the correct values + + run_type_manifest(): + - test all submitted (from core to type manifest) variables: + - ENVIRONMENT + - they are set + - they contain the correct values + - same tests as for test_initial_manifest_*? + + run_manifest(): + - test all submitted variables: + - ENVIRONMENT + - including __debug, if debug + - they are set + - they contain the correct values + - does $require work? + - check that exception raised, if manifest is not existent + + object_run(): + - ensure no object is run twice + - ensure requirements are taken into account? + - and order of run is adjusted + - check (from extern?) that all needed variables are setup + - ensure no code-{local, remote} is created, + if gencode is not producing code + - ensure THAT code-{local, remote} contains what gencode created + - abort if gencode-* fails + - abort if code-* fails + - abort == raise(FooException) + - gencode-*: ensure ENVIRONMENT is setup correctly + + run_type_explorer() + - ensure ALL type explores have been run + - ensure output is saved to correct path + - ensure a type with {0,1,2} explorers works ? + - none, one, multiple + - ensure ENVIRONMENT is setup correctly + - fails if ANY of the given explorer fails + + run_global_explorers(): + - ensure ALL type explores have been run + - ensure output is saved to correct path + - ensure a type with {0,1,2} explorers works ? + - none, one, multiple + - ensure ENVIRONMENT is setup correctly + - fails if ANY of the given explorer fails + +Code fixes needed: + + - shutil, os.mkdir, etc. everywhere: catch/reraise exceptions correctly diff --git a/doc/dev/todo/tests b/doc/dev/todo/tests new file mode 100644 index 00000000..d2101980 --- /dev/null +++ b/doc/dev/todo/tests @@ -0,0 +1,27 @@ +Tests needed for config_install: + + cleanup() + - Fail if cache_dir from previous run cannot be deleted + - Fail if cache_dir cannot be created from current out_dir + + filter() + - ensure logformat is changed: target host is prefixed: + LOGLEVEL: target_host: MESSAGE + + link_emulator(): + - ensure that links to ALL types are created + - ensure that links points to correct executable + - i.e. readlink() works + - AND target of readlink is the correct executable + + remote_mkdir() + - is directory created + + remove_remote_path + - is path removed + + transfer_path + - is src to dst transferred? + +emulator: + may only be called with __ as prefix - fail otherwise! diff --git a/doc/man/cdist-reference.text.sh b/doc/man/cdist-reference.text.sh index 90efc0f8..0a7b551e 100755 --- a/doc/man/cdist-reference.text.sh +++ b/doc/man/cdist-reference.text.sh @@ -133,7 +133,6 @@ out/object//explorers:: tmp_dir:: A tempdir and a tempfile is used by cdist internally, which will be removed when the scripts end automatically. - See cdist-config(1). TYPES ----- @@ -154,6 +153,16 @@ done cat << eof +OBJECTS +------- +For object to object communication and tests, the following paths are +usable within a object directory: + +changed:: + This empty file exists in an object directory, if the object has + code to be excuted (either remote or local) + + ENVIRONMENT VARIABLES --------------------- __explorer:: @@ -164,25 +173,24 @@ __manifest:: Available for: initial manifest __global:: Directory that contains generic output like explorer. - Available for: initial manifest, type manifest, type explorer, type codegen + Available for: initial manifest, type manifest, type gencode __object:: Directory that contains the current object. - Available for: type manifest, type explorer, type codegen + Available for: type manifest, type explorer, type gencode __object_id:: The type unique object id. - Available for: type manifest, type explorer, type codegen + Available for: type manifest, type explorer, type gencode __self:: + DEPRECATED: Same as __object_name, do not use anymore, use __object_name instead. +__object_name:: The full qualified name of the current object. - Available for: type manifest, type explorer, type codegen + Available for: type manifest, type explorer, type gencode __target_host:: The host we are deploying to. - Available for: initial manifest, type manifest, type codegen -__target_user:: - User to use for authentication on remote host. - Currently static in core. + Available for: initial manifest, type manifest, type gencode __type:: Path to the current type. - Available for: type manifest + Available for: type manifest, type gencode __type_explorer:: Directory that contains the type explorers. Available for: type explorer diff --git a/doc/man/man1/cdist-cache.text b/doc/man/man1/cdist-cache.text deleted file mode 100644 index 54619199..00000000 --- a/doc/man/man1/cdist-cache.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-cache(1) -============== -Nico Schottelius - - -NAME ----- -cdist-cache - Cache output of last run - - -SYNOPSIS --------- -cdist-cache TARGET_HOST - - -DESCRIPTION ------------ -cdist-cache moves away the objects created during last run so the -next run can use the previous information and compare them with -the current status. - - -SEE ALSO --------- -cdist(7) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-code-run.text b/doc/man/man1/cdist-code-run.text deleted file mode 100644 index e5d8c976..00000000 --- a/doc/man/man1/cdist-code-run.text +++ /dev/null @@ -1,34 +0,0 @@ -cdist-code-run(1) -================= -Nico Schottelius - - -NAME ----- -cdist-code-run - Run explorer remotely - - -SYNOPSIS --------- -cdist-code-run OBJECT_DIR OBJECT TYPE - - -DESCRIPTION ------------ -cdist-code-run executes generated code from a given OBJECT. -The OBJECT must be located below OBJECT_DIR. -TYPE must be either local or remote and determines which -code part is to be executed. - - -SEE ALSO --------- -- cdist(7) -- cdist-object-gencode(1) -- cdist-object-gencode-all(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-config.text b/doc/man/man1/cdist-config.text deleted file mode 100644 index 0c8b0735..00000000 --- a/doc/man/man1/cdist-config.text +++ /dev/null @@ -1,48 +0,0 @@ -cdist-config(1) -=============== -Nico Schottelius - - -NAME ----- -cdist-config - Read basic cdist configuration - - -DESCRIPTION ------------ -Cdist-config is sourced by cdist programs and provides hints on where to find -types, manifests, etc. Generally speaking, it's just usable from within the -core and is only of interest for cdist-developers. - - -ENVIRONMENT VARIABLES ---------------------- -The following list contains environment variables that are known -to be changed by users in various situations. To change the variable, -use your current shell and export it, so all cdist-binaries know about it. - -__cdist_tmp_base_dir:: - Normally this points to /tmp. In case /tmp is not suitable for - cdist (i.e. has noexec flag setup) you can change this variable - to point to a better location. - - -EXAMPLES --------- - -If /tmp has the noexec flag, you can use $HOME/.tmp for instance: - --------------------------------------------------------------------------------- -export __cdist_tmp_base_dir=$HOME/.tmp --------------------------------------------------------------------------------- - - -SEE ALSO --------- -cdist(7) - - -COPYING -------- -Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-deploy-stdin-to.text b/doc/man/man1/cdist-deploy-stdin-to.text deleted file mode 100644 index 14f19478..00000000 --- a/doc/man/man1/cdist-deploy-stdin-to.text +++ /dev/null @@ -1,30 +0,0 @@ -cdist-deploy-stdin-to(1) -======================== -Steven Armstrong - - -NAME ----- -cdist-deploy-stdin-to - Deploy the configuration given on stdin to host - - -SYNOPSIS --------- -echo "__file /tmp/whatever" | cdist-deploy-stdin-to HOSTNAME - - -DESCRIPTION ------------ -Use stdin as the manifest for cdist-deploy-to. - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-deploy-to.text b/doc/man/man1/cdist-deploy-to.text deleted file mode 100644 index f42a0509..00000000 --- a/doc/man/man1/cdist-deploy-to.text +++ /dev/null @@ -1,43 +0,0 @@ -cdist-deploy-to(1) -================== -Nico Schottelius - - -NAME ----- -cdist-deploy-to - Deploy configuration to host - - -SYNOPSIS --------- -cdist-deploy-to HOSTNAME - - -DESCRIPTION ------------ -Deploy configurations to the specified host, as configured in the initial -manifest. This script triggers the execution of several other scripts, in so -called stages. It is intented to run either from the command line or from cron. - - -ENVIRONMENT ------------ -If the environment variable **__cdist_conf_dir** is not set, the -configuration is read from /conf. The local output directory can -be changed by the variable **__cdist_local_base_dir**. All environment -variables are handled by cdist-config. - - -SEE ALSO --------- -- cdist(7) -- cdist-config(1) -- cdist-mass-deploy(1) -- cdist-reference(7) -- cdist-stages(7) - - -COPYING -------- -Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-dir.text b/doc/man/man1/cdist-dir.text deleted file mode 100644 index 223bc779..00000000 --- a/doc/man/man1/cdist-dir.text +++ /dev/null @@ -1,38 +0,0 @@ -cdist-dir(1) -============ -Nico Schottelius - - -NAME ----- -cdist-dir - Poor man's directory synchronisation - - -SYNOPSIS --------- -cdist-dir TARGET_HOST SRC_DIR DST_DIR - - -DESCRIPTION ------------ -cdist-dir either pushes a local directory to the target host -or pulls a remote directory from a target host to the local host. - -In the push case SRC_DIR is local, in the pull case remote. -In the push case DST_DIR is remote, in the pull case local. - -cdist-dir does not cleanup DST_DIR and thus it may contain old -stuff if used multiple times. - -cdist-dir does not rely on rsync or other high level tools, because -it cannot expect its existence on the local or target host. - -SEE ALSO --------- -cdist(7) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-env.text b/doc/man/man1/cdist-env.text deleted file mode 100644 index 9a736133..00000000 --- a/doc/man/man1/cdist-env.text +++ /dev/null @@ -1,49 +0,0 @@ -cdist-env(1) -============ -Nico Schottelius - - -NAME ----- -cdist-env - Setup environment for using cdist - - -SYNOPSIS --------- -cdist-env - - -DESCRIPTION ------------ -cdist-env outputs two strings suitable for usage in your current shell, -so you can use cdist from the checkout. cdist-env essentially helps you -to easily setup PATH and MANPATH. - -If you've multiple checkouts of cdist and run cdist-env from the various -checkouts, a new run will prepend the last directory, thus ensures you -can run it multiple times and does what one expects. - -EXAMPLES --------- -For use in bourne shell variants (like dash, bash, ksh) as well as -in csh variants (csh, tcsh): - --------------------------------------------------------------------------------- -eval `./bin/cdist-env` --------------------------------------------------------------------------------- - -For bourne shell, there is also a shorter version: --------------------------------------------------------------------------------- -. ./bin/cdist-env --------------------------------------------------------------------------------- - - -SEE ALSO --------- -cdist(7) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-explorer-run-global.text b/doc/man/man1/cdist-explorer-run-global.text deleted file mode 100644 index f4b32dfb..00000000 --- a/doc/man/man1/cdist-explorer-run-global.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-explorer-run-global(1) -============================ -Nico Schottelius - - -NAME ----- -cdist-explorer-run-global - Run the global explorers - - -SYNOPSIS --------- -cdist-explorer-run-global HOSTNAME - - -DESCRIPTION ------------ -Transfer the global explorers to HOSTNAME, execute them and transfer -back the results. - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-manifest-run-init.text b/doc/man/man1/cdist-manifest-run-init.text deleted file mode 100644 index 3a3265dc..00000000 --- a/doc/man/man1/cdist-manifest-run-init.text +++ /dev/null @@ -1,32 +0,0 @@ -cdist-manifest-run-init(1) -========================== -Nico Schottelius - - -NAME ----- -cdist-manifest-run-init - Run the initial manifest - - -SYNOPSIS --------- -cdist-manifest-run-init HOSTNAME - - -DESCRIPTION ------------ -cdist-manifest-run-init executes the initial manifest, which creates -the first objects. - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) -- cdist-manifest-run-all(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-manifest-run.text b/doc/man/man1/cdist-manifest-run.text deleted file mode 100644 index 8cd6b513..00000000 --- a/doc/man/man1/cdist-manifest-run.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-manifest-run(1) -===================== -Nico Schottelius - - -NAME ----- -cdist-manifest-run - Run a given manifest - - -SYNOPSIS --------- -cdist-manifest-run HOSTNAME MANIFEST - - -DESCRIPTION ------------ -cdist-manifest-run executes the given MANIFEST. - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) -- cdist-manifest-run-init(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-mass-deploy.text b/doc/man/man1/cdist-mass-deploy.text deleted file mode 100644 index ac495b21..00000000 --- a/doc/man/man1/cdist-mass-deploy.text +++ /dev/null @@ -1,41 +0,0 @@ -cdist-mass-deploy(1) -==================== -Nico Schottelius - - -NAME ----- -cdist-mass-deploy - Deploy configuration to many hosts - - -SYNOPSIS --------- -cdist-mass-deploy [-p] HOSTNAME [HOSTNAME ...] - - -DESCRIPTION ------------ -cdist-mass-deploy is essentially a wrapper around cdist-deploy-to to -be able to deploy to many hosts on one command line. - - -EXAMPLES --------- -Deploy in parallel to all hosts specfied in the dsh group configuration ikr, -which is prefixed by "root@": - --------------------------------------------------------------------------------- -cdist-mass-deploy -p $(cat ~/.dsh/group/ikr | sed 's/^root@//') --------------------------------------------------------------------------------- - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) - - -COPYING -------- -Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-all.text b/doc/man/man1/cdist-object-all.text deleted file mode 100644 index 06d45268..00000000 --- a/doc/man/man1/cdist-object-all.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-object-all(1) -=================== -Steven Armstrong - - -NAME ----- -cdist-object-all - Run the given command on all objects - - -SYNOPSIS --------- -cdist-object-all HOSTNAME COMMAND - - -DESCRIPTION ------------ -Iterates over all defined objects and executes the given command on each -of them. - - -SEE ALSO --------- -- cdist(7) -- cdist-type(1) - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-code-run.text b/doc/man/man1/cdist-object-code-run.text deleted file mode 100644 index f8bae6a4..00000000 --- a/doc/man/man1/cdist-object-code-run.text +++ /dev/null @@ -1,32 +0,0 @@ -cdist-object-code-run(1) -======================== -Nico Schottelius - - -NAME ----- -cdist-object-code-run - Execute the generated code for a object - - -SYNOPSIS --------- -cdist-object-code-run HOSTNAME OBJECT - - -DESCRIPTION ------------ -Execute the local and remote code for the given object. - - -SEE ALSO --------- -- cdist(7) -- cdist-object-run(1) -- cdist-code-run(1) -- cdist-run-remote(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-explorer-run.text b/doc/man/man1/cdist-object-explorer-run.text deleted file mode 100644 index a791681e..00000000 --- a/doc/man/man1/cdist-object-explorer-run.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-object-explorer-run(1) -============================ -Nico Schottelius - - -NAME ----- -cdist-object-explorer-run - Run type explorers for a object - - -SYNOPSIS --------- -cdist-object-explorer-run HOSTNAME OBJECT - - -DESCRIPTION ------------ -Runs the explorers for the given object on the target host. - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) -- cdist-remote-explorer-run(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-gencode-run.text b/doc/man/man1/cdist-object-gencode-run.text deleted file mode 100644 index 7705815c..00000000 --- a/doc/man/man1/cdist-object-gencode-run.text +++ /dev/null @@ -1,32 +0,0 @@ -cdist-object-gencode-run(1) -=========================== -Nico Schottelius - - -NAME ----- -cdist-object-gencode-run - Generate code for a object - - -SYNOPSIS --------- -cdist-object-gencode-run HOSTNAME OBJECT - - -DESCRIPTION ------------ -For the given object, generate the code for local and remote execution. - - -SEE ALSO --------- -- cdist(7) -- cdist-code-run(1) -- cdist-object-run(1) -- cdist-object-gencode(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-gencode.text b/doc/man/man1/cdist-object-gencode.text deleted file mode 100644 index 83f4b4c1..00000000 --- a/doc/man/man1/cdist-object-gencode.text +++ /dev/null @@ -1,33 +0,0 @@ -cdist-object-gencode(1) -======================= -Nico Schottelius - - -NAME ----- -cdist-object-gencode - Generate code for a given object - - -SYNOPSIS --------- -cdist-object-gencode HOSTNAME OBJECT - - -DESCRIPTION ------------ -For the given object, run the gencode executable. The output of this -executable on stdout will be used by cdist-object-gencode-all(1). - - -SEE ALSO --------- -- cdist(7) -- cdist-code-run(1) -- cdist-deploy-to(1) -- cdist-object-gencode-all(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-manifest-run.text b/doc/man/man1/cdist-object-manifest-run.text deleted file mode 100644 index a6f12f78..00000000 --- a/doc/man/man1/cdist-object-manifest-run.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-object-manifest-run(1) -============================ -Nico Schottelius - - -NAME ----- -cdist-object-manifest-run - Run an objects manifest - - -SYNOPSIS --------- -cdist-object-manifest-run HOSTNAME OBJECT - - -DESCRIPTION ------------ -Run the manifest for the given object. - - -SEE ALSO --------- -- cdist(7) -- cdist-deploy-to(1) -- cdist-manifest-run(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-prepare.text b/doc/man/man1/cdist-object-prepare.text deleted file mode 100644 index c91a7b2e..00000000 --- a/doc/man/man1/cdist-object-prepare.text +++ /dev/null @@ -1,35 +0,0 @@ -cdist-object-prepare(1) -======================= -Steven Armstrong - - -NAME ----- -cdist-object-prepare - Prepare an object - - -SYNOPSIS --------- -cdist-object-prepare HOSTNAME OBJECT - - -DESCRIPTION ------------ -Prepare the given object by running it through stage 3 (object information -retrieval) and stage 4 (run the object manifest). -See related man pages for details. - - -SEE ALSO --------- -- cdist(7) -- cdist-stages(7) -- cdist-object-explorer-run(1) -- cdist-object-manifest-run(1) -- cdist-type(1) - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. Free use of this software is granted -under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-push.text b/doc/man/man1/cdist-object-push.text deleted file mode 100644 index 4c960eaa..00000000 --- a/doc/man/man1/cdist-object-push.text +++ /dev/null @@ -1,31 +0,0 @@ -cdist-object-push(1) -==================== -Nico Schottelius - - -NAME ----- -cdist-object-push - Transfer a object to the target host - - -SYNOPSIS --------- -cdist-object-push HOSTNAME OBJECT - - -DESCRIPTION ------------ -Transfers the given object to the target host. - - -SEE ALSO --------- -- cdist(7) -- cdist-object-run(1) -- cdist-type(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius, Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-object-run.text b/doc/man/man1/cdist-object-run.text deleted file mode 100644 index fc85a05f..00000000 --- a/doc/man/man1/cdist-object-run.text +++ /dev/null @@ -1,36 +0,0 @@ -cdist-object-run(1) -=================== -Steven Armstrong - - -NAME ----- -cdist-object-run - Run an object - - -SYNOPSIS --------- -cdist-object-run HOSTNAME OBJECT - - -DESCRIPTION ------------ -Applies the given object on the target host by running it through stage 5 -(code generation) and stage 6 (code execution). -See related man pages for details. - - -SEE ALSO --------- -- cdist(7) -- cdist-stages(7) -- cdist-object-gencode-run(1) -- cdist-object-push(1) -- cdist-object-code-run(1) -- cdist-type(1) - - -COPYING -------- -Copyright \(C) 2011 Steven Armstrong. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-quickstart.text b/doc/man/man1/cdist-quickstart.text deleted file mode 100644 index 087fd2d5..00000000 --- a/doc/man/man1/cdist-quickstart.text +++ /dev/null @@ -1,47 +0,0 @@ -cdist-quickstart(1) -=================== -Nico Schottelius - -NAME ----- -cdist-quickstart - Make use of cinit in 5 minutes - - -SYNOPSIS --------- -cdist-quickstart - - -DESCRIPTION ------------ -cdist-quickstart is an interactive guide to cdist. It should be one -of the first tools you use when you begin with cdist. - - -EXAMPLES --------- -To use cdist-quickstart, add the bin directory to your PATH, execute -cdist-quickstart and enjoy cdist: - --------------------------------------------------------------------------------- -# Bourne shell example -export PATH=$(pwd -P)/bin:$PATH - -# Alternatively, usable for csh and bsh, set's up PATH and MANPATH -eval `./bin/cdist-env` - -# Let's go! -cdist-quickstart --------------------------------------------------------------------------------- - - -SEE ALSO --------- -- cdist(7) -- cdist-env(1) - - -COPYING -------- -Copyright \(C) 2010-2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-remote-explorer-run.text b/doc/man/man1/cdist-remote-explorer-run.text deleted file mode 100644 index 64951e2c..00000000 --- a/doc/man/man1/cdist-remote-explorer-run.text +++ /dev/null @@ -1,33 +0,0 @@ -cdist-remote-explorer-run(1) -============================ -Nico Schottelius - - -NAME ----- -cdist-remote-explorer-run - Run explorer remotely - - -SYNOPSIS --------- -cdist-remote-explorer-run VARIABLE_NAME EXPLORER_DIR OUT_DIR - - -DESCRIPTION ------------ -cdist-remote-explorer-run is executed on the target. -It sets up the variable VARIABLE_NAME to point to the given -EXPLORER_DIR and runs all explorer found in EXPLORER_DIR. -The output of every run explorer is saved into OUT_DIR. - - -SEE ALSO --------- -- cdist(7) -- cdist-explorer-run-global(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-run-remote.text b/doc/man/man1/cdist-run-remote.text deleted file mode 100644 index ee7a6337..00000000 --- a/doc/man/man1/cdist-run-remote.text +++ /dev/null @@ -1,33 +0,0 @@ -cdist-run-remote(1) -=================== -Nico Schottelius - - -NAME ----- -cdist-run-remote - Execute something on the target - - -SYNOPSIS --------- -cdist-run-remote HOSTNAME EXECUTABLE [ARGUMENTS FOR EXECUTABLE] - - -DESCRIPTION ------------ -cdist-run-remote runs the given executable on the remote host. -It ensures PATH is setup correctly on the target side. - - -SEE ALSO --------- -- cdist(7) -- cdist-object-code-run(1) -- cdist-deploy-to(1) -- cdist-remote-code-run-all(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-type-build-emulation.text b/doc/man/man1/cdist-type-build-emulation.text deleted file mode 100644 index 81c56e7c..00000000 --- a/doc/man/man1/cdist-type-build-emulation.text +++ /dev/null @@ -1,33 +0,0 @@ -cdist-type-build-emulation(1) -============================= -Nico Schottelius - - -NAME ----- -cdist-type-build-emulation - Build executables for types - - -SYNOPSIS --------- -cdist-type-build-emulation OUT_DIR - - -DESCRIPTION ------------ -cdist-type-build-emulation creates a link to cdist-type-emulator -for every TYPE. These links are placed in a OUT_DIR, which -is prepended into $PATH. This way the user can use TYPE in the -manifests like any other executable. - - -SEE ALSO --------- -- cdist(7) -- cdist-type-emulator(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-type-emulator.text b/doc/man/man1/cdist-type-emulator.text deleted file mode 100644 index 507c1054..00000000 --- a/doc/man/man1/cdist-type-emulator.text +++ /dev/null @@ -1,56 +0,0 @@ -cdist-type-emulator(1) -====================== -Nico Schottelius - - -NAME ----- -cdist-type-emulator - Emulate type and record parameters and dependencies - - -SYNOPSIS --------- -cdist-type-emulator [TYPE ARGS] - - -DESCRIPTION ------------ -cdist-type-emulator is normally called through a link to it of the -name of a specifc type. It saves the given parameters into -a parameters directory and the requirements into a require file. - -It checks whether the parameters are valid: - -- are required parameter given? -- are all other required parameters specified as optional? - - -EXAMPLES --------- -Your manifest may contain stuff like this: - - --------------------------------------------------------------------------------- -__addifnosuchline /tmp/linetest --line "test" - -__motd --------------------------------------------------------------------------------- - -In both cases, cdist-type-emulator is called instead of a real type. -In the first case, the object id "/tmp/linetest" is recorded and the -parameter "line" stored with the content "test". - -In the second case, __motd must be decleared as a singleton, as the -object id is missing. - - -SEE ALSO --------- -- cdist(7) -- cdist-type-build-emulation(1) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist-type-template.text b/doc/man/man1/cdist-type-template.text deleted file mode 100644 index bbd31409..00000000 --- a/doc/man/man1/cdist-type-template.text +++ /dev/null @@ -1,30 +0,0 @@ -cdist-type-template(1) -====================== -Nico Schottelius - - -NAME ----- -cdist-type-template - Create a new type - - -SYNOPSIS --------- -cdist-type-template NAME - - -DESCRIPTION ------------ -cdist-type-template creates a new type and adds the usual files to it. -It is thought to be helpful when writing new types. - - -SEE ALSO --------- -cdist(7) - - -COPYING -------- -Copyright \(C) 2011 Nico Schottelius. Free use of this software is -granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man1/cdist.text b/doc/man/man1/cdist.text new file mode 100644 index 00000000..03948036 --- /dev/null +++ b/doc/man/man1/cdist.text @@ -0,0 +1,103 @@ +cdist(1) +======== +Nico Schottelius + + +NAME +---- +cdist - Configuration management + + +SYNOPSIS +-------- +cdist [-h] [-V] + +cdist banner + +cdist config [-h] [-d] [-V] [-c CDIST_HOME] [-i MANIFEST] [-p] [-s] host [host ...] + + + +DESCRIPTION +----------- +cdist is the frontend executable to the cdist configuration management. +cdist supports different as explained below. The options to the main +program are: + +-h, --help:: + Show the help screen + +-V, --version:: + Show version and exit + + +BANNER +------- +Displays the cdist banner. + + +CONFIG +------ +Configure a system + +-h, --help:: + Show the help screen + +-c CDIST_HOME, --cdist-home CDIST_HOME:: + Instead of using the parent of the bin directory as cdist home, + use the specified directory + +-d, --debug:: + Enable debug output + +-i MANIFEST, --initial-manifest MANIFEST:: + Path to a cdist manifest or - to read from stdin + +-p, --parallel:: + Operate on multiple hosts in parallel + +-s, --sequential:: + Operate on multiple hosts sequentially + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Configure ikq05.ethz.ch with debug enabled +cdist config -d ikq05.ethz.ch + +# Configure hosts in parallel and use a different home directory +cdist config -c ~/p/cdist-nutzung \ + -p ikq02.ethz.ch ikq03.ethz.ch ikq04.ethz.ch + +# Display banner +cdist banner + +# Show help +cdist --help + +# Show Version +cdist --version +-------------------------------------------------------------------------------- + + +ENVIRONMENT +----------- +TMPDIR, TEMP, TMP:: + Setup the base directory for the temporary directory. + See http://docs.python.org/py3k/library/tempfile.html for + more information. This is rather useful, if the standard + directory used does not allow executables. + +SEE ALSO +-------- +- cdist(7) +- cdist-type-emulator(1) +- cdist-reference(7) + + +COPYING +------- +Copyright \(C) 2011 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/doc/man/man7/cdist-explorer.text b/doc/man/man7/cdist-explorer.text index 63c7a5c9..e1909ab5 100644 --- a/doc/man/man7/cdist-explorer.text +++ b/doc/man/man7/cdist-explorer.text @@ -26,7 +26,7 @@ $__explorer/ (general and type explorer) or $__type_explorer/ (type explorer). In case of significant errors, the explorer may exit non-zero and return an -error message on stderr, which will cause the cdist run to abort. +error message on stderr, which will cause cdist to abort. You can also use stderr for debugging purposes while developing a new explorer. diff --git a/doc/man/man7/cdist-hacker.text b/doc/man/man7/cdist-hacker.text index efd6ef7d..f8e3730e 100644 --- a/doc/man/man7/cdist-hacker.text +++ b/doc/man/man7/cdist-hacker.text @@ -26,26 +26,12 @@ in the latest version, drop a mail to the cdist mailing list, subject prefixed with "[BUG] ". -UNDERSTANDING CDIST INTERNALS ------------------------------ -IF you are interested in how cdist internally works, you can open -bin/cdist-config and bin/cdist-deploy-to in your favorite editor and -read the scripts bin/cdist-deploy-to calls. The magnificent HACKERS_README -may be of great help as well. - - CODING CONVENTIONS (EVERYWHERE) ------------------------------- If something should be better done or needs to fixed, add the word FIXME nearby, so grepping for FIXME gives all positions that need to be fixed. -CODING CONVENTIONS (CORE) -------------------------- -- All variables exported by cdist are prefixed with a double underscore (__) -- All cdist-internal variables are prefixed with __cdist_ and are generally not exported. - - HOW TO SUBMIT STUFF FOR INCLUSION INTO UPSTREAM CDIST ----------------------------------------------------- If you did some cool changes to cdist, which you value as a benefit for @@ -60,9 +46,8 @@ work nor kill the authors brain: private branch! - Code to be included should be branched of the upstream "master" branch - Exception: Bugfixes to a version branch -- Code submissions should be in your master branch - - Other branches are fine as well, but you need to tell me which branch - your work is in! +- On a merge request, always name the branch I should pull from +- Always ensure **all** manpages build: ./build.sh man - If you developed more than **one** feature, consider submitting them in seperate branches. This way one feature can already be included, even if the other needs to be improved. diff --git a/doc/man/man7/cdist-stages.text b/doc/man/man7/cdist-stages.text index 294dffc7..8ac30015 100644 --- a/doc/man/man7/cdist-stages.text +++ b/doc/man/man7/cdist-stages.text @@ -32,11 +32,6 @@ explorers. Every existing explorer is run on the target and the output of all explorers are copied back into the local cache. The results can be used by manifests and types. -Related documentation: - - cdist-explorer-run-global(1) - - cdist-remote-explorer-run(1) - - cdist-explorer(7) - STAGE 2: RUN THE INITIAL MANIFEST --------------------------------- @@ -46,11 +41,6 @@ the objects as defined in the manifest for the specific host. In this stage, no conflicts may occur, i.e. no object of the same type with the same id may be created. -Related documentation: - - cdist-manifest-run-init(1) - - cdist-manifest-run(1) - - cdist-manifest(7) - STAGE 3: OBJECT INFORMATION RETRIEVAL ------------------------------------- @@ -59,12 +49,6 @@ transfered to the target host and executed. The results are transfered back and can be used in the following stages to decide what changes need to be made on the target to implement the desired state. -Related documentation: - - cdist-object-explorer-run(1) - - cdist-remote-explorer-run(1) - - cdist-type(7) - - cdist-explorer(7) - STAGE 4: RUN THE OBJECT MANIFEST -------------------------------- @@ -79,11 +63,6 @@ The newly created objects are merged back into the existing tree. No conflicts may occur during the merge. A conflict would mean that two different objects try to create the same object, which indicates a broken configuration. -Related documentation: - - cdist-object-manifest-run(1) - - cdist-manifest-run(1) - - cdist-type(7) - STAGE 5: CODE GENERATION ------------------------ @@ -92,29 +71,17 @@ gencode scripts. The gencode scripts generate the code to be executed on the target on stdout. If the gencode executables fail, they must print diagnostic messages on stderr and exit non-zero. -Related documentation: - - cdist-object-gencode-run(1) - - cdist-object-gencode(1) - - cdist-type(7) - STAGE 6: CODE EXECUTION ----------------------- For every object the resulting code from the previous stage is transferred to the target host and executed there to apply the configuration changes. -Related documentation: - - cdist-object-code-run(1) - - cdist-code-run(1) - STAGE 7: CACHE -------------- The cache stores the information from the current run for later use. -Related documentation: - - cdist-cache(1) - SUMMARY ------- @@ -126,8 +93,8 @@ in correct order. SEE ALSO -------- +- cdist(1) - cdist(7) -- cdist-deploy-to(1) - cdist-reference(7) diff --git a/doc/man/man7/cdist-tutorial.text b/doc/man/man7/cdist-tutorial.text new file mode 100644 index 00000000..577d633a --- /dev/null +++ b/doc/man/man7/cdist-tutorial.text @@ -0,0 +1,185 @@ +cdist-tutorial(7) +================= +Nico Schottelius + + +NAME +---- +cdist-tutorial - a guided introduction into cdist + + +INTRODUCTION +------------ +This tutorial is aimed at people learning cdist and shows +typical approaches as well as gives an easy start into +the world of configuration management. + +This tutorial assumes you are configuring **localhost**, because +it is always available. Just replace **localhost** with your target +host for real life usage. + + + +QUICK START - GET YOUR HANDS DIRTY NOW +-------------------------------------- +For those who just want to configure a system with the +cdist configuration management and do not need (or want) +to understand everything. + +Cdist uses **ssh** for communication and transportation +and usually logs into the **target host** as the +**root** user. So you need to configure the **ssh server** +of the target host to allow root logins: Edit +the file **/etc/ssh/sshd_config** and add one of the following +lines: + +-------------------------------------------------------------------------------- +# Allow login only via public key +PermitRootLogin without-password + +# Allow login via password and public key +PermitRootLogin yes +-------------------------------------------------------------------------------- + +As cdist uses ssh intensively, it is recommended to setup authentication +with public keys: + +-------------------------------------------------------------------------------- +# Generate pubkey pair as a normal user +ssh-keygen + +# Copy pubkey over to target host +ssh-copy-id root@localhost +-------------------------------------------------------------------------------- + +Have a look at ssh-agent(1) and ssh-add(1) on how to cache the password for +your public key. Usually it looks like this: + +-------------------------------------------------------------------------------- +# Start agent and export variables +eval `ssh-agent` + +# Add keys (requires password for every identity file) +ssh-add +-------------------------------------------------------------------------------- + +At this point you should be able to ***ssh root@localhost*** without +re-entering the password. If something failed until here, ensure that +all steps went successfully and you have read and understood the +documentation. + +As soon as you are able to login without passwort to the target host, +we can use cdist to configure it. You can copy and paste the following +code into your shell to get started and configure localhost: + +-------------------------------------------------------------------------------- +# Get cdist +git clone git://git.schottelius.org/cdist + +# Create manifest (maps configuration to host(s) +cd cdist +echo '__file /etc/cdist-configured' > conf/manifest/init + +# Configure localhost in verbose mode +./bin/cdist config -v localhost + +# Find out that cdist created /etc/cdist-configured +ls -l /etc/cdist-configured +-------------------------------------------------------------------------------- + +That's it, you've successfully used cdist to configure your first host! +Continue reading the next sections, to understand what you did and how +to create a more sophisticated configuration. + +The file 'conf/manifest/init' is usually the entry point for cdist, +to find out what to configure on which host. All manifests are +essentially shell scripts. Every manifest can use the types known to +cdist, which are usually underline prefixed (__). + + + +DEFINE STATE IN THE INITIAL MANIFEST +------------------------------------ +The **initial manifest** is the entry point for cdist to find out, which +**objects** to configure on the selected host. Objects are instances of +**types**, like in object orientated programming. An object is represented +by the type + slash + object name: ***__file/etc/cdist-configured*** is an +object of the type ***__file*** with the name ***etc/cdist-configured***. + +Cdist searches for the initial manifest at **conf/manifest/init** and +executes it as a shell script using **/bin/sh -e**. + +Within this initial manifest, you define, which objects should be +created on which host. To distinguish between hosts, you can use the +environment variable **__target_host**. Let's have a look at a simple +example: + +-------------------------------------------------------------------------------- +__file /etc/cdist-configured + +case "$__target_host" in + localhost) + __directory /home/services/kvm-vm --parents yes + ;; +esac +-------------------------------------------------------------------------------- + +This manifest says: Independent of the host, always create the (empty) file +***/etc/cdist-configured***, but create the directory ***/home/services/kvm-vm***, +including all parent directories, only on the host ***localhost***. + +As you can see, there is no magic involved, the manifest is simple shell code that +utilises cdist types. + + +PARTS BELOW HERE ARE TO-BE-DONE + + +MORE ABOUT TYPES AND OBJECTS +---------------------------- +All available types in cdist can be called like normal executables. + + +USING SOME BASIC TYPES +---------------------- +what is a type, how to use it, + + +CREATING YOUR FIRST OWN TYPE +---------------------------- + + + +USE A TYPE TO BUNDLE FUNCTIONALITY +---------------------------------- + + +USING EXPLORERS +--------------- +global, type explorer + + +DEBUGGING YOUR TYPES +-------------------- +__debug:: + If this variable is setup, cdist runs in debug mode. + You can use this information, to only output stuff in debug + mode as well. + Available for: initial manifest, type manifest, gencode, code + + + + +BRANCHES IN HERE? +------------ + +TUNING CDIST +------------ + +- speedup processing with ControlMaster option of +ssh + + +SEE ALSO +-------- +cdist(1), cdist-type(7), cdist-stages(7) diff --git a/doc/man/man7/cdist-type.text b/doc/man/man7/cdist-type.text index 1af386fb..2439876c 100644 --- a/doc/man/man7/cdist-type.text +++ b/doc/man/man7/cdist-type.text @@ -35,10 +35,6 @@ __file /etc/cdist-configured --type file __package tree --state installed -------------------------------------------------------------------------------- -Internally cdist-type-emulator(1) will be called from cdist-manifest-run(1) to -save the given parameters into a cconfig database, so they can be accessed by -the manifest and gencode scripts of the type (see below). - A list of supported types can be found in the cdist-reference(7) manpage. SINGLETON TYPES @@ -111,7 +107,7 @@ __package_$type "$@" -------------------------------------------------------------------------------- As you can see, the type can reference different environment variables, -which are documented in cdist-environment-variables(7). +which are documented in cdist-reference(7). Always ensure the manifest is executable, otherwise cdist will not be able to execute it. diff --git a/doc/man/man7/cdist.text b/doc/man/man7/cdist.text index 9f7dbbab..2a5d1fe5 100644 --- a/doc/man/man7/cdist.text +++ b/doc/man/man7/cdist.text @@ -35,12 +35,11 @@ pull mechanism (client requests configuration). SEE ALSO -------- - Website: http://www.nico.schottelius.org/software/cdist/[] -- cdist-best-practise(7) -- cdist-deploy-to(1) - cdist-hacker(7) - cdist-manifest(7) -- cdist-quickstart(1) - cdist-type(7) +- cdist(1) +- cdist(7) COPYING diff --git a/doc/speeches/2011-05-20_cosin.tex b/doc/speeches/2011-05-20_cosin.tex new file mode 100644 index 00000000..f60a660a --- /dev/null +++ b/doc/speeches/2011-05-20_cosin.tex @@ -0,0 +1,242 @@ +% first presentation about cmtp +\pdfminorversion=4 +%\documentclass[ucs]{beamer} +\documentclass{beamer} +%\documentclass[utf8]{beamer} +\usepackage[utf8]{inputenc} +\usepackage{german} +\usepackage{graphicx} +\usepackage{beamerthemesplit} +\setbeamercovered{dynamic} +\usetheme{Malmoe} +\usecolortheme{crane} + +\title{cdist - nutzbare Konfigurationsverwaltung} +\subtitle{Cosin 2011} + +\author{Nico -telmich- Schottelius} + +\date{25. Juni 2011} + +\begin{document} +\frame{\titlepage} + +%\section[Outline]{} +\frame{\tableofcontents} + +\section{Einleitung} +\frame +{ + \frametitle{Was ist das Problem?} + \begin{itemize} + \item Einmal konfigurieren = toll + \item Zweimal konfigurieren = naja, ... + \item Neue Sachen machen mehr Spass als alte wiederholen + \item Viele Rechner = viel Mühe? + \end{itemize} +} + +\frame +{ + \frametitle{Das ist nicht neu...} + \begin{itemize} + \item cfengine + \item Puppet + \item bcfg2 + \item chef + \item ... + \end{itemize} +} + +\frame +{ + \frametitle{Warum cdist?} + \begin{itemize} + \item Klein + \item Unix + \item Leicht zu bedienen + \item ... zu erweitern + \item Shell + \item Weil es Spaß macht! + \end{itemize} +} + +\section{Installieren} +\frame +{ + \frametitle{Vorraussetzungen} + \begin{itemize} + \item sshd + \item root login via sshd + \item Besser: ssh-pubkey konfiguriert (PermitRootLogin without-password) + \item git + \item Asciidoc für dia manpages + \end{itemize} +} + +\frame +{ + \frametitle{Installation} + \begin{center} + git clone git://git.schottelius.org/cdist + \end{center} +} + +\begin{frame}[fragile] + \frametitle{Erstellen der Manpages} + + \begin{verbatim} + # Braucht asciidoc / a2x + ./build.sh man + \end{verbatim} +\end{frame} + +\section{Nutzen} +\begin{frame}[fragile] + \frametitle{Vorbereitung PATH und MANPATH} + + \begin{verbatim} + cd cdist + eval `./bin/cdist-env` + echo $PATH + echo $MANPATH + \end{verbatim} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Nun los} + \begin{verbatim} + # Fangen wir bei uns an + cdist-deploy-to localhost + \end{verbatim} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Der Einstiegspunkt} + \begin{small} + \begin{verbatim} + cat << eof > conf/manifest/init + __file /etc/cdist-configured + + case "$__target_host" in + localhost) + __link /tmp/cdist-testfile \ + --source /etc/cdist-configured \ + --type symbolic + __addifnosuchline /tmp/cdist-welcome \ + --line "Welcome to cdist" + ;; + esac + eof + # Muss ausführbar sein + chmod u+x conf/manifest/init + + \end{verbatim} + \end{small} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Nun los} + \begin{verbatim} + # Nun läuft es! + cdist-deploy-to localhost + \end{verbatim} +\end{frame} + +\frame +{ + \frametitle{Funktionalität zusammenfassen} + \begin{itemize}[<+->] + \item "`Typen"' (types) + \item conf/type/* + \item \_\_ vor jedem Namen (Shell-Umgebung) + \item z.B. Netzseite, Mailserver, Wiki, ... + \end{itemize} +} + +\begin{frame}[fragile] + \frametitle{Ein neuer Typ} + \begin{small} + \begin{verbatim} + % mkdir conf/type/__my_mailserver + % cat << eof > conf/type/__my_mailserver/manifest + # Dieser Typ konfiguriert meinen Mailserver + require="__package/nullmailer" \ + __file /etc/nullmailer/remotes \ + --source "$__type/files/remotes" + + # Reihenfolge spielt keine Rolle + __package nullmailer --state installed + eof + \end{verbatim} + \end{small} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Ein neuer Typ (2)} + \begin{small} + \begin{verbatim} + # Wichtig: Wird ausgeführt + % chmod u+x conf/type/__my_mailserver/manifest + + # Darf nur einmal verwendet werden pro Rechner + % touch conf/type/__my_mailserver/singleton + + # Nullmailer Konfiguration + % mkdir conf/type/__my_mailserver/files + % echo my.fancy.smart.host > \ + conf/type/__my_mailserver/files/remotes + \end{verbatim} + \end{small} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Neuen Typ nutzen} + \begin{small} + \begin{verbatim} + % $EDITOR conf/manifest/init + + case "$__target_host" in + localhost) + ... + __my_mailserver + ... + ;; + \end{verbatim} + \end{small} +\end{frame} + +\section{Aktualisieren} +\begin{frame}[fragile] + \frametitle{Versionen} + \begin{itemize}[<+->] + \item x.y: Stabile Version + \item master: Entwicklung + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Stabile Version auswählen} + \begin{center} + git checkout -b 1.7 origin/1.7 + \end{center} +\end{frame} + +\begin{frame}[fragile] + \frametitle{Aktualisieren} + \begin{center} + git pull + \end{center} +\end{frame} + +\frame +{ + \frametitle{Ende} + \begin{block}{Das war's} + Viel Spaß - Mehr Infos gibt's auf http://www.nico.schottelius.org/software/cdist/\\ + und http://l.schottelius.org/pipermail/cdist + \end{block} +} + + +\end{document} diff --git a/lib/cdist/__init__.py b/lib/cdist/__init__.py new file mode 100644 index 00000000..85892fec --- /dev/null +++ b/lib/cdist/__init__.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +BANNER = """ + .. . .x+=:. s + dF @88> z` ^% :8 + '88bu. %8P . . +# +# + +import logging +import sys + +import cdist + +log = logging.getLogger(__name__) + + +def banner(args): + """Guess what :-)""" + print(cdist.BANNER) diff --git a/lib/cdist/config.py b/lib/cdist/config.py new file mode 100644 index 00000000..9af25b75 --- /dev/null +++ b/lib/cdist/config.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import cdist.config_install + +class Config(cdist.config_install.ConfigInstall): + pass diff --git a/lib/cdist/config_install.py b/lib/cdist/config_install.py new file mode 100644 index 00000000..2d2ab949 --- /dev/null +++ b/lib/cdist/config_install.py @@ -0,0 +1,155 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import logging +import os +import stat +import shutil +import sys +import tempfile +import time + +import cdist +from cdist import core + + +class ConfigInstall(object): + """Cdist main class to hold arbitrary data""" + + def __init__(self, context): + + self.context = context + self.log = logging.getLogger(self.context.target_host) + + # For easy access + self.local = context.local + self.remote = context.remote + + # Initialise local directory structure + self.local.create_directories() + # Initialise remote directory structure + self.remote.create_directories() + + self.explorer = core.Explorer(self.context.target_host, self.local, self.remote) + self.manifest = core.Manifest(self.context.target_host, self.local) + self.code = core.Code(self.context.target_host, self.local, self.remote) + + def cleanup(self): + # FIXME: move to local? + destination = os.path.join(self.local.cache_path, self.context.target_host) + self.log.debug("Saving " + self.local.out_path + " to " + destination) + if os.path.exists(destination): + shutil.rmtree(destination) + shutil.move(self.local.out_path, destination) + + def deploy_to(self): + """Mimic the old deploy to: Deploy to one host""" + self.stage_prepare() + self.stage_run() + + def deploy_and_cleanup(self): + """Do what is most often done: deploy & cleanup""" + start_time = time.time() + self.deploy_to() + self.cleanup() + self.log.info("Finished successful run in %s seconds", + time.time() - start_time) + + def stage_prepare(self): + """Do everything for a deploy, minus the actual code stage""" + self.local.link_emulator(self.context.exec_path) + self.explorer.run_global_explorers(self.local.global_explorer_out_path) + self.manifest.run_initial_manifest(self.context.initial_manifest) + + self.log.info("Running object manifests and type explorers") + + # Continue process until no new objects are created anymore + new_objects_created = True + while new_objects_created: + new_objects_created = False + for cdist_object in core.Object.list_objects(self.local.object_path, + self.local.type_path): + if cdist_object.state == core.Object.STATE_PREPARED: + self.log.debug("Skipping re-prepare of object %s", cdist_object) + continue + else: + self.object_prepare(cdist_object) + new_objects_created = True + + def object_prepare(self, cdist_object): + """Prepare object: Run type explorer + manifest""" + self.log.info("Running manifest and explorers for " + cdist_object.name) + self.explorer.run_type_explorers(cdist_object) + self.manifest.run_type_manifest(cdist_object) + cdist_object.state = core.Object.STATE_PREPARED + + def object_run(self, cdist_object): + """Run gencode and code for an object""" + self.log.debug("Trying to run object " + cdist_object.name) + if cdist_object.state == core.Object.STATE_RUNNING: + # FIXME: resolve dependency circle / show problem source + raise cdist.Error("Detected circular dependency in " + cdist_object.name) + elif cdist_object.state == core.Object.STATE_DONE: + self.log.debug("Ignoring run of already finished object %s", cdist_object) + return + else: + cdist_object.state = core.Object.STATE_RUNNING + + cdist_type = cdist_object.type + + for requirement in cdist_object.requirements: + self.log.debug("Object %s requires %s", cdist_object, requirement) + required_object = cdist_object.object_from_name(requirement) + + # The user may have created dependencies without satisfying them + if not required_object.exists: + raise cdist.Error(cdist_object.name + " requires non-existing " + required_object.name) + else: + self.log.debug("Required object %s exists", required_object.name) + + self.object_run(required_object) + + # Generate + self.log.info("Generating and executing code for " + cdist_object.name) + cdist_object.code_local = self.code.run_gencode_local(cdist_object) + cdist_object.code_remote = self.code.run_gencode_remote(cdist_object) + if cdist_object.code_local or cdist_object.code_remote: + cdist_object.changed = True + + # Execute + if cdist_object.code_local: + self.code.run_code_local(cdist_object) + if cdist_object.code_remote: + self.code.transfer_code_remote(cdist_object) + self.code.run_code_remote(cdist_object) + + # Mark this object as done + self.log.debug("Finishing run of " + cdist_object.name) + cdist_object.state = core.Object.STATE_DONE + + def stage_run(self): + """The final (and real) step of deployment""" + self.log.info("Generating and executing code") + for cdist_object in core.Object.list_objects(self.local.object_path, + self.local.type_path): + self.log.debug("Run object: %s", cdist_object) + self.object_run(cdist_object) diff --git a/lib/cdist/context.py b/lib/cdist/context.py new file mode 100644 index 00000000..ab8677a7 --- /dev/null +++ b/lib/cdist/context.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import logging +import os +import sys +import tempfile +import shutil + +from cdist.exec import local +from cdist.exec import remote + + +class Context(object): + """Hold information about current context""" + + def __init__(self, + target_host, + initial_manifest=False, + base_path=False, + exec_path=sys.argv[0], + debug=False): + + self.debug = debug + + self.target_host = target_host + + # Only required for testing + self.exec_path = exec_path + + # Context logging + self.log = logging.getLogger(self.target_host) + self.log.addFilter(self) + + # Local base directory + self.base_path = (base_path or + os.path.abspath(os.path.join(os.path.dirname(__file__), + os.pardir, os.pardir))) + + # Local temp directory + # FIXME: if __cdist_out_dir can be given from the outside, the same directory will be used for all hosts + if '__cdist_out_dir' in os.environ: + self.out_path = os.environ['__cdist_out_dir'] + self.temp_dir = None + else: + self.temp_dir = tempfile.mkdtemp() + self.out_path = os.path.join(self.temp_dir, "out") + + self.local = local.Local(self.target_host, self.base_path, self.out_path) + + self.initial_manifest = (initial_manifest or + os.path.join(self.local.manifest_path, "init")) + + # Remote + self.remote_base_path = os.environ.get('__cdist_remote_out_dir', "/var/lib/cdist") + self.remote_exec = os.environ.setdefault('__remote_exec', "ssh -o User=root -q") + self.remote_copy = os.environ.setdefault('__remote_copy', "scp -o User=root -q") + self.remote = remote.Remote(self.target_host, self.remote_base_path, + self.remote_exec, self.remote_copy) + + def cleanup(self): + """Remove temp stuff""" + if self.temp_dir: + shutil.rmtree(self.temp_dir) + + def filter(self, record): + """Add hostname to logs via logging Filter""" + + record.msg = self.target_host + ": " + record.msg + + return True diff --git a/lib/cdist/core/__init__.py b/lib/cdist/core/__init__.py new file mode 100644 index 00000000..c61c659b --- /dev/null +++ b/lib/cdist/core/__init__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +from cdist.core.type import Type +from cdist.core.type import NoSuchTypeError +from cdist.core.object import Object +from cdist.core.object import IllegalObjectIdError +from cdist.core.object import OBJECT_MARKER +from cdist.core.explorer import Explorer +from cdist.core.manifest import Manifest +from cdist.core.code import Code diff --git a/lib/cdist/core/code.py b/lib/cdist/core/code.py new file mode 100644 index 00000000..51912559 --- /dev/null +++ b/lib/cdist/core/code.py @@ -0,0 +1,143 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import logging +import os + +import cdist + +log = logging.getLogger(__name__) + + +''' +common: + runs only locally, does not need remote + + env: + PATH: prepend directory with type emulator symlinks == local.bin_path + __target_host: the target host we are working on + __cdist_manifest: full qualified path of the manifest == script + __cdist_type_base_path: full qualified path to the directory where types are defined for use in type emulator + == local.type_path + +gencode-local + script: full qualified path to a types gencode-local + + env: + __target_host: the target host we are working on + __global: full qualified path to the global output dir == local.out_path + __object: full qualified path to the object's dir + __object_id: the objects id + __object_fq: full qualified object id, iow: $type.name + / + object_id + __type: full qualified path to the type's dir + + returns: string containing the generated code or None + +gencode-remote + script: full qualified path to a types gencode-remote + + env: + __target_host: the target host we are working on + __global: full qualified path to the global output dir == local.out_path + __object: full qualified path to the object's dir + __object_id: the objects id + __object_fq: full qualified object id, iow: $type.name + / + object_id + __type: full qualified path to the type's dir + + returns: string containing the generated code or None + + +code-local + script: full qualified path to object's code-local + - run script localy + returns: string containing the output + +code-remote + script: full qualified path to object's code-remote + - copy script to remote + - run script remotely + returns: string containing the output +''' + + +class Code(object): + """Generates and executes cdist code scripts. + + """ + def __init__(self, target_host, local, remote): + self.target_host = target_host + self.local = local + self.remote = remote + self.env = { + '__target_host': self.target_host, + '__global': self.local.out_path, + } + + if log.getEffectiveLevel() == logging.DEBUG: + self.env.update({'__debug': "yes" }) + + def _run_gencode(self, cdist_object, which): + cdist_type = cdist_object.type + script = os.path.join(self.local.type_path, getattr(cdist_type, 'gencode_%s_path' % which)) + if os.path.isfile(script): + env = os.environ.copy() + env.update(self.env) + env.update({ + '__type': cdist_object.type.absolute_path, + '__object': cdist_object.absolute_path, + '__object_id': cdist_object.object_id, + '__object_name': cdist_object.name, + '__self': cdist_object.name, + }) + return self.local.run_script(script, env=env, return_output=True) + + def run_gencode_local(self, cdist_object): + """Run the gencode-local script for the given cdist object.""" + return self._run_gencode(cdist_object, 'local') + + def run_gencode_remote(self, cdist_object): + """Run the gencode-remote script for the given cdist object.""" + return self._run_gencode(cdist_object, 'remote') + + def transfer_code_remote(self, cdist_object): + """Transfer the code_remote script for the given object to the remote side.""" + source = os.path.join(self.local.object_path, cdist_object.code_remote_path) + destination = os.path.join(self.remote.object_path, cdist_object.code_remote_path) + # FIXME: BUG: do not create destination, but top level of destination! + # FIXME: BUG2: we are called AFTER the code-remote has been transferred already: + # mkdir: cannot create directory `/var/lib/cdist/object/__directory/etc/acpi/actions/.cdist/code-remote': File exists + # OR: this is from previous run -> cleanup missing! + self.remote.mkdir(destination) + self.remote.transfer(source, destination) + + def _run_code(self, cdist_object, which): + which_exec = getattr(self, which) + script = os.path.join(which_exec.object_path, getattr(cdist_object, 'code_%s_path' % which)) + return which_exec.run_script(script) + + def run_code_local(self, cdist_object): + """Run the code-local script for the given cdist object.""" + return self._run_code(cdist_object, 'local') + + def run_code_remote(self, cdist_object): + """Run the code-remote script for the given cdist object on the remote side.""" + return self._run_code(cdist_object, 'remote') diff --git a/lib/cdist/core/explorer.py b/lib/cdist/core/explorer.py new file mode 100644 index 00000000..01c4c81d --- /dev/null +++ b/lib/cdist/core/explorer.py @@ -0,0 +1,164 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import logging +import os + +import cdist + +''' +common: + runs only remotely, needs local and remote to construct paths + + env: + __explorer: full qualified path to other global explorers on remote side + -> remote.global_explorer_path + +a global explorer is: + - a script + - executed on the remote side + - returns its output as a string + + env: + + creates: nothing, returns output + +type explorer is: + - a script + - executed on the remote side for each object instance + - returns its output as a string + + env: + __object: full qualified path to the object's remote dir + __object_id: the objects id + __object_fq: full qualified object id, iow: $type.name + / + object_id + __type_explorer: full qualified path to the other type explorers on remote side + + creates: nothing, returns output + +''' + + +class Explorer(object): + """Executes cdist explorers. + + """ + def __init__(self, target_host, local, remote): + self.target_host = target_host + + self.log = logging.getLogger(target_host) + + self.local = local + self.remote = remote + self.env = { + '__target_host': self.target_host, + '__explorer': self.remote.global_explorer_path, + } + if self.log.getEffectiveLevel() == logging.DEBUG: + self.env.update({'__debug': "yes" }) + self._type_explorers_transferred = [] + + ### global + + def list_global_explorer_names(self): + """Return a list of global explorer names.""" + return os.listdir(self.local.global_explorer_path) + + def run_global_explorers(self, out_path): + """Run global explorers and save output to files in the given + out_path directory. + + """ + self.log.info("Running global explorers") + self.transfer_global_explorers() + for explorer in self.list_global_explorer_names(): + output = self.run_global_explorer(explorer) + path = os.path.join(out_path, explorer) + with open(path, 'w') as fd: + fd.write(output) + + def transfer_global_explorers(self): + """Transfer the global explorers to the remote side.""" + self.remote.mkdir(self.remote.global_explorer_path) + self.remote.transfer(self.local.global_explorer_path, self.remote.global_explorer_path) + + def run_global_explorer(self, explorer): + """Run the given global explorer and return it's output.""" + script = os.path.join(self.remote.global_explorer_path, explorer) + return self.remote.run_script(script, env=self.env, return_output=True) + + ### type + + def list_type_explorer_names(self, cdist_type): + """Return a list of explorer names for the given type.""" + source = os.path.join(self.local.type_path, cdist_type.explorer_path) + try: + return os.listdir(source) + except EnvironmentError: + return [] + + def run_type_explorers(self, cdist_object): + """Run the type explorers for the given object and save their output + in the object. + + """ + self.log.debug("Transfering type explorers for type: %s", cdist_object.type) + self.transfer_type_explorers(cdist_object.type) + self.log.debug("Transfering object parameters for object: %s", cdist_object.name) + self.transfer_object_parameters(cdist_object) + for explorer in self.list_type_explorer_names(cdist_object.type): + output = self.run_type_explorer(explorer, cdist_object) + self.log.debug("Running type explorer '%s' for object '%s'", explorer, cdist_object.name) + cdist_object.explorers[explorer] = output + + def transfer_type_explorers(self, cdist_type): + """Transfer the type explorers for the given type to the remote side.""" + if cdist_type.explorers: + if cdist_type.name in self._type_explorers_transferred: + self.log.debug("Skipping retransfer of type explorers for: %s", cdist_type) + else: + source = os.path.join(self.local.type_path, cdist_type.explorer_path) + destination = os.path.join(self.remote.type_path, cdist_type.explorer_path) + self.remote.mkdir(destination) + self.remote.transfer(source, destination) + self._type_explorers_transferred.append(cdist_type.name) + + def transfer_object_parameters(self, cdist_object): + """Transfer the parameters for the given object to the remote side.""" + if cdist_object.parameters: + source = os.path.join(self.local.object_path, cdist_object.parameter_path) + destination = os.path.join(self.remote.object_path, cdist_object.parameter_path) + self.remote.mkdir(destination) + self.remote.transfer(source, destination) + + def run_type_explorer(self, explorer, cdist_object): + """Run the given type explorer for the given object and return it's output.""" + cdist_type = cdist_object.type + env = self.env.copy() + env.update({ + '__object': os.path.join(self.remote.object_path, cdist_object.path), + '__object_id': cdist_object.object_id, + '__object_fq': cdist_object.path, + '__type_explorer': os.path.join(self.remote.type_path, cdist_type.explorer_path) + }) + script = os.path.join(self.remote.type_path, cdist_type.explorer_path, explorer) + return self.remote.run_script(script, env=env, return_output=True) diff --git a/lib/cdist/core/manifest.py b/lib/cdist/core/manifest.py new file mode 100644 index 00000000..704a3978 --- /dev/null +++ b/lib/cdist/core/manifest.py @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import logging +import os + +import cdist + +''' +common: + runs only locally, does not need remote + + env: + PATH: prepend directory with type emulator symlinks == local.bin_path + __target_host: the target host we are working on + __global: full qualified path to the global output dir == local.out_path + __cdist_manifest: full qualified path of the manifest == script + __cdist_type_base_path: full qualified path to the directory where types are defined for use in type emulator + == local.type_path + +initial manifest is: + script: full qualified path to the initial manifest + + env: + __manifest: path to .../conf/manifest/ == local.manifest_path + + creates: new objects through type emulator + +type manifeste is: + script: full qualified path to the type manifest + + env: + __object: full qualified path to the object's dir + __object_id: the objects id + __object_fq: full qualified object id, iow: $type.name + / + object_id + __type: full qualified path to the type's dir + + creates: new objects through type emulator +''' + + +class Manifest(object): + """Executes cdist manifests. + + """ + def __init__(self, target_host, local): + self.target_host = target_host + self.local = local + + self.log = logging.getLogger(self.target_host) + + self.env = { + 'PATH': "%s:%s" % (self.local.bin_path, os.environ['PATH']), + '__target_host': self.target_host, + '__global': self.local.out_path, + '__cdist_type_base_path': self.local.type_path, # for use in type emulator + } + if self.log.getEffectiveLevel() == logging.DEBUG: + self.env.update({'__cdist_debug': "yes" }) + + + def run_initial_manifest(self, script): + env = os.environ.copy() + env.update(self.env) + env['__manifest'] = self.local.manifest_path + env['__cdist_manifest'] = script + self.log.info("Running initial manifest " + self.local.manifest_path) + self.local.run_script(script, env=env) + + def run_type_manifest(self, cdist_object): + script = os.path.join(self.local.type_path, cdist_object.type.manifest_path) + if os.path.isfile(script): + env = os.environ.copy() + env.update(self.env) + env.update({ + '__object': cdist_object.absolute_path, + '__object_id': cdist_object.object_id, + '__object_name': cdist_object.name, + '__self': cdist_object.name, + '__type': cdist_object.type.absolute_path, + '__cdist_manifest': script, + }) + self.local.run_script(script, env=env) diff --git a/lib/cdist/core/object.py b/lib/cdist/core/object.py new file mode 100644 index 00000000..9abb11eb --- /dev/null +++ b/lib/cdist/core/object.py @@ -0,0 +1,172 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import logging +import os +import collections + +import cdist +import cdist.core +from cdist.util import fsproperty + +log = logging.getLogger(__name__) + +OBJECT_MARKER = '.cdist' + + +class IllegalObjectIdError(cdist.Error): + def __init__(self, object_id, message=None): + self.object_id = object_id + self.message = message or 'Illegal object id' + + def __str__(self): + return '%s: %s' % (self.message, self.object_id) + + +class Object(object): + """Represents a cdist object. + + All interaction with objects in cdist should be done through this class. + Directly accessing an object through the file system from python code is + a bug. + + """ + + # Constants for use with Object.state + STATE_PREPARED = "prepared" + STATE_RUNNING = "running" + STATE_DONE = "done" + + @classmethod + def list_objects(cls, object_base_path, type_base_path): + """Return a list of object instances""" + for object_name in cls.list_object_names(object_base_path): + type_name, object_id = cls.split_name(object_name) + yield cls(cdist.core.Type(type_base_path, type_name), object_base_path, object_id=object_id) + + @classmethod + def list_type_names(cls, object_base_path): + """Return a list of type names""" + return os.listdir(object_base_path) + + @classmethod + def list_object_names(cls, object_base_path): + """Return a list of object names""" + for path, dirs, files in os.walk(object_base_path): + if OBJECT_MARKER in dirs: + yield os.path.relpath(path, object_base_path) + + @staticmethod + def split_name(object_name): + """split_name('__type_name/the/object_id') -> ('__type_name', 'the/object_id') + + Split the given object name into it's type and object_id parts. + + """ + type_name = object_name.split(os.sep)[0] + # FIXME: allow object without object_id? e.g. for singleton + object_id = os.sep.join(object_name.split(os.sep)[1:]) + return type_name, object_id + + @staticmethod + def join_name(type_name, object_id): + """join_name('__type_name', 'the/object_id') -> __type_name/the/object_id' + + Join the given type_name and object_id into an object name. + + """ + return os.path.join(type_name, object_id) + + def __init__(self, cdist_type, base_path, object_id=None): + if object_id: + if object_id.startswith('/'): + raise IllegalObjectIdError(object_id, 'object_id may not start with /') + if OBJECT_MARKER in object_id.split(os.sep): + raise IllegalObjectIdError(object_id, 'object_id may not contain \'%s\'' % OBJECT_MARKER) + self.type = cdist_type # instance of Type + self.base_path = base_path + self.object_id = object_id + self.name = self.join_name(self.type.name, self.object_id) + self.path = os.path.join(self.type.path, self.object_id, OBJECT_MARKER) + self.absolute_path = os.path.join(self.base_path, self.path) + self.code_local_path = os.path.join(self.path, "code-local") + self.code_remote_path = os.path.join(self.path, "code-remote") + self.parameter_path = os.path.join(self.path, "parameter") + + def __repr__(self): + return '' % self.name + + def __eq__(self, other): + """define equality as 'attributes are the same'""" + return self.__dict__ == other.__dict__ + + def __lt__(self, other): + return isinstance(other, self.__class__) and self.name < other.name + + def object_from_name(self, object_name): + """Convenience method for creating an object instance from an object name. + + Mainly intended to create objects when resolving requirements. + + e.g: + .object_from_name('__other/object') -> + + """ + type_path = self.type.base_path + base_path = self.base_path + type_name, object_id = self.split_name(object_name) + return self.__class__(self.type.__class__(type_path, type_name), base_path, object_id=object_id) + + # FIXME: still needed? + @property + def explorer_path(self): + """Create and return the relative path to this objects explorers""" + # create absolute path + path = os.path.join(self.absolute_path, "explorer") + if not os.path.isdir(path): + os.mkdir(path) + # return relative path + return os.path.join(self.path, "explorer") + + requirements = fsproperty.FileListProperty(lambda obj: os.path.join(obj.absolute_path, 'require')) + parameters = fsproperty.DirectoryDictProperty(lambda obj: os.path.join(obj.base_path, obj.parameter_path)) + explorers = fsproperty.DirectoryDictProperty(lambda obj: os.path.join(obj.base_path, obj.explorer_path)) + changed = fsproperty.FileBooleanProperty(lambda obj: os.path.join(obj.absolute_path, "changed")) + state = fsproperty.FileStringProperty(lambda obj: os.path.join(obj.absolute_path, "state")) + source = fsproperty.FileListProperty(lambda obj: os.path.join(obj.absolute_path, "source")) + code_local = fsproperty.FileStringProperty(lambda obj: os.path.join(obj.base_path, obj.code_local_path)) + code_remote = fsproperty.FileStringProperty(lambda obj: os.path.join(obj.base_path, obj.code_remote_path)) + + @property + def exists(self): + """Checks wether this cdist object exists on the file systems.""" + return os.path.exists(self.absolute_path) + + def create(self): + """Create this cdist object on the filesystem. + """ + try: + os.makedirs(self.absolute_path, exist_ok=False) + absolute_parameter_path = os.path.join(self.base_path, self.parameter_path) + os.makedirs(absolute_parameter_path, exist_ok=False) + except EnvironmentError as error: + raise cdist.Error('Error creating directories for cdist object: %s: %s' % (self, error)) diff --git a/lib/cdist/core/type.py b/lib/cdist/core/type.py new file mode 100644 index 00000000..20365b8d --- /dev/null +++ b/lib/cdist/core/type.py @@ -0,0 +1,146 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os + +import cdist + + +class NoSuchTypeError(cdist.Error): + def __init__(self, type_path, type_absolute_path): + self.type_path = type_path + self.type_absolute_path = type_absolute_path + + def __str__(self): + return "Type '%s' does not exist at %s" % (self.type_path, self.type_absolute_path) + + +class Type(object): + """Represents a cdist type. + + All interaction with types in cdist should be done through this class. + Directly accessing an type through the file system from python code is + a bug. + + """ + + @classmethod + def list_types(cls, base_path): + """Return a list of type instances""" + for name in cls.list_type_names(base_path): + yield cls(base_path, name) + + @classmethod + def list_type_names(cls, base_path): + """Return a list of type names""" + return os.listdir(base_path) + + + _instances = {} + def __new__(cls, *args, **kwargs): + """only one instance of each named type may exist""" + # name is second argument + name = args[1] + if not name in cls._instances: + instance = super(Type, cls).__new__(cls) + cls._instances[name] = instance + # return instance so __init__ is called + return cls._instances[name] + + def __init__(self, base_path, name): + self.base_path = base_path + self.name = name + self.path = self.name + self.absolute_path = os.path.join(self.base_path, self.path) + if not os.path.isdir(self.absolute_path): + raise NoSuchTypeError(self.path, self.absolute_path) + self.manifest_path = os.path.join(self.name, "manifest") + self.explorer_path = os.path.join(self.name, "explorer") + self.gencode_local_path = os.path.join(self.name, "gencode-local") + self.gencode_remote_path = os.path.join(self.name, "gencode-remote") + self.manifest_path = os.path.join(self.name, "manifest") + + self.__explorers = None + self.__required_parameters = None + self.__optional_parameters = None + + def __repr__(self): + return '' % self.name + + def __eq__(self, other): + return isinstance(other, self.__class__) and self.name == other.name + + def __lt__(self, other): + return isinstance(other, self.__class__) and self.name < other.name + + @property + def is_singleton(self): + """Check whether a type is a singleton.""" + return os.path.isfile(os.path.join(self.absolute_path, "singleton")) + + @property + def is_install(self): + """Check whether a type is used for installation (if not: for configuration)""" + return os.path.isfile(os.path.join(self.absolute_path, "install")) + + @property + def explorers(self): + """Return a list of available explorers""" + if not self.__explorers: + try: + self.__explorers = os.listdir(os.path.join(self.absolute_path, "explorer")) + except EnvironmentError: + # error ignored + self.__explorers = [] + return self.__explorers + + @property + def required_parameters(self): + """Return a list of required parameters""" + if not self.__required_parameters: + parameters = [] + try: + with open(os.path.join(self.absolute_path, "parameter", "required")) as fd: + for line in fd: + parameters.append(line.strip()) + except EnvironmentError: + # error ignored + pass + finally: + self.__required_parameters = parameters + return self.__required_parameters + + @property + def optional_parameters(self): + """Return a list of optional parameters""" + if not self.__optional_parameters: + parameters = [] + try: + with open(os.path.join(self.absolute_path, "parameter", "optional")) as fd: + for line in fd: + parameters.append(line.strip()) + except EnvironmentError: + # error ignored + pass + finally: + self.__optional_parameters = parameters + return self.__optional_parameters diff --git a/lib/cdist/emulator.py b/lib/cdist/emulator.py new file mode 100644 index 00000000..bb67e7ee --- /dev/null +++ b/lib/cdist/emulator.py @@ -0,0 +1,195 @@ +# -*- coding: utf-8 -*- +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import argparse +import logging +import os + +import cdist +from cdist import core + + +class IllegalRequirementError(cdist.Error): + def __init__(self, requirement, message=None): + self.requirement = requirement + self.message = message or 'Illegal requirement' + + def __str__(self): + return '%s: %s' % (self.message, self.requirement) + +class Emulator(object): + def __init__(self, argv): + self.argv = argv + self.object_id = False + + self.global_path = os.environ['__global'] + self.object_source = os.environ['__cdist_manifest'] + self.target_host = os.environ['__target_host'] + self.type_base_path = os.environ['__cdist_type_base_path'] + + self.object_base_path = os.path.join(self.global_path, "object") + + self.type_name = os.path.basename(argv[0]) + self.cdist_type = core.Type(self.type_base_path, self.type_name) + + self.__init_log() + + def filter(self, record): + """Add hostname and object to logs via logging Filter""" + + prefix = self.target_host + ": (emulator)" + + if self.object_id: + prefix = prefix + " " + self.type_name + "/" + self.object_id + + record.msg = prefix + ": " + record.msg + + return True + + def run(self): + """Emulate type commands (i.e. __file and co)""" + + if '__install' in os.environ: + if not self.cdist_type.is_install: + self.log.debug("Running in install mode, ignoring non install type") + return True + + self.commandline() + self.setup_object() + self.record_requirements() + self.record_auto_requirements() + self.log.debug("Finished %s %s" % (self.cdist_object.path, self.parameters)) + + def __init_log(self): + """Setup logging facility""" + logformat = '%(levelname)s: %(message)s' + logging.basicConfig(format=logformat) + + if '__cdist_debug' in os.environ: + logging.root.setLevel(logging.DEBUG) + else: + logging.root.setLevel(logging.INFO) + + self.log = logging.getLogger(__name__) + self.log.addFilter(self) + + def commandline(self): + """Parse command line""" + + parser = argparse.ArgumentParser(add_help=False) + + for parameter in self.cdist_type.optional_parameters: + argument = "--" + parameter + parser.add_argument(argument, dest=parameter, action='store', required=False) + for parameter in self.cdist_type.required_parameters: + argument = "--" + parameter + parser.add_argument(argument, dest=parameter, action='store', required=True) + + # If not singleton support one positional parameter + if not self.cdist_type.is_singleton: + parser.add_argument("object_id", nargs=1) + + # And finally parse/verify parameter + self.args = parser.parse_args(self.argv[1:]) + self.log.debug('Args: %s' % self.args) + + + def setup_object(self): + # FIXME: verify object id + + # Setup object_id + if self.cdist_type.is_singleton: + self.object_id = "singleton" + else: + self.object_id = self.args.object_id[0] + del self.args.object_id + + # strip leading slash from object_id + self.object_id = self.object_id.lstrip('/') + + # Instantiate the cdist object we are defining + self.cdist_object = core.Object(self.cdist_type, self.object_base_path, self.object_id) + + # Create object with given parameters + self.parameters = {} + for key,value in vars(self.args).items(): + if value is not None: + self.parameters[key] = value + + if self.cdist_object.exists: + if self.cdist_object.parameters != self.parameters: + raise cdist.Error("Object %s already exists with conflicting parameters:\n%s: %s\n%s: %s" + % (self.cdist_object, " ".join(self.cdist_object.source), self.cdist_object.parameters, self.object_source, self.parameters) + ) + else: + self.cdist_object.create() + self.cdist_object.parameters = self.parameters + + def record_requirements(self): + """record requirements""" + + if "require" in os.environ: + requirements = os.environ['require'] + self.log.debug("reqs = " + requirements) + for requirement in requirements.split(" "): + # Ignore empty fields - probably the only field anyway + if len(requirement) == 0: + continue + + self.log.debug("Recording requirement: " + requirement) + requirement_parts = requirement.split(os.sep, 1) + requirement_type_name = requirement_parts[0] + try: + requirement_object_id = requirement_parts[1] + except IndexError: + # no object id, assume singleton + requirement_object_id = 'singleton' + + # Remove leading / from object id + requirement_object_id = requirement_object_id.lstrip('/') + + # Instantiate type which fails if type does not exist + requirement_type = core.Type(self.type_base_path, requirement_type_name) + + if requirement_object_id == 'singleton' \ + and not requirement_type.is_singleton: + raise IllegalRequirementError(requirement, "Missing object_id and type is not a singleton.") + + # Instantiate object which fails if the object_id is illegal + requirement_object = core.Object(requirement_type, self.object_base_path, requirement_object_id) + + # Construct cleaned up requirement with only one / :-) + requirement = requirement_type_name + '/' + requirement_object_id + self.cdist_object.requirements.append(requirement) + + # Record / Append source + self.cdist_object.source.append(self.object_source) + + def record_auto_requirements(self): + """An object shall automatically depend on all objects that it defined in it's type manifest. + """ + # __object_name is the name of the object whose type manifest is currenlty executed + __object_name = os.environ.get('__object_name', None) + if __object_name: + _object = self.cdist_object.object_from_name(__object_name) + # prevent circular dependencies + if not _object.name in self.cdist_object.requirements: + _object.requirements.append(self.cdist_object.name) diff --git a/lib/cdist/exec/__init__.py b/lib/cdist/exec/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/exec/local.py b/lib/cdist/exec/local.py new file mode 100644 index 00000000..613f5cf2 --- /dev/null +++ b/lib/cdist/exec/local.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +# FIXME: common base class with Remote? + +import io +import os +import sys +import subprocess +import shutil +import logging + +import cdist +from cdist import core + + +class LocalScriptError(cdist.Error): + def __init__(self, script, command, script_content): + self.script = script + self.command = command + self.script_content = script_content + + def __str__(self): + plain_command = " ".join(self.command) + return "Local script execution failed: %s" % plain_command + + +class Local(object): + """Execute commands locally. + + All interaction with the local side should be done through this class. + Directly accessing the local side from python code is a bug. + + """ + def __init__(self, target_host, local_base_path, out_path): + self.target_host = target_host + self.base_path = local_base_path + + # Local input + self.cache_path = os.path.join(self.base_path, "cache") + self.conf_path = os.path.join(self.base_path, "conf") + self.global_explorer_path = os.path.join(self.conf_path, "explorer") + self.manifest_path = os.path.join(self.conf_path, "manifest") + self.type_path = os.path.join(self.conf_path, "type") + # FIXME: should not be needed anywhere + self.lib_path = os.path.join(self.base_path, "lib") + + # Local output + self.out_path = out_path + self.bin_path = os.path.join(self.out_path, "bin") + self.global_explorer_out_path = os.path.join(self.out_path, "explorer") + self.object_path = os.path.join(self.out_path, "object") + + self.log = logging.getLogger(self.target_host) + + def create_directories(self): + self.mkdir(self.out_path) + self.mkdir(self.global_explorer_out_path) + self.mkdir(self.bin_path) + + def rmdir(self, path): + """Remove directory on the local side.""" + self.log.debug("Local rmdir: %s", path) + shutil.rmtree(path) + + def mkdir(self, path): + """Create directory on the local side.""" + self.log.debug("Local mkdir: %s", path) + # FIXME: dont set mode here, fix unittest mkdtemp instead + os.makedirs(path, mode=0o700, exist_ok=True) + + def run(self, command, env=None, return_output=False): + """Run the given command with the given environment. + Return the output as a string. + + """ + assert isinstance(command, (list, tuple)), "list or tuple argument expected, got: %s" % command + self.log.debug("Local run: %s", command) + + if env is None: + env = os.environ.copy() + # Export __target_host for use in __remote_{copy,exec} scripts + env['__target_host'] = self.target_host + + try: + if return_output: + return subprocess.check_output(command, env=env).decode() + else: + subprocess.check_call(command, env=env) + except subprocess.CalledProcessError: + raise cdist.Error("Command failed: " + " ".join(command)) + except OSError as error: + raise cdist.Error(" ".join(*args) + ": " + error.args[1]) + + def run_script(self, script, env=None, return_output=False): + """Run the given script with the given environment. + Return the output as a string. + + """ + command = ["/bin/sh", "-e"] + command.append(script) + + self.log.debug("Local run script: %s", command) + + if env is None: + env = os.environ.copy() + # Export __target_host for use in __remote_{copy,exec} scripts + env['__target_host'] = self.target_host + + self.log.debug("Local run script env: %s", env) + + try: + if return_output: + return subprocess.check_output(command, env=env).decode() + else: + subprocess.check_call(command, env=env) + except subprocess.CalledProcessError as error: + script_content = self.run(["cat", script], return_output=True) + self.log.error("Code that raised the error:\n%s", script_content) + raise LocalScriptError(script, command, script_content) + except EnvironmentError as error: + raise cdist.Error(" ".join(command) + ": " + error.args[1]) + + def link_emulator(self, exec_path): + """Link emulator to types""" + src = os.path.abspath(exec_path) + for cdist_type in core.Type.list_types(self.type_path): + dst = os.path.join(self.bin_path, cdist_type.name) + self.log.debug("Linking emulator: %s to %s", src, dst) + + try: + os.symlink(src, dst) + except OSError as e: + raise cdist.Error("Linking emulator from " + src + " to " + dst + " failed: " + e.__str__()) diff --git a/lib/cdist/exec/remote.py b/lib/cdist/exec/remote.py new file mode 100644 index 00000000..87db7273 --- /dev/null +++ b/lib/cdist/exec/remote.py @@ -0,0 +1,173 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +# FIXME: common base class with Local? + +import io +import os +import sys +import subprocess +import logging + +import cdist + + +class RemoteScriptError(cdist.Error): + def __init__(self, script, command, script_content): + self.script = script + self.command = command + self.script_content = script_content + + def __str__(self): + plain_command = " ".join(self.command) + return "Remote script execution failed: %s" % plain_command + +class DecodeError(cdist.Error): + def __init__(self, command): + self.command = command + + def __str__(self): + return "Cannot decode output of " + " ".join(self.command) + + +class Remote(object): + """Execute commands remotely. + + All interaction with the remote side should be done through this class. + Directly accessing the remote side from python code is a bug. + + """ + def __init__(self, target_host, remote_base_path, remote_exec, remote_copy): + self.target_host = target_host + self.base_path = remote_base_path + self._exec = remote_exec + self._copy = remote_copy + + self.conf_path = os.path.join(self.base_path, "conf") + self.object_path = os.path.join(self.base_path, "object") + + self.type_path = os.path.join(self.conf_path, "type") + self.global_explorer_path = os.path.join(self.conf_path, "explorer") + + self.log = logging.getLogger(self.target_host) + + def create_directories(self): + self.rmdir(self.base_path) + self.mkdir(self.base_path) + self.mkdir(self.conf_path) + + def rmdir(self, path): + """Remove directory on the remote side.""" + self.log.debug("Remote rmdir: %s", path) + self.run(["rm", "-rf", path]) + + def mkdir(self, path): + """Create directory on the remote side.""" + self.log.debug("Remote mkdir: %s", path) + self.run(["mkdir", "-p", path]) + + def transfer(self, source, destination): + """Transfer a file or directory to the remote side.""" + self.log.debug("Remote transfer: %s -> %s", source, destination) + self.rmdir(destination) + command = self._copy.split() + command.extend(["-r", source, self.target_host + ":" + destination]) + self._run_command(command) + + def run(self, command, env=None, return_output=False): + """Run the given command with the given environment on the remote side. + Return the output as a string. + + """ + # prefix given command with remote_exec + cmd = self._exec.split() + cmd.append(self.target_host) + cmd.extend(command) + return self._run_command(cmd, env=env, return_output=return_output) + + def _run_command(self, command, env=None, return_output=False): + """Run the given command with the given environment. + Return the output as a string. + + """ + assert isinstance(command, (list, tuple)), "list or tuple argument expected, got: %s" % command + + # export target_host for use in __remote_{exec,copy} scripts + os_environ = os.environ.copy() + os_environ['__target_host'] = self.target_host + + # can't pass environment to remote side, so prepend command with + # variable declarations + if env: + cmd = ["%s=%s" % item for item in env.items()] + cmd.extend(command) + else: + cmd = command + + self.log.debug("Remote run: %s", command) + try: + if return_output: + return subprocess.check_output(command, env=os_environ).decode() + else: + subprocess.check_call(command, env=os_environ) + except subprocess.CalledProcessError: + raise cdist.Error("Command failed: " + " ".join(command)) + except OSError as error: + raise cdist.Error(" ".join(*args) + ": " + error.args[1]) + except UnicodeDecodeError: + raise DecodeError(command) + + def run_script(self, script, env=None, return_output=False): + """Run the given script with the given environment on the remote side. + Return the output as a string. + + """ + command = self._exec.split() + command.append(self.target_host) + + # export target_host for use in __remote_{exec,copy} scripts + os_environ = os.environ.copy() + os_environ['__target_host'] = self.target_host + + # can't pass environment to remote side, so prepend command with + # variable declarations + if env: + command.extend(["%s=%s" % item for item in env.items()]) + + command.extend(["/bin/sh", "-e"]) + command.append(script) + + self.log.debug("Remote run script: %s", command) + if env: + self.log.debug("Remote run script env: %s", env) + + try: + if return_output: + return subprocess.check_output(command, env=os_environ).decode() + else: + subprocess.check_call(command, env=os_environ) + except subprocess.CalledProcessError as error: + script_content = self.run(["cat", script], return_output=True) + self.log.error("Code that raised the error:\n%s", script_content) + raise RemoteScriptError(script, command, script_content) + except EnvironmentError as error: + raise cdist.Error(" ".join(command) + ": " + error.args[1]) diff --git a/bin/cdist-manifest-run-init b/lib/cdist/install.py old mode 100755 new mode 100644 similarity index 64% rename from bin/cdist-manifest-run-init rename to lib/cdist/install.py index 28acc623..0f06f5e7 --- a/bin/cdist-manifest-run-init +++ b/lib/cdist/install.py @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- # # 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) # @@ -17,18 +18,16 @@ # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # -# -# Let's build a cconfig tree from a configuration -# And save it into the cache tree # -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -e +import os +import cdist.config_install -__cdist_target_host="$1"; shift +class Install(cdist.config_install.ConfigInstall): + def __init__(self, *args, **kargs): + """Enhance config install with install support""" -eval export $__cdist_name_var_manifest=\"\$__cdist_manifest_dir\" + # Setup environ to be used in emulator + os.environ['__install'] = "yes" -__cdist_echo info "Running initial manifest for $__cdist_target_host " -cdist-manifest-run "$__cdist_target_host" "$__cdist_manifest_init" + super().__init__(*args, **kargs) diff --git a/bin/cdist-cache b/lib/cdist/test/__init__.py old mode 100755 new mode 100644 similarity index 54% rename from bin/cdist-cache rename to lib/cdist/test/__init__.py index ee27ffb4..faa9dc2d --- a/bin/cdist-cache +++ b/lib/cdist/test/__init__.py @@ -1,6 +1,6 @@ -#!/bin/sh +# -*- coding: utf-8 -*- # -# 2010 Nico Schottelius (nico-cdist at schottelius.org) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) # # This file is part of cdist. # @@ -17,23 +17,22 @@ # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # -# -# Let's build a cconfig tree from a configuration -# And save it into the cache tree # -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -u +import os +import unittest +import tempfile -__cdist_target_host="$1"; shift +cdist_base_path = os.path.abspath( + os.path.join(os.path.dirname(os.path.realpath(__file__)), "../../../")) -# Create base to move into -mkdir -p "${__cdist_local_base_cache_dir}" +cdist_exec_path = os.path.join(cdist_base_path, "bin/cdist") -# Now determine absolute path -__cdist_ddir="$(__cdist_host_cache_dir "$__cdist_target_host")" -__cdist_echo info "Saving cache to $__cdist_ddir " -rm -rf "$__cdist_ddir" -mv "$__cdist_local_base_dir" "$__cdist_ddir" +class CdistTestCase(unittest.TestCase): + + def mkdtemp(self, **kwargs): + return tempfile.mkdtemp(prefix='tmp.cdist.test.', **kwargs) + + def mkstemp(self, **kwargs): + return tempfile.mkstemp(prefix='tmp.cdist.test.', **kwargs) diff --git a/lib/cdist/test/__main__.py b/lib/cdist/test/__main__.py new file mode 100644 index 00000000..08e839d1 --- /dev/null +++ b/lib/cdist/test/__main__.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import imp +import os +import sys +import unittest + +base_dir = os.path.dirname(os.path.realpath(__file__)) + +test_modules = [] +for possible_test in os.listdir(base_dir): + filename = "__init__.py" + mod_path = os.path.join(base_dir, possible_test, filename) + + if os.path.isfile(mod_path): + test_modules.append(possible_test) + +suites = [] +for test_module in test_modules: + module_parameters = imp.find_module(test_module, [base_dir]) + module = imp.load_module("cdist.test." + test_module, *module_parameters) + + suite = unittest.defaultTestLoader.loadTestsFromModule(module) + # print("Got suite: " + suite.__str__()) + suites.append(suite) + +all_suites = unittest.TestSuite(suites) +unittest.TextTestRunner(verbosity=2).run(all_suites) diff --git a/lib/cdist/test/banner/__init__.py b/lib/cdist/test/banner/__init__.py new file mode 100644 index 00000000..4b0ab6ac --- /dev/null +++ b/lib/cdist/test/banner/__init__.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import io +import sys +import unittest + +import cdist +import cdist.banner + +class Banner(unittest.TestCase): + def setUp(self): + self.banner = cdist.BANNER + "\n" + + def test_banner_output(self): + """Check that printed banner equals saved banner""" + output = io.StringIO() + + sys.stdout = output + + cdist.banner.banner(None) + + self.assertEqual(output.getvalue(), self.banner) diff --git a/lib/cdist/test/code/__init__.py b/lib/cdist/test/code/__init__.py new file mode 100644 index 00000000..2f061086 --- /dev/null +++ b/lib/cdist/test/code/__init__.py @@ -0,0 +1,112 @@ +# -*- coding: utf-8 -*- +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import shutil +import getpass +import logging + +import cdist +from cdist import core +from cdist import test +from cdist.exec import local +from cdist.exec import remote +from cdist.core import code + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') +local_base_path = fixtures + +class CodeTestCase(test.CdistTestCase): + + def setUp(self): + self.target_host = 'localhost' + + self.local_base_path = local_base_path + self.out_path = self.mkdtemp() + self.local = local.Local(self.target_host, self.local_base_path, self.out_path) + self.local.create_directories() + + self.remote_base_path = self.mkdtemp() + self.user = getpass.getuser() + remote_exec = "ssh -o User=%s -q" % self.user + remote_copy = "scp -o User=%s -q" % self.user + self.remote = remote.Remote(self.target_host, self.remote_base_path, remote_exec, remote_copy) + + self.code = code.Code(self.target_host, self.local, self.remote) + + self.cdist_type = core.Type(self.local.type_path, '__dump_environment') + self.cdist_object = core.Object(self.cdist_type, self.local.object_path, 'whatever') + self.cdist_object.create() + + self.log = logging.getLogger("cdist") + + def tearDown(self): + shutil.rmtree(self.out_path) + shutil.rmtree(self.remote_base_path) + + def test_run_gencode_local_environment(self): + output_string = self.code.run_gencode_local(self.cdist_object) + output_dict = {} + for line in output_string.split('\n'): + if line: + junk,value = line.split(': ') + key = junk.split(' ')[1] + output_dict[key] = value + self.assertEqual(output_dict['__target_host'], self.local.target_host) + self.assertEqual(output_dict['__global'], self.local.out_path) + self.assertEqual(output_dict['__type'], self.cdist_type.absolute_path) + self.assertEqual(output_dict['__object'], self.cdist_object.absolute_path) + self.assertEqual(output_dict['__object_id'], self.cdist_object.object_id) + self.assertEqual(output_dict['__object_name'], self.cdist_object.name) + self.assertEqual(output_dict['__self'], self.cdist_object.name) + + def test_run_gencode_remote_environment(self): + output_string = self.code.run_gencode_remote(self.cdist_object) + output_dict = {} + for line in output_string.split('\n'): + if line: + junk,value = line.split(': ') + key = junk.split(' ')[1] + output_dict[key] = value + self.assertEqual(output_dict['__target_host'], self.local.target_host) + self.assertEqual(output_dict['__global'], self.local.out_path) + self.assertEqual(output_dict['__type'], self.cdist_type.absolute_path) + self.assertEqual(output_dict['__object'], self.cdist_object.absolute_path) + self.assertEqual(output_dict['__object_id'], self.cdist_object.object_id) + self.assertEqual(output_dict['__object_name'], self.cdist_object.name) + self.assertEqual(output_dict['__self'], self.cdist_object.name) + + def test_transfer_code_remote(self): + self.cdist_object.code_remote = self.code.run_gencode_remote(self.cdist_object) + self.code.transfer_code_remote(self.cdist_object) + destination = os.path.join(self.remote.object_path, self.cdist_object.code_remote_path) + self.assertTrue(os.path.isfile(destination)) + + def test_run_code_local(self): + self.cdist_object.code_local = self.code.run_gencode_local(self.cdist_object) + self.code.run_code_local(self.cdist_object) + + def test_run_code_remote_environment(self): + self.cdist_object.code_remote = self.code.run_gencode_remote(self.cdist_object) + self.code.transfer_code_remote(self.cdist_object) + self.code.run_code_remote(self.cdist_object) diff --git a/lib/cdist/test/code/fixtures/conf/type/__dump_environment/gencode-local b/lib/cdist/test/code/fixtures/conf/type/__dump_environment/gencode-local new file mode 100755 index 00000000..ed1265c9 --- /dev/null +++ b/lib/cdist/test/code/fixtures/conf/type/__dump_environment/gencode-local @@ -0,0 +1,9 @@ +#!/bin/sh + +echo "echo __target_host: $__target_host" +echo "echo __global: $__global" +echo "echo __type: $__type" +echo "echo __object: $__object" +echo "echo __object_id: $__object_id" +echo "echo __object_name: $__object_name" +echo "echo __self: $__self" diff --git a/lib/cdist/test/code/fixtures/conf/type/__dump_environment/gencode-remote b/lib/cdist/test/code/fixtures/conf/type/__dump_environment/gencode-remote new file mode 120000 index 00000000..7b427cac --- /dev/null +++ b/lib/cdist/test/code/fixtures/conf/type/__dump_environment/gencode-remote @@ -0,0 +1 @@ +gencode-local \ No newline at end of file diff --git a/lib/cdist/test/emulator/__init__.py b/lib/cdist/test/emulator/__init__.py new file mode 100644 index 00000000..5a660755 --- /dev/null +++ b/lib/cdist/test/emulator/__init__.py @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import shutil + +import cdist +from cdist import test +from cdist.exec import local +from cdist import emulator +from cdist import core + +local_base_path = test.cdist_base_path + +class EmulatorTestCase(test.CdistTestCase): + + def setUp(self): + self.orig_environ = os.environ + os.environ = os.environ.copy() + self.temp_dir = self.mkdtemp() + handle, self.script = self.mkstemp(dir=self.temp_dir) + os.close(handle) + self.target_host = 'localhost' + out_path = self.temp_dir + self.local = local.Local(self.target_host, local_base_path, out_path) + self.local.create_directories() + self.env = { + 'PATH': "%s:%s" % (self.local.bin_path, os.environ['PATH']), + '__target_host': self.target_host, + '__global': self.local.out_path, + '__cdist_type_base_path': self.local.type_path, # for use in type emulator + '__manifest': self.local.manifest_path, + '__cdist_manifest': self.script, + } + + def tearDown(self): + os.environ = self.orig_environ + shutil.rmtree(self.temp_dir) + + def test_nonexistent_type_exec(self): + argv = ['__does-not-exist'] + os.environ.update(self.env) + self.assertRaises(core.NoSuchTypeError, emulator.Emulator, argv) + + def test_nonexistent_type_requirement(self): + argv = ['__file', '/tmp/foobar'] + os.environ.update(self.env) + os.environ['require'] = '__does-not-exist/some-id' + emu = emulator.Emulator(argv) + self.assertRaises(core.NoSuchTypeError, emu.run) + + def test_illegal_object_id_requirement(self): + argv = ['__file', '/tmp/foobar'] + os.environ.update(self.env) + os.environ['require'] = '__file/bad/id/with/.cdist/inside' + emu = emulator.Emulator(argv) + self.assertRaises(core.IllegalObjectIdError, emu.run) + + def test_missing_object_id_requirement(self): + argv = ['__file', '/tmp/foobar'] + os.environ.update(self.env) + os.environ['require'] = '__file' + emu = emulator.Emulator(argv) + self.assertRaises(emulator.IllegalRequirementError, emu.run) + + def test_singleton_object_requirement(self): + argv = ['__file', '/tmp/foobar'] + os.environ.update(self.env) + os.environ['require'] = '__issue' + emu = emulator.Emulator(argv) + emu.run() + # if we get here all is fine + + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') + +class AutoRequireEmulatorTestCase(test.CdistTestCase): + + def setUp(self): + self.temp_dir = self.mkdtemp() + self.target_host = 'localhost' + out_path = self.temp_dir + _local_base_path = fixtures + self.local = local.Local(self.target_host, _local_base_path, out_path) + self.local.create_directories() + self.local.link_emulator(cdist.test.cdist_exec_path) + self.manifest = core.Manifest(self.target_host, self.local) + + def tearDown(self): + shutil.rmtree(self.temp_dir) + + def test_autorequire(self): + initial_manifest = os.path.join(self.local.manifest_path, "init") + self.manifest.run_initial_manifest(initial_manifest) + cdist_type = core.Type(self.local.type_path, '__saturn') + cdist_object = core.Object(cdist_type, self.local.object_path, 'singleton') + self.manifest.run_type_manifest(cdist_object) + expected = ['__planet/Saturn', '__moon/Prometheus'] + self.assertEqual(sorted(cdist_object.requirements), sorted(expected)) + + +class ArgumentsWithDashesTestCase(test.CdistTestCase): + + def setUp(self): + self.temp_dir = self.mkdtemp() + self.target_host = 'localhost' + out_path = self.temp_dir + handle, self.script = self.mkstemp(dir=self.temp_dir) + os.close(handle) + _local_base_path = fixtures + self.local = local.Local(self.target_host, _local_base_path, out_path) + self.local.create_directories() + self.local.link_emulator(test.cdist_exec_path) + self.env = { + 'PATH': "%s:%s" % (self.local.bin_path, os.environ['PATH']), + '__target_host': self.target_host, + '__global': self.local.out_path, + '__cdist_type_base_path': self.local.type_path, # for use in type emulator + '__manifest': self.local.manifest_path, + '__cdist_manifest': self.script, + } + + def tearDown(self): + shutil.rmtree(self.temp_dir) + + def test_arguments_with_dashes(self): + argv = ['__arguments_with_dashes', 'some-id', '--with-dash', 'some value'] + os.environ.update(self.env) + emu = emulator.Emulator(argv) + emu.run() + + cdist_type = core.Type(self.local.type_path, '__arguments_with_dashes') + cdist_object = core.Object(cdist_type, self.local.object_path, 'some-id') + self.assertTrue('with-dash' in cdist_object.parameters) diff --git a/lib/cdist/test/emulator/fixtures/conf/manifest/init b/lib/cdist/test/emulator/fixtures/conf/manifest/init new file mode 100755 index 00000000..9fa1aa53 --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/manifest/init @@ -0,0 +1,3 @@ +#!/bin/sh + +__saturn diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__arguments_with_dashes/parameter/required b/lib/cdist/test/emulator/fixtures/conf/type/__arguments_with_dashes/parameter/required new file mode 100644 index 00000000..02fabce1 --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__arguments_with_dashes/parameter/required @@ -0,0 +1 @@ +with-dash diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__moon/manifest b/lib/cdist/test/emulator/fixtures/conf/type/__moon/manifest new file mode 100755 index 00000000..362be5a1 --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__moon/manifest @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ -f "$__object/parameter/name" ]; then + name="(cat "$__object/parameter/name")" +else + name="$__object_id" + echo "$name" > "$__object/parameter/name" +fi diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__moon/parameter/optional b/lib/cdist/test/emulator/fixtures/conf/type/__moon/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__moon/parameter/optional @@ -0,0 +1 @@ +name diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__moon/parameter/required b/lib/cdist/test/emulator/fixtures/conf/type/__moon/parameter/required new file mode 100644 index 00000000..729a5167 --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__moon/parameter/required @@ -0,0 +1 @@ +planet diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__planet/manifest b/lib/cdist/test/emulator/fixtures/conf/type/__planet/manifest new file mode 100755 index 00000000..362be5a1 --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__planet/manifest @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ -f "$__object/parameter/name" ]; then + name="(cat "$__object/parameter/name")" +else + name="$__object_id" + echo "$name" > "$__object/parameter/name" +fi diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__planet/parameter/optional b/lib/cdist/test/emulator/fixtures/conf/type/__planet/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__planet/parameter/optional @@ -0,0 +1 @@ +name diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__saturn/manifest b/lib/cdist/test/emulator/fixtures/conf/type/__saturn/manifest new file mode 100755 index 00000000..38b8cbf3 --- /dev/null +++ b/lib/cdist/test/emulator/fixtures/conf/type/__saturn/manifest @@ -0,0 +1,4 @@ +#!/bin/sh + +__planet Saturn +require="__planet/Saturn" __moon Prometheus --planet Saturn diff --git a/lib/cdist/test/emulator/fixtures/conf/type/__saturn/singleton b/lib/cdist/test/emulator/fixtures/conf/type/__saturn/singleton new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/exec/__init__.py b/lib/cdist/test/exec/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/exec/local.py b/lib/cdist/test/exec/local.py new file mode 100644 index 00000000..e6f2c2b0 --- /dev/null +++ b/lib/cdist/test/exec/local.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import getpass +import shutil +import string +import random + +#import logging +#logging.basicConfig(level=logging.DEBUG, format='%(levelname)s: %(message)s') + +import cdist +from cdist import test +from cdist.exec import local + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') +local_base_path = fixtures + + +class LocalTestCase(test.CdistTestCase): + + def setUp(self): + self.temp_dir = self.mkdtemp() + target_host = 'localhost' + self.out_path = self.temp_dir + self.base_path = local_base_path + self.local = local.Local(target_host, self.base_path, self.out_path) + + def tearDown(self): + shutil.rmtree(self.temp_dir) + + ### test api + + def test_cache_path(self): + self.assertEqual(self.local.cache_path, os.path.join(self.base_path, "cache")) + + def test_conf_path(self): + self.assertEqual(self.local.conf_path, os.path.join(self.base_path, "conf")) + + def test_global_explorer_path(self): + self.assertEqual(self.local.global_explorer_path, os.path.join(self.base_path, "conf", "explorer")) + + def test_manifest_path(self): + self.assertEqual(self.local.manifest_path, os.path.join(self.base_path, "conf", "manifest")) + + def test_type_path(self): + self.assertEqual(self.local.type_path, os.path.join(self.base_path, "conf", "type")) + + def test_out_path(self): + self.assertEqual(self.local.out_path, self.out_path) + + def test_bin_path(self): + self.assertEqual(self.local.bin_path, os.path.join(self.out_path, "bin")) + + def test_global_explorer_out_path(self): + self.assertEqual(self.local.global_explorer_out_path, os.path.join(self.out_path, "explorer")) + + def test_object_path(self): + self.assertEqual(self.local.object_path, os.path.join(self.out_path, "object")) + + ### /test api + + + def test_run_success(self): + self.local.run(['/bin/true']) + + def test_run_fail(self): + self.assertRaises(cdist.Error, self.local.run, ['/bin/false']) + + def test_run_script_success(self): + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "/bin/true"]) + self.local.run_script(script) + + def test_run_script_fail(self): + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "/bin/false"]) + self.assertRaises(local.LocalScriptError, self.local.run_script, script) + + def test_run_script_get_output(self): + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "echo foobar"]) + self.assertEqual(self.local.run_script(script, return_output=True), "foobar\n") + + def test_mkdir(self): + temp_dir = self.mkdtemp(dir=self.temp_dir) + os.rmdir(temp_dir) + self.local.mkdir(temp_dir) + self.assertTrue(os.path.isdir(temp_dir)) + + def test_rmdir(self): + temp_dir = self.mkdtemp(dir=self.temp_dir) + self.local.rmdir(temp_dir) + self.assertFalse(os.path.isdir(temp_dir)) + + def test_create_directories(self): + self.local.create_directories() + self.assertTrue(os.path.isdir(self.local.out_path)) + self.assertTrue(os.path.isdir(self.local.bin_path)) diff --git a/lib/cdist/test/exec/remote.py b/lib/cdist/test/exec/remote.py new file mode 100644 index 00000000..8e7d408a --- /dev/null +++ b/lib/cdist/test/exec/remote.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import getpass +import shutil +import string +import random + +import cdist +from cdist import test +from cdist.exec import remote + + +class RemoteTestCase(test.CdistTestCase): + + def setUp(self): + self.temp_dir = self.mkdtemp() + self.target_host = 'localhost' + self.base_path = self.temp_dir + user = getpass.getuser() + remote_exec = "ssh -o User=%s -q" % user + remote_copy = "scp -o User=%s -q" % user + self.remote = remote.Remote(self.target_host, self.base_path, remote_exec, remote_copy) + + def tearDown(self): + shutil.rmtree(self.temp_dir) + + ### test api + + def test_conf_path(self): + self.assertEqual(self.remote.conf_path, os.path.join(self.base_path, "conf")) + + def test_object_path(self): + self.assertEqual(self.remote.object_path, os.path.join(self.base_path, "object")) + + def test_type_path(self): + self.assertEqual(self.remote.type_path, os.path.join(self.base_path, "conf", "type")) + + def test_global_explorer_path(self): + self.assertEqual(self.remote.global_explorer_path, os.path.join(self.base_path, "conf", "explorer")) + + ### /test api + + def test_run_success(self): + self.remote.run(['/bin/true']) + + def test_run_fail(self): + self.assertRaises(cdist.Error, self.remote.run, ['/bin/false']) + + def test_run_script_success(self): + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "/bin/true"]) + self.remote.run_script(script) + + def test_run_script_fail(self): + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "/bin/false"]) + self.assertRaises(remote.RemoteScriptError, self.remote.run_script, script) + + def test_run_script_get_output(self): + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "echo foobar"]) + self.assertEqual(self.remote.run_script(script, return_output=True), "foobar\n") + + def test_mkdir(self): + temp_dir = self.mkdtemp(dir=self.temp_dir) + os.rmdir(temp_dir) + self.remote.mkdir(temp_dir) + self.assertTrue(os.path.isdir(temp_dir)) + + def test_rmdir(self): + temp_dir = self.mkdtemp(dir=self.temp_dir) + self.remote.rmdir(temp_dir) + self.assertFalse(os.path.isdir(temp_dir)) + + def test_transfer_file(self): + handle, source = self.mkstemp(dir=self.temp_dir) + os.close(handle) + target = self.mkdtemp(dir=self.temp_dir) + self.remote.transfer(source, target) + self.assertTrue(os.path.isfile(target)) + + def test_transfer_dir(self): + source = self.mkdtemp(dir=self.temp_dir) + # put a file in the directory as payload + handle, source_file = self.mkstemp(dir=source) + os.close(handle) + source_file_name = os.path.split(source_file)[-1] + target = self.mkdtemp(dir=self.temp_dir) + self.remote.transfer(source, target) + # test if the payload file is in the target directory + self.assertTrue(os.path.isfile(os.path.join(target, source_file_name))) + + def test_create_directories(self): + self.remote.create_directories() + self.assertTrue(os.path.isdir(self.remote.base_path)) + self.assertTrue(os.path.isdir(self.remote.conf_path)) + + def test_run_target_host_in_env(self): + handle, remote_exec_path = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, 'w') as fd: + fd.writelines(["#!/bin/sh\n", "echo $__target_host"]) + os.chmod(remote_exec_path, 0o755) + remote_exec = remote_exec_path + remote_copy = "echo" + r = remote.Remote(self.target_host, self.base_path, remote_exec, remote_copy) + self.assertEqual(r.run('/bin/true', return_output=True), "%s\n" % self.target_host) + + def test_run_script_target_host_in_env(self): + handle, remote_exec_path = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, 'w') as fd: + fd.writelines(["#!/bin/sh\n", "echo $__target_host"]) + os.chmod(remote_exec_path, 0o755) + remote_exec = remote_exec_path + remote_copy = "echo" + r = remote.Remote(self.target_host, self.base_path, remote_exec, remote_copy) + handle, script = self.mkstemp(dir=self.temp_dir) + with os.fdopen(handle, "w") as fd: + fd.writelines(["#!/bin/sh\n", "/bin/true"]) + self.assertEqual(r.run_script(script, return_output=True), "%s\n" % self.target_host) diff --git a/lib/cdist/test/explorer/__init__.py b/lib/cdist/test/explorer/__init__.py new file mode 100644 index 00000000..cafe34fc --- /dev/null +++ b/lib/cdist/test/explorer/__init__.py @@ -0,0 +1,133 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import shutil +import getpass +import logging + +import cdist +from cdist import core +from cdist import test +from cdist.exec import local +from cdist.exec import remote +from cdist.core import explorer + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') +local_base_path = fixtures + +class ExplorerClassTestCase(test.CdistTestCase): + + def setUp(self): + self.target_host = 'localhost' + + self.local_base_path = local_base_path + self.out_path = self.mkdtemp() + self.local = local.Local(self.target_host, self.local_base_path, self.out_path) + self.local.create_directories() + + self.remote_base_path = self.mkdtemp() + self.user = getpass.getuser() + remote_exec = "ssh -o User=%s -q" % self.user + remote_copy = "scp -o User=%s -q" % self.user + self.remote = remote.Remote(self.target_host, self.remote_base_path, remote_exec, remote_copy) + + self.explorer = explorer.Explorer(self.target_host, self.local, self.remote) + + self.log = logging.getLogger(self.target_host) + + def tearDown(self): + shutil.rmtree(self.out_path) + shutil.rmtree(self.remote_base_path) + + def test_list_global_explorer_names(self): + expected = ['foobar', 'global'] + self.assertEqual(self.explorer.list_global_explorer_names(), expected) + + def test_transfer_global_explorers(self): + self.explorer.transfer_global_explorers() + source = self.local.global_explorer_path + destination = self.remote.global_explorer_path + self.assertEqual(sorted(os.listdir(source)), sorted(os.listdir(destination))) + + def test_run_global_explorer(self): + self.explorer.transfer_global_explorers() + output = self.explorer.run_global_explorer('global') + self.assertEqual(output, 'global\n') + + def test_run_global_explorers(self): + out_path = self.mkdtemp() + self.explorer.run_global_explorers(out_path) + self.assertEqual(sorted(os.listdir(out_path)), sorted(['foobar', 'global'])) + shutil.rmtree(out_path) + + def test_list_type_explorer_names(self): + cdist_type = core.Type(self.local.type_path, '__test_type') + expected = cdist_type.explorers + self.assertEqual(self.explorer.list_type_explorer_names(cdist_type), expected) + + def test_transfer_type_explorers(self): + cdist_type = core.Type(self.local.type_path, '__test_type') + self.explorer.transfer_type_explorers(cdist_type) + source = os.path.join(self.local.type_path, cdist_type.explorer_path) + destination = os.path.join(self.remote.type_path, cdist_type.explorer_path) + self.assertEqual(os.listdir(source), os.listdir(destination)) + + def test_transfer_type_explorers_only_once(self): + cdist_type = core.Type(self.local.type_path, '__test_type') + # first transfer + self.explorer.transfer_type_explorers(cdist_type) + source = os.path.join(self.local.type_path, cdist_type.explorer_path) + destination = os.path.join(self.remote.type_path, cdist_type.explorer_path) + self.assertEqual(os.listdir(source), os.listdir(destination)) + # nuke destination folder content, but recreate directory + shutil.rmtree(destination) + os.makedirs(destination) + # second transfer, should not happen + self.explorer.transfer_type_explorers(cdist_type) + self.assertFalse(os.listdir(destination)) + + def test_transfer_object_parameters(self): + cdist_type = core.Type(self.local.type_path, '__test_type') + cdist_object = core.Object(cdist_type, self.local.object_path, 'whatever') + cdist_object.create() + cdist_object.parameters = {'first': 'first value', 'second': 'second value'} + self.explorer.transfer_object_parameters(cdist_object) + source = os.path.join(self.local.object_path, cdist_object.parameter_path) + destination = os.path.join(self.remote.object_path, cdist_object.parameter_path) + self.assertEqual(sorted(os.listdir(source)), sorted(os.listdir(destination))) + + def test_run_type_explorer(self): + cdist_type = core.Type(self.local.type_path, '__test_type') + cdist_object = core.Object(cdist_type, self.local.object_path, 'whatever') + self.explorer.transfer_type_explorers(cdist_type) + output = self.explorer.run_type_explorer('world', cdist_object) + self.assertEqual(output, 'hello\n') + + def test_run_type_explorers(self): + cdist_type = core.Type(self.local.type_path, '__test_type') + cdist_object = core.Object(cdist_type, self.local.object_path, 'whatever') + cdist_object.create() + self.explorer.run_type_explorers(cdist_object) + self.assertEqual(cdist_object.explorers, {'world': 'hello'}) diff --git a/lib/cdist/test/explorer/fixtures/conf/explorer/foobar b/lib/cdist/test/explorer/fixtures/conf/explorer/foobar new file mode 100755 index 00000000..33533edd --- /dev/null +++ b/lib/cdist/test/explorer/fixtures/conf/explorer/foobar @@ -0,0 +1,2 @@ +#!/bin/sh +echo foobar diff --git a/lib/cdist/test/explorer/fixtures/conf/explorer/global b/lib/cdist/test/explorer/fixtures/conf/explorer/global new file mode 100755 index 00000000..39c16ea8 --- /dev/null +++ b/lib/cdist/test/explorer/fixtures/conf/explorer/global @@ -0,0 +1,2 @@ +#!/bin/sh +echo global diff --git a/lib/cdist/test/explorer/fixtures/conf/type/__test_type/explorer/world b/lib/cdist/test/explorer/fixtures/conf/type/__test_type/explorer/world new file mode 100755 index 00000000..21ba6825 --- /dev/null +++ b/lib/cdist/test/explorer/fixtures/conf/type/__test_type/explorer/world @@ -0,0 +1,2 @@ +#!/bin/sh +echo hello diff --git a/lib/cdist/test/explorer/fixtures/conf/type/__test_type_object_parameter/explorer/test_parameter b/lib/cdist/test/explorer/fixtures/conf/type/__test_type_object_parameter/explorer/test_parameter new file mode 100755 index 00000000..0778907c --- /dev/null +++ b/lib/cdist/test/explorer/fixtures/conf/type/__test_type_object_parameter/explorer/test_parameter @@ -0,0 +1,3 @@ +#!/bin/sh + +cat "$__object/parameter/test" diff --git a/lib/cdist/test/manifest/__init__.py b/lib/cdist/test/manifest/__init__.py new file mode 100644 index 00000000..2383adf7 --- /dev/null +++ b/lib/cdist/test/manifest/__init__.py @@ -0,0 +1,109 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import getpass +import shutil +import string +import random +import logging +import io +import sys + +import cdist +from cdist import test +from cdist.exec import local +from cdist import core +from cdist.core import manifest + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') +local_base_path = fixtures + + +class ManifestTestCase(test.CdistTestCase): + + def setUp(self): + self.orig_environ = os.environ + os.environ = os.environ.copy() + self.temp_dir = self.mkdtemp() + self.target_host = 'localhost' + out_path = self.temp_dir + self.local = local.Local(self.target_host, local_base_path, out_path) + self.local.create_directories() + self.local.link_emulator(cdist.test.cdist_exec_path) + self.manifest = manifest.Manifest(self.target_host, self.local) + self.log = logging.getLogger(self.target_host) + + def tearDown(self): + os.environ = self.orig_environ + shutil.rmtree(self.temp_dir) + + def test_initial_manifest_environment(self): + initial_manifest = os.path.join(self.local.manifest_path, "dump_environment") + handle, output_file = self.mkstemp(dir=self.temp_dir) + os.close(handle) + os.environ['__cdist_test_out'] = output_file + self.manifest.run_initial_manifest(initial_manifest) + + with open(output_file, 'r') as fd: + output_string = fd.read() + output_dict = {} + for line in output_string.split('\n'): + if line: + key,value = line.split(': ') + output_dict[key] = value + self.assertTrue(output_dict['PATH'].startswith(self.local.bin_path)) + self.assertEqual(output_dict['__target_host'], self.local.target_host) + self.assertEqual(output_dict['__global'], self.local.out_path) + self.assertEqual(output_dict['__cdist_type_base_path'], self.local.type_path) + self.assertEqual(output_dict['__manifest'], self.local.manifest_path) + + def test_type_manifest_environment(self): + cdist_type = core.Type(self.local.type_path, '__dump_environment') + cdist_object = core.Object(cdist_type, self.local.object_path, 'whatever') + handle, output_file = self.mkstemp(dir=self.temp_dir) + os.close(handle) + os.environ['__cdist_test_out'] = output_file + self.manifest.run_type_manifest(cdist_object) + + with open(output_file, 'r') as fd: + output_string = fd.read() + output_dict = {} + for line in output_string.split('\n'): + if line: + key,value = line.split(': ') + output_dict[key] = value + self.assertTrue(output_dict['PATH'].startswith(self.local.bin_path)) + self.assertEqual(output_dict['__target_host'], self.local.target_host) + self.assertEqual(output_dict['__global'], self.local.out_path) + self.assertEqual(output_dict['__cdist_type_base_path'], self.local.type_path) + self.assertEqual(output_dict['__type'], cdist_type.absolute_path) + self.assertEqual(output_dict['__object'], cdist_object.absolute_path) + self.assertEqual(output_dict['__object_id'], cdist_object.object_id) + self.assertEqual(output_dict['__object_name'], cdist_object.name) + self.assertEqual(output_dict['__self'], cdist_object.name) + + def test_debug_env_setup(self): + self.log.setLevel(logging.DEBUG) + manifest = cdist.core.manifest.Manifest(self.target_host, self.local) + self.assertTrue("__cdist_debug" in manifest.env) diff --git a/lib/cdist/test/manifest/fixtures/conf/manifest/dump_environment b/lib/cdist/test/manifest/fixtures/conf/manifest/dump_environment new file mode 100755 index 00000000..7ce983ab --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/manifest/dump_environment @@ -0,0 +1,9 @@ +#!/bin/sh + +cat > $__cdist_test_out << DONE +PATH: $PATH +__target_host: $__target_host +__global: $__global +__cdist_type_base_path: $__cdist_type_base_path +__manifest: $__manifest +DONE diff --git a/lib/cdist/test/manifest/fixtures/conf/manifest/init b/lib/cdist/test/manifest/fixtures/conf/manifest/init new file mode 100755 index 00000000..0bdb391a --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/manifest/init @@ -0,0 +1,4 @@ +#!/bin/sh + +__planet Saturn +__moon Prometheus --planet Saturn diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__dump_environment/manifest b/lib/cdist/test/manifest/fixtures/conf/type/__dump_environment/manifest new file mode 100755 index 00000000..e135de35 --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/type/__dump_environment/manifest @@ -0,0 +1,13 @@ +#!/bin/sh + +cat > $__cdist_test_out << DONE +PATH: $PATH +__target_host: $__target_host +__global: $__global +__cdist_type_base_path: $__cdist_type_base_path +__type: $__type +__self: $__self +__object: $__object +__object_id: $__object_id +__object_name: $__object_name +DONE diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__moon/.keep b/lib/cdist/test/manifest/fixtures/conf/type/__moon/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__moon/manifest b/lib/cdist/test/manifest/fixtures/conf/type/__moon/manifest new file mode 100755 index 00000000..362be5a1 --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/type/__moon/manifest @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ -f "$__object/parameter/name" ]; then + name="(cat "$__object/parameter/name")" +else + name="$__object_id" + echo "$name" > "$__object/parameter/name" +fi diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__moon/parameter/optional b/lib/cdist/test/manifest/fixtures/conf/type/__moon/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/type/__moon/parameter/optional @@ -0,0 +1 @@ +name diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__moon/parameter/required b/lib/cdist/test/manifest/fixtures/conf/type/__moon/parameter/required new file mode 100644 index 00000000..729a5167 --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/type/__moon/parameter/required @@ -0,0 +1 @@ +planet diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__planet/.keep b/lib/cdist/test/manifest/fixtures/conf/type/__planet/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__planet/manifest b/lib/cdist/test/manifest/fixtures/conf/type/__planet/manifest new file mode 100755 index 00000000..362be5a1 --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/type/__planet/manifest @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ -f "$__object/parameter/name" ]; then + name="(cat "$__object/parameter/name")" +else + name="$__object_id" + echo "$name" > "$__object/parameter/name" +fi diff --git a/lib/cdist/test/manifest/fixtures/conf/type/__planet/parameter/optional b/lib/cdist/test/manifest/fixtures/conf/type/__planet/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/lib/cdist/test/manifest/fixtures/conf/type/__planet/parameter/optional @@ -0,0 +1 @@ +name diff --git a/lib/cdist/test/object/__init__.py b/lib/cdist/test/object/__init__.py new file mode 100644 index 00000000..f199ffb5 --- /dev/null +++ b/lib/cdist/test/object/__init__.py @@ -0,0 +1,200 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import shutil + +from cdist import test +from cdist import core + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') +object_base_path = op.join(fixtures, 'object') +type_base_path = op.join(fixtures, 'type') + +class ObjectClassTestCase(test.CdistTestCase): + + def test_list_object_names(self): + object_names = list(core.Object.list_object_names(object_base_path)) + self.assertEqual(object_names, ['__first/man', '__second/on-the', '__third/moon']) + + def test_list_type_names(self): + type_names = list(core.Object.list_type_names(object_base_path)) + self.assertEqual(type_names, ['__first', '__second', '__third']) + + def test_list_objects(self): + objects = list(core.Object.list_objects(object_base_path, type_base_path)) + objects_expected = [ + core.Object(core.Type(type_base_path, '__first'), object_base_path, 'man'), + core.Object(core.Type(type_base_path, '__second'), object_base_path, 'on-the'), + core.Object(core.Type(type_base_path, '__third'), object_base_path, 'moon'), + ] + self.assertEqual(objects, objects_expected) + + +class ObjectIdTestCase(test.CdistTestCase): + def test_object_id_starts_with_slash(self): + cdist_type = core.Type(type_base_path, '__third') + illegal_object_id = '/object_id/may/not/start/with/slash' + with self.assertRaises(core.IllegalObjectIdError): + core.Object(cdist_type, object_base_path, illegal_object_id) + + def test_object_id_contains_object_marker(self): + cdist_type = core.Type(type_base_path, '__third') + illegal_object_id = 'object_id/may/not/contain/%s/anywhere' % core.OBJECT_MARKER + with self.assertRaises(core.IllegalObjectIdError): + core.Object(cdist_type, object_base_path, illegal_object_id) + + def test_object_id_contains_object_marker_string(self): + cdist_type = core.Type(type_base_path, '__third') + illegal_object_id = 'object_id/may/contain_%s_in_filename' % core.OBJECT_MARKER + core.Object(cdist_type, object_base_path, illegal_object_id) + # if we get here, the test passed + + +class ObjectTestCase(test.CdistTestCase): + + def setUp(self): + self.cdist_type = core.Type(type_base_path, '__third') + self.cdist_object = core.Object(self.cdist_type, object_base_path, 'moon') + + def tearDown(self): + self.cdist_object.changed = False + self.cdist_object.prepared = False + self.cdist_object.ran = False + self.cdist_object.source = [] + self.cdist_object.code_local = '' + self.cdist_object.code_remote = '' + self.cdist_object.state = '' + + def test_name(self): + self.assertEqual(self.cdist_object.name, '__third/moon') + + def test_object_id(self): + self.assertEqual(self.cdist_object.object_id, 'moon') + + def test_path(self): + self.assertEqual(self.cdist_object.path, '__third/moon/.cdist') + + def test_absolute_path(self): + self.assertEqual(self.cdist_object.absolute_path, os.path.join(object_base_path, '__third/moon/.cdist')) + + def test_code_local_path(self): + self.assertEqual(self.cdist_object.code_local_path, '__third/moon/.cdist/code-local') + + def test_code_remote_path(self): + self.assertEqual(self.cdist_object.code_remote_path, '__third/moon/.cdist/code-remote') + + def test_parameter_path(self): + self.assertEqual(self.cdist_object.parameter_path, '__third/moon/.cdist/parameter') + + def test_explorer_path(self): + self.assertEqual(self.cdist_object.explorer_path, '__third/moon/.cdist/explorer') + + def test_parameters(self): + expected_parameters = {'planet': 'Saturn', 'name': 'Prometheus'} + self.assertEqual(self.cdist_object.parameters, expected_parameters) + + def test_explorers(self): + self.assertEqual(self.cdist_object.explorers, {}) + + # FIXME: actually testing fsproperty.DirectoryDictProperty here, move to their own test case + def test_explorers_assign_dict(self): + expected = {'first': 'foo', 'second': 'bar'} + # when set, written to file + self.cdist_object.explorers = expected + object_explorer_path = os.path.join(self.cdist_object.base_path, self.cdist_object.explorer_path) + self.assertTrue(os.path.isdir(object_explorer_path)) + # when accessed, read from file + self.assertEqual(self.cdist_object.explorers, expected) + # remove dynamically created folder + self.cdist_object.explorers = {} + os.rmdir(os.path.join(self.cdist_object.base_path, self.cdist_object.explorer_path)) + + # FIXME: actually testing fsproperty.DirectoryDictProperty here, move to their own test case + def test_explorers_assign_key_value(self): + expected = {'first': 'foo', 'second': 'bar'} + object_explorer_path = os.path.join(self.cdist_object.base_path, self.cdist_object.explorer_path) + for key,value in expected.items(): + # when set, written to file + self.cdist_object.explorers[key] = value + self.assertTrue(os.path.isfile(os.path.join(object_explorer_path, key))) + # when accessed, read from file + self.assertEqual(self.cdist_object.explorers, expected) + # remove dynamically created folder + self.cdist_object.explorers = {} + os.rmdir(os.path.join(self.cdist_object.base_path, self.cdist_object.explorer_path)) + + def test_requirements(self): + expected = [] + self.assertEqual(list(self.cdist_object.requirements), expected) + + def test_changed(self): + self.assertFalse(self.cdist_object.changed) + + def test_changed_after_changing(self): + self.cdist_object.changed = True + self.assertTrue(self.cdist_object.changed) + + def test_state(self): + self.assertEqual(self.cdist_object.state, '') + + def test_state_prepared(self): + self.cdist_object.state = core.Object.STATE_PREPARED + self.assertEqual(self.cdist_object.state, core.Object.STATE_PREPARED) + + def test_state_running(self): + self.cdist_object.state = core.Object.STATE_RUNNING + self.assertEqual(self.cdist_object.state, core.Object.STATE_RUNNING) + + def test_state_done(self): + self.cdist_object.state = core.Object.STATE_DONE + self.assertEqual(self.cdist_object.state, core.Object.STATE_DONE) + + def test_source(self): + self.assertEqual(list(self.cdist_object.source), []) + + def test_source_after_changing(self): + self.cdist_object.source = ['/path/to/manifest'] + self.assertEqual(list(self.cdist_object.source), ['/path/to/manifest']) + + def test_code_local(self): + self.assertEqual(self.cdist_object.code_local, '') + + def test_code_local_after_changing(self): + self.cdist_object.code_local = 'Hello World' + self.assertEqual(self.cdist_object.code_local, 'Hello World') + + def test_code_remote(self): + self.assertEqual(self.cdist_object.code_remote, '') + + def test_code_remote_after_changing(self): + self.cdist_object.code_remote = 'Hello World' + self.assertEqual(self.cdist_object.code_remote, 'Hello World') + + def test_object_from_name(self): + self.cdist_object.code_remote = 'Hello World' + other_name = '__first/man' + other_object = self.cdist_object.object_from_name(other_name) + self.assertTrue(isinstance(other_object, core.Object)) + self.assertEqual(other_object.type.name, '__first') + self.assertEqual(other_object.object_id, 'man') diff --git a/lib/cdist/test/object/fixtures/object/__first/.keep b/lib/cdist/test/object/fixtures/object/__first/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/object/__first/man/.cdist/.keep b/lib/cdist/test/object/fixtures/object/__first/man/.cdist/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/object/__second/.keep b/lib/cdist/test/object/fixtures/object/__second/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/object/__second/on-the/.cdist/.keep b/lib/cdist/test/object/fixtures/object/__second/on-the/.cdist/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/object/__third/.keep b/lib/cdist/test/object/fixtures/object/__third/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/.keep b/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/parameter/name b/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/parameter/name new file mode 100644 index 00000000..4129a761 --- /dev/null +++ b/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/parameter/name @@ -0,0 +1 @@ +Prometheus diff --git a/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/parameter/planet b/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/parameter/planet new file mode 100644 index 00000000..8e6ee422 --- /dev/null +++ b/lib/cdist/test/object/fixtures/object/__third/moon/.cdist/parameter/planet @@ -0,0 +1 @@ +Saturn diff --git a/lib/cdist/test/object/fixtures/type/__first/.keep b/lib/cdist/test/object/fixtures/type/__first/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/type/__second/.keep b/lib/cdist/test/object/fixtures/type/__second/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/object/fixtures/type/__third/.keep b/lib/cdist/test/object/fixtures/type/__third/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/__init__.py b/lib/cdist/test/type/__init__.py new file mode 100644 index 00000000..7bb8654c --- /dev/null +++ b/lib/cdist/test/type/__init__.py @@ -0,0 +1,147 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os + +from cdist import test +from cdist import core + +import os.path as op +my_dir = op.abspath(op.dirname(__file__)) +fixtures = op.join(my_dir, 'fixtures') + + +class TypeTestCase(test.CdistTestCase): + + def test_list_type_names(self): + base_path = op.join(fixtures, 'list_types') + type_names = core.Type.list_type_names(base_path) + self.assertEqual(type_names, ['__first', '__second', '__third']) + + def test_list_types(self): + base_path = op.join(fixtures, 'list_types') + types = list(core.Type.list_types(base_path)) + types_expected = [ + core.Type(base_path, '__first'), + core.Type(base_path, '__second'), + core.Type(base_path, '__third'), + ] + self.assertEqual(types, types_expected) + + def test_only_one_instance(self): + base_path = fixtures + cdist_type1 = core.Type(base_path, '__name_path') + cdist_type2 = core.Type(base_path, '__name_path') + self.assertEqual(id(cdist_type1), id(cdist_type2)) + + def test_nonexistent_type(self): + base_path = fixtures + self.assertRaises(core.NoSuchTypeError, core.Type, base_path, '__i-dont-exist') + + def test_name(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.name, '__name_path') + + def test_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.path, '__name_path') + + def test_base_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.base_path, base_path) + + def test_absolute_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.absolute_path, os.path.join(base_path, '__name_path')) + + def test_manifest_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.manifest_path, os.path.join('__name_path', 'manifest')) + + def test_explorer_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.explorer_path, os.path.join('__name_path', 'explorer')) + + def test_gencode_local_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.gencode_local_path, os.path.join('__name_path', 'gencode-local')) + + def test_gencode_remote_path(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__name_path') + self.assertEqual(cdist_type.gencode_remote_path, os.path.join('__name_path', 'gencode-remote')) + + def test_singleton_is_singleton(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__singleton') + self.assertTrue(cdist_type.is_singleton) + + def test_not_singleton_is_singleton(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__not_singleton') + self.assertFalse(cdist_type.is_singleton) + + def test_install_is_install(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__install') + self.assertTrue(cdist_type.is_install) + + def test_not_install_is_install(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__not_install') + self.assertFalse(cdist_type.is_install) + + def test_with_explorers(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__with_explorers') + self.assertEqual(cdist_type.explorers, ['whatever']) + + def test_without_explorers(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__without_explorers') + self.assertEqual(cdist_type.explorers, []) + + def test_with_required_parameters(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__with_required_parameters') + self.assertEqual(cdist_type.required_parameters, ['required1', 'required2']) + + def test_without_required_parameters(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__without_required_parameters') + self.assertEqual(cdist_type.required_parameters, []) + + def test_with_optional_parameters(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__with_optional_parameters') + self.assertEqual(cdist_type.optional_parameters, ['optional1', 'optional2']) + + def test_without_optional_parameters(self): + base_path = fixtures + cdist_type = core.Type(base_path, '__without_optional_parameters') + self.assertEqual(cdist_type.optional_parameters, []) diff --git a/lib/cdist/test/type/fixtures/__install/install b/lib/cdist/test/type/fixtures/__install/install new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__name_path/.keep b/lib/cdist/test/type/fixtures/__name_path/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__not_install/.keep b/lib/cdist/test/type/fixtures/__not_install/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__not_singleton/.keep b/lib/cdist/test/type/fixtures/__not_singleton/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__singleton/singleton b/lib/cdist/test/type/fixtures/__singleton/singleton new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__with_explorers/explorer/whatever b/lib/cdist/test/type/fixtures/__with_explorers/explorer/whatever new file mode 100755 index 00000000..01b7b61c --- /dev/null +++ b/lib/cdist/test/type/fixtures/__with_explorers/explorer/whatever @@ -0,0 +1,2 @@ +#!/bin/sh +echo whatever diff --git a/lib/cdist/test/type/fixtures/__with_optional_parameters/parameter/optional b/lib/cdist/test/type/fixtures/__with_optional_parameters/parameter/optional new file mode 100644 index 00000000..8174d2a9 --- /dev/null +++ b/lib/cdist/test/type/fixtures/__with_optional_parameters/parameter/optional @@ -0,0 +1,2 @@ +optional1 +optional2 diff --git a/lib/cdist/test/type/fixtures/__with_required_parameters/parameter/required b/lib/cdist/test/type/fixtures/__with_required_parameters/parameter/required new file mode 100644 index 00000000..e0fba2c9 --- /dev/null +++ b/lib/cdist/test/type/fixtures/__with_required_parameters/parameter/required @@ -0,0 +1,2 @@ +required1 +required2 diff --git a/lib/cdist/test/type/fixtures/__without_explorers/.keep b/lib/cdist/test/type/fixtures/__without_explorers/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__without_optional_parameters/.keep b/lib/cdist/test/type/fixtures/__without_optional_parameters/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/__without_required_parameters/.keep b/lib/cdist/test/type/fixtures/__without_required_parameters/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/list_types/__first/.keep b/lib/cdist/test/type/fixtures/list_types/__first/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/list_types/__second/.keep b/lib/cdist/test/type/fixtures/list_types/__second/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/type/fixtures/list_types/__third/.keep b/lib/cdist/test/type/fixtures/list_types/__third/.keep new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/util/__init__.py b/lib/cdist/test/util/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/test/util/fsproperty.py b/lib/cdist/test/util/fsproperty.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/util/__init__.py b/lib/cdist/util/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/lib/cdist/util/fsproperty.py b/lib/cdist/util/fsproperty.py new file mode 100644 index 00000000..55428c4d --- /dev/null +++ b/lib/cdist/util/fsproperty.py @@ -0,0 +1,293 @@ +# -*- coding: utf-8 -*- +# +# 2010-2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +import os +import collections + +import cdist + + +class AbsolutePathRequiredError(cdist.Error): + def __init__(self, path): + self.path = path + + def __str__(self): + return 'Absolute path required, got: %s' % self.path + + +class FileList(collections.MutableSequence): + """A list that stores it's state in a file. + + """ + def __init__(self, path, initial=None): + if not os.path.isabs(path): + raise AbsolutePathRequiredError(path) + self.path = path + if initial: + # delete existing file + try: + os.unlink(self.path) + except EnvironmentError: + # ignored + pass + for i in initial: + self.append(i) + + def __read(self): + lines = [] + # if file does not exist return empty list + try: + with open(self.path) as fd: + for line in fd: + lines.append(line.rstrip('\n')) + except EnvironmentError as e: + # error ignored + pass + return lines + + def __write(self, lines): + try: + with open(self.path, 'w') as fd: + for line in lines: + fd.write(str(line) + '\n') + except EnvironmentError as e: + # should never happen + raise cdist.Error(str(e)) + + def __repr__(self): + return repr(list(self)) + + def __getitem__(self, index): + return self.__read()[index] + + def __setitem__(self, index, value): + lines = self.__read() + lines[index] = value + self.__write(lines) + + def __delitem__(self, index): + lines = self.__read() + del lines[index] + self.__write(lines) + + def __len__(self): + lines = self.__read() + return len(lines) + + def insert(self, index, value): + lines = self.__read() + lines.insert(index, value) + self.__write(lines) + + def sort(self): + lines = sorted(self) + self.__write(lines) + + +class DirectoryDict(collections.MutableMapping): + """A dict that stores it's items as files in a directory. + + """ + def __init__(self, path, initial=None, **kwargs): + if not os.path.isabs(path): + raise AbsolutePathRequiredError(path) + self.path = path + try: + # create directory if it doesn't exist + if not os.path.isdir(self.path): + os.mkdir(self.path) + except EnvironmentError as e: + raise cdist.Error(str(e)) + if initial is not None: + self.update(initial) + if kwargs: + self.update(kwargs) + + def __repr__(self): + return repr(dict(self)) + + def __getitem__(self, key): + try: + with open(os.path.join(self.path, key), "r") as fd: + return fd.read().rstrip('\n') + except EnvironmentError: + raise KeyError(key) + + def __setitem__(self, key, value): + try: + with open(os.path.join(self.path, key), "w") as fd: + fd.write(str(value)) + except EnvironmentError as e: + raise cdist.Error(str(e)) + + def __delitem__(self, key): + try: + os.remove(os.path.join(self.path, key)) + except EnvironmentError: + raise KeyError(key) + + def __iter__(self): + try: + return iter(os.listdir(self.path)) + except EnvironmentError as e: + raise cdist.Error(str(e)) + + def __len__(self): + try: + return len(os.listdir(self.path)) + except EnvironmentError as e: + raise cdist.Error(str(e)) + + +class FileBasedProperty(object): + attribute_class = None + + def __init__(self, path): + """ + :param path: string or callable + + Abstract super class. Subclass and set the class member attribute_class accordingly. + + Usage with a sublcass: + + class Foo(object): + # note that the actual DirectoryDict is stored as __parameters on the instance + parameters = DirectoryDictProperty(lambda instance: os.path.join(instance.absolute_path, 'parameter')) + # note that the actual DirectoryDict is stored as __other_dict on the instance + other_dict = DirectoryDictProperty('/tmp/other_dict') + + def __init__(self): + self.absolute_path = '/tmp/foo' + + """ + self.path = path + + def _get_path(self, instance): + path = self.path + if callable(path): + path = path(instance) + return path + + def _get_property_name(self, owner): + for name, prop in owner.__dict__.items(): + if self == prop: + return name + + def _get_attribute(self, instance, owner): + name = self._get_property_name(owner) + attribute_name = '__%s' % name + if not hasattr(instance, attribute_name): + path = self._get_path(instance) + attribute_instance = self.attribute_class(path) + setattr(instance, attribute_name, attribute_instance) + return getattr(instance, attribute_name) + + def __get__(self, instance, owner): + if instance is None: + return self + return self._get_attribute(instance, owner) + + def __delete__(self, instance): + raise AttributeError("can't delete attribute") + + +class DirectoryDictProperty(FileBasedProperty): + attribute_class = DirectoryDict + + def __set__(self, instance, value): + attribute_instance = self._get_attribute(instance, instance.__class__) + for name in attribute_instance.keys(): + del attribute_instance[name] + attribute_instance.update(value) + + +class FileListProperty(FileBasedProperty): + attribute_class = FileList + + def __set__(self, instance, value): + path = self._get_path(instance) + try: + os.unlink(path) + except EnvironmentError: + # ignored + pass + attribute_instance = self._get_attribute(instance, instance.__class__) + for item in value: + attribute_instance.append(item) + + +class FileBooleanProperty(FileBasedProperty): + """A boolean property which uses a file to represent its value. + + File exists -> True + File does not exists -> False + """ + # Descriptor Protocol + def __get__(self, instance, owner): + if instance is None: + return self + path = self._get_path(instance) + return os.path.isfile(path) + + def __set__(self, instance, value): + path = self._get_path(instance) + if value: + try: + open(path, "w").close() + except EnvironmentError as e: + raise cdist.Error(str(e)) + else: + try: + os.remove(path) + except EnvironmentError: + # ignore + pass + + +class FileStringProperty(FileBasedProperty): + """A string property which stores its value in a file. + """ + # Descriptor Protocol + def __get__(self, instance, owner): + if instance is None: + return self + path = self._get_path(instance) + value = "" + try: + with open(path, "r") as fd: + value = fd.read() + except EnvironmentError: + pass + return value + + def __set__(self, instance, value): + path = self._get_path(instance) + if value: + try: + with open(path, "w") as fd: + fd.write(str(value)) + except EnvironmentError as e: + raise cdist.Error(str(e)) + else: + try: + os.remove(path) + except EnvironmentError: + pass diff --git a/other/examples/remote/README b/other/examples/remote/README new file mode 100644 index 00000000..288fc293 --- /dev/null +++ b/other/examples/remote/README @@ -0,0 +1,2 @@ +Some examples of using alternative __remote_copy and __remote_exec prefixes. +This allows you to change how cdist interacts with the target host (or directory, or whatever :-) diff --git a/bin/cdist-object-gencode-run b/other/examples/remote/chroot/copy similarity index 56% rename from bin/cdist-object-gencode-run rename to other/examples/remote/chroot/copy index 254ac1e4..528a5faf 100755 --- a/bin/cdist-object-gencode-run +++ b/other/examples/remote/chroot/copy @@ -1,6 +1,5 @@ #!/bin/sh # -# 2010 Nico Schottelius (nico-cdist at schottelius.org) # 2011 Steven Armstrong (steven-cdist at armstrong.cc) # # This file is part of cdist. @@ -18,21 +17,31 @@ # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # -# -# For the given object create the code to be executed on the target. +# +# __remote_copy script to run cdist against a local chroot instead of via ssh +# to a remote target host. +# +# Usage: +# __remote_copy="/path/to/this/script /path/to/your/chroot" cdist config target-id # -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu +log() { + #echo "$@" | logger -t "cdist-chroot-copy" + : +} -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift +chroot="$1"; shift +target_host="$__target_host" -__cdist_echo info "Generating local code " -cdist-object-gencode "$__cdist_target_host" "$__cdist_object_self" \ - "${__cdist_name_gencode_local}" +# replace target_host with chroot location +code="$(echo "$@" | sed "s|$target_host:|$chroot|g")" -__cdist_echo info "Generating remote code " -cdist-object-gencode "$__cdist_target_host" "$__cdist_object_self" \ - "${__cdist_name_gencode_remote}" +log "target_host: $target_host" +log "chroot: $chroot" +log "$@" +log "$code" + +# copy files into chroot +cp $code + +log "-----" diff --git a/other/examples/remote/chroot/exec b/other/examples/remote/chroot/exec new file mode 100755 index 00000000..19e76b0e --- /dev/null +++ b/other/examples/remote/chroot/exec @@ -0,0 +1,55 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# __remote_exec script to run cdist against a local chroot instead of via ssh +# on a remote target host. +# +# Usage: +# __remote_exec="/path/to/this/script /path/to/your/chroot" cdist config target-id +# + +log() { + #echo "$@" | logger -t "cdist-chroot-exec" + : +} + +chroot="$1"; shift +target_host="$1"; shift + +script=$(mktemp "${chroot}/tmp/chroot-${0##*/}.XXXXXXXXXX") +trap cleanup INT TERM EXIT +cleanup() { + [ $__cdist_debug ] || rm "$script" +} + +log "target_host: $target_host" +log "script: $script" +log "@: $@" +echo "#!/bin/sh -l" > "$script" +echo "$@" >> "$script" +chmod +x "$script" + +relative_script="${script#$chroot}" +log "relative_script: $relative_script" + +# run in chroot +chroot "$chroot" "$relative_script" + +log "-----" diff --git a/other/examples/remote/schroot-uri b/other/examples/remote/schroot-uri new file mode 100755 index 00000000..a23277ec --- /dev/null +++ b/other/examples/remote/schroot-uri @@ -0,0 +1,134 @@ +#!/bin/sh -e +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# __remote_{exec,copy} script to run cdist against a schroot target uri +# +# Usage: +# __remote_exec="/path/to/this/script exec" cdist config target_uri +# __remote_copy="/path/to/this/script copy" cdist config target_uri +# +# # target_uri examples: +# schroot:///chroot-name +# schroot://foo.ethz.ch/chroot-name +# schroot://user-name@foo.ethz.ch/chroot-name +# +# # and how to match them in .../manifest/init +# case "$target_host" in +# schroot://*) +# # any schroot +# ;; +# schroot://foo.ethz.ch/*) +# # any schroot on specific host +# ;; +# schroot://foo.ethz.ch/chroot-name) +# # specific schroot on specific host +# ;; +# schroot:///chroot-name) +# # specific schroot on localhost +# ;; +# esac + +my_name="${0##*/}" +mode="$1"; shift + +log() { + echo "$@" | logger -t "cdist-$my_name-$mode" + : +} + +die() { + echo "$@" >&2 + exit 1 +} + + +uri="$__target_host" + +scheme="${uri%%:*}"; rest="${uri#$scheme:}"; rest="${rest#//}" +authority="${rest%%/*}"; rest="${rest#$authority}" +path="${rest%\?*}"; rest="${rest#$path}" +schroot_name="${path#/}" + +[ "$scheme" = "schroot" ] || die "Failed to parse scheme from __target_host ($__target_host). Expected 'schroot', got '$scheme'" +[ -n "$schroot_name" ] || die "Failed to parse schroot name from __target_host: $__target_host" + +case "$authority" in + '') + # authority is empty, neither user nor host given + user="" + host="" + ;; + *@*) + # authority contains @, take user from authority + user="${authority%@*}" + host="${authority#*@}" + ;; + *) + # no user in authority, default to root + user="root" + host="$authority" + ;; +esac + +log "mode: $mode" +log "@: $@" +log "uri: $uri" +log "scheme: $scheme" +log "authority: $authority" +log "user: $user" +log "host: $host" +log "path: $path" +log "schroot_name: $schroot_name" + +exec_prefix="" +copy_prefix="" +if [ -n "$host" ]; then + # we are working on a remote host + exec_prefix="ssh -o User=$user -q $host" + copy_prefix="scp -o User=$user -q" + copy_destination_prefix="$host:" +else + # working on local machine + copy_prefix="cp" + copy_destination_prefix="" +fi + +case "$mode" in + exec) + # In exec mode the first argument is the __target_host which we already got from env. Get rid of it. + shift + code="$exec_prefix schroot -c $schroot_name -- sh -c '$@'" + ;; + copy) + # get directory for given chroot_name + schroot_directory="$($exec_prefix schroot $chroot_name --config | awk -F = '/directory=/ {print $2}')" + [ -n "$schroot_directory" ] || die "Failed to retreive schroot directory for schroot: $schroot_name" + # prefix destination with chroot + code="$copy_prefix $(echo "$@" | sed "s|$uri:|${copy_destination_prefix}${schroot_directory}|g")" + ;; + *) die "Unknown mode: $mode";; +esac + +log "code: $code" + +# Run the code +$code + +log "-----" diff --git a/other/examples/remote/schroot/copy b/other/examples/remote/schroot/copy new file mode 100755 index 00000000..3587a4f2 --- /dev/null +++ b/other/examples/remote/schroot/copy @@ -0,0 +1,50 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# __remote_copy script to run cdist against a chroot on the target host over ssh. +# +# Usage: +# __remote_copy="/path/to/this/script schroot-chroot-name" cdist config target_host +# + +log() { + #echo "$@" | logger -t "cdist-schroot-copy" + : +} + +chroot_name="$1"; shift +target_host="$__target_host" + +# get directory for given chroot_name +chroot="$(ssh -o User=root -q $target_host schroot $chroot_name --config | awk -F = '/directory=/ {print $2}')" + +# prefix destination with chroot +code="$(echo "$@" | sed "s|$target_host:|$target_host:$chroot|g")" + +log "target_host: $target_host" +log "chroot_name: $chroot_name" +log "chroot: $chroot" +log "@: $@" +log "code: $code" + +# copy files into remote chroot +scp -o User=root -q $code + +log "-----" diff --git a/bin/cdist-object-code-run b/other/examples/remote/schroot/exec similarity index 58% rename from bin/cdist-object-code-run rename to other/examples/remote/schroot/exec index fa63aaba..5b561de0 100755 --- a/bin/cdist-object-code-run +++ b/other/examples/remote/schroot/exec @@ -1,6 +1,5 @@ #!/bin/sh # -# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) # 2011 Steven Armstrong (steven-cdist at armstrong.cc) # # This file is part of cdist. @@ -19,20 +18,28 @@ # along with cdist. If not, see . # # -# Exec the code for the given object locally and remote +# __remote_exec script to run cdist against a chroot on the target host over ssh. +# +# Usage: +# __remote_exec="/path/to/this/script schroot-chroot-name" cdist config target_host # -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -e +log() { + #echo "$@" | logger -t "cdist-schroot-exec" + : +} -__cdist_target_host="$1"; shift -__cdist_object="$1"; shift +chroot_name="$1"; shift +target_host="$1"; shift -# Code local -export __cdist_out_object_dir="$__cdist_out_object_dir" -cdist-code-run "$__cdist_object" "${__cdist_name_gencode_local}" +code="ssh -o User=root -q $target_host schroot -c $chroot_name -- $@" -# Code remote -cdist-run-remote "$__cdist_target_host" \ - "cdist-code-run" "$__cdist_object" "${__cdist_name_gencode_remote}" +log "target_host: $target_host" +log "chroot_name: $chroot_name" +log "@: $@" +log "code: $code" + +# run in remote chroot +$code + +log "-----" diff --git a/bin/cdist-deploy-stdin-to b/other/examples/remote/ssh/copy similarity index 70% rename from bin/cdist-deploy-stdin-to rename to other/examples/remote/ssh/copy index 391dd431..0ecd8c52 100755 --- a/bin/cdist-deploy-stdin-to +++ b/other/examples/remote/ssh/copy @@ -18,19 +18,11 @@ # along with cdist. If not, see . # # -# Use stdin as the manifest to deploy on the given host. +# same as cdist default +# +# Usage: +# __remote_copy="/path/to/this/script" cdist config target_host # -. cdist-config -[ $# -eq 1 ] || __cdist_usage "" -set -eu - -__cdist_target_host="$1" -shift - -cat >> "$__cdist_tmp_file" - -chmod +x "$__cdist_tmp_file" - -export __cdist_manifest_init="$__cdist_tmp_file" -cdist-deploy-to "$__cdist_target_host" +#echo "$@" | logger -t "cdist-ssh-copy" +scp -o User=root -q $@ diff --git a/bin/cdist-object-push b/other/examples/remote/ssh/exec similarity index 62% rename from bin/cdist-object-push rename to other/examples/remote/ssh/exec index 62b00cb2..b597a47f 100755 --- a/bin/cdist-object-push +++ b/other/examples/remote/ssh/exec @@ -1,6 +1,5 @@ #!/bin/sh # -# 2010 Nico Schottelius (nico-cdist at schottelius.org) # 2011 Steven Armstrong (steven-cdist at armstrong.cc) # # This file is part of cdist. @@ -18,18 +17,12 @@ # You should have received a copy of the GNU General Public License # along with cdist. If not, see . # -# -# Transfer the given object to the target host. +# +# same as cdist default +# +# Usage: +# __remote_exec="/path/to/this/script" cdist config target_host # -. cdist-config -[ $# -eq 2 ] || __cdist_usage " " -set -eu - -__cdist_target_host="$1"; shift -__cdist_object_self="$1"; shift - -__cdist_echo info "Transferring object" -cdist-dir push "$__cdist_target_host" \ - "$(__cdist_object_dir "$__cdist_object_self")" \ - "$(__cdist_remote_object_dir "$__cdist_object_self")" +#echo "$@" | logger -t "cdist-ssh-exec" +ssh -o User=root -q $@ diff --git a/other/examples/types/README b/other/examples/types/README new file mode 100644 index 00000000..f6ea90d6 --- /dev/null +++ b/other/examples/types/README @@ -0,0 +1,3 @@ +This directory contains examples types as being used in real world. + +If you'd like to see your type here, just submit it for inclusion. diff --git a/other/examples/types/__ethz_dinfk_ldap/README b/other/examples/types/__ethz_dinfk_ldap/README new file mode 100644 index 00000000..18c1574b --- /dev/null +++ b/other/examples/types/__ethz_dinfk_ldap/README @@ -0,0 +1,2 @@ +This type is used in production in the ETH and utilises a template to generate +the config file. diff --git a/other/examples/types/__ethz_dinfk_ldap/files/nslcd.conf.template b/other/examples/types/__ethz_dinfk_ldap/files/nslcd.conf.template new file mode 100755 index 00000000..d5b41c24 --- /dev/null +++ b/other/examples/types/__ethz_dinfk_ldap/files/nslcd.conf.template @@ -0,0 +1,46 @@ +#!/bin/sh +cat << DONE +# +# D-INFK SANS MANAGED FILE +# ======================== +# +# Do not change this file. Changes will be overwritten. +# + +# /etc/nslcd.conf +# nslcd configuration file. See nslcd.conf(5) +# for details. + +# The user and group nslcd should run as. +uid nslcd +gid nslcd + +# The location at which the LDAP server(s) should be reachable. +uri ldaps://ldaps01.ethz.ch +uri ldaps://ldaps02.ethz.ch +uri ldaps://ldaps03.ethz.ch + + +# The search base +base ou=${ou},ou=inf,ou=auth,o=ethz,c=ch +base passwd ou=users,ou=${ou},ou=inf,ou=auth,o=ethz,c=ch +base group ou=Group,ou=inf,ou=auth,o=ethz,c=ch +base netgroup ou=netgroup,ou=inf,ou=auth,o=ethz,c=ch + +binddn cn=REPLACE,ou=ME,ou=WITH,ou=YOUR,o=DETAILS,c=ch +bindpw VERYSECRETPASSWORD + +# The LDAP protocol version to use. +#ldap_version 3 + +# The DN to bind with for normal lookups. +#binddn cn=annonymous,dc=example,dc=net +#bindpw secret + +# SSL options +ssl on +tls_reqcert never + +# The search scope. +#scope sub +DONE diff --git a/other/examples/types/__ethz_dinfk_ldap/files/nsswitch.conf b/other/examples/types/__ethz_dinfk_ldap/files/nsswitch.conf new file mode 100644 index 00000000..f4185a86 --- /dev/null +++ b/other/examples/types/__ethz_dinfk_ldap/files/nsswitch.conf @@ -0,0 +1,22 @@ +# +# D-INFK SANS MANAGED FILE +# ======================== +# +# Do not change this file. Changes will be overwritten. +# +# /etc/nsswitch.conf +# + +passwd: files ldap +group: files ldap +shadow: files ldap + +hosts: files dns +networks: files + +services: db files +protocols: db files +rpc: db files +ethers: db files + +netgroup: files ldap diff --git a/other/examples/types/__ethz_dinfk_ldap/manifest b/other/examples/types/__ethz_dinfk_ldap/manifest new file mode 100755 index 00000000..c31d765d --- /dev/null +++ b/other/examples/types/__ethz_dinfk_ldap/manifest @@ -0,0 +1,39 @@ +#!/bin/sh +# +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Configure nss_ldap for a machine at DINFK. +# + +ou="$(cat "$__object/parameter/ou")" + +ldap_config="/etc/nslcd.conf" +ldap_package="libnss-ldapd" + +# Install required packages +__package "$ldap_package" --state installed + +# Generate nss-ldap config file from template +mkdir "$__object/files" +. "$__type/files/nslcd.conf.template" > "$__object/files/nslcd.conf" +__file "$ldap_config" --source "$__object/files/nslcd.conf" + +# Configure nsswitch to use ldap +require="__package/$ldap_package __file/$ldap_config" \ + __file /etc/nsswitch.conf --source "$__type/files/nsswitch.conf" diff --git a/other/examples/types/__ethz_dinfk_ldap/parameter/required b/other/examples/types/__ethz_dinfk_ldap/parameter/required new file mode 100644 index 00000000..d96c19d8 --- /dev/null +++ b/other/examples/types/__ethz_dinfk_ldap/parameter/required @@ -0,0 +1 @@ +ou diff --git a/other/examples/types/__ethz_dinfk_ldap/singleton b/other/examples/types/__ethz_dinfk_ldap/singleton new file mode 100644 index 00000000..e69de29b diff --git a/other/examples/types/__nico_acpi_supend_on_lid_close/README b/other/examples/types/__nico_acpi_supend_on_lid_close/README new file mode 100644 index 00000000..b1924140 --- /dev/null +++ b/other/examples/types/__nico_acpi_supend_on_lid_close/README @@ -0,0 +1,3 @@ +This type is used on notebooks to ensure they suspend when the lid is closed. + +It is tested on Archlinux. diff --git a/other/examples/types/__nico_acpi_supend_on_lid_close/files/lid.sh b/other/examples/types/__nico_acpi_supend_on_lid_close/files/lid.sh new file mode 100755 index 00000000..929fbffb --- /dev/null +++ b/other/examples/types/__nico_acpi_supend_on_lid_close/files/lid.sh @@ -0,0 +1,5 @@ +#!/bin/sh +# Nico Schottelius, 20111016 +# Just suspend, my wife does not like to enter a password + +/usr/sbin/pm-suspend diff --git a/other/examples/types/__nico_acpi_supend_on_lid_close/files/lid_event b/other/examples/types/__nico_acpi_supend_on_lid_close/files/lid_event new file mode 100644 index 00000000..294f6d78 --- /dev/null +++ b/other/examples/types/__nico_acpi_supend_on_lid_close/files/lid_event @@ -0,0 +1,2 @@ +event=button/lid.* +action=/etc/acpi/actions/lid.sh "%e" diff --git a/other/examples/types/__nico_acpi_supend_on_lid_close/manifest b/other/examples/types/__nico_acpi_supend_on_lid_close/manifest new file mode 100644 index 00000000..3ef4e971 --- /dev/null +++ b/other/examples/types/__nico_acpi_supend_on_lid_close/manifest @@ -0,0 +1,43 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +__package acpid --state installed +__package pm-utils --state installed + +event_dir=/etc/acpi/events +event_file="$event_dir/lid" + +action_dir=/etc/acpi/actions +action_file="$action_dir/lid.sh" + +__directory "$event_dir" --owner root --group root \ + --mode 0755 --parents yes + +__directory "$action_dir" --owner root --group root \ + --mode 0755 --parents yes + +require="__directory/$event_dir" __file "$event_file" \ + --owner root --group root --mode 0644 \ + --source "$__type/files/lid_event" + +require="__directory/$action_dir" __file "$action_file" \ + --owner root --group root --mode 0755 \ + --source "$__type/files/lid.sh" diff --git a/other/examples/types/__nico_acpi_supend_on_lid_close/singleton b/other/examples/types/__nico_acpi_supend_on_lid_close/singleton new file mode 100644 index 00000000..e69de29b diff --git a/other/examples/types/__nico_sudo/README b/other/examples/types/__nico_sudo/README new file mode 100644 index 00000000..5e4cf0d3 --- /dev/null +++ b/other/examples/types/__nico_sudo/README @@ -0,0 +1,2 @@ +Configure sudoers file to be included. Different types may do so, +this one simply uses the "nico" file to store the configuration. diff --git a/other/examples/types/__nico_sudo/files/sudo-nico b/other/examples/types/__nico_sudo/files/sudo-nico new file mode 100644 index 00000000..d904c319 --- /dev/null +++ b/other/examples/types/__nico_sudo/files/sudo-nico @@ -0,0 +1,13 @@ +# +# Cdist managed file +# + +# Personal one: nico, shared one: lyni +User_Alias NICO = nico, lyni + +Defaults timestamp_timeout=5 +Defaults !tty_tickets + +# Give out permissions +NICO ALL=(ALL) ALL +NICO ALL=(ALL) NOPASSWD: /usr/sbin/pm-suspend diff --git a/other/examples/types/__nico_sudo/manifest b/other/examples/types/__nico_sudo/manifest new file mode 100755 index 00000000..5de33973 --- /dev/null +++ b/other/examples/types/__nico_sudo/manifest @@ -0,0 +1,30 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +destination=/etc/sudoers.d/nico +source="$__type/files/sudo-nico" + +__package sudo --state installed +__directory /etc/sudoers.d --parents yes + +require="__directory/etc/sudoers.d" \ + __file "$destination" --source "$source" --mode 0440 + diff --git a/bin/cdist-run-remote b/other/examples/types/__nico_sudo/parameter/gencode old mode 100755 new mode 100644 similarity index 67% rename from bin/cdist-run-remote rename to other/examples/types/__nico_sudo/parameter/gencode index 4a4452a2..74792abf --- a/bin/cdist-run-remote +++ b/other/examples/types/__nico_sudo/parameter/gencode @@ -18,16 +18,14 @@ # along with cdist. If not, see . # # -# Run a cdist binary on the remote side +# USEFUL DESCRIPTION # -. cdist-config -[ $# -ge 2 ] || __cdist_usage " [opts]" -set -ue +# +# This file should generate code on stdout, which will be collected by cdist +# and run on the target. +# +# To tell cdist to make use of it, you need to make it executable (chmod +x) +# +# -__cdist_target_host="$1"; shift - -ssh "${__cdist_remote_user}@${__cdist_target_host}" \ - "export PATH=\"${__cdist_remote_bin_dir}:\$PATH\";" \ - "export __cdist_out_object_dir=\"$__cdist_remote_out_object_dir\";" \ - "$@" diff --git a/other/examples/types/__nico_sudo/parameter/manifest b/other/examples/types/__nico_sudo/parameter/manifest new file mode 100644 index 00000000..c696eda6 --- /dev/null +++ b/other/examples/types/__nico_sudo/parameter/manifest @@ -0,0 +1,31 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# USEFUL DESCRIPTION +# + +# +# This is the manifest, which can be used to create other objects like this: +# __file /path/to/destination --source /from/where/ +# +# To tell cdist to make use of it, you need to make it executable (chmod +x) +# +# + diff --git a/other/examples/types/__nico_sudo/parameter/optional b/other/examples/types/__nico_sudo/parameter/optional new file mode 100644 index 00000000..e69de29b diff --git a/other/examples/types/__nico_sudo/parameter/required b/other/examples/types/__nico_sudo/parameter/required new file mode 100644 index 00000000..e69de29b diff --git a/other/examples/types/__nico_sudo/singleton b/other/examples/types/__nico_sudo/singleton new file mode 100644 index 00000000..e69de29b diff --git a/other/types_pending_inclusion/__init_script/README b/other/types_pending_inclusion/__init_script/README new file mode 100644 index 00000000..f2621f12 --- /dev/null +++ b/other/types_pending_inclusion/__init_script/README @@ -0,0 +1,4 @@ +Moved out of conf/type/ to think about whether this type makes sense or not. + +Cdist describes the state and using an init_script may be useful, but +should only be used conditionally. diff --git a/other/types_pending_inclusion/__init_script/gencode-remote b/other/types_pending_inclusion/__init_script/gencode-remote new file mode 100644 index 00000000..d212feb7 --- /dev/null +++ b/other/types_pending_inclusion/__init_script/gencode-remote @@ -0,0 +1,40 @@ +#!/bin/sh +# +# 2010-2011 Daniel Roth (dani-cdist@d-roth.li) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# + +if [ -f "$__object/parameter/script" ]; then + script=$(cat "$__object/parameter/script") +else + script="/$__object_id" +fi + +if [ -f "$__object/parameter/base_dir" ]; then + base_dir=$(cat "$__object/parameter/base_dir") +else + os="$(cat "$__global/explorer/os")" + case "$os" in + archlinux|netbsd|macosx|freebsd|openbsd) base_dir="/etc/rc.d" ;; + *) base_dir="/etc/init.d" + esac +fi + +mode=$(cat "$__object/parameter/mode") + +echo "${base_dir}/${script} ${mode}" diff --git a/other/types_pending_inclusion/__init_script/man.text b/other/types_pending_inclusion/__init_script/man.text new file mode 100644 index 00000000..c33ff7b7 --- /dev/null +++ b/other/types_pending_inclusion/__init_script/man.text @@ -0,0 +1,51 @@ +cdist-type__init_script(7) +========================== +Daniel Roth + + +NAME +---- +cdist-type__init_script - Use the init scripts + + +DESCRIPTION +----------- +This type can be used to control your init scripts. + + +REQUIRED PARAMETERS +------------------- +mode:: + Specifies what shall be done with the init script (usually one of 'start'|'stop'|'restart'|'reload' or 'force-reload') + + +OPTIONAL PARAMETERS +------------------- +script:: + If supplied, use this as the init-script. + Otherwise the object_id is used. + +base_dir:: + If supplied, this type uses this directory instead of '/etc/init.d'. The parameter will not need an ending slash. + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Reloads the configuration for lighttpd +__init_script lighttpd --mode force-reload + +# Reloads the configuration for lighttpd +__init_script lighty --script lighttpd --mode force-reload +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) + + +COPYING +------- +Copyright \(C) 2011 Daniel Roth. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/other/types_pending_inclusion/__init_script/parameter/optional b/other/types_pending_inclusion/__init_script/parameter/optional new file mode 100644 index 00000000..5551a8f2 --- /dev/null +++ b/other/types_pending_inclusion/__init_script/parameter/optional @@ -0,0 +1,2 @@ +script +base_dir diff --git a/other/types_pending_inclusion/__init_script/parameter/required b/other/types_pending_inclusion/__init_script/parameter/required new file mode 100644 index 00000000..17ab372f --- /dev/null +++ b/other/types_pending_inclusion/__init_script/parameter/required @@ -0,0 +1 @@ +mode diff --git a/other/types_pending_inclusion/__package_zypper/README b/other/types_pending_inclusion/__package_zypper/README new file mode 100644 index 00000000..1e073e3f --- /dev/null +++ b/other/types_pending_inclusion/__package_zypper/README @@ -0,0 +1,5 @@ +This type was not accepted, because cleanups are needed and the +manpage does not build. + +If you read this and want this code available in the cdist core, +just fix it and submit a git url :-) diff --git a/bin/cdist-env b/other/types_pending_inclusion/__package_zypper/explorer/pkg_version similarity index 68% rename from bin/cdist-env rename to other/types_pending_inclusion/__package_zypper/explorer/pkg_version index 2aac5e6b..0e078f68 100755 --- a/bin/cdist-env +++ b/other/types_pending_inclusion/__package_zypper/explorer/pkg_version @@ -18,16 +18,13 @@ # along with cdist. If not, see . # # -# Setup environment for use with cdist - must be standalone! +# Retrieve the status of a package - parsed dpkg output # -export PATH="$(cd "${0%/*}" && pwd -P):$PATH" -export MANPATH="$(cd "${0%/*}/../doc/man" && pwd -P):$MANPATH" - -if [ "$(echo ${SHELL##*/} | grep 'csh$')" ]; then - echo setenv PATH $PATH \; - echo setenv MANPATH $MANPATH +if [ -f "$__object/parameter/name" ]; then + name="$(cat "$__object/parameter/name")" else - echo export PATH=$PATH - echo export MANPATH=$MANPATH + name="$__object_id" fi + +rpm -q --whatprovides "$name" 2>/dev/null || true diff --git a/other/types_pending_inclusion/__package_zypper/gencode-remote b/other/types_pending_inclusion/__package_zypper/gencode-remote new file mode 100755 index 00000000..2d1112d3 --- /dev/null +++ b/other/types_pending_inclusion/__package_zypper/gencode-remote @@ -0,0 +1,51 @@ +#!/bin/sh +# +# 2011 Nico Schottelius (nico-cdist at schottelius.org) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Manage packages with yum (mostly Fedora) +# + +if [ -f "$__object/parameter/name" ]; then + name="$__object/parameter/name" +else + name="$__object_id" +fi + +state="$(cat "$__object/parameter/state")" + +opts="-n -q" + +not_installed="^no package provides" + +case "$state" in + installed) + if grep -q "$not_installed" "$__object/explorer/pkg_version"; then + echo zypper $opts install \"$name\" + fi + ;; + removed) + if ! grep -q "$not_installed" "$__object/explorer/pkg_version"; then + echo zypper $opts remove \"$name\" + fi + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 + ;; +esac diff --git a/other/types_pending_inclusion/__package_zypper/man.text b/other/types_pending_inclusion/__package_zypper/man.text new file mode 100644 index 00000000..3a4f1026 --- /dev/null +++ b/other/types_pending_inclusion/__package_zypper/man.text @@ -0,0 +1,52 @@ +cdist-type__package_zypper(7) +========================== +Franky Van Liedekerke + + +NAME +---- +cdist-type__package_zypper - Manage packages with zypper + + +DESCRIPTION +----------- +zypper is usually used on the Suse distribution to manage packages. + + +REQUIRED PARAMETERS +------------------- +state:: + Either "installed" or "removed". + + +OPTIONAL PARAMETERS +------------------- +name:: + If supplied, use the name and not the object id as the package name. + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Ensure zsh in installed +__package_zypper zsh --state installed + +# If you don't want to follow pythonX packages, but always use python +__package_zypper python --state installed --name python2 + +# Remove obsolete package +__package_zypper puppet --state removed +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- cdist-type__package(7) + + +COPYING +------- +Copyright \(C) 2011 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/other/types_pending_inclusion/__package_zypper/parameter/optional b/other/types_pending_inclusion/__package_zypper/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/other/types_pending_inclusion/__package_zypper/parameter/optional @@ -0,0 +1 @@ +name diff --git a/other/types_pending_inclusion/__package_zypper/parameter/required b/other/types_pending_inclusion/__package_zypper/parameter/required new file mode 100644 index 00000000..ff72b5c7 --- /dev/null +++ b/other/types_pending_inclusion/__package_zypper/parameter/required @@ -0,0 +1 @@ +state