0

I am trying to submit an oozie workflow (workflow.xml definition is present on hdfs) using the oozie server API against a Kerberized Cloudera.

I cannot submit an existing workflow using api due to auth/config issues.

I Took inspiration by the following article: https://blog.cloudera.com/blog/2013/06/how-to-use-the-apache-oozie-rest-api/

I am used to init a kerberos session (no issues here)

kinit -kt xxxxx -V yyyyy

and get info about all executing jobs (no issues here)

curl --negotiate -u foo:bar https://my.oozie.host:11443/oozie/v1/jobs?jobtype=wf

When executing the submit of a new job using

curl --negotiate -u foo:bar -X POST -H "Content-Type: application/xml" -d @config.xml https://my.oozie.host:11443/oozie/v1/jobs?action=start

I receive the message from oozie server

"This request requires HTTP authentication."

but I am using the standard way to use kerberos tickets (--negotiate -u xx:yy)

Do you have any suggestion for that? It seems that passing the parameter -H overrides the info about the kerberos ticket negotiation.

Any suggestion related to the solution is well accepted.

Thanks Robert

Roberto G.
  • 171
  • 5
  • 12
  • HTTP PUT should be used to start a workflow, see https://oozie.apache.org/docs/5.0.0/WebServicesAPI.html#Managing_a_Job – attila_s Jul 23 '19 at 22:52
  • PUT method should be used when dealing with an existing job (new run, info, etc..etc..). In the same documentation in the section [Submitting a standard Job](https://oozie.apache.org/docs/5.0.0/WebServicesAPI.html#Standard_Job_Submission) the method POST has been used. – Roberto G. Jul 24 '19 at 07:13
  • Have you also tried to submit the job via oozie CLI? – attila_s Jul 24 '19 at 22:28
  • "It seems that passing the parameter -H overrides the info about the kerberos ticket negotiation." How did you verify this? You can run curl in verbose mode and compare the headers sent to and received from the server using your examples. Using the Oozie CLI, https://oozie.apache.org/docs/5.0.0/DG_CommandLineTool.html#Oozie_job_operation_commands, may also help to narrow down the issue. – attila_s Jul 24 '19 at 22:42
  • I have checked the two ways (with and without content type header) using also python. I can tr using curl, maybe more verbose. – Roberto G. Jul 25 '19 at 08:48

0 Answers0