Merge ~cjwatson/launchpad-buildd:apt-retries into launchpad-buildd:master

Proposed by Colin Watson
Status: Merged
Approved by: Colin Watson
Approved revision: 65d1ca084a4a07ee4e00ffc553423fe9f6ae4e0b
Merge reported by: Otto Co-Pilot
Merged at revision: not available
Proposed branch: ~cjwatson/launchpad-buildd:apt-retries
Merge into: launchpad-buildd:master
Diff against target: 58 lines (+21/-0)
3 files modified
debian/changelog (+7/-0)
lpbuildd/target/apt.py (+6/-0)
lpbuildd/target/tests/test_apt.py (+8/-0)
Reviewer Review Type Date Requested Status
Cristian Gonzalez (community) Approve
Review via email: mp+411152@code.launchpad.net

Commit message

Configure apt to automatically retry downloads on failures

Description of the change

This helps with slightly flaky networking infrastructure.

To post a comment you must log in.
Revision history for this message
Cristian Gonzalez (cristiangsp) wrote :

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/debian/changelog b/debian/changelog
index 5c972b4..8c8872b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
1launchpad-buildd (204) UNRELEASED; urgency=medium
2
3 * Configure apt to automatically retry downloads on failures
4 (LP: #1949473).
5
6 -- Colin Watson <cjwatson@ubuntu.com> Tue, 02 Nov 2021 13:42:13 +0000
7
1launchpad-buildd (203) bionic; urgency=medium8launchpad-buildd (203) bionic; urgency=medium
29
3 * Remove some more "slave" terminology from tests.10 * Remove some more "slave" terminology from tests.
diff --git a/lpbuildd/target/apt.py b/lpbuildd/target/apt.py
index fc1827a..49b1650 100644
--- a/lpbuildd/target/apt.py
+++ b/lpbuildd/target/apt.py
@@ -39,6 +39,12 @@ class OverrideSourcesList(Operation):
39 sources_list.flush()39 sources_list.flush()
40 os.fchmod(sources_list.fileno(), 0o644)40 os.fchmod(sources_list.fileno(), 0o644)
41 self.backend.copy_in(sources_list.name, "/etc/apt/sources.list")41 self.backend.copy_in(sources_list.name, "/etc/apt/sources.list")
42 with tempfile.NamedTemporaryFile(mode="w+") as apt_retries_conf:
43 print('Acquire::Retries "3";', file=apt_retries_conf)
44 apt_retries_conf.flush()
45 os.fchmod(apt_retries_conf.fileno(), 0o644)
46 self.backend.copy_in(
47 apt_retries_conf.name, "/etc/apt/apt.conf.d/99retries")
42 if self.args.apt_proxy_url is not None:48 if self.args.apt_proxy_url is not None:
43 with tempfile.NamedTemporaryFile(mode="w+") as apt_proxy_conf:49 with tempfile.NamedTemporaryFile(mode="w+") as apt_proxy_conf:
44 print(50 print(
diff --git a/lpbuildd/target/tests/test_apt.py b/lpbuildd/target/tests/test_apt.py
index 2827d00..a946e38 100644
--- a/lpbuildd/target/tests/test_apt.py
+++ b/lpbuildd/target/tests/test_apt.py
@@ -52,6 +52,10 @@ class TestOverrideSourcesList(TestCase):
52 deb http://ppa.launchpad.net/launchpad/ppa/ubuntu xenial main52 deb http://ppa.launchpad.net/launchpad/ppa/ubuntu xenial main
53 """).encode("UTF-8"), stat.S_IFREG | 0o644),53 """).encode("UTF-8"), stat.S_IFREG | 0o644),
54 override_sources_list.backend.backend_fs["/etc/apt/sources.list"])54 override_sources_list.backend.backend_fs["/etc/apt/sources.list"])
55 self.assertEqual(
56 (b'Acquire::Retries "3";\n', stat.S_IFREG | 0o644),
57 override_sources_list.backend.backend_fs[
58 "/etc/apt/apt.conf.d/99retries"])
5559
56 def test_apt_proxy(self):60 def test_apt_proxy(self):
57 args = [61 args = [
@@ -68,6 +72,10 @@ class TestOverrideSourcesList(TestCase):
68 """).encode("UTF-8"), stat.S_IFREG | 0o644),72 """).encode("UTF-8"), stat.S_IFREG | 0o644),
69 override_sources_list.backend.backend_fs["/etc/apt/sources.list"])73 override_sources_list.backend.backend_fs["/etc/apt/sources.list"])
70 self.assertEqual(74 self.assertEqual(
75 (b'Acquire::Retries "3";\n', stat.S_IFREG | 0o644),
76 override_sources_list.backend.backend_fs[
77 "/etc/apt/apt.conf.d/99retries"])
78 self.assertEqual(
71 (dedent("""\79 (dedent("""\
72 Acquire::http::Proxy "http://apt-proxy.example:3128/";80 Acquire::http::Proxy "http://apt-proxy.example:3128/";
73 """).encode("UTF-8"), stat.S_IFREG | 0o644),81 """).encode("UTF-8"), stat.S_IFREG | 0o644),

Subscribers

People subscribed via source and target branches