# 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: 127.0.0.1
  connection: local
  vars:
    - body: '{{ body }}'
    - endpoint: '{{ endpoint }}'

  tasks:
    - debug:
        msg: "{{ '{{' }} body {{ '}}' }}"
    # NOTE that the task has a generic name as it's planned to be used for all the requests
    - name: Call onos Progran
      uri:
        url: "http://{{ onos_url }}:{{ onos_port }}/onos/progran/{{ '{{' }} endpoint {{ '}}' }}"
        method: "{{ method }}"
        user: "{{ onos_username }}"
        password: "{{ onos_password }}"
        force_basic_auth: yes
        status_code: 200
        {% if method == "POST" or method == "PUT" -%}
        body: "{{ '{{' }} body {{ '}}' }}"
        body_format: json
        {%- endif -%}
