in cli/src/pcluster/config/cluster_config.py [0:0]
def _register_validators(self, context: ValidatorContext = None):
super()._register_validators(context)
self._register_validator(
DuplicateNameValidator,
name_list=[compute_resource.name for compute_resource in self.compute_resources],
resource_name="Compute resource",
)
self._register_validator(
MaxCountValidator,
resources_length=len(self.compute_resources),
max_length=MAX_COMPUTE_RESOURCES_PER_QUEUE,
resource_name="ComputeResources per Queue",
)
self._register_validator(
QueueSubnetsValidator,
queue_name=self.name,
subnet_ids=self.networking.subnet_ids,
az_subnet_ids_mapping=self.networking.az_subnet_ids_mapping,
)
self._register_validator(
SlurmNodePrioritiesWarningValidator,
queue_name=self.name,
compute_resources=self.compute_resources,
)
if any(isinstance(compute_resource, SlurmComputeResource) for compute_resource in self.compute_resources):
self._register_validator(
SingleInstanceTypeSubnetValidator,
queue_name=self.name,
subnet_ids=self.networking.subnet_ids,
)
if self.custom_slurm_settings:
self._register_validator(
CustomSlurmSettingsValidator,
custom_settings=[self.custom_slurm_settings],
deny_list=SLURM_SETTINGS_DENY_LIST["Queue"]["Global"],
settings_level=CustomSlurmSettingLevel.QUEUE,
)
for compute_resource in self.compute_resources:
self._register_validator(
EfaSecurityGroupValidator,
efa_enabled=compute_resource.efa.enabled,
security_groups=self.networking.security_groups,
additional_security_groups=self.networking.additional_security_groups,
)
self._register_validator(
EfaPlacementGroupValidator,
efa_enabled=compute_resource.efa.enabled,
placement_group_key=self.get_placement_group_settings_for_compute_resource(compute_resource).get("key"),
placement_group_disabled=self.get_chosen_placement_group_setting_for_compute_resource(
compute_resource
).enabled
is False,
multi_az_enabled=self.multi_az_enabled,
capacity_type=self.capacity_type,
)
self._register_validator(
ComputeResourceSizeValidator,
min_count=compute_resource.min_count,
max_count=compute_resource.max_count,
capacity_type=self.capacity_type,
)
if compute_resource.custom_slurm_settings:
self._register_validator(
CustomSlurmSettingsValidator,
custom_settings=[compute_resource.custom_slurm_settings],
deny_list=SLURM_SETTINGS_DENY_LIST["ComputeResource"]["Global"],
settings_level=CustomSlurmSettingLevel.COMPUTE_RESOURCE,
)
for instance_type in compute_resource.instance_types:
cr_target = compute_resource.capacity_reservation_target or self.capacity_reservation_target
self._register_validator(
CapacityTypeValidator,
capacity_type=self.capacity_type,
instance_type=instance_type,
capacity_reservation_id=cr_target.capacity_reservation_id if cr_target else None,
)
self._register_validator(FeatureRegionValidator, feature=self.capacity_type, region=None)