def _validate_container_properties()

in syndicate/core/build/validator/batch_jobdef_validator.py [0:0]


def _validate_container_properties(container_properties, prefix=None):
    """
    Performs check of Batch Job Definition container properties.

    :param container_properties: container properties definition
    :param prefix: prefix that will be displayed before the variable
     name in case of invalidity.

    :raises AssertionError in case of invalidity.

    :return: None
    """
    if not prefix:
        prefix = 'container_properties'

    container_config = [
        {
            'field_name': 'image',
            'field_value': container_properties.get('image'),
            'prefix': prefix,
            'required_type': str,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'vcpus',
            'field_value': container_properties.get('vcpus'),
            'prefix': prefix,
            'required_type': int,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'memory',
            'field_value': container_properties.get('memory'),
            'prefix': prefix,
            'required_type': int,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'command',
            'field_value': container_properties.get('command'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'job_role_arn',
            'field_value': container_properties.get('job_role_arn'),
            'prefix': prefix,
            'required_type': str,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'execution_role_arn',
            'field_value': container_properties.get('execution_role_arn'),
            'prefix': prefix,
            'required_type': str,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'volumes',
            'field_value': container_properties.get('volumes'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'volumes',
            'field_value': container_properties.get('volumes'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'environment',
            'field_value': container_properties.get('environment'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'mount_points',
            'field_value': container_properties.get('mount_points'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'readonly_root_filesystem',
            'field_value': container_properties.get('readonly_root_filesystem'),
            'prefix': prefix,
            'required_type': bool,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'privileged',
            'field_value': container_properties.get('privileged'),
            'prefix': prefix,
            'required_type': bool,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'ulimits',
            'field_value': container_properties.get('ulimits'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'user',
            'field_value': container_properties.get('user'),
            'prefix': prefix,
            'required_type': str,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'instance_type',
            'field_value': container_properties.get('instance_type'),
            'prefix': prefix,
            'required_type': str,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'resource_requirements',
            'field_value': container_properties.get('resource_requirements'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'linux_parameters',
            'field_value': container_properties.get('linux_parameters'),
            'prefix': prefix,
            'required_type': dict,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'log_configuration',
            'field_value': container_properties.get('log_configuration'),
            'prefix': prefix,
            'required_type': dict,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'secrets',
            'field_value': container_properties.get('secrets'),
            'prefix': prefix,
            'required_type': list,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'network_configuration',
            'field_value': container_properties.get('network_configuration'),
            'prefix': prefix,
            'required_type': dict,
            'validators': [
                _validate_field_type
            ]
        },
        {
            'field_name': 'fargate_platform_configuration',
            'field_value': container_properties.get('fargate_platform_configuration'),
            'prefix': prefix,
            'required_type': dict,
            'validators': [
                _validate_field_type
            ]
        },
    ]
    _process_config(container_config)