#  Copyright 2021 Dell Inc. or its subsidiaries. All Rights Reserved.
#
#  Licensed under the Apache License, Version 2.0 (the "License");
#  you may not use this file except in compliance with the License.
#  You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
#  Unless required by applicable law or agreed to in writing, software
#  distributed under the License is distributed on an "AS IS" BASIS,
#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#  See the License for the specific language governing permissions and
#  limitations under the License.
---

# vars file for common

# Usage: package_installation.yml
common_packages:
  - epel-release
  - yum-utils
  - git
  - gcc
  - gcc-c++
  - nodejs
  - device-mapper-persistent-data
  - bzip2
  - python2-pip
  - python3-pip
  - nano
  - lvm2
  - gettext
  - net-tools
  - python3-netaddr
  - yum-plugin-versionlock

# Usage: pre_requisite.yml
internet_delay: 0
internet_timeout: 10
hostname: github.com
port_no: 22
os_name: CentOS
os_version: '8.3'
internet_status: "Failed. No Internet connection. Make sure network is up."
os_status: "Unsupported OS or OS version. OS should be {{ os_name }} and Version should be {{ os_version }} or more"
selinux_status: "SElinux is not disabled. Disable it in /etc/sysconfig/selinux and reboot the system"
ansible_python_version_status: "For CentOS 8.3, python bindings of firewalld, dnf, selinux are not available if python is installed from source and not from dnf. So please make sure python3.6 is installed using dnf. And ansible uses the python version 3.6 installed using dnf"
python_version_support: '3.6.8'
default_ansible_config_file_path: /etc/ansible/ansible.cfg

# Usage: password_config.yml
login_vars_filename: "input_params/login_vars.yml"
vault_filename: input_params/.login_vault_key
min_length: 8
max_length: 30
min_username_length: 4
file_perm: '0755'
vault_file_perm: '0644'
nic_min_length: 3
login_input_config_failure_msg: "Failed. Please provide all the required parameters in login_vars.yml"
fail_msg_provision_password: "Failed. Incorrect provision_password format provided in login_vars.yml"
fail_msg_cobbler_password: "Failed. Incorrect cobbler_password format provided in login_vars.yml file"
fail_msg_idrac_credentials: "Failed. Incorrect idrac_username or idrac_password format provided in login_vars.yml"
fail_msg_ethernet_credentials: "Failed. Incorrect ethernet_switch_username or ethernet_switch_password format provided in login_vars.yml"
fail_msg_ib_credentials: "Failed. Incorrect ib_username or ib_password format provided in login_vars.yml"
fail_msg_me4_credentials: "Failed. Incorrect powervault_me4_username or powervault_me4_password format provided in login_vars.yml"

# Usage: verify_omnia_params.yml
config_filename: "omnia_config.yml"
config_vaultname: .omnia_vault_key
input_omnia_failure_msg: "Please provide all the required parameters in omnia_config.yml"
fail_msg_mariadb_password: "Failed. Incorrect mariadb_password format provided in omnia_config.yml file"
success_msg_mariadb_password: "mariadb_password validated"
success_msg_k8s_version: "Kubernetes Version Validated"
fail_msg_k8s_version: "Failed. Kubernetes Version is unsupported or incorrect in omnia_config.yml"
success_msg_k8s_cni: "Kubernetes CNI Validated"
fail_msg_k8s_cni: "Failed. Kubernetes CNI is incorrect in omnia_config.yml"
domain_name_success_msg: "domain name successfully validated"
domain_name_fail_msg: "Failed. Incorrect format provided for domain name in omnia_config.yml"
realm_name_success_msg: "realm_name successfully validated"
realm_name_fail_msg: "Failed. Incorrect realm_name formate in omnia_config.yml"
success_msg_directory_manager_password: "directory_manager_password successfully validated"
fail_msg_directory_manager_password: "Failed. Incorrect format provided for directory_manager_password"
success_msg_ipa_admin_password: "ipa_admin_password successfully validated"
fail_msg_ipa_admin_password: "Failed. Incorrect format provided for ipa_admin_password"
omnia_input_config_failure_msg: "Failed. Please provide all the required parameters in omnia_config.yml for for login_node"
login_node_required_success_msg: "Login_node_required successfully validated"
login_node_required_fail_msg: "Failed. login_node_required can be either true or false"

# Usage: fetch_base_inputs.yml
base_vars_filename: "input_params/base_vars.yml"
input_base_failure_msg: "Please provide all the required parameters in base_vars.yml"
success_snmp_trap_dest: "SNMP trap destination IP validated"
fail_snmp_trap_dest: "Failed. Incorrect SNMP trap destination IP format provided in base_address.yml"
success_snmp_comm_msg: "SNMP community string validated"
fail_snmp_comm_msg: "snmp community string cannoy be blank in base_vars.yml"
success_msg_public_nic: "Public nic successfully validated"
fail_msg_public_nic: "Failed. Incorrect public nic provided in base_vars.yml"
success_msg_k8s_pod_network_cidr: "Appliance k8s pod network cidr validated"
fail_msg_k8s_pod_network_cidr: "Failed. Incorrect appliance k8s pod network cidr provided in base_vars.yml"
success_awx_organization: "awx organization validated"
success_provision_method: "Provision method validated"
fail_provision_method: "Failed. Provision method can either be set to idrac or pxe"
fail_awx_organization: "Failed. Incorrect format in awx organization"
success_timezone_msg: "timezone validated"
fail_timezone_msg: "Failed. Incorrect timezone provided. Please check the file timezone.txt in control_plane/roles/control_plane_common/files/ folder"
fail_language: "Failed. Only en-US(english) language supported"
invalid_iso_file_path: "Incorrect iso_file_path provided in base_vars.yml."
ethernet_switch_support_success_msg: "ethernet_switch_support validated"
ethernet_switch_support_fail_msg: "Failed. ethernet_switch_support only accepts boolean values true or false"
ib_switch_support_success_msg: "ib_switch_support validated"
ib_switch_support_fail_msg: "Failed. ib_switch_support only accepts boolean values true or false"
powervault_support_success_msg: "powervault_support validated"
powervault_support_fail_msg: "Failed. power_vault_support only accepts boolean values true or false"
success_msg_mngmnt_network_nic: "Management network nic successfully validated"
fail_msg_mngmnt_network_nic: "Failed. Incorrect Management network nic provided in base_vars.yml"
success_msg_host_network_nic: "Host network nic successfully validated"
fail_msg_host_network_nic: "Failed. Incorrect host network nic provided in base_vars.yml"
success_msg_ib_network_nic: "Infiniband network nic successfully validated"
fail_msg_ib_network_nic: "Failed. Incorrect infiniband network nic provided in base_vars.yml"
success_dhcp_range: "Dhcp_range validated"
fail_dhcp_range: "Failed. Incorrect range assigned for dhcp"
invalid_mapping_file_path: "Incorrect mapping_file_path provided in base_vars.yml"
success_msg_different_nics: "The nics of different containers and public nic are not the same - Validated"
fail_msg_different_nics: "Failed. Incorrect nic information. public nic, management network nic and host network nic should not be the same"
success_msg_different_nics_ib: "The nics of different containers and public nic are not the same as infiniband nic- Validated"
fail_msg_different_nics_ib: "Failed. Infiniband nic cannot be the same as other nics"
success_msg_ib: "Infiniband variables validated"
fail_msg_ib: "Failed. Please provide all the InfiniBand related parameters in base_vars.yml"
success_msg_lease_time: "Default lease time validated"
fail_msg_lease_time: "Failed. Please provide a valid default lease time"

# Usage: fetch_sm_inputs.yml
ib_config_file: "{{ role_path }}/../../input_params/ib_vars.yml"
opensm_conf_file: "{{ role_path }}/../../input_params/opensm.conf"

fail_msg_config_file: ib_vars.yml file doesn't exist.
fail_msg_opensm_config_file: opensm.conf file doesn't exist.

fail_msg_ib_input_definition: Infiniband config directories must be defined.
fail_msg_ib_input: Infiniband config directories can't be left empty.

# Usage: encrypt_idrac_2fa_vars.yml
idrac_tools_vaultname: input_params/.idrac_vault_key
idrac_tools_vars_filename: input_params/idrac_tools_vars.yml

# Usage: nfs_server_setup.yml
nfs_share_offline_repo: /var/nfs_repo
nfs_share_awx: /var/nfs_awx
nfs_share_dir_mode: 0777
exports_file_path: /etc/exports
nfs_services:
  - mountd
  - rpc-bind
  - nfs

# Usage: validate_host_mapping_file.yml
fail_msg_mapping_file: "Mapping file doesn't exist at given path: "
mapping_file_key: "MAC"
fail_mapping_file_header: "Header of csv file is not in correct format.
                          It should be of the format: MAC,Hostname,IP,Component_role or MAC,Hostname,IP"
host_mapping_header_format: "MAC,Hostname,IP"
host_mapping_header_with_role_format: "MAC,Hostname,IP,Component_role"
fail_mapping_file_field_seperation: "Failed: Mapping file should be comma separated and all fields must be filled."
fail_mapping_file_duplicate_ip: "Failed: Duplicate ip exists. Please verify following mapping file again: "
fail_mapping_file_duplicate_hostname: "Failed: Duplicate hostname exists. Please verify host mapping file again."
fail_mapping_file_hostname_chars: "Hostname should not contain _ or . or space as it will cause error with slurm and K8s. Found in: "
fail_mapping_file_roles_error: "Failed. Define correct Component Roles for each node.
                                Component roles can only take values: {{ group_name_manager }}, {{group_name_compute}},
                                 {{ group_name_login }}, {{ group_name_nfs }}"
fail_mapping_file_manager_role: "Exactly 1 manager node must be defined"
fail_mapping_file_compute_role: "Atleast 1 compute node must be defined"
fail_mapping_file_login_role: "Exactly 1 login node must be defined"
fail_mapping_file_nfs_role: "Exactly 1 nfs node must be defined"
count_of_roles_defined: "Component Roles defined: Manager Node: {{ count_of_manager }},
                        Compute Nodes: {{ count_of_compute }}, Login Node: {{ count_of_login }},
                        Nfs Node: {{ count_of_nfs_node }}, Total Nodes: {{ count_total_items }} "
group_name_manager: "manager"
group_name_compute: "compute"
group_name_login: "login_node"
group_name_nfs: "nfs_node"

# Usage: validate_device_mapping_file.yml
fail_device_mapping_file_header: "Failed: Header (MAC,IP) should be present in the mapping file."
device_mapping_header_format: "MAC,IP"
