azkaban-aplcache

fixed bug: do check the job type is not null on project loading fixed

9/25/2012 3:32:39 PM

Details

diff --git a/src/java/azkaban/project/FileProjectManager.java b/src/java/azkaban/project/FileProjectManager.java
index 01ee65e..64b4ca7 100644
--- a/src/java/azkaban/project/FileProjectManager.java
+++ b/src/java/azkaban/project/FileProjectManager.java
@@ -219,6 +219,7 @@ public class FileProjectManager implements ProjectManager {
 		List<String> errors = new ArrayList<String>();
 		DirectoryFlowLoader loader = new DirectoryFlowLoader(logger);
 		loader.loadProjectFlow(dir);
+		errors.addAll(loader.getErrors());
 		Map<String, Flow> flows = loader.getFlowMap();
 
 		File projectPath = new File(projectDirectory, projectName);
@@ -249,7 +250,9 @@ public class FileProjectManager implements ProjectManager {
 		dir.renameTo(destDirectory);
 
 		// We install only if the project is not forced install or has no errors
-		if (force || errors.isEmpty()) {
+		//if (force || errors.isEmpty()) {
+		// We don't do force install any more
+		if (errors.isEmpty()) {
 			// We synchronize on project so that we don't collide when
 			// uploading.
 			synchronized (project) {
diff --git a/src/java/azkaban/utils/DirectoryFlowLoader.java b/src/java/azkaban/utils/DirectoryFlowLoader.java
index acc0b9e..d376522 100644
--- a/src/java/azkaban/utils/DirectoryFlowLoader.java
+++ b/src/java/azkaban/utils/DirectoryFlowLoader.java
@@ -41,6 +41,10 @@ public class DirectoryFlowLoader {
 		return flowMap;
 	}
 	
+	public Set<String> getErrors() {
+		return errors;
+	}
+	
 	public void loadProjectFlow(File baseDirectory) {
 		propsList = new ArrayList<Props>();
 		flowPropsList = new ArrayList<FlowProps>();
@@ -59,6 +63,7 @@ public class DirectoryFlowLoader {
 
 		// Create the flows.
 		buildFlowsFromDependencies();
+
 	}
 	
 	private void loadProjectFromDir(String base, File dir) {
@@ -99,8 +104,11 @@ public class DirectoryFlowLoader {
 						prop.setSource(relative);
 						
 						Node node = new Node(jobName);
-						String type = prop.getString("type", "none");
-						errors.add("Job doesn't have type set '" + jobName + "'.");
+						String type = prop.getString("type", null);
+						if(type == null) {
+							errors.add("Job doesn't have type set '" + jobName + "'.");
+						}
+						
 						node.setType(type);
 						
 						node.setJobSource(relative);