checking if payment is already fulfilled
DESCRIPTION
Invoice generation is dependent on instance_name. Deleting a VM
doesn't delete the corresponding payments record since payment
receipts should be preserved for accounting purposes.
But being heavily dependent on instance_name, without taking deleted
VMs into account produces incorrect behavior under certain
circumstances: if a VM named 'foo' is paid for and is deleted before
its billing cycle is competed and a new VM is created with the same
name, either by the same user or a different user, invoice won't be
generated for the new VM since a payment record already exists for
that billing cycle for the VM named 'foo'.
Marking deleted VMs' payment records unsuitable for checking if a VM
is already paid for will result in correct behavior.
fixes: https://gitea.hostea.org/Hostea/dashboard/issues/38
SUMMARY
Commands are now tolerant to being invoked twice.
Command: vm create
Doesn't fail if VM of same name exists with the same
configuration
Doesn't fail if VM of the same name and different configuration
exist. Updates configuration and deploys(pushes to Hostea/fleet
repository) new configuration.
Command: vm delete
Doesn't fail if VM of given name doesn't exist