Commit Graph

2101 Commits

Author SHA1 Message Date
Armon Dadgar 4fef14163d api: Make channels receive only 2015-01-19 14:37:36 -10:00
Ryan Uber 2530e5ff05 agent: test agent rpc unix socket create failure 2015-01-19 09:56:59 -08:00
Ryan Uber b30af9536d 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 f45105383c fixed: requireOK should close Body on error 2015-01-19 11:53:21 +09:00
Mário Freitas f30237a92e Revert "fixed: body not closed for non HTTP 200 responses"
This reverts commit dafa61ad10.
2015-01-19 11:51:51 +09:00
Emil Hessman 376b86e556 README: go get -f requires Go 1.4+ 2015-01-18 05:30:52 +01:00
Emil Hessman 74775593d0 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 72109ecee1 Merge pull request #615 from ceh/vet-fix
command: address vet report in test
2015-01-17 18:23:58 -08:00
Ryan Uber 9d6e1bf2b1 Merge pull request #614 from ceh/vet-target
Makefile: add vet target
2015-01-17 18:23:16 -08:00
Emil Hessman 60011d3e2e 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 fe54356d61 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

  c9333b1b9b

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 58806bc7bb command: fix up env var/cli arg precedence and tests 2015-01-16 17:45:13 -08:00
Ryan Uber ba96535cfc 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 18b5ab3539 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 60bb23c19a Merge pull request #606 from hashicorp/f-maint
Support node and service maintenance mode
2015-01-16 15:59:01 -08:00
Ryan Uber ba2d0fa7e3 agent: maintenance logging + unique service check IDs 2015-01-16 15:38:13 -08:00
Ryan Uber 853cb504d6 website: document node maintenance mode 2015-01-16 15:38:13 -08:00
Ryan Uber 8cf4e9889e agent: test node maintenance mode 2015-01-16 15:38:13 -08:00
Ryan Uber 7748c62d09 agent: node maintenance mode works 2015-01-16 15:38:13 -08:00
Ryan Uber 9ee1e6e858 agent: maintenance mode api's are idempotent 2015-01-16 15:37:52 -08:00
Ryan Uber 8819d71f99 agent: maintenance mode is persistent 2015-01-16 15:37:52 -08:00
Ryan Uber 1f749ce3f2 website: document service maintenance endpoint 2015-01-16 15:37:52 -08:00
Ryan Uber 35c10a902f agent: test http endpoints for maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber 3fbb2be6c0 agent: test agent service maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber 2973cd9131 agent: first pass at service maintenance mode 2015-01-16 15:37:51 -08:00
Ryan Uber df52ac6bae Merge pull request #612 from hashicorp/f-refactor
Refactor UNIX domain socket
2015-01-16 14:34:19 -08:00
Ryan Uber 41ec10a120 command: fix env var reader for HTTP addr 2015-01-16 14:01:20 -08:00
Ryan Uber 7a585d7a9b website: update docs for agent socket options 2015-01-16 13:06:49 -08:00
Ryan Uber f01bb5cf3b agent: error if binding to existing socket file 2015-01-16 12:39:15 -08:00
Ryan Uber 4b635738bf api: simple test for unix socket connectivity 2015-01-16 10:56:47 -08:00
Ryan Uber 56c3e488a9 agent: test socket file overwrite 2015-01-16 10:37:13 -08:00
Ryan Uber e2eff5698e command: style fixes for env addr reading 2015-01-16 10:19:04 -08:00
Ryan Uber 4c3ec248a5 agent: fixing up tests 2015-01-16 09:58:37 -08:00
Ryan Uber bf48651c58 agent: only ignore errors on IsNotExist() 2015-01-16 09:14:52 -08:00
Mário Freitas dafa61ad10 fixed: body not closed for non HTTP 200 responses 2015-01-16 18:54:55 +09:00
Ryan Uber 4675cdf01c agent: beginning refactor 2015-01-16 00:45:03 -08:00
Ryan Uber 36f9924e51 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 9fcea08dbb 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 e9216fa47d 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 1c942386b6 consul: Use new LogCache to improve write throughput 2015-01-14 15:49:58 -08:00
Jeff Mitchell 5a9bcd36ef Update option text to describe how to use Unix listening sockets. 2015-01-14 20:22:59 +00:00
Jeff Mitchell 70dd5a1e81 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 32d2c6b848 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 0cc009c480 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 8362e3e9eb 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 11a3ce0bdd 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 c835a04054 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 7ed1449b6c api: Adding Destroy to cleanup a semaphore 2015-01-13 14:18:28 -08:00
Armon Dadgar 9608108e64 api: Adding Destroy to cleanup a lock 2015-01-13 14:01:50 -08:00
Armon Dadgar 94d7022a88 api: Add support for DeleteCAS 2015-01-13 13:57:48 -08:00