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

Subscribers

People subscribed via source and target branches