
# 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.


---
# vtn-refresh/defaults/main.yml

- name: Refresh VTN state
  shell: "sshpass -p 'karaf' ssh -p 8102 karaf@onos-cord {{ item }}"
  ignore_errors: yes
  with_items:
    - "cordvtn-sync-neutron-states https://keystone.cord.lab:5000/v2.0 admin {{ keystone_admin_pass }}"
    - "cordvtn-sync-xos-states http://xos:{{ xos_ui_port }} {{ xos_admin_user }} {{ xos_admin_pass }}"
    - "cordvtn-purge-rules"
  tags:
    - skip_ansible_lint # running commands on ONOS

- name: Reload compute nodes in VTN
  shell: "sshpass -p 'karaf' ssh -p 8102 karaf@onos-cord cordvtn-node-init {{ hostvars[item]['ansible_hostname'] }}"
  ignore_errors: yes
  with_items: "{{ groups['compute'] }}"
  tags:
    - skip_ansible_lint # running commands on ONOS

