Revision 3822d893

b/Makefile.am
11 11
toolsdir=$(osdir)/$(osname)/tools
12 12

  
13 13
dist_os_SCRIPTS = ${srcdir}/create ${srcdir}/import ${srcdir}/export ${srcdir}/rename ${srcdir}/verify
14
dist_tools_SCRIPTS = ${srcdir}/tools/*
14
dist_tools_SCRIPTS = ${srcdir}/tools/snf-passtohash.py
15 15
dist_os_DATA = ${srcdir}/ganeti_api_version ${srcdir}/parameters.list ${srcdir}/common_linux.sh ${srcdir}/common_windows.sh
16 16
if WINSUPPORT
17 17
dist_os_DATA += ${srcdir}/unattend.xml
18 18
endif
19 19
dist_config_DATA = variants.list
20 20
os_DATA = common.sh
21
tools_SCRIPTS = tools/make-dump tools/make-qemu-img tools/mount-disks tools/umount-disks
21 22

  
22 23
dist_linuxcustom_DATA = ${srcdir}/example/hooks/linux/*
23 24
if WINSUPPORT
......
46 47
	   -e 's|@INSTALL_MBR[@]|$(INSTALL_MBR)|g'
47 48

  
48 49

  
49
common.sh: $(srcdir)/common.sh.in Makefile
50
tools_builddir:
51
	@mkdir_p@ tools
52

  
53
$(tools_SCRIPTS) common.sh: Makefile
50 54
	rm -f $@ $@.tmp
51 55
	srcdir=''; \
52 56
		   test -f ./$@.in || srcdir=$(srcdir)/; \
53 57
		   $(edit) $${srcdir}$@.in >$@.tmp
54 58
	mv $@.tmp $@
55 59

  
60
common.sh: $(srcdir)/common.sh.in
61
tools/make-dump: $(srcdir)/tools/make-dump.in tools_builddir
62
tools/make-qemu-img: $(srcdir)/tools/make-qemu-img.in tools_builddir
63
tools/mount-disks: $(srcdir)/tools/mount-disks.in tools_builddir
64
tools/umount-disks: $(srcdir)/tools/umount-disks.in tools_builddir
65

  
56 66
install-exec-local:
57 67
	@mkdir_p@ "$(DESTDIR)$(osdir)/$(osname)"
58 68
	@mkdir_p@ "$(DESTDIR)$(variantsdir)"
......
63 73
	touch "$(DESTDIR)$(variantsdir)/default.conf"
64 74
	ln -fs $(DESTDIR)$(configdir)/variants.list $(DESTDIR)$(osdir)/variants.list
65 75

  
66
CLEANFILES = common.sh
76
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