Skip to content

Commit d562e72

Browse files
author
Michal Tichák
committed
fixup! QC-1086 added cycle handling to Aggregators
1 parent 59a9a2e commit d562e72

16 files changed

+58
-50
lines changed

Framework/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ add_library(O2QualityControl
136136
src/ReductorHelpers.cxx
137137
src/KafkaPoller.cxx
138138
src/FlagHelpers.cxx
139-
src/ObjectMetadataKeysHelpers.cxx)
139+
src/ObjectMetadataHelpers.cxx)
140140

141141
target_include_directories(
142142
O2QualityControl

Framework/include/QualityControl/DatabaseInterface.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ class DatabaseInterface
133133
* @param objectName Name of the object
134134
* @param timestamp Timestamp of the object in ms since epoch
135135
* @param activity Activity of the object
136+
* @param metadata additional metadata to filter objects during retrieval
136137
* @deprecated
137138
*/
138139
virtual std::shared_ptr<o2::quality_control::core::MonitorObject> retrieveMO(std::string objectPath, std::string objectName,
@@ -144,6 +145,7 @@ class DatabaseInterface
144145
* @param qoPath Path of the object without the provenance prefix
145146
* @param timestamp Timestamp of the object in ms since epoch
146147
* @param activity Activity of the object
148+
* @param metadata additional metadata to filter objects during retrieval
147149
* @deprecated
148150
*/
149151
virtual std::shared_ptr<o2::quality_control::core::QualityObject> retrieveQO(std::string qoPath, long timestamp = Timestamp::Current,

Framework/include/QualityControl/ObjectMetadataKeysHelpers.h renamed to Framework/include/QualityControl/ObjectMetadataHelpers.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@
1010
// or submit itself to any jurisdiction.
1111

1212
///
13-
/// \file ObjectMetadataKeysHelpers.h
13+
/// \file ObjectMetadataHelpers.h
1414
/// \author Michal Tichak
1515
///
1616

17+
#ifndef QUALITYCONTROL_OBJECTMETADATAHELPERS_H
18+
#define QUALITYCONTROL_OBJECTMETADATAHELPERS_H
19+
1720
#include <optional>
1821
#include <string>
1922

20-
namespace o2::quality_control::repository::metadata_keys
23+
namespace o2::quality_control::repository
2124
{
2225
/**
2326
* \brief Parses metadata value stored under metadata_keys::cycle
@@ -26,4 +29,6 @@ namespace o2::quality_control::repository::metadata_keys
2629
*
2730
*/
2831
std::optional<unsigned long> parseCycle(const std::string& cycleStr);
29-
} // namespace o2::quality_control::repository::metadata_keys
32+
} // namespace o2::quality_control::repository
33+
34+
#endif

Framework/include/QualityControl/ObjectMetadataKeys.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ constexpr auto qcTaskClass = "qc_task_class";
3737
constexpr auto qcQuality = "qc_quality";
3838
constexpr auto qcCheckName = "qc_check_name";
3939
constexpr auto qcAdjustableEOV = "adjustableEOV"; // this is a keyword for the CCDB
40-
constexpr auto cycle = "CycleNumber";
40+
constexpr auto cycleNumber = "CycleNumber";
4141

4242
// QC Activity
4343
constexpr auto runType = "RunType";

Framework/src/Aggregator.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#include "QualityControl/QualityObject.h"
2121
#include "QualityControl/RootClassFactory.h"
2222
#include "QualityControl/AggregatorInterface.h"
23-
#include "QualityControl/ObjectMetadataKeysHelpers.h"
23+
#include "QualityControl/ObjectMetadataHelpers.h"
2424
#include "QualityControl/UpdatePolicyType.h"
2525
#include "QualityControl/ActivityHelpers.h"
2626
#include "QualityControl/Activity.h"
@@ -113,9 +113,9 @@ std::optional<unsigned long> getMaxCycle(const QualityObjectsMapType& qoMap)
113113
{
114114
std::optional<unsigned long> max{};
115115
for (const auto& [_, qo] : qoMap) {
116-
auto cycle = qo->getMetadataOpt(repository::metadata_keys::cycle);
116+
auto cycle = qo->getMetadataOpt(repository::metadata_keys::cycleNumber);
117117
if (cycle.has_value()) {
118-
auto parsedCycle = repository::metadata_keys::parseCycle(cycle.value());
118+
auto parsedCycle = repository::parseCycle(cycle.value());
119119
if (parsedCycle) {
120120
max = std::max(parsedCycle.value(), max.value_or(0));
121121
}
@@ -162,7 +162,7 @@ QualityObjectsType Aggregator::aggregate(QualityObjectsMapType& qoMap, const Act
162162
UpdatePolicyTypeUtils::ToString(mAggregatorConfig.policyType)));
163163
qualityObjects.back()->setActivity(resultActivity);
164164
if (maxCycle.has_value()) {
165-
qualityObjects.back()->addMetadata(repository::metadata_keys::cycle, std::to_string(maxCycle.value()));
165+
qualityObjects.back()->addMetadata(repository::metadata_keys::cycleNumber, std::to_string(maxCycle.value()));
166166
}
167167
}
168168
return qualityObjects;

Framework/src/Check.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#include "QualityControl/QcInfoLogger.h"
3131
#include "QualityControl/Quality.h"
3232
#include "QualityControl/HashDataDescription.h"
33-
#include "QualityControl/ObjectMetadataKeysHelpers.h"
33+
#include "QualityControl/ObjectMetadataHelpers.h"
3434

3535
#include <QualityControl/AggregatorRunner.h>
3636

@@ -168,9 +168,9 @@ QualityObjectsType Check::check(std::map<std::string, std::shared_ptr<MonitorObj
168168
std::optional<unsigned long> maxCycle{};
169169
for (const auto& [moName, mo] : moMapToCheck) {
170170
monitorObjectsNames.emplace_back(moName);
171-
if (const auto cycle = mo->getMetadata(repository::metadata_keys::cycle)) {
171+
if (const auto cycle = mo->getMetadata(repository::metadata_keys::cycleNumber)) {
172172
const auto& cycleStr = cycle.value();
173-
if (const auto cycleVal = repository::metadata_keys::parseCycle(cycleStr); cycleVal.has_value()) {
173+
if (const auto cycleVal = repository::parseCycle(cycleStr); cycleVal.has_value()) {
174174
maxCycle = std::max(cycleVal.value(), maxCycle.value_or(0));
175175
}
176176
}
@@ -186,7 +186,7 @@ QualityObjectsType Check::check(std::map<std::string, std::shared_ptr<MonitorObj
186186

187187
qualityObjects.back()->setActivity(commonActivity);
188188
if (maxCycle.has_value()) {
189-
qualityObjects.back()->addMetadata(repository::metadata_keys::cycle, std::to_string(maxCycle.value()));
189+
qualityObjects.back()->addMetadata(repository::metadata_keys::cycleNumber, std::to_string(maxCycle.value()));
190190
}
191191
beautify(moMapToCheck, quality);
192192
}

Framework/src/MonitorObjectCollection.cxx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
#include "QualityControl/MonitorObject.h"
1919
#include "QualityControl/ObjectMetadataKeys.h"
2020
#include "QualityControl/QcInfoLogger.h"
21-
#include "QualityControl/ObjectMetadataKeysHelpers.h"
21+
#include "QualityControl/ObjectMetadataHelpers.h"
2222

2323
#include <Mergers/MergerAlgorithm.h>
2424
#include <TNamed.h>
@@ -32,24 +32,24 @@ namespace o2::quality_control::core
3232

3333
void mergeCycles(MonitorObject* targetMO, MonitorObject* otherMO)
3434
{
35-
const auto otherCycle = otherMO->getMetadata(repository::metadata_keys::cycle);
36-
const auto targetCycle = targetMO->getMetadata(repository::metadata_keys::cycle);
35+
const auto otherCycle = otherMO->getMetadata(repository::metadata_keys::cycleNumber);
36+
const auto targetCycle = targetMO->getMetadata(repository::metadata_keys::cycleNumber);
3737
if (otherCycle.has_value() && targetCycle.has_value()) {
38-
const auto targetCycleParsed = repository::metadata_keys::parseCycle(targetCycle.value());
39-
const auto otherCycleParsed = repository::metadata_keys::parseCycle(otherCycle.value());
38+
const auto targetCycleParsed = repository::parseCycle(targetCycle.value());
39+
const auto otherCycleParsed = repository::parseCycle(otherCycle.value());
4040

4141
if (targetCycleParsed && otherCycleParsed) {
42-
targetMO->addOrUpdateMetadata(repository::metadata_keys::cycle, std::to_string(std::max(targetCycleParsed.value(), otherCycleParsed.value())));
42+
targetMO->addOrUpdateMetadata(repository::metadata_keys::cycleNumber, std::to_string(std::max(targetCycleParsed.value(), otherCycleParsed.value())));
4343
return;
4444
}
4545

4646
if (targetCycleParsed.value()) {
47-
targetMO->addOrUpdateMetadata(repository::metadata_keys::cycle, std::to_string(targetCycleParsed.value()));
47+
targetMO->addOrUpdateMetadata(repository::metadata_keys::cycleNumber, std::to_string(targetCycleParsed.value()));
4848
return;
4949
}
5050

5151
if (otherCycleParsed.value()) {
52-
otherMO->addOrUpdateMetadata(repository::metadata_keys::cycle, std::to_string(otherCycleParsed.value()));
52+
otherMO->addOrUpdateMetadata(repository::metadata_keys::cycleNumber, std::to_string(otherCycleParsed.value()));
5353
return;
5454
}
5555
}

Framework/src/ObjectMetadataKeysHelpers.cxx renamed to Framework/src/ObjectMetadataHelpers.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,26 @@
1010
// or submit itself to any jurisdiction.
1111

1212
///
13-
/// \file ObjectMetadataKeysHelpers.cxx
13+
/// \file ObjectMetadataHelpers.cxx
1414
/// \author Michal Tichak
1515
///
1616

1717
#include <charconv>
18-
#include "QualityControl/ObjectMetadataKeysHelpers.h"
18+
#include "QualityControl/ObjectMetadataHelpers.h"
1919
#include "QualityControl/ObjectMetadataKeys.h"
2020
#include "QualityControl/QcInfoLogger.h"
2121

22-
namespace o2::quality_control::repository::metadata_keys
22+
namespace o2::quality_control::repository
2323
{
2424
std::optional<unsigned long> parseCycle(const std::string& cycleStr)
2525
{
2626
unsigned long cycleVal{};
2727
if (auto parse_res = std::from_chars(cycleStr.c_str(), cycleStr.c_str() + cycleStr.size(), cycleVal);
2828
parse_res.ec != std::errc{}) {
29-
ILOG(Warning, Support) << "failed to decypher " << repository::metadata_keys::cycle << " metadata with value " << cycleStr
29+
ILOG(Warning, Support) << "failed to decypher " << repository::metadata_keys::cycleNumber << " metadata with value " << cycleStr
3030
<< ", with std::errc " << std::make_error_code(parse_res.ec).message() << ENDM;
3131
return std::nullopt;
3232
}
3333
return cycleVal;
3434
}
35-
} // namespace o2::quality_control::repository::metadata_keys
35+
} // namespace o2::quality_control::repository

Framework/src/TaskRunner.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ int TaskRunner::publish(DataAllocator& outputs)
524524
// getNonOwningArray creates a TObjArray containing the monitoring objects, but not
525525
// owning them. The array is created by new and must be cleaned up by the caller
526526
std::unique_ptr<MonitorObjectCollection> array(mObjectsManager->getNonOwningArray());
527-
array->addOrUpdateMetadata(repository::metadata_keys::cycle, std::to_string(mCycleNumber));
527+
array->addOrUpdateMetadata(repository::metadata_keys::cycleNumber, std::to_string(mCycleNumber));
528528
int objectsPublished = array->GetEntries();
529529

530530
outputs.snapshot(

Framework/src/Triggers.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,8 +293,8 @@ TriggerFcn ForEachObject(const std::string& databaseUrl, const std::string& data
293293
auto currentActivity = activity_helpers::asActivity(*currentObject, activity.mProvenance);
294294
bool last = currentObject + 1 == filteredObjects->end();
295295
Trigger trigger(TriggerType::ForEachObject, last, currentActivity, currentObject->get<int64_t>(timestampSortKey));
296-
if (auto cycle = currentObject->get_optional<std::string>(metadata_keys::cycle); cycle.has_value()) {
297-
trigger.metadata.emplace(metadata_keys::cycle, cycle.value());
296+
if (auto cycle = currentObject->get_optional<std::string>(metadata_keys::cycleNumber); cycle.has_value()) {
297+
trigger.metadata.emplace(metadata_keys::cycleNumber, cycle.value());
298298
}
299299
++currentObject;
300300

0 commit comments

Comments
 (0)