Example #1
0
File: dbutils.py Project: F3DS/f3ds
def sqlite_to_mysql():
    from socialscan.db import setupDB
    from socialscan.config import loadDefaultConfig
    from socialscan.model import Scan, ScanDigestFile, SocialRelationship
    from socialscan.model import  QueuedRequest, SentScanRequest, Peer

    config = loadDefaultConfig()
    session_local, engine_local = setupDB(config.database.url)
    coredev_url = '%s://%s:%s@%s:%s/%s' % ('mysql+pymysql', 'socialscanexp', 
                                        't@uc3u6e*h', '10.214.131.48', '3306',
                                        'socialscanexp')
    config.database.coredev_url = coredev_url
    session_remote, engine_remote = setupDB(config.database.coredev_url)
    for table in [Scan(), ScanDigestFile(), SocialRelationship(), QueuedRequest(),
                  SentScanRequest(), Peer()]:
        merged_table = session_local.merge(table)
        session_remote.add_all(session_local.query(merged_table).all())
    session_remote.commit()
Example #2
0
File: main.py Project: F3DS/f3ds
def main():
    """
    Start the system and twisted reactor.
    """
    from twisted.internet import reactor

    log.stdoutlog = True
    logger = log.Logger("Main")

    logger.log("Loading configuration")
    config = loadDefaultConfig()
    logger.log("Setting up DB")
    session, engine = setupDB(config.database.url)

    owner = Peer.getByName(session, config.general.localpeer)
    config.owner = owner

    # start the digest manager
    logger.log("Start digest manager")
    digestmanager = DigestManager(config, session)
    digestmanager._initJobs()

    # start the scanlog manager
    logger.log("Start scan log manager")
    scanlogmanager = ScanLogManager(config, session)
    scanlogmanager._initJobs()

    # construct the sharing system that other peers can download from and talk to
    logger.log("Initialize sharing system")
    root = resource.Resource()
    root.putChild('RPC2', SocialScanRPCCommands(config, session))

    # add the local static content under shared/ that other peers can download digests and such from
    sharedir = os.path.realpath("data/shared/")
    #root.putChild('shared', File(sharedir))
    if not os.path.exists(sharedir):
        os.makedirs(sharedir)
    dn = os.path.dirname
    sourcedir = dn(dn(sharedir))
    shutil.copy2(os.path.join(sourcedir, 'url_malicious.html'),
                 os.path.join(sourcedir, 'data', 'malicious.html'))
    #root.putChild('malicious', File("url_malicious.html"))

    logger.log("Initializing TCP listening")
    reactor.listenTCP(port=int(config.sharing.rpcport), interface=config.sharing.bindhost,
                        factory=Site(root))

    endpoint = TCP4ServerEndpoint(reactor, int(config.scanning._core_port), interface="127.0.0.1")
    endpoint.listen(SocialScanCore(config, session, digestmanager, scanlogmanager))

    logger.log("Running reactor")
    reactor.run()
Example #3
0
    if ourname:
        print "assigned name %r to local peer" % ourname
        parser = ConfigParser.ConfigParser()
        f = os.path.join(os.path.dirname(__file__), "socialscan.config")
        parser.readfp(open(f, "r"))
        parser.set("general", "localpeer", ourname)
        try:
            parser.add_section("sharing")
        except ConfigParser.DuplicateSectionError:
            pass
        parser.set("sharing", "bindhost", ouraddress)
        parser.set("sharing", "port", config.sharing.port)
        parser.set("sharing", "rpcport", config.sharing.rpcport)
        parser.write(open(f, "w"))



if __name__ == "__main__":
    command = sys.argv[1]
    config = loadDefaultConfig()
    session, engine = db.setupDB(config.database.url)
    if command == "makepeers":
        makepeers()
    elif command == "db":
        #owner = Peer.getByName(session, config.general.localpeer)
        #config.owner = owner
        import code
        code.interact(local=globals())
    else:
        print __doc__