Bouncer:v3

From MozillaWiki
Jump to: navigation, search

« back to Bouncer home

Database

  • Renaming of tables
  • Renaming of columns
  • Verify indexing
  • geo-ip
    • load test set from maxgeo
    • map onto existing regions?
  • Fix SQL for *.py (sentry, loader)
  • Roles (Admin vs. User vs. Reports)

CRUD

  • Scaffold current models
    • Mirrors
    • Regions
    • Applications
    • Locales
    • Platforms
    • Files
    • Downloadables?
    • Users
  • Chip away at scaffolding (for all models)
    • Search criteria
    • Pagination
    • Basic edits
  • Delete confirmation
    • Do we even delete?

Stats

  • Add more tracking of users/hits/downloads
    • Integrate with Urchin
    • Would require us to include a javascript file with each download (cached)
    • Somehow track whether or not a download completed or was abandoned.
    • Also, should "official" downloads be hosted from the .com domain?

Status Search (for all models)

  • Available bandwidth
  • Enabled mirrors
  • Disabled mirrors
  • # of files hosted
  • Lookup by other models or wildcard (Any _____)

Dashboard (front page)

  • Total mirrors
  • Inactive mirrors
  • Active mirrors
  • Megabits of bandwidth available
  • # of files served by # of mirrors
  • Recent users
  • Some notion of mirrors by region (jol P2)
  • Other ideas?

Sentry Visualization

  • Read tests, events for sentry tests data
  • Allow searching by date
  • Lookup on any model
  • Search criteria
    • Application
    • Locale
    • Platform
    • Mirror
    • Region
    • Start Date
    • End Date
    • Test Type
    • Results (failed, success)?

Integration with loader.py for multiple file upload

Install and stage on khan

  • Admin tools
  • Bounce scripts (with URI rewrites)
  • Sentry tests
  • Loader

Deployment

  • Install and verify in production
  • Handle multiple instances
    • load balanced
    • physically seperated instances (different datacenters)
  • Front with Netscaler
    • logging issues?
    • referrer issues?

Build Requirements

  • P1: Warnings about invalid operations, i.e. specifying a location for a product that already exists, etc.
    • The file view lacks a dupe check -- this would be an easy fix for v2.
  • P1: Requested validations, i.e. Sentry can be told "Check on these three products right now," and they'll show up in the mirror list immediately.
    • Test type 4 could be scheduled to run every 10 minutes -- it is the test that verifies new files. If it ran frequently, Sentry would check new items automatically on a regularly scheduled basis -- I think that would meet the requirement. See the wiki page on Sentry's options.
  • P1: We can dump the SHA1SUMS file directly into the DB (Bouncer2 has this?)
    • Bouncer2 has this (loader.py) -- it was one of the main requirements for v2.
  • P2: Roles can be handed out in groups, to products, i.e. Seamonkey/Camino people can login and modify/admin their products, but not modify FFx/Tb, nor add/delete new products.
  • P3: Some better reporting about which mirrors are serving which releases, i.e. "Show me all mirrors serving FFx 1.5.0.5"