POST api/entities/validate/entity-type?skipDryRun=false
Description
Validates the submitted entity.
Parameters
- :entity-type can be cluster, feed or process.
- skipDryRun : Optional query param, Falcon skips oozie dryrun when value is set to true.
Results
Result of the validation.
Rest Call
POST http://localhost:15000/api/entities/validate/cluster
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<cluster xmlns="uri:falcon:cluster:0.1" name="primary-cluster" description="Primary Cluster" colo="west-coast">
<interfaces>
<interface type="readonly" endpoint="hftp://localhost:50070" version="1.1.1"/>
<interface type="write" endpoint="hdfs://localhost:9000" version="1.1.1"/>
<interface type="execute" endpoint="localhost:9001" version="1.1.1"/>
<interface type="workflow" endpoint="http://localhost:11000/oozie/" version="4.0.0"/>
<interface type="messaging" endpoint="tcp://localhost:61616?daemon=true" version="5.4.3"/>
</interfaces>
<locations>
<location name="staging" path="/apps/falcon/staging"/>
<location name="temp" path="/tmp"/>
<location name="working" path="/apps/falcon/working"/>
</locations>
</cluster>
Result
{
"requestId": "dd3f6c3a-a6f1-4c50-97fb-3f9a3f698e10",
"message": "Validated successfully (CLUSTER) primary-cluster",
"status": "SUCCEEDED"
}
Rest Call
POST http://localhost:15000/api/entities/validate/feed?skipDryRun=true
<?xml version="1.0" encoding="UTF-8"?>
<!-- Hourly sample input data -->
<feed description="sample input data"
name="SampleInput" xmlns="uri:falcon:feed:0.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<groups>group</groups>
<frequency>hours(1)</frequency>
<late-arrival cut-off="hours(6)" />
<clusters>
<cluster name="primary-cluster" type="source">
<!--validity start="2009-01-01T00:00Z" end="2099-12-31T00:00Z" timezone="UTC" /-->
<validity start="2009-01-01T00:00Z" end="2099-12-31T00:00Z" />
<retention limit="months(24)" action="delete" />
</cluster>
</clusters>
<locations>
<location type="data" path="/projects/bootcamp/data/${YEAR}-${MONTH}-${DAY}-${HOUR}/SampleInput" />
<location type="stats" path="/projects/bootcamp/stats/SampleInput" />
<location type="meta" path="/projects/bootcamp/meta/SampleInput" />
</locations>
<ACL owner="suser" group="users" permission="0755" />
<schema location="/none" provider="none" />
</feed>
Result
{
"requestId": "c85b190e-e653-493a-a863-d62de9c2e3b0",
"message": "Validated successfully (FEED) SampleInput",
"status": "SUCCEEDED"
}
Rest Call
POST http://localhost:15000/api/entities/validate/feed
<?xml version="1.0" encoding="UTF-8"?>
<!-- Daily sample output data -->
<feed description="sample output data" name="SampleOutput" xmlns="uri:falcon:feed:0.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<groups>group</groups>
<frequency>hours(1)</frequency>
<late-arrival cut-off="hours(6)" />
<clusters>
<cluster name="primary-cluster" type="source">
<!--validity start="2009-01-01T00:00Z" end="2099-12-31T00:00Z" timezone="UTC" /-->
<validity start="2009-01-01T00:00Z" end="2099-12-31T00:00Z" />
<retention limit="months(24)" action="delete" />
</cluster>
</clusters>
<locations>
<location type="data" path="/projects/bootcamp/output/${YEAR}-${MONTH}-${DAY}-${HOUR}/SampleOutput" />
<location type="stats" path="/projects/bootcamp/stats/SampleOutput" />
<location type="meta" path="/projects/bootcamp/meta/SampleOutput" />
</locations>
<ACL owner="suser" group="users" permission="0755" />
<schema location="/none" provider="none" />
</feed>
Result
{
"requestId": "60781732-460e-4c6c-ba86-a75fae574b05",
"message": "Validated successfully (FEED) SampleOutput",
"status": "SUCCEEDED"
}
Rest Call
POST http://localhost:15000/api/entities/validate/process
<?xml version="1.0" encoding="UTF-8"?>
<!-- Daily sample process. Runs at 6th hour every day. Input - last day's hourly data. Generates output for yesterday -->
<process xmlns="uri:falcon:process:0.1" name="SampleProcess" >
<clusters>
<cluster name="primary-cluster">
<validity start="2012-04-03T06:00Z" end="2022-12-30T00:00Z" />
</cluster>
</clusters>
<parallel>1</parallel>
<order>FIFO</order>
<frequency>hours(1)</frequency>
<inputs>
<input name="input" feed="SampleInput" start="yesterday(0,0)" end="today(-1,0)" />
</inputs>
<outputs>
<output name="output" feed="SampleOutput" instance="yesterday(0,0)" />
</outputs>
<properties>
<property name="queueName" value="default" />
<property name="ssh.host" value="localhost" />
<property name="fileTimestamp" value="${coord:formatTime(coord:nominalTime(), 'yyyy-MM-dd')}" />
</properties>
<workflow engine="oozie" path="/examples/apps/aggregator" />
<retry policy="exp-backoff" delay="minutes(5)" attempts="3" />
<late-process policy="exp-backoff" delay="hours(1)">
<late-input input="input" workflow-path="/projects/bootcamp/workflow/lateinput" />
</late-process>
</process>
Result
{
"requestId": "e4a965c6-c7a2-41d9-ba08-2e77f1c43f57",
"message": "Validated successfully (PROCESS) SampleProcess",
"status": "SUCCEEDED"
}