code: def update(self, **kwargs):
          
  
          # When updating properties used only on controller we don't need to call the compute
          update_compute = False
  
          old_json = self.__json__()
  
          compute_properties = None
          # Update node properties with additional elements
          for prop in kwargs:
              if getattr(self, prop) != kwargs[prop]:
                  if prop not in self.CONTROLLER_ONLY_PROPERTIES:
                      update_compute = True
  
                  # We update properties on the compute and wait for the anwser from the compute node
                  if prop == "properties":
                      compute_properties = kwargs[prop]
                  else:
                      setattr(self, prop, kwargs[prop])
  
          self._list_ports()
          # We send notif only if object has changed
          if old_json != self.__json__():
              self.project.controller.notification.emit("node.updated", self.__json__())
          if update_compute:
              data = self._node_data(properties=compute_properties)
              response = yield from self.put(None, data=data)
              yield from self.parse_node_response(response.json)
          self.project.dump()
docs: Update the node on the compute server
  
          :param kwargs: Node properties