in syndicate/core/build/validator/batch_jobdef_validator.py [0:0]
def validate_batch_jobdef(jobdef_name, jobdef_meta):
"""
Performs check of Batch Job Definition resources.
:param jobdef_name: name of resource
:param jobdef_meta: resource definition
:raises AssertionError in case of invalidity.
:return: None
"""
jobdef_config = [
{
'field_name': 'job_definition_name',
'field_value': jobdef_name,
'prefix': '',
'validators': [
_validate_required_field
]
},
{
'field_name': 'job_definition_type',
'field_value': jobdef_meta.get('job_definition_type'),
'field_options': JOB_DEFINITION_TYPES,
'prefix': '',
'required': True,
'validators': [
_validate_options_field
]
},
{
'field_name': 'parameters',
'field_value': jobdef_meta.get('parameters'),
'prefix': '',
'required_type': dict,
'validators': [
_validate_field_type
]
},
{
'field_name': 'retry_strategy',
'field_value': jobdef_meta.get('retry_strategy'),
'prefix': '',
'required_type': dict,
'validators': [
_validate_field_type
]
},
{
'field_name': 'propagate_tags',
'field_value': jobdef_meta.get('propagate_tags'),
'prefix': '',
'required_type': bool,
'validators': [
_validate_field_type
]
},
{
'field_name': 'timeout',
'field_value': jobdef_meta.get('timeout'),
'prefix': '',
'required_type': dict,
'validators': [
_validate_field_type
]
},
{
'field_name': 'tags',
'field_value': jobdef_meta.get('tags'),
'prefix': '',
'required_type': dict,
'validators': [
_validate_field_type
]
},
{
'field_name': 'platform_capabilities',
'field_value': jobdef_meta.get('platform_capabilities'),
'prefix': '',
'required_type': list,
'validators': [
_validate_field_type
]
}
]
job_definition_type = jobdef_meta.get('job_definition_type')
container_properties = jobdef_meta.get('container_properties')
node_properties = jobdef_meta.get('node_properties')
_process_config(jobdef_config)
if job_definition_type == 'container':
if not container_properties and not node_properties:
raise AssertionError(
"Either 'container_properties' or 'node_properties' must be specified "
"for 'container' job definition type."
)
if container_properties:
_validate_container_properties(container_properties)
if node_properties:
_validate_node_properties(node_properties)