|  | #! /usr/bin/env python | 
|  |  | 
|  | # Needs to run the server on the port provided | 
|  | # Need a get request on the /ping url that response with pong | 
|  | # Need a get request on the /exit url that kills the python process | 
|  |  | 
|  | import os | 
|  | import sys | 
|  | # try: | 
|  | from ansible.module_utils.basic import * | 
|  | # except: | 
|  | #     pass | 
|  |  | 
|  | from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer | 
|  |  | 
|  | class CheckRequestHandler(BaseHTTPRequestHandler): | 
|  |  | 
|  | def do_GET(self): | 
|  | if self.path.endswith('/check'): | 
|  | self.send_response(200) | 
|  | if self.path.endswith('/done'): | 
|  | print("Test server has been shutdown.") | 
|  | os._exit(0) | 
|  |  | 
|  |  | 
|  | def run(ip, port): | 
|  | server_address = (ip, port) | 
|  | httpd = HTTPServer(server_address, CheckRequestHandler) | 
|  | httpd.serve_forever() | 
|  |  | 
|  |  | 
|  | def main(): | 
|  | module = AnsibleModule( | 
|  | argument_spec = dict( | 
|  | port = dict(required = True, type='str'), | 
|  | ip = dict(required = True, type='str') | 
|  | ) | 
|  | ) | 
|  |  | 
|  | run(module.param['ip'], int(module.params['port'])) | 
|  |  | 
|  | module.exit_json(changed =  True) | 
|  |  | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | if sys.argv[1] != None and sys.argv[2] != None: | 
|  | port = int(sys.argv[2]) | 
|  | ip = sys.argv[1] | 
|  | run(ip, port) | 
|  | else: | 
|  | main() |