diff options
| author | Innokentii Mokin <[email protected]> | 2024-04-16 11:52:41 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-04-16 11:52:41 +0300 |
| commit | d7ca23dbee1457a777070e1fea0c513e3a5ae27d (patch) | |
| tree | 59482f672560cd04c0fdd1811972c8e5ae90e22d | |
| parent | 1acdfa076cedab37949c547c1c80bfe682e25452 (diff) | |
[configs] fix nvme handling in pdisk from category (#3761)
| -rw-r--r-- | ydb/library/yaml_config/yaml_config_parser.cpp | 9 | ||||
| -rw-r--r-- | ydb/library/yaml_config/yaml_config_parser_impl.h | 9 | ||||
| -rw-r--r-- | ydb/library/yaml_config/yaml_config_parser_ut.cpp | 14 |
3 files changed, 29 insertions, 3 deletions
diff --git a/ydb/library/yaml_config/yaml_config_parser.cpp b/ydb/library/yaml_config/yaml_config_parser.cpp index a1d7969a8dd..67816ea093f 100644 --- a/ydb/library/yaml_config/yaml_config_parser.cpp +++ b/ydb/library/yaml_config/yaml_config_parser.cpp @@ -1,9 +1,12 @@ #include "yaml_config_parser.h" +#include "yaml_config_parser_impl.h" #include "yaml_config_helpers.h" #include "core_constants.h" +#include <ydb/library/pdisk_io/device_type.h> #include <ydb/library/yaml_config/protos/config.pb.h> +#include <ydb/core/base/blobstorage_pdisk_category.h> #include <ydb/core/base/domain.h> #include <ydb/core/erasure/erasure.h> #include <ydb/core/protos/blobstorage_config.pb.h> @@ -236,11 +239,11 @@ namespace NKikimr::NYaml { } if (data == "ROT") { - return 0; + return TPDiskCategory(NPDisk::DEVICE_TYPE_ROT, 0).GetRaw(); } else if (data == "SSD") { - return 1; + return TPDiskCategory(NPDisk::DEVICE_TYPE_SSD, 0).GetRaw(); } else if (data == "NVME") { - return 2; + return TPDiskCategory(NPDisk::DEVICE_TYPE_NVME, 0).GetRaw(); } Y_ENSURE_BT(false, "unknown pdisk category " << data); diff --git a/ydb/library/yaml_config/yaml_config_parser_impl.h b/ydb/library/yaml_config/yaml_config_parser_impl.h new file mode 100644 index 00000000000..57a40da718f --- /dev/null +++ b/ydb/library/yaml_config/yaml_config_parser_impl.h @@ -0,0 +1,9 @@ +#pragma once + +#include <util/generic/string.h> + +namespace NKikimr::NYaml { + +ui64 PdiskCategoryFromString(const TString& data); + +} // namespace NKikimr::NYaml diff --git a/ydb/library/yaml_config/yaml_config_parser_ut.cpp b/ydb/library/yaml_config/yaml_config_parser_ut.cpp index 6911bb584ce..c1eee4b5819 100644 --- a/ydb/library/yaml_config/yaml_config_parser_ut.cpp +++ b/ydb/library/yaml_config/yaml_config_parser_ut.cpp @@ -1,4 +1,5 @@ #include "yaml_config_parser.h" +#include "yaml_config_parser_impl.h" #include "yaml_config_helpers.h" #include <ydb/core/protos/key.pb.h> @@ -76,4 +77,17 @@ pdisk_key_config: auto key = keys.at(0); UNIT_ASSERT_VALUES_EQUAL("c2FtcGxlLXBpbgo=", key.pin()); } + + Y_UNIT_TEST(PdiskCategoryFromString) { + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("0"), 0ull); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("ROT"), 0ull); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("1"), 1ull); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("SSD"), 1ull); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("2"), 2ull); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("3"), 3ull); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("562949953421312"), 1ull << 49); + UNIT_ASSERT_VALUES_EQUAL(PdiskCategoryFromString("NVME"), 144115188075855873ull); + UNIT_CHECK_GENERATED_EXCEPTION(PdiskCategoryFromString("zzz"), yexception); + UNIT_CHECK_GENERATED_EXCEPTION(PdiskCategoryFromString("-1"), yexception); + } } |
