# Copyright 2017-present Open Networking Foundation
#
# 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.

---
- hosts: {{ instance_name }} 
  gather_facts: False
  connection: ssh 
  remote_user: ubuntu
  become: yes
  become_user: root
  become_method: sudo
  vars:
    - source_path_4_1: /root/ngic
    - source_path_5_0: /home/ngic/ngic
    - zmq_sub_ip: {{ zmq_sub_ip }}
    - zmq_pub_ip: {{ zmq_pub_ip }}
    - dp_comm_ip: {{ dp_comm_ip }}
    - cp_comm_ip: {{ cp_comm_ip }}
    - fpc_ip: {{ fpc_ip }}
    - cp_nb_server_ip: {{ cp_nb_server_ip }}
    - s1u_ip: {{ s1u_ip }}
    - sgi_ip: {{ sgi_ip }}
    - scenario: {{ scenario }}
    - as_sgi_ip: {{ as_sgi_ip }}
    - as_sgi_mac: {{ as_sgi_mac }}
    - enb_s1u_ip: {{ enb_s1u_ip }}
    - enb_s1u_mac: {{ enb_s1u_mac }}
    - cord_version: {{ cord_version }}

  roles:
    - { role: interface_config_4_1, when: cord_version == "4.1" }
    - { role: build_and_run_4_1, when: cord_version == "4.1" }
    - { role: interface_config_5_0, when: cord_version == "5.0" }
    - { role: build_and_run_5_0, when: cord_version == "5.0" }


