Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
public interface AffinityGroupProcessor extends Adapter {

    /**
     * process() is called to apply the affinity/anti-affinity rules to the deployment plan and avoid set for the given VM placement.
     * @param vm    virtual machine.
     * @param plan  deployment plan that tells you where it's being deployed to.
     * @param avoid avoid these data centers, pods, clusters, or hosts.
     */
    void process(VirtualMachineProfile<? extends VirtualMachine> vm, DeploymentPlan plan, ExcludeList avoid) throws AffinityConflictException;

    /**
     * getType() should return the affinity/anti-affinity group being implemented
     * @return String Affinity/Anti-affinity type
     */
    String getType();
}

HostAffinityProcessor

We will provide default implementation of the host affinity rule. This processor will implement the AffinityGroupProcessor adapter.

For the given VM, it will list the other VMs associated to its affinity group and set the same hostId in the DeploymentPlan for placement by the planner.

This has been removed from the FS as per discussions on the mailing list. This usecase has less value and more prone to failures in deployment.

HostAntiAffinityProcessor

...