Class HostUpdateFlow

java.lang.Object
google.registry.flows.host.HostUpdateFlow
All Implemented Interfaces:
Flow, MutatingFlow, TransactionalFlow

@ReportingSpec(HOST_UPDATE) public final class HostUpdateFlow extends Object implements MutatingFlow
An EPP flow that updates a host.

Hosts can be "external", or "internal" (also known as "in bailiwick"). Internal hosts are those that are under a top level domain within this registry, and external hosts are all other hosts. Internal hosts must have at least one IP address associated with them, whereas external hosts cannot have any.

This flow allows changing a host name, and adding or removing IP addresses to hosts. When a host is renamed from internal to external all IP addresses must be simultaneously removed, and when it is renamed from external to internal at least one must be added. If the host is renamed or IP addresses are added, tasks are enqueued to update DNS accordingly.

Expected Error
FlowUtils.NotLoggedInException, ResourceFlowUtils.AddRemoveSameValueException, ResourceFlowUtils.ResourceDoesNotExistException, ResourceFlowUtils.ResourceNotOwnedException, ResourceFlowUtils.StatusNotClientSettableException, ResourceHasClientUpdateProhibitedException, ResourceStatusProhibitsOperationException, HostFlowUtils.HostDomainNotOwnedException, HostFlowUtils.HostNameNotLowerCaseException, HostFlowUtils.HostNameNotNormalizedException, HostFlowUtils.HostNameNotPunyCodedException, HostFlowUtils.HostNameTooLongException, HostFlowUtils.HostNameTooShallowException, HostFlowUtils.InvalidHostNameException, HostFlowUtils.SuperordinateDomainDoesNotExistException, HostFlowUtils.SuperordinateDomainInPendingDeleteException, HostUpdateFlow.CannotAddIpToExternalHostException, HostUpdateFlow.CannotRemoveSubordinateHostLastIpException, HostUpdateFlow.CannotRenameExternalHostException, HostUpdateFlow.HostAlreadyExistsException, HostUpdateFlow.RenameHostToExternalRemoveIpException
  • Method Details

    • run

      public EppResponse run() throws EppException
      Description copied from interface: Flow
      Executes an EPP "flow" and returns a response object (or in the specific case of the "hello" flow a greeting object) that can be converted to XML and returned to the caller.

      Flows should have Flow.run() called once per instance. If a flow needs to be retried, a new instance should be created.

      Flows should get all of their parameters via injection off of FlowComponent.

      Specified by:
      run in interface Flow
      Throws:
      EppException