Commit graph

1941 commits

Author SHA1 Message Date
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
Armon Dadgar a12883a5be api: Adding Destroy to cleanup a lock 2015-01-13 14:01:50 -08:00
Armon Dadgar 18ebb1a8e9 api: Add support for DeleteCAS 2015-01-13 13:57:48 -08:00
Armon Dadgar f3baa0a113 command/agent: Minor cleanups 2015-01-13 12:18:18 -08:00
Armon Dadgar d80588f780 Merge pull request #592 from nicholascapo/check-http
command/agent: Add simple HTTP check type
2015-01-13 12:11:50 -08:00
Armon Dadgar 1bfe8efbac Merge pull request #595 from ebroder/dns-only-passing
Add "only_passing" option to DNS config
2015-01-13 12:07:22 -08:00
Armon Dadgar 1956c07034 consul: Fixing potential issue with blocking queries for {Session,ACL}.Get 2015-01-13 12:02:30 -08:00
Armon Dadgar 6da4761221 Merge pull request #600 from hashicorp/f-api-semaphore
Adding Semaphore support to API
2015-01-13 11:59:22 -08:00
Armon Dadgar 9a43063778 consul: Fixing blocking query returning old result 2015-01-13 11:51:24 -08:00
Armon Dadgar 2baa97dde5 api: Changing default semaphore key 2015-01-13 11:51:12 -08:00
Armon Dadgar 229ee483cb api: More reliable session check 2015-01-13 11:50:57 -08:00
Armon Dadgar 02566d0a02 api: Enable debug output from Consul for tests 2015-01-13 11:50:09 -08:00
Ryan Uber 15d7b7e948 api: make node health test more reliable 2015-01-13 11:25:32 -08:00