logging.debug("Get %s vcpus in virsh vcpuinfo output", vcpuinfo_num) if vcpuinfo_num != int(expect_vcpu_num[i]): raise error.TestFail("Vcpu number in virsh vcpuinfo is unexpected") vcpuinfo_affinity = re.findall('CPU Affinity: +([-y]+)', output) logging.debug("Command vcpuinfo check pass") # Check vcpu number in domain XML, if setvcpu with '--config' option, # or domain is dead, vcpu number correspond to expect_vcpu_num[2], # otherwise, it correspond to expect_vcpu_num[3] dumpxml_option = "" if setvcpu_option == "--config" or vm.is_dead(): dumpxml_option = "--inactive" i = 2 else: i = 3 vmxml = VMXML() vmxml['xml'] = virsh.dumpxml(vm.name, dumpxml_option).stdout.strip() try: if vmxml['vcpu'] != int(expect_vcpu_num[0]): raise error.TestFail("Max vcpu number %s in domain XML is not" " expected" % vmxml['vcpu']) if vmxml['current_vcpu'] != expect_vcpu_num[i]: raise error.TestFail("Current vcpu number %s in domain XML is" " not expected" % vmxml['current_vcpu']) except (ValueError, IndexError), detail: raise error.TestFail(detail) logging.debug("Vcpu number in domain xml check pass") # check cpu affinity got from vcpupin command output, and vcpupin command # output, and vcpupin info(cputune element) in domain xml result = virsh.vcpupin(vm.name, ignore_status=True, debug=True)