DIRECTORY BasicTime, ComputeServer, PrincOps, Pup USING [Address], Rope, RPC; ComputeServerController: CEDAR DEFINITIONS = BEGIN FindService: PROCEDURE [service: Rope.ROPE, userName: RPC.ShortROPE] RETURNS [found: BOOL, instance: RPC.ShortROPE]; FindServiceWithQueueing: PROCEDURE [service: Rope.ROPE, userName: RPC.ShortROPE, version: RPC.ShortROPE, timeToWait: INT _ 3600, clientMachineName: RPC.ShortROPE, streamPupAddress: Pup.Address, needListener: BOOL] RETURNS [found: ATOM, instance: RPC.ShortROPE, serverPupAddress: Pup.Address, errMsg: Rope.ROPE]; NewStats: PROC [serverMachineName: RPC.ShortROPE, serverMachinePupAddress: RPC.ShortROPE, serverUP: BOOL, firstCall: BOOL, machineType: PrincOps.MachineType, mainMemory: CARDINAL, numberCPUs: CARDINAL, diskPartionSize: INT, freePagesOnDisk: INT, freeboard: INT, freeGFI: CARDINAL, freeMDS: CARDINAL, freeVM: CARDINAL, oldestLRUFileDate: BasicTime.GMT, CPULoad: REAL, nonBackgroundCPULoad: REAL, reclamationRate: REAL, freeProcesses: CARDINAL, userName: RPC.ShortROPE, currentRequests: LIST OF ComputeServer.Request, aveBackgroundLoad: REAL] RETURNS [terminateService, newPackage: BOOL, queueingCommands: LIST OF Rope.ROPE]; BestServerStats: PROC RETURNS[instance: RPC.ShortROPE, FOM: REAL] ; NoticeNewPackage: PROC [package: RPC.ShortROPE] RETURNS [error: BOOL, tryDifferentController: BOOL, msg: Rope.ROPE]; RemoveOldPackage: PROC [package: RPC.ShortROPE] RETURNS [error: BOOL, tryDifferentController: BOOL, msg: Rope.ROPE]; GetSomeInfo: PROC RETURNS [error: BOOL, tryDifferentController: BOOL, msg: Rope.ROPE, serverList: LIST OF Rope.ROPE, bestFOM: REAL]; CommandUnavailable: PROC [serverMachineName: RPC.ShortROPE, commandName: Rope.ROPE, version: RPC.ShortROPE]; ExtraCommandAvailable: PROC [serverMachineName: RPC.ShortROPE, commandName: Rope.ROPE, version: RPC.ShortROPE]; MightAcceptQueuedCommand: PROC [serverMachineAddress: RPC.ShortROPE, commandName: Rope.ROPE]; GenericToController: PROC [requestCode: ATOM, requestString: Rope.ROPE] RETURNS [resultCode: ATOM, resultString: Rope.ROPE]; -- generic call to allow for expansion without RPC interface recompilation END. RComputeServerController.mesa The controller interface for the Summoner. Provides for finding of services for clients, registration of statistics for servers, and administrative functions. Last Edited by: Bob Hagmann, May 9, 1986 7:47:00 am PDT Hal Murray, March 22, 1986 9:13:53 pm PST Copyright c 1984 by Xerox Corporation. All rights reserved. Ask the controller for a server to run the specified service. Find a likely server, but do not contact it to see if the command is acceptable. Find a likely server, but do contact it to see if the command is acceptable. Return values as though acquired through ComputeServer.AskForService. "timeToWait" is the number of seconds to wait for a server to become available. Tell the controller my statistics. Get back whether to stop service (terminateService), whether new packages exist, and the current list of commands to do queing (queueingCommands). Ask controller what are the best stats it knows about. See ComputeClient for defination of FOM. Get the controller to notice that a new package, or a new version of a package, is now available on the file server Remove a package. Get some information from the controller about the cluster state. A server has been given a command that, for whatever reason, it cannot execute. A Server has discovered a command that it is willing to run, but is not a standard one derivable from the files on the file server. Due to a change of state on the server, the named command might now be accepted. This is only a hint. Bob Hagmann May 6, 1985 8:08:25 am PDT added GenericToController; add userName parameters Κτ˜headšœ™IbodyšœŸ™ŸL™7Icode™)Jšœ Οmœ1™<code2šΟk ˜ Nšœ ˜ Nšœ˜Nšœ ˜ Nšœžœ ˜Nšœ˜Nšžœ˜——šœžœž œ˜,Nšž˜˜Nšœ=™=—šΟn œž œžœ žœ žœ žœ žœ ˜tN™P—šŸœž œžœ žœžœžœžœ9žœžœ žœ žœ8žœ˜·Nšœδ™δ—˜NšœΆ™Ά—š8Ÿœžœžœ%žœžœ žœ1žœžœžœžœ žœ žœ žœ žœžœ žœžœžœž œ žœžœžœ+žœžœ žœžœžœžœ˜οN˜Nšœ`™`—Nš Ÿœžœžœ žœ žœžœ˜D˜N™s—šŸœžœ žœ žœ žœžœ žœ˜tN™N™—šŸœžœ žœ žœ žœžœ žœ˜tN™N™A—NšŸ œžœžœ žœžœ žœžœžœžœ žœ˜…˜NšžœN™O—Nš Ÿœžœžœžœ žœ ˜l˜Nšžœ‚™ƒ—š Ÿœžœžœžœ žœ ˜oN™N™f—NšŸœžœžœžœ˜]NšΠbnœžœžœžœžœžœžœΟcJ˜ΘNšžœ˜—™&MšΟrœ,™2Mš’™—M™—…—dͺ