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()
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()
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__