Exemplo n.º 1
0
 def GET(self):
     check_admin_password(*get_httpauth())
     i = web.input(station=None)
     vmdb_id = i.station
     if vmdb_id:
         lanes = db.query("""SELECT *
                             FROM exportws.lanes as l
                             JOIN exportws.groups as g
                               ON g.vmdb_id = l.vmdb_id
                               AND g.data_number = l.data_number
                             JOIN icecast.station as s
                               ON s.vmdb_id = g.vmdb_id
                             WHERE g.vmdb_id = $vmdb_id
                             ORDER BY g.vmdb_id, g.data_number ASC""",
                          vars={
                              'vmdb_id': vmdb_id,
                          })
     else:
         lanes = db.query(
             """SELECT *
                             FROM exportws.lanes as l
                             JOIN exportws.groups as g
                               ON g.vmdb_id = l.vmdb_id
                               AND g.data_number = l.data_number
                             JOIN icecast.station as s
                               ON s.vmdb_id = g.vmdb_id
                             ORDER BY g.vmdb_id, g.data_number ASC""", )
     return RENDER.adminmstlanes(lanes, )
Exemplo n.º 2
0
 def GET(self):
     """Authenticate then return help."""
     check_password(*get_httpauth())
     web.header('Content-Type', 'text/html; charset=utf-8')
     return "<body>If you don't know how to use this site and believe " \
            "that you should, please contact " \
            "[email protected]</body>"
Exemplo n.º 3
0
 def POST(self):
     check_admin_password(*get_httpauth())
     qttform = QTTFORM()
     if not qttform.validates():
         return RENDER.formtest(qttform)
     if qttform.d.operation == u'add':
         if qttform.d.vmdb_id and qttform.d.qtt_id:
             db.insert('exportws.qttids',
                       vmdb_id=qttform.d.vmdb_id,
                       qtt_id=qttform.d.qtt_id)
         else:
             log.info("vmdb_id or qtt_id missing")
             web.header('Content-Type', 'text/html; charset=utf-8')
             raise web.HTTPError("400 bad request", {},
                                 "Please supply a vmdb_id & qtt_id.")
     elif qttform.d.operation == u'delete':
         if qttform.d.vmdb_id or qttform.d.qtt_id:
             if qttform.d.vmdb_id:
                 db.delete('exportws.qttids',
                           where="vmdb_id=$vmdb_id",
                           vars={'vmdb_id': qttform.d.vmdb_id})
             if qttform.d.qtt_id:
                 db.delete('exportws.qttids',
                           where="qtt_id=$qtt_id",
                           vars={'qtt_id': qttform.d.qtt_id})
         else:
             log.info("vmdb_id or qtt_id missing")
             web.header('Content-Type', 'text/html; charset=utf-8')
             raise web.HTTPError("400 bad request", {},
                                 "Please supply a qtt_id or vmdb_id.")
     log.info("operation=%s vmdb_id=%s qtt_id=%s" % \
                  (qttform.d.operation, qttform.d.vmdb_id, qttform.d.qtt_id ))
     raise web.seeother('/qttids')
Exemplo n.º 4
0
 def GET(self):
     i = web.input(username=None)
     check_admin_password(*get_httpauth())
     rolelist = list_users_roles(i.username)
     roleform = ROLEFORM()
     web.header('Content-Type', 'text/html; charset=utf-8')
     return RENDER.roleadmin(rolelist, roleform)
Exemplo n.º 5
0
 def POST(self):
     check_admin_password(*get_httpauth())
     userform = USERFORM()
     if not userform.validates():
         return RENDER.formtest(userform)
     if userform.d.operation == u'update':
         if userform.d.username and userform.d.password:
             update_pwdb(userform.d.username, userform.d.password)
         else:
             log.info("username & password missing")
             web.header('Content-Type', 'text/html; charset=utf-8')
             raise web.HTTPError("400 bad request", {},
                                 "Please supply a username & password.")
     elif userform.d.operation == u'delete':
         if userform.d.username:
             #TODO: Should we automatically delete all roles?
             db.delete(
                 'exportws.pwdb',
                 where="pwdb.username=$user",
                 vars={
                     'user': userform.d.username,
                 },
             )
         else:
             log.info("username missing")
             web.header('Content-Type', 'text/html; charset=utf-8')
             raise web.HTTPError("400 bad request", {},
                                 "Please supply a username.")
     log.info("operation=%s targetusername=%s" % \
                  (userform.d.operation, userform.d.username, ))
     raise web.seeother('/users')
Exemplo n.º 6
0
 def GET(self):
     check_admin_password(*get_httpauth())
     web.header('Content-Type', 'text/html; charset=utf-8', unique=True)
     return '<body>Head to <a href="/admin/users">user</a> ' \
            '<a href="/admin/roles">roles</a> or ' \
            '<a href="/admin/mst">mst</a> or ' \
            '<a href="/admin/qttids">qttids</a> admin.</body>'
Exemplo n.º 7
0
 def POST(self):
     check_admin_password(*get_httpauth())
     laneform = MSTADMINLANEFORM()
     if not laneform.validates():
         return '<h1>Failure</h1>'
     log.info("station=%s laneupdate" % (laneform.d.station, ))
     db.query("""UPDATE exportws.lanes
                 SET reverse=$reverse,
                     lane_direction=$lane_direction
                 WHERE vmdb_id=$vmdb_id
                   AND data_number=$data_number""",
              vars={
                  'vmdb_id': laneform.d.station,
                  'reverse': laneform.d.reverse,
                  'lane_direction': laneform.d.direction,
                  'data_number': laneform.d.number,
              })
     db.query("""UPDATE exportws.groups
                 SET lane_name=$lane_name
                 WHERE vmdb_id=$vmdb_id
                   AND data_number=$data_number""",
              vars={
                  'vmdb_id': laneform.d.station,
                  'lane_name': laneform.d.lane_name,
                  'data_number': laneform.d.number,
              })
     update_mst_date(laneform.d.station)
     raise web.seeother('/mst/lanes?station=' + str(laneform.d.station))
Exemplo n.º 8
0
 def GET(self):
     # FIXME: MST's should be separated by region. id'd by region.
     i = web.input(region=None, station=None,
                   earliesttime=None, latesttime=None)
     username, password = get_httpauth()
     object = session(username, password, i.region, i.station, 'datex2')
     mst = object.mst()
     web.header('Content-Type', 'text/xml; charset=utf-8')
     return mst.xml()
Exemplo n.º 9
0
 def GET(self):
     i = web.input(region=None, station=None, latesttime=None, cam=1)
     username, password = get_httpauth()
     object = session(username, password, None, i.station, role='jpg')
     if not i.station:
         web.header('Content-Type', 'text/html; charset=utf-8')
         raise web.HTTPError("403 forbidden", {},
                             "Please specify a station.")
     web.header('Content-Type', 'image/jpeg')
     return object.jpg(i.cam, i.latesttime)
Exemplo n.º 10
0
 def GET(self):
     i = web.input(region=None, station=None,
                   earliesttime=None, latesttime=None)
     # TODO: If no earliest/latest-time, use web.modified?
     username, password = get_httpauth()
     object = session(username, password, i.region, i.station, 'datex2')
     data = object.data(i.earliesttime, i.latesttime, lastget())
     ## TODO: Mark data as faulty based on value_status
     web.header('Content-Type', 'text/xml; charset=utf-8')
     return data.datex2()
Exemplo n.º 11
0
 def GET(self):
     i = web.input(region=None, station=None, cam=None)
     username, password = get_httpauth()
     object = session(username, password, None, i.station, role='jpg')
     if not i.station:
         web.header('Content-Type', 'text/html; charset=utf-8')
         raise web.HTTPError("403 forbidden", {},
                             "Please specify a station.")
     object.lastupdate('jpg')
     web.header('Content-Type', 'text/html; charset=utf-8')
     return RENDER.jpglist(object.jpglist(), i.station)
Exemplo n.º 12
0
 def GET(self):
     i = web.input(region=None, earliesttime=None, latesttime=None)
     username, password = get_httpauth()
     object = session(username, password, i.region, None, 'table')
     data = object.data(i.earliesttime, i.latesttime, lastget())
     finaldata, sensortable = data.vai_crosstab()
     web.header('Content-Type', 'text/html; charset=utf-8')
     return RENDER.regiontable(
         data.stations,
         finaldata,
         sensortable,
     )
Exemplo n.º 13
0
 def POST(self):
     check_admin_password(*get_httpauth())
     stationform = MST_ADMIN_STATION_FORM()
     if not stationform.validates():
         return '<h1>Failure</h1>'
     log.info("station=%s" % (stationform.d.station, ))
     db.update("exportws.stations",
               measurementside=stationform.d.measurementside,
               where="vmdb_id=$vmdb_id",
               vars={
                   'vmdb_id': stationform.d.station,
               })
     update_mst_date(stationform.d.station)
     raise web.seeother('/mst/stations')
Exemplo n.º 14
0
 def POST(self):
     check_admin_password(*get_httpauth())
     roleform = ROLEFORM()
     if not roleform.validates():
         return RENDER.formtest(ROLEFORM)
     log.info("operation=%s targetusername=%s" % \
              (roleform.d.action, roleform.d.username, ))
     if roleform.d.action == "add":
         add_permission(roleform.d.username, roleform.d.region,
                        roleform.d.role)
     elif roleform.d.action == "delete":
         delete_permission(roleform.d.username, roleform.d.region,
                           roleform.d.role)
     raise web.seeother('/roles')
Exemplo n.º 15
0
 def GET(self):
     i = web.input(station=None, earliesttime=None, latesttime=None)
     username, password = get_httpauth()
     object = session(username, password, None, i.station, 'table')
     if not i.earliesttime or not i.latesttime:
         i.earliesttime = datetime.now() - timedelta(days=1)
         i.latesttime = datetime.now() + timedelta(minutes=5)
     data = object.data(i.earliesttime, i.latesttime, lastget())
     finaldata, sensortable = data.vai_crosstab()
     web.header('Content-Type', 'text/html; charset=utf-8')
     return RENDER.stationtable(
         data.stations,
         finaldata,
         sensortable,
     )
Exemplo n.º 16
0
 def GET(self):
     i = web.input(region=None,
                   station=None,
                   earliesttime=None,
                   latesttime=None,
                   cam=1)
     username, password = get_httpauth()
     if web.ctx.path == '/qttntcipobs.xml':
         role = 'qtt'
     else:
         role = 'xml'
     object = session(username, password, i.region, i.station, role)
     data = object.data(i.earliesttime, i.latesttime, lastget())
     web.header('Content-Type', 'text/xml; charset=utf-8')
     if role == 'xml':
         return data.vaisalaobs()
     elif role == 'qtt':
         return data.qttntcipobs()
Exemplo n.º 17
0
 def GET(self):
     check_admin_password(*get_httpauth())
     i = web.input(station=None)
     vmdb_id = i.station
     if vmdb_id:
         stations = db.query("""SELECT * FROM exportws.stations as st
                                JOIN icecast.station as s
                                  ON s.vmdb_id=st.vmdb_id
                                WHERE s.vmdb_id=$vmdb_id
                                ORDER BY s.vmdb_id ASC""",
                             vars={
                                 'vmdb_id': vmdb_id,
                             })
     else:
         stations = db.query("""SELECT * FROM exportws.stations as st
                                JOIN icecast.station as s
                                  ON s.vmdb_id=st.vmdb_id
                                ORDER BY s.vmdb_id ASC""")
     return RENDER.adminmststations(stations, )
Exemplo n.º 18
0
 def GET(self):
     check_admin_password(*get_httpauth())
     web.header('Content-Type', 'text/html; charset=utf-8', unique=True)
     return '<h1>MST Configuration</h1><p>Please head to ' \
            '<a href="/admin/mst/lanes">lanes</a> or ' \
            '<a href="/admin/mst/stations">stations</a> configuration.'
Exemplo n.º 19
0
 def GET(self):
     check_admin_password(*get_httpauth())
     qttlist = db.select('exportws.qttids', )
     qttform = QTTFORM()
     web.header('Content-Type', 'text/html; charset=utf-8')
     return RENDER.qttadmin(qttlist, qttform)
Exemplo n.º 20
0
 def GET(self):
     check_admin_password(*get_httpauth())
     userlist = list_users()
     userform = USERFORM()
     web.header('Content-Type', 'text/html; charset=utf-8')
     return RENDER.useradmin(userlist, userform)