1 #include "aktualizr_secondary_factory.h"
3 #include "crypto/keymanager.h"
4 #include "update_agent_file.h"
7 #include "package_manager/ostreemanager.h"
8 #include "update_agent_ostree.h"
11 const std::string AktualizrSecondaryFactory::BinaryUpdateDefaultFile{
"firmware.txt"};
14 auto storage = INvStorage::newStorage(config.storage);
15 return AktualizrSecondaryFactory::create(config, storage);
19 const std::shared_ptr<INvStorage>& storage) {
20 auto key_mngr = std::make_shared<KeyManager>(storage, config.keymanagerConfig());
22 UpdateAgent::Ptr update_agent;
24 if (config.pacman.type != PACKAGE_MANAGER_OSTREE) {
25 std::string current_target_name;
27 boost::optional<Uptane::Target> current_version;
28 boost::optional<Uptane::Target> pending_version;
29 auto installed_version_res = storage->loadInstalledVersions(
"", ¤t_version, &pending_version);
31 if (installed_version_res && !!current_version) {
32 current_target_name = current_version->filename();
36 std::make_shared<FileUpdateAgent>(config.storage.path / BinaryUpdateDefaultFile, current_target_name);
40 std::shared_ptr<OstreeManager> pack_man =
41 std::make_shared<OstreeManager>(config.pacman, config.bootloader, storage,
nullptr);
43 std::make_shared<OstreeUpdateAgent>(config.pacman.sysroot, key_mngr, pack_man, config.uptane.ecu_hardware_id);
47 return std::make_shared<AktualizrSecondary>(config, storage, key_mngr, update_agent);