| #include "tlbmc/store/factory.h" |
| |
| #include <cstddef> |
| #include <memory> |
| #include <utility> |
| #include <vector> |
| |
| #include "one/offline_node_entities.pb.h" |
| #include "absl/log/log.h" |
| #include "absl/status/status.h" |
| #include "absl/status/statusor.h" |
| #include "absl/strings/string_view.h" |
| #include "g3/macros.h" |
| #include <nlohmann/json_fwd.hpp> |
| #include "tlbmc/collector/gpio_collector.h" |
| #include "tlbmc/configs/entity_config.h" |
| #include "tlbmc/configs/entity_config_json_impl.h" |
| #include "fru.pb.h" |
| |
| namespace milotic_tlbmc { |
| |
| using ::production_msv::node_entities_proto::OfflineNodeEntityInformation; |
| |
| absl::Status EntityConfigReaderImpl::LoadEntityConfig( |
| absl::string_view config_location, |
| absl::string_view offline_node_entities_path) { |
| absl::StatusOr<OfflineNodeEntityInformation> parsed_offline_node_entities = |
| EntityConfigJsonImpl::ParseOfflineNodeEntities( |
| offline_node_entities_path); |
| if (!parsed_offline_node_entities.ok()) { |
| LOG(WARNING) << "Could not read OfflineNodeEntities information from " |
| << offline_node_entities_path << ": " |
| << parsed_offline_node_entities.status().message(); |
| } else { |
| offline_node_entities_ = *parsed_offline_node_entities; |
| } |
| ECCLESIA_ASSIGN_OR_RETURN( |
| config_list_, |
| EntityConfigJsonImpl::ParseJsonFilesIntoConfigList(config_location)); |
| return absl::OkStatus(); |
| } |
| |
| absl::StatusOr<std::unique_ptr<EntityConfig>> |
| EntityConfigReaderImpl::CreateEntityConfig(const RawFruTable& fru_table, |
| size_t ad_hoc_fru_count, |
| bool enable_deterministic_bmc, |
| GpioCollector* gpio_collector, |
| bool enable_hft_test_sensor) { |
| return EntityConfigJsonImpl::Create( |
| std::move(config_list_), std::move(offline_node_entities_), fru_table, |
| ad_hoc_fru_count, enable_deterministic_bmc, gpio_collector, |
| enable_hft_test_sensor); |
| } |
| |
| const std::vector<nlohmann::json>& EntityConfigReaderImpl::GetConfig() const { |
| return config_list_; |
| } |
| |
| const OfflineNodeEntityInformation& |
| EntityConfigReaderImpl::GetOfflineNodeEntities() const { |
| return offline_node_entities_; |
| } |
| |
| } // namespace milotic_tlbmc |