Class VmClonerSimple

java.lang.Object
org.cloudsimplus.faultinjection.VmClonerSimple
All Implemented Interfaces:
VmCloner

public class VmClonerSimple extends Object implements VmCloner
A basic implementation of a VmCloner.
Since:
CloudSim Plus 1.2.2
Author:
raysaoliveira
  • Constructor Details

  • Method Details

    • getClonedVmsNumber

      public int getClonedVmsNumber()
      Description copied from interface: VmCloner
      Gets the number of VMs cloned so far.
      Specified by:
      getClonedVmsNumber in interface VmCloner
      Returns:
    • clone

      public Map.Entry<Vm,List<Cloudlet>> clone(Vm sourceVm)
      Description copied from interface: VmCloner
      Clones a given Vm using the Vm Cloner Function and their Cloudlets using the Cloudlets Cloner Function, binding the cloned Cloudlets to the cloned Vm.
      Specified by:
      clone in interface VmCloner
      Parameters:
      sourceVm - the Vm to be cloned
      Returns:
      a Map.Entry where the key is the cloned Vm and the value is the List of cloned Cloudlets.
      See Also:
    • setVmClonerFunction

      public final VmCloner setVmClonerFunction(UnaryOperator<Vm> vmClonerFunction)
      Description copied from interface: VmCloner
      Sets the UnaryOperator to be used to clone Vms. It is a Function which, when called, creates a clone of a specific Vm.
      Specified by:
      setVmClonerFunction in interface VmCloner
      Parameters:
      vmClonerFunction - the Vm cloner Function to set
      Returns:
    • setCloudletsClonerFunction

      public final VmCloner setCloudletsClonerFunction(Function<Vm,List<Cloudlet>> cloudletsClonerFunction)
      Description copied from interface: VmCloner
      Gets the Function to be used to clone Vm's Cloudlets. When the given Function is called, creates a clone of cloudlets which were running inside a specific Vm.

      Such a Function is used to recreate those Cloudlets inside a clone of the failed VM. In this case, all the Cloudlets are recreated from scratch into the cloned VM. This way, when they are submitted to a broker, they re-start execution from the beginning.

      Specified by:
      setCloudletsClonerFunction in interface VmCloner
      Parameters:
      cloudletsClonerFunction - the Cloudlets cloner Function to set
      Returns:
    • getMaxClonesNumber

      public int getMaxClonesNumber()
      Description copied from interface: VmCloner
      Gets the maximum number of Vm clones to create. For instance, if this value is equal to 2, it means if all VMs from a given broker are destroyed multiple times, a clone will be created only 2 times. If all VMs are destroyed again for the 3rd time, no clone will be created. The default value is 1.
      Specified by:
      getMaxClonesNumber in interface VmCloner
      Returns:
    • isMaxClonesNumberReached

      public boolean isMaxClonesNumberReached()
      Description copied from interface: VmCloner
      Checks if the maximum number of Vm clones to be created was reached.
      Specified by:
      isMaxClonesNumberReached in interface VmCloner
      Returns:
      true if the maximum number of clones was reached, false otherwise
    • setMaxClonesNumber

      public VmCloner setMaxClonesNumber(int maxClonesNumber)
      Description copied from interface: VmCloner
      Sets the maximum number of Vm clones to create. For instance, if this value is equal to 2, it means if all VMs from a given broker are destroyed multiple times, a clone will be created only 2 times. If all VMs are destroyed again for the 3rd time, no clone will be created. The default value is 1.
      Specified by:
      setMaxClonesNumber in interface VmCloner
      Parameters:
      maxClonesNumber - the value to set
      Returns: