Skip to content
This repository has been archived by the owner on May 21, 2024. It is now read-only.

Commit

Permalink
Print messages until the loop finishes
Browse files Browse the repository at this point in the history
  • Loading branch information
Zee314159 committed Jul 12, 2019
1 parent 529af68 commit 2beae00
Showing 1 changed file with 64 additions and 65 deletions.
129 changes: 64 additions & 65 deletions src/aktualizr_info/main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -78,26 +78,26 @@ int main(int argc, char **argv) {
readonly = false;
}

bool wait_provision_flag = false;
bool wait_provisioning = false;
if (vm.count("wait-until-provisioned") != 0) {
wait_provision_flag = true;
wait_provisioning = true;
}

std::shared_ptr<INvStorage> storage = INvStorage::newStorage(config.storage, readonly);
bool cmd_trigger = false;
bool provision_trigger = true;
bool provisioned = false;
bool dev_id_loaded = false;
bool ecu_id_loaded = false;
std::string device_id;

for (provision_trigger = true; wait_provision_flag;) {
if (!storage->loadDeviceId(&device_id)) {
std::cout << "Couldn't load device ID" << std::endl;
provision_trigger = false;
} else {
while (!provisioned && wait_provisioning) {
if (storage->loadDeviceId(&device_id)) {
// Early return if only printing device ID.
if (vm.count("name-only") != 0u) {
std::cout << device_id << std::endl;
return EXIT_SUCCESS;
}
dev_id_loaded = true;
}

// TLS credentials
Expand Down Expand Up @@ -241,73 +241,72 @@ int main(int argc, char **argv) {
return EXIT_SUCCESS;
}

// Print general information if user does not provide any argument.
std::cout << "Device ID: " << device_id << std::endl;
EcuSerials serials;
if (!storage->loadEcuSerials(&serials)) {
std::cout << "Couldn't load ECU serials" << std::endl;
provision_trigger = false;
} else if (serials.size() == 0) {
std::cout << "Primary serial is not found" << std::endl;
} else {
std::cout << "Primary ecu serial ID: " << serials[0].first << std::endl;
std::cout << "Primary ecu hardware ID: " << serials[0].second << std::endl;
if (storage->loadEcuSerials(&serials)) {
ecu_id_loaded = true;
}

if (serials.size() > 1) {
auto it = serials.begin() + 1;
std::cout << "Secondaries:\n";
int secondary_number = 1;
for (; it != serials.end(); ++it) {
std::cout << secondary_number++ << ") serial ID: " << it->first << std::endl;
std::cout << " hardware ID: " << it->second << std::endl;

std::vector<Uptane::Target> installed_targets;
size_t current_version = SIZE_MAX;
size_t pending_version = SIZE_MAX;

auto load_installed_version_res = storage->loadInstalledVersions((it->first).ToString(), &installed_targets,
&current_version, &pending_version);

if (!load_installed_version_res ||
(current_version >= installed_targets.size() && pending_version >= installed_targets.size())) {
std::cout << " no details about installed nor pending images\n";
} else {
if (installed_targets.size() > current_version) {
std::cout << " installed image hash: " << installed_targets[current_version].sha256Hash() << "\n";
std::cout << " installed image filename: " << installed_targets[current_version].filename() << "\n";
}
if (installed_targets.size() > pending_version) {
std::cout << " pending image hash: " << installed_targets[pending_version].sha256Hash() << "\n";
std::cout << " pending image filename: " << installed_targets[pending_version].filename() << "\n";
auto registered = storage->loadEcuRegistered();

provisioned = (dev_id_loaded && ecu_id_loaded && registered && has_metadata);

if (provisioned) {
// Print general information if user does not provide any argument.
std::cout << "Device ID: " << device_id << std::endl;
if (serials.size() == 0) {
std::cout << "Primary serial is not found" << std::endl;
} else {
std::cout << "Primary ecu serial ID: " << serials[0].first << std::endl;
std::cout << "Primary ecu hardware ID: " << serials[0].second << std::endl;
}

if (serials.size() > 1) {
auto it = serials.begin() + 1;
std::cout << "Secondaries:\n";
int secondary_number = 1;
for (; it != serials.end(); ++it) {
std::cout << secondary_number++ << ") serial ID: " << it->first << std::endl;
std::cout << " hardware ID: " << it->second << std::endl;

std::vector<Uptane::Target> installed_targets;
size_t current_version = SIZE_MAX;
size_t pending_version = SIZE_MAX;

auto load_installed_version_res = storage->loadInstalledVersions((it->first).ToString(), &installed_targets,
&current_version, &pending_version);

if (!load_installed_version_res ||
(current_version >= installed_targets.size() && pending_version >= installed_targets.size())) {
std::cout << " no details about installed nor pending images\n";
} else {
if (installed_targets.size() > current_version) {
std::cout << " installed image hash: " << installed_targets[current_version].sha256Hash() << "\n";
std::cout << " installed image filename: " << installed_targets[current_version].filename() << "\n";
}
if (installed_targets.size() > pending_version) {
std::cout << " pending image hash: " << installed_targets[pending_version].sha256Hash() << "\n";
std::cout << " pending image filename: " << installed_targets[pending_version].filename() << "\n";
}
}
}
}
}

std::vector<MisconfiguredEcu> misconfigured_ecus;
storage->loadMisconfiguredEcus(&misconfigured_ecus);
if (misconfigured_ecus.size() != 0u) {
std::cout << "Removed or not registered ecus:" << std::endl;
std::vector<MisconfiguredEcu>::const_iterator it;
for (it = misconfigured_ecus.begin(); it != misconfigured_ecus.end(); ++it) {
std::cout << " '" << it->serial << "' with hardware_id '" << it->hardware_id << "' "
<< (it->state == EcuState::kOld ? "has been removed from config" : "not registered yet")
<< std::endl;
std::vector<MisconfiguredEcu> misconfigured_ecus;
storage->loadMisconfiguredEcus(&misconfigured_ecus);
if (misconfigured_ecus.size() != 0u) {
std::cout << "Removed or not registered ecus:" << std::endl;
std::vector<MisconfiguredEcu>::const_iterator it;
for (it = misconfigured_ecus.begin(); it != misconfigured_ecus.end(); ++it) {
std::cout << " '" << it->serial << "' with hardware_id '" << it->hardware_id << "' "
<< (it->state == EcuState::kOld ? "has been removed from config" : "not registered yet")
<< std::endl;
}
}
}

auto registered = storage->loadEcuRegistered();
std::cout << "Provisioned on server: " << (registered ? "yes" : "no") << std::endl;
std::cout << "Fetched metadata: " << (has_metadata ? "yes" : "no") << std::endl;
provision_trigger = (provision_trigger && registered);
provision_trigger = (provision_trigger && has_metadata);

if (provision_trigger) {
break;
} else {
sleep(5);
std::cout << "Provisioned on server: yes" << std::endl;
std::cout << "Fetched metadata: yes" << std::endl;
}
sleep(1);
}
auto pacman = PackageManagerFactory::makePackageManager(config.pacman, storage, nullptr, nullptr);

Expand Down

0 comments on commit 2beae00

Please sign in to comment.