mirror of
https://github.com/gyptazy/ProxLB.git
synced 2026-04-05 20:31:57 +02:00
fix: Fix tag evluation for VMs for being ignored for further balancing
Fixes: #163 Fixes: #165
This commit is contained in:
2
.changelogs/1.1.1/163_fix_ignore_vm_tag.yml
Normal file
2
.changelogs/1.1.1/163_fix_ignore_vm_tag.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
fixed:
|
||||
- Fix tag evluation for VMs for being ignored for further balancing [#163]
|
||||
2
.changelogs/1.1.1/165_improve_logging_servity.yml
Normal file
2
.changelogs/1.1.1/165_improve_logging_servity.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
fixed:
|
||||
- Improve logging verbosity of messages that had a wrong servity [#165]
|
||||
1
.changelogs/1.1.1/release_meta.yml
Normal file
1
.changelogs/1.1.1/release_meta.yml
Normal file
@@ -0,0 +1 @@
|
||||
date: TBD
|
||||
@@ -52,22 +52,30 @@ class Balancing:
|
||||
"""
|
||||
for guest_name, guest_meta in proxlb_data["guests"].items():
|
||||
|
||||
# Check if the the guest's target is not the same as the current node
|
||||
if guest_meta["node_current"] != guest_meta["node_target"]:
|
||||
guest_id = guest_meta["id"]
|
||||
guest_node_current = guest_meta["node_current"]
|
||||
guest_node_target = guest_meta["node_target"]
|
||||
# Check if the guest is not ignored and perform the balancing
|
||||
# operation based on the guest type
|
||||
if not guest_meta["ignore"]:
|
||||
guest_id = guest_meta["id"]
|
||||
guest_node_current = guest_meta["node_current"]
|
||||
guest_node_target = guest_meta["node_target"]
|
||||
|
||||
# VM Balancing
|
||||
if guest_meta["type"] == "vm":
|
||||
self.exec_rebalancing_vm(proxmox_api, proxlb_data, guest_name)
|
||||
# VM Balancing
|
||||
if guest_meta["type"] == "vm":
|
||||
self.exec_rebalancing_vm(proxmox_api, proxlb_data, guest_name)
|
||||
|
||||
# CT Balancing
|
||||
elif guest_meta["type"] == "ct":
|
||||
self.exec_rebalancing_ct(proxmox_api, proxlb_data, guest_name)
|
||||
# CT Balancing
|
||||
elif guest_meta["type"] == "ct":
|
||||
self.exec_rebalancing_ct(proxmox_api, proxlb_data, guest_name)
|
||||
|
||||
# Hopefully never reaching, but should be catched
|
||||
# Just in case we get a new type of guest in the future
|
||||
else:
|
||||
logger.critical(f"Balancing: Got unexpected guest type: {guest_meta['type']}. Cannot proceed guest: {guest_meta['name']}.")
|
||||
else:
|
||||
logger.critical(f"Balancing: Got unexpected guest type: {guest_meta['type']}. Cannot proceed guest: {guest_meta['name']}.")
|
||||
logger.debug(f"Balancing: Guest {guest_name} is ignored and will not be rebalanced.")
|
||||
else:
|
||||
logger.debug(f"Balancing: Guest {guest_name} is already on the target node {guest_meta['node_target']} and will not be rebalanced.")
|
||||
|
||||
def exec_rebalancing_vm(self, proxmox_api: any, proxlb_data: Dict[str, Any], guest_name: str) -> None:
|
||||
"""
|
||||
|
||||
@@ -119,10 +119,8 @@ class Calculations:
|
||||
if method_value_highest - method_value_lowest > balanciness:
|
||||
proxlb_data["meta"]["balancing"]["balance"] = True
|
||||
logger.debug(f"Guest balancing is required. Highest value: {method_value_highest}, lowest value: {method_value_lowest} balanced by {method} and {mode}.")
|
||||
logger.critical(f"Guest balancing is required. Highest value: {method_value_highest}, lowest value: {method_value_lowest} balanced by {method} and {mode}.")
|
||||
else:
|
||||
logger.debug(f"Guest balancing is ok. Highest value: {method_value_highest}, lowest value: {method_value_lowest} balanced by {method} and {mode}.")
|
||||
logger.critical(f"Guest balancing is ok. Highest value: {method_value_highest}, lowest value: {method_value_lowest} balanced by {method} and {mode}.")
|
||||
|
||||
else:
|
||||
logger.warning("No guests for balancing found.")
|
||||
|
||||
Reference in New Issue
Block a user