From 098f69acc074d1905cb3e9aa6374fec427a63df7 Mon Sep 17 00:00:00 2001 From: Patrick Vacek Date: Thu, 5 Oct 2017 14:18:06 +0200 Subject: Move provisioning out of ostree bbclass into autoprov recipe. Also remove implicit-prov from DISTRO_FEATURES. Just specify SOTA_CLIENT_PROV directly. --- classes/image_types_ostree.bbclass | 49 +---------------------- classes/sota.bbclass | 2 +- recipes-sota/aktualizr/aktualizr-auto-prov.bb | 35 +++++++++++++--- recipes-sota/aktualizr/aktualizr-implicit-prov.bb | 2 - 4 files changed, 31 insertions(+), 57 deletions(-) diff --git a/classes/image_types_ostree.bbclass b/classes/image_types_ostree.bbclass index 26be7bf..adcafe3 100644 --- a/classes/image_types_ostree.bbclass +++ b/classes/image_types_ostree.bbclass @@ -4,11 +4,9 @@ inherit image IMAGE_DEPENDS_ostree = "ostree-native:do_populate_sysroot \ openssl-native:do_populate_sysroot \ - zip-native:do_populate_sysroot \ coreutils-native:do_populate_sysroot \ virtual/kernel:do_deploy \ - ${OSTREE_INITRAMFS_IMAGE}:do_image_complete \ - unzip-native" + ${OSTREE_INITRAMFS_IMAGE}:do_image_complete" export OSTREE_REPO export OSTREE_BRANCHNAME @@ -20,8 +18,6 @@ OSTREE_KERNEL ??= "${KERNEL_IMAGETYPE}" export SYSTEMD_USED = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', '', d)}" -SOTA_IMPLICIT_PROV = "${@bb.utils.contains('DISTRO_FEATURES', 'implicit-prov', 'true', '', d)}" - IMAGE_CMD_ostree () { if [ -z "$OSTREE_REPO" ]; then bbfatal "OSTREE_REPO should be set in your local.conf" @@ -120,53 +116,10 @@ IMAGE_CMD_ostree () { ln -sf var/roothome root fi - mkdir -p var/sota - - if [ -n "${SOTA_AUTOPROVISION_CREDENTIALS}" ]; then - bbwarn "SOTA_AUTOPROVISION_CREDENTIALS are ignored. Please use SOTA_PACKED_CREDENTIALS" - fi - if [ -n "${SOTA_AUTOPROVISION_URL}" ]; then - bbwarn "SOTA_AUTOPROVISION_URL is ignored. Please use SOTA_PACKED_CREDENTIALS" - fi - if [ -n "${SOTA_AUTOPROVISION_URL_FILE}" ]; then - bbwarn "SOTA_AUTOPROVISION_URL_FILE is ignored. Please use SOTA_PACKED_CREDENTIALS" - fi - if [ -n "${OSTREE_PUSH_CREDENTIALS}" ]; then - bbwarn "OSTREE_PUSH_CREDENTIALS is ignored. Please use SOTA_PACKED_CREDENTIALS" - fi - - # deploy SOTA credentials - if [ -n "${SOTA_PACKED_CREDENTIALS}" -a -z "${SOTA_IMPLICIT_PROV}" ]; then - if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then - cp ${SOTA_PACKED_CREDENTIALS} var/sota/sota_provisioning_credentials.zip - # Device should not be able to push data to treehub - zip -d var/sota/sota_provisioning_credentials.zip treehub.json - fi - fi - if [ -n "${SOTA_SECONDARY_ECUS}" ]; then cp ${SOTA_SECONDARY_ECUS} var/sota/ecus fi - # Deploy client certificate and key. - if [ -n "${SOTA_CLIENT_CERTIFICATE}" ]; then - if [ -e ${SOTA_CLIENT_CERTIFICATE} ]; then - mkdir -p var/sota/token - cp ${SOTA_CLIENT_CERTIFICATE} var/sota/token/ - fi - fi - if [ -n "${SOTA_CLIENT_KEY}" ]; then - if [ -e ${SOTA_CLIENT_KEY} ]; then - mkdir -p var/sota/token - cp ${SOTA_CLIENT_KEY} var/sota/token/ - fi - fi - if [ -n "${SOTA_ROOT_CA}" ]; then - if [ -e ${SOTA_ROOT_CA} ]; then - cp ${SOTA_ROOT_CA} var/sota/ - fi - fi - # Creating boot directories is required for "ostree admin deploy" mkdir -p boot/loader.0 diff --git a/classes/sota.bbclass b/classes/sota.bbclass index 357fefd..d3b66e0 100644 --- a/classes/sota.bbclass +++ b/classes/sota.bbclass @@ -6,7 +6,7 @@ python __anonymous() { OVERRIDES .= "${@bb.utils.contains('DISTRO_FEATURES', 'sota', ':sota', '', d)}" SOTA_CLIENT ??= "aktualizr" -SOTA_CLIENT_PROV ??= "${@bb.utils.contains('DISTRO_FEATURES', 'implicit-prov', 'aktualizr-implicit-prov', 'aktualizr-auto-prov', d)}" +SOTA_CLIENT_PROV ??= "aktualizr-auto-prov" IMAGE_INSTALL_append_sota = " ostree os-release ${SOTA_CLIENT} ${SOTA_CLIENT_PROV}" IMAGE_CLASSES += " image_types_ostree image_types_ota" IMAGE_FSTYPES += "${@bb.utils.contains('DISTRO_FEATURES', 'sota', 'ostreepush otaimg wic', ' ', d)}" diff --git a/recipes-sota/aktualizr/aktualizr-auto-prov.bb b/recipes-sota/aktualizr/aktualizr-auto-prov.bb index b30e884..48777b2 100644 --- a/recipes-sota/aktualizr/aktualizr-auto-prov.bb +++ b/recipes-sota/aktualizr/aktualizr-auto-prov.bb @@ -4,6 +4,7 @@ HOMEPAGE = "https://github.com/advancedtelematic/aktualizr" SECTION = "base" LICENSE = "MPL-2.0" LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=9741c346eef56131163e13b9db1241b3" +DEPENDS = "zip-native" RDEPENDS_${PN} = "aktualizr" PV = "1.0" PR = "6" @@ -22,18 +23,40 @@ inherit systemd export SOTA_PACKED_CREDENTIALS do_install_append() { + if [ -n "${SOTA_AUTOPROVISION_CREDENTIALS}" ]; then + bbwarn "SOTA_AUTOPROVISION_CREDENTIALS are ignored. Please use SOTA_PACKED_CREDENTIALS" + fi + if [ -n "${SOTA_AUTOPROVISION_URL}" ]; then + bbwarn "SOTA_AUTOPROVISION_URL is ignored. Please use SOTA_PACKED_CREDENTIALS" + fi + if [ -n "${SOTA_AUTOPROVISION_URL_FILE}" ]; then + bbwarn "SOTA_AUTOPROVISION_URL_FILE is ignored. Please use SOTA_PACKED_CREDENTIALS" + fi + if [ -n "${OSTREE_PUSH_CREDENTIALS}" ]; then + bbwarn "OSTREE_PUSH_CREDENTIALS is ignored. Please use SOTA_PACKED_CREDENTIALS" + fi + if [ -n "${SOTA_PACKED_CREDENTIALS}" ]; then - install -d ${D}/${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/aktualizr-autoprovision.service ${D}/${systemd_unitdir}/system/aktualizr.service - install -d ${D}/usr/lib/sota - install -m "0644" ${WORKDIR}/sota_autoprov.toml ${D}/usr/lib/sota/sota.toml + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/aktualizr-autoprovision.service ${D}/${systemd_unitdir}/system/aktualizr.service + install -d ${D}/usr/lib/sota + install -m "0644" ${WORKDIR}/sota_autoprov.toml ${D}/usr/lib/sota/sota.toml + + # deploy SOTA credentials + if [ -e ${SOTA_PACKED_CREDENTIALS} ]; then + mkdir -p ${D}/var/sota + cp ${SOTA_PACKED_CREDENTIALS} ${D}/var/sota/sota_provisioning_credentials.zip + # Device should not be able to push data to treehub + zip -d ${D}/var/sota/sota_provisioning_credentials.zip treehub.json + fi else - install -d ${D}/${systemd_unitdir}/system - install -m 0644 ${WORKDIR}/aktualizr-manual-provision.service ${D}/${systemd_unitdir}/system/aktualizr.service + install -d ${D}/${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/aktualizr-manual-provision.service ${D}/${systemd_unitdir}/system/aktualizr.service fi } FILES_${PN} = " \ ${systemd_unitdir}/system/aktualizr.service \ /usr/lib/sota/sota.toml \ + /var/sota/sota_provisioning_credentials.zip \ " diff --git a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb index 792d5ba..a01ef48 100644 --- a/recipes-sota/aktualizr/aktualizr-implicit-prov.bb +++ b/recipes-sota/aktualizr/aktualizr-implicit-prov.bb @@ -19,8 +19,6 @@ SYSTEMD_SERVICE_${PN} = "aktualizr.service" inherit systemd -export SOTA_PACKED_CREDENTIALS - do_install() { install -d ${D}/${systemd_unitdir}/system install -m 0644 ${WORKDIR}/aktualizr-autoprovision.service ${D}/${systemd_unitdir}/system/aktualizr.service -- cgit v1.2.3-54-g00ecf