Mehmet, The service methods for the "requests" endpoint are contained in org.apache.ambari.server.api.services.RequestService. There are methods for GET/POST(create)/PUT(update). You can start ambari server in debug mode like using the command "ambari-server start --debug" and then use a debugger to walk through the server code.
-John ________________________________________ From: Mehmet Zahid Yüzügüldü <[email protected]> Sent: Monday, August 24, 2015 8:59 AM To: [email protected] Subject: about apache ambari workflow Hi guys i make lots of research about ambari. i am using hadoop cluster about 2 years. HBase, Yarn Ozie, Hue and Solr. i am trying to add some dummy skills into ambari to learn the main architecture. my object is to add ambari functionality that disable selinux from nodes with the help of ambari-server and ambari-agent usage. java spring was used to develope ambari server, i tracked some api calls from ambari-web. i got the url "http://node1:8080/api/v1/requests <http://node1.b3lab.org:8080/api/v1/requests>" with request body: { "RequestInfo": { "action": "check_host", "context": "Check host", "parameters": { "check_execute_list": "host_resolution_check", "jdk_location": "http://node1:8080/resources/", "threshold": "20", "hosts": "node1 <http://node1.b3lab.org>" } }, "Requests/resource_filters": [ { "hosts": "node1 <http://node1.b3lab.org>" } ] } i found js file related with this call in "ambari-web/app/conrtollers/wizard/step3-controller.js" it is creating the request and calls rest api as i said : http://node1:8080/api/v1/requests <http://node1.b3lab.org:8080/api/v1/requests> but i couldn't find the mapping of this rest api. i mean what service method was fired with this rest api, i couldn't find. after i found this, i will insert new record into db with information to disable selinux, like script type, script name to be run etc. i.e. "{ "taskId":3, "commandId":"2-0", "hostname":"node1 <http://node1.b3lab.org>", "role":"new_host_action", "hostLevelParams":{ }, "roleParams":{ "check_execute_list":"disable_selinux", "jdk_location":"http://node1:8080/resources/", "threshold":"20" }, "roleCommand":"ACTIONEXECUTE", "clusterHostInfo":{ }, "configurations":{ }, "configuration_attributes":{ }, "forceRefreshConfigTags":[ ], "commandParams":{ "command_timeout":"60", "script":"disable_selinux.py", "script_type":"PYTHON" }, "kerberosCommandParams":[ ], "commandType":"EXECUTION_COMMAND" }," so when *ambari-agent heardbeat*, it will get that record and will run script to disable selinux. am i wrong? i wonder if you could you help me to do that. i appreciate that. Mehmet Zahid Yüzügüldü
