Merge ~brian-murray/ubuntu-archive-tools:deactivate-milestones into ubuntu-archive-tools:main

Proposed by Brian Murray
Status: Merged
Merged at revision: 965b910b81712acd356daef9093d33e4acd012e2
Proposed branch: ~brian-murray/ubuntu-archive-tools:deactivate-milestones
Merge into: ubuntu-archive-tools:main
Diff against target: 63 lines (+57/-0)
1 file modified
deactivate-milestones (+57/-0)
Reviewer Review Type Date Requested Status
Steve Langasek Approve
Ɓukasz Zemczak Pending
Review via email: mp+414433@code.launchpad.net

Description of the change

Its a tool to deactivate all the active milestones for a release which is useful when it becomes End of Life. Additionally, you can specify a milestone name to deactivate it after the Beta release or something.

To post a comment you must log in.
Revision history for this message
Steve Langasek (vorlon) :
review: Needs Fixing
Revision history for this message
Brian Murray (brian-murray) wrote :

Its fixed now.

Revision history for this message
Steve Langasek (vorlon) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/deactivate-milestones b/deactivate-milestones
2new file mode 100755
3index 0000000..649d934
4--- /dev/null
5+++ b/deactivate-milestones
6@@ -0,0 +1,57 @@
7+#!/usr/bin/python3
8+# Author: Brian Murray <brian@canonical.com>
9+# Copyright (C) 2021 Canonical, Ltd.
10+# License: GPLv3
11+
12+from launchpadlib.launchpad import Launchpad
13+import optparse
14+import sys
15+from urllib.request import urlopen
16+from package_subscribers import source_names
17+
18+
19+def main(argv):
20+ parser = optparse.OptionParser(
21+ description="Deactivate all active milestones for a series, or if "
22+ "a milestone name is provided deactive that one",
23+ usage="%prog -s release")
24+ parser.add_option(
25+ '-l', '--launchpad', default='production', dest='lp_instance',
26+ help="Select the Launchpad instance to run against. Defaults to "
27+ "'production'")
28+ parser.add_option(
29+ '-q', '--quiet', action='store_true', default=False,
30+ help="Quieten progress messages")
31+ parser.add_option(
32+ '-s', dest='release', default=None,
33+ help="The release to deactivate milestones")
34+ parser.add_option(
35+ '-m', dest='milestone', default=None,
36+ help="The milestone to deactivate")
37+
38+ options, args = parser.parse_args()
39+
40+ lp = Launchpad.login_with(
41+ "deactivate-milestones", options.lp_instance, version='devel')
42+
43+ ubuntu = lp.distributions['ubuntu']
44+ series = ubuntu.getSeries(name_or_version=options.release)
45+
46+ if len(series.active_milestones) == 0:
47+ print('%s has no active milestones' % series.name)
48+ sys.exit(1)
49+
50+ for milestone in series.active_milestones:
51+ if options.milestone:
52+ if options.milestone == milestone.name:
53+ milestone.is_active = False
54+ milestone.lp_save()
55+ print('%s is no longer active' % milestone.name)
56+ else:
57+ milestone.is_active = False
58+ milestone.lp_save()
59+ print('%s is no longer active' % milestone.name)
60+
61+
62+if __name__ == '__main__':
63+ main(sys.argv)

Subscribers

People subscribed via source and target branches