aboutsummaryrefslogtreecommitdiffstats
path: root/classes/meta-virt-hosts.bbclass
blob: 80aefb76327c131879b6d12e40f64c94907c0503 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# This doesn't work, since it seems to be too late for sanity checking.
# IMAGE_FEATURES[validitems] += ' ${@bb.utils.contains("DISTRO_FEATURES", "virtualization", "virt-unique-hostname; ", "",d)}'

ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "virt-unique-hostname", "virt_gen_hostname; ", "",d)}'
ROOTFS_POSTPROCESS_COMMAND += '${@bb.utils.contains("IMAGE_FEATURES", "virt-unique-hostname", "virt_set_hostname; ", "",d)}'

python virt_gen_hostname() {
    import uuid

    targetname = d.getVar("VIRT_TARGETNAME")
    if targetname != None:
        return

    status, date = oe.utils.getstatusoutput("date +%d-%m-%y")
    if status:
        bb.warn("Can't get the date string for target hostname")

    uuid = ':'.join(['{:02x}'.format((uuid.getnode() >> ele) & 0xff) for ele in range(0,8*6,8)][::-1])
    if uuid:
        targetname = "%s-%s" %  (d.getVar("MACHINE"), uuid.split(":")[0])
    else:
        targetname = "%s-%s" %  (d.getVar("MACHINE"), date)

    d.setVar("VIRT_TARGETNAME", targetname)
}

virt_set_hostname() {
    echo "${VIRT_TARGETNAME}" > ${IMAGE_ROOTFS}/etc/hostname
}