)
from ceph.deployment.utils import unwrap_ipv6, valid_addr, verify_non_negative_int
from ceph.deployment.utils import verify_positive_int, verify_non_negative_number
-from ceph.deployment.utils import verify_boolean, verify_enum, verify_int
+from ceph.deployment.utils import verify_boolean, verify_enum, verify_int, verify_non_empty_string
from ceph.deployment.utils import parse_combined_pem_file, validate_port, validate_unique_ports
from ceph.cephadm.d3n_types import D3NCacheSpec, D3NCacheError
from ceph.utils import is_hex
FuncT = TypeVar('FuncT', bound=Callable)
-def validate_non_empty_string(value: Optional[str], field_name: str) -> None:
- if not isinstance(value, str) or not value.strip():
- raise SpecValidationError(f"Invalid {field_name}: Must be a non-empty string.")
-
-
class TLSBlock(TypedDict, total=False):
ssl: bool
certificate_source: str
+ ', '.join(missing_required_fields)
+ '.'
)
- validate_non_empty_string(self.provider_display_name, "provider_display_name")
- validate_non_empty_string(self.client_id, "client_id")
- validate_non_empty_string(self.client_secret, "client_secret")
+ verify_non_empty_string(self.provider_display_name, "provider_display_name")
+ verify_non_empty_string(self.client_id, "client_id")
+ verify_non_empty_string(self.client_secret, "client_secret")
+
self._validate_cookie_secret(self.cookie_secret)
self._validate_url(self.oidc_issuer_url, "oidc_issuer_url")
if self.redirect_url is not None:
self._validate_url(self.redirect_url, "redirect_url")
if self.scope is not None:
- self._validate_non_empty_string(self.scope, "scope")
+ verify_non_empty_string(self.scope, "scope")
if self.email_domains is not None:
self._validate_domain_name(self.email_domains, "email_domains")
if self.https_address is not None:
if 'profile_name' not in spec:
raise SpecValidationError('Tuned profile spec must include "profile_name" field')
data['profile_name'] = spec['profile_name']
- validate_non_empty_string(data['profile_name'], "profile_name")
+ verify_non_empty_string(data['profile_name'], "profile_name")
if 'placement' in spec:
data['placement'] = PlacementSpec.from_json(spec['placement'])
if 'settings' in spec: