diff --git a/cdist/conf/type/__dog_vdi/explorer/list b/cdist/conf/type/__dog_vdi/explorer/list new file mode 100755 index 00000000..856c86fc --- /dev/null +++ b/cdist/conf/type/__dog_vdi/explorer/list @@ -0,0 +1,23 @@ +#!/bin/sh +# +# 2014 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 . +# + +name="$__object_id" + +dog vdi list -r "$name" diff --git a/cdist/conf/type/__dog_vdi/gencode-remote b/cdist/conf/type/__dog_vdi/gencode-remote new file mode 100644 index 00000000..6e4bb4d0 --- /dev/null +++ b/cdist/conf/type/__dog_vdi/gencode-remote @@ -0,0 +1,19 @@ +################################################################################ +# State: absent is handled by manifest - we need only to do stuff if image is +# not existing and state != absent +# +state="$(cat "$__object/parameter/state")" +[ "$state" = "absent" ] && exit 0 + +exists="$(cat "$__object/explorer/exists")" +[ "$exists" ] && exit 0 + +################################################################################ +# Still there? Create image +# + +format="$(cat "$__object/parameter/format")" +size="$(cat "$__object/parameter/size")" +diskimage="/$__object_id" + +echo qemu-img create -f \"$format\" \"$diskimage\" \"$size\" diff --git a/cdist/conf/type/__dog_vdi/man.text b/cdist/conf/type/__dog_vdi/man.text new file mode 100644 index 00000000..444ab15d --- /dev/null +++ b/cdist/conf/type/__dog_vdi/man.text @@ -0,0 +1,50 @@ +cdist-type__dog_vdi(7) +====================== +Nico Schottelius + + +NAME +---- +cdist-type__dog_vdi - Manage Sheepdog VM images + + +DESCRIPTION +----------- +The dog program is used to create qemu images for +qemu and (qemu-)kvm. + + +REQUIRED PARAMETERS +------------------- +size:: + Size of the image in dog vdi compatible units. + + +OPTIONAL PARAMETERS +------------------- +state:: + Either "present" or "absent", defaults to "present" + + +EXAMPLES +-------- + +-------------------------------------------------------------------------------- +# Create a 50G size image +__dog_vdi nico-privat.sky.ungleich.ch --size 50G + +# Remove image +__dog_vdi nico-privat.sky.ungleich.ch --state absent +-------------------------------------------------------------------------------- + + +SEE ALSO +-------- +- cdist-type(7) +- dog(8) + + +COPYING +------- +Copyright \(C) 2014 Nico Schottelius. Free use of this software is +granted under the terms of the GNU General Public License version 3 (GPLv3). diff --git a/cdist/conf/type/__dog_vdi/parameter/default/format b/cdist/conf/type/__dog_vdi/parameter/default/format new file mode 100644 index 00000000..e0a90ab9 --- /dev/null +++ b/cdist/conf/type/__dog_vdi/parameter/default/format @@ -0,0 +1 @@ +qcow2 diff --git a/cdist/conf/type/__dog_vdi/parameter/default/state b/cdist/conf/type/__dog_vdi/parameter/default/state new file mode 100644 index 00000000..e7f6134f --- /dev/null +++ b/cdist/conf/type/__dog_vdi/parameter/default/state @@ -0,0 +1 @@ +present diff --git a/cdist/conf/type/__dog_vdi/parameter/optional b/cdist/conf/type/__dog_vdi/parameter/optional new file mode 100644 index 00000000..71b9a32b --- /dev/null +++ b/cdist/conf/type/__dog_vdi/parameter/optional @@ -0,0 +1,2 @@ +format +state diff --git a/cdist/conf/type/__dog_vdi/parameter/required b/cdist/conf/type/__dog_vdi/parameter/required new file mode 100644 index 00000000..2a613ba5 --- /dev/null +++ b/cdist/conf/type/__dog_vdi/parameter/required @@ -0,0 +1 @@ +size