Move buildbot.status.revlinks to buildbot.revlinks.

Otherwise, when buildbot.config tries to import default_revlink_matcher,
a circular import is created.
Use default_revlink_matcher.
Document that the SVNPoller argument revlinktmpl is deprecated.
Move documentation of revlink option to global options list.
Document that c['revlink'] has a reasonable deafult.

It probably doesn't have enough defaults to be reasonable yet,
but we will just pretend we do for now, in the documentation.
authz: rework for cookie based session management

Instead of requiring the user to type password in each and
every form inside buildbot, we implement a simple session
manager.

Existing IAuth interface is augmented with getUserInfos()
which is used to display info about the user
/login and /logout ActionResources are added to manage login and logout

template helpers like advertiseAction() now needs to pass request, so
that authz can get the session cookie from headers

now that we can identify between auth fail and authz fail,
we also add an authz failed page in order to let the user know
whether the authentication failed of the authorization failed.

These changes happen behind the scene, there is no update in the
configuration API, and the user should just notice the change in the
UI (the login form changed)

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
web status: add alert_msg

implement a simple way for action ressources to report errors to users

if action resource returns a tuple, then it is URL, alert_msg, the message is displayed
in the next web page

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
forcesched: a scheduler for doing forced builds

The ForceSched scheduler is the way you can configure a
force build form in the web UI.

In the builder/<builder-name> web page, you will see one form per ForceSched
scheduler that was configured for this builder.

This allows you to customize exactly how you build form look like, which builder do
have a force build form (it might not make sense to force build every builders),
and who is allowed to run which force build.

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
web/builder: show more info about pending build request

In the wait for a proper nice by brid page, we display more
info about forced build requests.

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
change_macro: display change category in the UI

Signed-off-by: Pierre Tardy <pierre.tardy@intel.com>
sample.cfg: add minimal example for auth and force

force is now disabled by default, as it needs
a forced scheduler available.
We need to have the sample code at least show the basic usage

Signed-off-by: Pierre Tardy <tardyp@gmail.com>
formatting fixes from dustin
Duplicating properties repository=repo_url key/value to change dict.
use .append in sample config
This patch contains the first modifications for supporting multi repository buildsets.
database: new table 'sourcestampsets' buildsets and sourcestamps refere to this table
business logic: build can return sourcestamps for given 'repo id' or buildrequest.source
                builder can handle sourcestamp sets containing exactly 1 sourcestamp
                buildrequest has now properties 'source' (backwards comp) and 'sources'
status/web: rebuild and force can handle sourcestampsets with exacly 1 sourcestamp
test: all test modified to support sourcestampsets (add set when insertdata)
Fix potential KeyError in build cache

Fixes #2162.
Merge branch 'webui_changes' of git://github.com/tardyp/buildbot into pull278

* 'webui_changes' of git://github.com/tardyp/buildbot:
  formatting fixes from dustin
  sample.cfg: add minimal example for auth and force
  change_macro: display change category in the UI
  web/builder: show more info about pending build request
  forcesched: a scheduler for doing forced builds
  web status: add alert_msg
  authz: rework for cookie based session management
fix pyflakes, formatting
reformat documentation, remove class definitions from manual
update docs, remove docstrings from forcesched.py