docs: def package(self):
          """
          Find a package name from a build task's parameters.
  
          :returns: name of the package this build task is building.
          :raises: ValueError if we could not parse this tasks's request params.
          """
          if self.method == 'buildNotification':
              return self.params[1]['name']
          if self.method in ('createImage', 'image', 'livecd'):
              return self.params[0]
          if self.method == 'indirectionimage':
              return self.params[0]['name']
          # params[0] is the source URL for these tasks:
          if self.method not in ('build', 'buildArch', 'buildContainer',
                                 'buildMaven', 'buildSRPMFromSCM', 'maven'):
              return None
          # (I wish there was a better way to do this.)
          source = self.params[0]
          o = urlparse(source)
          # build tasks can load an SRPM from a "cli-build" tmpdir:
          if source.endswith('.src.rpm'):
              srpm = os.path.basename(source)
              (name, version, release) = srpm.rsplit('-', 2)
              # Note we're throwing away version and release here. They could be
              # useful eventually, maybe in a "Package" class.
              return name
          # or an allowed SCM:
          elif o.scheme:
              package = os.path.basename(o.path)
              if package.endswith('.git'):
                  package = package[:-4]
              if self.method == 'buildContainer':
                  package += '-container'
              return package
          raise ValueError('could not parse source "%s"' % source)