9 #include <boost/filesystem.hpp> 10 #include <boost/program_options.hpp> 11 #include <boost/property_tree/ini_parser.hpp> 13 #include "asn1/asn1-cerstream.h" 14 #include "bootloader/bootloader.h" 15 #include "crypto/keymanager_config.h" 16 #include "crypto/p11_config.h" 17 #include "logging/logging_config.h" 18 #include "package_manager/packagemanagerconfig.h" 19 #include "storage/storage_config.h" 20 #include "telemetry/telemetryconfig.h" 21 #include "uptane/secondaryconfig.h" 22 #include "utilities/config_utils.h" 25 enum class ProvisionMode { kAutomatic = 0, kImplicit };
31 std::string ipdiscovery_host{
"127.0.0.1"};
32 in_port_t ipdiscovery_port{9031};
33 uint32_t ipdiscovery_wait_seconds{2};
34 in_port_t ipuptane_port{9030};
36 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
37 void writeToStream(std::ostream& out_stream)
const;
42 boost::filesystem::path server_url_path;
43 CryptoSource ca_source{CryptoSource::kFile};
44 CryptoSource pkey_source{CryptoSource::kFile};
45 CryptoSource cert_source{CryptoSource::kFile};
47 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
48 void writeToStream(std::ostream& out_stream)
const;
56 std::string p12_password;
57 std::string expiry_days{
"36000"};
58 boost::filesystem::path provision_path;
59 ProvisionMode mode{ProvisionMode::kAutomatic};
60 std::string device_id;
61 std::string primary_ecu_serial;
62 std::string primary_ecu_hardware_id;
63 std::string ecu_registration_endpoint;
65 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
66 void writeToStream(std::ostream& out_stream)
const;
71 uint64_t polling_sec{10u};
72 std::string director_server;
73 std::string repo_server;
74 CryptoSource key_source{CryptoSource::kFile};
75 KeyType key_type{KeyType::kRSA2048};
76 boost::filesystem::path secondary_configs_dir;
77 std::vector<Uptane::SecondaryConfig> secondary_configs{};
79 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
80 void writeToStream(std::ostream& out_stream)
const;
86 void updateFromPropertyTree(
const boost::property_tree::ptree& pt);
87 void writeToStream(std::ostream& out_stream)
const;
100 explicit Config(
const boost::program_options::variables_map& cmd);
101 explicit Config(
const boost::filesystem::path& filename);
102 explicit Config(
const std::vector<boost::filesystem::path>& config_dirs);
106 void updateFromTomlString(
const std::string& contents);
107 void postUpdateValues();
108 void writeToStream(std::ostream& sink)
const;
126 void updateFromPropertyTree(
const boost::property_tree::ptree& pt)
override;
127 void updateFromCommandLine(
const boost::program_options::variables_map& cmd);
128 void readSecondaryConfigs(
const boost::filesystem::path& sconfigs_dir);
130 std::vector<boost::filesystem::path> config_dirs_ = {
"/usr/lib/sota/conf.d",
"/etc/sota/conf.d/"};
131 bool loglevel_from_cmdline{
false};
RunningMode
Execution mode to run aktualizr in.
Configuration object for an aktualizr instance running on a primary ECU.