Skip to content

Commit f8a8ad9

Browse files
authored
Support ydb_configure drive.pdisk_config (#33788)
1. Revert "Configure infer_pdisk_slot_count with ydb_configure (#29778)" to address #32113 2. Account `drive.pdisk_config` when generating DefineBoxAndStoragePools.txt Config example: ``` host_configs: - drive: - path: /dev/disk/by-partlabel/kikimr_ssd_01 pdisk_config: expected_slot_count: 18 slot_size_in_units: 1 type: SSD ```
1 parent bc91187 commit f8a8ad9

File tree

3 files changed

+5
-42
lines changed

3 files changed

+5
-42
lines changed

ydb/tools/cfg/base.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@ def __init__(self, template, host_info_provider, validator=None, database=None,
313313
self.table_profiles_config = self.__cluster_description.get("table_profiles_config")
314314
self.http_proxy_config = self.__cluster_description.get("http_proxy_config")
315315
self.blob_storage_config = self.__cluster_description.get("blob_storage_config")
316-
self.infer_pdisk_slot_count = self._extract_infer_pdisk_slot_count(self.blob_storage_config)
317316
self.bootstrap_config = self.__cluster_description.get("bootstrap_config")
318317
self.memory_controller_config = self.__cluster_description.get("memory_controller_config")
319318
self.kafka_proxy_config = self.__cluster_description.get("kafka_proxy_config")
@@ -360,15 +359,6 @@ def get_subjective_description(objective_description, tenant, validator):
360359
subjective_description.validate()
361360
return subjective_description
362361

363-
def _extract_infer_pdisk_slot_count(self, blob_storage_config):
364-
if blob_storage_config is None:
365-
return None
366-
if 'infer_pdisk_slot_count' not in blob_storage_config:
367-
return None
368-
infer_pdisk_slot_count = blob_storage_config['infer_pdisk_slot_count']
369-
del blob_storage_config['infer_pdisk_slot_count']
370-
return infer_pdisk_slot_count
371-
372362
@property
373363
def storage_config_generation(self):
374364
return self.__cluster_description.get("storage_config_generation", 0)

ydb/tools/cfg/dynamic.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -189,15 +189,13 @@ def add_drive(array, drive):
189189
Type=drive.type,
190190
Kind=drive.kind,
191191
)
192-
if drive.expected_slot_count is not None:
192+
if drive.pdisk_config is not None:
193+
pc = pdisk_config.TPDiskConfig()
194+
utils.wrap_parse_dict(drive.pdisk_config, pc)
195+
kwargs.update(PDiskConfig=pc)
196+
elif drive.expected_slot_count is not None:
193197
pc = pdisk_config.TPDiskConfig(ExpectedSlotCount=drive.expected_slot_count)
194198
kwargs.update(PDiskConfig=pc)
195-
196-
if self._cluster_details.infer_pdisk_slot_count is not None:
197-
infer_settings = self._cluster_details.infer_pdisk_slot_count.get(str(drive.type).lower())
198-
if infer_settings is not None:
199-
kwargs.update(InferPDiskSlotCountFromUnitSize=infer_settings['unit_size'])
200-
kwargs.update(InferPDiskSlotCountMax=infer_settings['max_slots'])
201199
array.add(**kwargs)
202200

203201
for host_config in self._cluster_details.host_configs:

ydb/tools/cfg/static.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -465,29 +465,6 @@ def normalize_dictionary(self, yaml_config):
465465
return yaml_config
466466
return result
467467

468-
def _apply_infer_pdisk_slot_count_to_host_config(self, host_config):
469-
infer_settings = self.__cluster_details.infer_pdisk_slot_count
470-
if infer_settings is None:
471-
return
472-
473-
target_cfg = {
474-
'infer_pdisk_slot_count_from_unit_size': {},
475-
'infer_pdisk_slot_count_max': {},
476-
}
477-
478-
ssd_settings = infer_settings.get('ssd')
479-
if ssd_settings:
480-
target_cfg['infer_pdisk_slot_count_from_unit_size']['ssd'] = ssd_settings['unit_size']
481-
target_cfg['infer_pdisk_slot_count_max']['ssd'] = ssd_settings['max_slots']
482-
483-
rot_settings = infer_settings.get('rot')
484-
if rot_settings:
485-
target_cfg['infer_pdisk_slot_count_from_unit_size']['rot'] = rot_settings['unit_size']
486-
target_cfg['infer_pdisk_slot_count_max']['rot'] = rot_settings['max_slots']
487-
488-
if target_cfg["infer_pdisk_slot_count_from_unit_size"]:
489-
host_config.update(target_cfg)
490-
491468
def get_normalized_config(self):
492469
app_config = self.get_app_config()
493470
dictionary = json_format.MessageToDict(app_config, preserving_proto_field_name=True)
@@ -525,8 +502,6 @@ def get_normalized_config(self):
525502

526503
drive['pdisk_config'] = self.normalize_dictionary(json_format.MessageToDict(pd))
527504

528-
self._apply_infer_pdisk_slot_count_to_host_config(host_config)
529-
530505
if self.table_service_config:
531506
normalized_config["table_service_config"] = self.table_service_config
532507

0 commit comments

Comments
 (0)