Dear oVIrt, A while ago we discussed on ways to change/update content of parameters of domxml in certain action.
As I mentioned before, we have added the VDSMHook 60_nsupdate which removes the DNS record entries when a VM is destroyed: … domxml = hooking.read_domxml() name = domxml.getElementsByTagName('name')[0] name = " ".join(name.nodeValue for name in name.childNodes if name.nodeType == name.TEXT_NODE) nsupdate_commands = """server {server_ip} update delete {vm_name}.example.com a update delete {vm_name}. example.com aaaa update delete {vm_name}. example.com txt send """.format(server_ip="172.16.1.10", vm_name=name) … The goal: However, we did not want to execute remove dns records when VM is only migrated. Since its considered a “destroy” action we took following approach. * In state “before_vm_migrate_source add hook which will write flag “is_migration” to domxml * Once VM is scheduled for migration, this hook should add the flag “is_migration” to domxml * Once 60_nsupdate is triggered, it will check for the flag and if there, skip executing dns record action, but only remove the flag “is_migration” from domxml of the VM … domxml = hooking.read_domxml() migration = domxml.createElement("is_migration") domxml.getElementsByTagName("domain")[0].appendChild(migration) logging.info("domxml_updated {}".format(domxml.toprettyxml())) hooking.write_domxml(domxml) … When executing first time, we observed that flag “ <name>hookiesvm</name> <uuid>fcfa66cb-b251-43a3-8e2b-f33b3024a749</uuid> <metadata xmlns:ns0="http://ovirt.org/vm/tune/1.0" xmlns:ns1="http://ovirt.org/vm/1.0"> <ns0:qos/> <ovirt-vm:vm xmlns:ovirt-vm="http://ovirt.org/vm/1.0"> <ovirt-vm:clusterVersion>4.3</ovirt-vm:clusterVersion> <ovirt-vm:destroy_on_reboot type="bool">False</ovirt-vm:destroy_on_reboot> <ovirt-vm:launchPaused>false</ovirt-vm:launchPaused> <ovirt-vm:memGuaranteedSize type="int">1024</ovirt-vm:memGuaranteedSize> <ovirt-vm:minGuaranteedMemoryMb type="int">1024</ovirt-vm:minGuaranteedMemoryMb> ...skipping... <address bus="0x00" domain="0x0000" function="0x0" slot="0x09" type="pci"/> </rng> </devices> <seclabel model="selinux" relabel="yes" type="dynamic"> <label>system_u:system_r:svirt_t:s0:c169,c575</label> <imagelabel>system_u:object_r:svirt_image_t:s0:c169,c575</imagelabel> </seclabel> <seclabel model="dac" relabel="yes" type="dynamic"> <label>+107:+107</label> <imagelabel>+107:+107</imagelabel> </seclabel> <is_migration/> </domain> is added to domxml, but was present once 60_nsupdate hook was executed. The question: How do we make sure that, when domxml is updated, that the update is visible/usable by following hook, in single run? How to pass these changes between hooks? Kindly awaiting your reply. — — — Met vriendelijke groet / Kind regards, Marko Vrgotic
_______________________________________________ Users mailing list -- users@ovirt.org To unsubscribe send an email to users-le...@ovirt.org Privacy Statement: https://www.ovirt.org/site/privacy-policy/ oVirt Code of Conduct: https://www.ovirt.org/community/about/community-guidelines/ List Archives: https://lists.ovirt.org/archives/list/users@ovirt.org/message/DIWEL5PU4OCSMULA2GO3G3AVOVUZUWQK/