Change the way Online Upgrade works. 47/311147/9 accepted/tizen/unified/20240611.122417
authorMateusz Moscicki <m.moscicki2@partner.samsung.com>
Tue, 14 May 2024 15:00:15 +0000 (17:00 +0200)
committerMateusz Moscicki <m.moscicki2@partner.samsung.com>
Thu, 6 Jun 2024 08:42:38 +0000 (10:42 +0200)
The Online Upgrade runs old offline-upgrade, and after this
the normal boot (without reboot) is performed.

Change-Id: I84dd183daba33e8060ddf7df4f0b25358e2c0d46

21 files changed:
packaging/upgrade.spec
scripts/rw-upgrade/CMakeLists.txt
scripts/rw-upgrade/offline-update-finalize.sh.in [new file with mode: 0644]
scripts/rw-upgrade/offline-update-post.service [new file with mode: 0644]
scripts/rw-upgrade/offline-update-post.sh [new file with mode: 0644]
scripts/rw-upgrade/offline-update.service.in [deleted file]
scripts/rw-upgrade/offline-update.target [new file with mode: 0644]
scripts/rw-upgrade/online-update-failure.service
scripts/rw-upgrade/online-update-pre.service.in [deleted file]
scripts/rw-upgrade/online-update-pre.sh.in [deleted file]
scripts/rw-upgrade/online-update-pre.target [deleted file]
scripts/rw-upgrade/online-update-success.service
scripts/rw-upgrade/online-update-success.target [new file with mode: 0644]
scripts/rw-upgrade/online-update.service.in
scripts/rw-upgrade/online-update.sh.in
scripts/rw-upgrade/online-update.target
scripts/rw-upgrade/system-update.service.in [new file with mode: 0644]
scripts/rw-upgrade/update-finalize.sh.in [deleted file]
scripts/rw-upgrade/update-post.service [deleted file]
scripts/rw-upgrade/update-post.sh [deleted file]
scripts/rw-upgrade/update.sh.in

index 9601b534611f802101f843ac5cafb3e0c012974e..926f65222e47acd8db2a7c8d868c076d2b255d6f 100644 (file)
@@ -122,29 +122,28 @@ ln -s ../clone_partitions_recovery.service %{buildroot}%{_unitdir}/recovery.serv
 
 # rw-update
 mkdir -p %{buildroot}%{_unitdir}/system-update.target.wants
+mkdir -p %{buildroot}%{_unitdir}/system-update.target.requires
 mkdir -p %{buildroot}%{_unitdir}/local-fs.target.wants
 mkdir -p %{buildroot}%{_unitdir}/delayed.target.wants
-mkdir -p %{buildroot}%{_unitdir}/online-update-pre.target.requires
+mkdir -p %{buildroot}%{_unitdir}/offline-update.target.requires
 mkdir -p %{buildroot}%{_unitdir}/online-update.target.requires
 mkdir -p %{buildroot}%{_unitdir}/online-update-failure.target.requires
-mkdir -p %{buildroot}%{_unitdir}/online-update-success.service.requires
+mkdir -p %{buildroot}%{_unitdir}/online-update-success.target.requires
 ln -s ../getty.target %{buildroot}%{_unitdir}/system-update.target.wants
 ln -s ../cynara.socket %{buildroot}%{_unitdir}/system-update.target.wants
 ln -s ../dbus.socket %{buildroot}%{_unitdir}/system-update.target.wants
 ln -s ../udev-sdb-init.service %{buildroot}%{_unitdir}/system-update.target.wants
-ln -s ../offline-update.service %{buildroot}%{_unitdir}/system-update.target.wants
+ln -s ../system-update.service %{buildroot}%{_unitdir}/system-update.target.requires
 ln -s ../udev-trigger-dmbow@.service %{buildroot}%{_unitdir}/system-update.target.wants/udev-trigger-dmbow@user.service
+ln -s ../udev-trigger-dmbow@.service %{buildroot}%{_unitdir}/system-update.target.wants/udev-trigger-dmbow@system-data.service
 ln -s ../data-checkpoint.service %{buildroot}%{_unitdir}/local-fs.target.wants/data-checkpoint.service
-ln -s ../update-post.service %{buildroot}%{_unitdir}/system-update.target.wants
+ln -s ../offline-update-post.service %{buildroot}%{_unitdir}/offline-update.target.requires
+ln -s ../system-update.target %{buildroot}%{_unitdir}/offline-update.target.requires
 
-ln -s ../default.target %{buildroot}%{_unitdir}/online-update.target.requires
-ln -s ../online-update-pre.target %{buildroot}%{_unitdir}/online-update.target.requires
-ln -s ../online-update-pre.service %{buildroot}%{_unitdir}/online-update-pre.target.requires
+ln -s ../system-update.target %{buildroot}%{_unitdir}/online-update.target.requires
 ln -s ../online-update.service %{buildroot}%{_unitdir}/online-update.target.requires
-ln -s ../udev-trigger-dmbow@.service %{buildroot}%{_unitdir}/online-update.target.requires/udev-trigger-dmbow@system-data.service
-ln -s ../udev-trigger-dmbow@.service %{buildroot}%{_unitdir}/online-update.target.requires/udev-trigger-dmbow@user.service
-ln -s ../online-update-verify.service %{buildroot}%{_unitdir}/online-update-success.service.requires
-ln -s ../online-update-success.service %{buildroot}%{_unitdir}/delayed.target.wants
+ln -s ../online-update-success.target %{buildroot}%{_unitdir}/delayed.target.wants
+ln -s ../online-update-success.service %{buildroot}%{_unitdir}/online-update-success.target.requires
 ln -s ../online-update-failure.service %{buildroot}%{_unitdir}/online-update-failure.target.requires
 
 %posttrans engine
@@ -189,45 +188,42 @@ fi
 # rw-upgrade
 %{_unitdir}/data-checkpoint.service
 %{_unitdir}/local-fs.target.wants/data-checkpoint.service
-%{_unitdir}/offline-update.service
+%{_unitdir}/system-update.service
 %{_unitdir}/system-update.target.wants/cynara.socket
 %{_unitdir}/system-update.target.wants/dbus.socket
 %{_unitdir}/system-update.target.wants/getty.target
-%{_unitdir}/system-update.target.wants/offline-update.service
+%{_unitdir}/system-update.target.requires/system-update.service
 %{_unitdir}/system-update.target.wants/udev-sdb-init.service
 %{_unitdir}/system-update.target.wants/udev-trigger-dmbow@user.service
-%{_unitdir}/system-update.target.wants/update-post.service
+%{_unitdir}/system-update.target.wants/udev-trigger-dmbow@system-data.service
+%{_unitdir}/offline-update.target
+%{_unitdir}/offline-update.target.requires/offline-update-post.service
+%{_unitdir}/offline-update.target.requires/system-update.target
 %{_unitdir}/udev-sdb-init.service
 %{_unitdir}/udev-trigger-dmbow@.service
-%{_unitdir}/update-post.service
-%{_unitdir}/online-update-pre.target
-%{_unitdir}/online-update-pre.target.requires/online-update-pre.service
-%{_unitdir}/online-update-pre.service
+%{_unitdir}/offline-update-post.service
 %{_unitdir}/online-update.target
 %{_unitdir}/online-update.target.requires/online-update.service
-%{_unitdir}/online-update.target.requires/online-update-pre.target
-%{_unitdir}/online-update.target.requires/default.target
-%{_unitdir}/online-update.target.requires/udev-trigger-dmbow@system-data.service
-%{_unitdir}/online-update.target.requires/udev-trigger-dmbow@user.service
+%{_unitdir}/online-update.target.requires/system-update.target
 %{_unitdir}/online-update.service
 %{_unitdir}/online-update-failure.target
 %{_unitdir}/online-update-failure.target.requires/online-update-failure.service
 %{_unitdir}/online-update-failure.service
 %{_unitdir}/online-update-verify.service
+%{_unitdir}/online-update-success.target
 %{_unitdir}/online-update-success.service
-%{_unitdir}/online-update-success.service.requires/online-update-verify.service
-%{_unitdir}/delayed.target.wants/online-update-success.service
+%{_unitdir}/online-update-success.target.requires/online-update-success.service
+%{_unitdir}/delayed.target.wants/online-update-success.target
 %{upgrade_scripts_dir}/99-sdb-switch.rules
 %{upgrade_scripts_dir}/install-sdb-rule.sh
 %{upgrade_scripts_dir}/record-version.sh
 %{upgrade_scripts_dir}/rw-update-macro.inc
 %{upgrade_scripts_dir}/update-checkpoint-create.sh
-%{upgrade_scripts_dir}/update-finalize.sh
+%{upgrade_scripts_dir}/offline-update-finalize.sh
 %{upgrade_scripts_dir}/update-init.sh
-%{upgrade_scripts_dir}/update-post.sh
+%{upgrade_scripts_dir}/offline-update-post.sh
 %{upgrade_scripts_dir}/update.sh
 %{upgrade_scripts_dir}/update-verify.sh
-%{upgrade_scripts_dir}/online-update-pre.sh
 %{upgrade_scripts_dir}/online-update.sh
 %{upgrade_scripts_dir}/online-update-scripts-pre/
 %{upgrade_scripts_dir}/online-update-scripts/
index f31fc22e060b6de01c2a03d12f8812fe06b2ce7c..4bae122cc59db3786caf525379c61b1498dfec19 100644 (file)
@@ -1,13 +1,11 @@
 CONFIGURE_FILE(install-sdb-rule.sh.in     install-sdb-rule.sh  @ONLY)
 CONFIGURE_FILE(update-init.sh.in          update-init.sh       @ONLY)
 CONFIGURE_FILE(update.sh.in               update.sh            @ONLY)
-CONFIGURE_FILE(update-finalize.sh.in      update-finalize.sh   @ONLY)
+CONFIGURE_FILE(offline-update-finalize.sh.in      offline-update-finalize.sh   @ONLY)
 CONFIGURE_FILE(record-version.sh.in       record-version.sh    @ONLY)
 CONFIGURE_FILE(udev-sdb-init.service.in   udev-sdb-init.service   @ONLY)
-CONFIGURE_FILE(offline-update.service.in  offline-update.service  @ONLY)
+CONFIGURE_FILE(system-update.service.in   system-update.service  @ONLY)
 CONFIGURE_FILE(data-checkpoint.service.in data-checkpoint.service @ONLY)
-CONFIGURE_FILE(online-update-pre.sh.in    online-update-pre.sh @ONLY)
-CONFIGURE_FILE(online-update-pre.service.in online-update-pre.service @ONLY)
 CONFIGURE_FILE(online-update.service.in   online-update.service   @ONLY)
 CONFIGURE_FILE(online-update.sh.in        online-update.sh     @ONLY)
 CONFIGURE_FILE(online-update-verify.service.in online-update-verify.service @ONLY)
@@ -16,18 +14,18 @@ CONFIGURE_FILE(online-update-success.sh.in online-update-success.sh   @ONLY)
 
 INSTALL(FILES
        udev-sdb-init.service
-       offline-update.service
+       system-update.service
        data-checkpoint.service
-       update-post.service
+       offline-update.target
+       offline-update-post.service
        udev-trigger-dmbow@.service
-       online-update-pre.target
-       online-update-pre.service
        online-update.target
        online-update.service
        online-update-failure.target
        online-update-failure.service
        online-update-verify.service
        online-update-success.service
+       online-update-success.target
        DESTINATION ${UNIT_DIR})
 
 INSTALL(FILES
@@ -41,10 +39,9 @@ INSTALL(FILES
        update-init.sh
        update.sh
        update-checkpoint-create.sh
-       update-post.sh
-       update-finalize.sh
+       offline-update-post.sh
+       offline-update-finalize.sh
        update-verify.sh
-       online-update-pre.sh
        online-update.sh
        online-update-verify.sh
        online-update-success.sh
diff --git a/scripts/rw-upgrade/offline-update-finalize.sh.in b/scripts/rw-upgrade/offline-update-finalize.sh.in
new file mode 100644 (file)
index 0000000..7b9e16e
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+RW_MACRO=@UPGRADE_SCRIPTS_DIR@/rw-update-macro.inc
+UPDATE_VERIFY_SCRIPT=@UPGRADE_SCRIPTS_DIR@/update-verify.sh
+HAL_SET_UPGRADE_STATUS=/usr/bin/device_board_set_upgrade_status
+
+SCRIPT_NAME=$(basename $0)
+CRITICAL_LOG()
+{
+       LOG="[$SCRIPT_NAME]$1"
+       dlogsend -k "$LOG"
+       if [ "$2" != "" ]; then
+               echo "$LOG" >> "$2"
+       fi
+       echo "$LOG"
+}
+
+SET_UPGRADE_STATUS()
+{
+       ${HAL_SET_UPGRADE_STATUS} "$1"
+       if [ $? -eq 0 ]; then
+               CRITICAL_LOG "set_upgrade_status success: ${1}"
+       else
+               CRITICAL_LOG "set_upgrade_status failed: ${1}"
+       fi
+}
+
+if [ -f $RW_MACRO ];
+then
+       source $RW_MACRO
+else
+       ERROR "FAIL: Upgrade macro does not exist"
+       UPDATE_PREPARE_ERR=1
+fi
+
+if [ -z ${UPDATE_PREPARE_ERR+x} ] && "$UPDATE_VERIFY_SCRIPT"; then
+       /usr/bin/device_board_clear_boot_mode
+       if ! COMMIT_CHANGES; then
+               ERROR "FAIL: Commit changes error"
+               reboot -f fota
+       fi
+
+       /usr/bin/device_board_clear_partition_ab_cloned
+       /usr/bin/device_board_set_boot_success
+       SET_UPGRADE_STATUS 100
+       reboot -f
+else
+       reboot -f fota
+fi
diff --git a/scripts/rw-upgrade/offline-update-post.service b/scripts/rw-upgrade/offline-update-post.service
new file mode 100644 (file)
index 0000000..000ab09
--- /dev/null
@@ -0,0 +1,12 @@
+[Unit]
+Description=RW Update finalization
+DefaultDependencies=no
+Wants=system-update.service
+After=system-update.service
+IgnoreOnIsolate=true
+
+[Service]
+Type=oneshot
+SmackProcessLabel=System
+ExecStart=/usr/share/upgrade/offline-update-post.sh
+
diff --git a/scripts/rw-upgrade/offline-update-post.sh b/scripts/rw-upgrade/offline-update-post.sh
new file mode 100644 (file)
index 0000000..d721519
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+
+if [[ $(</proc/cmdline) =~ partition_ab= ]]
+then
+    # Finalize upgrade right after RW-Upgrade
+    #
+    # It's possible to start upgraded system and check if there are any errors
+    # there.  This allows doing checking at later point of time, potentially
+    # catching more errors from new system (eg. some apps failing to start
+    # after upgrade). Current approach is to commit data after upgrade scripts
+    # succeeds, which simply means that system is guaranted to be upgraded even
+    # if some of the apps would fail.
+    /usr/share/upgrade/offline-update-finalize.sh
+    # systemctl isolate default.target
+else
+    reboot -f
+fi
+
diff --git a/scripts/rw-upgrade/offline-update.service.in b/scripts/rw-upgrade/offline-update.service.in
deleted file mode 100644 (file)
index b1d153d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=System update script service
-DefaultDependencies=no
-Requires=sysinit.target
-After=sysinit.target
-
-[Service]
-Type=oneshot
-SmackProcessLabel=System::Privileged
-ExecStartPre=/bin/rm -f @UPGRADE_VAR_DIR@/log/system-rw-update.log
-ExecStart=@UPGRADE_SCRIPTS_DIR@/update-init.sh
-StandardOutput=file:@UPGRADE_VAR_DIR@/log/system-rw-update.log
-StandardError=file:@UPGRADE_VAR_DIR@/log/system-rw-update.log
diff --git a/scripts/rw-upgrade/offline-update.target b/scripts/rw-upgrade/offline-update.target
new file mode 100644 (file)
index 0000000..5eb3e86
--- /dev/null
@@ -0,0 +1,6 @@
+[Unit]
+Description=Offline System Update
+DefaultDependencies=no
+Before=multi-user.target
+After=basic.target
+Conflicts=shutdown.target
index 0f0fe0bc255868979c1f22f593d7106f8790bbab..62bb9aa991cc86a339a4e4501f4d8fefa492170b 100644 (file)
@@ -8,7 +8,7 @@ ConditionKernelCommandLine=bootmode=fota
 Type=oneshot
 SmackProcessLabel=System::Privileged
 ExecStartPre=-/bin/device_board_set_upgrade_status -1
-ExecStart=/usr/sbin/reboot -f
+ExecStart=/usr/sbin/reboot -f fota
 StandardOutput=tty
 StandardError=tty
 RemainAfterExit=yes
diff --git a/scripts/rw-upgrade/online-update-pre.service.in b/scripts/rw-upgrade/online-update-pre.service.in
deleted file mode 100644 (file)
index d14978f..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-[Unit]
-Description=System update script service
-DefaultDependencies=no
-Conflicts=shutdown.target
-Requires=data-checkpoint.service
-After=data-checkpoint.service
-Before=online-update-pre.target
-
-[Service]
-Type=oneshot
-SmackProcessLabel=System::Privileged
-ExecStartPre=/bin/rm -f @UPGRADE_VAR_DIR@/log/system-rw-update.log
-ExecStart=@UPGRADE_SCRIPTS_DIR@/online-update-pre.sh
-StandardOutput=tty
-StandardError=tty
-RemainAfterExit=yes
-
diff --git a/scripts/rw-upgrade/online-update-pre.sh.in b/scripts/rw-upgrade/online-update-pre.sh.in
deleted file mode 100644 (file)
index 04f66f8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-COLOR_ERROR='\033[01;31m'
-RW_MACRO=@UPGRADE_SCRIPTS_DIR@/rw-update-macro.inc
-SCRIPTS_DIR="@UPGRADE_SCRIPTS_DIR@/online-update-scripts-pre"
-SHELL=/bin/bash
-
-source $RW_MACRO
-
-shopt -s nullglob
-
-ERROR()
-{
-       LOG_TEXT=$1
-       echo -e "${COLOR_ERROR}${LOG_TEXT}${COLOR_RESET}"
-}
-
-# Restore rpm db
-rm -rf /var/lib/rpm/*
-restore_backup_file -f /opt/var/lib/rpm
-
-# Permission Update for shared directories
-/etc/gumd/useradd.d/91_user-dbspace-permissions.post owner
-
-for SCRIPT in $SCRIPTS_DIR/*; do
-       if ! $SHELL "$SCRIPT"; then
-               ERROR "Script $SCRIPT failed - update considered unsuccessful"
-               exit 1
-       fi
-done
-
diff --git a/scripts/rw-upgrade/online-update-pre.target b/scripts/rw-upgrade/online-update-pre.target
deleted file mode 100644 (file)
index 992941f..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-[Unit]
-Description=System Update - before starting the system
-DefaultDependencies=no
-Before=sysinit.target sockets.target
-After=local-fs.target
-Conflicts=shutdown.target
-OnFailure=online-update-failure.target
-OnFailureJobMode=replace-irreversibly
index 11f19f2dd1c4547f09987a224363b4232f0a7551..12fbc6e668dac63a00333fe1c15c01a2e905f133 100644 (file)
@@ -1,7 +1,9 @@
 [Unit]
 Description=Finalize OS update
 DefaultDependencies=no
+Before=online-update-success.target
 After=system-delayed-target-done.service online-update-verify.service
+Requires=online-update-verify.service
 Conflicts=shutdown.target online-update-failure.target reboot.target
 ConditionKernelCommandLine=bootmode=fota
 
diff --git a/scripts/rw-upgrade/online-update-success.target b/scripts/rw-upgrade/online-update-success.target
new file mode 100644 (file)
index 0000000..a135950
--- /dev/null
@@ -0,0 +1,4 @@
+[Unit]
+Description=Online Update: Success
+DefaultDependencies=no
+ConditionKernelCommandLine=bootmode=fota
index 5e4c170d2f79f142e58bd5559c819bbfbc314612..2ac4bf10a1b710532fcd51e62c2c739b846047b6 100644 (file)
@@ -1,8 +1,7 @@
 [Unit]
 Description=System update script service
 DefaultDependencies=no
-After=basic.target
-Before=online-update.target
+After=basic.target online-update.target system-update.service
 
 [Service]
 Type=oneshot
index c2e2753da07f7e6f2b0f35547d282d04264f8c48..26074eaaebcc74943a56e22bb3502c80afbc0286 100644 (file)
@@ -1,65 +1,4 @@
 #!/bin/bash
 PATH=/bin:/usr/bin:/sbin:/usr/sbin
 
-COLOR_ERROR='\033[01;31m'
-COLOR_DEBUG='\033[01;34m'
-COLOR_NOTIFY='\033[01;33m'
-COLOR_RESET='\033[00;00m'
-RW_MACRO=@UPGRADE_SCRIPTS_DIR@/rw-update-macro.inc
-SCRIPTS_DIR="@UPGRADE_SCRIPTS_DIR@/online-update-scripts"
-UPDATE_DATA_DIR=/opt/data/update
-SDB_RULE=${UPDATE_DATA_DIR}/99-sdb-switch.rules
-source $RW_MACRO
-
-shopt -s nullglob
-
-SCRIPT_NAME=$(basename $0)
-
-DEBUG()
-{
-       LOG_TEXT=$1
-       echo -e "${COLOR_DEBUG}${LOG_TEXT}${COLOR_RESET}"
-}
-
-ERROR()
-{
-       LOG_TEXT=$1
-       echo -e "${COLOR_ERROR}${LOG_TEXT}${COLOR_RESET}"
-}
-
-NOTIFY()
-{
-       LOG_TEXT=$1
-       echo -e "${COLOR_NOTIFY}${LOG_TEXT}${COLOR_RESET}"
-}
-
-CRITICAL_LOG()
-{
-       LOG="[$SCRIPT_NAME]$1"
-       dlogsend -k "$LOG"
-       if [ "$2" != "" ]; then
-               echo "$LOG" >> "$2"
-       fi
-       echo "$LOG"
-}
-
-NOTIFY "----------------------------------------------------------------------"
-NOTIFY "Remove deprecated ISU Packages"
-
-REMOVE_UNNECESSARY_ISU_PKGS
-
-get_version_info
-DEBUG "Version OLD: ${OLD_VER}, NEW: ${NEW_VER}"
-
-for SCRIPT in $SCRIPTS_DIR/*; do
-       if ! $SHELL "$SCRIPT"; then
-               ERROR "Script $SCRIPT failed - update considered unsuccessful"
-               exit 1
-       fi
-done
-
-write_version_info
-
-if [ -e ${SDB_RULE} ]; then
-       rm ${SDB_RULE}
-fi
+systemctl isolate default.target
index 6641d1b4f45211aa36d92381f6c17e33fcc6d9f2..c5bfe53ec309c5845aeeb532d8d8b863fb2c85c7 100644 (file)
@@ -2,7 +2,7 @@
 Description=System Update
 DefaultDependencies=no
 Before=multi-user.target
-After=basic.target online-update-pre.target
+After=basic.target
 Conflicts=shutdown.target
 OnFailure=online-update-failure.target
 OnFailureJobMode=replace-irreversibly
diff --git a/scripts/rw-upgrade/system-update.service.in b/scripts/rw-upgrade/system-update.service.in
new file mode 100644 (file)
index 0000000..b1d153d
--- /dev/null
@@ -0,0 +1,13 @@
+[Unit]
+Description=System update script service
+DefaultDependencies=no
+Requires=sysinit.target
+After=sysinit.target
+
+[Service]
+Type=oneshot
+SmackProcessLabel=System::Privileged
+ExecStartPre=/bin/rm -f @UPGRADE_VAR_DIR@/log/system-rw-update.log
+ExecStart=@UPGRADE_SCRIPTS_DIR@/update-init.sh
+StandardOutput=file:@UPGRADE_VAR_DIR@/log/system-rw-update.log
+StandardError=file:@UPGRADE_VAR_DIR@/log/system-rw-update.log
diff --git a/scripts/rw-upgrade/update-finalize.sh.in b/scripts/rw-upgrade/update-finalize.sh.in
deleted file mode 100644 (file)
index 7b9e16e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-RW_MACRO=@UPGRADE_SCRIPTS_DIR@/rw-update-macro.inc
-UPDATE_VERIFY_SCRIPT=@UPGRADE_SCRIPTS_DIR@/update-verify.sh
-HAL_SET_UPGRADE_STATUS=/usr/bin/device_board_set_upgrade_status
-
-SCRIPT_NAME=$(basename $0)
-CRITICAL_LOG()
-{
-       LOG="[$SCRIPT_NAME]$1"
-       dlogsend -k "$LOG"
-       if [ "$2" != "" ]; then
-               echo "$LOG" >> "$2"
-       fi
-       echo "$LOG"
-}
-
-SET_UPGRADE_STATUS()
-{
-       ${HAL_SET_UPGRADE_STATUS} "$1"
-       if [ $? -eq 0 ]; then
-               CRITICAL_LOG "set_upgrade_status success: ${1}"
-       else
-               CRITICAL_LOG "set_upgrade_status failed: ${1}"
-       fi
-}
-
-if [ -f $RW_MACRO ];
-then
-       source $RW_MACRO
-else
-       ERROR "FAIL: Upgrade macro does not exist"
-       UPDATE_PREPARE_ERR=1
-fi
-
-if [ -z ${UPDATE_PREPARE_ERR+x} ] && "$UPDATE_VERIFY_SCRIPT"; then
-       /usr/bin/device_board_clear_boot_mode
-       if ! COMMIT_CHANGES; then
-               ERROR "FAIL: Commit changes error"
-               reboot -f fota
-       fi
-
-       /usr/bin/device_board_clear_partition_ab_cloned
-       /usr/bin/device_board_set_boot_success
-       SET_UPGRADE_STATUS 100
-       reboot -f
-else
-       reboot -f fota
-fi
diff --git a/scripts/rw-upgrade/update-post.service b/scripts/rw-upgrade/update-post.service
deleted file mode 100644 (file)
index 67f958e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=RW Update finalization
-DefaultDependencies=no
-Wants=offline-update.service
-After=offline-update.service
-IgnoreOnIsolate=true
-
-[Service]
-Type=oneshot
-SmackProcessLabel=System
-ExecStart=/usr/share/upgrade/update-post.sh
-
diff --git a/scripts/rw-upgrade/update-post.sh b/scripts/rw-upgrade/update-post.sh
deleted file mode 100644 (file)
index dd52044..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin
-
-if [[ $(</proc/cmdline) =~ partition_ab= ]]
-then
-    # Finalize upgrade right after RW-Upgrade
-    #
-    # It's possible to start upgraded system and check if there are any errors
-    # there.  This allows doing checking at later point of time, potentially
-    # catching more errors from new system (eg. some apps failing to start
-    # after upgrade). Current approach is to commit data after upgrade scripts
-    # succeeds, which simply means that system is guaranted to be upgraded even
-    # if some of the apps would fail.
-    /usr/share/upgrade/update-finalize.sh
-    # systemctl isolate default.target
-else
-    reboot -f
-fi
-
index 722af347635acbbef4196cc61340ab5ef86ed841..d6f4734a0213eb327eefa7c6f4d289910c951fe1 100644 (file)
@@ -141,6 +141,7 @@ else
                if [ $? -ne 0 ]; then
                        ERROR "[FAIL] ${UPSCRIPT}"
                        UPDATE_PROGRESS_ERR=1
+                       break
                else
                        DEBUG "[DONE] ${UPSCRIPT}"
                fi
@@ -156,15 +157,15 @@ else
        REMOVE_UNNECESSARY_ISU_PKGS
 
        write_version_info
+fi
 
-       if [ ${UPDATE_PROGRESS_ERR} = "1" ]
-       then
-               NOTIFY "SUCCESS: Upgrade finished, but some scripts are failed"
-               SET_UPDATE_RESULT ${UPI_RW_UPDATE_ERROR_FAIL}
-       else
-               NOTIFY "SUCCESS: Upgrade successfully finished"
-               SET_UPDATE_RESULT ${UPI_RW_UPDATE_ERROR_NONE}
-       fi
+if [ ${UPDATE_PREPARE_ERR} = "1" ] || [ ${UPDATE_PROGRESS_ERR} = "1" ]; then
+       ERROR "[FAIL] System RW Update error"
+       # TODO: Probably it is better to create separate and common
+       # system-update-failure.target to replace online-update-failure.target
+       # and for offline-update to perform the same function as for
+       # online-update
+       reboot -f fota
 fi
 
 if [ -e ${SDB_RULE} ]; then
@@ -181,4 +182,4 @@ then
        rm ${STATUS_FILE}
        COMMIT_CHANGES
 fi
-#Reboot by update-post.service
+#Reboot by offline-update-post.service