Details
diff --git a/azkaban-common/src/main/java/azkaban/project/AzkabanFlow.java b/azkaban-common/src/main/java/azkaban/project/AzkabanFlow.java
index e2ad0c3..2dbbd5b 100644
--- a/azkaban-common/src/main/java/azkaban/project/AzkabanFlow.java
+++ b/azkaban-common/src/main/java/azkaban/project/AzkabanFlow.java
@@ -26,6 +26,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+/**
+ * Flow level definition of the DAG.
+ * Contains a list of AzkabanNodes and related flow properties.
+ */
public class AzkabanFlow extends AzkabanNode {
private final Map<String, AzkabanNode> nodes;
diff --git a/azkaban-common/src/main/java/azkaban/project/AzkabanJob.java b/azkaban-common/src/main/java/azkaban/project/AzkabanJob.java
index 03f78e2..64d109b 100644
--- a/azkaban-common/src/main/java/azkaban/project/AzkabanJob.java
+++ b/azkaban-common/src/main/java/azkaban/project/AzkabanJob.java
@@ -22,6 +22,10 @@ import com.google.common.collect.ImmutableList;
import java.util.Collections;
import java.util.List;
+/**
+ * The smallest individual unit of execution in Azkaban.
+ * Contains information about job type and related properties.
+ */
public class AzkabanJob extends AzkabanNode {
private final String type;
diff --git a/azkaban-common/src/main/java/azkaban/project/AzkabanNode.java b/azkaban-common/src/main/java/azkaban/project/AzkabanNode.java
index d25afb1..3e566dd 100644
--- a/azkaban-common/src/main/java/azkaban/project/AzkabanNode.java
+++ b/azkaban-common/src/main/java/azkaban/project/AzkabanNode.java
@@ -22,6 +22,9 @@ import static java.util.Objects.requireNonNull;
import azkaban.utils.Props;
import java.util.List;
+/**
+ * A unit of execution that could be either a job or a flow.
+ */
public abstract class AzkabanNode {
protected final String name;
diff --git a/azkaban-common/src/main/java/azkaban/project/DirectoryFlowLoader.java b/azkaban-common/src/main/java/azkaban/project/DirectoryFlowLoader.java
index a9388fa..e92dda9 100644
--- a/azkaban-common/src/main/java/azkaban/project/DirectoryFlowLoader.java
+++ b/azkaban-common/src/main/java/azkaban/project/DirectoryFlowLoader.java
@@ -42,6 +42,9 @@ import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+/**
+ * Loads job and properties files to flows from project directory.
+ */
public class DirectoryFlowLoader implements FlowLoader {
private static final DirFilter DIR_FILTER = new DirFilter();
diff --git a/azkaban-common/src/main/java/azkaban/project/FlowLoader.java b/azkaban-common/src/main/java/azkaban/project/FlowLoader.java
index 18b9303..ce796da 100644
--- a/azkaban-common/src/main/java/azkaban/project/FlowLoader.java
+++ b/azkaban-common/src/main/java/azkaban/project/FlowLoader.java
@@ -19,6 +19,9 @@ package azkaban.project;
import azkaban.project.validator.ValidationReport;
import java.io.File;
+/**
+ * Interface to load project flows.
+ */
public interface FlowLoader {
/**
diff --git a/azkaban-common/src/main/java/azkaban/project/FlowLoaderUtils.java b/azkaban-common/src/main/java/azkaban/project/FlowLoaderUtils.java
index 16ca468..207e06f 100644
--- a/azkaban-common/src/main/java/azkaban/project/FlowLoaderUtils.java
+++ b/azkaban-common/src/main/java/azkaban/project/FlowLoaderUtils.java
@@ -26,6 +26,9 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
+/**
+ * Utils to help load flows.
+ */
public class FlowLoaderUtils {
/**
diff --git a/azkaban-common/src/main/java/azkaban/project/NodeBeanLoader.java b/azkaban-common/src/main/java/azkaban/project/NodeBeanLoader.java
index d49dcc9..4f6bfc6 100644
--- a/azkaban-common/src/main/java/azkaban/project/NodeBeanLoader.java
+++ b/azkaban-common/src/main/java/azkaban/project/NodeBeanLoader.java
@@ -30,6 +30,9 @@ import java.util.Set;
import java.util.stream.Collectors;
import org.yaml.snakeyaml.Yaml;
+/**
+ * Loads NodeBean from YAML files.
+ */
public class NodeBeanLoader {
private static final String NODE_BEAN_TYPE_FLOW = "flow";
@@ -38,7 +41,10 @@ public class NodeBeanLoader {
checkArgument(flowFile.exists());
checkArgument(flowFile.getName().endsWith(Constants.FLOW_FILE_SUFFIX));
- return new Yaml().loadAs(new FileInputStream(flowFile), NodeBean.class);
+ final NodeBean nodeBean = new Yaml().loadAs(new FileInputStream(flowFile), NodeBean.class);
+ nodeBean.setName(getFlowName(flowFile));
+ nodeBean.setType(NODE_BEAN_TYPE_FLOW);
+ return nodeBean;
}
public boolean validate(final NodeBean nodeBean) {
diff --git a/azkaban-common/src/test/resources/sample_flow.flow b/azkaban-common/src/test/resources/sample_flow.flow
index fa68e7d..689f9fe 100644
--- a/azkaban-common/src/test/resources/sample_flow.flow
+++ b/azkaban-common/src/test/resources/sample_flow.flow
@@ -1,6 +1,4 @@
---
-name: sample_flow
-type: flow
# All flow level properties here
config:
flow-level-parameter: value
diff --git a/test/execution-test-data/basicflowyamltest/basic_flow.flow b/test/execution-test-data/basicflowyamltest/basic_flow.flow
index 2b9caba..689f9fe 100644
--- a/test/execution-test-data/basicflowyamltest/basic_flow.flow
+++ b/test/execution-test-data/basicflowyamltest/basic_flow.flow
@@ -1,6 +1,4 @@
---
-name: basic_flow
-type: flow
# All flow level properties here
config:
flow-level-parameter: value
diff --git a/test/execution-test-data/embeddedflowyamltest/embedded_flow.flow b/test/execution-test-data/embeddedflowyamltest/embedded_flow.flow
index 7d8e54c..855ff3c 100644
--- a/test/execution-test-data/embeddedflowyamltest/embedded_flow.flow
+++ b/test/execution-test-data/embeddedflowyamltest/embedded_flow.flow
@@ -1,6 +1,4 @@
---
-name: embedded_flow
-type: flow
config:
flow-level-parameter: value
@@ -60,4 +58,4 @@ nodes:
- name: shell_bash
type: command
config:
- command: bash ./sample_script.sh
\ No newline at end of file
+ command: bash ./sample_script.sh
diff --git a/test/execution-test-data/multipleflowyamltest/basic_flow.flow b/test/execution-test-data/multipleflowyamltest/basic_flow.flow
index 2b9caba..689f9fe 100644
--- a/test/execution-test-data/multipleflowyamltest/basic_flow.flow
+++ b/test/execution-test-data/multipleflowyamltest/basic_flow.flow
@@ -1,6 +1,4 @@
---
-name: basic_flow
-type: flow
# All flow level properties here
config:
flow-level-parameter: value
diff --git a/test/execution-test-data/multipleflowyamltest/basic_flow2.flow b/test/execution-test-data/multipleflowyamltest/basic_flow2.flow
index 01246c7..597d1b6 100644
--- a/test/execution-test-data/multipleflowyamltest/basic_flow2.flow
+++ b/test/execution-test-data/multipleflowyamltest/basic_flow2.flow
@@ -1,6 +1,4 @@
---
-name: basic_flow2
-type: flow
# All flow level properties here
config:
flow-level-parameter: value