def METHOD_NAME(self, req):
    ret = basePackageUpload.BasePackageUpload.METHOD_NAME(self, req)
    if ret != apache.OK:
        return ret
    a_pkg = rhnPackageUpload.save_uploaded_package(req,
                                                   (self.package_name, None, self.package_version,
                                                    self.package_release, self.package_arch),
                                                   str(self.org_id),
                                                   self.packaging,
                                                   self.file_checksum_type, self.file_checksum)
    self.rel_package_path = rhnPackageUpload.relative_path_from_header(
        a_pkg.header, org_id=self.org_id,
        checksum_type=a_pkg.checksum_type, checksum=a_pkg.checksum)
    self.package_path = os.path.join(CFG.MOUNT_POINT,
                                     self.rel_package_path)
    try:
        package_dict, diff_level = rhnPackageUpload.push_package(a_pkg,
                                                                 force=self.force,
                                                                 relative_path=self.rel_package_path,
                                                                 org_id=self.org_id)
    except InvalidArchError:
        e = sys.exc_info()[1]
        req.write(str(e))
        return apache.HTTP_NOT_ACCEPTABLE
    except Exception:
        e = sys.exc_info()[1]
        req.write(str(e))
        return apache.HTTP_BAD_REQUEST
    if diff_level:
        return self._send_package_diff(req, diff_level, package_dict)
    # Everything went fine
    rhnSQL.commit()
    reply = "All OK"
    req.headers_out['Content-Length'] = str(len(reply))
    req.send_http_header()
    req.write(reply)
    log_debug(2, "Returning with OK")
    return apache.OK