code: def save_project(self, project):
          
          pid = project.pid
  
          # project created
          # project updated
  
          if project.is_active:
              # project is not deleted
              logger.debug("project is active")
              ds_project = self.get_project(pid)
              if ds_project is None:
                  self._call(["add", "account", "name=%s" % pid] + self._add_account_extra)
  
              # update project meta information
              name = self._truncate(project.name, 40)
              self._call([
                  "modify", "account",
                  "set", "Description=%s" % self._filter_string(name),
                  "where", "name=%s" % pid])
              self._call([
                  "modify", "account",
                  "set", "Organization=%s"
                  % self._filter_string(project.institute.name),
                  "where", "name=%s" % pid])
          else:
              # project is deleted
              logger.debug("project is not active")
              ds_project = self.get_project(pid)
              if ds_project is not None:
                  self._call(["delete", "account", "name=%s" % pid])
  
          return
docs: Called when project is saved/updated.