# 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")
Ejemplo n.º 2
0
    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)