def retry_failure_fab_dev_delete(self, tenant_id, fw_data, fw_dict):
result = fw_data.get('<STR_LIT:result>').split('<STR_LIT:(>')[<NUM_LIT:0>]<EOL>name = dfa_dbm.DfaDBMixin.get_project_name(self, tenant_id)<EOL>fw_dict['<STR_LIT>'] = name<EOL>is_fw_virt = self.is_device_virtual()<EOL>if result == fw_constants.RESULT_FW_DELETE_INIT:<EOL><INDENT>if self.fwid_attr[tenant_id].is_fw_drvr_created():<EOL><INDENT>ret = self.delete_fw_device(tenant_id, fw_dict.get('<STR_LIT>'),<EOL>fw_dict)<EOL>if ret:<EOL><INDENT>self.update_fw_db_dev_status(fw_dict.get('<STR_LIT>'),<EOL>'<STR_LIT>')<EOL>self.fwid_attr[tenant_id].fw_drvr_created(False)<EOL>LOG.info("<STR_LIT>"<EOL>"<STR_LIT>", tenant_id)<EOL><DEDENT>else:<EOL><INDENT>return<EOL><DEDENT><DEDENT>name = dfa_dbm.DfaDBMixin.get_project_name(self, tenant_id)<EOL>ret = self.fabric.retry_failure(tenant_id, name, fw_dict,<EOL>is_fw_virt, result)<EOL>if not ret:<EOL><INDENT>LOG.error("<STR_LIT>",<EOL>tenant_id)<EOL>return<EOL><DEDENT>result = fw_constants.RESULT_FW_DELETE_DONE<EOL>self.update_fw_db_final_result(fw_dict.get('<STR_LIT>'), result)<EOL>self.delete_fw(fw_dict.get('<STR_LIT>'))<EOL>self.fwid_attr[tenant_id].delete_fw(fw_dict.get('<STR_LIT>'))<EOL>self.tenant_db.del_fw_tenant(fw_dict.get('<STR_LIT>'))<EOL><DEDENT>
Retry the failure cases for delete.

        This module calls routine in fabric to retry the failure cases for
        delete.
        If device is not successfully cfg/uncfg, it calls the device manager
        routine to cfg/uncfg the device.