Merge lp:~laney/ubuntu-archive-publishing/more-options into lp:ubuntu-archive-publishing

Proposed by Iain Lane
Status: Merged
Merged at revision: 116
Proposed branch: lp:~laney/ubuntu-archive-publishing/more-options
Merge into: lp:ubuntu-archive-publishing
Diff against target: 156 lines (+39/-20)
2 files modified
lib/scripts/generate_extra_overrides.py (+31/-14)
tests/test_generate_extra_overrides.py (+8/-6)
To merge this branch: bzr merge lp:~laney/ubuntu-archive-publishing/more-options
Reviewer Review Type Date Requested Status
Colin Watson Approve
Ubuntu Package Archive Administrators Pending
Review via email: mp+402697@code.launchpad.net

Description of the change

Add some options to make it easier to run generate-extra-overrides locally

To post a comment you must log in.
Revision history for this message
Colin Watson (cjwatson) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'lib/scripts/generate_extra_overrides.py'
2--- lib/scripts/generate_extra_overrides.py 2020-02-06 12:21:14 +0000
3+++ lib/scripts/generate_extra_overrides.py 2021-05-13 12:48:40 +0000
4@@ -103,6 +103,15 @@
5 self.parser.add_option(
6 "-s", "--series", dest="series", action="append",
7 help="Series to operate on (may be given multiple times).")
8+ self.parser.add_option(
9+ "-a", "--arch", dest="architectures", action="append",
10+ help="Arches to operate on (may be given multiple times).")
11+ self.parser.add_option(
12+ "-g", "--germinate-root", dest="germinate_root",
13+ help="Location to write germinate output to.")
14+ self.parser.add_option(
15+ "-m", "--misc-root", dest="misc_root",
16+ help="Location to write miscellaneous output to.")
17
18 @property
19 def name(self):
20@@ -140,18 +149,20 @@
21 # the distribution's archives in the ARCHIVEROOTS environment
22 # variable, joined by spaces. We only care about the first archive.
23 self.archiveroot = os.environ["ARCHIVEROOTS"].split()[0]
24- self.germinateroot = self.archiveroot + "-germinate"
25- self.miscroot = self.archiveroot + "-misc"
26+ if not self.options.germinate_root:
27+ self.options.germinate_root = self.archiveroot + "-germinate"
28+ if not self.options.misc_root:
29+ self.options.misc_root = self.archiveroot + "-misc"
30
31 def setUpDirs(self):
32 """Create output directories if they did not already exist."""
33- if not file_exists(self.germinateroot):
34+ if not file_exists(self.options.germinate_root):
35 self.logger.debug(
36- "Creating germinate root %s.", self.germinateroot)
37- os.makedirs(self.germinateroot)
38- if not file_exists(self.miscroot):
39- self.logger.debug("Creating misc root %s.", self.miscroot)
40- os.makedirs(self.miscroot)
41+ "Creating germinate root %s.", self.options.germinate_root)
42+ os.makedirs(self.options.germinate_root)
43+ if not file_exists(self.options.misc_root):
44+ self.logger.debug("Creating misc root %s.", self.options.misc_root)
45+ os.makedirs(self.options.misc_root)
46
47 def addLogHandler(self):
48 """Send germinate's log output to a separate file."""
49@@ -160,7 +171,8 @@
50
51 self.germinate_logger = logging.getLogger("germinate")
52 self.germinate_logger.setLevel(logging.INFO)
53- self.log_file = os.path.join(self.germinateroot, "germinate.output")
54+ self.log_file = os.path.join(self.options.germinate_root,
55+ "germinate.output")
56 self.log_handler = logging.FileHandler(self.log_file, mode="w")
57 self.log_handler.setFormatter(GerminateFormatter())
58 self.germinate_logger.addHandler(self.log_handler)
59@@ -212,7 +224,7 @@
60
61 def composeOutputPath(self, flavour, series_name, arch, base):
62 return os.path.join(
63- self.germinateroot,
64+ self.options.germinate_root,
65 "%s_%s_%s_%s" % (base, flavour, series_name, arch))
66
67 def recordOutput(self, path, seed_outputs):
68@@ -387,7 +399,8 @@
69 Any per-seed outputs not in seed_outputs are considered stale.
70 """
71 all_outputs = glob.glob(
72- os.path.join(self.germinateroot, "*_*_%s_*" % series_name))
73+ os.path.join(self.options.germinate_root,
74+ "*_*_%s_*" % series_name))
75 for output in all_outputs:
76 if os.path.basename(output) not in seed_outputs:
77 os.remove(output)
78@@ -415,7 +428,8 @@
79
80 seed_outputs = set()
81 override_path = os.path.join(
82- self.miscroot, "more-extra.override.%s.main" % series_name)
83+ self.options.misc_root,
84+ "more-extra.override.%s.main" % series_name)
85 with AtomicFile(override_path) as override_file:
86 for pid, reader in procs:
87 log_records, overrides, arch_seed_outputs = pickle.load(
88@@ -435,8 +449,11 @@
89 for series in self.series:
90 series_name = series.name
91 components = self.getComponents(series)
92- architectures = sorted(
93- arch.architecture_tag for arch in series.architectures)
94+ if not self.options.architectures:
95+ architectures = sorted(
96+ arch.architecture_tag for arch in series.architectures)
97+ else:
98+ architectures = self.options.architectures
99
100 self.generateExtraOverrides(
101 series_name, components, architectures, self.args,
102
103=== modified file 'tests/test_generate_extra_overrides.py'
104--- tests/test_generate_extra_overrides.py 2014-06-30 01:11:46 +0000
105+++ tests/test_generate_extra_overrides.py 2021-05-13 12:48:40 +0000
106@@ -453,7 +453,7 @@
107 flavour, self.distroseries[0].name, arch, base)
108 self.assertEqual(
109 "%s/%s_%s_%s_%s" % (
110- self.script.germinateroot, base, flavour,
111+ self.script.options.germinate_root, base, flavour,
112 self.distroseries[0].name, arch),
113 output)
114
115@@ -693,7 +693,7 @@
116 seed_old_file = "old_flavour_%s_i386" % series_name
117 seed_new_file = "new_flavour_%s_i386" % series_name
118 other_file = "other-file"
119- output = partial(os.path.join, self.script.germinateroot)
120+ output = partial(os.path.join, self.script.options.germinate_root)
121 for base in (seed_old_file, seed_new_file, other_file):
122 write_file(output(base), "")
123 self.script.removeStaleOutputs(series_name, set([seed_new_file]))
124@@ -716,10 +716,10 @@
125
126 self.script.process(seed_bases=["file://%s" % self.seeddir])
127 self.assertFalse(os.path.exists(os.path.join(
128- self.script.miscroot,
129+ self.script.options.misc_root,
130 "more-extra.override.%s.main" % self.distroseries[0].name)))
131 self.assertTrue(os.path.exists(os.path.join(
132- self.script.miscroot,
133+ self.script.options.misc_root,
134 "more-extra.override.%s.main" % self.distroseries[1].name)))
135
136 def test_process_removes_only_stale_files(self):
137@@ -784,7 +784,8 @@
138
139 self.script.process(seed_bases=["file://%s" % self.seeddir])
140 override_path = os.path.join(
141- self.script.miscroot, "more-extra.override.%s.main" % series_name)
142+ self.script.options.misc_root,
143+ "more-extra.override.%s.main" % series_name)
144 expected_overrides = [
145 "%s/%s Task %s" % (package, das_one.architecture_tag, seed),
146 "%s/%s Task %s" % (package, das_two.architecture_tag, seed),
147@@ -792,7 +793,8 @@
148 self.assertCountEqual(
149 expected_overrides, file_contents(override_path).splitlines())
150
151- log_file = os.path.join(self.script.germinateroot, "germinate.output")
152+ log_file = os.path.join(self.script.options.germinate_root,
153+ "germinate.output")
154 self.assertIn("Downloading file://", file_contents(log_file))
155
156 def test_run_script_help(self):

Subscribers

People subscribed via source and target branches