def setup(user): os.environ['SSHPROXY_WIZARD'] = 'running' import config configdir = config.inipath if not os.path.isdir(configdir): print 'Creating config dir %s' % configdir os.makedirs(os.path.join(configdir, 'log')) config.get_config = config.Config(config.inifile) cfg = config.get_config('sshproxy') Wizard() print 'Setup done.' from backend import Backend from plugins import init_plugins init_plugins() clients = Backend().list_clients() print options = ' -c %s' % configdir if user: options += ' -u ' + user if not len(clients): print 'You can now add an administrator:' print ' sshproxy-setup%s --add-admin admin' % options print print 'To start sshproxy daemon, run the following command:' print ' ' + os.environ.get('INITD_STARTUP', 'sshproxyd%s' % (options))
def setup(user): os.environ["SSHPROXY_WIZARD"] = "running" import config configdir = config.inipath if not os.path.isdir(configdir): print "Creating config dir %s" % configdir os.makedirs(os.path.join(configdir, "log")) config.get_config = config.Config(config.inifile) cfg = config.get_config("sshproxy") Wizard() print "Setup done." from backend import Backend from plugins import init_plugins init_plugins() clients = Backend().list_clients() print options = " -c %s" % configdir if user: options += " -u " + user if not len(clients): print "You can now add an administrator:" print " sshproxy-setup%s --add-admin admin" % options print print "To start sshproxy daemon, run the following command:" print " " + os.environ.get("INITD_STARTUP", "sshproxyd%s" % (options))
def init(): global geoipdb, countries, ignorepaths, goodpaths, ignoremissing, filters # Load the database once and store it globally in interpreter memory. geoipdb = GeoIP.open('%s/data/GeoIP.dat' % basepath,GeoIP.GEOIP_STANDARD) csvfile = open('%s/data/countrylist.csv' % basepath,'r') dialect = csv.Sniffer().sniff(csvfile.read(32768)) csvfile.seek(0) headers = csv.reader(csvfile, dialect=dialect).next() reader = UnicodeDictReader(csvfile, fieldnames=headers, dialect=dialect) countries={} for line in reader: countries[line['ISO 3166-1 2 Letter Code']]=line csvfile.close() fp=open('%s/data/%s/ignorepaths' % (basepath, sys.argv[1]),'r') ignorepaths=[re.compile(x.strip()) for x in fp] fp.close() fp=open('%s/data/%s/ignoremissing' % (basepath, sys.argv[1]),'r') ignoremissing=[re.compile(x.strip()) for x in fp] fp.close() fp=open('%s/data/%s/goodpaths' % (basepath, sys.argv[1]),'r') goodpaths=[re.compile(r"%s" % x.strip()) for x in fp] fp.close() filters, queries=init_plugins(sys.argv[1])
def pywik(site, span=1): db=pymongo.Connection().pywik now=datetime.datetime.now() qspan = now - datetime.timedelta(days=(7 if span<8 else span)) span = now - datetime.timedelta(days=span) res=[] reports=queries[:] reports.extend(init_plugins(site)[1]) for title, q, fields in reports: #print >>sys.stderr, title, q, fields qsparks=dict([x for x in q.items()]) qsparks["timestamp"]={'$gt': qspan, '$lt': now} q["timestamp"]={'$gt': span, '$lt': now} res.append( {'total': db.__getitem__(site).find(q, fields).count(), 'fields': fields, 'title': title, 'sparks': tod3(db.__getitem__(site).group(fields+['year','month','day'], qsparks, {'count': 0}, 'function(doc, out){ out.count++;}'),fields), 'lines': [ (int(x['count']), dict([(f,x[f]) for f in fields]) ) for x in sorted(db.__getitem__(site).group(fields, q, {'count': 0}, 'function(doc, out){ out.count++;}'), key=itemgetter('count'), reverse=True ) ] } ) return res
def ascii(): now=datetime.datetime.now() span=None for k, v in spans.items(): if k in sys.argv: span = now - datetime.timedelta(days=v) del sys.argv[sys.argv.index(k)] if not span: span = now - datetime.timedelta(days=1) reports=[] queries.extend(init_plugins(sys.argv[1])[1]) for title, q, fields in queries: if title in sys.argv: reports.append((title, q, fields)) del sys.argv[sys.argv.index(title)] if not reports: reports=queries res=[] for title, q, fields in reports: q["timestamp"]={'$gt': span, '$lt': now} gfx, lo, hi = sparks(sys.argv[1], 'day', q) res.append((u"%30s %8s %s %s" % (title, lo, gfx, hi)).encode('utf8')) res.extend(displayQ(sys.argv[1], title, q, fields)) res.append('='*80) return res
def run_server(daemon=False, sock=None): log.info("sshproxy starting") try: try: init_plugins() except: log.exception("Could not initialize plugins...") raise try: if sock is None: sock = bind_server(daemon) Daemon(daemon, sock) except (KeyboardInterrupt, SystemExit): log.info("System exit") return except Exception, msg: log.exception("ERROR: sshproxy may have crashed:" " AUTORESTARTING...") finally: log.info("sshproxy ending") os.abort()
def __init__(self, portnumber, baseworkingdir, logdir, masterhostname, masterportnumber, plugindir='plugins', cores=None, verbose=False) : DaemonBase.__init__(self, baseworkingdir, logdir, herzogdefaults.KINSKI_LOG_FILENAME, verbose) self.resource = Resource() self.workers = {} self.masterurl = "http://%s:%d" % (masterhostname, masterportnumber) random.seed() self.resource.portnumber = portnumber # <hack> if cores != None : self.resource.cpucores = cores plugins.init_plugins(plugindir) self.server = SimpleXMLRPCServer((self.resource.hostname, portnumber)) self.server.register_function(self.list_resources, 'list_resources') self.server.register_function(self.fragment_prep, 'fragment_prep' ) self.server.register_function(self.fragment_start, 'fragment_start') self.server.register_function(self.fragment_stop, 'fragment_stop' ) self.server.register_function(self.fragment_list, 'fragment_list' ) self.server.register_introspection_functions() self.log.debug("initialised @ http://%s:%d" % (self.resource.hostname, portnumber))