----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/52373/ -----------------------------------------------------------
Review request for oozie. Bugs: OOZIE-2688 https://issues.apache.org/jira/browse/OOZIE-2688 Repository: oozie-git Description ------- Oozie YAML Unit test Maven configuration YAML configuration Declaration Import setup Initialization Job Definition HDFS operation HCat operation Job stubbing Usage Guideline validation output validation job validation Usage Guideline TearUp Tag Examples Bundle Test Coordinator test Coordinator test with HCat Workflow Test Workflow Test with skip Job submission API Maven configuration To enable oozie unit yaml, one need add oozie-yaml plugin to maven. <plugin> <groupId>org.apache.oozie</groupId> <artifactId>oozie-yaml</artifactId> <version>0.1-SNAPSHOT</version> <executions> <execution> <goals> <goal>oozieyaml</goal> </goals> </execution> </executions> </plugin> Oozie-YAML plugin to Maven will search for any oozie YAML file and if it's there, it will convert it into respective JUnit test case and will execute them. There will be a surefire report. YAML configuration Whole YAML configuration is divided into following sections Declaration Import Setup Initialization Job Definition Stubbing HDFS operation HCat operation Validation TearUp Tag Declaration This section can be used to defined test case properties like test case name, package name, etc. name: String, required Name of the test cases. Java file will be created with the same name. package: String, Optional The Java package of the generated test class. skip_test : boolean, Optional A boolean that indicates whether or not to execute this test. This parameter defaults to false. copy_dependencies_files_hdfs: List of Strings, Optional List of HDFS of paths where all Maven dependent jar will be copied. This is useful if for pig/hive jobs. Examples: package: org.apache.oozie.yamltest name: TestWorkflowActionFromBundle copy_dependencies_files_hdfs: - /tmp/workflow-test/lib Import imports: List of Strings, Optional A list of Java classes to import in the generated Oozie unit Java file. * Examples: * import: - org.apache.oozie.util.DateUtils - java.util.Date setup setup: List of Strings, Optional List of java statement that can be used for JUnit setup method. setup can also include HDFS and HCat operation. Initialization initialization: List of Strings, Optional List of java statement that can be used for initialization. This statement will be added first in test case. Examples: initialization: - "Date date = new Date()" - "String currentTime = DateUtils.formatDateOozieTZ(date)" Job Definition This section can be used to define job properties job_property: String, Optional job_property can be a Java Properties file (.properties) or a Hadoop XML Configuration file (.xml). properties: String, Optional Overridden key/value configuration use in job submission. This value overrides the value of job_property. Examples: job: properties: raw_logs_path: "/tmp/test" aggregated_logs_path: "/user/test" workflowPath: "/testDirPath" start: "2010-02-01T10:00Z" job: job_property : src/test/resources/job-1.properties properties: oozie.wf.application.path: "/tmp/workflow-test/" jobTracker: !func getJobTrackerUri() nameNode: !func getNameNodeUri() HDFS operation Set of HDFS operation. Can be used to create dummy input dataset for coordinator or input file for workflow. Supported operation are mkdir: List, Optional The mkdir command creates the specified directory. If the directory already exists, it does a no-op. touchz: List, Optional Touchz creates a zero length file in the specified path if none exists. If one already exists, then touchz will perform a touch operation. delete: List, Optional List of file/dir to be deleted. delete: List, Optional Deletes the specified path. chmod: List, Optional The chmod command changes the permissions for the specified path. permission: String, Optional Permission of path. Permissions can be specified using the Unix Symbolic representation (e.g. -rwxrw-rw-) or an octal representation (755). path: String, Optional HDFS path of file/dir whose permission need to changed. copyFromLocal: List, Optional List of file to be copied to HDFS source: String, mandatory destination: String, mandatory move: List, Optional source: String, mandatory destination: String, mandatory Examples: hdfs: touchz: - /tmp/test/2010/02/01/09/_SUCCESS copyFromLocal: - source: coordinator-test-3.xml destination: /tmp/workflow-test/coordinator-test-3.xml HCat operation Set of HCat operation. Can be used to create HCat partition for coordinator/workflow. HCat operation can be configured in nested form. At parent level, at has two operation delete and create create: Can be used to create HCat partition. delete: Can be used to delete HCat partition. Both delete and create have following structure. databases: - database: db_test tables: - table: table_test columns: "dt,country" partitions: - dt=20100201;country=usa database: List, Optional List of databases to be created/deleted. table: List, Optional List of tables to create/delete for the database. columns: String, Optional Table columns definition. partitions: List, Optional partition to be created. Examples: hcat: create: databases: - database: db_test tables: - table: table_test columns: "dt,country" partitions: - dt=20100201;country=usa - database: db_test_1 Job stubbing List of coordinator job, workflow, workflow action, pig script, hive script, etc. to be skipped while running test It's a nested configuration. skip_all_job_submission: boolean, Optional All job submission will be skipped. skip_pig_job_submission: boolean, Optional All pig job submission will be skipped. skip_hive_job_submission: boolean, Opt.ional All hive job submission will be skipped. skip_spark_job_submission: boolean, Optional All spark job submission will be skipped. skip_java_job_submission: boolean, Optional All java job submission will be skipped. skip_shell_job_submission: boolean, Optional All shell job submission will be skipped. skip_distcp_job_submission: boolean, Optional All shell job submission will be skipped. coordinator: List, Optional List of coordinator to be skipped. workflow_action:List, Optional List of workflow action to be skipped. skip_job_submission:boolean, Optional Indicate that action should be executed, but only Hadoop job submission is ignored. coordinators: List, Optional List of coordinators to be skipped. coordinator: String, Optional Name of the coordinator which has to be skipped. workflow: just a marked that workflow of a coordinator will be skipped. workflow_actions: List of workflow action that will be skipped. workflow_action: String, Optional Name of the workflow action. skip_job_submission:boolean, Optional If true, job submission will be skipped. status: String, Optional Status of skipped action. It will be useful if somebody wants to test different execution path of workflow. The default value is OK. Supported status are OK and ERROR. output: List, Optional Copy output to for skipped action source: String, Optional destination: String, Optional Usage Guideline Skip is a nested configuration, if submitted job is bundle, to skip workflow action one need to do a nested configuration. skip: coordinators: - coordinator: coord-1 - coordinator: coord-2 workflow: - coordinator: coord-3 workflow: workflow_actions: - workflow_action : pig skip_job_submission: true status: OK output : - path: source: /tmp/resources/action-1-output destination: /tmp/test/output/ - path: source: src/test/resources/action-2-output destination: /tmp/test/output/ Above example will skip coord-1 submission. Coord-2 will be submitted, but there won't be any workflow submission. For coord-3, job submission of action "pig" will be skipped. File /tmp/resources/action-1-output and /tmp/resources/action-2-output will copied to path /tmp/test/output/. If submitted job is coordinator below configuration can be used for skipping jobs. Examples: skip: workflow: workflow_actions: - status: OK output: - source: src/test/resources/action-1-output destination: "/tmp/test/output/" - source: src/test/resources/action-2-output destination: "/tmp/test/output/" workflow_action: pig skip_job_submission: true - status: FAILED workflow_action: hive-action skip: skip_all_job: true validation Validation is dived into two section. output validation job validation output validation TODO job validation This section can be used to validate job status and attributes. Job validation syntax is very similar to skip syntax. One need to use nested configuration to validate job. sleep : integer, Optional Thread sleep. wait_for_status: integer, Optional Testcase will wait for status. status: String, Optional Assert job status not_status: String, Optional Assert job status as false nominal_time: String, Optional Assert coord action nominal time coordinators: List, Optional List of coordinators for validation coordinator: String, Optional Name of the coordinator which will be used for validation workflow_action: String, Optional Name of the workflow action which will be used for validation job_conf: List, Optional Validate job conf. key: String, Optional expected_value: String, Optional Usage Guideline Like stubbing, validate_job can have nested configuration. If the submitted job is bundle then to validate workflow action, one need to use nested configuration. Validating a Bundle Job validate_job: sleep: 60000 status: RUNNING coordinators: - coordinator: coord-3 not_status: PREP coordinator_actions: - coordinator_action : "@2" sleep: 6000 wait_for_status: RUNNING nominal_time: 2010-02-01T11:00Z workflow: workflow_actions: - workflow_action : pig status: OK Validating a Coord Job validations: validate_job: sleep: 6000 job_conf: - key: queueName expected_value: defult coordinator_actions: - coordinator_action : "@2" not_status: WAITING nominal_time: 2010-02-01T11:00Z Validating a workflow Job validations: validate_job: sleep: 60000 status: SUCCEEDED workflow_actions: - workflow_action : pig status: OK TearUp tearUp: List of Strings, Optional List of java statement that can be used for JUnit tearUp method. tearUp can also include HDFS and HCat operation. Tag Oozie yaml also support tagging. Supported tags are !func : This indicate that value is function, not string. jobTracker: !func getJobTrackerUri(), this will be interpreted as jobTracker = getJobTrackerUri() . If !func tag is missing then it will be interpreted as jobTracker = "getJobTrackerUri()" . !var : This indicate that value is variable, not string. Examples: initialization: - "Date date = new Date()" - "String currentTime = DateUtils.formatDateOozieTZ(date)" job: properties: start: !var currentTime !exp : This indicate that value is java statement, not string. Examples: touchz: - !exp \"/tmp/test/\" + formatDate(currentTime, \"yyyy/MM/dd/HH\") + \"/_SUCCESS\" Examples Bundle Test name: TestBundleDisableCoord output_path: ./target/oozieyaml-sourcesjob: properties: raw_logs_path: "/tmp/test" aggregated_logs_path: "/user/test" workflowPath: "/testDirPath" start: "2010-02-01T10:00Z" end: "2012-02-03T23:59Z" oozie.bundle.application.path: "/tmp/workflow-test/bundle-multiple-coord.xml" queueName: "defult" coord_path_1: "/tmp/workflow-test/coordinator-test-1.xml" coord_path_2: "/tmp/workflow-test/coordinator-test-2.xml" jobTracker: !func getJobTrackerUri() nameNode: !func getNameNodeUri() hdfs: touchz: - /tmp/test/2010/02/01/09/_SUCCESS - /tmp/test/2010/02/01/10/_SUCCESS - /tmp/test/2010/02/01/11/_SUCCESS - /tmp/test/2010/02/01/12/_SUCCESS copyFromLocal: - source: bundle-multiple-coord.xml destination: "/tmp/workflow-test/bundle-multiple-coord.xml" - source: coordinator-test-1.xml destination: /tmp/workflow-test/coordinator-test-1.xml - source: coordinator-test-2.xml skip: coordinators: - coordinator: coord_1 validations: validate_job: sleep: 6000 status: RUNNING coordinators: - coordinator: coord_2 not_status: PREP coordinator_actions: - coordinator_action : "@2" not_status: WAITING nominal_time: 2010-02-01T11:00Z Coordinator test name: TestCoordinator output_path: ./target/oozieyaml-sourcesjob: properties: raw_logs_path: "/tmp/test" aggregated_logs_path: "/user/test" workflowPath: "/testDirPath" start: "2010-02-01T10:00Z" end: "2012-02-03T23:59Z" oozie.coord.application.path: "/tmp/workflow-test/coordinator.xml" queueName: "defult" jobTracker: !func getJobTrackerUri() nameNode: !func getNameNodeUri() hdfs: touchz: - /tmp/test/2010/02/01/09/_SUCCESS - /tmp/test/2010/02/01/10/_SUCCESS - /tmp/test/2010/02/01/11/_SUCCESS - /tmp/test/2010/02/01/12/_SUCCESS copyFromLocal: - source: coordinator-test.xml destination: "/tmp/workflow-test/coordinator.xml" validations: validate_job: sleep: 6000 job_conf: - key: queueName expected_value: defult coordinator_actions: - coordinator_action : "@2" not_status: WAITING nominal_time: 2010-02-01T11:00Z Coordinator test with HCat name: TestCoordinatorWithHcat output_path: ./target/oozieyaml-sourcesjob: properties: raw_logs_path: "/tmp/test" aggregated_logs_path: "/user/test" workflowAppUri: "/testDirPath" start: "2010-02-01T10:00Z" end: "2012-02-03T23:59Z" oozie.coord.application.path: "/tmp/workflow-test/coordinator.xml" queueName: "defult" db: db_test table: table_test dataOut: dataOut jobTracker: !func getJobTrackerUri() nameNode: !func getNameNodeUri() hcatNode: !func \"hcat://\" + getMetastoreAuthority() hdfs: mkdir: - "/tmp/workflow-test/" copyFromLocal: - source: coordinator-hcat-test.xml destination: "/tmp/workflow-test/coordinator.xml" hcat: create: databases: - database: db_test tables: - table: table_test columns: "dt,country" partitions: - dt=20100201;country=usa validations: validate_job: sleep: 6000 coordinator_actions: - coordinator_action : "@1" not_status: WAITING nominal_time: 2010-02-01T10:00Z Workflow Test name: TestWorkflowWithPig output_path: ./target/oozieyaml-sources copy_dependencies_files_hdfs: - /tmp/workflow-test/libjob: properties: INPUT: "/tmp/input/dummp.txt" oozie.wf.application.path: "/tmp/workflow-test/" queueName: "defult" OUTPUT: "/tmp/output" jobTracker: !func getJobTrackerUri() nameNode: !func getNameNodeUri() hdfs: mkdir: - "/tmp/workflow-test/" touchz: - /tmp/input/dummp.txt copyFromLocal: - source: echo.pig destination: "/tmp/workflow-test/echo.pig" - source: workflow-test-with-pig.xml destination: "/tmp/workflow-test/workflow.xml" validations: validate_job: sleep: 60000 status: SUCCEEDED workflow_actions: - workflow_action : pig status: OK Workflow Test with skip Job submission name: TestWorkflowJobStatus output_path: ./target/oozieyaml-sources copy_dependencies_files_hdfs: - /tmp/workflow-test/libjob: properties: INPUT: "/tmp/input/dummp.txt" oozie.wf.application.path: "/tmp/workflow-test/" queueName: "defult" OUTPUT: "/tmp/output" jobTracker: !func getJobTrackerUri() nameNode: !func getNameNodeUri() hdfs: mkdir: - "/tmp/workflow-test/" touchz: - /tmp/input/dummp.txt copyFromLocal: - source: echo.pig destination: "/tmp/workflow-test/echo.pig" - source: workflow-test-with-output.xml destination: "/tmp/workflow-test/workflow.xml" skip: workflow_actions: - workflow_action : pig skip_job_submission: true status: OK output: - source: /tmp/workflow-test/echo.pig destination: "/tmp/workflow-test/dummy.pig" - workflow_action : pig_2 skip_job_submission: true status: ERROR validations: validate_job: wait_for_status: KILLED workflow_actions: - workflow_action : pig status: OK - workflow_action : pig_1 status: OK - workflow_action : pig_2 status: ERROR API String getJobTrackerUri(): Returns job tracker URI. String getNameNodeUri(): Returns name node URI. String getMetastoreAuthority() Returns hcat URI ( without hcat:// prefix). FileSystem getFileSystem(): Returns filesystem. Date addDays(Date date, int amount) Return new date after adding days. Date addHours(Date date, int amount) Return new date after adding hours. Date addMonths(Date date, int amount) Return new date after adding months. Date addMinutes(Date date, int amount) Return new date after adding minutes. String addDays(String date, int amount) Return new date after adding days. Input date is in TZ format. String addHours(String date, int amount) Return new date after adding hours. Input date is in TZ format. String addMonths(String date, int amount) Return new date after adding months. Input date is in TZ format. String addMinutes(String date, int amount) Return new date after adding minutes. Input date is in TZ format. String formatDate(String date, String format) Format date. Input date is in TZ format. String formatDate(Date date, String format) Diffs ----- client/src/main/java/org/apache/oozie/client/WorkflowJob.java 131d9b2336d7b643927af1cb65aceac95c6dc171 core/src/main/java/org/apache/oozie/WorkflowJobBean.java 55d79a5d5e5e4efab9eb832e9341a16bcf8959cc core/src/main/java/org/apache/oozie/action/ActionExecutor.java 1d6456b236bf9e27c0f55d9f9e3b4bd94517c797 core/src/main/java/org/apache/oozie/action/hadoop/FsActionExecutor.java 27654741101d2056b25626fbbe345183eafd612d core/src/main/java/org/apache/oozie/action/hadoop/JavaActionExecutor.java 65996d97145e85b1e4d1de87fe9891921df8f0db core/src/main/java/org/apache/oozie/command/bundle/BundleStartXCommand.java cc98a6db803cebbefc68d7f8dd264e24d933c9eb core/src/main/java/org/apache/oozie/command/coord/CoordActionStartXCommand.java 45abe5a5e88f482c6b0e8c6385d7ea054d242c7d core/src/main/java/org/apache/oozie/command/wf/ActionEndXCommand.java 740b8d3f101352e951001af689e541ffbf606b52 core/src/main/java/org/apache/oozie/command/wf/SignalXCommand.java e95a60ad49f503695cc5fce24a67924dc6ec60e5 core/src/main/java/org/apache/oozie/executor/jpa/WorkflowsJobGetJPAExecutor.java 3c032678d06641ae7bb2f2a9c0631948190ea662 core/src/main/java/org/apache/oozie/mini/MiniOozie.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieDistcpActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieEmailActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieExecutorUtil.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieFsActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieHive2ActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieHiveActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieJavaActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieLocalClient.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieMapReduceActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOoziePigActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieShellActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieSparkActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/mini/MiniOozieSubWorkflowActionExecutor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 core/src/main/java/org/apache/oozie/service/LiteWorkflowStoreService.java ffc29af2f834da6d0890ea7215c5a62fd7cd693e core/src/main/java/org/apache/oozie/store/WorkflowStore.java c565e74893b863caef6c93015cfe38fe520d04ec core/src/main/java/org/apache/oozie/util/JobUtils.java a7a53b355d194b55959ede20c85d38e02294853d core/src/main/resources/localoozie-log4j.properties 906397fe0f284c187a8f05ece7a1a0677572e845 core/src/main/resources/oozie-log4j.properties c86b30143f5f58135493d9e6bdba29f402a0b1fd core/src/test/java/org/apache/oozie/test/MiniHCatServer.java 8699ff881b2f27d8369b1a66083fcf785a56ef0f core/src/test/java/org/apache/oozie/test/MiniOozieTestCase.java 12ede028655f2a30613a9f802e48cd3a27af6ed9 core/src/test/java/org/apache/oozie/test/XFsTestCase.java 1d399e4ce921af8cb2cb2e6375d425dd5f7780f7 core/src/test/java/org/apache/oozie/test/XTestCase.java 70f77be191bd844759ab1506a8d4c7aa4cb74f4c core/src/test/resources/test-oozie-log4j.properties 3040d4f621b785d98cdccae2fa039e19f7069484 docs/src/site/twiki/YamlUnit.twiki e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 docs/src/site/twiki/index.twiki 8591530a2418b9d2bd4cdf5f25597bdd18ee4a75 minitest/pom.xml 21aa57534c3d89cd1c349ec81b788b9694b59bb9 minitest/src/main/java/org/apache/oozie/test/MiniOozieTestCase.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestBundle.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestCoordinator.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestCoordinatorWithHCat.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestWorkflow.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestWorkflowWithCert.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestWorkflowWithHive.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/java/org/apache/oozie/test/TestWorkflowWithPig.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/bundle-test.properties e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/bundle-test.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/coordinator-test-withhcat.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/coordinator-test.properties e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/coordinator-test.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/echo.pig e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/hive.script e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/oozie-log4j.properties c142d725140930bfa89cd2b163d0768a4c3a750a minitest/src/test/resources/wf-hive-job.properties e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/wf-pig-job.properties e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/wf-test-with-cert.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/wf-test-with-hive.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 minitest/src/test/resources/wf-test-with-pig.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 pom.xml 704a2eeee9f4e4805e3e08c2a547b2a375f6b1b2 yaml-unit/doc/OozieYamlUnit.twiki e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/doc/hdfs.yaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/doc/skip.yaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/doc/yaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/pom.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/oozieyaml/test-bundle.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/oozieyaml/test-workflow-action-from-bundle.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/bundle-multiple-coord-1.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/bundle-multiple-coord.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/bundle-test.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/coordinator-test-1.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/coordinator-test-2.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/coordinator-test-3.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/echo.pig e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/wf.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/bundle-test/src/test/resources/workflow-test-with-pig.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/pom.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/src/test/oozieyaml/test-coordinator-current-time.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/src/test/oozieyaml/test-coordinator-hcat.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/src/test/oozieyaml/test-coordinator.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/src/test/resources/coordinator-hcat-test.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/src/test/resources/coordinator-latest-test.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/coordinator-test/src/test/resources/coordinator-test.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/pom.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/pom.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/oozieyaml/test-workflow-all-action.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/oozieyaml/test-workflow-init.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/oozieyaml/test-workflow-job-definition.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/oozieyaml/test-workflow-skip-status.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/oozieyaml/test-workflow-withsetup.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/oozieyaml/test-workflow.oozieyaml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/resources/echo.pig e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/resources/job-1.properties e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/resources/properties.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/resources/workflow-test-with-all-action.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/resources/workflow-test-with-output.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/examples/workflow-test/src/test/resources/workflow-test-with-pig.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/pom.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/GenerateBatchJsonMojo.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/GenerateMojo.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/TestBuilder.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/YamlTagConstructor.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/CopyDependenciesFilesHdfs.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/Import.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/InitStatement.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/JobDefinition.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/SetupStatement.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/Statement.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/Tags.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/TearDownStatement.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/TestClassBuilder.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/UnitTestGenerator.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/UnitTestGeneratorUtil.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/YamlConfig.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/YamlString.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/AddPartitions.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/CreateDatabase.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/CreateHCatPartition.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/CreateTable.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/DeleteDatabase.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/DeleteHCatPartition.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/DeletePartitions.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/DeleteTable.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hcat/HCatOperation.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/CopyDependenciesFilesHdfs.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/CopyFromLocal.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/HdfsChmod.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/HdfsDelete.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/HdfsMkdir.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/HdfsMove.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/HdfsOperation.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/HdfsTouchz.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/Mkdir.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/hdfs/Touchz.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/Skip.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/SkipCoordJob.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/SkipJobSubmission.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/SkipWorkflow.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/SkipWorkflowAction.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/SkipWorkflowDeserializer.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/skip/YamlStringDeserializer.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/JobCheck.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/JobConfValidation.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/NotStatusValidation.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/Sleep.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/StatusValidation.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidateBundle.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidateCoodJob.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidateCoordAction.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidateJob.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidateWorkflow.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidateWorkflowAction.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/ValidationOutPut.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/Validations.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/java/org/apache/oozie/oozieyamlunit/config/validate/WaitForJobStatus.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/main/resources/META-INF/m2e/lifecycle-mapping-metadata.xml e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/A.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/Job.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/Properties.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/TestHdfs.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/TestJobValidation.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/TestOozieYaml.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/TestSetup.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/TestSkip.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/TestTouchWithTag.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 yaml-unit/src/test/java/org/apache/oozie/oozieyamlunit/YamlTestUtil.java e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 Diff: https://reviews.apache.org/r/52373/diff/ Testing ------- Thanks, Purshotam Shah