Make "Download App to OpenNebula" an atomic operation
If a appliance is downloaded to opennebula, the create TEMPLATE and create IMAGE are two seperate operations. If one operation fails and the appliance action is re-done by the user it will conflict on the other resource as well, as it has completed succesfully. At that point you first have to manually delete the template/image before you can try again. By making the whole operation atomic this would not happen, and corrective measures can be taken beforehand (choose different name for example).