azkaban-aplcache
Changes
src/java/azkaban/utils/FlowUtils.java 50(+50 -0)
src/web/js/azkaban.project.view.js 2(+2 -0)
Details
diff --git a/src/java/azkaban/project/FileProjectManager.java b/src/java/azkaban/project/FileProjectManager.java
index d13da39..684c024 100644
--- a/src/java/azkaban/project/FileProjectManager.java
+++ b/src/java/azkaban/project/FileProjectManager.java
@@ -124,6 +124,8 @@ public class FileProjectManager implements ProjectManager {
synchronized (project) {
logger.info("Uploading files to " + projectName);
+
+ // Do this if it succeeds
project.setLastModifiedTimestamp(System.currentTimeMillis());
project.setLastModifiedUser(uploader.getUserId());
}
src/java/azkaban/utils/FlowUtils.java 50(+50 -0)
diff --git a/src/java/azkaban/utils/FlowUtils.java b/src/java/azkaban/utils/FlowUtils.java
new file mode 100644
index 0000000..b148255
--- /dev/null
+++ b/src/java/azkaban/utils/FlowUtils.java
@@ -0,0 +1,50 @@
+package azkaban.utils;
+
+import java.io.File;
+import java.io.FileNamFilter;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import azkaban.flow.Edge;
+import azkaban.flow.Flow;
+import azkaban.flow.Node;
+
+public class FlowUtils {
+ public static void loadProjectFilesFrom(File dir, List<Flow> resultFlow, List<Props> resultProps) {
+ File[] propertyFiles = dir.listFiles();
+ ArrayList<String> errors = new ArrayList<String>();
+ Props propertyFile = null;
+ for (File file: propertyFiles) {
+
+ }
+ }
+
+ private static void loadProjectFromDir(File dir, Map<String, Node> node, Map<String, Props> propsFiles, List<String> errors) {
+ File[] propertyFiles = dir.listFiles(new SuffixFilter(".properties"));
+ Props parent = null;
+ for (File file: propertyFiles) {
+ try {
+ Props props = new Props(parent, file);
+ } catch (IOException e) {
+ errors.add("Error loading properties " + file.getName() + ":" + e.getMessage());
+ }
+ }
+ }
+
+ private class SuffixFilter implements FilenameFilter {
+ private String suffix;
+
+ public SuffixFilter(String suffix) {
+ this.suffix = suffix;
+ }
+
+ @Override
+ public boolean accept(File dir, String name) {
+ return name.endsWith(suffix);
+ }
+
+ }
+}
diff --git a/src/java/azkaban/webapp/servlet/ProjectManagerServlet.java b/src/java/azkaban/webapp/servlet/ProjectManagerServlet.java
index 86b31b8..38bd53c 100644
--- a/src/java/azkaban/webapp/servlet/ProjectManagerServlet.java
+++ b/src/java/azkaban/webapp/servlet/ProjectManagerServlet.java
@@ -152,6 +152,7 @@ public class ProjectManagerServlet extends LoginAbstractAzkabanServlet {
else {
try {
File jobDir = extractFile(item);
+
} catch (Exception e) {
logger.info("Installation Failed.", e);
setErrorMessageInCookie(resp, "Installation Failed.");
diff --git a/src/java/azkaban/webapp/servlet/velocity/projectmanager.vm b/src/java/azkaban/webapp/servlet/velocity/projectmanager.vm
index 50bfc2f..a88b3e2 100644
--- a/src/java/azkaban/webapp/servlet/velocity/projectmanager.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/projectmanager.vm
@@ -3,12 +3,12 @@
<head>
#parse( "azkaban/webapp/servlet/velocity/style.vm" )
<script type="text/javascript" src="${context}/js/jquery/jquery.js"></script>
+ <script type="text/javascript" src="${context}/js/jqueryui/jquery-ui.custom.min.js"></script>
<script type="text/javascript" src="${context}/js/namespace.js"></script>
<script type="text/javascript" src="${context}/js/underscore-1.2.1-min.js"></script>
<script type="text/javascript" src="${context}/js/backbone-0.5.3-min.js"></script>
<script type="text/javascript" src="${context}/js/jquery.simplemodal.js"></script>
<script type="text/javascript" src="${context}/js/azkaban.nav.js"></script>
- <script type="text/javascript" src="${context}/js/azkaban.project.view.js"></script>
<script type="text/javascript">
var contextURL = "${context}";
var currentTime = ${currentTime};
@@ -50,6 +50,9 @@
<tr><td class="first">Description:</td><td>$project.description</td></tr>
</table>
</div>
+ <div id="project-tabs">
+
+ </div>
#end
</div>
src/web/js/azkaban.project.view.js 2(+2 -0)
diff --git a/src/web/js/azkaban.project.view.js b/src/web/js/azkaban.project.view.js
index 3e51e2a..89c6bfd 100644
--- a/src/web/js/azkaban.project.view.js
+++ b/src/web/js/azkaban.project.view.js
@@ -46,4 +46,6 @@ azkaban.UploadProjectView= Backbone.View.extend({
$(function() {
projectView = new azkaban.ProjectView({el:$( '#all-jobs-content'), successMsg: successMessage, errorMsg: errorMessage });
uploadView = new azkaban.UploadProjectView({el:$('#upload-project')});
+ // Setting up the project tabs
+
});