docs: def add_node(self, name, desc, layout, node_x, node_y):
          """
              Add a node to a network.
          """
          existing_node = get_session().query(Node).filter(Node.name==name, Node.network_id==self.id).first()
          if existing_node is not None:
              raise HydraError("A node with name %s is already in network %s"%(name, self.id))
  
          node = Node()
          node.name        = name
          node.description = desc
          node.layout      = str(layout) if layout is not None else None
          node.x           = node_x
          node.y           = node_y
  
          #Do not call save here because it is likely that we may want
          #to bulk insert nodes, not one at a time.
  
          get_session().add(node)
  
          self.nodes.append(node)
  
          return node