{# Collection of common macroses shared across openstack services #}

{%- macro MACRO_INSTALL_KEYSTONE(USE_ORCHESTRATE=true) %}
  {%- if USE_ORCHESTRATE %}
- description: |
    Execute salt orchestration state to configure all needed
    prerequisites like creating SSH public key ant etc.
    Workaround for PROD-22488, use for PROD-22535.
  cmd: salt-run state.orchestrate keystone.orchestrate.deploy
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
  {%- endif %}

- description: Install keystone service on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:server and *01*' state.sls keystone.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 2, delay: 15}
  skip_fail: false

- description: Install keystone service on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:server' state.sls keystone.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 2, delay: 15}
  skip_fail: false

- description: Restart apache due to PROD-10477
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl*'
    cmd.run "service apache2 restart"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 15}
  skip_fail: false

- description: Check apache status to PROD-10477
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'ctl*'
    cmd.run "service apache2 status"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 15}
  skip_fail: false

- description: Mount glusterfs.client volumes (resuires created 'keystone' system user)
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:server' state.sls glusterfs.client -b 1
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Update fernet keys for keystone server on the mounted glusterfs volume
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:server' state.sls keystone.server -b 1
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Populate keystone services/tenants/admins
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:client' state.sls keystone.client
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 2, delay: 5}
  skip_fail: false

- description: Check keystone service-list
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@keystone:server" cmd.run ". /root/keystonercv3;
    openstack service list"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
{%- endmacro %}

{%- macro MACRO_INSTALL_GLANCE() %}
- description: Install glance service on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@glance:server and *01*' state.sls glance.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install glance service on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@glance:server' state.sls glance.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Mount glusterfs.client volumes (resuires created  'glusterfs' system user)
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@glance:server' state.sls glusterfs.client -b 1
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

#- description: Setup glance.client
#  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
#    -C 'I@glance:client' state.sls glance.client
#  node_name: {{ HOSTNAME_CFG01 }}
#  retry: {count: 1, delay: 5}
#  skip_fail: false

- description: Check glance image-list
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@keystone:server" cmd.run ". /root/keystonercv3;
    openstack image list"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
{%- endmacro %}

{%- macro MACRO_INSTALL_NOVA() %}
- description: Install nova service on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@nova:controller and *01*" state.sls nova.controller
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install nova service on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@nova:controller" state.sls nova.controller
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check nova service-list
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@keystone:server" cmd.run ". /root/keystonercv3;
    openstack compute service list"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check nova list
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@keystone:server" cmd.run ". /root/keystonercv3;
    openstack server list"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
{%- endmacro %}

{%- macro MACRO_INSTALL_CINDER(INSTALL_VOLUME=false) %}
- description: Install cinder on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@cinder:controller and *01*" state.sls cinder
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install cinder on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@cinder:controller" state.sls cinder
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check cinder list
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@keystone:server" cmd.run ". /root/keystonercv3;
    openstack volume list"
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

  {%- if INSTALL_VOLUME %}
- description: Install cinder volume
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@cinder:volume' state.sls cinder
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
  {%- endif %}

{%- endmacro %}

{%- macro MACRO_INSTALL_NEUTRON(INSTALL_GATEWAY=true) %}
- description: Install neutron service on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@neutron:server and *01*" state.sls neutron.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install neutron service on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@neutron:server" state.sls neutron.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

  {%- if INSTALL_GATEWAY %}
- description: Install neutron on gtw node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@neutron:gateway' state.sls neutron
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check neutron agent-list
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:server' cmd.run '. /root/keystonercv3; neutron agent-list'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
  {%- endif %}

{%- endmacro %}

{%- macro MACRO_INSTALL_HEAT() %}
- description: Install heat service on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@heat:server and *01*" state.sls heat.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install heat service on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@heat:server" state.sls heat.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check heat service
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@keystone:server' cmd.run '. /root/keystonercv3;
    openstack orchestration resource type list'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 5, delay: 10}
  skip_fail: false
{%- endmacro %}

{%- macro MACRO_INSTALL_HORIZON() %}
- description: Deploy horizon dashboard
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@horizon:server' state.sls horizon
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: true

- description: Deploy nginx proxy
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@nginx:server' state.sls nginx
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: true
{%- endmacro %}

{%- macro MACRO_INSTALL_DESIGNATE(INSTALL_POWERDNS=false, INSTALL_BIND=false) %}
  {%- if INSTALL_POWERDNS %}
- description: Install powerdns
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@powerdns:server' state.sls powerdns.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
  {%- endif %}

  {%- if INSTALL_BIND %}
- description: Install bind
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C 'I@bind:server' state.sls bind
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
  {%- endif %}

- description: Install designate on primary node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@designate:server and *01*" state.sls designate.server
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 5, delay: 10}
  skip_fail: false

- description: Install designate on other nodes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@designate:server" state.sls designate
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 5, delay: 10}
  skip_fail: false
{%- endmacro %}

{%- macro MACRO_INSTALL_CEILOMETER() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_BARBICAN() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_IRONIC() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_MANILA() %}
- description: Install manila-api on first node
  cmd: |
    salt -C 'I@manila:api and *01*' state.sls manila.api;
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install manila-api on other nodes
  cmd: |
    salt -C 'I@manila:api and not *01*' state.sls manila.api;
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install manila-scheduler
  cmd: |
    salt -C 'I@manila:scheduler' state.sls manila.scheduler;
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Install manila-share
  cmd: |
    salt -C 'I@manila:share' state.sls manila.share;
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: WR https://mirantis.jira.com/browse/PROD-19012
  cmd: |
    salt 'ctl*' cmd.run 'systemctl restart apache2'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check manila-services
  cmd: |
    salt 'ctl01*' cmd.run '. /root/keystonercv3; manila service-list'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 3, delay: 15}
  skip_fail: false

- description: Create manila type
  cmd: |
    salt 'cfg01*' state.sls manila.client
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Create CIFS and NFS share and check it status
  cmd: |
    salt 'ctl01*' cmd.run '. /root/keystonercv3; manila create CIFS 1 --share-type=default';
    salt 'ctl01*' cmd.run '. /root/keystonercv3; manila create NFS 1 --share-type=default';
    sleep 5;
    salt 'ctl01*' cmd.run '. /root/keystonercv3; manila list';
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
{%- endmacro %}

{%- macro MACRO_INSTALL_OCTAVIA_API() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_DOGTAG() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_GNOCCHI() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_AODH() %}
# TO DO
{%- endmacro %}

{%- macro MACRO_INSTALL_COMPUTE(CELL_MAPPING=false) %}
# Install compute node
- description: Apply formulas for compute node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' state.apply
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: true

- description: Re-apply(as in doc) formulas for compute node
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' state.apply
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false

- description: Check IP on computes
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False 'cmp*' cmd.run
    'ip a'
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 10, delay: 30}
  skip_fail: false

  {%- if CELL_MAPPING %}
- description: Re-run nova for map cell mapping
  cmd: salt --hard-crash --state-output=mixed --state-verbose=False
    -C "I@nova:controller and *01*" state.sls nova.controller
  node_name: {{ HOSTNAME_CFG01 }}
  retry: {count: 1, delay: 5}
  skip_fail: false
  {%- endif %}

{%- endmacro %}

{%- macro OVERRIDE_POLICY() %}
- description: Upload policy override
  upload:
    local_path:  {{ config.salt_deploy.templates_dir }}{{ LAB_CONFIG_NAME }}/
    local_filename: overrides-policy.yml
    remote_path: /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/
  node_name: {{ HOSTNAME_CFG01 }}

- description: Create custom cluster control class
  cmd: echo -e "classes:\n- cluster.{{ LAB_CONFIG_NAME }}.openstack.control_orig\n$(cat /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/overrides-policy.yml)" > /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/overrides-policy.yml
  node_name: {{ HOSTNAME_CFG01 }}

- description: Rename control classes
  cmd: mv /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control.yml /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control_orig.yml &&
    ln -s /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/overrides-policy.yml /srv/salt/reclass/classes/cluster/{{ LAB_CONFIG_NAME }}/openstack/control.yml &&
    salt --hard-crash --state-output=mixed --state-verbose=False '*' saltutil.sync_all &&
    salt --hard-crash --state-output=mixed --state-verbose=False '*' saltutil.refresh_pillar
  node_name: {{ HOSTNAME_CFG01 }}
{%- endmacro %}