Revision 7d8e7706

b/Makefile.am
6 6
toolsdir=${osdir}/${osname}/tools
7 7

  
8 8
dist_os_SCRIPTS = ${srcdir}/create ${srcdir}/import ${srcdir}/export ${srcdir}/rename ${srcdir}/verify
9
dist_tools_SCRIPTS = ${srcdir}/tools/*
9
dist_tools_SCRIPTS = ${srcdir}/tools/snf-passtohash.py
10 10
dist_os_DATA = ${srcdir}/ganeti_api_version ${srcdir}/parameters.list
11 11
dist_config_DATA = ${srcdir}/variants.list
12 12
os_DATA = common.sh
13
tools_SCRIPTS = tools/make-dump tools/make-qemu-img tools/mount-disks tools/umount-disks
13 14

  
14 15
dist_custom_DATA = ${srcdir}/example/hooks/*
15 16

  
......
30 31
	   -e 's|@SFDISK[@]|$(SFDISK)|g' \
31 32
	   -e 's|@QEMU_IMG[@]|$(QEMU_IMG)|g'
32 33

  
33
common.sh: $(srcdir)/common.sh.in Makefile
34
tools_builddir:
35
	@mkdir_p@ tools
36

  
37
$(tools_SCRIPTS) common.sh: Makefile
34 38
	rm -f $@ $@.tmp
35 39
	srcdir=''; \
36 40
		   test -f ./$@.in || srcdir=$(srcdir)/; \
37 41
		   $(edit) $${srcdir}$@.in >$@.tmp
38 42
	mv $@.tmp $@
39 43

  
44
common.sh: $(srcdir)/common.sh.in
45
tools/make-dump: $(srcdir)/tools/make-dump.in tools_builddir
46
tools/make-qemu-img: $(srcdir)/tools/make-qemu-img.in tools_builddir
47
tools/mount-disks: $(srcdir)/tools/mount-disks.in tools_builddir
48
tools/umount-disks: $(srcdir)/tools/umount-disks.in tools_builddir
49

  
40 50
install-exec-local:
41 51
	@mkdir_p@ "$(DESTDIR)$(osdir)/$(osname)"
42 52
	@mkdir_p@ "$(DESTDIR)$(variantsdir)"
......
47 57
	touch "$(DESTDIR)$(variantsdir)/default.conf"
48 58
	ln -fs $(DESTDIR)$(configdir)/variants.list $(DESTDIR)$(osdir)/variants.list
49 59

  
50
CLEANFILES = common.sh
60
CLEANFILES = $(os_DATA) $(tools_SCRIPTS)
/dev/null
1
#!/bin/bash
2
set -e
3
INSTANCE_NAME="$1"
4

  
5
if [ -z "$INSTANCE_NAME" ] ; then
6
    echo "Must provide a node name!"
7
    exit 1
8
fi
9

  
10
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
11
OS_VARIANT="${info[0]/*+/}"
12
HYPERVISOR="${info[1]}"
13
DISK_COUNT="${info[2]}"
14
OS_API_VERSION="15"
15

  
16
# do stuff
17
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
18
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME")
19

  
20
DISK_0_PATH="${output/*disk\/0\:/}"
21

  
22
. /usr/share/ganeti/os/image/common.sh
23

  
24
if [ -n "$2" ] ; then
25
    IMAGE_DIR=$2
26
fi
27

  
28
filesystem_dev=$(map_disk0 $blockdev)
29
CLEANUP+=("unmap_disk0 $blockdev")
30
root_dev=$(map_partition $filesystem_dev root)
31
boot_dev=$(map_partition $filesystem_dev boot)
32

  
33
if [ -n "$boot_dev" ] ; then
34
    echo "Creating dump from $INSTANCE_NAME for boot at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump"
35
    dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump $boot_dev
36
fi
37

  
38
echo "Creating dump from $INSTANCE_NAME for root at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump"
39
dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump $root_dev
b/tools/make-dump.in
1
#!/bin/bash
2
set -e
3
INSTANCE_NAME="$1"
4

  
5
if [ -z "$INSTANCE_NAME" ] ; then
6
    echo "Must provide a node name!"
7
    exit 1
8
fi
9

  
10
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
11
OS_VARIANT="${info[0]/*+/}"
12
HYPERVISOR="${info[1]}"
13
DISK_COUNT="${info[2]}"
14
OS_API_VERSION="15"
15

  
16
# do stuff
17
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
18
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME")
19

  
20
DISK_0_PATH="${output/*disk\/0\:/}"
21

  
22
. @osdir@/@osname@/common.sh
23

  
24
if [ -n "$2" ] ; then
25
    IMAGE_DIR=$2
26
fi
27

  
28
filesystem_dev=$(map_disk0 $blockdev)
29
CLEANUP+=("unmap_disk0 $blockdev")
30
root_dev=$(map_partition $filesystem_dev root)
31
boot_dev=$(map_partition $filesystem_dev boot)
32

  
33
if [ -n "$boot_dev" ] ; then
34
    echo "Creating dump from $INSTANCE_NAME for boot at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump"
35
    dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-boot.dump $boot_dev
36
fi
37

  
38
echo "Creating dump from $INSTANCE_NAME for root at ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump"
39
dump -0 -q -z9 -f ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}-root.dump $root_dev
/dev/null
1
#!/bin/bash
2
set -e
3
INSTANCE_NAME="$1"
4

  
5
if [ -z "$INSTANCE_NAME" ] ; then
6
    echo "Must provide a node name!"
7
    exit 1
8
fi
9

  
10
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
11
OS_VARIANT="${info[0]/*+/}"
12
HYPERVISOR="${info[1]}"
13
DISK_COUNT="${info[2]}"
14
OS_API_VERSION="15"
15

  
16
# do stuff
17
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
18
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME")
19

  
20
DISK_0_PATH="${output/*disk\/0\:/}"
21

  
22
. /usr/share/ganeti/os/image/common.sh
23

  
24
if [ -n "$2" ] ; then
25
    IMAGE_DIR=$2
26
fi
27

  
28
echo "Creating qemu-img image from $INSTANCE_NAME to ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img"
29
$QEMU_IMG convert -O qcow2 $DISK_0_PATH ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img
b/tools/make-qemu-img.in
1
#!/bin/bash
2
set -e
3
INSTANCE_NAME="$1"
4

  
5
if [ -z "$INSTANCE_NAME" ] ; then
6
    echo "Must provide a node name!"
7
    exit 1
8
fi
9

  
10
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
11
OS_VARIANT="${info[0]/*+/}"
12
HYPERVISOR="${info[1]}"
13
DISK_COUNT="${info[2]}"
14
OS_API_VERSION="15"
15

  
16
# do stuff
17
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
18
CLEANUP+=("gnt-instance deactivate-disks $INSTANCE_NAME")
19

  
20
DISK_0_PATH="${output/*disk\/0\:/}"
21

  
22
. @osdir@/@osname@/common.sh
23

  
24
if [ -n "$2" ] ; then
25
    IMAGE_DIR=$2
26
fi
27

  
28
echo "Creating qemu-img image from $INSTANCE_NAME to ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img"
29
$QEMU_IMG convert -O qcow2 $DISK_0_PATH ${IMAGE_DIR}/${IMAGE_NAME}-${ARCH}.img
/dev/null
1
#!/bin/bash
2
set -e
3
INSTANCE_NAME="$1"
4

  
5
if [ -z "$INSTANCE_NAME" ] ; then
6
    echo "Must provide a node name!"
7
    exit 1
8
fi
9

  
10
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
11
OS_VARIANT="${info[0]/*+/}"
12
HYPERVISOR="${info[1]}"
13
DISK_COUNT="${info[2]}"
14
OS_API_VERSION="15"
15

  
16
# do stuff
17
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
18

  
19
DISK_0_PATH="${output/*disk\/0\:/}"
20

  
21
. /usr/share/ganeti/os/image/common.sh
22

  
23
filesystem_dev=$(map_disk0 $blockdev)
24
root_dev=$(map_partition $filesystem_dev root)
25
boot_dev=$(map_partition $filesystem_dev boot)
26

  
27
target="/tmp/${INSTANCE_NAME}_root"
28
mkdir -p $target
29

  
30
# mount filesystems
31
mount_disk0 $target
32
echo "$INSTANCE_NAME is now mounted at $target"
33

  
34
CLEANUP=( )
b/tools/mount-disks.in
1
#!/bin/bash
2
set -e
3
INSTANCE_NAME="$1"
4

  
5
if [ -z "$INSTANCE_NAME" ] ; then
6
    echo "Must provide a node name!"
7
    exit 1
8
fi
9

  
10
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
11
OS_VARIANT="${info[0]/*+/}"
12
HYPERVISOR="${info[1]}"
13
DISK_COUNT="${info[2]}"
14
OS_API_VERSION="15"
15

  
16
# do stuff
17
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
18

  
19
DISK_0_PATH="${output/*disk\/0\:/}"
20

  
21
. @osdir@/@osname@/common.sh
22

  
23
filesystem_dev=$(map_disk0 $blockdev)
24
root_dev=$(map_partition $filesystem_dev root)
25
boot_dev=$(map_partition $filesystem_dev boot)
26

  
27
target="/tmp/${INSTANCE_NAME}_root"
28
mkdir -p $target
29

  
30
# mount filesystems
31
mount_disk0 $target
32
echo "$INSTANCE_NAME is now mounted at $target"
33

  
34
CLEANUP=( )
/dev/null
1
#!/bin/bash
2
set -e
3

  
4
INSTANCE_NAME="$1"
5

  
6
if [ -z "$INSTANCE_NAME" ] ; then
7
    echo "Must provide a node name!"
8
    exit 1
9
fi   
10

  
11
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
12
OS_VARIANT="${info[0]/*+/}"
13
HYPERVISOR="${info[1]}"
14
DISK_COUNT="${info[2]}"
15
OS_API_VERSION="15"
16

  
17
# do stuff
18
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
19

  
20
DISK_0_PATH="${output/*disk\/0\:/}"
21
filesystem_dev="${DISK_0_PATH/\/dev\//}"
22

  
23
. /usr/share/ganeti/os/image/common.sh
24

  
25
target="/tmp/${INSTANCE_NAME}_root"
26

  
27
root_dev=$(map_partition $filesystem_dev root)
28
boot_dev=$(map_partition $filesystem_dev boot)
29

  
30
if [ -n "${boot_dev}" ] ; then
31
   umount $target/boot
32
fi
33

  
34
umount $target
35
rmdir $target
36
$KPARTX -d -p- $DISK_0_PATH
37
gnt-instance deactivate-disks $INSTANCE_NAME
38

  
39
CLEANUP=( )
b/tools/umount-disks.in
1
#!/bin/bash
2
set -e
3

  
4
INSTANCE_NAME="$1"
5

  
6
if [ -z "$INSTANCE_NAME" ] ; then
7
    echo "Must provide a node name!"
8
    exit 1
9
fi   
10

  
11
info=($(gnt-instance list -o os,hypervisor,disk.count --no-headers --separator=' ' $INSTANCE_NAME))
12
OS_VARIANT="${info[0]/*+/}"
13
HYPERVISOR="${info[1]}"
14
DISK_COUNT="${info[2]}"
15
OS_API_VERSION="15"
16

  
17
# do stuff
18
output="$(gnt-instance activate-disks $INSTANCE_NAME)"
19

  
20
DISK_0_PATH="${output/*disk\/0\:/}"
21
filesystem_dev="${DISK_0_PATH/\/dev\//}"
22

  
23
. @osdir@/@osname@/common.sh
24

  
25
target="/tmp/${INSTANCE_NAME}_root"
26

  
27
root_dev=$(map_partition $filesystem_dev root)
28
boot_dev=$(map_partition $filesystem_dev boot)
29

  
30
if [ -n "${boot_dev}" ] ; then
31
   umount $target/boot
32
fi
33

  
34
umount $target
35
rmdir $target
36
$KPARTX -d -p- $DISK_0_PATH
37
gnt-instance deactivate-disks $INSTANCE_NAME
38

  
39
CLEANUP=( )

Also available in: Unified diff