summaryrefslogtreecommitdiffstats
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/meta-virt-hosts.bbclass29
1 files changed, 29 insertions, 0 deletions
diff --git a/classes/meta-virt-hosts.bbclass b/classes/meta-virt-hosts.bbclass
new file mode 100644
index 00000000..80aefb76
--- /dev/null
+++ b/classes/meta-virt-hosts.bbclass
@@ -0,0 +1,29 @@
1# This doesn't work, since it seems to be too late for sanity checking.
2# IMAGE_FEATURES[validitems] += ' ${@bb.utils.contains("DISTRO_FEATURES", "virtualization", "virt-unique-hostname; ", "",d)}'
3
4ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "virt-unique-hostname", "virt_gen_hostname; ", "",d)}'
5ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "virt-unique-hostname", "virt_set_hostname; ", "",d)}'
6
7python virt_gen_hostname() {
8 import uuid
9
10 targetname = d.getVar("VIRT_TARGETNAME")
11 if targetname != None:
12 return
13
14 status, date = oe.utils.getstatusoutput("date +%d-%m-%y")
15 if status:
16 bb.warn("Can't get the date string for target hostname")
17
18 uuid = ':'.join(['{:02x}'.format((uuid.getnode() >> ele) & 0xff) for ele in range(0,8*6,8)][::-1])
19 if uuid:
20 targetname = "%s-%s" % (d.getVar("MACHINE"), uuid.split(":")[0])
21 else:
22 targetname = "%s-%s" % (d.getVar("MACHINE"), date)
23
24 d.setVar("VIRT_TARGETNAME", targetname)
25}
26
27virt_set_hostname() {
28 echo "${VIRT_TARGETNAME}" > ${IMAGE_ROOTFS}/etc/hostname
29}