import traceback
 import uuid
 
+
 from rest_framework import status
 from rest_framework.response import Response
 
 from lcm.pub.config.config import REPORT_TO_AAI
 from lcm.pub.database.models import (CPInstModel, NfInstModel, PortInstModel,
                                      VLInstModel, VmInstModel, VNFCInstModel)
-from lcm.pub.exceptions import NSLCMException
+from lcm.pub.exceptions import NSLCMException, RequestException
 from lcm.pub.msapi.aai import (create_network_aai, create_vserver_aai,
                                delete_network_aai, delete_vserver_aai,
                                query_network_aai, query_vserver_aai)
         try:
             # query network in aai, get resource_version
             customer_info = query_network_aai(vlInstanceId)
-            resource_version = customer_info["resource-version"]
-
-            # delete network from aai
-            resp_data, resp_status = delete_network_aai(vlInstanceId, resource_version)
-            logger.debug("Success to delete network[%s] from aai, resp_status: [%s]."
-                         % (vlInstanceId, resp_status))
+            if customer_info:
+                resource_version = customer_info["resource-version"]
+
+                # delete network from aai
+                resp_data, resp_status = delete_network_aai(vlInstanceId, resource_version)
+                logger.debug("Success to delete network[%s] from aai, resp_status: [%s]."
+                             % (vlInstanceId, resp_status))
+        except RequestException:
+            logger.debug("Network has been delted in aai")
         except NSLCMException as e:
             logger.debug("Fail to delete network[%s] to aai, detail message: %s" % (vlInstanceId, e.args[0]))
         except:
 
             # query vserver instance in aai, get resource_version
             vserver_info = query_vserver_aai(cloud_owner, cloud_region_id, tenant_id, vserver_id)
-            resource_version = vserver_info["resource-version"]
-
-            # delete vserver instance from aai
-            resp_data, resp_status = delete_vserver_aai(cloud_owner, cloud_region_id,
-                                                        tenant_id, vserver_id, resource_version)
-            logger.debug(
-                "Success to delete vserver instance[%s] from aai, resp_status: [%s]." %
-                (vserver_id, resp_status))
-            logger.debug("delete_vserver_in_aai end!")
+            if vserver_info:
+                resource_version = vserver_info["resource-version"]
+
+                # delete vserver instance from aai
+                resp_data, resp_status = delete_vserver_aai(cloud_owner, cloud_region_id,
+                                                            tenant_id, vserver_id, resource_version)
+                logger.debug(
+                    "Success to delete vserver instance[%s] from aai, resp_status: [%s]." %
+                    (vserver_id, resp_status))
+                logger.debug("delete_vserver_in_aai end!")
+        except RequestException:
+            logger.debug("Vserver has been deleted from aai")
         except NSLCMException as e:
             logger.debug("Fail to delete vserver from aai, detail message: %s" % e.args[0])
         except:
 
 import uuid
 
 from lcm.pub.config.config import AAI_BASE_URL, AAI_USER, AAI_PASSWD
-from lcm.pub.exceptions import NSLCMException
+from lcm.pub.exceptions import NSLCMException, RequestException
 from lcm.pub.utils import restcall
 
 
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise NSLCMException("Vserver delete exception in AAI")
+    if ret[2] == 404:
+        logger.error("Vserver has been deleted in aai")
+        raise RequestException("Vserver delete exception in AAI")
     return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]
 
 
     if ret[0] != 0:
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise NSLCMException("Network delete exception in AAI")
+    if ret[2] == 404:
+        logger.error("Network has been deleted in aai")
+        raise RequestException("Network delete exception in AAI")
     return json.JSONDecoder().decode(ret[1]) if ret[1] else ret[1], ret[2]