@fw_handler_decorator<EOL><INDENT>def _fw_update(self, drvr_name, data):<DEDENT>
fw = data.get('<STR_LIT>')<EOL>tenant_id = fw.get('<STR_LIT>')<EOL>if self.fwid_attr[tenant_id].is_fw_complete() orself.fwid_attr[tenant_id].is_fw_drvr_create_needed():<EOL><INDENT>prev_info_complete = True<EOL><DEDENT>else:<EOL><INDENT>prev_info_complete = False<EOL><DEDENT>tenant_obj = self.fwid_attr[tenant_id]<EOL>if '<STR_LIT>' in fw and len(fw.get('<STR_LIT>')) != <NUM_LIT:0>:<EOL><INDENT>rtr_id = fw.get('<STR_LIT>')[<NUM_LIT:0>]<EOL>name = dfa_dbm.DfaDBMixin.get_project_name(self, tenant_id)<EOL>rtr_name = '<STR_LIT:_>'.join([fw_constants.TENANT_EDGE_RTR, name])<EOL>fw_rtr_name = self.os_helper.get_rtr_name(rtr_id)<EOL>fw_type = None<EOL>if fw_rtr_name == rtr_name:<EOL><INDENT>fw_type = fw_constants.FW_TENANT_EDGE<EOL><DEDENT>tenant_obj.update_fw_params(rtr_id, fw_type)<EOL><DEDENT>if not prev_info_complete:<EOL><INDENT>self._check_create_fw(tenant_id, drvr_name)<EOL><DEDENT>
Update routine for the Firewall.

        Check if FW is already cfgd using the below function
        if self.fwid_attr[tenant_id].is_fw_complete() or
        is_fw_drvr_create_needed():
        The above two functions will take care of whether FW is already
        cfgd or about to be cfgd in case of error.
        If yes, this may be a change in policies attached to FW.
        If no, do a check, create after storing the parameters like
        rtr_id.