Commit graph

1227 commits

Author SHA1 Message Date
Alex Dadgar 5755135e66 download to relative destination 2016-03-18 15:33:01 -07:00
Diptanu Choudhury 0f0bba1a4f Merge pull request #932 from hashicorp/unified-executor
Unified executor
2016-03-18 15:04:48 -07:00
Diptanu Choudhury 038a1bc2f9 Added some comments 2016-03-18 15:04:15 -07:00
Diptanu Choudhury ddbf18f02a Removing all the destroy logic from wait and calling exit after wait on all drivers 2016-03-18 12:04:11 -07:00
Diptanu Choudhury abf8e50c29 Destroying the plugin if kill wasn't successful 2016-03-18 11:53:25 -07:00
Diptanu Choudhury 3c7b83b393 Introduced a method in executor to launch syslog server 2016-03-18 11:49:10 -07:00
Brian Lalor efe080b53f Remove unnecessary --interactive flag
Per @achanda, this was added [accidentally](b92546a9c5 (commitcomment-16750062)).
2016-03-17 13:22:49 -04:00
Alex Dadgar 40adf40549 document artifact downloading 2016-03-16 09:56:04 -07:00
Alex Dadgar 719f5d34ed Merge pull request #910 from hashicorp/f-reserved-resources
Reserve Client Resources + Config Validation
2016-03-15 21:09:13 -07:00
Alex Dadgar e6d50f96ef Respond to comments and fix test 2016-03-15 20:21:52 -07:00
Alex Dadgar 393807a677 Make user specified tasks executable 2016-03-15 19:22:40 -07:00
Alex Dadgar 74a68c83f1 Test task runner downloading artifacts 2016-03-15 14:34:25 -07:00
Alex Dadgar ab44bc78a2 Get tests to pass 2016-03-15 13:28:57 -07:00
Alex Dadgar 9f878a16bf Download artifacts and remove old code for drivers 2016-03-15 13:28:57 -07:00
Alex Dadgar 081556db93 update the getter 2016-03-15 13:28:57 -07:00
Dmitry Smirnov 7c3bb51cfa codespell: minor spelling corrections
Signed-off-by: Dmitry Smirnov <onlyjob@member.fsf.org>
2016-03-16 05:28:31 +11:00
Alex Dadgar 7d4c19ed99 reserve resources on the node 2016-03-13 19:05:41 -07:00
Alex Dadgar 75d5aad888 client: fix bug where pushing allocs is skipped 2016-03-10 16:18:20 -08:00
Alex Dadgar 79d7553cbf executor: add /run/resolvconf to chroot 2016-03-10 15:05:49 -08:00
Alex Dadgar 49e5024a2f fmt rkt test 2016-03-10 14:56:43 -08:00
Diptanu Choudhury 512d0c317a Merge pull request #897 from hashicorp/syslog-addr
Using unix domain sockets for docker syslog collector
2016-03-10 11:49:21 -08:00
Alex Dadgar 2ccfb43c7a Merge pull request #892 from achanda/rkt_dns
Enable passing DNS info to the rkt driver
2016-03-10 08:54:26 -08:00
Diptanu Choudhury b18cbaa416 Using unix domain sockets for docker syslog collector 2016-03-09 23:28:26 -08:00
Diptanu Choudhury 713dfcf751 Merge pull request #896 from hashicorp/f-task-instance
Add allocation index environment variable
2016-03-09 18:34:32 -08:00
Diptanu Choudhury f1c9d11c55 Merge pull request #878 from hashicorp/b-kill-timeout-update
client: Updating kill timeout adheres to operator specified maximum
2016-03-09 18:33:40 -08:00
Alex Dadgar 8ad65876bf Add allocation index environment variable 2016-03-09 18:09:51 -08:00
Alex Dadgar 22f4fbd652 up cached connection time 2016-03-09 10:37:56 -08:00
Abhishek Chanda 3260254cb4 Enable passing DNS info to the rkt driver 2016-03-08 18:59:11 -08:00
Diptanu Choudhury 674d1c9b24 Making the docker fingerprinter periodic 2016-03-08 12:02:55 -08:00
Alex Dadgar 3dfe8e70f6 Fix test 2016-03-08 11:41:26 -08:00
Erik Evenson c515cce551 moves transform to Init() 2016-03-06 19:00:40 -06:00
Erik Evenson bef4b0d9b6 Merge branch 'master' into study/aws-ecr-1 2016-03-06 18:18:20 -06:00
Alex Dadgar 5bcfdeb41d Fix bug introduced with paused nack timers 2016-03-04 16:17:14 -08:00
Alex Dadgar 929e705ba1 Updating kill timeout adheres to operator specified maximum 2016-03-03 09:21:21 -08:00
Diptanu Choudhury a44127aaa6 Merge pull request #768 from achanda/b-rkt
A number of rkt fixes
2016-03-02 21:29:48 -08:00
Alex Dadgar 0b12e74a6e Add /sbin and /usr/sbin/ to chroot 2016-03-02 16:32:31 -08:00
Alex Dadgar 20746833cd Merge pull request #874 from hashicorp/b-consul-concurrent-map-access
Remove a concurrent map access
2016-03-02 16:30:42 -08:00
Alex Dadgar 144ccfb561 Killing a docker container that is dead is not an error 2016-03-02 16:27:01 -08:00
Abhishek Chanda ef83066b7a Fix location of volume mount
Also add a test for mounting alloc dirs
2016-03-02 14:04:14 -08:00
Abhishek Chanda 9e1055d595 Use NewWaitResult in the wait channel 2016-03-02 14:04:14 -08:00
Abhishek Chanda 5a3be40b8d Set allocDir in handle 2016-03-02 14:04:14 -08:00
Abhishek Chanda a78fc6707f Run rkt interactively 2016-03-02 14:04:14 -08:00
Abhishek Chanda 29bcab9bfd Cleanup if the plugin executor crashes. 2016-03-02 14:04:14 -08:00
Abhishek Chanda 8957726a0a A number of cleanups
- Removed some unused variables.
2016-03-02 14:04:14 -08:00
Abhishek Chanda 77d9ba3526 Change name of the stdout file 2016-03-02 14:04:14 -08:00
Abhishek Chanda fbc6f3f0b1 Do not hard-code binary location 2016-03-02 14:04:14 -08:00
Abhishek Chanda d490df2bad Use the plugin mechanism in the rkt driver 2016-03-02 14:04:14 -08:00
Abhishek Chanda 459ed48c43 Defer cleanup 2016-03-02 14:04:14 -08:00
Abhishek Chanda e40c4630d7 Change how a result is returned form wait 2016-03-02 14:04:14 -08:00
Abhishek Chanda 579da2930a Use less resources for containers 2016-03-02 14:04:14 -08:00
Abhishek Chanda 7719a1ce98 A number of rkt fixes
- Reorder rkt arguments to make it work
- Change a few things in test
2016-03-02 14:04:14 -08:00
Abhishek Chanda b35e244c7d Use a host volume to mount alloc and task dirs
host volumes are the preferred way to share data.
2016-03-02 14:04:14 -08:00
Abhishek Chanda 370332fdf3 Create the task and alloc dirs before proceeding 2016-03-02 14:04:14 -08:00
Alex Dadgar d7ebd7ab5e Merge pull request #869 from hashicorp/f-alloc-id-env
Add Alloc ID/Name and Task Name to environment variables
2016-03-02 13:58:47 -08:00
Alex Dadgar e4c7c9f8b6 Remove a concurrent map access 2016-03-02 13:57:08 -08:00
Diptanu Choudhury 6324e18cac Merge pull request #855 from hashicorp/cgroups-pid
Updated logic for creation of cgroup
2016-03-02 12:57:25 -08:00
Diptanu Choudhury 395d10eafc Added a comment 2016-03-02 12:56:56 -08:00
Diptanu Choudhury 04cb13f3a5 Added a test for making sure executor destroy works 2016-03-02 11:05:08 -08:00
Diptanu Choudhury aaa23154aa Not killing the plugin while destroying the cgroup 2016-03-01 17:51:54 -08:00
Diptanu Choudhury 5748bd0516 Fixed the logic of cgroup creation 2016-03-01 17:01:45 -08:00
Alex Dadgar d7b425e5c1 Driver tests 2016-03-01 16:22:33 -08:00
Alex Dadgar f8b047e088 Add Alloc ID/Name and Task Name to environment variables 2016-03-01 16:08:21 -08:00
Alex Dadgar ad92e50a24 Avoid serializes Allocation.Resources 2016-03-01 14:09:25 -08:00
Alex Dadgar b34f80a069 Merge pull request #859 from hashicorp/f-driver-start-restarts
client: Driver starting is included in restart policy.
2016-02-29 11:05:25 -08:00
Alex Dadgar 7fe8a4650f Acquire lock around handle 2016-02-29 10:45:08 -08:00
Erik Evenson eca9029664 adds comments and removes redundant false flag setting 2016-02-29 08:17:40 -06:00
Alex Dadgar 61972c9ddc Refactor task runner to include driver starting into restart policy and add recoverable errors 2016-02-28 16:56:05 -08:00
Erik Evenson 10e32a74d1 refactors 2016-02-27 12:00:17 -06:00
Erik Evenson 4572753014 allows AWS ECR to work 2016-02-27 11:06:40 -06:00
Diptanu Choudhury 0b63bf3f83 Merge pull request #818 from achanda/perf
Run a bunch of tests in parallel
2016-02-26 13:35:33 -08:00
Alex Dadgar 2143d1cd26 Merge branch 'master' of github.com:hashicorp/nomad 2016-02-25 11:49:52 -08:00
Alex Dadgar 565bb655d6 Drop the permissions of sub directories in the alloc dir 2016-02-25 11:49:43 -08:00
Diptanu Choudhury 2bfab1bd30 Merge pull request #850 from hashicorp/snap-version
Adding version information to snapshots
2016-02-25 10:54:26 -08:00
Diptanu Choudhury 03c32d9bad Added a test for AllocDir.LogDir 2016-02-25 09:08:51 -08:00
Diptanu Choudhury ce5b497dbc Adding version to the DockerHandle test 2016-02-25 08:51:10 -08:00
Diptanu Choudhury 7891737fa8 Fixed some java tests 2016-02-24 23:54:01 -08:00
Diptanu Choudhury 47da0b02b3 Writing logs to alloc dir 2016-02-24 20:06:43 -08:00
Diptanu Choudhury e3d6c4a9dd Adding version information to snapshots 2016-02-24 19:06:30 -08:00
Alex Dadgar cc1b35a90c client: standardize error logging format 2016-02-24 15:57:58 -08:00
Diptanu Choudhury 62029e4bf9 Making the build work for windows 2016-02-23 15:17:07 -08:00
Alex Dadgar da50c36564 driver.test: remove redundant tests 2016-02-23 14:41:52 -08:00
Diptanu Choudhury c24e1093fa Merge pull request #841 from hashicorp/b-local-file
Client: Only allow downloading from http/s and git
2016-02-23 13:46:55 -08:00
Diptanu Choudhury 27ab08ce1c Merge pull request #842 from hashicorp/f-validate-command
drivers: validate that command contains one field
2016-02-23 13:45:10 -08:00
Diptanu Choudhury 7fcbdf5a9b Closing the rotators when the process finishes 2016-02-23 13:32:17 -08:00
Alex Dadgar 1dd37cf96e Limit the set of downloaders 2016-02-23 10:33:58 -08:00
Alex Dadgar 5bb1d89a6a Copy local files 2016-02-23 10:27:47 -08:00
Alex Dadgar f612b9c81e validate that command contains one field 2016-02-23 10:19:40 -08:00
Diptanu Choudhury d6f09400f7 Merge pull request #819 from hashicorp/r-syslog-collector
Refactored syslog server and log rotator
2016-02-23 10:15:14 -08:00
Diptanu Choudhury fd2be356cc Closing the messages channel 2016-02-23 10:14:54 -08:00
Diptanu Choudhury bd99982b96 Stoping go-routines in the syslog collector 2016-02-23 09:43:14 -08:00
Diptanu Choudhury c9e00127c3 Buffering writes to a rotated file 2016-02-23 08:52:06 -08:00
Alex Dadgar cd889df20a client: send correct node id 2016-02-22 22:43:55 -08:00
Alex Dadgar a40f734b77 Send NodeID when updating client allocation 2016-02-22 17:25:11 -08:00
Diptanu Choudhury 3211e67961 Made the syslog server use a buffered chan 2016-02-22 16:10:23 -08:00
Diptanu Choudhury c21f6f8eea Throwing an error if Nomad can't create an docker auth object 2016-02-22 13:20:06 -08:00
Diptanu Choudhury bf3e3f5f59 Throwing an error if Nomad can't create an docker auth object 2016-02-22 13:00:54 -08:00
Alex Dadgar 51bacf674e address feedback 2016-02-21 21:32:32 -08:00
Alex Dadgar e96ca4679f Fix test 2016-02-21 21:15:02 -08:00
Alex Dadgar 281e2ca198 Batch client allocation updates to the server 2016-02-21 21:15:02 -08:00
Abhishek Chanda 34d3deff9b Run a bunch of tests in parallel 2016-02-21 19:42:03 -08:00
Alex Dadgar 2ec5d7de76 undo async update 2016-02-19 22:34:52 -08:00
Diptanu Choudhury 91e8800b6b Added more comments 2016-02-19 21:58:44 -08:00
Alex Dadgar c08e3dbee8 Make updating alloc status async 2016-02-19 21:44:23 -08:00
Alex Dadgar 13e5597ca2 Reduce alloc lock contention in client 2016-02-19 19:51:55 -08:00
Alex Dadgar 99d2c173ff import 2016-02-19 16:31:04 -08:00
Alex Dadgar 2706aa2100 Better comment 2016-02-19 16:02:48 -08:00
Alex Dadgar 30f0703929 Remove debug 2016-02-19 15:54:29 -08:00
Alex Dadgar d1011c9668 Fixes 2016-02-19 15:49:32 -08:00
Diptanu Choudhury 0cc9b76d26 Fixed tests 2016-02-19 15:15:59 -08:00
Alex Dadgar e2a4c4ccc5 Client stores when it receives a task 2016-02-19 14:49:43 -08:00
Diptanu Choudhury 694cecfbf8 Added some docs to the syslog server 2016-02-19 14:20:21 -08:00
Diptanu Choudhury 8096722cad Added some docs to the FileRotator 2016-02-19 14:11:31 -08:00
Diptanu Choudhury 4873118cef Making the log rotator a writer 2016-02-19 14:01:07 -08:00
Diptanu Choudhury 488fd763c8 Renamed packages 2016-02-19 13:08:25 -08:00
Diptanu Choudhury 824df263aa Implemented file rotator 2016-02-19 12:55:34 -08:00
Alex Dadgar d47935b455 Don't re-register as initializing 2016-02-18 23:02:28 -08:00
Alex Dadgar 96fd272422 Increase Alloc channel buffers 2016-02-18 20:43:48 -08:00
Diptanu Choudhury 5180480787 Fixed the fingerprinter test 2016-02-18 11:34:17 -08:00
Diptanu Choudhury 502d56b232 Enabling cgroups and chroot on linux 2016-02-18 09:49:11 -08:00
Diptanu Choudhury ef7cfb1f0b Implemented a custom syslog server 2016-02-17 14:48:25 -08:00
Alex Dadgar 3ae948969e Merge pull request #811 from hashicorp/b-heartbeat-loop
Extract the heartbeat and saveState into their own go routines
2016-02-17 14:05:20 -08:00
Alex Dadgar 5473b6ae63 Extract the heartbeat and saveState into their own go routines 2016-02-17 11:32:17 -08:00
Alex Dadgar 48bc77bc7f fix java test 2016-02-17 10:04:19 -08:00
Alex Dadgar 18d2d9c091 Killing a driver handle is retried with an exponential backoff 2016-02-16 21:00:49 -08:00
Abhishek Chanda 2059cf221b Separate arguments with a space while writing 2016-02-16 17:13:19 -08:00
Diptanu Choudhury 8d6be22181 Merge branch 'master' of github.com:hashicorp/nomad 2016-02-12 16:20:41 -08:00
Diptanu Choudhury fce4a0bd2c Added stubs for windows 2016-02-12 16:20:04 -08:00
Alex Dadgar f6e0349d3b go vet 2016-02-12 16:08:58 -08:00
Diptanu Choudhury b1c57e078f Changing log messages in the docker driver 2016-02-12 13:33:09 -08:00
Alex Dadgar 18da7eea95 Update go-plugin 2016-02-12 12:16:56 -08:00
Diptanu Choudhury c6e395fa0e Fixed tests 2016-02-11 17:34:46 -08:00
Diptanu Choudhury 7eba3f3b5f Merge pull request #763 from hashicorp/f-logrotator
Implemented log rotation for drivers
2016-02-11 15:02:39 -08:00
Diptanu Choudhury 3db617472c Fixed an issue with purge 2016-02-11 14:44:35 -08:00
Diptanu Choudhury 0d362c39e7 Fixed more client executor tests 2016-02-11 11:13:45 -08:00
Alex Dadgar ef3798c338 Merge pull request #789 from hashicorp/f-client-races
Remove data races in the client
2016-02-11 11:07:49 -08:00
Diptanu Choudhury cd957a739a Fixed the executor test 2016-02-11 10:58:18 -08:00
Diptanu Choudhury 9e994cb8d0 Fixed some tests 2016-02-11 10:42:56 -08:00
Alex Dadgar e6e7c395df Merge pull request #775 from hashicorp/d-interpreted-vars
Documentation for interpreted variables
2016-02-11 08:40:31 -08:00
Alex Dadgar f3d5598830 Unlock in error path 2016-02-11 08:38:16 -08:00
Alex Dadgar 0e68c7c949 Initialize the config copy after client init 2016-02-10 19:01:57 -08:00
Diptanu Choudhury 5480a6744e Renamed the syslog package to logcollector 2016-02-10 18:47:46 -08:00
Alex Dadgar 4d7ed4f164 Strip as much copystructure as possible 2016-02-10 17:54:43 -08:00
Diptanu Choudhury b0d2328734 Added a test to check if file size update catches up with rotation 2016-02-10 17:34:14 -08:00
Diptanu Choudhury 566d709110 Handling errors when client can't re-attach to syslog collector 2016-02-10 16:40:36 -08:00
Diptanu Choudhury 64c5206cae Changed the logic of the logrotator to make updates easier 2016-02-10 16:13:13 -08:00
Diptanu Choudhury e9187d48ca Sharing the isolationconfig of syslog collector with executor 2016-02-10 15:27:40 -08:00
Diptanu Choudhury 810e354571 Added some comments 2016-02-10 15:23:25 -08:00
Diptanu Choudhury 25c48cd1ea Updating log configs 2016-02-10 15:04:41 -08:00
Diptanu Choudhury a4f32f31c2 Stripping hostname, timestamps etc from docker syslog messages 2016-02-10 14:40:26 -08:00
Alex Dadgar e6c2b6ae9d Slightly less node copying 2016-02-10 14:09:23 -08:00
Diptanu Choudhury 49099f4c70 Fixed more tests 2016-02-10 13:54:54 -08:00
Alex Dadgar 0c4c3fc4ee safe but slow 2016-02-10 13:44:53 -08:00
Diptanu Choudhury ab75f89c33 Fixed docker tests 2016-02-10 13:29:06 -08:00
Diptanu Choudhury 79141f3021 Fixed the docker handle id test 2016-02-10 13:18:10 -08:00
Diptanu Choudhury 19d0e74608 Parsing the severity of the log lines 2016-02-10 12:09:07 -08:00
Diptanu Choudhury 776e57deb0 Adding newlines to loglines 2016-02-10 10:18:14 -08:00
Diptanu Choudhury 3a12204ce5 Updated comments 2016-02-10 08:13:08 -08:00
Diptanu Choudhury 0675282097 Simplified the logic of conversion of interface{} to byte array 2016-02-10 08:03:31 -08:00
Diptanu Choudhury 4b22221c27 Writing log lines from docker to files 2016-02-10 07:52:15 -08:00
Alex Dadgar 071216a730 Fix concurrent r/w to heartbeat time 2016-02-09 22:43:16 -08:00
Alex Dadgar 913f98f738 Make fingerprinting thread safe 2016-02-09 22:14:24 -08:00
Diptanu Choudhury 1e4c42f29d Starting the syslog collector along with a docker container 2016-02-09 18:24:30 -08:00
Diptanu Choudhury e592c229c8 Renamed the ExecutorPluginConfig 2016-02-09 12:59:05 -08:00
Diptanu Choudhury 96ddf38291 Merge branch 'master' into f-logrotator 2016-02-09 12:50:46 -08:00
Diptanu Choudhury 2054a7ed47 Removed unused imports in test 2016-02-09 12:31:14 -08:00
Diptanu Choudhury 9d6eed1fb4 Merge branch 'master' into f-logrotator 2016-02-09 12:25:44 -08:00
Diptanu Choudhury 477a159c9e Removing the killing executor pid tests 2016-02-09 11:29:02 -08:00
Diptanu Choudhury 587141f856 Removing taskDir from the exechandle 2016-02-09 10:21:47 -08:00
Diptanu Choudhury 0120aceb49 Merge branch 'r-executor-plugin' of github.com:hashicorp/nomad into r-executor-plugin 2016-02-09 10:17:44 -08:00
Diptanu Choudhury 8fca3625e2 Killing the userpid if the plugin is killed while the client is running 2016-02-09 10:17:33 -08:00
Alex Dadgar e7e7348727 Don't error killing exited process 2016-02-09 10:00:42 -08:00
Alex Dadgar 4fa7b35443 more time 2016-02-09 09:43:40 -08:00
Alex Dadgar 5f966ec57a Fix min duration 2016-02-08 19:46:46 -08:00
Alex Dadgar c8807e2927 Fix timeouts between signal and kill 2016-02-08 19:31:57 -08:00
Diptanu Choudhury 9a46dcb553 Fixed a test 2016-02-08 19:00:26 -08:00
Alex Dadgar 75473e88d2 Unmount special directories when task finishes 2016-02-08 18:51:11 -08:00
Diptanu Choudhury 4644f8a9d4 Added a test for merge 2016-02-08 16:27:31 -08:00
Diptanu Choudhury 1a13400f2d Moved the destroycgroup method into executor 2016-02-08 16:08:29 -08:00
Diptanu Choudhury fc8e099cc3 removing the prefix of the logger 2016-02-08 15:07:18 -08:00
Diptanu Choudhury 32e24e257a Appending names of sub-system before log lines 2016-02-08 14:47:10 -08:00
Diptanu Choudhury 6c85ed6c8e Removing pathExists from executor 2016-02-08 14:40:54 -08:00
Diptanu Choudhury 10fe104f97 Unmounting dev and proc when open can't reconnect with the plugin process 2016-02-08 14:31:03 -08:00
Diptanu Choudhury e89bcf52b8 Moving code to mount and unmount chroot into allocdir 2016-02-08 14:11:53 -08:00
Diptanu Choudhury e53ebc9e3c Extracted the cgroup info into isolation struct 2016-02-08 13:48:26 -08:00
Diptanu Choudhury 21677468cf Setting defaults for client max and min port 2016-02-08 13:29:53 -08:00
Diptanu Choudhury 088d2cba53 Making the plugin server return the same instance of executor rpc server 2016-02-08 11:56:48 -08:00
Diptanu Choudhury b8e4941862 Fixed merge conflicts 2016-02-08 10:24:27 -08:00
Diptanu Choudhury ea5a8c66ab Implemented the UpdateLogConfig method 2016-02-08 10:10:01 -08:00
Diptanu Choudhury f6f51a6926 Destroying the cgroup if we can't to executor in exec and java drivers 2016-02-08 10:05:39 -08:00
Diptanu Choudhury fa45e0b8ca Using net.IsLoopback to determine if ifc is a loopback device 2016-02-08 07:57:31 -08:00
Diptanu Choudhury 68d0105634 Isolating the plugin process from the nomad client 2016-02-07 22:33:48 -05:00
Diptanu Choudhury 4527410e33 Fixed merged conflict 2016-02-07 17:58:31 -05:00
Diptanu Choudhury 957a446edf Merge pull request #773 from hashicorp/docker-auth
Reading dockercfg files for authenticating with private registries
2016-02-06 18:03:39 -08:00
Alex Dadgar fdc7124032 Precise registration 2016-02-06 17:08:20 -08:00
Alex Dadgar c744e2f4f1 Update the consul service when the task/alloc changes 2016-02-06 17:08:20 -08:00
Alex Dadgar 40f510f168 interpreted variable docs 2016-02-06 15:35:07 -08:00
Diptanu Choudhury d0b6fb1993 Updated the docker auth config 2016-02-06 05:47:56 -08:00
Diptanu Choudhury 745bfaae7b Reading dockercfg files for authenticating with private registries 2016-02-06 05:43:30 -08:00
Diptanu Choudhury c9d2151f90 Changed a few comments 2016-02-05 18:07:06 -08:00
Diptanu Choudhury 1b9a54abec Updated comment 2016-02-05 17:40:06 -08:00