⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rrd.py

📁 监控大型网络的软件。能够自动发现拓扑结构
💻 PY
📖 第 1 页 / 共 2 页
字号:
    result.append(searchBoxTemplate.searchbox(searchbox))    # Some debugging    # result.append(html.Division(str(searchResults)))    # all treeselect stuff...    form = html.Form(action="", method='post')    result.append(form)    selectbox = TreeSelect()    default_list = []    select = Select('cn_category',                    'Category',                    multiple = True,                    multipleSize = 20,                    initTable='Cat',                    initTextColumn='descr',                    initIdColumn='catid',                    optionFormat = '$d ($v)',                    preSelected = searchResults['catids']                    )        select2 = UpdateableSelect(select,           # previous element                               'cn_netbox',      # element name                               'Netbox',         # title                               'Netbox',         # underlaying database table                               'sysname',        # text column                               'netboxid',       # id column                               'catid',          # foreign key (from previous element)                               default_list,     # default options                               multiple=True,                                   multipleSize=20,                               preSelected = searchResults['netboxes']                               )    select3 = UpdateableSelect(select2,                               'cn_datasource',                               'Datasource',                               'RrdDataSourceFile',                               'descr',                               'rrd_datasourceid',                               'netboxid',                               multiple=True,                               multipleSize=20,                               preSelected = searchResults['datasources'],                               onchange=None)    selectbox.addSelect(select)    selectbox.addSelect(select2)    selectbox.addSelect(select3)    if req.form.has_key('cn_cancel'):        raise RedirectError, urlbuilder.createUrl(division="rrd")        if req.form.has_key('cn_commitDs') or req.form.has_key('cn_joinDs'):        selectbox.update(req.form)        try:            pageobj = req.session['rrd']        except:            pageobj = presenter.page()        try:            datasources = req.form['cn_datasource']        except KeyError:            raise RedirectError, urlbuilder.createUrl(division="rrd")        if type(datasources) != type([]):            datasources = [datasources]        # if the user selected join, we use only one presentation        currentTimeFrame = pageobj.timeframe        if req.form.has_key('cn_joinDs'):            a = presenter.presentation(tf=currentTimeFrame)            for ds in datasources:                a.addDs(ds)            pageobj.presentations.append(a)        else:            for ds in datasources:                a = presenter.presentation(tf=currentTimeFrame)                a.addDs(ds)                pageobj.presentations.append(a)        req.session['rrd'] = pageobj        req.session.save()        raise RedirectError, urlbuilder.createUrl(division="rrd")            if req:        selectbox.update(req.form)        nameSpace = {'selectbox': selectbox}        oldds = req.session['rrd'].presentations        debug = {'debug': "%s Old Ds: %s" % (str(req.form.keys()), str(oldds))}        template = TreeSelectTemplate()        result.append(template.treeselect(selectbox))    result.append(html.Input(type='submit', name='cn_commitDs', value='Add selected'))    result.append(html.Input(type='submit', name='cn_joinDs', value='Add and join'))    result.append(html.Input(type='submit', name='cn_cancel', value='Cancel'))    # result.append(html.Division(str(select2.selectedList)))    return resultdef parseQuery(query):    try:        splitted = query.split('&')    except:        return    d = {}    for arg in splitted:        try:            key, val = arg.split('=')        except:            continue        if d.has_key(key):            d[key].append(val)        else:            d[key] = [val]    return ddef showGraphs(session):    result = html.Division()    result.append(html.Header('IP Device Center', level=2))    result.append(html.Header('Statistics', level=3))    timeframes = html.Paragraph('Time frame: ')    for tf in ['year', 'month', 'week', 'day', 'hour']:        timeframes.append(html.Anchor(tf, href='timeframe?tf=%s' % tf))        if tf != 'hour':            timeframes.append(' | ')    result.append(timeframes)    # Display previous link allowing to navigate in time    prevnext = html.Paragraph()    prevnext.append(html.Anchor('<< Previous', href='timeframe?tf=%s&tfIndex=%s' % (            session['rrd'].timeframe, int(session['rrd'].timeframeIndex) + 1)))    if int(session['rrd'].timeframeIndex) > 1:        prevnext.append(' | ')        prevnext.append(html.Anchor('Next >>', href='timeframe?tf=%s&tfIndex=%s' % (            session['rrd'].timeframe, int(session['rrd'].timeframeIndex) - 1)))    result.append(prevnext)    form = html.Form(action='pageAction', method='post')    result.append(form)    table = html.SimpleTable(id='rrdgraphs', border=1)    selectbox = html.Select(name = 'action', onChange='this.form.submit()')    selectbox.append(html.Option('- Choose action -', value = 'dummy'))    selectbox.append(html.Option('Remove selected', value = 'remove'))    selectbox.append(html.Option('Join selected', value = 'join'))    selectbox.append(html.Option('Split selected', value = 'split'))    table.add('', html.TableCell(selectbox, colspan="2",                                 _class="actionselecttop"))    result.append(table)    images = session['rrd'].presentations    for index in range(len(images)):        editCell = html.Division()        editCell.append((html.Anchor('Remove', href='remove?id=%s' % index)))        editCell.append(html.Break())        editCell.append(html.Anchor('Split', href='split?id=%s' % index))        editCell.append(html.Break())        editCell.append(html.Input(type='text', name='zoom', value='0', size='4'))        editCell.append(html.Input(type='submit', name='cn_zoom', value='zoom'))        table.add(html.Image(src=images[index].graphUrl(), name=index), editCell,            html.Checkbox(name="selected", value=index))    table.add('', html.TableCell(selectbox, colspan='2', _class="actionselectbottom"))    result.append(html.Anchor('Add datasource', href='add'))    #result.append(html.Division("Timeframe: %s, timeframeIndex: %s" % (session['rrd'].timeframe,    #                                                                   session['rrd'].timeframeIndex)))    return resultdef datasources(query, session):    page = presenter.page()    if not query.has_key('id'):        return    id = query['id']    timeframe = query.get('tf', ['week'])[0]    for i in id:        pres = presenter.presentation(tf=timeframe, ds=i)        page.presentations.append(pres)    session['rrd'] = page    return showGraphs(session)        def graph(req,id):    conf = nav.config.readConfig(configfile)    filename = "%s%s%s" % (conf['fileprefix'],id, conf['filesuffix'])    req.content_type  = 'image/gif'    req.send_http_header()    f = open(filename)    req.write(f.read())    f.close()                                def save(session, name):    conn = nav.db.getConnection('navprofile', 'navprofile')    key="rrdPage"    user = session['user']    result = html.Division("user: %s " %user)    property = navprofiles.Accountproperty.getAll(where="accountid=%s AND property='%s'" % (user, key))    result.append(html.Division("len(prop) = %s" % len(property)))    if property:        oldPages = property[0]        try:            value = eval(oldPages.value)        except:            value = []    else:        result.append(html.Division("Creating new row"))        oldPages = navprofiles.Accountproperty()        oldPages.account = user        oldPages.property = key        value = []    newPages = session['rrd']    newPages.name = name    result.append(html.Division("New pages: %s" % newPages.serialize()))    oldValue = value    result.append(html.Division("Old pages: %s" % value))    result.append(html.Division("Name: %s" % name))    value.append(newPages.serialize())    oldPages.value = str(value)    a = oldPages.save()    oldPages._saveDB()    result.append(html.Division("hei %s" % a))    result.append(html.Division("To save: %s" % value))    sql = """UPDATE accountproperty set accountid=%s, property='%s', value=%s             WHERE accountid=%s AND property='%s'""" \    % (user, key, nav.db.escape(str(value)), user, key)    result.append(sql)    cursor= conn.cursor()    cursor.execute(sql)    return resultdef load(session, name):    user = session['user']    key="rrdPage"    conn = nav.db.getConnection('navprofile', 'navprofile')    property = navprofiles.Accountproperty.getAll(where="accountid=%s AND property='%s'" % (user, key))    if property:        property = property[0]    else:        raise "hei"    pages = eval(property.value)    #raise str(property.value)    for page in pages:        if page['name'] == name:            session['rrd'] = presenter.page(page)            session.save()            return    raise "hmm: %s" % len(pages)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -