Example #1
0
def mpls_remove_fns(desc):

    fns_id= libnetvirt.getUuidFromFNS(desc) 
    print "remove id " + str(fns_id) + "num of endpoints: " + str(libnetvirt.getNepFromFNS(desc))
    
    #libnetvirt.printFNS(desc)
    
    D = Database ('libnetvirt.sqlite')
    for i in range(0,libnetvirt.getNepFromFNS(desc)):

        ep = libnetvirt.getEndpoint(desc,i)
        r_id = libnetvirt.getSwIdFromEp(ep)
        
        # Get router name
        #r_name = str(libnetvirt.getSwIdFromEp(ep))
        r_name = D.getRouterName(r_id)
        # Get the router user name
        r_uname = D.getRouterUserName(r_id)             
        vlan =  libnetvirt.getVlanFromEp(ep)
        pe_if = libnetvirt.getPortFromEp
        vrf = 'vrf' +  str(fns_id)
        
        #Calling the scripts for configuration. Uncomment when the network is available
        NM = NetworkManager(r_name, r_uname)
        if NM != None:
            NM.stop_configuration(vlan, vrf,pe_if)
            NM.close_ssh()
        else:
            print "Error in applying configuration"
        


    return 0
Example #2
0
    def start(self):

        networkManager = NetworkManager()
        networkManager.start()

        zoneManager = ZoneManager()
        zoneManager.start()

        serialDataManager = SerialDataManager()
        serialDataManager.start()
Example #3
0
def mpls_create_fns(desc):
    print "create fns"
    #libnetvirt.printFNS(desc)
    fns_id= libnetvirt.getUuidFromFNS(desc)
    D = Database ('libnetvirt.sqlite')
    for i in range(0,libnetvirt.getNepFromFNS(desc)):

        ep = libnetvirt.getEndpoint(desc,i)
        r_id = libnetvirt.getSwIdFromEp(ep)

        # Get router name
        #r_name = str(libnetvirt.getSwIdFromEp(ep))
        r_name = D.getRouterName(r_id)

        # Get the router user name
        r_uname = D.getRouterUserName(r_id)

        # Get the router interface
        r_interface = D.getRouterInterface(r_id)+str(libnetvirt.getPortFromEp(ep))

        #r_uname = "root"
        #r_interface = "eth3"
        r_d_net = '192.66.23.0'
        
        pe_address = libnetvirt.getAddressFromEp(ep)
        #ce_address = libnetvirt.getAddressCEFromEp(ep)
        
        #we need net address for CE
        tmp = commands.getoutput('ipcalc -n ' + str(pe_address))
        tmp = tmp.split()
        ce_net = tmp[16]
        
        vlan =  libnetvirt.getVlanFromEp(ep)
        vrf = 'vrf' +  str(fns_id)
        
        #get address from global configuration database
        r_d =  r_d_net + ':' + str(fns_id)
        
        #call script for PE configuration
        #Calling the scripts for configuration. Uncomment when the network is available
        NM = NetworkManager(r_name, r_uname)
        if NM != None:
            NM.start_configuration(r_interface, pe_address, ce_net, r_d, vlan, vrf)
            NM.close_ssh()
        else:
            print "Error in applying configuration"


    return 0
class ActiveSyncEngine:
    def __init__(self, passed_config):
        self.state = SYNC_STATE.STOP
        self.config = passed_config
        self.network = NetworkManager(passed_config)

    def start(self):
        thread.start_new_thread(self.start_sync_engine, ())

    def stop_sync_engine(self, error_message=None):
        logging.info("Sync stopped: %s" % error_message)
        self.state = SYNC_STATE.STOP

    # threaded sync engine
    def start_sync_engine(self):
        logging.info("Beginning sync")
        self.state = SYNC_STATE.START

        # Question 1, do I know my server with certainty (updated in the last 10 minutes for now, 24 hours eventually)
        if (self.network.is_options_required()):
            logging.debug("NEED to send OPTIONS")
            (status, message) = self.network.perform_options(self.handle_http_error)
            if (status != STATE_STATUS.SUCCESS):
                self.stop_sync_engine(message)
                logging.fatal("Fatal error with options (%s - %s)" % (status, message))

        else:
            logging.debug("DO NOT NEED to send OPTIONS")

        # Question 2, do I have a policy key?
        if (not self.network.is_policy_key_valid()):
            logging.debug("NEED to send PROVISIONING")
            (status, message) = self.network.perform_provisioning()
            if (status != STATE_STATUS.SUCCESS):
                self.stop_sync_engine()
                return
        else:
            logging.debug("DO NOT NEED to send OPTIONS")

        # Startup always includes a FolderSync
        (status, message) = self.network.perform_foldersync()
        if (status != STATE_STATUS.SUCCESS):
                self.stop_sync_engine()
                return

        # Startup always includes one or more Syncs

    # Add all HTTP error codes here and some sort of remediation
    def handle_http_error(self, status_code, message):
        self.network.clear_http_session()
        logging.fatal("Fatal error, %d is not a good code! (%s)" % (status_code, message))
        return (status_code, "EPIC FAIL")
def menu():
    options = {1:"network inventory info.",2:" all devices info.",3:"device info.",4:"device description.(!!!!)"}
    print "------------------------------"
    print "MENU"
    print "------------------------------"
    for key in options.keys():
        print  str(key) + ")Print " + options[key]
    choise = raw_input("Enter: ")

    return int(choise)

if __name__ == "__main__":
    #print "Starting network manager..."
    try:
        print "Starting network manager..."
        nm = NetworkManager('192.168.111.138')
        print "Network manager started."
        
        while(1):
            option = menu()
            if option == 1:
                nm.printInventory()
            elif option == 2:
                nm.printDeviceInfo()
            elif option == 3:
                info_type = raw_input("Enter information type: ")
                device_id = raw_input("Enter device_id: ")
                nm.printDataForDevice(info_type.rstrip(),device_id.rstrip())
            else:
                exit()
    except Exception,exception:
Example #6
0
File: snm.py Project: jax0701/snm
def main(argv=None):
    '''Command line options.'''

    program_name = os.path.basename(sys.argv[0])
    program_version = "v0.2"
    program_build_date = "%s" % __updated__

    program_version_string = '%%prog %s (%s)' % (program_version, program_build_date)
    #program_usage = '''usage: spam two eggs''' # optional - will be autogenerated by optparse
    program_longdesc = '''''' # optional - give further explanation about what the program does
    program_license = "Copyright 2014 user_name (organization_name)                                            \
                Licensed under the Apache License 2.0\nhttp://www.apache.org/licenses/LICENSE-2.0"
    
    if argv is None:
        argv = sys.argv[1:]
    try:
        # setup option parser
        usage= "\t-e --create-ovs=IPADDRESS -t=TOPOLOGYNAME (create OVS network)\n\t-p tcl/r10.tcl (parse r10.tcl file and save database)\n\t-s r20         (show the graph of r20 topology)"
        
        parser = OptionParser(version=program_version_string, epilog=program_longdesc, description=program_license,usage=usage)
        parser.add_option("-i", "--in", dest="infile", help="set input path [default: %default]", metavar="FILE")
        parser.add_option("-o", "--out", dest="outfile", help="set output path [default: %default]", metavar="FILE")
        parser.add_option("-l", dest="list", help="list elements of database [all, host, topology, link, node, sflow]");
        parser.add_option("-s", "--show", dest="show", help="show a network graph of topology",metavar="topology");
        parser.add_option("-c","--clear", dest="clear", help="clear entries on the inputted argument [all, host, topology, link, node, sflow]",metavar="element");
        
        parser.add_option("-p", dest="parse", help="parse Brite topology file", metavar="FILE")
        
        
        
        parser.add_option("-f", "--flow", dest="flow", help="get a routing table of sdn controller ",metavar="IP-address of SDN controller");
        #parser.add_option("-a", "--alarm", action="store_true",dest="alarm",default=False, help="get the alarm number from IDS ");
        
        eostgroup = OptionGroup(parser, "Experiment options")
           
        eostgroup.add_option("-e", action="store_true", dest="experimental",default=False, help="create virtual SDN network")
        
        eostgroup.add_option("-j", dest="sampling", help="set sampling configuration json file", metavar="FILE")
        eostgroup.add_option("-t", "--topology", dest="topology", help="set topology ", metavar="NAME")
        eostgroup.add_option("--create-ovs", dest="create_ovs_target", help="create OVS network at the target host",metavar="TARGET-IP-ADDRESS")
        eostgroup.add_option("--clear-ovs", dest="clear_ovs_target", help="clear OVS network at the target host",metavar="TARGET-IP-ADDRESS")
        eostgroup.add_option("--create-sflow", dest="create_sflow_target", help="create sflow agnets at the target host",metavar="TARGET-IP-ADDRESS")
        eostgroup.add_option("--clear-sflow", dest="clear_sflow_target", help="clear sflow agnets at the target host",metavar="TARGET-IP-ADDRESS")
        parser.add_option_group(eostgroup)
        
        
        hostgroup = OptionGroup(parser, "Host registration options")
        
        hostgroup.add_option("-r", "--register-host", action="store_true", dest="register_host",default=False, help="register host")
    
        hostgroup.add_option("--host-ip", dest="hostip", help="set machine ip address", metavar="IP-ADDRESS")
        hostgroup.add_option("--user-id", dest="userid", help="set user id")
        hostgroup.add_option("--password", dest="password", help="set user password")
        hostgroup.add_option("--controller-ip", dest="controllerip", help="set SDN controller ip")
        hostgroup.add_option("--inter-ip", dest="interip", help="set the internal ip of the host")
        
        
        parser.add_option_group(hostgroup)
                # set defaults
        parser.set_defaults(outfile="./out.txt", infile="./in.txt",role="ovs-host",controllerip="",interip="")
   
   
        dbmanager   =   DBManager(debug=DEBUG)
        hostmanager =   HostManager(dbmanager)
        networkmanager = NetworkManager(dbmanager,hostmanager,DEBUG)
                   
        # process options
        (opts, args) = parser.parse_args(argv)
        
        if opts.list :
            if opts.list == "all" :
                dbmanager.list_DB_element("host")
                dbmanager.list_DB_element("topology")
                dbmanager.list_DB_element("link")
                dbmanager.list_DB_element("node")
                dbmanager.list_DB_element("sflow")
     
            
            elif opts.list == "host":
                dbmanager.list_DB_element("host")
                
            
            elif opts.list == "topology":
                dbmanager.list_DB_element("topology")
                
            elif opts.list == "link":
                dbmanager.list_DB_element("link")
                
            elif opts.list == "node":
                dbmanager.list_DB_element("node")
                
            elif opts.list == "sflow":
                dbmanager.list_DB_element("sflow")
     
        if opts.parse :
            topologyparser = Parser(dbmanager,opts.parse,DEBUG)
            topologyparser.parse_topology()
               
        if opts.flow:
            networkmanager.get_route_table(opts.flow)

        if opts.show:
            networkmanager.draw_network(opts.show)
    
        if opts.experimental:
            if opts.create_ovs_target:
                print("create ovs")
                networkmanager.generate_OVS_network(opts.topology, opts.create_ovs_target)
            elif opts.clear_ovs_target:
                print("clear ovs")
                print(opts.clear_ovs_target)
                networkmanager.remove_OVS_network(opts.clear_ovs_target)
            elif opts.create_sflow_target:
                print("create sflow agents")
                node_data = None
                if (opts.sampling != None):
                    with open(opts.sampling) as json_file:
                        input_data = json.load(json_file)
                        node_data = input_data["nodes"]
                networkmanager.create_sflow_agnets(opts.create_sflow_target,node_data)
                print(opts.create_sflow_target)
                
            elif opts.clear_sflow_target:
                print("clear sflow agents")
                networkmanager.clear_sflow_agnets(opts.clear_sflow_target)
                print(opts.clear_sflow_target)  
        
        if opts.clear :
            if opts.clear == "all":
                hostmanager.clear_hosts()
                dbmanager.execute_sql_command("drop table topology")
                dbmanager.execute_sql_command("drop table link")
                dbmanager.execute_sql_command("drop table node")
                dbmanager.execute_sql_command("drop table sflow")
            elif opts.clear == "host":
                hostmanager.clear_hosts()
            elif opts.clear == "topology":
                dbmanager.execute_sql_command("drop table topology")
            elif opts.clear == "link":
                dbmanager.execute_sql_command("drop table link")
            elif opts.clear == "node":
                dbmanager.execute_sql_command("drop table node")
            elif opts.clear == "sflow":
                dbmanager.execute_sql_command("drop table sflow")
            
        if opts.register_host:
            hostmanager.register_host(opts.hostip,opts.controllerip,opts.userid,opts.password,"None",opts.interip)
 
        # MAIN BODY #
        if len(argv) == 0:
           parser.print_help()
           
        
            
    except Exception, e:
        indent = len(program_name) * " "
        sys.stderr.write(program_name + ": " + repr(e) + "\n")
        sys.stderr.write(indent + "  for help use --help")
        return 2
 def __init__(self, passed_config):
     self.state = SYNC_STATE.STOP
     self.config = passed_config
     self.network = NetworkManager(passed_config)
 def __init__(self, passed_config):
     self.state = SYNC_STATE.STOP
     self.config = passed_config
     self.network = NetworkManager(passed_config)
Example #9
0
 def __init__(self):
     self.clients = {}
     self.network_manager = NetworkManager(self.clients)
     print("Init done, server started")