summaryrefslogtreecommitdiffstats
path: root/configd
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-05-28 13:04:33 +0000
committerArne Juul <arnej@verizonmedia.com>2021-05-28 13:08:25 +0000
commit7d16ac7297b32a25a018bcfd406198a585559a2c (patch)
treeddd2bc2b7f09efa8e65354ce5d60c4c938e158f2 /configd
parent24db5f1c9e0e407dc0aa45febfc7b8992c097a66 (diff)
also subscribe on ModelConfig
Diffstat (limited to 'configd')
-rw-r--r--configd/src/apps/sentinel/config-owner.cpp4
-rw-r--r--configd/src/apps/sentinel/config-owner.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/configd/src/apps/sentinel/config-owner.cpp b/configd/src/apps/sentinel/config-owner.cpp
index 3feec70d2e5..600fcb36761 100644
--- a/configd/src/apps/sentinel/config-owner.cpp
+++ b/configd/src/apps/sentinel/config-owner.cpp
@@ -16,18 +16,22 @@ ConfigOwner::~ConfigOwner() = default;
void
ConfigOwner::subscribe(const std::string & configId, std::chrono::milliseconds timeout) {
_sentinelHandle = _subscriber.subscribe<SentinelConfig>(configId, timeout);
+ _modelHandle = _subscriber.subscribe<ModelConfig>("admin/model", timeout);
}
void
ConfigOwner::doConfigure()
{
_currConfig = _sentinelHandle->getConfig();
+ _modelConfig = _modelHandle->getConfig();
LOG_ASSERT(_currConfig);
+ LOG_ASSERT(_modelConfig);
_currGeneration = _subscriber.getGeneration();
const SentinelConfig& config(*_currConfig);
const auto & app = config.application;
LOG(config, "Sentinel got %zd service elements [tenant(%s), application(%s), instance(%s)] for config generation %zd",
config.service.size(), app.tenant.c_str(), app.name.c_str(), app.instance.c_str(), _currGeneration);
+ LOG(config, "Sentinel got model info [version %s] for %zd hosts", _modelConfig->vespaVersion.c_str(), _modelConfig->hosts.size());
}
diff --git a/configd/src/apps/sentinel/config-owner.h b/configd/src/apps/sentinel/config-owner.h
index 612db7fe9a1..df53ca7d685 100644
--- a/configd/src/apps/sentinel/config-owner.h
+++ b/configd/src/apps/sentinel/config-owner.h
@@ -3,9 +3,11 @@
#pragma once
#include <vespa/config-sentinel.h>
+#include <vespa/config-model.h>
#include <vespa/config/config.h>
using cloud::config::SentinelConfig;
+using cloud::config::ModelConfig;
using config::ConfigSubscriber;
using config::ConfigHandle;
@@ -19,9 +21,11 @@ class ConfigOwner {
private:
ConfigSubscriber _subscriber;
ConfigHandle<SentinelConfig>::UP _sentinelHandle;
+ ConfigHandle<ModelConfig>::UP _modelHandle;
int64_t _currGeneration = -1;
std::unique_ptr<SentinelConfig> _currConfig;
+ std::unique_ptr<ModelConfig> _modelConfig;
ConfigOwner(const ConfigOwner&) = delete;
ConfigOwner& operator =(const ConfigOwner&) = delete;
@@ -34,6 +38,7 @@ public:
bool checkForConfigUpdate();
bool hasConfig() const { return _currConfig.get() != nullptr; }
const SentinelConfig& getConfig() const { return *_currConfig; }
+ const ModelConfig& modelConfig() const { return *_modelConfig; }
int64_t getGeneration() const { return _currGeneration; }
};