Interface IPAMProvider

  • All Superinterfaces:
    PluginProvider

    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.8.0
    See Also:
    DNSProvider
    • Method Detail

      • verifyNetworkPoolServer

        ServiceResponse verifyNetworkPoolServer​(NetworkPoolServer poolServer,
                                                java.util.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,
                                                java.util.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,
                                                java.util.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,
                                                    java.util.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,
                                         java.lang.Boolean createARecord,
                                         java.lang.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,
                                         java.lang.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

        java.util.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

        java.util.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