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)
class ValidateMesos(Validator): config_class = ConfigMesos option = True defaults = { 'master_address': None, 'master_port': 5050, 'secret_file': None, 'role': '*', 'principal': 'tron', 'enabled': False, 'default_volumes': (), 'dockercfg_location': None, 'offer_timeout': 300, } validators = { 'master_address': valid_master_address, 'master_port': valid_int, 'secret': valid_string, 'role': valid_string, 'enabled': valid_bool, 'default_volumes': build_list_of_type_validator(valid_volume, allow_empty=True), 'dockercfg_location': valid_string, 'offer_timeout': valid_int, }
class ValidateSSHOptions(Validator): """Validate SSH options.""" config_class = ConfigSSHOptions optional = True defaults = { 'agent': False, 'identities': (), 'known_hosts_file': None, 'connect_timeout': 30, 'idle_connection_timeout': 3600, 'jitter_min_load': 4, 'jitter_max_delay': 20, 'jitter_load_factor': 1, } validators = { 'agent': valid_bool, 'identities': build_list_of_type_validator( valid_identity_file, allow_empty=True), 'known_hosts_file': valid_known_hosts_file, 'connect_timeout': config_utils.valid_int, 'idle_connection_timeout': config_utils.valid_int, 'jitter_min_load': config_utils.valid_int, 'jitter_max_delay': config_utils.valid_int, 'jitter_load_factor': config_utils.valid_int, } def post_validation(self, valid_input, config_context): if config_context.partial: return if valid_input['agent'] and 'SSH_AUTH_SOCK' not in os.environ: raise ConfigError("No SSH Agent available ($SSH_AUTH_SOCK)")
class ValidateNodePool(Validator): config_class = schema.ConfigNodePool validators = { 'name': valid_identifier, 'nodes': build_list_of_type_validator(valid_identifier), } def cast(self, node_pool, _context): if isinstance(node_pool, list): node_pool = dict(nodes=node_pool) return node_pool def set_defaults(self, node_pool, _): node_pool.setdefault('name', '_'.join(node_pool['nodes']))
class ValidateAction(Validator): """Validate an action.""" config_class = ConfigAction defaults = { 'node': None, 'requires': (), } requires = build_list_of_type_validator(valid_action_name, allow_empty=True) validators = { 'name': valid_action_name, 'command': build_format_string_validator(action_context), 'node': valid_node_name, 'requires': requires, }
def setup_validator(self): self.item_validator = mock.Mock() self.validator = build_list_of_type_validator(self.item_validator)
def setup_validator(self): self.item_validator = mock.Mock() self.validator = build_list_of_type_validator(self.item_validator)