Class WXMClientConfiguration

java.lang.Object
com.io7m.waxmill.client.api.WXMClientConfiguration
All Implemented Interfaces:
WXMClientConfigurationType

public final class WXMClientConfiguration
extends java.lang.Object
implements WXMClientConfigurationType
Configuration values passed to the client.
  • Method Details

    • virtualMachineConfigurationDirectory

      public java.nio.file.Path virtualMachineConfigurationDirectory()
      A directory that contains virtual machine configurations.
      Specified by:
      virtualMachineConfigurationDirectory in interface WXMClientConfigurationType
      Returns:
      The virtual machine configuration directory
    • virtualMachineRuntimeFilesystem

      public WXMZFSFilesystem virtualMachineRuntimeFilesystem()
      A ZFS filesystem that contains virtual machines. This directory will contain one ZFS filesystem per virtual machine. Note that this value is the name of the ZFS filesystem, and this doesn't necessarily match where that filesystem is mounted! For example, zfs create x/y/z && zfs set mountpoint=/a/b/c x/y/z will create a ZFS filesystem x/y/z and mount it at /a/b/c; the value expected here is x/y/z.
      Specified by:
      virtualMachineRuntimeFilesystem in interface WXMClientConfigurationType
      Returns:
      The ZFS filesystem containing virtual machines
    • bhyveExecutable

      public java.nio.file.Path bhyveExecutable()
      Specified by:
      bhyveExecutable in interface WXMClientConfigurationType
      Returns:
      The "bhyve" executable path, such as /usr/sbin/bhyve
    • bhyveCtlExecutable

      public java.nio.file.Path bhyveCtlExecutable()
      Specified by:
      bhyveCtlExecutable in interface WXMClientConfigurationType
      Returns:
      The "bhyvectl" executable path, such as /usr/sbin/bhyvectl
    • grubBhyveExecutable

      public java.nio.file.Path grubBhyveExecutable()
      Specified by:
      grubBhyveExecutable in interface WXMClientConfigurationType
      Returns:
      The "grub-bhyve" executable path, such as /usr/local/sbin/grub-bhyve
    • zfsExecutable

      public java.nio.file.Path zfsExecutable()
      Specified by:
      zfsExecutable in interface WXMClientConfigurationType
      Returns:
      The "zfs" executable path, such as /sbin/zfs
    • ifconfigExecutable

      public java.nio.file.Path ifconfigExecutable()
      Specified by:
      ifconfigExecutable in interface WXMClientConfigurationType
      Returns:
      The "ifconfig" executable path, such as /sbin/ifconfig
    • cuExecutable

      public java.nio.file.Path cuExecutable()
      Specified by:
      cuExecutable in interface WXMClientConfigurationType
      Returns:
      The "cu" executable path, such as /usr/bin/cu
    • withVirtualMachineConfigurationDirectory

      public final WXMClientConfiguration withVirtualMachineConfigurationDirectory​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the virtualMachineConfigurationDirectory attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for virtualMachineConfigurationDirectory
      Returns:
      A modified copy of the this object
    • withVirtualMachineRuntimeFilesystem

      public final WXMClientConfiguration withVirtualMachineRuntimeFilesystem​(WXMZFSFilesystem value)
      Copy the current immutable object by setting a value for the virtualMachineRuntimeFilesystem attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for virtualMachineRuntimeFilesystem
      Returns:
      A modified copy of the this object
    • withBhyveExecutable

      public final WXMClientConfiguration withBhyveExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the bhyveExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for bhyveExecutable
      Returns:
      A modified copy of the this object
    • withBhyveCtlExecutable

      public final WXMClientConfiguration withBhyveCtlExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the bhyveCtlExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for bhyveCtlExecutable
      Returns:
      A modified copy of the this object
    • withGrubBhyveExecutable

      public final WXMClientConfiguration withGrubBhyveExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the grubBhyveExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for grubBhyveExecutable
      Returns:
      A modified copy of the this object
    • withZfsExecutable

      public final WXMClientConfiguration withZfsExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the zfsExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for zfsExecutable
      Returns:
      A modified copy of the this object
    • withIfconfigExecutable

      public final WXMClientConfiguration withIfconfigExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the ifconfigExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for ifconfigExecutable
      Returns:
      A modified copy of the this object
    • withCuExecutable

      public final WXMClientConfiguration withCuExecutable​(java.nio.file.Path value)
      Copy the current immutable object by setting a value for the cuExecutable attribute. A shallow reference equality check is used to prevent copying of the same value by returning this.
      Parameters:
      value - A new value for cuExecutable
      Returns:
      A modified copy of the this object
    • equals

      public boolean equals​(java.lang.Object another)
      This instance is equal to all instances of WXMClientConfiguration that have equal attribute values.
      Overrides:
      equals in class java.lang.Object
      Returns:
      true if this is equal to another instance
    • hashCode

      public int hashCode()
      Computes a hash code from attributes: virtualMachineConfigurationDirectory, virtualMachineRuntimeFilesystem, bhyveExecutable, bhyveCtlExecutable, grubBhyveExecutable, zfsExecutable, ifconfigExecutable, cuExecutable.
      Overrides:
      hashCode in class java.lang.Object
      Returns:
      hashCode value
    • toString

      public java.lang.String toString()
      Prints the immutable value WXMClientConfiguration with attribute values.
      Overrides:
      toString in class java.lang.Object
      Returns:
      A string representation of the value
    • copyOf

      public static WXMClientConfiguration copyOf​(WXMClientConfigurationType instance)
      Creates an immutable copy of a WXMClientConfigurationType value. Uses accessors to get values to initialize the new immutable instance. If an instance is already immutable, it is returned as is.
      Parameters:
      instance - The instance to copy
      Returns:
      A copied immutable WXMClientConfiguration instance
    • builder

      public static WXMClientConfiguration.Builder builder()
      Creates a builder for WXMClientConfiguration.
       WXMClientConfiguration.builder()
          .setVirtualMachineConfigurationDirectory(java.nio.file.Path) // required virtualMachineConfigurationDirectory
          .setVirtualMachineRuntimeFilesystem(com.io7m.waxmill.machines.WXMZFSFilesystem) // required virtualMachineRuntimeFilesystem
          .setBhyveExecutable(java.nio.file.Path) // optional bhyveExecutable
          .setBhyveCtlExecutable(java.nio.file.Path) // optional bhyveCtlExecutable
          .setGrubBhyveExecutable(java.nio.file.Path) // optional grubBhyveExecutable
          .setZfsExecutable(java.nio.file.Path) // optional zfsExecutable
          .setIfconfigExecutable(java.nio.file.Path) // optional ifconfigExecutable
          .setCuExecutable(java.nio.file.Path) // optional cuExecutable
          .build();
       
      Returns:
      A new WXMClientConfiguration builder