Skip to content

Commit 3333d46

Browse files
authored
Move service discovery to objectsmanager and some clean up (QC-193, QC-189) (#184)
* Also some fixes for the ServiceDiscovery
1 parent f1e9ca9 commit 3333d46

15 files changed

+80
-27
lines changed

Framework/advanced.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
"Activity": {
1212
"number": "42",
1313
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "infologger:///debug?qc"
17+
},
18+
"consul": {
19+
"url": "http://consul-test.cern.ch:8500"
1420
}
1521
},
1622
"tasks": {

Framework/basic-no-sampling.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
"Activity": {
1212
"number": "42",
1313
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "infologger:///debug?qc"
17+
},
18+
"consul": {
19+
"url": "http://consul-test.cern.ch:8500"
1420
}
1521
},
1622
"tasks": {

Framework/basic.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
"Activity": {
1212
"number": "42",
1313
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "infologger:///debug?qc"
17+
},
18+
"consul": {
19+
"url": "http://consul-test.cern.ch:8500"
1420
}
1521
},
1622
"tasks": {

Framework/example-default.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
"Activity": {
1212
"number": "42",
1313
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "infologger:///debug?qc"
17+
},
18+
"consul": {
19+
"url": "http://consul-test.cern.ch:8500"
1420
}
1521
},
1622
"tasks": {

Framework/include/QualityControl/ObjectsManager.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ObjectsManager
4343
friend class TaskControl; // TaskControl must be able to call "publish()" whenever needed. Nobody else can.
4444

4545
public:
46-
ObjectsManager(TaskConfig& taskConfig, std::shared_ptr<ServiceDiscovery> serviceDiscovery = nullptr);
46+
ObjectsManager(TaskConfig& taskConfig);
4747
virtual ~ObjectsManager();
4848

4949
/**
@@ -120,8 +120,8 @@ class ObjectsManager
120120

121121
private:
122122
TObjArray mMonitorObjects;
123-
std::string mTaskName;
124-
std::shared_ptr<ServiceDiscovery> mServiceDiscovery;
123+
TaskConfig& mTaskConfig;
124+
std::unique_ptr<ServiceDiscovery> mServiceDiscovery;
125125
bool mUpdateServiceDiscovery;
126126
};
127127

Framework/include/QualityControl/TaskConfig.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,13 @@ namespace o2::quality_control::core
2222
{
2323

2424
/// \brief Container for the configuration of a Task
25-
///
26-
/// \author Barthelemy von Haller
2725
struct TaskConfig {
2826
std::string taskName;
2927
std::string moduleName;
3028
std::string className;
3129
int cycleDurationSeconds;
3230
int maxNumberCycles;
31+
std::string consulUrl;
3332
};
3433

3534
} // namespace o2::quality_control::core

Framework/include/QualityControl/TaskRunner.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,6 @@ class TaskRunner : public framework::Task
117117
std::shared_ptr<TaskInterface> mTask;
118118
bool mResetAfterPublish;
119119
std::shared_ptr<ObjectsManager> mObjectsManager;
120-
std::shared_ptr<ServiceDiscovery> mServiceDiscovery;
121120

122121
// consider moving these to TaskConfig
123122
framework::Inputs mInputSpecs;

Framework/readout-no-sampling.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,12 @@
1111
"Activity": {
1212
"number": "42",
1313
"type": "2"
14+
},
15+
"monitoring": {
16+
"url": "infologger:///debug?qc"
17+
},
18+
"consul": {
19+
"url": "http://consul-test.cern.ch:8500"
1420
}
1521
},
1622
"tasks": {

Framework/readout.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
"type": "2"
1414
},
1515
"monitoring": {
16-
"url": "infologger:///debug?qc"
16+
"url": "infologger:///debug?qc"
17+
},
18+
"consul": {
19+
"url": "http://consul-test.cern.ch:8500"
1720
}
1821
},
1922
"tasks": {

Framework/src/ObjectsManager.cxx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,12 @@ using namespace std;
2424
namespace o2::quality_control::core
2525
{
2626

27-
ObjectsManager::ObjectsManager(TaskConfig& taskConfig, std::shared_ptr<ServiceDiscovery> serviceDiscovery) : mTaskName(taskConfig.taskName), mServiceDiscovery(serviceDiscovery), mUpdateServiceDiscovery(false)
27+
ObjectsManager::ObjectsManager(TaskConfig& taskConfig) : mTaskConfig(taskConfig), mUpdateServiceDiscovery(false)
2828
{
2929
mMonitorObjects.SetOwner(true);
30+
31+
// register with the discovery service
32+
mServiceDiscovery = std::make_unique<ServiceDiscovery>(taskConfig.consulUrl, taskConfig.taskName);
3033
}
3134

3235
ObjectsManager::~ObjectsManager()
@@ -40,7 +43,7 @@ void ObjectsManager::startPublishing(TObject* object)
4043
<< infologger::endm;
4144
BOOST_THROW_EXCEPTION(DuplicateObjectError() << errinfo_object_name(object->GetName()));
4245
}
43-
auto* newObject = new MonitorObject(object, mTaskName);
46+
auto* newObject = new MonitorObject(object, mTaskConfig.taskName);
4447
newObject->setIsOwner(false);
4548
mMonitorObjects.Add(newObject);
4649
mUpdateServiceDiscovery = true;

0 commit comments

Comments
 (0)