Archives of Support Questions (Read Only)

This is an archived board for historical reference. Information and links may no longer be available or relevant
Announcements
This board is archived and read-only for historical reference. To ask a new question, please post a new topic on the appropriate active board.

Can Oozie invoke and RestFul service for notification ?

avatar
Expert Contributor

Can Oozie invoke and RestFul service for notification ? Is there an example which can be used ...

1 ACCEPTED SOLUTION

avatar

@nyakkanti

you can make use of oozie java action or oozie shell action to make the REST API calls.

https://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#a3.2.7_Java_Action

https://oozie.apache.org/docs/3.3.0/DG_ShellActionExtension.html

below is a sample shell action calling python code

<action name="metrics">  <shell xmlns="uri:oozie:shell-action:0.2">   <job-tracker>${RESOURCE_MANAGER}</job-tracker>   <name-node>${NAME_NODE}</name-node>   <exec>oozie_hook.py</exec>  <argument>host</argument>   <argument>port</argument>   <file>${APP_PATH}/shell/oozie_hook.py#oozie_hook.py</file>  </shell>  <ok to="end"/>  <error to="kill"/> </action>

below is a sample python code ( not working for reference )

   url = "http://" + sys.argv[1] + ": " + sys.argv[2] + "/workflow/"

   r = requests.get(url,timeout=60)

View solution in original post

2 REPLIES 2

avatar

@nyakkanti

you can make use of oozie java action or oozie shell action to make the REST API calls.

https://oozie.apache.org/docs/3.2.0-incubating/WorkflowFunctionalSpec.html#a3.2.7_Java_Action

https://oozie.apache.org/docs/3.3.0/DG_ShellActionExtension.html

below is a sample shell action calling python code

<action name="metrics">  <shell xmlns="uri:oozie:shell-action:0.2">   <job-tracker>${RESOURCE_MANAGER}</job-tracker>   <name-node>${NAME_NODE}</name-node>   <exec>oozie_hook.py</exec>  <argument>host</argument>   <argument>port</argument>   <file>${APP_PATH}/shell/oozie_hook.py#oozie_hook.py</file>  </shell>  <ok to="end"/>  <error to="kill"/> </action>

below is a sample python code ( not working for reference )

   url = "http://" + sys.argv[1] + ": " + sys.argv[2] + "/workflow/"

   r = requests.get(url,timeout=60)

avatar
New Member

@Santhosh B Gowda

Why would you do that??? Why won't you just curl from the shell action? A part of me would die if I do this in my workflow!