From 5e979f0ba451e64fc44ffaa8b79d714d9ad75a57 Mon Sep 17 00:00:00 2001 From: Clément Bénier Date: Mon, 1 Oct 2018 11:51:47 +0200 Subject: update xds-server package in docker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scripts/package-update: bash scripts to update xds-server package in docker monitor updates: default time is 24h, a update is tried at startup api/v1: 2 new requests: - get(updates): return various information about xds-server packages - post(updates): update xds-server packages Change-Id: I1673f7860e57cfe1d4abe5a24609ee46a90b67d8 Signed-off-by: Clément Bénier --- scripts/xds-utils/getXdsServerPackage | 61 ++++++++++++++++++++++++++++++ scripts/xds-utils/restartXdsServer | 32 ++++++++++++++++ scripts/xds-utils/updateXdsServerPackage | 64 ++++++++++++++++++++++++++++++++ 3 files changed, 157 insertions(+) create mode 100755 scripts/xds-utils/getXdsServerPackage create mode 100755 scripts/xds-utils/restartXdsServer create mode 100755 scripts/xds-utils/updateXdsServerPackage (limited to 'scripts') diff --git a/scripts/xds-utils/getXdsServerPackage b/scripts/xds-utils/getXdsServerPackage new file mode 100755 index 0000000..8b00ac4 --- /dev/null +++ b/scripts/xds-utils/getXdsServerPackage @@ -0,0 +1,61 @@ +#!/bin/bash + ########################################################################### +# Copyright 2018 IoT.bzh +# +# author: Clément Bénier +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + +XDSSERVER="xds-server" +PACKAGE_NAME="agl-${XDSSERVER}" + +#test if sudoers without PASSWD +sudo -n true +if [ ! $? -eq 0 ]; then + exit 1 +fi + +function getUpdateDebian() { + sudo apt update -o DIR::Etc::sourcelist="AGL.list" &> /dev/null + sudo apt-cache policy ${PACKAGE_NAME} |grep -e 'Installed' -e 'Candidate' +} + +function getUpdateFedora() { + sudo dnf check-update ${PACKAGE_NAME} --refresh + sudo dnf info --installed ${PACKAGE_NAME} | grep Version | sed "s/Version */Installed/g" + sudo dnf info --updates ${PACKAGE_NAME} | grep Version | sed "s/Version */Candidate/g" +} + +function getUpdateOpenSuse() { + REPOAGL=$(zypper info agl-xds-server | grep Repository | awk -F ":" '{print $2}')) + REPOAGL=$(zypper repos | grep "${REPOAGL}" | awk '{print $3}') + sudo zypper refresh -r ${REPOAGL} + sudo zypper list-updates -r ${REPOAGL} | awk '{if ($3 == "${PACKAGE_NAME}") print "Installed: "$5 "\nCandidate: "$7}' +} + +if [ -f /etc/os-release ]; then + source /etc/os-release +fi + +case $ID in + "debian") + getUpdateDebian;; + "fedora") + getUpdateFedora;; + "opensuse") + getUpdateOpenSuse;; + *) + exit 2;; +esac + diff --git a/scripts/xds-utils/restartXdsServer b/scripts/xds-utils/restartXdsServer new file mode 100755 index 0000000..71981a6 --- /dev/null +++ b/scripts/xds-utils/restartXdsServer @@ -0,0 +1,32 @@ +#!/bin/bash + ########################################################################### +# Copyright 2018 IoT.bzh +# +# author: Clément Bénier +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + +XDSSERVER="xds-server" + +function systemdRestartXdsServer() { + systemctl --user daemon-reload + systemctl --user restart ${XDSSERVER} + if [ ! $? -eq 0 ]; then + echo "Cannot restart $XDSSERVER" + exit 1 + fi +} + +systemdRestartXdsServer +exit 0 \ No newline at end of file diff --git a/scripts/xds-utils/updateXdsServerPackage b/scripts/xds-utils/updateXdsServerPackage new file mode 100755 index 0000000..012ca6c --- /dev/null +++ b/scripts/xds-utils/updateXdsServerPackage @@ -0,0 +1,64 @@ +#!/bin/bash + ########################################################################### +# Copyright 2018 IoT.bzh +# +# author: Clément Bénier +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +########################################################################### + +XDSSERVER="xds-server" +PACKAGE_NAME="agl-${XDSSERVER}" + +#test if sudoers without PASSWD +sudo -n true +if [ ! $? -eq 0 ]; then + exit 1 +fi + + +function checkUpdateDebian() { + sudo apt update -o DIR::Etc::sourcelist="AGL.list" &> /dev/null + apt list --upgradable | grep ${PACKAGE_NAME} + if [ $? -eq 0 ]; then + sudo apt-get install ${PACKAGE_NAME} + fi +} + +function checkUpdateFedora() { + sudo dnf check-update ${PACKAGE_NAME} --refresh + sudo dnf update -y ${PACKAGE_NAME} +} + +function checkUpdateOpenSuse() { + REPOAGL=$(zypper info agl-xds-server | grep Repository | awk -F ":" '{print $2}')) + REPOAGL=$(zypper repos | grep "${REPOAGL}" | awk '{print $3}') + sudo zypper refresh -r ${REPOAGL} + sudo zypper update -y ${PACKAGE_NAME} +} + +if [ -f /etc/os-release ]; then + source /etc/os-release +fi + +case $ID in + "debian") + res=$(checkUpdateDebian);; + "fedora") + res=$(checkUpdateFedora);; + "opensuse") + res=$(checkUpdateOpenSuse);; + *) + exit 2;; +esac + -- cgit 1.2.3-korg