Commit Graph

2253 Commits

Author SHA1 Message Date
Armon Dadgar 6fcc743384 Adding new command 'lock' 2015-01-19 14:37:58 -10:00
Armon Dadgar 1aa8b0fc23 command/lock: First pass at lock 2015-01-19 14:37:48 -10:00
Armon Dadgar 1a6b160641 api: Make channels receive only 2015-01-19 14:37:36 -10:00
Ryan Uber 9ee9c5acd5 agent: test agent rpc unix socket create failure 2015-01-19 09:56:59 -08:00
Ryan Uber 5137388d43 Merge pull request #608 from imkira/fixBodyLeak
fixed: body not closed for non HTTP 200 responses
2015-01-19 09:33:06 -08:00
Mário Freitas 90b74ee4e2 fixed: requireOK should close Body on error 2015-01-19 11:53:21 +09:00
Mário Freitas 2db0a65a74 Revert "fixed: body not closed for non HTTP 200 responses"
This reverts commit dafa61ad10d67d1992201f8499ef681e01de8a09.
2015-01-19 11:51:51 +09:00
Emil Hessman f53c509136 README: go get -f requires Go 1.4+ 2015-01-18 05:30:52 +01:00
Emil Hessman 5f3d19db38 Makefile: update dependencies
Prevent build failures which may occur when dependencies is
not up to date by updating them with the go get -u flag.

Add the go get -f flag as well, to override the check that
each package has been checked out from the repo implied by
its import path.
2015-01-18 05:30:52 +01:00
Ryan Uber 1298baf30d Merge pull request #615 from ceh/vet-fix
command: address vet report in test
2015-01-17 18:23:58 -08:00
Ryan Uber 25defb97f0 Merge pull request #614 from ceh/vet-target
Makefile: add vet target
2015-01-17 18:23:16 -08:00
Emil Hessman 73ad8fcb84 command: address vet report in test
Fixes the following vet report:

command/rpc_test.go:61: missing argument for Fatalf(%s): format reads arg 3, have only 2 args
2015-01-17 07:57:11 +01:00
Emil Hessman 8f9e8a4d6f Makefile: add vet target
Add a vet target in order to catch suspicious constructs
reported by go vet.

Vet has successfully detected problems in the past,
for example, see

  c9333b1b9b472feb5cad80e2c8276d41b64bde88

Some vet flags are noisy. In particular, the following flags
reports a large amount of generally unharmful constructs:

```
  -assign: check for useless assignments
  -composites: check that composite literals used field-keyed
               elements
  -shadow: check for shadowed variables
  -shadowstrict: whether to be strict about shadowing
  -unreachable: check for unreachable code
```

In order to skip running the flags mentioned above, vet is
invoked on a directory basis with `go tool vet .` since package-
level type-checking with `go vet` doesn't accept flags.

Hence, each file is vetted in isolation, which is weaker than
package-level type-checking. But nevertheless, it might catch
suspicious constructs that pose a real issue.

The vet target runs the following flags on the entire repo:

```
  -asmdecl: check assembly against Go declarations
  -atomic: check for common mistaken usages of the
           sync/atomic package
  -bool: check for mistakes involving boolean operators
  -buildtags: check that +build tags are valid
  -copylocks: check that locks are not passed by value
  -methods: check that canonically named methods are canonically
            defined
  -nilfunc: check for comparisons between functions and nil
  -printf: check printf-like invocations
  -rangeloops: check that range loop variables are used correctly
  -shift: check for useless shifts
  -structtags: check that struct field tags have canonical format
               and apply to exported fields as needed
  -unsafeptr: check for misuse of unsafe.Pointer
```

Now and then, it might make sense to check the output of the
disabled flags manually.
For example, `VETARGS=-unreachable make vet` can detect several
lines of dead code that can be deleted, etc.
2015-01-17 07:44:25 +01:00
Ryan Uber 059866cce6 command: fix up env var/cli arg precedence and tests 2015-01-16 17:45:13 -08:00
Ryan Uber 49127722ec Merge pull request #610 from dave-tucker/bug/609
Don't forget to Shutdown the DNS Server!
2015-01-16 16:46:37 -08:00
Dave Tucker f026b8781e Don't forget to Shutdown the DNS Server!
Fixes #609

Signed-off-by: Dave Tucker <dave@dtucker.co.uk>
2015-01-17 00:30:53 +00:00
Ryan Uber 32d27c2dc8 Merge pull request #606 from hashicorp/f-maint
Support node and service maintenance mode
2015-01-16 15:59:01 -08:00
Ryan Uber f29ea9f637 agent: maintenance logging + unique service check IDs 2015-01-16 15:38:13 -08:00
Ryan Uber 106a54313b website: document node maintenance mode 2015-01-16 15:38:13 -08:00
Ryan Uber 6d284052fc agent: test node maintenance mode 2015-01-16 15:38:13 -08:00
Ryan Uber 8ea9eb87ea agent: node maintenance mode works 2015-01-16 15:38:13 -08:00
Ryan Uber 3b815cd0aa agent: maintenance mode api's are idempotent 2015-01-16 15:37:52 -08:00
Ryan Uber 8a4a8eb023 agent: maintenance mode is persistent 2015-01-16 15:37:52 -08:00
Ryan Uber 3dba905ce4 website: document service maintenance endpoint 2015-01-16 15:37:52 -08:00
Ryan Uber 9ceb0f19d8 agent: test http endpoints for maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber 7d4801db29 agent: test agent service maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber 4f4eb204f6 agent: first pass at service maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber 559af1485c Merge pull request #612 from hashicorp/f-refactor
Refactor UNIX domain socket
2015-01-16 14:34:19 -08:00
Ryan Uber 952fac6552 command: fix env var reader for HTTP addr 2015-01-16 14:01:20 -08:00
Ryan Uber 8ded1063db website: update docs for agent socket options 2015-01-16 13:06:49 -08:00
Ryan Uber 263614d596 agent: error if binding to existing socket file 2015-01-16 12:39:15 -08:00
Ryan Uber 7c6455e1ba api: simple test for unix socket connectivity 2015-01-16 10:56:47 -08:00
Ryan Uber 328204f535 agent: test socket file overwrite 2015-01-16 10:37:13 -08:00
Ryan Uber 208b6c0677 command: style fixes for env addr reading 2015-01-16 10:19:04 -08:00
Ryan Uber 705801ccca agent: fixing up tests 2015-01-16 09:58:37 -08:00
Ryan Uber 61d2f71d14 agent: only ignore errors on IsNotExist() 2015-01-16 09:14:52 -08:00
Mário Freitas 18c4d6ea9e fixed: body not closed for non HTTP 200 responses 2015-01-16 18:54:55 +09:00
Ryan Uber ad19c0afc2 agent: beginning refactor 2015-01-16 00:45:03 -08:00
Ryan Uber 17cf8cc4f8 Merge pull request #587 from jefferai/unixlisten
RPC and HTTP interfaces fully generically-sockified so Unix is supported...
2015-01-15 15:37:40 -08:00
Jeff Mitchell 9bd66c70e5 Ensure a socket is created for permissions adjustment tests and fix some
items pointed out in the code review

This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-15 14:33:44 +00:00
Armon Dadgar c84643590a Merge pull request #604 from hashicorp/f-log-cache
consul: Use new LogCache to improve write throughput
2015-01-14 15:50:54 -08:00
Armon Dadgar 133cf457a3 consul: Use new LogCache to improve write throughput 2015-01-14 15:49:58 -08:00
Jeff Mitchell 9777ac55e6 Update option text to describe how to use Unix listening sockets. 2015-01-14 20:22:59 +00:00
Jeff Mitchell 5cd607b89a Unix socket-based HTTP API test functionality. As a consequence this
also required making some hardcoded values into more generic
functionality, which is generally a good thing. I verified that each
test function that I modified still passed.:

This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:49:37 +00:00
Jeff Mitchell c3707d3ee5 Add a Unix socket RPC test. I modified some code in the testing library to not make assumptions about the listening socket; all RPC tests still pass. Still to do: Unix socket HTTP test.
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Jeff Mitchell f88536f192 Remove unnecessary ClientListenerAddr function. Rework config test functions to be cleaner. Start of runtime tests.
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Jeff Mitchell 4838beec4e Tests for populateUnixSocket. Still need to write tests for the other major function, and basic socket listening tests.
This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Jeff Mitchell 400eadd671 RPC and HTTP interfaces fully generically-sockified so Unix is supported.
Client works for RPC; will honor CONSUL_RPC_ADDR. HTTP works via consul/api;
honors CONSUL_HTTP_ADDR.

The format of a Unix socket in configuration data is:
"unix://[/path/to/socket];[username or uid];[gid];[mode]"

Obviously, the user must have appropriate permissions to create the socket
file in the given path and assign the requested uid/gid. Also note that Go does
not support gid lookups from group name, so gid must be numeric. See
https://codereview.appspot.com/101310044

When connecting from the client, the format is just the first part of the
above line:
"unix://[/path/to/socket]"

This code is copyright 2014 Akamai Technologies, Inc. <opensource@akamai.com>
2015-01-14 19:31:21 +00:00
Armon Dadgar b338bd4058 Merge pull request #601 from hashicorp/f-api-clean
Adding KV.DeleteCAS and {Lock,Semaphore}.Destroy.
2015-01-13 14:20:07 -08:00
Armon Dadgar af186ac54a api: Adding Destroy to cleanup a semaphore 2015-01-13 14:18:28 -08:00