{% from 'virtual-mcp-trusty/underlay.yaml' import HOSTNAME_CFG01 with context %}
{% from 'virtual-mcp-trusty/underlay.yaml' import LAB_CONFIG_NAME with context %}
{% from 'virtual-mcp-trusty/underlay.yaml' import DOMAIN_NAME with context %}

{% set SALT_MODELS_REPOSITORY = os_env('SALT_MODELS_REPOSITORY','https://gerrit.mcp.mirantis.com/salt-models/mcp-virtual-lab') %}
# Other salt model repository parameters see in shared-salt.yaml
{% set OVERRIDES = os_env('OVERRIDES', 'override_example: true') %}
{% set SALT_VERSION = os_env('SALT_VERSION', '2017.7') %}
{% set OVERRIDES_FILENAME = os_env('OVERRIDES_FILENAME', '/srv/salt/reclass/classes/cluster/overrides.yml') %}

{% import 'shared-salt.yaml' as SHARED with context %}

{{ SHARED.MACRO_INSTALL_SALT_MASTER() }}

{{ SHARED.MACRO_CLONE_RECLASS_MODELS() }}

{{ SHARED.MACRO_CONFIGURE_RECLASS(FORMULA_SERVICES='"linux" "reclass" "salt" "openssh" "ntp" "git" "nginx" "collectd" "sensu" "heka" "sphinx" "keystone" "mysql" "grafana" "haproxy" "rsyslog" "horizon" "prometheus" "telegraf" "elasticsearch" "fluentd" "docker" "kibana" "logrotate"') }}

{{ SHARED.MACRO_INSTALL_SALT_MINIONS() }}

{{ SHARED.MACRO_RUN_SALT_MASTER_UNDERLAY_STATES() }}

{%- if OVERRIDES != '' %}
{%- for param in OVERRIDES.splitlines() %}
{%- set key, value = param.replace(' ','').split(':', 1) %}
- description: Override cluster parameters
  cmd: |
    salt-call reclass.cluster_meta_set name='{{ key }}' value='{{ value }}' file_name='{{OVERRIDES_FILENAME}}'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 1}
  skip_fail: false
{%- endfor %}

- description: Refresh pillar
  cmd: salt '*' saltutil.refresh_pillar
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 1}
  skip_fail: false
{%- endif %}

{{ SHARED.MACRO_GENERATE_INVENTORY() }}

{{ SHARED.MACRO_BOOTSTRAP_ALL_MINIONS() }}

- description: WR run linux state to fix hosts
  cmd: salt "cfg*" state.sls linux
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 10}
  skip_fail: true

- description: Install linux-image-extra package on controllers
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False -C 'I@cinder:controller' cmd.run 'apt -y install linux-image-extra-$(uname -r)'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 10}
  skip_fail: false

{{SHARED.MACRO_CHECK_SALT_VERSION_SERVICES_ON_CFG()}}

{{SHARED.MACRO_CHECK_SALT_VERSION_ON_NODES()}}

# WORKAROUND PROD-21071
- description: Set correct pin for openstack repository
  cmd: |
    salt --hard-crash --state-output=mixed --state-verbose=False '*' cmd.run "sed -i -e 's/Pin: release l=mitaka/Pin: release l=trusty\/openstack\/mitaka testing/g' /etc/apt/preferences.d/mirantis_openstack"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

# WORKAROUND PROD-22827
- description: Set Pin-Priority up to 1200 for openstack repository
  cmd: |
    salt --hard-crash --state-output=mixed --state-verbose=False '*' cmd.run "sed -i -e 's/Pin-Priority: 1100/Pin-Priority: 1200/g' /etc/apt/preferences.d/mirantis_openstack"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
