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"
13 auto storage = INvStorage::newStorage(config.storage);
14 return AktualizrSecondaryFactory::create(config, storage);
18 const std::shared_ptr<INvStorage>& storage) {
19 auto key_mngr = std::make_shared<KeyManager>(storage, config.keymanagerConfig());
21 UpdateAgent::Ptr update_agent;
23 if (config.pacman.type != PackageManager::kOstree) {
24 std::string current_target_name;
26 boost::optional<Uptane::Target> current_version;
27 boost::optional<Uptane::Target> pending_version;
28 auto installed_version_res = storage->loadInstalledVersions(
"", ¤t_version, &pending_version);
30 if (installed_version_res && !!current_version) {
31 current_target_name = current_version->filename();
34 update_agent = std::make_shared<FileUpdateAgent>(config.storage.path /
"firmware.txt", current_target_name);
38 std::shared_ptr<OstreeManager> pack_man =
39 std::make_shared<OstreeManager>(config.pacman, config.bootloader, storage,
nullptr);
41 std::make_shared<OstreeUpdateAgent>(config.pacman.sysroot, key_mngr, pack_man, config.uptane.ecu_hardware_id);
45 return std::make_shared<AktualizrSecondary>(config, storage, key_mngr, update_agent);