-
Notifications
You must be signed in to change notification settings - Fork 26
Adds seapath provided generic qemu hook #808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
ebail
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, I think that is a great to streamline the priority setting.
I think that functions should be documented.
Also I would consider adding units tests specially considering that it is a critical component.
Also I am wondering if we could plug this tool to vm-manager (https://github.com/seapath/vm_manager/tree/main) so that Ansible could be optionally used.
Once a VM is started with vm-manager, correct priorities could be applied.
| import xml.etree.ElementTree as ET | ||
| import subprocess | ||
|
|
||
| #logfile = "/tmp/hook.log" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
please remove deadcode
| print("Usage: configure_guest.py <vm_name> <vm_action>") | ||
| print(" vm_name : name of the guest VM") | ||
| print(" vm_action : one of the following:") | ||
| print(" started - run commands for real") | ||
| print(" started-dry - dry-run, print commands only") | ||
| print(" any other - do nothing and exit") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would use a logger
| sys.exit(0) | ||
|
|
||
| def parse_xml(guest_name): | ||
| filename = f"/etc/pacemaker/{guest_name}.xml" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would use a variable for /etc/pacemaker
| return pid | ||
| time.sleep(delay) | ||
| count += 1 | ||
| print("No qemu process found") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would raise an exception
| if len(sys.argv) < 3: | ||
| usage() | ||
|
|
||
| guest_name = sys.argv[1] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would use optparse: https://docs.python.org/3/library/optparse.html
This hook will run tasks that needs to be run everytime a guest is started: - parse the guest xml - override the network speed of all declared network interfaces to 1Gb (instead of the default 10Mb that make all supervision software believe they use more than 100%) - set all vhost- threads to RR1 if guest is realtime (= use vcpusched) - set cpu affinity of those threads to the same as main qemu thread if guest is realtime Signed-off-by: Florent CARLI <florent.carli@rte-france.com>
|
Hi @insatomcat, I am surprised to see this PR closed. I think that it is a good idea. |
This hook will run tasks that needs to be run everytime a guest is started: