public class PortForwardManagerImpl extends AbstractLocation implements PortForwardManager
AbstractLocation.BasicSubscriptionSupportPortForwardManager.AssociationListener, PortForwardManager.AssociationMetadataBrooklynObject.RelationSupport<T extends BrooklynObject>, BrooklynObject.SubscriptionSupport, BrooklynObject.TagSupportConfigurable.ConfigurationSupportBrooklynObjectInternal.ConfigurationSupportInternal, BrooklynObjectInternal.RelationSupportInternal<T extends BrooklynObject>, BrooklynObjectInternal.SubscriptionSupportInternalPARENT_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.
|
void |
addAssociationListener(PortForwardManager.AssociationListener listener,
<any> filter)
Registers a listener, which will be notified each time a new port mapping is associated.
|
void |
associate(java.lang.String publicIpId,
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,
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). |
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.
|
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.
|
HostAndPort |
getPublicHostAndPort(PortMapping m)
Returns the public host and port for use accessing the given mapping.
|
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.
|
HostAndPort |
lookup(Location l,
int privatePort)
Returns the public ip hostname and public port for use contacting the given endpoint.
|
HostAndPort |
lookup(java.lang.String publicIpId,
int privatePort)
Returns the public endpoint (host and port) for use contacting the given endpoint.
|
void |
removeAssociationListener(PortForwardManager.AssociationListener listener) |
java.lang.String |
toVerboseString() |
addChild, addExtension, config, configure, containsLocation, equals, getChildren, getConfig, getConfig, getDisplayName, getExtension, getHostGeoInfo, getLocationTypeInternal, getParent, hasExtension, hashCode, isManaged, onManagementStarted, onManagementStopped, rebind, relations, removeChild, setDisplayName, setHostGeoInfo, setManagementContext, setParent, setParent, subscriptions, toMetadataRecord, toStringaddSearchPath, getCatalogItemId, getCatalogItemIdSearchPath, getId, getManagementContext, setCatalogItemId, setCatalogItemIdAndSearchPath, stackCatalogItemId, tagscontainsLocation, getChildren, getConfig, getDisplayName, getExtension, getId, getParent, hasExtension, relations, setParentgetCatalogItemId, getCatalogItemIdSearchPath, subscriptions, tagsconfig, getConfiggetManagementContextaddSearchPath, setCatalogItemId, setCatalogItemIdAndSearchPath, stackCatalogItemIdpublic 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 AbstractLocationpublic RebindSupport<LocationMemento> getRebindSupport()
LocationInternalgetRebindSupport in interface RebindablegetRebindSupport in interface LocationInternalgetRebindSupport in interface BrooklynObjectInternalgetRebindSupport 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,
HostAndPort publicEndpoint,
Location l,
int privatePort)
PortForwardManagerPortForwardManager.lookup(Location, int).
Superfluous if #acquirePublicPort(String, Location, int) was used,
but strongly recommended if #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,
HostAndPort publicEndpoint,
int privatePort)
PortForwardManagerPortForwardManager.lookup(String, int).associate in interface PortForwardManagerpublic HostAndPort lookup(Location l, int privatePort)
PortForwardManagerWill return null if:
lookup in interface PortForwardManager#recordPublicIpHostname(String, String)public 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 LocationtoVerboseString in interface PortForwardManagertoVerboseString in class AbstractLocationpublic java.lang.String getScope()
getScope in interface PortForwardManagerpublic void addAssociationListener(PortForwardManager.AssociationListener listener, <any> 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 boolean forgetPortMapping(PortMapping m)
forgetPortMapping in interface PortForwardManager#forgetPortMapping(String, int)} and {@link #forgetPortMappings(Location)}public 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