Skip to content
Snippets Groups Projects
Commit 8d6abe10 authored by Tomáš Čejka's avatar Tomáš Čejka
Browse files

delete: reworked and simplified - return after delete and don't save again

parent abc2b0dc
Branches
No related tags found
No related merge requests found
......@@ -125,38 +125,32 @@ def delete(routepk, **kwargs):
route = Route.objects.get(pk=routepk)
initial_status = route.status
try:
#username = request.user.username
#user_is_admin = request.user.is_superuser()
#logger.info("tasks::delete(): username="+str(username)+" route="+str(route)+" initial_status="+str(initial_status))
applier = PR.Applier(route_object=route)
commit, response = applier.apply(operation="delete")
reason_text = ''
logger.info("tasks::delete(): initial_status="+str(initial_status))
fully_deleted=False
if commit and initial_status == "PENDING_TODELETE": # special new case for fully deleting a rule via REST API
fully_deleted=True
route.status="INACTIVE"
route.delete()
msg1 = "[%s] Fully deleted route : %s%s- Result %s" % (route.applier, route.name, reason_text, response)
logger.info("tasks::delete(): DELETED msg="+msg1)
announce(msg1, route.applier, route)
if commit:
status = "INACTIVE"
if "reason" in kwargs and kwargs['reason'] == 'EXPIRED':
status = 'EXPIRED'
reason_text = " Reason: %s " % status
route.status="INACTIVE"
msg1 = "[%s] Fully deleted route : %s%s- Result %s" % (route.applier, route.name, reason_text, response)
logger.info("tasks::delete(): DELETED msg="+msg1)
announce(msg1, route.applier, route)
try:
#snmp_add_initial_zero_value.delay(str(route.id), False)
snmp_add_initial_zero_value(str(route.id), False)
snmp_add_initial_zero_value(str(route.id), False)
except Exception as e:
logger.error("edit(): route="+str(route)+", INACTIVE, add_null_value failed: "+str(e))
logger.error("edit(): route="+str(route)+", INACTIVE, add_null_value failed: "+str(e))
route.delete()
return
else:
status = "ERROR"
if not fully_deleted:
route.status = status
route.response = response
route.save()
announce("[%s] Suspending rule : %s%s- Result %s" % (route.applier_username_nice, route.name, reason_text, response), route.applier, route)
# NETCONF "delete" operation failed, keep the object in DB
if "reason" in kwargs and kwargs['reason'] == 'EXPIRED':
status = 'EXPIRED'
reason_text = " Reason: %s " % status
else:
status = "ERROR"
route.status = status
route.response = response
route.save()
announce("[%s] Suspending rule : %s%s- Result %s" % (route.applier_username_nice, route.name, reason_text, response), route.applier, route)
except TimeLimitExceeded:
route.status = "ERROR"
route.response = "Task timeout"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment