def update()

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))