Example #1
0
class ValidateCleanupAction(Validator):
    config_class = ConfigCleanupAction
    defaults = {
        'node': None,
        'name': CLEANUP_ACTION_NAME,
        'retries': None,
        'retries_delay': None,
        'expected_runtime': datetime.timedelta(hours=24),
        'executor': schema.ExecutorTypes.ssh,
        'cpus': None,
        'mem': None,
        'constraints': None,
        'docker_image': None,
        'docker_parameters': None,
        'env': None,
        'extra_volumes': None,
        'trigger_downstreams': None,
        'triggered_by': None,
        'on_upstream_rerun': None,
    }
    validators = {
        'name':
        valid_cleanup_action_name,
        'command':
        build_format_string_validator(action_context),
        'node':
        valid_node_name,
        'retries':
        valid_int,
        'retries_delay':
        config_utils.valid_time_delta,
        'expected_runtime':
        config_utils.valid_time_delta,
        'executor':
        config_utils.build_enum_validator(schema.ExecutorTypes),
        'cpus':
        valid_float,
        'mem':
        valid_float,
        'constraints':
        build_list_of_type_validator(valid_constraint, allow_empty=True),
        'docker_image':
        valid_string,
        'docker_parameters':
        build_list_of_type_validator(valid_docker_parameter, allow_empty=True),
        'env':
        valid_dict,
        'extra_volumes':
        build_list_of_type_validator(valid_volume, allow_empty=True),
        'trigger_downstreams':
        valid_trigger_downstreams,
        'triggered_by':
        build_list_of_type_validator(valid_string, allow_empty=True),
        'on_upstream_rerun':
        config_utils.build_enum_validator(schema.ActionOnRerun),
    }

    def post_validation(self, action, config_context):
        valid_mesos_action(action, config_context)
Example #2
0
class ValidateVolume(Validator):
    config_class = ConfigVolume
    validators = {
        'container_path': valid_string,
        'host_path': valid_string,
        'mode': config_utils.build_enum_validator(['RO', 'RW']),
    }
Example #3
0
class ValidateConstraint(Validator):
    config_class = ConfigConstraint
    validators = {
        'attribute': valid_string,
        'operator': config_utils.build_enum_validator(OPERATORS.keys()),
        'value': valid_string,
    }
Example #4
0
class ScheduleValidator(config_utils.Validator):
    """Validate the structure of a scheduler config."""
    config_class = ConfigGenericSchedule
    defaults = {
        'jitter':       datetime.timedelta()
    }
    validators = {
        'type':         config_utils.build_enum_validator(schedulers.keys()),
        'jitter':       config_utils.valid_time_delta
    }
Example #5
0
class ValidateActionRunner(Validator):
    config_class = schema.ConfigActionRunner
    optional = True
    defaults = {
        'runner_type': None,
        'remote_exec_path': '',
        'remote_status_path': '/tmp',
    }

    validators = {
        'runner_type':
        config_utils.build_enum_validator(schema.ActionRunnerTypes, ),
        'remote_status_path': valid_string,
        'remote_exec_path': valid_string,
    }
Example #6
0
class ValidateStatePersistence(Validator):
    config_class                = schema.ConfigState
    defaults = {
        'buffer_size':          1,
        'connection_details':   None,
    }

    validators = {
        'name':                 valid_string,
        'store_type':           config_utils.build_enum_validator(
                                    schema.StatePersistenceTypes),
        'connection_details':   valid_string,
        'buffer_size':          valid_int,
    }

    def post_validation(self, config, config_context):
        buffer_size = config.get('buffer_size')

        if buffer_size and buffer_size < 1:
            path = config_context.path
            raise ConfigError("%s buffer_size must be >= 1." % path)
Example #7
0
 def setup_enum_validator(self):
     self.enum = dict(a=1, b=2)
     self.validator = config_utils.build_enum_validator(self.enum)
     self.context = config_utils.NullConfigContext
Example #8
0
 def setup_enum_validator(self):
     self.enum = dict(a=1, b=2)
     self.validator = config_utils.build_enum_validator(self.enum)
     self.context = config_utils.NullConfigContext