heat_template_version: rocky

description: >
  Configure login.defs values

parameters:
  ServiceData:
    default: {}
    description: Dictionary packing service data
    type: json
  ServiceNetMap:
    default: {}
    description: Mapping of service_name -> network name. Typically set
                 via parameter_defaults in the resource registry.  This
                 mapping overrides those in ServiceNetMapDefaults.
    type: json
  DefaultPasswords:
    default: {}
    type: json
  RoleName:
    default: ''
    description: Role name on which the service is applied
    type: string
  RoleParameters:
    default: {}
    description: Parameters specific to the role
    type: json
  EndpointMap:
    default: {}
    description: Mapping of service endpoint -> protocol. Typically set
                 via parameter_defaults in the resource registry.
    type: json
  PasswordMaxDays:
    default: 99999
    description: Set the maximum age allowed for passwords
    type: number
  PasswordMinDays:
    default: 7
    description: Set the minimum age allowed for passwords
    type: number
  PasswordWarnAge:
    default: 7
    description: Set the warning period for password expiration
    type: number
  PasswordMinLen:
    default: 6
    description: Set the minimum length allowed for passwords
    type: number
  FailDelay:
    default: 4
    description: The period of time between password retries
    type: number

outputs:
  role_data:
    description: Parameters for configuration of the login.defs file
    value:
      service_name: login_defs
      host_prep_tasks:
        - include_role:
            name: login-defs
      ansible_group_vars:
        tripleo_login_defs_password_max_days: {get_param: PasswordMaxDays}
        tripleo_login_defs_password_min_days: {get_param: PasswordMinDays}
        tripleo_login_defs_password_min_len: {get_param: PasswordWarnAge}
        tripleo_login_defs_password_warn_age: {get_param: PasswordMinLen}
        tripleo_login_defs_fail_delay: {get_param: FailDelay}
