Commit Graph

725 Commits (030cb5260223197dd4a063af700b7adc58d4757a)

Author SHA1 Message Date
Philip O'Toole 3b64f34d28 Remove obsolete data config options 2015-02-11 10:26:39 -08:00
Philip O'Toole 8cb06c5b8e Refactor retention policy enforcement for testing 2015-02-11 09:54:07 -08:00
Philip O'Toole 50ef1672cb Add stubbed enable of retention policy enforcement 2015-02-11 09:54:07 -08:00
Philip O'Toole 61e1fa0efb Add config control for retention policies 2015-02-11 09:54:07 -08:00
Philip O'Toole c5f17dae89 go fmt changes 2015-02-11 08:25:17 -08:00
Todd Persen 286c9a9635 Fix admin configuration. 2015-02-10 23:42:17 -08:00
Todd Persen 4cdda0ba31 Initialize the admin interface on startup. 2015-02-10 23:04:19 -08:00
Cory LaNou 7dbd9c0d3d combine error checking 2015-02-10 09:12:18 -07:00
Cory LaNou 7b28df0d49 someone needs to add a precommit hook... 2015-02-10 08:54:19 -07:00
Philip O'Toole 0c14a5e5de Group util functions together 2015-02-09 20:00:45 -08:00
Philip O'Toole bfc9ea66be Perform query against full slice of nodes
This will allow the integration tests to query against any portion of
the cluster, to ensure data has been correctly replicated.
2015-02-09 19:56:54 -08:00
Philip O'Toole 87bd21d204 Allow integration tests to specify query 2015-02-09 19:46:01 -08:00
Philip O'Toole cdeab14201 Pretty up test JSON for cluster testing 2015-02-09 19:42:56 -08:00
Philip O'Toole 8bbdfd237a Break out write and query 2015-02-09 19:38:06 -08:00
Philip O'Toole 221954fbdc nNodes is now redundant 2015-02-09 18:13:40 -08:00
Philip O'Toole de1122e133 Skip multi-node tests when '-short' passed 2015-02-09 18:09:32 -08:00
Philip O'Toole cb3a222cbd Rename integration test file
It now performs multi-node cluster testing.
2015-02-09 18:01:25 -08:00
Philip O'Toole a1953f225e Use new type for []nodes 2015-02-09 18:00:58 -08:00
Philip O'Toole e3110cee4e Add explicit leader flag 2015-02-09 17:59:19 -08:00
Philip O'Toole 567fd2bfef Pass around slices of nodes as cluster 2015-02-09 17:55:07 -08:00
Philip O'Toole 252286d035 Factor out database and retention policy creation 2015-02-09 17:37:17 -08:00
Philip O'Toole 81855662c3 Use different port ranges for each cluster
Long-term we need to expose methods on the top-level object such that
the TCP listeners used by the HTTP handlers can be shut down.
2015-02-09 16:39:15 -08:00
Philip O'Toole 0b349baaac Return both broker and server from call to run() 2015-02-09 16:35:28 -08:00
Philip O'Toole 76d732f5ff Remove unneeded delay between node joins 2015-02-09 16:28:29 -08:00
Philip O'Toole 01379651f8 Scale wait times as node number increases 2015-02-09 15:55:18 -08:00
Philip O'Toole d888b41a44 Add simple 5-node test 2015-02-09 15:46:55 -08:00
Philip O'Toole 0aefa3e708 Wait longer for write data to be commited 2015-02-09 15:42:07 -08:00
Philip O'Toole 053d69e7d5 Add 3-node cluster test 2015-02-09 15:40:21 -08:00
Philip O'Toole 29a643a1ce Factor out simple write-and-query test 2015-02-09 15:27:59 -08:00
Philip O'Toole 3cbed350b3 Factor out cluster creation 2015-02-09 15:16:25 -08:00
Philip O'Toole a27220a2a3 Do not create a custom HTTP client 2015-02-09 14:43:04 -08:00
Philip O'Toole b3ed952eff Fix typo in response checking 2015-02-09 12:07:43 -08:00
Philip O'Toole 63fd0969fe Fix typo in testing log output 2015-02-09 11:36:27 -08:00
Ben Johnson bd65c543a5 Temporarily skip test. 2015-02-06 18:00:11 -07:00
Cory LaNou 1604d7f604 refactor how we default authentication enabled 2015-02-05 15:54:32 -07:00
Cory LaNou f4dfb87acc first pass at hardening authorize 2015-02-05 14:39:40 -07:00
Cory LaNou 1a74dfdd73 fix comment typo 2015-02-05 14:07:36 -07:00
Cory LaNou 4dfc9f74e8 fixing failing test due to tmp directories not cleaning up 2015-02-05 14:06:18 -07:00
Cory LaNou 028f61d58c build was failing 2015-02-05 08:50:08 -07:00
Cory LaNou 77941960fd rebasing - bringing up to date with master changes 2015-02-05 08:50:08 -07:00
Cory LaNou 091fd254da merge gone bad somewhere 2015-02-05 08:50:08 -07:00
Cory LaNou efd91ac666 use non-default port for integration testing 2015-02-05 08:50:07 -07:00
Cory LaNou 4dc5f3ab86 ensure server is spun up before existing run function 2015-02-05 08:50:07 -07:00
Cory LaNou 72fb148660 single server integration test is working 2015-02-05 08:50:07 -07:00
Cory LaNou 0e818f46d4 wip 2015-02-05 08:50:07 -07:00
Cory LaNou bc264fc430 be more strict on password arg, check if password was set 2015-02-03 15:21:48 -07:00
Cory LaNou 7b5af491d7 cli - prompt for password if blank but specified in args 2015-02-03 15:21:48 -07:00
Cory LaNou 83c39d70c4 cli - prompt for password, add auth command fixes #1441 2015-02-03 15:21:24 -07:00
Cory LaNou 781bf45a70 fixing comment grammer 2015-02-03 15:10:32 -07:00
Cory LaNou 8dd52a1ea0 removing duplicate error check 2015-02-03 15:08:47 -07:00
Cory LaNou d3c98de563 adding new output formats to cli: csv, column, json. fixes 1419 2015-02-03 14:43:18 -07:00
Cory LaNou 36cd5d1b24 add some basic test coverage for now 2015-02-03 10:22:50 -07:00
Cory LaNou dfcfa9e673 allow cli to connect with :8087 syntax 2015-02-03 09:34:13 -07:00
Cory LaNou a3a4a03263 add const for default_host in cli 2015-02-03 09:24:26 -07:00
Cory LaNou b090768890 cli can now connect to other servers while in shell 2015-02-03 09:15:11 -07:00
Cory LaNou 1ad0e32c0a add warning if querying resulted in an error and database was not set 2015-01-30 14:38:27 -07:00
Cory LaNou 85499c6f17 enable use command in cli 2015-01-30 14:31:53 -07:00
Philip O'Toole b191b1f044 Remove superfluous blank line from help output 2015-01-30 13:09:38 -08:00
Philip O'Toole 86cf0888df Add unit test for 'cluster dir' configuration 2015-01-29 16:41:34 -08:00
Philip O'Toole 5a53de4d93 Remove obsolete configuration options 2015-01-29 16:36:27 -08:00
Philip O'Toole 9943f86cf4 Enable module-level logging 2015-01-29 15:07:58 -08:00
Philip O'Toole ce0cc84ec1 Create, and use, standard path for log file 2015-01-29 14:29:21 -08:00
Philip O'Toole c05d4bf292 Open log file 2015-01-29 14:12:56 -08:00
Philip O'Toole 29d7decdf9 Remove ignored 'level' option from logging config 2015-01-29 14:12:56 -08:00
Cory LaNou e066826657 renamed influxdb to influx for cli 2015-01-28 17:22:28 -07:00
Cory LaNou 9609425d94 adding history, better results, misc enhancements 2015-01-28 17:15:16 -07:00
Philip O'Toole a4f4c42a15 Explicity name "initialization" section in config 2015-01-28 11:13:44 -08:00
Philip O'Toole a197d16ac8 Add top-level "results" key
This brings the API output into line with the API specification.
2015-01-27 15:47:47 -08:00
Philip O'Toole 2aa9b6ea33 Ensure PID directory tree exists 2015-01-26 18:33:06 -08:00
Philip O'Toole 3c3792f670 Push "joinURLs" into config file
Command-line still take precedence.
2015-01-26 17:53:56 -08:00
Philip O'Toole d5c0ea396b Remove redundant option 'role' 2015-01-26 17:15:47 -08:00
Cory LaNou 3186553f0a Merge branch 'master' into tests-shards-tmux 2015-01-26 17:31:03 -07:00
Cory LaNou 6ecb96ebfa clarifying a comment on starting up servers 2015-01-26 17:16:05 -07:00
Cory LaNou eaf8ed1d23 use standard library for path expansion 2015-01-26 16:10:51 -07:00
Cory LaNou e7a031b0fa show version when connecting via cli 2015-01-26 14:12:58 -07:00
Cory LaNou 356270c109 Merge branch 'master' into client-refactoring 2015-01-26 12:02:29 -07:00
Cory LaNou 107d2135a4 make sure we handle home directories properly in config 2015-01-26 11:03:49 -07:00
Cory LaNou eeb502fbd5 allowing a broker/client to spin up more than once 2015-01-26 10:37:29 -07:00
Cory LaNou d8fa6b81bb hottoddy -> gopher 2015-01-26 09:24:17 -07:00
Todd Persen c5c242a7f9 New version, new logo. 2015-01-24 15:11:03 -05:00
Cory LaNou eb9e035b08 hottoddy easter egg 2015-01-23 16:34:05 -07:00
Cory LaNou f0648288f7 making the cli feel more like a cli 2015-01-23 16:22:26 -07:00
Cory LaNou ac9473374a refactoring some client config. staring cli client, lot of wip 2015-01-23 15:49:23 -07:00
Cory LaNou 44d43462cf removing old client and benchmarks to make space for new client and benchmarks 2015-01-22 15:02:24 -07:00
Cory LaNou fd626de462 refactoring the refactoring 2015-01-21 18:13:51 -07:00
Cory LaNou 5421285be2 added version to server struct 2015-01-21 12:53:18 -07:00
Cory LaNou f52d9aa582 wip - added filters. added the concept of routes. more to come 2015-01-20 17:10:45 -07:00
Cory LaNou 3ab277214d first pass at moving handlers to httpd package 2015-01-20 10:50:13 -07:00
Cory LaNou 1950f38fc1 removing unecessary method 2015-01-18 16:27:52 -07:00
Cory LaNou 34aa70e6d5 better way to re-start without a default config 2015-01-18 16:02:48 -07:00
Cory LaNou 3791cbe722 launch and re-launch server with no config 2015-01-16 16:45:31 -07:00
Ben Johnson 0d590f8c99 Begin broker/client config messaging. 2015-01-15 13:42:56 -07:00
Cory LaNou 9913cd14bf invalid formatting directive 2015-01-13 17:33:50 -07:00
Cory LaNou fdd4fd6eaa merge convflict 2015-01-11 16:57:46 -07:00
Philip O'Toole 295d63cb57 More vet fixes 2015-01-11 15:14:22 -08:00
Cory LaNou 807c988649 changes based on pr review by Dave Cheney 2015-01-11 07:44:52 -07:00
Cory LaNou d9c0728e74 Test_Collectd -> TestCollectd 2015-01-10 20:09:19 -07:00
Cory LaNou 0340d3bd39 removing type block in config 2015-01-10 19:49:13 -07:00
Ben Johnson d9411c3d84 Merge branch 'master' of https://github.com/influxdb/influxdb into join
Conflicts:
	cmd/influxd/config.go
	cmd/influxd/run.go
2015-01-10 09:10:21 -07:00
Ben Johnson c20746ffa6 Code review fixes. 2015-01-10 09:08:00 -07:00
Cory LaNou 1148bf7dc3 more test coverage, responding to comments 2015-01-09 20:12:18 -07:00
Cory LaNou 413f5d162c tests for collectd config 2015-01-09 10:44:11 -07:00
Cory LaNou bc047a475b first pass at config and wiring up collectd server. needs tests and testing 2015-01-08 17:09:28 -07:00
Philip O'Toole ea0d15e581 Re-add Auth block to config 2015-01-08 12:39:47 -08:00
Philip O'Toole 21d6d5738c GoDoc "LastEnabled" 2015-01-08 12:32:46 -08:00
Philip O'Toole c64624abff Merge branch 'master' into graphite_distinct_servers
Conflicts:
	cmd/influxd/config.go
2015-01-08 12:31:21 -08:00
Philip O'Toole 1c19ae61cf Move Graphite config to top-level of config 2015-01-08 12:28:10 -08:00
Philip O'Toole 50b494503d Tigthen up config of Graphite Parser 2015-01-08 12:23:48 -08:00
Philip O'Toole 8ea70fc650 Fix bug in Graphite ConnectionString() 2015-01-08 12:19:44 -08:00
Philip O'Toole 0633b80193 Fix up sample config and move Graphite config type 2015-01-08 12:07:09 -08:00
Philip O'Toole 5a4e2a15fb Move Graphite control into "input plugins" section 2015-01-08 11:25:43 -08:00
Philip O'Toole 8c2f894fab Integrate more code review feedback 2015-01-08 11:14:57 -08:00
Philip O'Toole 9e7f6ca3f0 Provide default NameSeparator for Graphite config 2015-01-07 16:15:39 -08:00
Philip O'Toole f57f28f575 Add GoDoc strings 2015-01-07 00:10:46 -08:00
Philip O'Toole 6683643dde Add comment re Graphite Server startup 2015-01-07 00:04:56 -08:00
Philip O'Toole 85b3408115 Integrate remaining review feedback 2015-01-07 00:02:58 -08:00
Philip O'Toole f3650b4797 Implement a distinct Graphite Parser
This encapsulates a few previously free-floating methods. This means
that params such as "separator" and "last-enabled" are not passed from
function to function, and also makes initialization of TCP and UDP
Servers somewhat clearer.

It also removes early use of "GraphiteProcessor".
2015-01-06 23:20:01 -08:00
Ben Johnson 1f27d042c3 Remove debugging. 2015-01-06 17:29:51 -07:00
Ben Johnson 70d84a9a2e Merge branch 'master' of https://github.com/influxdb/influxdb into join
Conflicts:
	cmd/influxd/run.go
	handler.go
	server.go
2015-01-06 17:25:34 -07:00
Ben Johnson 50a0826026 Add broker snapshot/restore and CLI join. 2015-01-06 17:21:32 -07:00
Philip O'Toole 1f264b6c2d Refactor into distinct TCP and UDP servers 2015-01-06 15:17:29 -08:00
Cory LaNou 0334dc5b50 seperator -> separator 2015-01-06 09:57:44 -07:00
Cory LaNou a94254d1a3 Graphite endpoint updates from comments
Added ability to specifiy a seperator for a metric_path.
Default is "."

Added ability to specify position of name from metric_path
Options are "first" or "last".
Defaults to the first position.

Normalized the graphite.Metric struct to only have a Value.

 Changes to be committed:
	modified:   cmd/influxd/config.go
	modified:   cmd/influxd/config_test.go
	modified:   cmd/influxd/run.go
	modified:   graphite/graphite.go
	modified:   graphite/graphite_test.go
2015-01-05 20:14:43 -07:00
Philip O'Toole 6b7af89119 Add new wrapper handlers for User authentication 2015-01-05 16:03:05 -08:00
Philip O'Toole 2c6e2a8a76 Add config flag to control authentication 2015-01-05 16:03:05 -08:00
Cory LaNou 7239d08059 fixing some comments and extra line returns 2015-01-02 10:57:21 -06:00
Cory LaNou a7a22cc52d fixing bad merge 2015-01-02 10:09:11 -06:00
Cory LaNou 897e1c8969 merge conflict 2015-01-02 09:58:31 -06:00
Cory LaNou b52437f00a Initial incorporation of fixes from pull request #1276
Changes to be committed:
	modified:   cmd/influxd/config.go
	modified:   cmd/influxd/config_test.go
	modified:   cmd/influxd/run.go
	renamed:    graphite.go -> graphite/graphite.go
	renamed:    graphite_test.go -> graphite/graphite_test.go
2015-01-02 09:57:04 -06:00
Cory LaNou 5fbdd4b1cb Wiring graphite end point back up
Graphite server now understands how to use the WriteSeries

Added ability for series information to be passed in the graphite name.

Format is:

	key.value.key.value.metric 50 <timestamp>\n

Example:

	region.us-west.hostname.server01.cpu .09323432 1419958066\n

Added test coverage for the Graphite endpoint.  Need to figure out
how to test a successful listenAndServe.

Need to add tests around new configuration for default values
when not specified for graphite servers.

Changes to be committed:
modified:   cmd/influxd/config.go
modified:   cmd/influxd/config_test.go
modified:   cmd/influxd/run.go
modified:   graphite.go
new file:   graphite_test.go
2015-01-02 09:56:46 -06:00
Cory LaNou 7d339b302d making go vet pass for cmd/influxd/run.go 2015-01-02 09:56:25 -06:00
Cory LaNou 2303a0f014 merge conflict 2014-12-31 15:47:10 -06:00
Cory LaNou 84980c97d2 Initial incorporation of fixes from pull request #1276
Changes to be committed:
	modified:   cmd/influxd/config.go
	modified:   cmd/influxd/config_test.go
	modified:   cmd/influxd/run.go
	renamed:    graphite.go -> graphite/graphite.go
	renamed:    graphite_test.go -> graphite/graphite_test.go
2014-12-31 15:37:58 -06:00
Ben Johnson 7db96f795a Remove magic number. 2014-12-31 13:50:34 -07:00
Ben Johnson 9b1d9df868 Add --role to 'run'. 2014-12-31 12:55:27 -07:00
Ben Johnson dbb089488f Create cluster on initial run. 2014-12-31 12:42:53 -07:00
Ben Johnson 70d561aa6f Refactor main/run. 2014-12-30 15:46:50 -07:00
Cory LaNou 2905ebc864 Wiring graphite end point back up
Graphite server now understands how to use the WriteSeries

Added ability for series information to be passed in the graphite name.

Format is:

	key.value.key.value.metric 50 <timestamp>\n

Example:

	region.us-west.hostname.server01.cpu .09323432 1419958066\n

Added test coverage for the Graphite endpoint.  Need to figure out
how to test a successful listenAndServe.

Need to add tests around new configuration for default values
when not specified for graphite servers.

Changes to be committed:
modified:   cmd/influxd/config.go
modified:   cmd/influxd/config_test.go
modified:   cmd/influxd/run.go
modified:   graphite.go
new file:   graphite_test.go
2014-12-30 16:46:33 -06:00
Cory LaNou e19db2b89d making go vet pass for cmd/influxd/run.go 2014-12-30 09:04:39 -06:00
Ben Johnson 7a1de8a459 Use replica id instead of replica name. 2014-12-23 17:01:06 -07:00
Philip O'Toole e31c58d580 Add protocol to Raft connection string
Fixed at HTTP for now.
2014-12-19 16:18:48 -05:00
Philip O'Toole 021604a6de Add connection URL to Broker 2014-12-19 16:18:01 -05:00
Philip O'Toole e1ef61aafc Tell Broker to join during 'join-cluster' 2014-12-19 16:18:01 -05:00
Philip O'Toole 3ab0c5b270 Add logging of Raft initialization 2014-12-19 16:18:01 -05:00
Philip O'Toole bc6d951057 Launch HTTP handlers in goroutines 2014-12-19 11:34:32 -05:00
Philip O'Toole 2124ebb383 The flag is 'seed-servers' 2014-12-18 11:35:03 -08:00
Philip O'Toole ceeb1f6946 Store Messaging Client config in file
The presence of this file is also used to determine if a node should run
in local client mode, or should contact a Broker.
2014-12-16 19:57:20 -08:00
Philip O'Toole 20716a93e7 Support separate HTTP ports for Raft and API 2014-12-16 19:39:43 -08:00
Philip O'Toole 7eadaa75ca Add support for seed-servers during 'run' 2014-12-15 23:08:17 -08:00
Philip O'Toole 0fd2bc03a2 Set bool flag once storage dir created 2014-12-15 21:55:57 -08:00
Philip O'Toole e70f00723c Simplify 'run' control
This change refactors the existing 'run' command such that repeated code
is removed. It uses -- in a much clearer manner -- the existence of the
Broker and Storage directories to work out in which mode it should run.
The only extra piece of state required on a disk is an empty file,
whose simple existence indicates that a local (loopback) client is
needed.

With this change in place the 'join-cluster' and 'create-cluster'
commands are much closer to being fully functional, since they simply
don't create the empty file. Therefore it all just works.
2014-12-15 19:45:55 -08:00
Philip O'Toole a20e8ec7e0 Fix panic when just 'influxd' is run 2014-12-11 16:05:09 -08:00
Philip O'Toole 918c0562be Create storage dir for 'join-cluster' if needed 2014-12-11 15:52:21 -08:00
Philip O'Toole 71da5c4a4a Correct path of storage dir for 'create-cluster' 2014-12-11 15:52:21 -08:00
Philip O'Toole dbd9dcbe0f Add missing default config paths and help
They were missing for 'create-cluster' and 'join-cluster'.
2014-12-11 15:52:18 -08:00
Philip O'Toole 73f304ca1e Bring up broker endpoints
If a Broker is running on the node, we need ensure the handler will
service its endpoints.
2014-12-11 14:42:21 -08:00
Philip O'Toole 2c0a69df9a Implement command-based CLI, and start cluster-bringup
This change adds a CLI styled after the Go tool chain, with a design
inspired by that system. It adds 4 new commands, 'run',
'create-cluster', 'join-cluster', and 'version'. Full help is also
supplied.

Local-mode 'run' is fully functional, and 'create-cluster' also works.
2014-12-10 16:30:08 -08:00
Philip O'Toole f6d7393172 Add new command line options for clustering and role 2014-12-02 18:49:32 -08:00
Philip O'Toole 078ff526d4 Merge pull request #1167 from otoolep/seed_test_fixes
Remove test of obsolete config param
2014-11-25 13:47:06 -08:00
Philip O'Toole d08588aad2 Remove test of obsolete config param 2014-11-25 13:41:57 -08:00
Philip O'Toole 80796a0e47 Revert "Revert "Merge pull request #1158 from otoolep/bringup""
This reverts commit af33cbf72d.
2014-11-25 13:19:26 -08:00
Philip O'Toole 6ed0624471 Support Local mode via a Loopback messaging client
This change adds a simple loopback client to the system. It also moves
setting the seed servers to the command line, and removes control from
the configuration file.
2014-11-25 07:56:39 -08:00
Philip O'Toole 98e3af0f6c Print very early exit errors to stdout
Without this a missing config file results in no feedback to the user
2014-11-25 07:52:20 -08:00
Philip O'Toole af33cbf72d Revert "Merge pull request #1158 from otoolep/bringup"
This reverts commit 081be7a0bc, reversing
changes made to b60e6ecca9.
2014-11-24 13:12:03 -08:00
Philip O'Toole bd4a1ab4aa Open the Server 2014-11-21 14:52:26 -08:00
Philip O'Toole 6368227b58 Log an error, don't exit, if no seed servers set 2014-11-18 21:30:56 -08:00
Philip O'Toole 1ae7905434 Remove no-longer-used config params 2014-11-18 20:53:29 -08:00
Ben Johnson f5954ace5e Move version and commit sha into main.go. 2014-11-17 17:34:47 -07:00
Ben Johnson 37ee2ac23c Remove engine, parser, and Makefile. 2014-11-17 15:54:35 -07:00
Ben Johnson 2c7f879f4d Integrating http handler. 2014-11-10 22:25:03 -07:00
Ben Johnson 9d1464813a Merge branch 'master' of https://github.com/influxdb/influxdb into streaming-raft
Conflicts:
	Makefile.in
	_vendor/raft/server.go
	_vendor/raft/snapshot.go
	_vendor/raft/snapshot_test.go
	admin/http_server.go
	admin/http_server_test.go
	api/graphite/api.go
	api/http/series_writer.go
	cluster/cluster_configuration.go
	cluster/cluster_server.go
	cluster/nil_processor.go
	cluster/shard_space.go
	cmd/influxd/main.go
	common/helpers.go
	configuration/configuration.go
	configuration/configuration_test.go
	coordinator/protobuf_server.go
	coordinator/raft_server.go
	datastore/point_iterator.go
	datastore/shard.go
	datastore/storage_key.go
	engine/aggregator_engine.go
	engine/arithmetic_operators.go
	parser/group_by.go
	parser/query_api.go
	response_channel.go
	server/server.go
2014-11-06 01:20:36 -05:00
Ben Johnson 7db0e15799 Refactoring into root. 2014-10-21 23:32:19 -06:00
Ben Johnson bee1842ed8 Move api/graphite to root. 2014-10-21 18:20:43 -06:00
Ben Johnson 2d85507a87 Refactor tools into cmd. 2014-10-21 17:46:16 -06:00
Ben Johnson ccb0e6b6a1 Refactor configuration into main. 2014-10-20 23:32:47 -06:00