# A distributed example where CORE API messaging is used to create a session # distributed across the local server and one slave server. The slave server # must be specified using the '-s <ip address>' parameter, and needs to be # running the daemon with listenaddr=0.0.0.0 in the core.conf file. # import sys, datetime, optparse, time from core import pycore from core.misc import ipaddr from core.constants import * from core.api import coreapi # declare classes for use with Broker coreapi.add_node_class("CORE_NODE_DEF", coreapi.CORE_NODE_DEF, pycore.nodes.CoreNode) coreapi.add_node_class("CORE_NODE_SWITCH", coreapi.CORE_NODE_SWITCH, pycore.nodes.SwitchNode) # node list (count from 1) n = [None] def main(): usagestr = "usage: %prog [-h] [options] [args]" parser = optparse.OptionParser(usage = usagestr) parser.set_defaults(numnodes = 5, slave = None) parser.add_option("-n", "--numnodes", dest = "numnodes", type = int, help = "number of nodes") parser.add_option("-s", "--slave-server", dest = "slave", type = str, help = "slave server IP address")
def __init__(self, persistent = False): self.session = pycore.Session(persistent = persistent) self.session.verbose = False self.session.broker.verbose = False # TODO: mv to config-file self.session.cfg['clientlogfile'] = '/var/log/core-client.log' self.server = None self.port = None self.localport = None self.socket = None self.set_message_handler() self.requested_session = None self.requested_session_connected = False # declare classes for use with Broker coreapi.add_node_class("CORE_NODE_DEF", coreapi.CORE_NODE_DEF, pycore.nodes.CoreNode) coreapi.add_node_class("CORE_NODE_PHYS", coreapi.CORE_NODE_PHYS, pycore.pnodes.PhysicalNode) try: coreapi.add_node_class("CORE_NODE_XEN", coreapi.CORE_NODE_XEN, pycore.xen.XenNode) except Exception: pass coreapi.add_node_class("CORE_NODE_TBD", coreapi.CORE_NODE_TBD, None) coreapi.add_node_class("CORE_NODE_SWITCH", coreapi.CORE_NODE_SWITCH, pycore.nodes.SwitchNode) coreapi.add_node_class("CORE_NODE_HUB", coreapi.CORE_NODE_HUB, pycore.nodes.HubNode) coreapi.add_node_class("CORE_NODE_WLAN", coreapi.CORE_NODE_WLAN, pycore.nodes.WlanNode) coreapi.add_node_class("CORE_NODE_RJ45", coreapi.CORE_NODE_RJ45, pycore.nodes.RJ45Node) coreapi.add_node_class("CORE_NODE_TUNNEL", coreapi.CORE_NODE_TUNNEL, pycore.nodes.TunnelNode) coreapi.add_node_class("CORE_NODE_EMANE", coreapi.CORE_NODE_EMANE, pycore.nodes.EmaneNode)