code: def lock(self, back=None, remote=None):
          '''
          ``remote`` can either be a dictionary containing repo configuration
          information, or a pattern. If the latter, then remotes for which the URL
          matches the pattern will be locked.
          '''
          back = self.backends(back)
          locked = []
          errors = []
          for fsb in back:
              fstr = '{0}.lock'.format(fsb)
              if fstr in self.servers:
                  msg = 'Setting update lock for {0} remotes'.format(fsb)
                  if remote:
                      if not isinstance(remote, six.string_types):
                          errors.append(
                              'Badly formatted remote pattern \'{0}\''
                              .format(remote)
                          )
                          continue
                      else:
                          msg += ' matching {0}'.format(remote)
                  log.debug(msg)
                  good, bad = self.servers[fstr](remote=remote)
                  locked.extend(good)
                  errors.extend(bad)
          return locked, errorf lock(self, back=None, remote=None):
          '''
          ``remote`` can either be a dictionary containing repo configuration
          information, or a pattern. If the latter, then remotes for which the URL
          matches the pattern will be locked.
          '''
          back = self.backends(back)
          locked = []
          errors = []
          for fsb in back:
              fstr = '{0}.lock'.format(fsb)
              if fstr in self.servers:
                  msg = 'Setting update lock for {0} remotes'.format(fsb)
                  if remote:
                      if not isinstance(remote, six.string_types):
                          errors.append(
                              'Badly formatted remote pattern \'{0}\''
                              .format(remote)
                          )
                          continue
                      else:
                          msg += ' matching {0}'.format(remote)
                  log.debug(msg)
                  good, bad = self.servers[fstr](remote=remote)
                  locked.extend(good)
                  errors.extend(bad)
          return locked, errors
docs: ``remote`` can either be a dictionary containing repo configuration
          information, or a pattern. If the latter, then remotes for which the URL
          matches the pattern will be locked.