6
from launchpadlib.launchpad import Launchpad
11
SEED_WHITELIST = ["ubuntu-desktop-next", "ubuntugnome", "edubuntu"]
12
PACKAGESET_WHITELIST = {"ubuntugnome", "edubuntu", "i386-excludes", "i386-whitelist"}
13
SEEDED_IN_UBUNTU = "/home/ubuntu-archive/ubuntu-dev-tools/seeded-in-ubuntu"
14
PACKAGE_WHITELIST = ["upstart-app-launch", "click", "click-apparmor",
15
"apparmor-easyprof-ubuntu", "ubuntuone-credentials"]
18
if len(sys.argv) > 1 and sys.argv[1] == "debug":
21
# Connect to Launchpad
22
lp = Launchpad.login_with("auto-accept", "production", version="devel")
23
ubuntu = lp.distributions['ubuntu']
25
# Get the primary archive
26
archive = ubuntu.getArchive(name="primary")
29
series = ubuntu.getSeries(name_or_version=SERIES)
31
if series.status not in ('Active Development', 'Pre-release Freeze'):
32
print("Series no longer in active development; not accepting packages")
35
# Process the packages
36
for pkg in series.getPackageUploads(status=QUEUE, pocket=POCKET,
39
# Whitelisted packages
40
if pkg.package_name in PACKAGE_WHITELIST:
42
print("%s: Accepting due to whitelist: %s (%s)" %
43
(time.asctime(), pkg.package_name, pkg.package_version))
46
# Extract all the packagesets and skip if in any
48
for pkgset in lp.packagesets.setsIncludingSource(
49
distroseries=series, sourcepackagename=pkg.package_name):
50
package_sets.add(pkgset.name)
52
package_sets -= PACKAGESET_WHITELIST
55
print("Skipping '%s' because it's in the following packagesets: %s" %
56
(pkg.package_name, ", ".join(package_sets)))
59
# Extract all the seeds and skip if in any
60
seed = subprocess.Popen([SEEDED_IN_UBUNTU, pkg.package_name],
61
universal_newlines=True, stdout=subprocess.PIPE,
62
stderr=subprocess.PIPE)
63
if seed.wait() != 0 or seed.stderr.read():
65
print("Skipping '%s' due to Invalid output from seeded-in-ubuntu: %s" %
66
(pkg.package_name, seed.stderr.read().strip()))
70
for line in seed.stdout:
71
if not line.startswith(" "):
75
seed = line.split(":")[0]
76
if seed in SEED_WHITELIST:
82
print("Skipping '%s' because it's seeded on: %s" %
83
(pkg.package_name, ", ".join(seeds)))
86
print("%s: Accepting: %s (%s)" % (time.asctime(), pkg.package_name,