X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=ansible-server%2Fsrc%2Fmain%2Fansible-server%2FREADME;fp=ansible-server%2Fsrc%2Fmain%2Fansible-server%2FREADME;h=9aff2c010f70b1d82e50a06543b0618cbce4a059;hb=1bc5690a09462237d48e5ed409e985597681898f;hp=0000000000000000000000000000000000000000;hpb=dc4950ba68c4c6dadd530f7f808bbb4c9458571d;p=ccsdk%2Fdistribution.git diff --git a/ansible-server/src/main/ansible-server/README b/ansible-server/src/main/ansible-server/README new file mode 100644 index 00000000..9aff2c01 --- /dev/null +++ b/ansible-server/src/main/ansible-server/README @@ -0,0 +1,71 @@ +''' +/*- +* ============LICENSE_START======================================================= +* ONAP : APPC +* ================================================================================ +* Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. +* ================================================================================ +* Copyright (C) 2017 Amdocs +* ============================================================================= +* 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. +* +* ECOMP is a trademark and service mark of AT&T Intellectual Property. +* ============LICENSE_END========================================================= +*/ +''' + +============ +INSTALLATION: +============ + +Python: +------- +sudo apt-get install python2.7 +sudo apt-get install python-pip +pip install requests + +Ansible: +-------- +sudo apt-get install software-properties-common +sudo apt-add-repository ppa:ansible/ansible +sudo apt-get update +sudo apt-get install ansible + +++ SQL db: The new version REST API code does not need sql db in ansible server + +============= +CODE TESTING: +============= +1. Start RestServer: python RestServer.py + +2. Try curl commands (case no secured REST: http & no authentication): +(we will need more samples for testing -Taka@att) + +- curl -H "Content-type:application/json" -X POST -d '{"Id": "ap3929_1548451746", "PlaybookName": "ctpx/R7.0.1/ansible/healthcheck/site.yml", "Timeout": "10", "InventoryNames": "VM", "EnvParameters": {"vnf_instance": "ctpx5000v"}}' http://0.0.0.0:8000/Dispatch + +response: {"StatusMessage": "PLAYBOOK INVENTORY FILE NOT FOUND", "StatusCode": 101} + +- Request to execute playbook: +curl -H "Content-type: application/json" -X POST -d '{"Id": "10", "PlaybookName": "ansible_sleep", "NodeList": ["host"], "Timeout": "60", "EnvParameters": {"Sleep": "10"}}' http://0.0.0.0:8000/Dispatch + +response: {"ExpectedDuration": "60sec", "StatusMessage": "PENDING", "StatusCode": 100} + +- Get results (blocked until test finished): +curl --cacert ~/SshKey/fusion_eric-vm_cert.pem --user "appc:abc123" -H "Content-type: application/json" -X GET "http://0.0.0.0:8000/Dispatch/?Id=10&Type=GetResult" + +response: {"Results": {"localhost": {"GroupName": "host", "StatusMessage": "SUCCESS", "StatusCode": 200}}, "PlaybookName": "ansible_sleep", "Version": "0.00", "Duration": "11.261794", "StatusMessage": "FINISHED", "StatusCode": 200} + +- Delete playbook execution information +curl --cacert ~/SshKey/fusion_eric-vm_cert.pem --user "appc:abc123" -H "Content-type: application/json" -X DELETE http://0.0.0.0:8000/Dispatch/?Id=10 + +response: {"StatusMessage": "PLAYBOOK EXECUTION RECORDS DELETED", "StatusCode": 200}