Bouncer:v3
From MozillaWiki
Contents
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
- See http://bouncer.osuosl.org/v2/php/admin/upload.php
- PHP accepts hashfile and parameters
- Python processes, hands back to PHP
- PHP displays loader results from loaderlogs
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"