<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def add_cluster_interface_on_master_engine(self, interface_id, macaddress, nodes, zone_ref=None, vlan_id=None, comment=None):
 """ Add a cluster address specific to a master engine. Master engine clusters will not use "CVI" interfaces like normal layer 3 FW clusters, instead each node has a unique address and share a common macaddress. Adding multiple addresses to an interface is not supported with this method. :param str,int interface_id: interface id to use :param str macaddress: mac address to use on interface :param list nodes: interface node list :param bool is_mgmt: is this a management interface :param zone_ref: zone to use, by name, str href or Zone :param vlan_id: optional VLAN id if this should be a VLAN interface :raises EngineCommandFailed: failure creating interface :return: None """

        _interface = {'interface_id': interface_id, 'macaddress': macaddress,
            'interfaces': [{'nodes': nodes if nodes else [], 'vlan_id': vlan_id}],
            'zone_ref': zone_ref, 'comment': comment}
        
        try:
            interface = self._engine.interface.get(interface_id)
            vlan = interface.vlan_interface.get(vlan_id)
            # Interface exists, so we need to update but check if VLAN already exists
            if vlan is None:
                interface._add_interface(**_interface)
                interface.update()
                
        except InterfaceNotFound:
            interface = Layer3PhysicalInterface(**_interface)
            return self._engine.add_interface(interface)