Alex Dadgar
65945a09fa
Agent test
2017-04-20 11:14:06 -07:00
Alex Dadgar
b3d7175e52
Agent revert
2017-04-20 11:14:06 -07:00
Michael Schurter
8926743106
Fix consul test build on Windows
2017-04-19 16:14:11 -07:00
Michael Schurter
83f9591d75
Thanks go vet!
2017-04-19 13:05:41 -07:00
Michael Schurter
e997ae44a5
Skip checks with TLSSkipVerify if it's unsupported
...
Fixes #2218
2017-04-19 12:45:34 -07:00
Michael Schurter
45a8635ea2
Add TLSSkipVerify support to api and parser
2017-04-19 12:45:34 -07:00
Michael Schurter
cdb7d2ebb6
Use go-version instead of manual version parsing
2017-04-19 12:42:48 -07:00
Michael Schurter
4910f867e7
Use spiffy new Go 1.8 subtest feature
2017-04-19 12:42:48 -07:00
Michael Schurter
3e8dd386ee
Forgot an important word
2017-04-19 12:42:48 -07:00
Michael Schurter
947e31e9c2
Only register HTTPS agent check when Consul>=0.7.2
...
Support for TLSSkipVerify in other checks coming soon!
2017-04-19 12:42:48 -07:00
Michael Schurter
383f21559e
Explain weird timer logic
2017-04-19 12:42:48 -07:00
Michael Schurter
4db840b54e
Metricsify new Consul client
2017-04-19 12:42:48 -07:00
Michael Schurter
59c687c940
Always fail script checks when deadline exceeded
2017-04-19 12:42:48 -07:00
Michael Schurter
ca29bb2cac
Test script check exit codes
2017-04-19 12:42:47 -07:00
Michael Schurter
6f6431ce0b
Follow _testing.go convention for testing tools
2017-04-19 12:42:47 -07:00
Michael Schurter
2a11508cc8
Rework to account for ports not being in IDs
...
Previous implementation assumed all struct fields were included in
service and check IDs. Service IDs never include port labels and check
IDs *optionally* include port labels, so lots of things had to change.
Added a really big test to exercise this.
2017-04-19 12:42:47 -07:00
Michael Schurter
6e0fd86361
Remove commits return value
...
...and still protect against leaking agent entries in Consul on
shutdown.
2017-04-19 12:42:47 -07:00
Michael Schurter
fb52bbfa45
Explain PortLabel handling in RegisterAgent
2017-04-19 12:42:47 -07:00
Michael Schurter
2728216f6f
Plumb alloc id + task name into script check logs
2017-04-19 12:42:47 -07:00
Michael Schurter
01b20cbb59
Stop being lazy and just type out struct{}{}
2017-04-19 12:42:47 -07:00
Michael Schurter
5e908dbf38
Use nifty testtask sleep command for xplat compat
2017-04-19 12:42:47 -07:00
Michael Schurter
8c433cfba1
Add comments, clarify names, fix PR comments
2017-04-19 12:42:47 -07:00
Michael Schurter
40b3987e90
Explain cleanup defer in test
2017-04-19 12:42:47 -07:00
Michael Schurter
7c8ad71da5
Fix comment to reflect reality
2017-04-19 12:42:47 -07:00
Michael Schurter
745ad9521f
Move ScriptExecutor to driver
2017-04-19 12:42:47 -07:00
Michael Schurter
926d141532
Fix shutdown when consul is down
2017-04-19 12:42:47 -07:00
Michael Schurter
87b28cfb75
Switch ServiceClient to synchronizing state
...
Previously it applied a stream of operations. Reconciling state is less
complex and error prone at the cost of slightly higher CPU/memory usage.
2017-04-19 12:42:47 -07:00
Michael Schurter
244251490a
Add UpdateTask method instead of Remove/Add
2017-04-19 12:42:47 -07:00
Michael Schurter
8118c41931
Remove some lies
2017-04-19 12:42:47 -07:00
Michael Schurter
0143bef8c7
Remove unused syncInterval
2017-04-19 12:42:47 -07:00
Michael Schurter
e204a287ed
Refactor Consul Syncer into new ServiceClient
...
Fixes #2478 #2474 #1995 #2294
The new client only handles agent and task service advertisement. Server
discovery is mostly unchanged.
The Nomad client agent now handles all Consul operations instead of the
executor handling task related operations. When upgrading from an
earlier version of Nomad existing executors will be told to deregister
from Consul so that the Nomad agent can re-register the task's services
and checks.
Drivers - other than qemu - now support an Exec method for executing
abritrary commands in a task's environment. This is used to implement
script checks.
Interfaces are used extensively to avoid interacting with Consul in
tests that don't assert any Consul related behavior.
2017-04-19 12:42:47 -07:00
Alex Dadgar
e7b128271f
Diff code fixes
2017-04-16 16:54:40 -07:00
Alex Dadgar
7b3f3f80fb
Status shows type of job
2017-04-15 17:08:05 -07:00
Alex Dadgar
34332af70e
GC and some fixes
2017-04-15 17:08:05 -07:00
Alex Dadgar
3145086a42
non-purge deregisters
2017-04-15 17:08:05 -07:00
Alex Dadgar
45ad95e862
Agent API + api package
2017-04-15 17:08:05 -07:00
Alex Dadgar
f97664512b
Upsert Job Histories
2017-04-15 17:08:05 -07:00
Adam Stankiewicz
4daf4cb8c9
Remove unnecessary parameter from NewHTTPServer
2017-04-10 16:24:49 +02:00
Alex Dadgar
81b78f77e1
Track task start/finish time & improve logs errors
...
This PR adds tracking to when a task starts and finishes and the logs
API takes advantage of this and returns better errors when asking for
logs that do not exist.
2017-03-31 16:14:11 -07:00
Alex Dadgar
103e8d21fb
Fix dispatch of periodic job
...
This PR fixes an issue in which when a periodic and parameterized job
was dispatched, an allocation would be immediately created.
Fixes https://github.com/hashicorp/nomad/issues/2470
2017-03-27 16:55:17 -07:00
Alex Dadgar
df9ce2680b
Fix output alignment and remove no-change DC
...
Old Output:
```
+/- Job: "example"
Datacenters {
Datacenters: "dc1"
}
+/- Task Group: "cache" (1 create/destroy update)
+/- RestartPolicy {
+/- Attempts: "10" => "9"
Delay: "25000000000"
Interval: "300000000000"
Mode: "delay"
}
+/- EphemeralDisk {
Migrate: "false"
+/- SizeMB: "300" => "301"
Sticky: "false"
}
+/- Task: "redis" (forces create/destroy update)
+ Meta[key]: "value"
+/- Config {
image: "redis:3.2"
+/- port_map[0][db]: "6379" => "6380"
}
+/- Resources {
CPU: "500"
DiskMB: "0"
IOPS: "0"
+/- MemoryMB: "256" => "257"
}
+/- Service {
Name: "global-redis-check"
PortLabel: "db"
+/- Check {
Command: ""
InitialStatus: ""
Interval: "10000000000"
Name: "alive"
Path: ""
PortLabel: ""
Protocol: ""
+/- Timeout: "2000000000" => "3000000000"
Type: "tcp"
}
}
```
New Output:
```
+/- Job: "example"
+/- Task Group: "cache" (1 create/destroy update)
+/- RestartPolicy {
+/- Attempts: "10" => "9"
Delay: "25000000000"
Interval: "300000000000"
Mode: "delay"
}
+/- EphemeralDisk {
Migrate: "false"
+/- SizeMB: "300" => "301"
Sticky: "false"
}
+/- Task: "redis" (forces create/destroy update)
+ Meta[key]: "value"
+/- Config {
image: "redis:3.2"
+/- port_map[0][db]: "6379" => "6380"
}
+/- Resources {
CPU: "500"
DiskMB: "0"
IOPS: "0"
+/- MemoryMB: "256" => "257"
}
+/- Service {
Name: "global-redis-check"
PortLabel: "db"
+/- Check {
Command: ""
InitialStatus: ""
Interval: "10000000000"
Name: "alive"
Path: ""
PortLabel: ""
Protocol: ""
+/- Timeout: "2000000000" => "3000000000"
Type: "tcp"
}
}
```
2017-03-21 11:31:06 -07:00
Alex Dadgar
40d0f3ce7d
Flush logs on err
2017-03-14 14:48:39 -07:00
Alex Dadgar
177bd14718
rename cpu_total_compute and docs
2017-03-14 14:15:49 -07:00
Alex Dadgar
a1a7941dec
Various fixes
...
This PR:
* Uses Go 1.8 executable lookup
* Stores any err message from stats init method
* Allows overriding of Cpu Compute for hosts where it can't be detected
2017-03-14 12:56:31 -07:00
Alex Dadgar
2a105c4eaa
Merge pull request #2427 from hashicorp/f-gc-limit
...
Limit parallelism during garbage collection
2017-03-14 10:45:29 -07:00
Alex Dadgar
70e4feb045
Limit parallelism during garbage collection
...
This PR introduces a parallelism limit during garbage collection. This
is used to avoid large resource usage spikes if garbage collecting many
allocations at once.
2017-03-10 16:27:00 -08:00
Ben Barnard
372303f4c6
Return AgentSelf struct from Agent.Self() instead of map
...
api.AgentSelf mirrors command.agent.agentSelf, and makes it easier to
work with the results of a call to Agent.Self()
2017-03-08 15:59:10 +01:00
Alex Dadgar
fa413b66f9
Merge pull request #2398 from TheBits/master
...
Remove 'disk space' from docs
2017-03-06 14:52:12 -08:00
Alex Dadgar
fcdefca1bf
Display Disk resources on CLI
...
Fixes https://github.com/hashicorp/nomad/issues/2401
2017-03-06 12:53:24 -08:00
Sergey Mezentsev
0078af8b08
Remove 'disk space' from docs
2017-03-04 22:54:49 +03:00