Remove metaclass for DB Plugin
Merge pull request #2 from TheLastPickle/remove-metaclass

Remove metaclass for DB Plugin
bug fix
Merge pull request #3 from TheLastPickle/remove-metaclass

remove metaclass for plugins
acquia maintenance script to perform rollups

see comments at the top of the files, note that this is still WIP
Merge pull request #4 from thelastpickle/rollups

acquia maintenance script to perform rollups
more comments
Merge pull request #5 from thelastpickle/rollups

more comments
Set server list and keyspace as a CLI arg.

NOTE: optparse is deprecated as of 2.7 and should be ported over
to the argparse module.
Merge pull request #7 from thelastpickle/cli-args

Set server list and keyspace as a CLI arg.
add --dc-name param to segment rollups by DC.

Relies on changes in carbon-cassandra-plugin to track node creation by
dc.

When --dc-name is specified only nodes created in that DC are considered
for rollup.

Example
  ./acquia-maintenance.py --configdir=/opt/graphite/conf/carbon-daemons/writer/ --dc-name=datacenter1 --serverlist=172.16.1.18 acquia_rollup

If not specified all nodes in the graphite DB are rolled up.
Initial code to split maintenance task by C* node

Added --rollup-targets to accept a CSV list of C* nodes to perform
the rollup for. When specified we read the Data Nodes within the token
ranges owned by the C* node and do the rollup on them. This can be used
to run the process in parallel.

TODO: pycassa does not expose describe_token_map() which is used to get the
one to one token to node map. i.e. the tokens assigned to a single node. It
exposes describe_ring() which maps from token ranges to all replicas.
Initally using the describe_ring for proof of concept, will want to use both.
Get the tokens for a node from describe_token_map and then find the ranges
that end with the tokens from describe_ring()

See comments in acquia-maintenance.py

Example execution

  ./acquia-maintenance.py --configdir=/opt/graphite/conf/carbon-daemons/writer/ --dc-name=datacenter1 --serverlist=172.16.1.18 --rollup-targets=172.16.1.18 acquia_rollup
comment fix
get node assignments using describe_token_map()

use SystemManager.describe_token_map() to get the tokens assigned to
each node and then match those to the token ranges for the keyspace
improve rollup code

tidy up and additional logging
Merge pull request #2 from thelastpickle/rollups

Rollups