def _create_fw_fab_dev_te(self, tenant_id, drvr_name, fw_dict):
is_fw_virt = self.is_device_virtual()<EOL>ret = self.fabric.prepare_fabric_fw(tenant_id, fw_dict, is_fw_virt,<EOL>fw_constants.RESULT_FW_CREATE_INIT)<EOL>if not ret:<EOL><INDENT>LOG.error("<STR_LIT>")<EOL>return<EOL><DEDENT>else:<EOL><INDENT>self.update_fw_db_final_result(fw_dict.get('<STR_LIT>'), (<EOL>fw_constants.RESULT_FW_CREATE_DONE))<EOL><DEDENT>ret = self.create_fw_device(tenant_id, fw_dict.get('<STR_LIT>'),<EOL>fw_dict)<EOL>if ret:<EOL><INDENT>self.fwid_attr[tenant_id].fw_drvr_created(True)<EOL>self.update_fw_db_dev_status(fw_dict.get('<STR_LIT>'), '<STR_LIT>')<EOL>LOG.info("<STR_LIT>",<EOL>tenant_id)<EOL><DEDENT>else:<EOL><INDENT>LOG.error("<STR_LIT>",<EOL>tenant_id)<EOL><DEDENT>
Prepares the Fabric and configures the device.

        This routine calls the fabric class to prepare the fabric when
        a firewall is created. It also calls the device manager to
        configure the device. It updates the database with the final
        result.