launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #33196
[Merge] ~clinton-fung/launchpad-buildd:restart-apparmor-snaps into launchpad-buildd:master
Clinton Fung has proposed merging ~clinton-fung/launchpad-buildd:restart-apparmor-snaps into launchpad-buildd:master.
Commit message:
For snaps: Add a restart of host apparmor after guest upgrades to reload profiles
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~clinton-fung/launchpad-buildd/+git/launchpad-buildd/+merge/495065
For snaps: Add a restart of host apparmor after guest upgrades to reload profiles
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~clinton-fung/launchpad-buildd:restart-apparmor-snaps into launchpad-buildd:master.
diff --git a/lpbuildd/target/build_snap.py b/lpbuildd/target/build_snap.py
index 5d957ae..0c6c2e5 100644
--- a/lpbuildd/target/build_snap.py
+++ b/lpbuildd/target/build_snap.py
@@ -5,6 +5,7 @@ import argparse
import json
import logging
import os.path
+import subprocess
from lpbuildd.target.operation import Operation
from lpbuildd.target.proxy import BuilderProxyOperationMixin
@@ -150,6 +151,13 @@ class BuildSnap(
self.backend.run(["apt-get", "-y", "install"] + deps)
if self.backend.supports_snapd:
self.snap_store_set_proxy()
+ result = subprocess.run(
+ ["sudo", "service", "apparmor", "restart"],
+ capture_output=True,
+ check=True
+ )
+ logger.info("Command output: %s" % result.stdout)
+ logger.info("Command errors (if any): %s" % result.stderr)
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/tests/test_build_oci.py b/lpbuildd/target/tests/test_build_oci.py
index 46a3343..8af7ce5 100644
--- a/lpbuildd/target/tests/test_build_oci.py
+++ b/lpbuildd/target/tests/test_build_oci.py
@@ -8,7 +8,7 @@ from textwrap import dedent
import responses
from fixtures import FakeLogger, TempDir
-from systemfixtures import FakeFilesystem
+from systemfixtures import FakeFilesystem, FakeProcesses
from testtools import TestCase
from testtools.matchers import AnyMatch, MatchesAll, MatchesListwise
@@ -82,6 +82,9 @@ class TestBuildOCI(TestCase):
)
def test_install_bzr(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"build-oci",
"--backend=fake",
@@ -108,6 +111,9 @@ class TestBuildOCI(TestCase):
)
def test_install_git(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"build-oci",
"--backend=fake",
@@ -135,6 +141,9 @@ class TestBuildOCI(TestCase):
@responses.activate
def test_install_snap_store_proxy(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
store_assertion = dedent(
"""\
type: store
@@ -185,6 +194,9 @@ class TestBuildOCI(TestCase):
)
def test_install_proxy(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"build-oci",
"--backend=fake",
diff --git a/lpbuildd/target/tests/test_build_snap.py b/lpbuildd/target/tests/test_build_snap.py
index 3a94727..635d739 100644
--- a/lpbuildd/target/tests/test_build_snap.py
+++ b/lpbuildd/target/tests/test_build_snap.py
@@ -10,7 +10,7 @@ from textwrap import dedent
import responses
from fixtures import FakeLogger, TempDir
-from systemfixtures import FakeFilesystem
+from systemfixtures import FakeFilesystem, FakeProcesses
from testtools import TestCase
from testtools.matchers import AnyMatch, MatchesAll, MatchesListwise, Not
@@ -55,6 +55,9 @@ class FakeSnapcraft(FakeMethod):
class TestBuildSnap(TestCase):
def test_install_bzr(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -78,6 +81,9 @@ class TestBuildSnap(TestCase):
)
def test_install_git(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -102,6 +108,9 @@ class TestBuildSnap(TestCase):
@responses.activate
def test_install_snap_store_proxy(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
store_assertion = dedent(
"""\
type: store
@@ -152,6 +161,9 @@ class TestBuildSnap(TestCase):
)
def test_install_proxy(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -199,6 +211,9 @@ class TestBuildSnap(TestCase):
)
def test_install_certificate(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -298,6 +313,9 @@ class TestBuildSnap(TestCase):
)
def test_install_snapd_proxy(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -388,6 +406,9 @@ class TestBuildSnap(TestCase):
)
def test_install_channels(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -424,6 +445,9 @@ class TestBuildSnap(TestCase):
)
def test_install_fetch_service(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -461,6 +485,9 @@ class TestBuildSnap(TestCase):
)
def test_install_fetch_service_focal(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -1403,6 +1430,9 @@ class TestBuildSnap(TestCase):
# convert it to requests first.
def test_run_succeeds(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
args = [
"buildsnap",
"--backend=fake",
@@ -1484,6 +1514,9 @@ class TestBuildSnap(TestCase):
self.assertEqual(RETCODE_FAILURE_INSTALL, build_snap.run())
def test_run_repo_fails(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
class FailRepo(FakeMethod):
def __call__(self, run_args, *args, **kwargs):
super().__call__(run_args, *args, **kwargs)
@@ -1507,6 +1540,9 @@ class TestBuildSnap(TestCase):
self.assertEqual(RETCODE_FAILURE_BUILD, build_snap.run())
def test_run_pull_fails(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
class FailPull(FakeMethod):
def __call__(self, run_args, *args, **kwargs):
super().__call__(run_args, *args, **kwargs)
@@ -1533,6 +1569,9 @@ class TestBuildSnap(TestCase):
self.assertEqual(RETCODE_FAILURE_BUILD, build_snap.run())
def test_run_build_fails(self):
+ processes_fixture = self.useFixture(FakeProcesses())
+ processes_fixture.add(lambda _: {}, name="sudo")
+
class FailBuild(FakeMethod):
def __call__(self, run_args, *args, **kwargs):
super().__call__(run_args, *args, **kwargs)
Follow ups