
# 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
  user: ubuntu
  sudo: yes
  tasks:
  - name : starting onos service on {{ instance_name }}
    uri:
      url: http://{{ instance_name }}:5004/monitoring/agent/onos/start
      method: POST
      body: '{ "target":"udp://9.9.9.9:4455", "meta_data": { "resources": ["onos://10.11.10.60:8181?auth=basic&user=onos&password=rocks&scheme=http","onos://10.11.10.61:8181?auth=basic&user=onos&password=rocks&scheme=http"]}} '
      force_basic_auth: yes
      status_code: 200
      body_format: json    
  - name:  starting openstack service on {{ instance_name }}
    uri: 
      url: http://{{ instance_name }}:5004/monitoring/agent/openstack/start
      method: POST
      body: '"target":"udp://9.9.9.9:4455"'
      force_basic_auth: yes
      status_code: 200
      body_format: json

