diff options
| author | Phil Wise <phil@advancedtelematic.com> | 2018-03-27 14:06:38 +0200 |
|---|---|---|
| committer | Phil Wise <phil@advancedtelematic.com> | 2018-03-27 14:06:38 +0200 |
| commit | de2b0f06546666aacf9dd2fce94e0134768c6a3b (patch) | |
| tree | 178a61aca1440bce83557113485380f8ea3b36be | |
| parent | 7ce65035d63107605e07ecb1d923be63ecaa1ec9 (diff) | |
| download | meta-updater-de2b0f06546666aacf9dd2fce94e0134768c6a3b.tar.gz | |
Add SOTA client feature to enable secondary network
Also add a test for the 'primary-image'
| -rw-r--r-- | lib/oeqa/selftest/cases/updater.py | 41 | ||||
| -rw-r--r-- | recipes-sota/aktualizr/aktualizr-auto-prov.bb | 4 | ||||
| -rw-r--r-- | recipes-sota/aktualizr/aktualizr_git.bb | 3 | ||||
| -rw-r--r-- | recipes-test/demo-network-config/files/27-dhcp-client-external.network | 6 | ||||
| -rw-r--r-- | recipes-test/demo-network-config/secondary-network-config.bb | 6 | ||||
| -rw-r--r-- | recipes-test/images/secondary-image.bb | 2 |
6 files changed, 59 insertions, 3 deletions
diff --git a/lib/oeqa/selftest/cases/updater.py b/lib/oeqa/selftest/cases/updater.py index 06884e5..e459ffb 100644 --- a/lib/oeqa/selftest/cases/updater.py +++ b/lib/oeqa/selftest/cases/updater.py | |||
| @@ -548,6 +548,47 @@ class SecondaryTests(OESelftestTestCase): | |||
| 548 | stdout, stderr, retcode = self.qemu_command('echo test | nc localhost 9030') | 548 | stdout, stderr, retcode = self.qemu_command('echo test | nc localhost 9030') |
| 549 | self.assertEqual(retcode, 0, "Unable to connect to secondary") | 549 | self.assertEqual(retcode, 0, "Unable to connect to secondary") |
| 550 | 550 | ||
| 551 | |||
| 552 | class PrimaryTests(OESelftestTestCase): | ||
| 553 | @classmethod | ||
| 554 | def setUpClass(cls): | ||
| 555 | super(PrimaryTests, cls).setUpClass() | ||
| 556 | logger = logging.getLogger("selftest") | ||
| 557 | logger.info('Running bitbake to build primary-image') | ||
| 558 | bitbake('primary-image') | ||
| 559 | |||
| 560 | def setUpLocal(self): | ||
| 561 | layer = "meta-updater-qemux86-64" | ||
| 562 | result = runCmd('bitbake-layers show-layers') | ||
| 563 | if re.search(layer, result.output) is None: | ||
| 564 | # Assume the directory layout for finding other layers. We could also | ||
| 565 | # make assumptions by using 'show-layers', but either way, if the | ||
| 566 | # layers we need aren't where we expect them, we are out of like. | ||
| 567 | path = os.path.abspath(os.path.dirname(__file__)) | ||
| 568 | metadir = path + "/../../../../../" | ||
| 569 | self.meta_qemu = metadir + layer | ||
| 570 | runCmd('bitbake-layers add-layer "%s"' % self.meta_qemu) | ||
| 571 | else: | ||
| 572 | self.meta_qemu = None | ||
| 573 | self.append_config('MACHINE = "qemux86-64"') | ||
| 574 | self.append_config('SOTA_CLIENT_PROV = " aktualizr-auto-prov "') | ||
| 575 | self.append_config('SOTA_CLIENT_FEATURES = "secondary-network"') | ||
| 576 | self.qemu, self.s = qemu_launch(machine='qemux86-64', imagename='primary-image') | ||
| 577 | |||
| 578 | def tearDownLocal(self): | ||
| 579 | qemu_terminate(self.s) | ||
| 580 | if self.meta_qemu: | ||
| 581 | runCmd('bitbake-layers remove-layer "%s"' % self.meta_qemu, ignore_status=True) | ||
| 582 | |||
| 583 | def qemu_command(self, command): | ||
| 584 | return qemu_send_command(self.qemu.ssh_port, command) | ||
| 585 | |||
| 586 | def test_aktualizr_present(self): | ||
| 587 | print('Checking aktualizr is present') | ||
| 588 | stdout, stderr, retcode = self.qemu_command('aktualizr --help') | ||
| 589 | self.assertEqual(retcode, 0, "Unable to run aktualizr --help") | ||
| 590 | self.assertEqual(stderr, b'', 'Error: ' + stderr.decode()) | ||
| 591 | |||
| 551 | def qemu_launch(efi=False, machine=None, imagename=None): | 592 | def qemu_launch(efi=False, machine=None, imagename=None): |
| 552 | logger = logging.getLogger("selftest") | 593 | logger = logging.getLogger("selftest") |
| 553 | logger.info('Running bitbake to build core-image-minimal') | 594 | logger.info('Running bitbake to build core-image-minimal') |
diff --git a/recipes-sota/aktualizr/aktualizr-auto-prov.bb b/recipes-sota/aktualizr/aktualizr-auto-prov.bb index 2190512..07e5bb8 100644 --- a/recipes-sota/aktualizr/aktualizr-auto-prov.bb +++ b/recipes-sota/aktualizr/aktualizr-auto-prov.bb | |||
| @@ -35,7 +35,9 @@ do_install() { | |||
| 35 | install -d ${D}${libdir}/sota | 35 | install -d ${D}${libdir}/sota |
| 36 | install -d ${D}${localstatedir}/sota | 36 | install -d ${D}${localstatedir}/sota |
| 37 | if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then | 37 | if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then |
| 38 | install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/sota_autoprov.toml ${D}${libdir}/sota/sota.toml | 38 | aktualizr_toml=${@bb.utils.contains('SOTA_CLIENT_FEATURES', 'secondary-network', 'sota_autoprov_primary.toml', 'sota_autoprov.toml', d)} |
| 39 | |||
| 40 | install -m 0644 ${STAGING_DIR_NATIVE}${libdir}/sota/${aktualizr_toml} ${D}${libdir}/sota/sota.toml | ||
| 39 | 41 | ||
| 40 | # deploy SOTA credentials | 42 | # deploy SOTA credentials |
| 41 | if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then | 43 | if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then |
diff --git a/recipes-sota/aktualizr/aktualizr_git.bb b/recipes-sota/aktualizr/aktualizr_git.bb index 79a89ef..ba0a261 100644 --- a/recipes-sota/aktualizr/aktualizr_git.bb +++ b/recipes-sota/aktualizr/aktualizr_git.bb | |||
| @@ -22,7 +22,7 @@ SRC_URI = " \ | |||
| 22 | file://aktualizr-secondary.socket \ | 22 | file://aktualizr-secondary.socket \ |
| 23 | file://aktualizr-serialcan.service \ | 23 | file://aktualizr-serialcan.service \ |
| 24 | " | 24 | " |
| 25 | SRCREV = "7d1d71a28a9ff0b14240b98600de3d541835b278" | 25 | SRCREV = "3fc94e7ed20a486da0067f01906250e9d4868931" |
| 26 | BRANCH ?= "master" | 26 | BRANCH ?= "master" |
| 27 | 27 | ||
| 28 | S = "${WORKDIR}/git" | 28 | S = "${WORKDIR}/git" |
| @@ -59,6 +59,7 @@ do_install_append_class-target () { | |||
| 59 | do_install_append_class-native () { | 59 | do_install_append_class-native () { |
| 60 | install -d ${D}${libdir}/sota | 60 | install -d ${D}${libdir}/sota |
| 61 | install -m 0644 ${S}/config/sota_autoprov.toml ${D}/${libdir}/sota/sota_autoprov.toml | 61 | install -m 0644 ${S}/config/sota_autoprov.toml ${D}/${libdir}/sota/sota_autoprov.toml |
| 62 | install -m 0644 ${S}/config/sota_autoprov_primary.toml ${D}/${libdir}/sota/sota_autoprov_primary.toml | ||
| 62 | install -m 0644 ${S}/config/sota_hsm_prov.toml ${D}/${libdir}/sota/sota_hsm_prov.toml | 63 | install -m 0644 ${S}/config/sota_hsm_prov.toml ${D}/${libdir}/sota/sota_hsm_prov.toml |
| 63 | install -m 0644 ${S}/config/sota_implicit_prov.toml ${D}/${libdir}/sota/sota_implicit_prov.toml | 64 | install -m 0644 ${S}/config/sota_implicit_prov.toml ${D}/${libdir}/sota/sota_implicit_prov.toml |
| 64 | install -m 0644 ${S}/config/sota_implicit_prov_ca.toml ${D}/${libdir}/sota/sota_implicit_prov_ca.toml | 65 | install -m 0644 ${S}/config/sota_implicit_prov_ca.toml ${D}/${libdir}/sota/sota_implicit_prov_ca.toml |
diff --git a/recipes-test/demo-network-config/files/27-dhcp-client-external.network b/recipes-test/demo-network-config/files/27-dhcp-client-external.network new file mode 100644 index 0000000..ba49593 --- /dev/null +++ b/recipes-test/demo-network-config/files/27-dhcp-client-external.network | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | [Match] | ||
| 2 | Name=enp0s3 | ||
| 3 | |||
| 4 | [Network] | ||
| 5 | Description=External network for secondary | ||
| 6 | DHCP=yes | ||
diff --git a/recipes-test/demo-network-config/secondary-network-config.bb b/recipes-test/demo-network-config/secondary-network-config.bb index 492d3ca..9091c65 100644 --- a/recipes-test/demo-network-config/secondary-network-config.bb +++ b/recipes-test/demo-network-config/secondary-network-config.bb | |||
| @@ -3,7 +3,10 @@ LICENSE = "CLOSED" | |||
| 3 | 3 | ||
| 4 | inherit allarch | 4 | inherit allarch |
| 5 | 5 | ||
| 6 | SRC_URI = "file://26-dhcp-client.network" | 6 | SRC_URI = "\ |
| 7 | file://26-dhcp-client.network \ | ||
| 8 | file://27-dhcp-client-external.network \ | ||
| 9 | " | ||
| 7 | 10 | ||
| 8 | 11 | ||
| 9 | FILES_${PN} = "/usr/lib/systemd/network" | 12 | FILES_${PN} = "/usr/lib/systemd/network" |
| @@ -13,4 +16,5 @@ PR = "1" | |||
| 13 | do_install() { | 16 | do_install() { |
| 14 | install -d ${D}/usr/lib/systemd/network | 17 | install -d ${D}/usr/lib/systemd/network |
| 15 | install -m 0644 ${WORKDIR}/26-dhcp-client.network ${D}/usr/lib/systemd/network/ | 18 | install -m 0644 ${WORKDIR}/26-dhcp-client.network ${D}/usr/lib/systemd/network/ |
| 19 | install -m 0644 ${WORKDIR}/27-dhcp-client-external.network ${D}/usr/lib/systemd/network/ | ||
| 16 | } | 20 | } |
diff --git a/recipes-test/images/secondary-image.bb b/recipes-test/images/secondary-image.bb index c1ce57a..02153d0 100644 --- a/recipes-test/images/secondary-image.bb +++ b/recipes-test/images/secondary-image.bb | |||
| @@ -13,6 +13,8 @@ IMAGE_INSTALL_remove = " \ | |||
| 13 | aktualizr-ca-implicit-prov \ | 13 | aktualizr-ca-implicit-prov \ |
| 14 | aktualizr-hsm-prov \ | 14 | aktualizr-hsm-prov \ |
| 15 | aktualizr-implicit-prov \ | 15 | aktualizr-implicit-prov \ |
| 16 | connman \ | ||
| 17 | connman-client \ | ||
| 16 | " | 18 | " |
| 17 | 19 | ||
| 18 | IMAGE_INSTALL_append = " \ | 20 | IMAGE_INSTALL_append = " \ |
