Interface IPAMProvider

All Superinterfaces:
PluginProvider
All Known Subinterfaces:
IPAMProvider

public interface IPAMProvider extends PluginProvider
Provides IP Address Management integration support for third party IPAM Vendors. An example might be Infoblox or Bluecat These types of providers often provides DNS Support as well and in that event it is possible for a Provider to implement both interfaces
Since:
0.15.1
See Also:
  • Method Details

    • verifyNetworkPoolServer

      ServiceResponse verifyNetworkPoolServer(NetworkPoolServer poolServer, Map opts)
      Validation Method used to validate all inputs applied to the integration of an IPAM Provider upon save. If an input fails validation or authentication information cannot be verified, Error messages should be returned via a ServiceResponse object where the key on the error is the field name and the value is the error message. If the error is a generic authentication error or unknown error, a standard message can also be sent back in the response.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
      opts - any custom payload submission options may exist here
      Returns:
      A response is returned depending on if the inputs are valid or not.
    • createNetworkPoolServer

      ServiceResponse createNetworkPoolServer(NetworkPoolServer poolServer, Map opts)
      Called during creation of a NetworkPoolServer operation. This allows for any custom operations that need to be performed outside of the standard operations.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
      opts - any custom payload submission options may exist here
      Returns:
      A response is returned depending on if the operation was a success or not.
    • updateNetworkPoolServer

      ServiceResponse updateNetworkPoolServer(NetworkPoolServer poolServer, Map opts)
      Called during update of an existing NetworkPoolServer. This allows for any custom operations that need to be performed outside of the standard operations.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
      opts - any custom payload submission options may exist here
      Returns:
      A response is returned depending on if the operation was a success or not.
    • refresh

      void refresh(NetworkPoolServer poolServer)
      Periodically called to refresh and sync data coming from the relevant integration. Most integration providers provide a method like this that is called periodically (typically 5 - 10 minutes). DNS Sync operates on a 10min cycle by default. Useful for caching Host Records created outside of Morpheus.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
    • initializeNetworkPoolServer

      ServiceResponse initializeNetworkPoolServer(NetworkPoolServer poolServer, Map opts)
      Called on the first save / update of a pool server integration. Used to do any initialization of a new integration Often times this calls the periodic refresh method directly.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
      opts - an optional map of parameters that could be sent. This may not currently be used and can be assumed blank
      Returns:
      a ServiceResponse containing the success state of the initialization phase
    • createHostRecord

      ServiceResponse createHostRecord(NetworkPoolServer poolServer, NetworkPool networkPool, NetworkPoolIp networkPoolIp, NetworkDomain domain, Boolean createARecord, Boolean createPtrRecord)
      Creates a Host record on the target NetworkPool within the NetworkPoolServer integration.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
      networkPool - the NetworkPool currently being operated on.
      networkPoolIp - The ip address and metadata related to it for allocation. It is important to create functionality such that if the ip address property is blank on this record, auto allocation should be performed and this object along with the new ip address be returned in the ServiceResponse
      domain - The domain with which we optionally want to create an A/PTR record for during this creation process.
      createARecord - configures whether or not the A record is automatically created
      createPtrRecord - configures whether or not the PTR record is automatically created
      Returns:
      a ServiceResponse containing the success state of the create host record operation
    • updateHostRecord

      ServiceResponse updateHostRecord(NetworkPoolServer poolServer, NetworkPool networkPool, NetworkPoolIp networkPoolIp)
      Updates a Host record on the target NetworkPool if supported by the Provider. If not supported, send the appropriate ServiceResponse such that the user is properly informed of the unavailable operation.
      Parameters:
      poolServer - The Integration Object contains all the saved information regarding configuration of the IPAM Provider.
      networkPool - the NetworkPool currently being operated on.
      networkPoolIp - the changes to the network pool ip address that would like to be made. Most often this is just the host record name.
      Returns:
      a ServiceResponse containing the success state of the update host record operation
    • deleteHostRecord

      ServiceResponse deleteHostRecord(NetworkPool networkPool, NetworkPoolIp poolIp, Boolean deleteAssociatedRecords)
      Deletes a host record on the target NetworkPool. This is used for cleanup or releasing of an ip address on the IPAM Provider.
      Parameters:
      networkPool - the NetworkPool currently being operated on.
      poolIp - the record that is being deleted.
      deleteAssociatedRecords - determines if associated records like A/PTR records
      Returns:
      a ServiceResponse containing the success state of the delete operation
    • getNetworkPoolTypes

      Collection<NetworkPoolType> getNetworkPoolTypes()
      An IPAM Provider can register pool types for display and capability information when syncing IPAM Pools
      Returns:
      a List of NetworkPoolType to be loaded into the Morpheus database.
    • getIntegrationOptionTypes

      List<OptionType> getIntegrationOptionTypes()
      Provide custom configuration options when creating a new AccountIntegration
      Returns:
      a List of OptionType
    • getIcon

      Icon getIcon()
      Returns the IPAM Integration logo for display when a user needs to view or add this integration
      Returns:
      Icon representation of assets stored in the src/assets of the project.
      Since:
      0.12.3