This Page

backend.controller — SEER network controller core

class backend.controller.CommWrapper(name, multicastaddr, async, controller)

Wrapper for some basic experiment side comm functionality like adding/checking serial and some basic headers for all messages that are going to leave this node. This is what is passed to all of the modules for sending messages

checkSerial(sock, msg)

Called to see if the experiment node is up to date or not

nodeDown(sock)

Callback to tell us that a socket closed, remove from active list

retireSerials()

Clear out old records that are over 2 minutes old, at that point, its not worth retrying

send(msg)

Send message on the control network as is

sendToExperiment(msg)

Send to all experiment nodes in one multicast message

sendToNode(msg, name)

Send to node ‘name’, matching name with shell wildcard where applicable

sendToNodeThatHas(msg, label)

Send to the node that is ‘label’ or is controlling an interface ‘label’

sendToNodes(msg, nodelist)

Send to nodes matching name with shell wildcard where applicable

sendToSinks(msg)

Send to all nodes on the control network with the sink attribute

class backend.controller.Controller(multicastaddr, name, cafile, nodefile, required=None)

Extension of a basic network router that adds communication to a set of experiment nodes and use of available aggregator modules

createInfoMessage()

Decorate parent implemenation so we can add node and ip responsibility info

doUpdates()

Periodic function to send data updates to any connected sinks

handleCOMMAND(sock, msg)

Apply a serial number and send to experiment nodes

handleEXECUTE(sock, msg)

Save the file to disk and then run it as its own python process

handleGET(sock, msg)

Generic handle pass, other methods can point to

handleGeneric(sock, msg)

Generic handle pass, other methods can point to

handlePUT(sock, msg)

Generic handle pass, other methods can point to

handleREPORT(sock, msg)

Generic handle pass, other methods can point to

handleSET(sock, msg)

Generic handle pass, other methods can point to

handleSTREAM(sock, msg)

Generic handle pass, other methods can point to

pingExperiment()

as a controller, we ‘ping’ our experiment nodes so they can find us if no commands are being sent

subloop()

Extra code that runs inside the main loop of the network router

backend.controller.returnNone(*args)