'Creates a guest snapshot.
:param conf: libvirt.LibvirtConfigGuestSnapshotDisk
:param no_metadata: Make snapshot without remembering it
:param disk_only: Disk snapshot, no system checkpoint
:param reuse_ext: Reuse any existing external files
:param quiesce: Use QGA to quiece all mounted file systems'

def snapshot(self, conf, no_metadata=False, disk_only=False, reuse_ext=False, quiesce=False):

    flags = (no_metadata and (libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_NO_METADATA or 0))
    flags |= (disk_only and (libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY or 0))
    flags |= (reuse_ext and (libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT or 0))
    flags |= ((quiesce and libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE) or 0)
    device_xml = conf.to_xml()
    if (six.PY3 and isinstance(device_xml, six.binary_type)):
        device_xml = device_xml.decode('utf-8')
    self._domain.snapshotCreateXML(device_xml, flags=flags)
