[bknr-cvs] r2121 - trunk/projects/bos/m2

bknr at bknr.net bknr at bknr.net
Tue Jan 2 11:24:23 UTC 2007


Author: hhubner
Date: 2007-01-02 06:24:22 -0500 (Tue, 02 Jan 2007)
New Revision: 2121

Modified:
   trunk/projects/bos/m2/cert-daemon.lisp
   trunk/projects/bos/m2/m2.lisp
Log:
Catch error message if certificate cannot be generated.  Time out if certificate
generator hangs, generating an error message to the sponsor.


Modified: trunk/projects/bos/m2/cert-daemon.lisp
===================================================================
--- trunk/projects/bos/m2/cert-daemon.lisp	2006-12-19 05:35:36 UTC (rev 2120)
+++ trunk/projects/bos/m2/cert-daemon.lisp	2007-01-02 11:24:22 UTC (rev 2121)
@@ -31,14 +31,17 @@
   (dolist (fdf-pathname (remove "fdf" (directory directory)
 				:test (complement #'string-equal)
 				:key #'pathname-type))
-    (destructuring-bind (id &optional (country "en")) (split "-" (pathname-name fdf-pathname))
-      (let ((language-specific-template-pathname (merge-pathnames (make-pathname :name (format nil "~A-~A" (pathname-name template-pathname) country))
-                                                                  template-pathname))
-            (output-pathname (merge-pathnames (make-pathname :name id :type "pdf") fdf-pathname)))
-        (fill-form fdf-pathname (if (probe-file language-specific-template-pathname)
-                                    language-specific-template-pathname
-                                    template-pathname)
-                   output-pathname)))))
+    (handler-case
+	(destructuring-bind (id &optional (country "en")) (split "-" (pathname-name fdf-pathname))
+	  (let ((language-specific-template-pathname (merge-pathnames (make-pathname :name (format nil "~A-~A" (pathname-name template-pathname) country))
+								      template-pathname))
+		(output-pathname (merge-pathnames (make-pathname :name id :type "pdf") fdf-pathname)))
+	    (fill-form fdf-pathname (if (probe-file language-specific-template-pathname)
+					language-specific-template-pathname
+					template-pathname)
+		       output-pathname)))
+      (error (e)
+	(format "Error generating certificate from file ~A: ~A~%" fdf-pathname e)))))
 
 (defun generate-certs ()
   (fill-forms *cert-mail-directory* *cert-mail-template*)

Modified: trunk/projects/bos/m2/m2.lisp
===================================================================
--- trunk/projects/bos/m2/m2.lisp	2006-12-19 05:35:36 UTC (rev 2120)
+++ trunk/projects/bos/m2/m2.lisp	2007-01-02 11:24:22 UTC (rev 2121)
@@ -266,12 +266,13 @@
 	(make-certificate contract name :address address :language language)
 	(unless (contract-download-only-p contract)
 	  (make-certificate contract name :address address :language language :print t))
-	(loop
-	   do (progn
-		(format t "~&; waiting for generation of certificate, contract-id ~A" (store-object-id contract))
-		(sleep 2))
-	   until (probe-file (contract-pdf-pathname contract)))
-	(change-slot-values contract 'cert-issued t))))
+	(dotimes (i 10)
+	  (when (probe-file (contract-pdf-pathname contract))
+	    (return))
+	  (sleep 1))
+	(if (probe-file (contract-pdf-pathname contract))
+	    (change-slot-values contract 'cert-issued t)
+	    (error "Cannot generate certificate")))))
 
 (defmethod contract-image-tiles ((contract contract))
   (let (image-tiles)




More information about the Bknr-cvs mailing list