Package org.apache.zookeeper.test.system
Class InstanceManager
java.lang.Object
org.apache.zookeeper.test.system.InstanceManager
- All Implemented Interfaces:
AsyncCallback
,AsyncCallback.ChildrenCallback
,Watcher
This class doles out assignments to InstanceContainers that are registered to
a ZooKeeper znode. The znode will have four child nodes:
* ready: this znode indicates that the InstanceManager is running
* available: the children of this znode are ephemeral nodes representing
running InstanceContainers
* assignments: there will be a child under this znode for each available
InstanceContainer. those znodes will have a child for each
assigned instance
* reports: there will be a child under this znode for each instance that is
running. it will have the report string from the instance.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.zookeeper.AsyncCallback
AsyncCallback.ACLCallback, AsyncCallback.AllChildrenNumberCallback, AsyncCallback.Children2Callback, AsyncCallback.ChildrenCallback, AsyncCallback.Create2Callback, AsyncCallback.DataCallback, AsyncCallback.EphemeralsCallback, AsyncCallback.MultiCallback, AsyncCallback.StatCallback, AsyncCallback.StringCallback, AsyncCallback.VoidCallback
Nested classes/interfaces inherited from interface org.apache.zookeeper.Watcher
Watcher.Event, Watcher.WatcherType
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionassignInstance
(String name, Class<? extends Instance> clazz, String params, int weight) void
close()
void
process
(WatchedEvent event) void
processResult
(int rc, String path, Object ctx, List<String> children) Process the result of the asynchronous call.void
reconfigureInstance
(String name, String params) void
removeInstance
(String name) void
resetStatus
(String name)
-
Constructor Details
-
InstanceManager
- Throws:
KeeperException
InterruptedException
-
-
Method Details
-
processResult
Description copied from interface:AsyncCallback.ChildrenCallback
Process the result of the asynchronous call.On success, rc is
KeeperException.Code.OK
.On failure, rc is set to the corresponding failure code in
KeeperException
.KeeperException.Code.NONODE
- The node on given path doesn't exist for some API calls.
- Specified by:
processResult
in interfaceAsyncCallback.ChildrenCallback
- Parameters:
rc
- The return code or the result of the call.path
- The path that we passed to asynchronous calls.ctx
- Whatever context object that we passed to asynchronous calls.children
- An unordered array of children of the node on given path.- See Also:
-
process
-
assignInstance
public String assignInstance(String name, Class<? extends Instance> clazz, String params, int weight) throws NoAvailableContainers, DuplicateNameException, InterruptedException, KeeperException -
reconfigureInstance
public void reconfigureInstance(String name, String params) throws NoAssignmentException, InterruptedException, KeeperException -
removeInstance
- Throws:
InterruptedException
KeeperException
-
resetStatus
- Throws:
InterruptedException
KeeperException
-
getStatus
- Throws:
KeeperException
InterruptedException
-
close
- Throws:
InterruptedException
-