Fix failure status bug: when status is failure, request should be stopped

Change-Id: I699d9ae6bdc34ac67d9a8b3c69e9d789f9709c6d
diff --git a/src/ca-module.cpp b/src/ca-module.cpp
index 6b93ee4..9df8384 100644
--- a/src/ca-module.cpp
+++ b/src/ca-module.cpp
@@ -192,12 +192,17 @@
     return;
   }
   JsonSection contentJson = challenge->handleChallengeRequest(request, certRequest);
-  try {
-    m_storage->updateRequest(certRequest);
+  if (certRequest.getStatus() == ChallengeModule::FAILURE) {
+    m_storage->deleteRequest(certRequest.getRequestId());
   }
-  catch (const std::exception& e) {
-    _LOG_TRACE("Cannot update request instance " << e.what());
-    return;
+  else {
+    try {
+      m_storage->updateRequest(certRequest);
+    }
+    catch (const std::exception& e) {
+      _LOG_TRACE("Cannot update request instance " << e.what());
+      return;
+    }
   }
 
   Data result;
@@ -233,14 +238,18 @@
     return;
   }
   JsonSection contentJson = challenge->handleChallengeRequest(request, certRequest);
-  try {
-    m_storage->updateRequest(certRequest);
+  if (certRequest.getStatus() == ChallengeModule::FAILURE) {
+    m_storage->deleteRequest(certRequest.getRequestId());
   }
-  catch (const std::exception& e) {
-    _LOG_TRACE("Cannot update request instance " << e.what());
-    return;
+  else {
+    try {
+      m_storage->updateRequest(certRequest);
+    }
+    catch (const std::exception& e) {
+      _LOG_TRACE("Cannot update request instance " << e.what());
+      return;
+    }
   }
-
   Data result;
   result.setName(request.getName());
   result.setContent(dataContentFromJson(contentJson));