You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2013/02/08 14:11:29 UTC

svn commit: r1444002 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli: DuccJobSubmit.java DuccServiceSubmit.java

Author: degenaro
Date: Fri Feb  8 13:11:29 2013
New Revision: 1444002

URL: http://svn.apache.org/r1444002
Log:
UIMA-2645 DUCC command line interface (CLI) should reject submission when <logs> directory is not writable

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java?rev=1444002&r1=1444001&r2=1444002&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java Fri Feb  8 13:11:29 2013
@@ -446,6 +446,25 @@ public class DuccJobSubmit extends DuccU
     									 +", "
     									 +JobRequestProperties.key_process_descriptor_CC
     									 ;
+	
+	//**********
+    
+    private boolean has_writable_log_directory(Properties properties) {
+		boolean retVal = true;
+		String log_directory = properties.getProperty(JobRequestProperties.key_log_directory);
+		File file = new File(log_directory);
+		if(!file.isDirectory()) {
+			duccMessageProcessor.err("not a directory: "+log_directory);
+			retVal = false;
+		}
+		else if(!file.canWrite()) {
+			duccMessageProcessor.err("not a writable directory: "+log_directory);
+			retVal = false;
+		}
+		return retVal;
+	}
+    
+	//**********
     
 	private boolean has_at_least_one_of_options(Properties properties) {
 		boolean retVal = true;
@@ -841,6 +860,12 @@ public class DuccJobSubmit extends DuccU
 			return DuccUiConstants.ERROR;
 		}
 		/*
+		 * check for writable log directory
+		 */
+		if (!has_writable_log_directory(jobRequestProperties)) {
+			return DuccUiConstants.ERROR;
+		}
+		/*
 		 * set DUCC_LD_LIBRARY_PATH in driver, process environment
 		 */
 		if (!DuccUiUtilities.ducc_environment(duccMessageProcessor, jobRequestProperties, JobRequestProperties.key_driver_environment)) {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java?rev=1444002&r1=1444001&r2=1444002&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java Fri Feb  8 13:11:29 2013
@@ -51,6 +51,7 @@ import org.apache.uima.ducc.transport.di
 import org.apache.uima.ducc.transport.event.DuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitServiceDuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitServiceReplyDuccEvent;
+import org.apache.uima.ducc.transport.event.cli.JobRequestProperties;
 import org.apache.uima.ducc.transport.event.cli.ServiceRequestProperties;
 import org.apache.uima.ducc.transport.event.cli.ServiceSpecificationProperties;
 import org.apache.uima.ducc.transport.event.cli.SpecificationProperties;
@@ -185,7 +186,24 @@ public class DuccServiceSubmit extends D
                           );
 
 	}
-
+	
+    //**********
+    
+    private boolean has_writable_log_directory(Properties properties) {
+		boolean retVal = true;
+		String log_directory = properties.getProperty(JobRequestProperties.key_log_directory);
+		File file = new File(log_directory);
+		if(!file.isDirectory()) {
+			duccMessageProcessor.err("not a directory: "+log_directory);
+			retVal = false;
+		}
+		else if(!file.canWrite()) {
+			duccMessageProcessor.err("not a writable directory: "+log_directory);
+			retVal = false;
+		}
+		return retVal;
+	}
+    
 	//**********
 	
 	private String[] required_options = {  };
@@ -424,6 +442,14 @@ public class DuccServiceSubmit extends D
 			if (DuccUiUtilities.duplicate_options(duccMessageProcessor, commandLine)) {
 				return DuccUiConstants.ERROR;
 			}
+			
+			/*
+			 * check for writable log directory
+			 */
+			if (!has_writable_log_directory(serviceRequestProperties)) {
+				return DuccUiConstants.ERROR;
+			}
+			
 			/*
 			 * marshal user
 			 */