def generate_exact(self, model, vcpu_num, host_cpu):
nested = {'<STR_LIT>': '<STR_LIT>', '<STR_LIT>': '<STR_LIT>'}<EOL>cpu = ET.Element('<STR_LIT>', match='<STR_LIT>')<EOL>ET.SubElement(cpu, '<STR_LIT>').text = model<EOL>cpu.append(self.generate_topology(vcpu_num))<EOL>vendor = host_cpu.findtext('<STR_LIT>')<EOL>if not nested.get(vendor):<EOL><INDENT>LOGGER.debug(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format(vendor)<EOL>)<EOL>return cpu<EOL><DEDENT>model_vendor = LibvirtCPU.get_cpu_vendor(family=model)<EOL>if vendor != model_vendor:<EOL><INDENT>LOGGER.debug(<EOL>(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'.format(vendor, model_vendor)<EOL>)<EOL>)<EOL>return cpu<EOL><DEDENT>flag = nested[vendor]<EOL>if host_cpu.find('<STR_LIT>'.format(flag)) is not None:<EOL><INDENT>cpu.append(self.generate_feature(name=flag))<EOL><DEDENT>else:<EOL><INDENT>LOGGER.debug(<EOL>(<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>'<EOL>).format(flag)<EOL>)<EOL><DEDENT>return cpu<EOL>
Generate exact CPU model with nested virtualization CPU feature.

Args:
    model(str): libvirt supported CPU model
    vcpu_num(int): number of virtual cpus
    host_cpu(lxml.etree.Element): the host CPU model

Returns:
    lxml.etree.Element: CPU XML node