docs: def fast_clone(self, VM, clone_name, mem=None):
          """
          Create a 'fast' clone of a VM. This means we make
          a snapshot of the disk and copy some of the settings
          and then create a new VM based on the snapshot and settings
          The VM is transient so when it is shutdown it deletes itself
          :param VM: The VM to base this clone on
          :type VM: sham.machine.VirtualMachine
  
          :param clone_name: The name for this clone
          :type clone_name: str
          """
          disks = VM.get_disks()
          ints = VM.get_interfaces()
          count = 0
          new_disks = []
          for disk in disks:
              pool = disk.pool
              new_disk_name = '{0}-disk{1}'.format(clone_name, count)
              count += 1
              new_disk = pool.create_backed_vol(new_disk_name, disk)
              new_disks.append(new_disk)
  
          for inter in ints:
              inter.mac = None
              # if the mac is set to None we don't include it in the xml
              # and libvirt will autogen one for us
          return self.create_vm(
              VM.domain_type,
              clone_name,
              VM.num_cpus,
              mem or VM.current_memory,
              mem or VM.max_memory,
              new_disks,
              ints)