in src/hpc/autoscale/node/node.py [0:0]
def update(self, snode: "Node") -> None:
for attr, new_value in snode.available.items():
current_value = self.available.get(attr)
if current_value != new_value:
level = (
logging.FINE
if current_value is None or snode.assignments
else logging.WARNING
)
logging.log(
level,
"Updating %s.%s: %s->%s",
self,
attr,
current_value,
new_value,
)
self.available.update(snode.available)
self._resources.update(snode.resources)
# TODO RDH test coverage
self.required = self.required or snode.required or bool(snode.assignments)
self.__assignments.update(snode.assignments)
self.metadata.update(deepcopy(snode.metadata))