Skip to content

Commit 5dddd6a

Browse files
committed
Moved Parse method to appropriate WorkloadRunCommand class & added interval validation
1 parent 39fefbf commit 5dddd6a

File tree

3 files changed

+15
-5
lines changed

3 files changed

+15
-5
lines changed

ydb/library/workload/log/log.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,7 @@ class TRandomLogGenerator {
286286
for (size_t row = 0; row < count; ++row) {
287287
result.emplace_back();
288288
result.back().LogId = CreateGuidAsString().c_str();
289+
// TODO: check if it's correct to get interval params here
289290
result.back().Ts = Params.TimestampDateFrom.has_value() ? UniformInstant(*Params.TimestampDateFrom, *Params.TimestampDateTo) : RandomInstant();
290291
result.back().Level = RandomNumber<ui32>(10);
291292
result.back().ServiceName = RandomWord(false);
@@ -486,6 +487,15 @@ void TLogWorkloadParams::Parse(NYdb::NConsoleClient::TClientCommand::TConfig& co
486487
if ((date_from_passed && !date_to_passed) || (!date_from_passed && date_to_passed)) {
487488
throw yexception() << "The `date_from` and `date_to` parameters must be provided together to specify the interval for uniform PK generation";
488489
}
490+
491+
if (date_from_passed && date_to_passed) {
492+
auto date_from_val = config.ParseResult->Get("date_from");
493+
auto date_to_val = config.ParseResult->Get("date_to");
494+
495+
if (date_from_val >= date_to_val) {
496+
throw yexception() << "Invalid interval [`date_from`, `date_to`)";
497+
}
498+
}
489499
}
490500

491501
THolder<IWorkloadQueryGenerator> TLogWorkloadParams::CreateGenerator() const {

ydb/public/lib/ydb_cli/commands/ydb_workload.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,10 @@ void TWorkloadCommandRun::Config(TConfig& config) {
359359
Params.ConfigureOpts(config.Opts->GetOpts(), NYdbWorkload::TWorkloadParams::ECommandType::Run, Type);
360360
}
361361

362+
void TWorkloadCommandRun::Parse(TConfig& config) {
363+
Params.Parse(config);
364+
}
365+
362366
TWorkloadCommandBase::TWorkloadCommandBase(const TString& name, NYdbWorkload::TWorkloadParams& params, const NYdbWorkload::TWorkloadParams::ECommandType commandType, const TString& description, int type)
363367
: TYdbCommand(name, std::initializer_list<TString>(), description)
364368
, CommandType(commandType)
@@ -374,10 +378,6 @@ void TWorkloadCommandBase::Config(TConfig& config) {
374378
Params.ConfigureOpts(config.Opts->GetOpts(), CommandType, Type);
375379
}
376380

377-
void TWorkloadCommandBase::Parse(TConfig& config) {
378-
Params.Parse(config);
379-
}
380-
381381
int TWorkloadCommandBase::Run(TConfig& config) {
382382
Driver = MakeHolder<NYdb::TDriver>(CreateDriver(config));
383383
if (!DryRun) {

ydb/public/lib/ydb_cli/commands/ydb_workload.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class TWorkloadCommandRun : public TWorkloadCommand {
7373
public:
7474
TWorkloadCommandRun(NYdbWorkload::TWorkloadParams& params, const NYdbWorkload::IWorkloadQueryGenerator::TWorkloadType& workload);
7575
virtual void Config(TConfig& config) override;
76+
virtual void Parse(TConfig& config) override;
7677
virtual int Run(TConfig& config) override;
7778

7879
private:
@@ -89,7 +90,6 @@ class TWorkloadCommandBase: public TYdbCommand {
8990
const TString& description = TString(),
9091
int type = 0);
9192
virtual void Config(TConfig& config) override;
92-
virtual void Parse(TConfig& config) override;
9393
virtual int Run(TConfig& config) override final;
9494

9595
protected:

0 commit comments

Comments
 (0)