public class Ring extends _ClusterNodeDisp implements Redirector.Context
BlitzConfiguration
objects which manages lookups
of sessions and other resources from all the blitzes which take part in the
cluster. Membership in the Ring
is based on a single token --
"omero.instance" -- retrieved from the current context, or if missing, a
calculated value which will prevent this instance from taking part in
clustering.
The Ring
also listens forModifier and Type | Field and Description |
---|---|
ome.system.Principal |
principal |
java.lang.String |
uuid
UUID for this cluster node.
|
__ids, serialVersionUID
ice_staticId
Constructor and Description |
---|
Ring(java.lang.String uuid,
ome.services.util.Executor executor) |
Ring(java.lang.String uuid,
ome.services.util.Executor executor,
Redirector redirector,
ome.services.scripts.ScriptRepoHelper scriptRepoHelper,
ome.security.NodeProvider nodeProvider) |
Modifier and Type | Method and Description |
---|---|
void |
assertNodes(java.util.Set<java.lang.String> nodeUuids) |
java.util.Set<java.lang.String> |
checkCluster()
Method called during initialization to get all the active uuids within
the cluster, and remove any dead nodes.
|
boolean |
checkPassword(java.lang.String userId)
Currently only returns false since if the regular password check
performed by
SessionManager cannot find the
session, then the cluster has no extra information. |
void |
destroy() |
void |
down(java.lang.String downUuid,
Ice.Current __current)
Called when any node goes down.
|
Ice.Communicator |
getCommunicator()
Active communicator for use by the
Redirector instance. |
java.lang.String |
getDirectProxy()
Returns the proxy information for the local
SessionManager . |
java.util.Set<java.lang.String> |
getManagerList(boolean onlyActive)
Return all known managers in the current cluster context, possibly
filtering out the inactive ones.
|
java.lang.String |
getNodeUuid(Ice.Current __current)
Each node acquires the uuids of all other active nodes on start
up.
|
Glacier2.SessionPrx |
getProxyOrNull(java.lang.String userId,
Glacier2.SessionControlPrx control,
Ice.Current current)
Delegates to the
redirector strategy configured for this
instance. |
void |
init(Ice.ObjectAdapter adapter,
java.lang.String directProxy)
Typically called from within
BlitzConfiguration after the
communicator and adapter have been properly setup. |
java.util.Set<java.lang.String> |
knownManagers() |
ome.system.Principal |
principal()
Principal instance which can be used for internal calls the
Executor. |
protected void |
purgeNode(java.lang.String manager) |
void |
setRegistry(Registry registry)
Sets the
Registry for this instance. |
java.lang.String |
uuid()
The UUID for the local node which will be used as the redirect lookup
string for this
Redirector.Context . |
___down, ___getNodeUuid, __dispatch, __readImpl, __writeImpl, down, getNodeUuid, ice_copyStateFrom, ice_id, ice_id, ice_ids, ice_ids, ice_isA, ice_isA, ice_staticId
___ice_id, ___ice_ids, ___ice_isA, ___ice_ping, __checkMode, __read, __read, __readImpl, __write, __write, __writeImpl, clone, ice_dispatch, ice_dispatch, ice_operationAttributes, ice_ping, ice_ping, ice_postUnmarshal, ice_preMarshal
public final java.lang.String uuid
public final ome.system.Principal principal
public Ring(java.lang.String uuid, ome.services.util.Executor executor)
public Ring(java.lang.String uuid, ome.services.util.Executor executor, Redirector redirector, ome.services.scripts.ScriptRepoHelper scriptRepoHelper, ome.security.NodeProvider nodeProvider)
public void setRegistry(Registry registry)
Registry
for this instance. This is currently done in
BlitzConfiguration
public java.lang.String uuid()
Redirector.Context
Redirector.Context
.uuid
in interface Redirector.Context
public ome.system.Principal principal()
Redirector.Context
Principal
instance which can be used for internal calls the
Executor.principal
in interface Redirector.Context
public java.util.Set<java.lang.String> getManagerList(boolean onlyActive)
Redirector.Context
getManagerList
in interface Redirector.Context
public java.lang.String getDirectProxy()
SessionManager
.getDirectProxy
in interface Redirector.Context
public Ice.Communicator getCommunicator()
Redirector.Context
Redirector
instance.getCommunicator
in interface Redirector.Context
public void init(Ice.ObjectAdapter adapter, java.lang.String directProxy)
BlitzConfiguration
after the
communicator and adapter have been properly setup.public java.util.Set<java.lang.String> checkCluster()
public void destroy()
public java.lang.String getNodeUuid(Ice.Current __current)
_ClusterNodeOperations
getNodeUuid
in interface _ClusterNodeOperations
__current
- The Current object for the invocation.public void down(java.lang.String downUuid, Ice.Current __current)
down
in interface _ClusterNodeOperations
__current
- The Current object for the invocation.public boolean checkPassword(java.lang.String userId)
SessionManager
cannot find the
session, then the cluster has no extra information.public Glacier2.SessionPrx getProxyOrNull(java.lang.String userId, Glacier2.SessionControlPrx control, Ice.Current current) throws Glacier2.CannotCreateSessionException
redirector
strategy configured for this
instance.Glacier2.CannotCreateSessionException
public java.util.Set<java.lang.String> knownManagers()
public void assertNodes(java.util.Set<java.lang.String> nodeUuids)
protected void purgeNode(java.lang.String manager)