public class PortForwardManagerImpl extends AbstractLocation implements PortForwardManager
PortForwardManager.AssociationListener, PortForwardManager.AssociationMetadataBrooklynObject.TagSupportConfigurable.ConfigurationSupportBrooklynObjectInternal.ConfigurationSupportInternalLOG, PARENT_LOCATION, TEMPORARY_LOCATIONPORT_FORWARD_MANAGER_STARTING_PORT, SCOPEFINAL_SPEC, NAMED_SPEC_NAME, ORIGINAL_SPEC| Constructor and Description |
|---|
PortForwardManagerImpl() |
| Modifier and Type | Method and Description |
|---|---|
int |
acquirePublicPort(java.lang.String publicIpId)
Reserves a unique public port on the given publicIpId.
|
int |
acquirePublicPort(java.lang.String publicIpId,
Location l,
int privatePort)
Deprecated.
|
PortMapping |
acquirePublicPortExplicit(java.lang.String publicIpId,
int port)
Deprecated.
|
void |
addAssociationListener(PortForwardManager.AssociationListener listener,
com.google.common.base.Predicate<? super PortForwardManager.AssociationMetadata> filter)
Registers a listener, which will be notified each time a new port mapping is associated.
|
void |
associate(java.lang.String publicIpId,
com.google.common.net.HostAndPort publicEndpoint,
int privatePort)
Records a mapping for publicIpId:privatePort to a public endpoint, such that it can
subsequently be looked up using
PortForwardManager.lookup(String, int). |
void |
associate(java.lang.String publicIpId,
com.google.common.net.HostAndPort publicEndpoint,
Location l,
int privatePort)
Records a location and private port against a public endpoint (ip and port),
to support
PortForwardManager.lookup(Location, int). |
void |
associate(java.lang.String publicIpId,
int publicPort,
Location l,
int privatePort)
Deprecated.
|
boolean |
forgetPortMapping(PortMapping m)
Deprecated.
|
boolean |
forgetPortMapping(java.lang.String publicIpId,
int publicPort)
Clears the given port mapping, returning true if there was a match.
|
boolean |
forgetPortMappings(Location l)
Clears the port mappings associated with the given location, returning true if there were any matches.
|
boolean |
forgetPortMappings(java.lang.String publicIpId)
Clears the port mappings associated with the given publicIpId, returning true if there were any matches.
|
boolean |
forgetPublicIpHostname(java.lang.String publicIpId)
Deprecated.
|
java.util.Collection<PortMapping> |
getLocationPublicIpIds(Location l)
returns the subset of port mappings associated with a given location
|
java.util.Map<java.lang.String,java.lang.Integer> |
getPortCounters() |
java.util.List<PortMapping> |
getPortMappings() |
PortMapping |
getPortMappingWithPrivateSide(Location l,
int privatePort)
Returns the mapping to a given private port, or null if none.
|
java.util.Collection<PortMapping> |
getPortMappingWithPublicIpId(java.lang.String publicIpId)
Returns the subset of port mappings associated with a given public IP ID.
|
PortMapping |
getPortMappingWithPublicSide(java.lang.String publicIpId,
int publicPort)
Returns the port mapping for a given publicIpId and public port.
|
com.google.common.net.HostAndPort |
getPublicHostAndPort(PortMapping m)
Returns the public host and port for use accessing the given mapping.
|
java.lang.String |
getPublicIpHostname(java.lang.String publicIpId)
Deprecated.
|
RebindSupport<LocationMemento> |
getRebindSupport()
Users are strongly discouraged from calling or overriding this method.
|
java.lang.String |
getScope() |
void |
init()
Called by framework (in new-style instances where spec was used) after configuring etc,
but before a reference to this instance is shared.
|
boolean |
isClient()
Returns true if this implementation is a client which is immutable/safe for serialization
i.e.
|
com.google.common.net.HostAndPort |
lookup(Location l,
int privatePort)
Returns the public ip hostname and public port for use contacting the given endpoint.
|
com.google.common.net.HostAndPort |
lookup(java.lang.String publicIpId,
int privatePort)
Returns the public endpoint (host and port) for use contacting the given endpoint.
|
void |
recordPublicIpHostname(java.lang.String publicIpId,
java.lang.String hostnameOrPublicIpAddress)
Deprecated.
|
void |
removeAssociationListener(PortForwardManager.AssociationListener listener) |
java.lang.String |
toVerboseString() |
addChild, addExtension, config, configure, containsLocation, equals, getAllConfig, getAllConfigBag, getChildren, getConfig, getConfig, getDisplayName, getExtension, getHostGeoInfo, getLocalConfigBag, getParent, getRawLocalConfigBag, hasConfig, hasExtension, hashCode, isManaged, onManagementStarted, onManagementStopped, removeChild, setConfig, setDisplayName, setHostGeoInfo, setManagementContext, setName, setParent, setParent, toMetadataRecord, toStringgetCatalogItemId, getId, getManagementContext, getTagSupport, rebind, setCatalogItemId, tagscontainsLocation, getAllConfig, getChildren, getConfig, getConfig, getDisplayName, getExtension, getId, getParent, hasConfig, hasExtension, setParentgetCatalogItemId, getTagSupport, tagsconfig, setConfiggetManagementContextsetCatalogItemIdpublic void init()
AbstractBrooklynObjectTo preserve backwards compatibility for if the instance is constructed directly, one can call the code below, but that means it will be called after references to this policy have been shared with other entities.
if (isLegacyConstruction()) {
init();
}
init in class AbstractBrooklynObjectpublic RebindSupport<LocationMemento> getRebindSupport()
LocationInternalgetRebindSupport in interface BrooklynObjectInternalgetRebindSupport in interface RebindablegetRebindSupport in interface LocationInternalgetRebindSupport in class AbstractLocationpublic int acquirePublicPort(java.lang.String publicIpId)
PortForwardManager
Often followed by PortForwardManager.associate(String, HostAndPort, int) or PortForwardManager.associate(String, HostAndPort, Location, int)
to enable PortForwardManager.lookup(String, int) or PortForwardManager.lookup(Location, int) respectively.
acquirePublicPort in interface PortForwardManagerpublic void associate(java.lang.String publicIpId,
com.google.common.net.HostAndPort publicEndpoint,
Location l,
int privatePort)
PortForwardManagerPortForwardManager.lookup(Location, int).
Superfluous if PortForwardManager.acquirePublicPort(String, Location, int) was used,
but strongly recommended if PortForwardManager.acquirePublicPortExplicit(String, int) was used
e.g. if the location is not known ahead of time.
associate in interface PortForwardManagerpublic void associate(java.lang.String publicIpId,
com.google.common.net.HostAndPort publicEndpoint,
int privatePort)
PortForwardManagerPortForwardManager.lookup(String, int).associate in interface PortForwardManagerpublic com.google.common.net.HostAndPort lookup(Location l, int privatePort)
PortForwardManagerWill return null if:
lookup in interface PortForwardManagerPortForwardManager.recordPublicIpHostname(String, String)public com.google.common.net.HostAndPort lookup(java.lang.String publicIpId,
int privatePort)
PortForwardManagerPortForwardManager.associate(String, HostAndPort, int), to register
the endpoint.
Will return null if there has not been a public endpoint associated with this pairing.lookup in interface PortForwardManagerpublic boolean forgetPortMapping(java.lang.String publicIpId,
int publicPort)
PortForwardManagerforgetPortMapping in interface PortForwardManagerpublic boolean forgetPortMappings(Location l)
PortForwardManagerforgetPortMappings in interface PortForwardManagerpublic boolean forgetPortMappings(java.lang.String publicIpId)
PortForwardManagerforgetPortMappings in interface PortForwardManagerpublic java.lang.String toVerboseString()
toVerboseString in interface PortForwardManagertoVerboseString in interface LocationtoVerboseString in class AbstractLocationpublic java.lang.String getScope()
getScope in interface PortForwardManagerpublic boolean isClient()
PortForwardManagerisClient in interface PortForwardManagerpublic void addAssociationListener(PortForwardManager.AssociationListener listener, com.google.common.base.Predicate<? super PortForwardManager.AssociationMetadata> filter)
PortForwardManagerPortForwardManager.associate(String, HostAndPort, int)
and PortForwardManager.associate(String, HostAndPort, Location, int).addAssociationListener in interface PortForwardManagerpublic void removeAssociationListener(PortForwardManager.AssociationListener listener)
removeAssociationListener in interface PortForwardManagerpublic java.util.List<PortMapping> getPortMappings()
public java.util.Map<java.lang.String,java.lang.Integer> getPortCounters()
@Deprecated public PortMapping acquirePublicPortExplicit(java.lang.String publicIpId, int port)
PortForwardManageracquirePublicPortExplicit in interface PortForwardManager@Deprecated public boolean forgetPortMapping(PortMapping m)
forgetPortMapping in interface PortForwardManager#forgetPortMapping(String, int)} and {@link #forgetPortMappings(Location)}@Deprecated
public void recordPublicIpHostname(java.lang.String publicIpId,
java.lang.String hostnameOrPublicIpAddress)
PortForwardManagerConceivably this may have to be access-location specific.
recordPublicIpHostname in interface PortForwardManager@Deprecated public java.lang.String getPublicIpHostname(java.lang.String publicIpId)
PortForwardManagergetPublicIpHostname in interface PortForwardManager@Deprecated public boolean forgetPublicIpHostname(java.lang.String publicIpId)
PortForwardManagerPortForwardManager.recordPublicIpHostname(String, String).forgetPublicIpHostname in interface PortForwardManager@Deprecated
public int acquirePublicPort(java.lang.String publicIpId,
Location l,
int privatePort)
PortForwardManagerIf already allocated, returns the previously allocated.
acquirePublicPort in interface PortForwardManager@Deprecated
public void associate(java.lang.String publicIpId,
int publicPort,
Location l,
int privatePort)
PortForwardManagerPortForwardManager.lookup(Location, int).
Superfluous if PortForwardManager.acquirePublicPort(String, Location, int) was used,
but strongly recommended if PortForwardManager.acquirePublicPortExplicit(String, int) was used
e.g. if the location is not known ahead of time.
associate in interface PortForwardManagerpublic com.google.common.net.HostAndPort getPublicHostAndPort(PortMapping m)
PortForwardManagerConceivably this may have to be access-location specific.
getPublicHostAndPort in interface PortForwardManagerpublic PortMapping getPortMappingWithPublicSide(java.lang.String publicIpId, int publicPort)
PortForwardManagergetPortMappingWithPublicSide in interface PortForwardManagerpublic java.util.Collection<PortMapping> getPortMappingWithPublicIpId(java.lang.String publicIpId)
PortForwardManagergetPortMappingWithPublicIpId in interface PortForwardManagerpublic java.util.Collection<PortMapping> getLocationPublicIpIds(Location l)
getLocationPublicIpIds in interface PortForwardManagerpublic PortMapping getPortMappingWithPrivateSide(Location l, int privatePort)
PortForwardManagergetPortMappingWithPrivateSide in interface PortForwardManager