docs: def find_and_reserve_fcp(self, assigner_id):
          """reserve the fcp to assigner_id
  
          The function to reserve a fcp for user
          1. Check whether assigner_id has a fcp already
             if yes, make the reserve of that record to 1
          2. No fcp, then find a fcp and reserve it
  
          fcp will be returned, or None indicate no fcp
          """
          fcp_list = self.db.get_from_assigner(assigner_id)
          if not fcp_list:
              new_fcp = self.db.find_and_reserve()
              if new_fcp is None:
                  LOG.info("no more fcp to be allocated")
                  return None
  
              LOG.debug("allocated %s fcp for %s assigner" %
                        (new_fcp, assigner_id))
              return new_fcp
          else:
              # we got it from db, let's reuse it
              old_fcp = fcp_list[0][0]
              self.db.reserve(fcp_list[0][0])
              return old_fcp