for (; it != itEnd; ++it, ++current_step) {
try {
process_status = (*it)->precheck();
+ } catch (const std::exception& err) {
+ LOG(ERROR) << "Exception occurred in precheck(): " << err.what()
+ << " in step: " << (*it)->name();
+ process_status = Step::Status::ERROR;
+ }
+ try {
if (process_status == Step::Status::OK) {
process_status = (*it)->process();
}
} catch (const std::exception& err) {
- LOG(ERROR) << "Exception occurred in process(): " << err.what();
+ LOG(ERROR) << "Exception occurred in process(): " << err.what()
+ << " in step: " << (*it)->name();
process_status = Step::Status::ERROR;
}
ret = Result::UNDO_ERROR;
}
} catch (const std::exception& err) {
- LOG(ERROR) << "Exception occurred in undo(): " << err.what();
+ LOG(ERROR) << "Exception occurred in undo(): " << err.what()
+ << " in step: " << (*it)->name();
ret = Result::UNDO_ERROR;
}
} while (it-- != itStart);
break;
}
} catch (const std::exception& err) {
- LOG(ERROR) << "Exception occurred in clean(): " << err.what();
+ LOG(ERROR) << "Exception occurred in clean(): " << err.what()
+ << " in step: " << step->name();
ret = Result::CLEANUP_ERROR;
break;
}
std::vector<std::pair<boost::filesystem::path, boost::filesystem::path>>
icons_;
- SCOPE_LOG_TAG(BackupIcons)
+ STEP_NAME(BackupIcons)
};
} // namespace backup
Status precheck() override;
- SCOPE_LOG_TAG(BackupManifest)
+ STEP_NAME(BackupManifest)
};
} // namespace backup
boost::filesystem::path install_path_;
boost::filesystem::path backup_path_;
- SCOPE_LOG_TAG(CopyBackup)
+ STEP_NAME(CopyBackup)
};
} // namespace backup
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(BlockCrossUpdate)
+ STEP_NAME(BlockCrossUpdate)
};
} // namespace configuration
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(CheckTizenVersion)
+ STEP_NAME(CheckTizenVersion)
};
} // namespace configuration
PkgMgrPtr pkgmgr_;
- SCOPE_LOG_TAG(Configure)
+ STEP_NAME(Configure)
};
} // namespace configuration
Status undo() override { return Status::OK; }
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(Fail)
+ STEP_NAME(Fail)
};
} // namespace configuration
ManifestLocation manifest_location_;
StoreLocation store_location_;
- SCOPE_LOG_TAG(ParseManifest)
+ STEP_NAME(ParseManifest)
};
} // namespace configuration
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(AcquireExternalStorage)
+ STEP_NAME(AcquireExternalStorage)
};
} // namespace filesystem
Status clean() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(ClearData)
+ STEP_NAME(ClearData)
};
} // namespace filesystem
*/
Status precheck() override;
- SCOPE_LOG_TAG(Copy)
+ STEP_NAME(Copy)
};
} // namespace filesystem
const char *key, bool merge_dirs = false);
bool CacheDir();
boost::filesystem::path backup_path_;
- SCOPE_LOG_TAG(CopyStorageDirectories)
+ STEP_NAME(CopyStorageDirectories)
};
} // namespace filesystem
*/
Status precheck() override;
- SCOPE_LOG_TAG(CopyTEP)
+ STEP_NAME(CopyTEP)
};
} // namespace filesystem
private:
std::vector<boost::filesystem::path> icons_;
- SCOPE_LOG_TAG(CreateIcons)
+ STEP_NAME(CreateIcons)
};
} // namespace filesystem
Status undo() override { return Status::OK; }
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(CreatePerUserStorageDirectories)
+ STEP_NAME(CreatePerUserStorageDirectories)
private:
bool CreateExternalStorageDir();
bool PrivateDir();
bool CacheDir();
- SCOPE_LOG_TAG(CreateStorageDirectories)
+ STEP_NAME(CreateStorageDirectories)
};
} // namespace filesystem
boost::filesystem::path patch_dir_;
std::string delta_root_;
- SCOPE_LOG_TAG(DeltaPatch)
+ STEP_NAME(DeltaPatch)
};
} // namespace filesystem
Status process() override;
- SCOPE_LOG_TAG(RecoverExternalStorage)
+ STEP_NAME(RecoverExternalStorage)
};
} // namespace filesystem
private:
bool SetPackagePath();
- SCOPE_LOG_TAG(RecoverBackup)
+ STEP_NAME(RecoverBackup)
};
} // namespace filesystem
std::set<std::pair<boost::filesystem::path, boost::filesystem::path>>
icons_;
- SCOPE_LOG_TAG(RecoverIcons)
+ STEP_NAME(RecoverIcons)
};
} // namespace filesystem
private:
bool SetXmlPaths();
- SCOPE_LOG_TAG(RecoverManifest)
+ STEP_NAME(RecoverManifest)
};
} // namespace filesystem
const boost::filesystem::path& in_dst,
const char *key);
- SCOPE_LOG_TAG(RecoverStorageDirectories)
+ STEP_NAME(RecoverStorageDirectories)
};
} // namespace filesystem
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(Remove)
+ STEP_NAME(Remove)
};
} // namespace filesystem
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(RemoveIcons)
+ STEP_NAME(RemoveIcons)
};
} // namespace filesystem
Status undo() override { return Status::OK; }
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(RemovePerUserStorageDirectories)
+ STEP_NAME(RemovePerUserStorageDirectories)
};
} // namespace filesystem
*/
void RemoveFiles();
- SCOPE_LOG_TAG(RemoveTemporaryDirectory)
+ STEP_NAME(RemoveTemporaryDirectory)
};
} // namespace filesystem
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(RemoveZipImage)
+ STEP_NAME(RemoveZipImage)
};
} // namespace filesystem
Status undo() override;
Status precheck() override;
- SCOPE_LOG_TAG(Unzip)
+ STEP_NAME(Unzip)
};
} // namespace filesystem
Status undo() override;
Status precheck() override;
- SCOPE_LOG_TAG(MountInstall)
+ STEP_NAME(MountInstall)
};
} // namespace mount
Status undo() override;
Status precheck() override;
- SCOPE_LOG_TAG(MountUnpacked)
+ STEP_NAME(MountUnpacked)
};
} // namespace mount
Status undo() override;
Status precheck() override;
- SCOPE_LOG_TAG(MountUpdate)
+ STEP_NAME(MountUpdate)
};
} // namespace mount
Status clean() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(CheckRemovable)
+ STEP_NAME(CheckRemovable)
};
} // namespace pkgmgr
*/
Status precheck() override;
- SCOPE_LOG_TAG(KillApps)
+ STEP_NAME(KillApps)
};
} // namespace pkgmgr
private:
bool SetXmlPaths();
- SCOPE_LOG_TAG(RecoverApplication)
+ STEP_NAME(RecoverApplication)
};
} // namespace pkgmgr
Status undo() override;
Status precheck() override;
- SCOPE_LOG_TAG(RegisterApp)
+ STEP_NAME(RegisterApp)
};
} // namespace pkgmgr
Status undo() override { return Status::OK; }
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(RemoveManifest)
+ STEP_NAME(RemoveManifest)
};
} // namespace pkgmgr
Plugin::ActionType action_type_;
- SCOPE_LOG_TAG(RunParserPlugin)
+ STEP_NAME(RunParserPlugin)
};
} // namespace pkgmgr
private:
bool BackupCertInfo();
- SCOPE_LOG_TAG(Unregister)
+ STEP_NAME(Unregister)
};
} // namespace pkgmgr
Status undo() override;
Status precheck() override;
- SCOPE_LOG_TAG(UpdateApplication)
+ STEP_NAME(UpdateApplication)
};
} // namespace pkgmgr
Status undo() override;
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(UpdateTep)
+ STEP_NAME(UpdateTep)
};
} // namespace pkgmgr
private:
boost::filesystem::path rds_file_path_;
+
+ STEP_NAME(RDSParse)
};
} // namespace rds
Status undo() override;
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(OpenRecoveryFile)
+ STEP_NAME(OpenRecoveryFile)
};
} // namespace recovery
const BackgroundCatSet known_background_categories_;
const BackgroundCatSet not_unknown_background_categories_;
- SCOPE_LOG_TAG(CheckBackgroundCategory)
+ STEP_NAME(CheckBackgroundCategory)
};
} // namespace security
Status clean() override { return Status::OK; }
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(CheckOldCertificate)
+ STEP_NAME(CheckOldCertificate)
};
} // namespace security
Status CheckSignatureMismatch();
Status CheckPrivilegeLevel(PrivilegeLevel level);
- SCOPE_LOG_TAG(Signature)
+ STEP_NAME(Signature)
};
} // namespace security
Status undo() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(PrivilegeCompatibility)
+ STEP_NAME(PrivilegeCompatibility)
};
} // namespace security
private:
bool Check();
- SCOPE_LOG_TAG(RecoverSecurity)
+ STEP_NAME(RecoverSecurity)
};
} // namespace security
Status clean() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(Security)
+ STEP_NAME(Security)
};
} // namespace security
Status clean() override;
Status precheck() override;
- SCOPE_LOG_TAG(RevokeSecurity)
+ STEP_NAME(RevokeSecurity)
};
} // namespace security
Status clean() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(RollbackDeinstallationSecurity)
+ STEP_NAME(RollbackDeinstallationSecurity)
};
} // namespace security
Status clean() override { return Status::OK; }
Status precheck() override;
- SCOPE_LOG_TAG(RollbackInstallationSecurity)
+ STEP_NAME(RollbackInstallationSecurity)
};
} // namespace security
Status clean() override { return Status::OK; }
Status precheck() override { return Status::OK; }
- SCOPE_LOG_TAG(UpdateSecurity)
+ STEP_NAME(UpdateSecurity)
};
} // namespace security
#include "common/installer_context.h"
+// This macro should be defined at the end of class definition
+#define STEP_NAME(NAME) \
+ SCOPE_LOG_TAG(NAME) \
+ const char* name() const override { return #NAME; } \
+
namespace common_installer {
/**
/** Checks the input data used during process method */
virtual Status precheck() = 0;
+ /** Returns step name */
+ virtual const char* name() const = 0;
+
StepErrorSignal on_error;
protected: