Add undo operation at StepCreatePerUserStorageDirectories 00/106500/2
authorSangyoon Jang <s89.jang@samsung.com>
Thu, 22 Dec 2016 02:23:43 +0000 (11:23 +0900)
committerSangyoon Jang <s89.jang@samsung.com>
Thu, 22 Dec 2016 02:24:25 +0000 (18:24 -0800)
Change-Id: Ifaf8786995d4fad30be39adcd52d463cda2dcbda
Signed-off-by: Sangyoon Jang <s89.jang@samsung.com>
src/common/step/filesystem/step_create_per_user_storage_directories.cc
src/common/step/filesystem/step_create_per_user_storage_directories.h

index e481d5c..6fd400a 100644 (file)
@@ -15,7 +15,7 @@
 namespace common_installer {
 namespace filesystem {
 
-common_installer::Step::Status StepCreatePerUserStorageDirectories::process() {
+Step::Status StepCreatePerUserStorageDirectories::process() {
   if (context_->request_mode.get() != RequestMode::GLOBAL)
     return Step::Status::OK;
 
@@ -54,5 +54,20 @@ common_installer::Step::Status StepCreatePerUserStorageDirectories::process() {
   return Status::OK;
 }
 
+Step::Status StepCreatePerUserStorageDirectories::undo() {
+  if (context_->request_mode.get() != RequestMode::GLOBAL)
+    return Step::Status::OK;
+
+  if (!context_->partial_rw.get()) {
+    if (!DeleteSkelDirectories(context_->pkgid.get()))
+      return Status::APP_DIR_ERROR;
+  }
+
+  if (!DeleteUserDirectories(context_->pkgid.get()))
+    return Status::APP_DIR_ERROR;
+
+  return Status::OK;
+}
+
 }  // namespace filesystem
 }  // namespace common_installer
index cff93c3..21e77ab 100644 (file)
@@ -35,7 +35,7 @@ class StepCreatePerUserStorageDirectories : public common_installer::Step {
 
   Status process() override;
   Status clean() override { return Status::OK; }
-  Status undo() override { return Status::OK; }
+  Status undo() override;
   Status precheck() override { return Status::OK; }
 
 private: