← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] ~artemstreltsov/launchpad-buildd:add_snap_refresh_snapd into launchpad-buildd:master

 

Artem Streltsov has proposed merging ~artemstreltsov/launchpad-buildd:add_snap_refresh_snapd into launchpad-buildd:master with ~artemstreltsov/launchpad-buildd:remove_snap_install_hello as a prerequisite.

Commit message:
Add snap refresh snapd

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)

For more details, see:
https://code.launchpad.net/~artemstreltsov/launchpad-buildd/+git/launchpad-buildd/+merge/492624
-- 
Your team Launchpad code reviewers is requested to review the proposed merge of ~artemstreltsov/launchpad-buildd:add_snap_refresh_snapd into launchpad-buildd:master.
diff --git a/lpbuildd/target/build_charm.py b/lpbuildd/target/build_charm.py
index 95dade1..4210d0f 100644
--- a/lpbuildd/target/build_charm.py
+++ b/lpbuildd/target/build_charm.py
@@ -85,6 +85,7 @@ class BuildCharm(
         self.backend.run(["apt-get", "-y", "install"] + deps)
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         for snap_name, channel in sorted(self.args.channels.items()):
             # charmcraft is handled separately, since it requires --classic.
             if snap_name != "charmcraft":
diff --git a/lpbuildd/target/build_craft.py b/lpbuildd/target/build_craft.py
index 6998740..b36a661 100644
--- a/lpbuildd/target/build_craft.py
+++ b/lpbuildd/target/build_craft.py
@@ -111,6 +111,7 @@ class BuildCraft(
         self.backend.run(["apt-get", "-y", "install"] + deps)
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         for snap_name, channel in sorted(self.args.channels.items()):
             # sourcecraft is handled separately, since it requires --classic,
             # which disables all sandboxing to ensure it runs with no strict
diff --git a/lpbuildd/target/build_livefs.py b/lpbuildd/target/build_livefs.py
index 775d4ba..1976940 100644
--- a/lpbuildd/target/build_livefs.py
+++ b/lpbuildd/target/build_livefs.py
@@ -127,6 +127,7 @@ class BuildLiveFS(SnapStoreOperationMixin, Operation):
         self.backend.run(["apt-get", "-y", "install"] + deps)
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         if self.args.locale is not None:
             self.backend.run(
                 [
diff --git a/lpbuildd/target/build_oci.py b/lpbuildd/target/build_oci.py
index 28c4869..7a5424f 100644
--- a/lpbuildd/target/build_oci.py
+++ b/lpbuildd/target/build_oci.py
@@ -82,6 +82,7 @@ class BuildOCI(
         self.backend.run(["apt-get", "-y", "install", "docker.io"])
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         self.backend.run(["systemctl", "restart", "docker"])
         # The docker snap can't see /build, so we have to do our work under
         # /home/buildd instead.  Make sure it exists.
diff --git a/lpbuildd/target/build_rock.py b/lpbuildd/target/build_rock.py
index 1d8e9fd..c0e8ce6 100644
--- a/lpbuildd/target/build_rock.py
+++ b/lpbuildd/target/build_rock.py
@@ -92,6 +92,7 @@ class BuildRock(
         self.backend.run(["apt-get", "-y", "install"] + deps)
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         for snap_name, channel in sorted(self.args.channels.items()):
             # rockcraft is handled separately, since it requires --classic,
             # which disables all sandboxing to ensure it runs with no strict
diff --git a/lpbuildd/target/build_snap.py b/lpbuildd/target/build_snap.py
index 5d957ae..9ee7014 100644
--- a/lpbuildd/target/build_snap.py
+++ b/lpbuildd/target/build_snap.py
@@ -150,6 +150,7 @@ class BuildSnap(
         self.backend.run(["apt-get", "-y", "install"] + deps)
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         for snap_name, channel in sorted(self.args.channels.items()):
             # snapcraft is handled separately, since it requires --classic.
             if snap_name != "snapcraft":
diff --git a/lpbuildd/target/run_ci.py b/lpbuildd/target/run_ci.py
index 54aca19..f626078 100644
--- a/lpbuildd/target/run_ci.py
+++ b/lpbuildd/target/run_ci.py
@@ -65,6 +65,7 @@ class RunCIPrepare(
         self.backend.run(["apt-get", "-y", "install"] + deps)
         if self.backend.supports_snapd:
             self.snap_store_set_proxy()
+            self.snap_refresh_snapd()
         for snap_name, channel in sorted(self.args.channels.items()):
             if snap_name not in ("lxd", "lpci"):
                 self.backend.run(
diff --git a/lpbuildd/target/snapstore.py b/lpbuildd/target/snapstore.py
index 348e6d5..73a78cb 100644
--- a/lpbuildd/target/snapstore.py
+++ b/lpbuildd/target/snapstore.py
@@ -39,3 +39,6 @@ class SnapStoreOperationMixin:
             self.backend.run(
                 ["snap", "set", "core", f"proxy.store={store_id}"]
             )
+
+    def snap_refresh_snapd(self):
+        self.backend.run(["snap", "refresh", "snapd"])
diff --git a/lpbuildd/target/tests/test_build_charm.py b/lpbuildd/target/tests/test_build_charm.py
index c9f11c3..7154873 100644
--- a/lpbuildd/target/tests/test_build_charm.py
+++ b/lpbuildd/target/tests/test_build_charm.py
@@ -23,8 +23,9 @@ from lpbuildd.target.tests.matchers import (
     RanAptGet,
     RanBuildCommand,
     RanCommand,
+    RanSnap,
 )
-from lpbuildd.target.tests.test_build_snap import FakeRevisionID, RanSnap
+from lpbuildd.target.tests.test_build_snap import FakeRevisionID
 from lpbuildd.tests.fakebuilder import FakeMethod
 
 
@@ -107,6 +108,7 @@ class TestBuildCharm(TestCase):
                     RanAptGet(
                         "install", "bzr", "python3-pip", "python3-setuptools"
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--channel=candidate", "core"),
                     RanSnap("install", "--channel=beta", "core18"),
                     RanSnap(
@@ -138,6 +140,7 @@ class TestBuildCharm(TestCase):
                     RanAptGet(
                         "install", "bzr", "python3-pip", "python3-setuptools"
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "charmcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -165,6 +168,7 @@ class TestBuildCharm(TestCase):
                     RanAptGet(
                         "install", "git", "python3-pip", "python3-setuptools"
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "charmcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -220,6 +224,7 @@ class TestBuildCharm(TestCase):
                     RanCommand(
                         ["snap", "set", "core", "proxy.store=store-id"]
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "charmcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -260,6 +265,7 @@ class TestBuildCharm(TestCase):
                         "python3-pip",
                         "python3-setuptools",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "charmcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -310,6 +316,7 @@ class TestBuildCharm(TestCase):
                         "python3-pip",
                         "python3-setuptools",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "charmcraft"),
                     RanCommand(["rm", "-rf", "/var/lib/apt/lists"]),
                     RanCommand(["update-ca-certificates"]),
@@ -408,6 +415,7 @@ class TestBuildCharm(TestCase):
                         "python3-pip",
                         "python3-setuptools",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "charmcraft"),
                     RanCommand(["rm", "-rf", "/var/lib/apt/lists"]),
                     RanCommand(["update-ca-certificates"]),
diff --git a/lpbuildd/target/tests/test_build_craft.py b/lpbuildd/target/tests/test_build_craft.py
index 88ac97d..7a31ef2 100644
--- a/lpbuildd/target/tests/test_build_craft.py
+++ b/lpbuildd/target/tests/test_build_craft.py
@@ -102,6 +102,7 @@ class TestBuildCraft(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "bzr"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--channel=candidate", "core"),
                     RanSnap("install", "--channel=beta", "core18"),
                     RanSnap(
@@ -131,6 +132,7 @@ class TestBuildCraft(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "bzr"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -161,6 +163,7 @@ class TestBuildCraft(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -219,6 +222,7 @@ class TestBuildCraft(TestCase):
                     RanCommand(
                         ["snap", "set", "core", "proxy.store=store-id"]
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -262,6 +266,7 @@ class TestBuildCraft(TestCase):
                         "socat",
                         "git",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -315,6 +320,7 @@ class TestBuildCraft(TestCase):
                         "socat",
                         "git",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -416,6 +422,7 @@ class TestBuildCraft(TestCase):
                         "socat",
                         "git",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -1453,6 +1460,7 @@ class TestBuildCraft(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git", "clamav"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -1507,6 +1515,7 @@ class TestBuildCraft(TestCase):
                         "git",
                         "clamav",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
@@ -1550,6 +1559,7 @@ class TestBuildCraft(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git", "clamav"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap(
                         "install",
                         "--classic",
diff --git a/lpbuildd/target/tests/test_build_livefs.py b/lpbuildd/target/tests/test_build_livefs.py
index 21633ab..f4d8815 100644
--- a/lpbuildd/target/tests/test_build_livefs.py
+++ b/lpbuildd/target/tests/test_build_livefs.py
@@ -18,6 +18,7 @@ from lpbuildd.target.tests.matchers import (
     RanAptGet,
     RanBuildCommand,
     RanCommand,
+    RanSnap,
 )
 from lpbuildd.tests.fakebuilder import FakeMethod
 
@@ -37,7 +38,10 @@ class TestBuildLiveFS(TestCase):
         self.assertThat(
             build_livefs.backend.run.calls,
             MatchesListwise(
-                [RanAptGet("install", "livecd-rootfs")],
+                [
+                    RanAptGet("install", "livecd-rootfs"),
+                    RanSnap("refresh", "snapd"),
+                ],
             ),
         )
 
@@ -58,6 +62,7 @@ class TestBuildLiveFS(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "livecd-rootfs"),
+                    RanSnap("refresh", "snapd"),
                     RanAptGet(
                         "--install-recommends",
                         "install",
@@ -111,6 +116,7 @@ class TestBuildLiveFS(TestCase):
                     RanCommand(
                         ["snap", "set", "core", "proxy.store=store-id"]
                     ),
+                    RanSnap("refresh", "snapd"),
                 ]
             ),
         )
diff --git a/lpbuildd/target/tests/test_build_oci.py b/lpbuildd/target/tests/test_build_oci.py
index 46a3343..10fc87c 100644
--- a/lpbuildd/target/tests/test_build_oci.py
+++ b/lpbuildd/target/tests/test_build_oci.py
@@ -22,6 +22,7 @@ from lpbuildd.target.tests.matchers import (
     RanAptGet,
     RanBuildCommand,
     RanCommand,
+    RanSnap,
 )
 from lpbuildd.tests.fakebuilder import FakeMethod
 
@@ -101,6 +102,7 @@ class TestBuildOCI(TestCase):
                 [
                     RanAptGet("install", "bzr"),
                     RanAptGet("install", "docker.io"),
+                    RanSnap("refresh", "snapd"),
                     RanCommand(["systemctl", "restart", "docker"]),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -127,6 +129,7 @@ class TestBuildOCI(TestCase):
                 [
                     RanAptGet("install", "git"),
                     RanAptGet("install", "docker.io"),
+                    RanSnap("refresh", "snapd"),
                     RanCommand(["systemctl", "restart", "docker"]),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -180,6 +183,7 @@ class TestBuildOCI(TestCase):
                     RanCommand(
                         ["snap", "set", "core", "proxy.store=store-id"]
                     ),
+                    RanSnap("refresh", "snapd"),
                 ]
             ),
         )
@@ -215,6 +219,7 @@ class TestBuildOCI(TestCase):
                     ),
                     RanAptGet("install", "python3", "socat", "git"),
                     RanAptGet("install", "docker.io"),
+                    RanSnap("refresh", "snapd"),
                     RanCommand(["systemctl", "restart", "docker"]),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
diff --git a/lpbuildd/target/tests/test_build_rock.py b/lpbuildd/target/tests/test_build_rock.py
index 5fa2b1b..9ce57a9 100644
--- a/lpbuildd/target/tests/test_build_rock.py
+++ b/lpbuildd/target/tests/test_build_rock.py
@@ -108,6 +108,7 @@ class TestBuildRock(TestCase):
                         "python3-setuptools",
                         "dirmngr",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--channel=candidate", "core"),
                     RanSnap("install", "--channel=beta", "core18"),
                     RanSnap(
@@ -143,6 +144,7 @@ class TestBuildRock(TestCase):
                         "python3-setuptools",
                         "dirmngr",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "rockcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -174,6 +176,7 @@ class TestBuildRock(TestCase):
                         "python3-setuptools",
                         "dirmngr",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "rockcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -233,6 +236,7 @@ class TestBuildRock(TestCase):
                     RanCommand(
                         ["snap", "set", "core", "proxy.store=store-id"]
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "rockcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -274,6 +278,7 @@ class TestBuildRock(TestCase):
                         "python3-setuptools",
                         "dirmngr",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "rockcraft"),
                     RanCommand(["mkdir", "-p", "/home/buildd"]),
                 ]
@@ -323,6 +328,7 @@ class TestBuildRock(TestCase):
                         "python3-setuptools",
                         "dirmngr",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "rockcraft"),
                     RanCommand(["rm", "-rf", "/var/lib/apt/lists"]),
                     RanCommand(["update-ca-certificates"]),
@@ -420,6 +426,7 @@ class TestBuildRock(TestCase):
                         "python3-setuptools",
                         "dirmngr",
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--classic", "rockcraft"),
                     RanCommand(["rm", "-rf", "/var/lib/apt/lists"]),
                     RanCommand(["update-ca-certificates"]),
diff --git a/lpbuildd/target/tests/test_build_snap.py b/lpbuildd/target/tests/test_build_snap.py
index 3a94727..1989807 100644
--- a/lpbuildd/target/tests/test_build_snap.py
+++ b/lpbuildd/target/tests/test_build_snap.py
@@ -73,6 +73,7 @@ class TestBuildSnap(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "bzr", "snapcraft"),
+                    RanSnap("refresh", "snapd"),
                 ]
             ),
         )
@@ -96,6 +97,7 @@ class TestBuildSnap(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git", "snapcraft"),
+                    RanSnap("refresh", "snapd"),
                 ]
             ),
         )
@@ -147,6 +149,7 @@ class TestBuildSnap(TestCase):
                     RanCommand(
                         ["snap", "set", "core", "proxy.store=store-id"]
                     ),
+                    RanSnap("refresh", "snapd"),
                 ]
             ),
         )
@@ -180,6 +183,7 @@ class TestBuildSnap(TestCase):
                     RanAptGet(
                         "install", "python3", "socat", "git", "snapcraft"
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanCommand(["mkdir", "-p", "/root/.subversion"]),
                 ]
             ),
@@ -231,6 +235,7 @@ class TestBuildSnap(TestCase):
                     RanAptGet(
                         "install", "python3", "socat", "git", "snapcraft"
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanCommand(["mkdir", "-p", "/root/.subversion"]),
                     RanCommand(["rm", "-rf", "/var/lib/apt/lists"]),
                     RanCommand(["update-ca-certificates"]),
@@ -330,6 +335,7 @@ class TestBuildSnap(TestCase):
                     RanAptGet(
                         "install", "python3", "socat", "git", "snapcraft"
                     ),
+                    RanSnap("refresh", "snapd"),
                     RanCommand(["mkdir", "-p", "/root/.subversion"]),
                     RanCommand(["rm", "-rf", "/var/lib/apt/lists"]),
                     RanCommand(["update-ca-certificates"]),
@@ -410,6 +416,7 @@ class TestBuildSnap(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "bzr", "sudo"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--channel=candidate", "core"),
                     RanSnap("refresh", "--channel=candidate", "core"),
                     RanSnap("install", "--channel=beta", "core18"),
diff --git a/lpbuildd/target/tests/test_run_ci.py b/lpbuildd/target/tests/test_run_ci.py
index 8ea5eef..2978565 100644
--- a/lpbuildd/target/tests/test_run_ci.py
+++ b/lpbuildd/target/tests/test_run_ci.py
@@ -57,6 +57,7 @@ class TestRunCIPrepare(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "lxd"),
                     RanSnap("install", "--classic", "lpci"),
                     RanCommand(["lxd", "init", "--auto"]),
@@ -105,6 +106,7 @@ class TestRunCIPrepare(TestCase):
                     RanAptGet("install", "git"),
                     RanSnap("ack", "/dev/stdin", input_text=store_assertion),
                     RanSnap("set", "core", "proxy.store=store-id"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "lxd"),
                     RanSnap("install", "--classic", "lpci"),
                     RanCommand(["lxd", "init", "--auto"]),
@@ -138,6 +140,7 @@ class TestRunCIPrepare(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "python3", "socat", "git"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "lxd"),
                     RanSnap("install", "--classic", "lpci"),
                     RanCommand(["lxd", "init", "--auto"]),
@@ -173,6 +176,7 @@ class TestRunCIPrepare(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "--channel=candidate", "core"),
                     RanSnap("install", "--channel=beta", "core20"),
                     RanSnap("install", "--channel=beta", "lxd"),
@@ -201,6 +205,7 @@ class TestRunCIPrepare(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git", "clamav"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "lxd"),
                     RanSnap("install", "--classic", "lpci"),
                     RanCommand(["lxd", "init", "--auto"]),
@@ -244,6 +249,7 @@ class TestRunCIPrepare(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "python3", "socat", "git", "clamav"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "lxd"),
                     RanSnap("install", "--classic", "lpci"),
                     RanCommand(["lxd", "init", "--auto"]),
@@ -276,6 +282,7 @@ class TestRunCIPrepare(TestCase):
             MatchesListwise(
                 [
                     RanAptGet("install", "git", "clamav"),
+                    RanSnap("refresh", "snapd"),
                     RanSnap("install", "lxd"),
                     RanSnap("install", "--classic", "lpci"),
                     RanCommand(["lxd", "init", "--auto"]),