9 #include <boost/filesystem.hpp> 10 #include <boost/program_options.hpp> 11 #include <boost/property_tree/ini_parser.hpp> 12 #include <boost/uuid/uuid.hpp> 13 #include <boost/uuid/uuid_generators.hpp> 14 #include <boost/uuid/uuid_io.hpp> 16 #include "asn1/asn1-cerstream.h" 17 #include "bootloader/bootloader.h" 18 #include "crypto/keymanager_config.h" 19 #include "crypto/p11_config.h" 20 #include "logging/logging_config.h" 21 #include "package_manager/packagemanagerconfig.h" 22 #include "storage/storage_config.h" 23 #include "telemetry/telemetryconfig.h" 24 #include "uptane/secondaryconfig.h" 25 #include "utilities/config_utils.h" 28 enum class ProvisionMode { kAutomatic = 0, kImplicit };
34 std::string ipdiscovery_host{
"127.0.0.1"};
35 in_port_t ipdiscovery_port{9031};
36 uint32_t ipdiscovery_wait_seconds{2};
37 in_port_t ipuptane_port{9030};
39 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
40 void writeToStream(std::ostream& out_stream)
const;
45 boost::filesystem::path server_url_path;
46 CryptoSource ca_source{CryptoSource::kFile};
47 CryptoSource pkey_source{CryptoSource::kFile};
48 CryptoSource cert_source{CryptoSource::kFile};
50 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
51 void writeToStream(std::ostream& out_stream)
const;
59 std::string p12_password;
60 std::string expiry_days{
"36000"};
61 boost::filesystem::path provision_path;
62 ProvisionMode mode{ProvisionMode::kAutomatic};
63 std::string device_id;
64 std::string primary_ecu_serial;
65 std::string primary_ecu_hardware_id;
66 std::string ecu_registration_endpoint;
68 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
69 void writeToStream(std::ostream& out_stream)
const;
74 uint64_t polling_sec{10u};
75 std::string director_server;
76 std::string repo_server;
77 CryptoSource key_source{CryptoSource::kFile};
78 KeyType key_type{KeyType::kRSA2048};
79 boost::filesystem::path legacy_interface{};
80 std::vector<Uptane::SecondaryConfig> secondary_configs{};
82 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
83 void writeToStream(std::ostream& out_stream)
const;
89 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
90 void writeToStream(std::ostream& out_stream)
const;
103 explicit Config(
const boost::program_options::variables_map& cmd);
104 explicit Config(
const boost::filesystem::path& filename);
105 explicit Config(
const std::vector<boost::filesystem::path>& config_dirs);
109 void updateFromTomlString(
const std::string& contents);
110 void postUpdateValues();
111 void writeToStream(std::ostream& sink)
const;
129 void updateFromPropertyTree(
const boost::property_tree::ptree& pt)
override;
130 void updateFromCommandLine(
const boost::program_options::variables_map& cmd);
131 void readSecondaryConfigs(
const std::vector<boost::filesystem::path>& sconfigs);
132 void checkLegacyVersion();
133 void initLegacySecondaries();
135 std::vector<boost::filesystem::path> config_dirs_ = {
"/usr/lib/sota/conf.d",
"/etc/sota/conf.d/"};
136 bool loglevel_from_cmdline{
false};
RunningMode
Execution mode to run aktualizr in.
Configuration object for an aktualizr instance running on a primary ECU.