diff --git a/cdist/conf/type/__apt_mark/explorer/state b/cdist/conf/type/__apt_mark/explorer/state new file mode 100644 index 00000000..3b70003a --- /dev/null +++ b/cdist/conf/type/__apt_mark/explorer/state @@ -0,0 +1,27 @@ +#!/bin/sh +# +# 2016 Ander Punnar (cdist at kvlt.ee) +# +# 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/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +apt-mark showhold | grep -q $name && echo hold || echo unhold diff --git a/cdist/conf/type/__apt_mark/gencode-remote b/cdist/conf/type/__apt_mark/gencode-remote new file mode 100644 index 00000000..14505809 --- /dev/null +++ b/cdist/conf/type/__apt_mark/gencode-remote @@ -0,0 +1,43 @@ +#!/bin/sh +# +# 2016 Ander Punnar (cdist at kvlt.ee) +# +# 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/name" ]; then + name="$(cat "$__object/parameter/name")" +else + name="$__object_id" +fi + +state_should="$(cat "$__object/parameter/state")" + +state_is="$(cat "$__object/explorer/state")" + +if [ "$state_should" = "$state_is" ]; then + exit 0 +fi + +case "$state_should" in + hold|unhold) + echo "apt-mark $state_should $name > /dev/null" + ;; + *) + echo "Unknown state: $state_should" >&2 + exit 1 + ;; +esac diff --git a/cdist/conf/type/__apt_mark/man.rst b/cdist/conf/type/__apt_mark/man.rst new file mode 100644 index 00000000..7aa2a519 --- /dev/null +++ b/cdist/conf/type/__apt_mark/man.rst @@ -0,0 +1,47 @@ +cdist-type__apt_mark(7) +======================= + +NAME +---- +cdist-type__apt_mark - set package state as 'hold' or 'unhold' + + +DESCRIPTION +----------- +See apt-mark(8) for details. + + +REQUIRED PARAMETERS +------------------- +state + Either "hold" or "unhold". + + +OPTIONAL PARAMETERS +------------------- +name + If supplied, use the name and not the object id as the package name. + + +EXAMPLES +-------- + +.. code-block:: sh + + # hold package + __apt_mark quagga --state hold + # unhold package + __apt_mark quagga --state unhold + + +AUTHORS +------- +Ander Punnar + + +COPYING +------- +Copyright \(C) 2016 Ander Punnar. 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. diff --git a/cdist/conf/type/__apt_mark/parameter/optional b/cdist/conf/type/__apt_mark/parameter/optional new file mode 100644 index 00000000..f121bdbf --- /dev/null +++ b/cdist/conf/type/__apt_mark/parameter/optional @@ -0,0 +1 @@ +name diff --git a/cdist/conf/type/__apt_mark/parameter/required b/cdist/conf/type/__apt_mark/parameter/required new file mode 100644 index 00000000..ff72b5c7 --- /dev/null +++ b/cdist/conf/type/__apt_mark/parameter/required @@ -0,0 +1 @@ +state diff --git a/cdist/conf/type/__consul/files/versions/0.7.0/cksum b/cdist/conf/type/__consul/files/versions/0.7.0/cksum new file mode 100644 index 00000000..3bffeedb --- /dev/null +++ b/cdist/conf/type/__consul/files/versions/0.7.0/cksum @@ -0,0 +1 @@ +695240564 24003648 consul diff --git a/cdist/conf/type/__consul/files/versions/0.7.0/source b/cdist/conf/type/__consul/files/versions/0.7.0/source new file mode 100644 index 00000000..ad610fc7 --- /dev/null +++ b/cdist/conf/type/__consul/files/versions/0.7.0/source @@ -0,0 +1 @@ +https://releases.hashicorp.com/consul/0.7.0/consul_0.7.0_linux_amd64.zip diff --git a/cdist/conf/type/__consul/files/versions/0.7.1/cksum b/cdist/conf/type/__consul/files/versions/0.7.1/cksum new file mode 100644 index 00000000..476bd9f6 --- /dev/null +++ b/cdist/conf/type/__consul/files/versions/0.7.1/cksum @@ -0,0 +1 @@ +3128343188 28402769 consul diff --git a/cdist/conf/type/__consul/files/versions/0.7.1/source b/cdist/conf/type/__consul/files/versions/0.7.1/source new file mode 100644 index 00000000..6ba2e7bf --- /dev/null +++ b/cdist/conf/type/__consul/files/versions/0.7.1/source @@ -0,0 +1 @@ +https://releases.hashicorp.com/consul/0.7.1/consul_0.7.1_linux_amd64.zip diff --git a/cdist/conf/type/__package_upgrade_all/gencode-remote b/cdist/conf/type/__package_upgrade_all/gencode-remote index 9dd3ddf6..3e25f45f 100755 --- a/cdist/conf/type/__package_upgrade_all/gencode-remote +++ b/cdist/conf/type/__package_upgrade_all/gencode-remote @@ -24,6 +24,10 @@ type="$__object/parameter/type" +apt_clean="$__object/parameter/apt-clean" + +apt_dist_upgrade="$__object/parameter/apt-dist-upgrade" + if [ -f "$type" ]; then type="$(cat "$type")" else @@ -48,8 +52,15 @@ case "$type" in echo "yum --quiet clean all" ;; apt) - echo $aptget dist-upgrade - echo "apt-get --quiet autoclean" + if [ -f "$apt_dist_upgrade" ] + then echo $aptget dist-upgrade + else echo $aptget upgrade + fi + + if [ -f "$apt_clean" ] + then echo "apt-get --quiet clean" + else echo "apt-get --quiet autoclean" + fi ;; pacman) echo "pacman --noprogressbar --noconfirm --sync --sysupgrade" diff --git a/cdist/conf/type/__package_upgrade_all/man.rst b/cdist/conf/type/__package_upgrade_all/man.rst index 62cbc43d..e9e2b8ce 100644 --- a/cdist/conf/type/__package_upgrade_all/man.rst +++ b/cdist/conf/type/__package_upgrade_all/man.rst @@ -28,6 +28,15 @@ type * pacman for Arch Linux +BOOLEAN PARAMETERS +------------------ +apt-dist-upgrade + Do dist-upgrade instead of upgrade. + +apt-clean + Clean out the local repository of retrieved package files. + + EXAMPLES -------- diff --git a/cdist/conf/type/__package_upgrade_all/parameter/boolean b/cdist/conf/type/__package_upgrade_all/parameter/boolean new file mode 100644 index 00000000..7a56a34b --- /dev/null +++ b/cdist/conf/type/__package_upgrade_all/parameter/boolean @@ -0,0 +1,2 @@ +apt-clean +apt-dist-upgrade diff --git a/cdist/conf/type/__user/gencode-remote b/cdist/conf/type/__user/gencode-remote index 463fbe49..223d4d46 100755 --- a/cdist/conf/type/__user/gencode-remote +++ b/cdist/conf/type/__user/gencode-remote @@ -104,7 +104,7 @@ if [ "$state" = "present" ]; then if [ $# -gt 0 ]; then echo mod >> "$__messages_out" if [ "$os" = "freebsd" ]; then - echo pw usermod "$@" "$name" + echo pw usermod "$@" -n "$name" else echo usermod "$@" "$name" fi @@ -125,7 +125,7 @@ if [ "$state" = "present" ]; then done if [ "$os" = "freebsd" ]; then - echo pw useradd "$@" "$name" + echo pw useradd "$@" -n "$name" else echo useradd "$@" "$name" fi diff --git a/cdist/config.py b/cdist/config.py index b0131601..b8d0672c 100644 --- a/cdist/config.py +++ b/cdist/config.py @@ -285,6 +285,7 @@ class Config(object): host_fqdn = '' target_host = (host, host_name, host_fqdn) + log.debug("target_host: {}".format(target_host)) local = cdist.exec.local.Local( target_host=target_host, diff --git a/cdist/core/code.py b/cdist/core/code.py index cfc1316a..e9e2edf0 100644 --- a/cdist/core/code.py +++ b/cdist/core/code.py @@ -100,9 +100,7 @@ class Code(object): """ # target_host is tuple (target_host, target_hostname, target_fqdn) def __init__(self, target_host, local, remote): - self.target_host = target_host[0] - self.target_hostname = target_host[1] - self.target_fqdn = target_host[2] + self.target_host = target_host self.local = local self.remote = remote self.env = { diff --git a/docs/changelog b/docs/changelog index 9519f2b3..b5959d77 100644 --- a/docs/changelog +++ b/docs/changelog @@ -2,6 +2,11 @@ Changelog --------- next: + * Type __consul: add source and cksum files for Consul 0.7.0 and 0.7.1 (Carlos Ortigoza) + * Type __user: FreeBSD fix (Kamila Součková) + * New type: __apt_mark (Ander Punnar) + * Type __package_upgrade_all: do not dist-upgrade by default, add apt-clean and apt-dist-upgrade options (Ander Punnar) + * Core: fix target_host vars (Darko Poljak) * All: Merge install feature from 4.0-pre-not-stable (Darko Poljak) 4.3.2: 2016-10-13