Package com.morpheusdata.core.providers
Interface IPAMProvider
- All Superinterfaces:
PluginProvider
- All Known Subinterfaces:
IPAMProvider
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 Summary
Modifier and TypeMethodDescriptioncreateHostRecord
(NetworkPoolServer poolServer, NetworkPool networkPool, NetworkPoolIp networkPoolIp, NetworkDomain domain, Boolean createARecord, Boolean createPtrRecord) Creates a Host record on the targetNetworkPool
within theNetworkPoolServer
integration.createNetworkPoolServer
(NetworkPoolServer poolServer, Map opts) Called during creation of aNetworkPoolServer
operation.deleteHostRecord
(NetworkPool networkPool, NetworkPoolIp poolIp, Boolean deleteAssociatedRecords) Deletes a host record on the targetNetworkPool
.getIcon()
Returns the IPAM Integration logo for display when a user needs to view or add this integrationProvide custom configuration options when creating a newAccountIntegration
An IPAM Provider can register pool types for display and capability information when syncing IPAM PoolsinitializeNetworkPoolServer
(NetworkPoolServer poolServer, Map opts) Called on the first save / update of a pool server integration.void
refresh
(NetworkPoolServer poolServer) Periodically called to refresh and sync data coming from the relevant integration.updateHostRecord
(NetworkPoolServer poolServer, NetworkPool networkPool, NetworkPoolIp networkPoolIp) Updates a Host record on the targetNetworkPool
if supported by the Provider.updateNetworkPoolServer
(NetworkPoolServer poolServer, Map opts) Called during update of an existingNetworkPoolServer
.verifyNetworkPoolServer
(NetworkPoolServer poolServer, Map opts) Validation Method used to validate all inputs applied to the integration of an IPAM Provider upon save.Methods inherited from interface com.morpheusdata.core.providers.PluginProvider
getCode, getMorpheus, getName, getPlugin, isPlugin
-
Method Details
-
verifyNetworkPoolServer
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 aServiceResponse
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
Called during creation of aNetworkPoolServer
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
Called during update of an existingNetworkPoolServer
. 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
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
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 targetNetworkPool
within theNetworkPoolServer
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 theServiceResponse
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 createdcreatePtrRecord
- 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 targetNetworkPool
if supported by the Provider. If not supported, send the appropriateServiceResponse
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 targetNetworkPool
. 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 newAccountIntegration
- 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
-