#!/usr/bin/python from MgaRepo import Error, config from MgaRepo.rpmutil import get_srpm from MgaRepo.cgiutil import CgiError, get_targets import sys import os import xmlrpc.client, cgi class XmlRpcIface: def author_email(self, author): return config.get("users", author) def submit_package(self, packageurl, packagerev, targetname): username = os.environ.get("REMOTE_USER") packager = config.get("users", username) if not packager: raise CgiError("your email was not found") elif not packagerev: raise CgiError("no revision provided") elif not targetname: raise CgiError("no target provided") else: targetname = targetname.lower() for target in get_targets(): if target.name.lower() == targetname: break else: raise CgiError("target not found") try: tmp = int(packagerev) except ValueError: raise CgiError("invalid revision provided") for allowed in target.allowed: if packageurl.startswith(allowed): break else: raise CgiError("%s is not allowed for this target" \ % packageurl) get_srpm(packageurl, revision=packagerev, targetdirs=target.target, packager=packager, revname=1, svnlog=1, scripts=target.scripts) return 1 def submit_targets(self): return [x.name for x in get_targets()] TEMPLATE = """\ Content-type: text/html