Commit graph

3132 commits

Author SHA1 Message Date
Chris Bednarski 9cad290b18 Merge pull request #436 from hashicorp/f-docker-cleanup
Cleanup docker driver
2015-11-17 17:13:17 -08:00
Chris Bednarski b22b5eb3aa Inline err assignment 2015-11-17 17:12:45 -08:00
Chris Bednarski a2f4188246 Streamline reading boolean values from the driver / job config 2015-11-17 16:58:23 -08:00
Chris Bednarski 67ee502acb Added missing linebreaks for log.Printf calls 2015-11-17 16:49:01 -08:00
Chris Bednarski 43aaf94383 Do Itoa once so line items are simpler 2015-11-17 16:31:47 -08:00
Chris Bednarski ffd3f114dd Merge branch 'docker-allow-to-add-labels' of https://github.com/fernandezvara/nomad into f-docker-labels 2015-11-17 16:02:42 -08:00
Chris Bednarski 3b7c252090 Improve phrasing in log messages 2015-11-17 15:17:44 -08:00
Alex Dadgar 7551a263c5 Merge pull request #389 from achanda/name
Set a name for the container
2015-11-17 15:07:23 -08:00
Chris Bednarski 629cdd6baa Clean up extraneous variables 2015-11-17 14:51:38 -08:00
Chris Bednarski 7f117b3b55 That's not a declaration 2015-11-17 14:27:58 -08:00
Chris Bednarski 89c6f56059 Remove restrictions from docker networking mode; we assume users know what they are doing 2015-11-17 14:25:10 -08:00
Chris Bednarski f2e8357e4a Merge branch 'master' into f-docker-cleanup 2015-11-17 14:20:29 -08:00
Alex Dadgar 171a23cb74 Merge branch 'master' of https://github.com/hashicorp/nomad 2015-11-17 12:04:10 -08:00
Alex Dadgar 11b43f8e1f Avoid calling destroy twice 2015-11-17 12:03:59 -08:00
Antonio Fernández f7f83ee81c allow to set labels on docker containers 2015-11-17 14:12:49 +01:00
Carlos Diaz-Padron 77923255b4 Add hostname parameter to Docker driver 2015-11-16 22:44:44 -08:00
Chris Bednarski bac9bd60dc Improve logging and DRY some of the port mapping code 2015-11-16 19:55:49 -08:00
Chris Bednarski e9bc0905d1 Add missing param and error in the missing case so default will work as expected 2015-11-16 19:55:08 -08:00
Chris Bednarski bd4c6b371d Added config reader for booleans 2015-11-16 19:30:37 -08:00
Diptanu Choudhury 03847dd65a Addressed some review comments 2015-11-16 22:29:06 -05:00
Chris Bednarski d00c700318 go fmt 2015-11-16 16:23:03 -08:00
Chris Bednarski 714e1b52d1 Change logging port as %d to logging port.Value 2015-11-16 16:05:28 -08:00
Chris Bednarski 9f40143684 Merge branch 'master' into f-port-labels 2015-11-16 16:02:38 -08:00
Alex Dadgar ea0edd8c2f Change SetExitMessage from taking a string to an error 2015-11-16 15:14:21 -08:00
Alex Dadgar e76a613974 Use loop not recursion 2015-11-16 15:14:21 -08:00
Alex Dadgar b649039448 Fix the capacity 2015-11-16 15:14:21 -08:00
Alex Dadgar 82f51601db Track Task State in the client and capture Wait results 2015-11-16 15:14:21 -08:00
Diptanu Choudhury c5102975e3 Made the code more DRY 2015-11-16 13:10:57 -08:00
Diptanu Choudhury e40229aed6 Fixed the docker auth config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 7d44725370 Adding comments to fields in the docker driver config 2015-11-16 13:10:57 -08:00
Alex Dadgar fa60d86fe5 mapstructure close quotes 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 5e876e9c86 Fixed the java driver config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 9d76572831 Making sure that there is only one port_map block in the docker driver config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 3b3907e367 Fixed the exec driver config 2015-11-16 13:10:57 -08:00
Diptanu Choudhury ba9f101660 Fixed the test related to setting env variables in tasks 2015-11-16 13:10:57 -08:00
Diptanu Choudhury ad4248e087 Fixed the allocdir tests 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 0673b832fb Fixed compilation issues with driver tests 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 69efc89436 Fixed the client tests 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 78a0f82bc5 Making the config for drivers public 2015-11-16 13:10:57 -08:00
Diptanu Choudhury 4e05b27111 Implemented port labeling and driver configs 2015-11-16 13:10:57 -08:00
Carlos Diaz-Padron ffe67d8910 Remove CGO dependency for user lookup in allocdir
os/user's user.Lookup requires that the artifact be compiled with CGO
support enabled. This change instead reads /etc/passwd directly.

The code was acquired from docker/docker#1096
2015-11-15 21:26:34 -08:00
Chris Bednarski fc1c28357b Merge pull request #412 from hashicorp/f-docker-expose
Expose provisioned ports for docker containers
2015-11-13 11:41:13 -08:00
Guillaume Jacquet 4a3e709eef Fix AWS metadata url
Fix URL. It was printing an error message on startup:
```
2015/11/13 15:49:21 [ERR] fingerprint.env_aws: Error querying AWS Metadata URL, skipping
```

By the way is it safe to use latest? Is there a chance that Amazon decides to change the format of the metadata? It could be safer to use something like `http://169.254.169.254/2014-11-05/meta-data`
2015-11-13 11:03:05 -05:00
Chris Bednarski ef00ab3198 Change this to a valid IP address so docker can bind to it 2015-11-12 21:46:59 -08:00
Chris Bednarski 2f05a15aa5 Expose mapped ports 2015-11-12 17:23:04 -08:00
Diptanu Choudhury 3b4cb6dbc9 Saving state of the Task Runner while it's trying to update it 2015-11-12 15:53:42 -08:00
Alex Dadgar d3e2455459 Merge pull request #408 from hashicorp/f-client-restore
Client Restore State Fixes
2015-11-11 12:32:11 -08:00
Chris Bednarski 7fb75525b0 Merge pull request #407 from hashicorp/f-docker-host-env
Change Docker ENV behavior
2015-11-10 19:30:11 -08:00
Alex Dadgar 6119f42d65 Check for previous embeds at entry level not folder level 2015-11-10 18:10:02 -08:00
Chris Bednarski b637ca7f60 Added some comments to the test to explain why we're doing stuff this way 2015-11-10 17:48:06 -08:00
Chris Bednarski c5682fc751 Change dockerIs* to accept *testing.T for logging 2015-11-10 17:43:08 -08:00
Alex Dadgar 7c6b80a8fd Merge pull request #400 from nak3/fingerprint-test
Update fingerprint test codes
2015-11-10 17:06:16 -08:00
Alex Dadgar 787164044d Enable Open tests for Exec/Java 2015-11-10 16:59:52 -08:00
Alex Dadgar 594cc6b9a8 Enable AllocRunner_SaveRestoreState test 2015-11-10 16:53:59 -08:00
Alex Dadgar 1861d8312b Update test 2015-11-10 16:49:38 -08:00
Alex Dadgar e6a8a23544 Increase time out 2015-11-10 16:37:17 -08:00
Alex Dadgar 90336a160e Guard mounting dev/ and proc/ and TaskRunner_RestoreState test 2015-11-10 16:35:33 -08:00
Chris Bednarski 7f3a2595af Change Docker fingerprinter to INFO and not error when the connection to the daemon fails; we simply assume docker isn't there. 2015-11-10 16:18:52 -08:00
Alex Dadgar 933498e388 Client Restore test 2015-11-10 16:03:18 -08:00
Chris Bednarski e5688620e4 Changed behavior for Docker ENV
- Docker ENV variables now work the same way in production, dev, and test
- Docker ENV variables are *ignored* if docker.endpoint is present in the Nomad config file
- Remote tests now work correctly
2015-11-10 15:54:31 -08:00
Alex Dadgar 2c7da463b8 Fix alloc_dir mounting through task restarts 2015-11-10 14:12:30 -08:00
Diptanu Choudhury 210f744503 Returning back if alloc runner isn't saved 2015-11-09 17:04:53 -08:00
Diptanu Choudhury 4ba5434898 Exctracted a method to save the alloc runner state 2015-11-09 16:59:02 -08:00
Diptanu Choudhury c618d7ed58 Inlining error check 2015-11-09 16:45:42 -08:00
Diptanu Choudhury 38a047ec6d Refactored Save State of Alloc runner 2015-11-09 16:15:11 -08:00
Alex Dadgar 19d0c97da7 Client restores state properly 2015-11-09 15:55:31 -08:00
Diptanu Choudhury 5ef34f7560 Returning once we have an error while saving a task that doesn't exist 2015-11-09 12:44:14 -08:00
Diptanu Choudhury 0252b49c17 Updating snapshots of a TaskRunner when status of Task changes 2015-11-09 12:36:07 -08:00
Kenjiro Nakayama 658118ed5f Update fingerprint test codes 2015-11-07 23:16:43 +09:00
Alex Dadgar 3103e426f7 Merge branch 'master' of https://github.com/hashicorp/nomad 2015-11-06 15:26:11 -08:00
Alex Dadgar edb43b27df Don't set the alloc status twice when not restarting 2015-11-06 15:26:01 -08:00
Chris Bednarski 24068f445d Merge pull request #399 from hashicorp/f-windows-networking
Use the same network fingerprinter for *nix and windows
2015-11-06 14:04:06 -08:00
Chris Bednarski 2719c4ffd7 Merge branch 'master' into f-windows-networking 2015-11-06 13:32:28 -08:00
Alex Dadgar d56f9715c9 Comments on alive 2015-11-06 11:26:14 -08:00
Alex Dadgar 2321bddf2e Add Valid command to spawner and make executors check when opening 2015-11-06 11:23:27 -08:00
Alex Dadgar f36685c7d2 Merge pull request #392 from hashicorp/f-raw-exec-use-exec
RawExec driver uses exec_basic
2015-11-06 10:48:55 -08:00
Alex Dadgar 71be38abe0 merge 2015-11-06 10:42:49 -08:00
Alex Dadgar a5940ef25e Merge 2015-11-06 10:41:42 -08:00
Alex Dadgar bb9f2aa66c Docker privileged checks if host enabled it 2015-11-06 10:38:54 -08:00
Alex Dadgar 149366b89e Merge pull request #390 from the-control-group/f-docker-driver-options
Expanded docker driver options
2015-11-06 10:32:54 -08:00
Abhishek Chanda 94a4d00f4b Set a name for the container. 2015-11-06 03:33:57 +00:00
Alex Dadgar 135d8630f6 Merge pull request #391 from hashicorp/f-periodic-fingerprint
Add support for periodic fingerprints and make consul periodic
2015-11-05 18:49:42 -08:00
Alex Dadgar 285f2cd0a9 Make periodic fingerprinting log the error 2015-11-05 18:47:16 -08:00
Diptanu Choudhury b035661d7d Passing in the AllocID to exec context so that it can be used in the drivers 2015-11-05 18:34:04 -08:00
Shiem Edelbrock 5e2430de74 Fix build
returned wrong value, and forot a ":" :/
2015-11-05 17:57:51 -08:00
Diptanu Choudhury e3388a5214 Merge pull request #393 from hashicorp/f-client-side-restarts
Part 2 - Client side restarts
2015-11-05 17:43:04 -08:00
Diptanu Choudhury c28702cb2d Refactored test 2015-11-05 17:33:03 -08:00
Diptanu Choudhury 3d5e02b3d7 Fixed some tests and refactored logic 2015-11-05 17:30:41 -08:00
Diptanu Choudhury d091c94563 Incremeneting the counter once we calculate next restart 2015-11-05 17:13:25 -08:00
Diptanu Choudhury fff38106ae Added some comments to code 2015-11-05 16:48:15 -08:00
Shiem Edelbrock 1169bef912 Updated priviliged option, added client priviliged option
- Added error checking on priviliged mode.
- Added `docker.privileged.enabled` to client config/fingerprint
2015-11-05 16:40:20 -08:00
Diptanu Choudhury a2a73b16d9 Added the client word to log lines 2015-11-05 16:39:57 -08:00
Diptanu Choudhury 44569d908f Passing restart tracker in the task runner 2015-11-05 16:38:19 -08:00
Diptanu Choudhury df7391f7df Fixing the test 2015-11-05 15:26:00 -08:00
Diptanu Choudhury 86be2bf0be Cleaned up the logic to calculate restart duration 2015-11-05 15:16:29 -08:00
Alex Dadgar 880d567836 Merge pull request #388 from hashicorp/f-basic-exec-use-spawner
Basic executor uses spawner and an executor test harness
2015-11-05 13:57:11 -08:00
Alex Dadgar 5f1b6e70b0 Client handles periodic fingerprinters 2015-11-05 13:46:17 -08:00
Alex Dadgar 5f84878ffb Add consul fingerprinter to builtin list; sort list; fix bad error in consul fingerprinter 2015-11-05 13:46:16 -08:00
Alex Dadgar f9fd83c696 Merge fix 2015-11-05 13:46:02 -08:00
Alex Dadgar d14bc26607 Calling incorrect executor build method 2015-11-05 11:54:51 -08:00
Clint e494a24335 Merge pull request #381 from hashicorp/f-getter-refactor
client/drivers: Refactor to use Getter wrapper
2015-11-05 13:47:42 -06:00
Alex Dadgar 04aecbda0b Fix typo 2015-11-05 11:31:50 -08:00
Diptanu Choudhury 3659335de1 Fixed the log statements 2015-11-05 11:13:05 -08:00
Diptanu Choudhury ea854a9220 Added the logic to restart Tasks if possible 2015-11-05 11:13:04 -08:00
Diptanu Choudhury b64ed61022 Setting the restart policy to AllocRunner and Task Runners 2015-11-05 11:13:04 -08:00
Alex Dadgar 3cf7dfb588 Merge pull request #377 from nak3/selinux-docker-driver
Apply SELinux label to allocate directory of docker driver
2015-11-05 10:54:48 -08:00
Shiem Edelbrock adb8d4c1f7 Merge branch 'master' of https://github.com/hashicorp/nomad into f-docker-driver-options
* 'master' of https://github.com/hashicorp/nomad: (59 commits)
  Move the executor and spawn package into driver
  Remove file watching
  Check if the PID is alive instead of heartbeating through modify time
  Update CHANGELOG.md
  nomad/watch: add a note about the Item struct
  go fmt this file
  Vet errors
  Search path
  Update website
  Make a basic executor that can be shared and fix some fingerprinting/tests
  Small improvements
  Use const value for AWS metadata URL
  Create Spawn pkg that handles IPC with the spawn-daemon and update exec_linux to use that
  Fixed the restart policy syntax
  Introducing vars to create default batch and service restart policies
  Fixed the tests
  Declaring Batch and Service default restart policies
  Fixing tests to not create a TG without restart policies
  This option only work -> This option only works
  leave -> leaving
  ...
2015-11-05 10:48:09 -08:00
Shiem Edelbrock c174f4819b Added task configuraton options for docker driver
- Added `priviliged` option to task config to allow containers to run in
 priviliged mode.
- Added `dns-servers` option to task config to allow containers to use
  custom DNS servers
- Added `search-domains` option to task config to allow containers to
  use custom dns search domains
- Added authentication options (under key namespace `auth.*`) to allow
  authentication on a task level for docker remote.
- Updated site docs to reflect changes
2015-11-05 10:47:41 -08:00
Alex Dadgar 3cc2dd52b6 exec_basic uses Spawner; create shared test harness for executors 2015-11-05 09:58:57 -08:00
Clint Shryock fb8066d8f3 add checksums to tests, formatting after rebase 2015-11-05 09:23:45 -06:00
Clint Shryock 1a35649ea1 remove debug line 2015-11-05 08:55:30 -06:00
Clint Shryock 145a2e3610 refactor drivers to use new getter 2015-11-05 08:55:30 -06:00
Clint Shryock 291dd3dfb1 add getter package, a thin wrapper of go-getter 2015-11-05 08:53:11 -06:00
Alex Dadgar 587031f14d Get rid of exec.cmd struct and setuid file 2015-11-04 17:20:52 -08:00
Alex Dadgar 4259d3a43c Move the executor and spawn package into driver 2015-11-04 16:53:27 -08:00
Alex Dadgar f210fcd1a6 Merge pull request #380 from hashicorp/f-daemonize
Improve spawn-daemon and Nomad Client usage of it
2015-11-04 16:44:50 -08:00
Alex Dadgar 7d42702d28 Remove file watching 2015-11-04 16:38:28 -08:00
Kenjiro Nakayama 1e47dd4c7d Apply SELinux label to allocate directory of docker driver 2015-11-05 09:06:22 +09:00
Alex Dadgar 81140f8787 Check if the PID is alive instead of heartbeating through modify time 2015-11-04 14:50:44 -08:00
Alex Dadgar 7f9fd5ec36 Vet errors 2015-11-03 13:37:45 -08:00
Alex Dadgar d83777f198 Make a basic executor that can be shared and fix some fingerprinting/tests 2015-11-03 12:47:48 -08:00
Alex Dadgar 271702f4a2 Small improvements 2015-11-03 10:50:30 -08:00
Kenjiro Nakayama 21f537339e Use const value for AWS metadata URL 2015-11-04 00:06:14 +09:00
Alex Dadgar 5562fc7672 Create Spawn pkg that handles IPC with the spawn-daemon and update exec_linux to use that 2015-11-02 20:28:37 -08:00
Chris Bednarski a67a78a2d9 Use the same network fingerprinter for *nix and windows 2015-10-30 16:48:02 -07:00
Diptanu Choudhury cae9b40877 Merge pull request #356 from hashicorp/network-fingerprint-refactor
Network fingerprint refactor
2015-10-29 16:59:54 -07:00
Alex Dadgar 93e1b49278 Merge pull request #352 from hashicorp/f-qemu-windows
Get Qemu to fingerprint and test properly on both windows and linux
2015-10-29 16:57:29 -07:00
Alex Dadgar 01e0be4cc6 Add comment explaining the qemu-img command on windows 2015-10-29 16:57:02 -07:00
Diptanu Choudhury e55bbe5f2c Refactored code 2015-10-29 16:16:10 -07:00
Diptanu Choudhury 17d430e46c Renamed BasicNetworkInterfaceDetector to DefaultNetworkInterfaceDetector 2015-10-29 15:55:49 -07:00
Alex Dadgar 72fea7d2b5 Comments 2015-10-29 15:39:26 -07:00
Alex Dadgar ec2367baec Cleanup exec_linux, force cgroups, check for systemd and update the Open() api 2015-10-29 15:26:35 -07:00
Diptanu Choudhury 1360f8c6fa Fixed a debug message 2015-10-29 15:17:40 -07:00
Diptanu Choudhury d31f567484 Fixed style of a debug log 2015-10-29 15:15:44 -07:00
Diptanu Choudhury 08302d43ee Added a test to ensure we are not selecting devices which are not marked as UP or loopback and have no IP addresses 2015-10-29 15:14:13 -07:00
Diptanu Choudhury b048919b63 Added some coments 2015-10-29 11:05:58 -07:00
Diptanu Choudhury 6400273cf8 Added tests for testing detecting default device 2015-10-29 11:01:15 -07:00
Alex Dadgar 2781cbbde1 Exec driver only applies on linux as root 2015-10-28 17:22:04 -07:00
Diptanu Choudhury b78c00f255 Introduced an interface to detect network devices so that we can mock it for tests 2015-10-28 15:58:40 -07:00
Diptanu Choudhury f0e445d8f5 Refactored the findInterfaces method to make it more clear 2015-10-28 15:48:08 -07:00
Diptanu Choudhury a3d79ec589 Some coding style changes 2015-10-28 15:03:11 -07:00
Diptanu Choudhury 9b86b2313f We don't want lo and PPP in production 2015-10-28 14:44:46 -07:00
Diptanu Choudhury df5efd1e24 Added more information to log 2015-10-28 14:41:13 -07:00
Diptanu Choudhury 58bf6047a7 Adding more information to errors 2015-10-28 14:32:13 -07:00
Diptanu Choudhury 2464789b73 Added more comments 2015-10-28 14:03:33 -07:00
Diptanu Choudhury 915be5e86c Selecting the ipv4 address if there are ipv4 and ipv6 addresses configured for an interface 2015-10-28 13:38:28 -07:00
Diptanu Choudhury fffb0ed5ae Exctracted a method to detect network interface 2015-10-28 11:11:13 -07:00
Alex Dadgar 9f7dcc4ced Use same binary as Fingerprint in the QemuCompatible function 2015-10-28 10:28:53 -07:00
Diptanu Choudhury 7a15cf0e45 Fix merge conflicts 2015-10-28 08:54:29 -07:00
Kenjiro Nakayama a79ae3c546 Assign IP when network device is specified 2015-10-28 21:19:06 +09:00
Alex Dadgar a5a1e45f4b Get Qemu to fingerprint and test properly on both windows and linux 2015-10-27 15:27:11 -07:00
Diptanu Choudhury 809f360743 Using the Go stdlib APIs to detect IP Address of a device 2015-10-27 14:14:25 -07:00
Diptanu Choudhury ca99960cc1 Merge pull request #334 from nak3/set-default-net-interface
Set default network interface rather than eth0
2015-10-27 11:30:03 -07:00
Kenjiro Nakayama e688dc3826 Set default network interface rather than eth0 for non-dev mode, and use loopback device for dev mode by default 2015-10-28 02:03:48 +09:00
Abhishek Chanda 70293e9bc8 Run gofmt 2015-10-26 19:24:37 +00:00
Clint 4b0dc2cb39 Merge pull request #288 from hashicorp/f-go-getter
Drivers: Use go-getter for artifact retrieval, add artifact support to Exec, Raw Exec drivers
2015-10-26 10:00:29 -05:00
Clint Shryock 343daeb1ea drivers: Add/Use go-getter to fetch remote binaries
Updates Qemu, Java drivers to use go-getter to fetch binaries
Adds remote artifact support for Exec, Raw Exec drivers
2015-10-26 09:40:06 -05:00
Kenjiro Nakayama fa005d75fa Set default network interface rather than eth0 2015-10-25 23:32:54 +09:00
Alex Dadgar b5caa6c5bd Merge branch 'master' of https://github.com/hashicorp/nomad 2015-10-23 16:23:54 -07:00
Alex Dadgar d2b23c9143 Format rkt_test 2015-10-23 16:23:43 -07:00
Abhishek Chanda 6ecab13b5d Cleanup tests
- Consolidate checking if non-windows and if qemu is installed
- Fix non-windows check
2015-10-23 14:19:22 -07:00
Jeff Mitchell 959c175ca1 Update the location of cleanhttp 2015-10-22 14:21:07 -04:00
Alex Dadgar 1652e443d8 Merge pull request #319 from hashicorp/cleanhttp
Use cleanhttp for truly clean clients and transports.
2015-10-22 09:52:54 -07:00
Jeff Mitchell cea5fd9081 Use cleanhttp for truly clean clients and transports. 2015-10-22 10:58:23 -04:00
Abhishek Chanda 81da6ce54e Just put the version as string 2015-10-21 21:09:04 -07:00
Alex Dadgar c3fbce46b7 Update cgroup CPU to use int comparison not float 2015-10-19 13:33:22 -07:00
Alex Dadgar 489b9a925b Check for invalid CPU limit for cgroups 2015-10-19 11:28:05 -07:00
Alex Dadgar fd77180d64 Merge pull request #291 from hashicorp/d-rkt-volume-mounts-blocked
Document that Rkt doesn't support task directory mounting
2015-10-16 17:07:53 -07:00
Abhishek Chanda 9e541450c2 Actually append jvm opts to the CLI
- Also adds a test
2015-10-16 22:45:16 +00:00
Abhishek Chanda dfbdb10fcb No need to pass jvm_options initially 2015-10-16 12:44:43 -07:00
Abhishek Chanda ab1a8f3532 Some minor style cleanups 2015-10-16 12:44:33 -07:00
Abhishek Chanda 6ab97078e5 Support passing options to the JVM in java driver
Closes #292
2015-10-16 12:44:33 -07:00
Alex Dadgar cadc738fa0 Fix broken test 2015-10-16 10:11:31 -07:00
Alex Dadgar f185701d6d Rkt driver clears task environment variables 2015-10-15 18:19:13 -07:00
Alex Dadgar 384a622c59 Add clearing to environment variables 2015-10-15 18:13:05 -07:00
Alex Dadgar c7fd8993c1 Change two helper functions to be methods 2015-10-15 17:47:14 -07:00
Alex Dadgar a0d9f8dd33 Remove debug lines 2015-10-15 17:30:40 -07:00
Alex Dadgar 2f6a279d09 Docker alloc dir tests and test fixes 2015-10-15 16:59:08 -07:00
Alex Dadgar 1d15f6eda6 Bind alloc dir and task local dir to docker containers and parse args correctly 2015-10-15 16:40:07 -07:00
Abhishek Chanda 953bd8b53f Trim extra newline from kernel version 2015-10-15 00:54:21 -07:00
Abhishek Chanda dbe9fa9f27 Run gofmt on the docker driver 2015-10-13 23:21:16 +00:00
Abhishek Chanda 36dc8a5a18 Do not default to a network mode
Makes the driver error out when a wrong or un-supported
network_mode is used
2015-10-13 10:57:21 -07:00
Alex Dadgar 76ec48bfce Merge pull request #215 from Carevoyance/gce_fingerprint
Add GCE fingerprinting functionality
2015-10-12 16:14:32 -07:00
Daniel Imfeld c9c8dee48e More syntax cleanup 2015-10-12 17:57:45 -05:00
Daniel Imfeld 9730df8411 Fix old comments and other syntax cleanup 2015-10-12 16:56:33 -05:00
Alex Dadgar 3c7bbc6fd7 Update driver config names for consistency and make the trust_prefix optional 2015-10-12 14:37:56 -07:00
Alex Dadgar 9af8e8d92d Log starting command 2015-10-12 14:33:19 -07:00
Alex Dadgar 6417c506ad Capture Rkt logs 2015-10-12 14:33:18 -07:00
Alex Dadgar cd3135c874 Separate args from exec command; inject environment variables and general cleanup of Rkt driver 2015-10-12 14:33:18 -07:00
Alex Dadgar a4035050e8 Change Docker/Rkt to set driver to 1 not true for consistency 2015-10-12 13:15:37 -07:00
Alex Dadgar c56017179f Fix raw exec test race condition 2015-10-09 20:56:28 -07:00
Daniel Imfeld 9f58d85762 GCE fingerprinter no longer updates network resources
It has nothing to add that the generic fingerprinters aren't
finding on their own already.
2015-10-09 18:34:57 -05:00
Alex Dadgar 540007c1a3 Merge pull request #237 from hashicorp/f-raw-exec-driver
A raw fork/exec driver that provides no isolation.
2015-10-09 11:30:12 -07:00
Alex Dadgar db0ba9688d Better parsing of raw_exec option and updated docs 2015-10-09 11:29:59 -07:00
Daniel Imfeld cbe349b8b4 Add a few more GCE-specific attributes:
* cpu-platform
* scheduling.automatic-restart
* scheduling.on-host-maintenance
* network.NETWORKNAME=true
2015-10-09 09:10:40 -05:00
Chris Bednarski 0d6c75eefb Merge pull request #225 from hashicorp/b-docker-port
Change docker default port to support windows and boot2docker
2015-10-08 23:50:11 -07:00
Alex Dadgar 1570cf1a77 Merge pull request #240 from crosbymichael/wait
Reap process after sending kill signal
2015-10-08 17:10:23 -07:00
Michael Crosby 5fee9f37ec Reap process after sending kill signal
Without waiting on the process after sending a kill will cause zombies
and we all know what happens when we have a zombies outbreak.

There are other calls to kill in this file but they are done on the main
process for the task so they should have the wait method called at
sometime in their lifecycle.
2015-10-08 16:54:41 -07:00
Alex Dadgar cd44cc9ec6 Fix go vet format errors in exec_linux 2015-10-08 16:47:29 -07:00
Alex Dadgar 8130510a5a Fix AWS Networking Fingerprint tests failing when actually on AWS 2015-10-08 12:49:43 -07:00
Chris Bednarski a9f1f64199 Use DefaultDockerHost from fsouza upstream 2015-10-08 12:35:19 -07:00
Alex Dadgar 751a17ef0c Actually add the files 2015-10-08 12:19:39 -07:00
Alex Dadgar 9d1d179deb Change name from pexec to raw_exec; hamming distance one seemed like a bad idea 2015-10-08 12:19:39 -07:00
Alex Dadgar dbbaf03b98 Privileged exec driver 2015-10-08 12:19:39 -07:00
Chris Bednarski be93bbee76 Merge pull request #233 from hashicorp/docs-executor
Clarified package documentation for executor
2015-10-08 11:36:11 -07:00
Chris Bednarski 2574655a8c Insert missing 'may be' and clean up some other formatting / phrasing 2015-10-08 01:38:39 -07:00
Chris Bednarski 96a56d865a Tweak phrasing to be clearer *why* that's not what we want 2015-10-08 00:07:07 -07:00
Chris Bednarski e005af18ba Removed wayward 's' 2015-10-08 00:04:45 -07:00
Chris Bednarski ab217e6c51 Clarified package documentation for executor in response to #232 2015-10-08 00:02:46 -07:00
Alex Dadgar 1467cb6131 Merge pull request #165 from achanda/rkt
Add a driver for rkt
2015-10-07 16:00:21 -07:00
Abhishek Chanda ba362fae07 Run gofmt 2015-10-07 22:24:16 +00:00
Abhishek Chanda 0e185b6eaf Add an optional exec parameter to task config
This overrides the default exec command in the ACI
2015-10-07 15:15:36 -07:00
Daniel Imfeld d66e78c5ca Parse information for all GCE network interface.
* No longer setting Device name in the network interface since we can't
match up the info here with real device names.
* Add attributes for all external IPs if more than one exists.
2015-10-07 13:35:20 -05:00
Abhishek Chanda 853cd7fa2d Use Run for adding trust prefix
The trust needs to be added before anything can progress
2015-10-07 11:15:17 -07:00
Daniel Imfeld 70350aead9 Compact tags and attribute reading code. 2015-10-07 12:39:23 -05:00
Ivo Verberk c6e1b13b51 Fix vet warnings 2015-10-07 12:26:58 +02:00
Daniel Imfeld dc1c8e5273 TestNetworkFingerprint_notAWS passes even when actually on AWS 2015-10-06 21:21:42 -05:00
Daniel Imfeld 892cad6775 NonXXX tests should pass when actually running in their respective environments.
Fixes #224
2015-10-06 21:16:28 -05:00
Chris Bednarski 3c170b70ee Remove panic -- client is nil when there is an error 2015-10-06 19:09:59 -07:00
Chris Bednarski a4c3da6c0c Merge branch 'master' into b-docker-port 2015-10-06 17:54:32 -07:00
Chris Bednarski ec2e3d4f49 Merge pull request #221 from hashicorp/b-docker-tests-osx
Add skip detection for all docker tests
2015-10-06 17:53:47 -07:00
Chris Bednarski d046858057 Support boot2docker or VM for dev/test 2015-10-06 17:53:05 -07:00
Chris Bednarski 67e3c4a4f5 Merge branch 'master' into b-docker-port 2015-10-06 16:38:49 -07:00
Alex Dadgar 441b2de4fb Fix alloc_dir error message 2015-10-06 16:38:06 -07:00
Chris Bednarski 88bb01ab6f Fingerprint test should now behave correctly when the executor is not installed; fix some go vet issues 2015-10-06 16:33:02 -07:00
Chris Bednarski 8cd34d3947 Use docker.NewClient; move dockerClient before it's used 2015-10-06 16:26:31 -07:00
Abhishek Chanda bd91c51643 Use Start to run commands
Run blocks
2015-10-06 15:56:39 -07:00
Abhishek Chanda ef84902f79 Add prefix to all message logs for rkt driver 2015-10-06 15:56:39 -07:00
Abhishek Chanda 4be849445d Fix function call
Make it skip if rkt is not installed
2015-10-06 15:56:39 -07:00
Abhishek Chanda 99b3660047 Register rkt as a built in driver 2015-10-06 15:56:39 -07:00
Abhishek Chanda 528632da3d Add missing import and remove unsued one 2015-10-06 15:56:39 -07:00
Abhishek Chanda 612aa69f34 Do not run containers interactively 2015-10-06 15:56:39 -07:00
Abhishek Chanda 578aa89e81 Do not register to the metadata service 2015-10-06 15:56:39 -07:00
Abhishek Chanda ab6d756dfe Remove a stray comment 2015-10-06 15:56:39 -07:00
Abhishek Chanda 02eb3659c9 Fix constructing the handle 2015-10-06 15:56:39 -07:00
Abhishek Chanda b6b7d9e875 Add a test fort he rkt driver 2015-10-06 15:56:39 -07:00
Abhishek Chanda bcb74acbca Fix name of prefix 2015-10-06 15:56:39 -07:00
Abhishek Chanda 8efe3e18ba Add a driver for rkt
rkt docs here
https://github.com/coreos/rkt
2015-10-06 15:56:39 -07:00
Alex Dadgar f40397e6ef Switch to using BlkioWeight 2015-10-06 15:44:01 -07:00
Chris Bednarski 5e73e746dc Merge branch 'docker-use-environment' of https://github.com/carlosdp/nomad into b-docker-port 2015-10-06 15:36:06 -07:00
Chris Bednarski ef3af6996b Updated Throttle Read/Write to match upstream changes in runc; now takes a list of ThrottleDevice structs instead of an int 2015-10-06 15:31:47 -07:00
Chris Bednarski 42afc2bfeb This is needed for 1.4.2 compat; not sure what removed it 2015-10-06 00:32:34 -07:00
Chris Bednarski 58217619e3 Add skip detection for all docker tests 2015-10-06 00:27:05 -07:00
Daniel Imfeld 32d5c61779 Consolidate GCEMetadataClient into EnvGCEFingerprint
This allows easier reuse of the same client across multiple functions.
2015-10-05 13:13:25 -05:00
Daniel Imfeld a85dda68fe And add a comment to the constant. 2015-10-05 12:59:02 -05:00
Daniel Imfeld adbb23e267 Use a constant for the default GCE metadata URL 2015-10-05 12:57:45 -05:00
Daniel Imfeld 46bbfc3549 isAWS should return false on GCE
GCE and AWS both expose metadata servers, and GCE's 404 response
includes the URL in the content, which maatches the regex. So,
check the response code as well and if a 4xx code comes back,
take that to meanit's not AWS.
2015-10-05 00:42:34 -05:00
Daniel Imfeld a43a262e66 Fingerprinting code for GCE nodes
This reads the following:

* hostname
* instance id
* machine-type
* zone
* internal IP
* external IP (if any)
* tags
* attributes

Atributes are placed under the platform.gce.attr.* hierarchy.

Tags are set up as platform.gce.tag.TagName=true.
2015-10-05 00:40:43 -05:00
Alex Dadgar f441c4c65d Cleanup allocations when in dev mode 2015-10-04 13:36:03 -07:00
Carlos Diaz-Padron aaddc7bf6c Use environment to connect to Docker by default
Uses the environment definition for docker by default. Docker will
default to the unix/tcp socket if the environment is not set.
2015-10-04 12:59:54 -07:00
Alex Dadgar aeb400cd8a update test to reflect not uppercasing passed env vars 2015-10-02 17:49:18 -07:00
Antoine POPINEAU a03ce2b39c Removed capitalization of user-defined envvars. 2015-10-02 17:46:55 -07:00
Antoine POPINEAU 56944536fc Moved the envvars logic to TaskEnvironment and TaskEnvironmentVariables(). Added tests there. 2015-10-02 17:46:55 -07:00
Antoine POPINEAU 722141bfa6 Added a jobspec directive to specify envvars. Updated Docker driver to use them accordingly. 2015-10-02 17:46:55 -07:00
Alex Dadgar e60e6ff8f5 Add debug line when setting link speed to default 2015-10-02 17:32:17 -07:00
Alex Dadgar 4cc8588cb5 Merges 2015-10-02 17:32:11 -07:00
Alex Dadgar faf8002d2d go-fmt 2015-10-02 10:54:04 -07:00
Alex Dadgar 0c7f3e21d7 Merge pull request #199 from achanda/double_call
Fix two issues where settings were not taking effect
2015-10-02 10:52:41 -07:00
Abhishek Chanda 3751b46673 Make sure createHostConfig is called only once
The second call discards any mods to port binding or
network type

Fixes #185 and #196
2015-10-02 10:43:37 -07:00
Antoine POPINEAU f35ebe14ad Merge branch 'master' into dev/net-fingerprint 2015-10-02 09:38:35 +02:00
Antoine POPINEAU 36daef1625 Renamed all instances of Iface to NetworkInterface. 2015-10-02 09:29:18 +02:00
Alex Dadgar 191ea91cdd Merge pull request #184 from achanda/docker_net
Enable setting networking mode for docker
2015-10-01 19:32:48 -07:00
Abhishek Chanda 0cb649bd5f Enable setting networking mode for docker
This patch enables setting networking mode for the docker
driver. This does not handle the `container` mode.
Closes #175
2015-10-01 18:52:41 -07:00
Antoine POPINEAU 3a4b304a53 Refactored code. 2015-10-01 21:16:39 +02:00
Antoine POPINEAU 2e1488fb04 Comment some undocumented code. 2015-10-01 20:39:10 +02:00
Ryan Uber 836fd8a015 Merge pull request #153 from aldergren/master
Prevent df on linux from adding line breaks to output
2015-10-01 11:21:02 -07:00
Antoine POPINEAU b01912abdc Forgot some error checking. 2015-10-01 17:33:40 +02:00
Antoine POPINEAU 70d34da1bc Client config param added to specify net iface to use for fingerprinting. Added a Golang-native method for determining the interface IP address. 2015-10-01 17:31:47 +02:00
Orivej Desh 443d2deb32 Update obsolete comments 2015-09-29 20:33:11 +00:00
Orivej Desh d844997661 Fix "ifconfig not found" warning 2015-09-29 20:06:37 +00:00
Niklas Aldergren 9145d8ffb9 Prevent df on linux from adding line breaks to output 2015-09-29 13:23:41 +02:00
Orivej Desh 4ecf7a0f74 Improve link speed fingerprint error reporting
With disconnected eth0 log output now looks like:

[WARN] fingerprint.network: Unable to parse IP in output of '/bin/ifconfig eth0'
[WARN] fingerprint.network: Unable to parse Speed in output of '/usr/sbin/ethtool eth0'

In a virtual machine:

[WARN] fingerprint.network: Unable to parse Speed in output of '/sbin/ethtool eth0'
[WARN] fingerprint.network: Unable to read link speed from /sys/class/net/eth0/speed
2015-09-28 23:34:25 +00:00
Mitchell Hashimoto 690634d245 client: fix windows build errors 2015-09-27 23:53:25 -07:00
Armon Dadgar 6ff19853ef docker: check for missing unix socket 2015-09-27 17:49:58 -07:00
Alex Dadgar d314b514f8 Better Sprintf 2015-09-27 17:41:43 -07:00
Alex Dadgar f8e434aa1d Add environment package 2015-09-27 17:37:25 -07:00
Alex Dadgar 7ba9681a94 Fix args in test 2015-09-27 17:37:24 -07:00
Alex Dadgar a4a440da8e ParseAndReplace args at the executor level 2015-09-27 17:37:24 -07:00
Alex Dadgar 76dfa9bb0f Check err 2015-09-27 17:37:24 -07:00
Alex Dadgar b95d349a3e Set the allocdir correctly when using the linux executor 2015-09-27 17:37:24 -07:00
Alex Dadgar a45f9f2e71 Pull task environments into their own type to be reusable across drivers and executors 2015-09-27 17:37:24 -07:00
Alex Dadgar a96f6dfa6d Remove cruft from rebase 2015-09-27 17:37:24 -07:00
Alex Dadgar a7eebcbd5b merge fixes 2015-09-27 17:37:24 -07:00
Chris Bednarski 162247ffbe Correct implementation of config check for container and image cleanup; moved into Start and Open because handle does not have the config object 2015-09-27 13:59:38 -07:00
Chris Bednarski 9455370d8e Merge branch 'master' into f-docker-config-cleanup 2015-09-26 21:52:02 -07:00
Chris Bednarski 5678859752 Add configuration option for whether Nomad will clean up containers and images when they are no longer used 2015-09-26 18:53:15 -07:00
Chris Bednarski 79488baa4d Add all containers when searching for images that are still in used, since the container using the image may be stopped 2015-09-26 18:51:36 -07:00
Chris Bednarski af314b0f4d Log an info when an image can't be removed because it's still in use 2015-09-26 00:34:57 -07:00
Chris Bednarski 5632a33036 Use env.Get, remove sha256 checks, and change from regexp to strconv to test for int 2015-09-25 23:55:01 -07:00
Chris Bednarski 7021ac3ce8 Add docker 'command' to docs; cleanup some comments 2015-09-25 23:28:23 -07:00
Chris Bednarski 23407c54af Replace docker version and docker ps with native calls; no more exec! 2015-09-25 23:13:40 -07:00
Chris Bednarski 72cd22347f Docker kill now exits with an error, as expected 2015-09-25 22:43:19 -07:00
Chris Bednarski 0c31a83783 Go native for docker API calls 2015-09-25 20:01:03 -07:00
Chris Bednarski 198159c5be Put that back! 2015-09-25 18:38:41 -07:00
Chris Bednarski a8c8fc2f96 Merge branch 'master' into b-docker-fixes
Conflicts:
	client/driver/docker_test.go
	client/driver/java_test.go
	client/driver/qemu_test.go
2015-09-25 18:35:23 -07:00
Chris Bednarski efb7c409bb Improve handling of tagged docker images
- Converted Start() to use docker native client throughout
- Better handling of latest vs. tagged images
    - We can now support multiple versions of an image
    - We will now not download a tag if we already have it
2015-09-25 18:22:10 -07:00
Alex Dadgar 6ca7c6680d Fix client init logging and test 2015-09-25 18:12:11 -07:00
Alex Dadgar 70a1a37f84 Small test cleanup 2015-09-25 17:55:29 -07:00
Chris Bednarski d8e492d950 Added a failing test case for multiple docker tags 2015-09-25 17:38:07 -07:00
Chris Bednarski aa3019780d Added docker test to spin up 3 containers at the same time 2015-09-25 17:35:33 -07:00
Chris Bednarski 32d260281f Added guards to tests so we can more gracefully degrade the test suite when thing are not installed 2015-09-25 16:49:26 -07:00
Alex Dadgar 5a76693bc6 Fix comments 2015-09-25 16:49:19 -07:00
Alex Dadgar 3cf6d014ef Log the alloc and state directory on Client Init() 2015-09-25 16:49:19 -07:00
Alex Dadgar 998a817a29 Use host file/dir permissions when embedding 2015-09-25 16:49:19 -07:00
Alex Dadgar 3534839367 Destroy allocdirs in task runner tests 2015-09-25 16:49:19 -07:00
Alex Dadgar 5928b950c5 Skip non-regular files in embedding and comment on the chrootEnv map 2015-09-25 16:49:19 -07:00
Alex Dadgar 530e2d3c6d Change allocdir variable name for clarity 2015-09-25 16:49:19 -07:00
Alex Dadgar 8d7ededad7 Windows shouldn't do anything on unmount 2015-09-25 16:49:19 -07:00
Alex Dadgar eb2f01fd94 Update CPU limit to be an int 2015-09-25 16:49:18 -07:00
Alex Dadgar fc2e9754a3 Only unmount once 2015-09-25 16:49:18 -07:00
Alex Dadgar 0f855e2088 Fix cgroup isolation 2015-09-25 16:49:18 -07:00
Alex Dadgar e594e6081b Fix embed non-existent test 2015-09-25 16:49:18 -07:00
Chris Bednarski ac70832eb3 Added errNoResources to executor package; return this when Limit is called with nil argument 2015-09-25 16:49:18 -07:00
Chris Bednarski b9dd4c40c5 Added basic resources to exec/java tests so each test has cpu, ram, and network 2015-09-25 16:49:18 -07:00
Alex Dadgar 3cea4288b9 Merge qemu test 2015-09-25 16:49:14 -07:00
Alex Dadgar 6725cbb3f5 Mount shared alloc dir, modified API and tests 2015-09-25 16:46:41 -07:00
Alex Dadgar 81ade0f5d3 Linux Embed and AllocDir unit tests 2015-09-25 16:46:41 -07:00
Alex Dadgar 6879e59494 Fix function header 2015-09-25 16:46:41 -07:00
Alex Dadgar c9cffb93f6 Embed interface 2015-09-25 16:46:41 -07:00
Alex Dadgar 72d892a518 Client init rebase 2015-09-25 16:46:41 -07:00
Alex Dadgar 2e8395c458 Changed file names so it builds correctly 2015-09-25 16:46:41 -07:00
Alex Dadgar 9d3e3c0704 AllocDirBuilder that creates the alloc directory structure 2015-09-25 16:46:41 -07:00
Armon Dadgar 5bc26c3f9d Merge pull request #101 from hashicorp/f-qemu-network-update
driver/qemu: Use Restricted Ports, additional port forwarding
2015-09-25 16:36:46 -07:00
Clint Shryock f1ede2f555 Fix bad copy-paste from refactoring 2015-09-25 08:36:46 -05:00
Ryan Uber 6f15160f5c client: support modifying the servers list 2015-09-24 20:16:47 -07:00
Chris Bednarski fce6a5f7c7 Merge pull request #108 from hashicorp/b-netmap-crash
Fix crash in task_runner tests
2015-09-24 16:27:54 -07:00
Chris Bednarski a589c056ea All the TestTaskRunner* tests want this 2015-09-24 16:00:36 -07:00
Chris Bednarski e6ac055c6c Initialize reserved ports 2015-09-24 15:55:41 -07:00
Chris Bednarski d2aa4fd53c Merge pull request #104 from hashicorp/f-docker-static-ports
Add static (reserved) ports for docker
2015-09-24 15:44:41 -07:00
Chris Bednarski f032e311d2 Missed a set of parens 2015-09-24 15:40:32 -07:00
Chris Bednarski c9482e1188 Initialize reserved ports in task_runner 2015-09-24 15:37:43 -07:00
Chris Bednarski 40ce6ece41 Get only one version of a docker container 2015-09-24 14:07:28 -07:00
Clint Shryock 4e6c795352 re-order the resources check and don't bail if no ports requested 2015-09-24 14:32:54 -05:00
Chris Bednarski 3fd3c2a913 Add test case for PopulateEnvironment 2015-09-24 00:17:33 -07:00
Chris Bednarski f8e8084c71 Rename containerConfigForTask to createContainer to mirror the docker api call; other helper functions will follow this convention too 2015-09-24 00:00:46 -07:00
Chris Bednarski a071bb6d59 Rename containerConfig to hostConfig since there are two types of container configs 2015-09-23 23:57:04 -07:00
Chris Bednarski 9ff0e88d33 Added static / reserved port allocations to docker 2015-09-23 23:45:34 -07:00
Clint Shryock e67d892ea3 driver/qemu: Setup multiple port forwards 2015-09-23 23:15:28 -05:00
Chris Bednarski 1978be24d0 Format as string instead of casting to string 2015-09-23 19:29:53 -07:00
Chris Bednarski e413c6f9d2 Support mapped ports and labelled ports for docker 2015-09-23 18:19:01 -07:00
Chris Bednarski 1654d08fca Add docker ports; change to uppercase examples and tests 2015-09-23 18:01:08 -07:00
Chris Bednarski 8b2f8efe70 Merge branch 'master' into f-port-configs 2015-09-23 15:31:00 -07:00
Chris Bednarski b8fd345128 Docs and remove uppercase since it's checked at the config parse step 2015-09-23 15:28:58 -07:00
Armon Dadgar 3bdae950c5 Merge pull request #97 from hashicorp/f-qemu-driver-docs
Basic Qemu docs
2015-09-23 14:37:56 -07:00
Armon Dadgar 8aa2c292a0 Merge pull request #77 from hashicorp/f-network-fingerprint
Network Fingerprinting
2015-09-23 14:36:29 -07:00
Clint 15477ce433 Merge pull request #95 from hashicorp/f-java-driver-docs
Add some basic docs for the Java Driver
2015-09-23 15:59:33 -05:00
Clint Shryock e2c1bfe19c Basic Qemu docs 2015-09-23 14:44:49 -05:00
Chris Bednarski 73c4c1f210 Changed fmt for CPU to integer 2015-09-23 12:19:46 -07:00
Clint Shryock 0db8ce12d4 Update Java docs on how Java is detected 2015-09-23 14:16:43 -05:00
Clint Shryock 491f2d927f clean up some log formatting 2015-09-23 14:09:55 -05:00
Clint Shryock b93518b509 start the Qemu docs 2015-09-23 13:58:42 -05:00
Chris Bednarski e2c324d098 Merge branch 'master' into f-port-configs 2015-09-23 11:57:12 -07:00
Chris Bednarski f4ad6e51dc Replaced List with Map 2015-09-23 11:56:36 -07:00
Armon Dadgar b213462cb4 Change CPU from float64 to int 2015-09-23 11:14:32 -07:00
Clint Shryock 8c0542a9af Refactor network fingerprinting to be generic, use build flags 2015-09-23 10:12:56 -05:00
Clint Shryock 61d695b7d4 prefix warn/error messages 2015-09-23 10:03:35 -05:00
Clint Shryock e4a8565f00 fix casing for ERR logs 2015-09-23 10:00:06 -05:00
Chris Bednarski e26dbf4850 Fix some printf tokens 2015-09-22 23:43:05 -07:00
Chris Bednarski 9067b2594f Added environment variables to docker 2015-09-22 23:12:24 -07:00
Chris Bednarski 8bf45688b6 Check for nils before accessing data 2015-09-22 23:11:55 -07:00
Chris Bednarski 27376dc548 Added environment variables to Java 2015-09-22 22:36:10 -07:00
Chris Bednarski 3e90379f05 Pass dynamic ports to the exec driver via environment variables 2015-09-22 22:33:29 -07:00
Armon Dadgar fe72c8ea59 client: reset response struct to avoid decode errors 2015-09-22 22:10:28 -07:00
Armon Dadgar b7f370ba07 client: create dir, handle not exist more gracefully 2015-09-22 22:00:24 -07:00
Clint Shryock c84d51a9d1 don't re-convert mbits 2015-09-22 23:57:24 -05:00
Clint Shryock f876ed6673 refactoring, docs 2015-09-22 23:51:56 -05:00
Armon Dadgar ef81b29d7a client: fixing stats formating 2015-09-22 21:48:42 -07:00
Clint Shryock 088bc9e482 fix range error 2015-09-22 23:25:12 -05:00
Clint Shryock f60bbbfd15 populate node network resource 2015-09-22 23:22:23 -05:00
Clint Shryock e3c8ca8462 Update code for parsing IP address 2015-09-22 22:56:31 -05:00
Chris Bednarski 09249d877c Removed comment that's no longer relevant 2015-09-22 20:11:07 -07:00
Clint Shryock c615c560d2 Move ec2InstanceSpeed to a package variable, convert to string:int map 2015-09-22 22:04:20 -05:00
Alex Dadgar b8e7d28a06 Update package import name 2015-09-22 18:48:42 -07:00
Alex Dadgar dd2f16123f Fix qemu check and add debug lines when a driver is disabled 2015-09-22 17:36:44 -07:00
Alex Dadgar bbb3853dd8 Update Qemu Fingerprint check 2015-09-22 17:12:52 -07:00
Alex Dadgar e095664c49 Guard tests 2015-09-22 17:10:03 -07:00
Alex Dadgar 3875e8a59a Update exec_linux to assume it is running as root 2015-09-22 16:44:11 -07:00
Alex Dadgar dd0a76a9d7 Disable exec/java/qemu when non-root on non-windows OSes 2015-09-22 16:32:05 -07:00
Clint Shryock 5c749e1ffb Consolidate the AWS fingerprinters 2015-09-22 16:56:04 -05:00
Clint Shryock 2bbf080666 Refactor some AWS things, removing fingerprint/network.go
- move isAWS to env, use in other places
- fingerprint/network.go is no empty; removed
2015-09-22 16:31:57 -05:00
Clint Shryock b44c911996 change the naming 2015-09-22 16:01:29 -05:00
Chris Bednarski 168c959497 Added named ports 2015-09-22 13:59:16 -07:00
Clint Shryock a9cf7381ca Refactor the Network Fingerprinters 2015-09-22 15:59:00 -05:00
Clint Shryock f048326300 Rework client/fingerprint/fingerprint.go to use a slice and enforce ordering 2015-09-22 14:23:48 -05:00
Armon Dadgar ed2fc3a69f client: persist the node ID 2015-09-22 10:31:47 -07:00
Clint Shryock d11bd582f7 Basic network fingerprinting for Unix type, AWS systems 2015-09-22 11:44:53 -05:00
Alex Dadgar 1b46cbff83 Fixed function comment 2015-09-21 09:08:57 -07:00
Alex Dadgar 8d24e5e532 Tests skip based on cgroups, not root 2015-09-21 09:08:57 -07:00
Alex Dadgar e694688527 Update UniversalExecutor to have string identifiers 2015-09-21 09:08:57 -07:00
Alex Dadgar 0e3f21b34f Linux executor with cgroup isolation support 2015-09-21 09:08:57 -07:00
Clint Shryock 61948802a8 executor/linux: Add UUID for the name, return error on failure to apply 2015-09-21 09:08:57 -07:00
Clint Shryock 067e65bf12 exec/linux: move Limit to after Start 2015-09-21 09:08:57 -07:00
Clint Shryock 0c526ddb8e spike on adding cgroups 2015-09-21 09:08:57 -07:00
Armon Dadgar 807edc194d Merge branch 'f-docs' 2015-09-20 19:25:25 -07:00
Armon Dadgar 67fc3c9b87 client: optimize initial heartbeat time 2015-09-20 17:02:12 -07:00
Chris Bednarski d4948e2935 Windows does not support exec.Cmd.SysProcAttr.Credential call; this causes cross-compiltion to fail so it's behind a build flag now 2015-09-18 18:59:42 -07:00
Chris Bednarski c99e368461 Support running Linux exec as a non-root user 2015-09-15 20:17:23 -07:00
Chris Bednarski 57e4f7c44f Merge branch 'master' into f-executor 2015-09-15 19:03:52 -07:00
Chris Bednarski e5cb8852af Overhaul the executor code so we use build flags instead of dynamic loading 2015-09-15 18:54:55 -07:00
Chris Bednarski d1c4abef33 Changed Default executor to use a factory 2015-09-15 16:40:40 -07:00
Chris Bednarski 4cefbc3c22 Rename exec package to executor so it works better with goimports; fixes for Java driver 2015-09-15 14:03:03 -07:00
Chris Bednarski 6a7b82f7ba Update Java driver to use Executor 2015-09-15 13:45:48 -07:00
Chris Bednarski 9db88f6013 Updated exec driver to use nomad/client/exec 2015-09-15 13:11:56 -07:00
Chris Bednarski 06073b171d Use Linux on Linux 2015-09-14 19:38:21 -07:00
Chris Bednarski 6eb3d86528 Run as nobody if no user is specified 2015-09-14 19:04:29 -07:00
Chris Bednarski e4d3aad44e Send signal 0 to check whether the process is alive 2015-09-14 16:16:56 -07:00
Chris Bednarski 0425ae941c Implemented Linux driver with RunAs functionality -- added errors to RunAs and Limit 2015-09-14 15:57:21 -07:00
Armon Dadgar 2ff133c0e6 nomad: rename region1 to global. Fixes #41 2015-09-13 18:18:40 -07:00
Armon Dadgar d1f829e502 client: Use Alloc.TaskResouces to override Task.Resources 2015-09-13 17:35:56 -07:00
Ryan Uber 3d31230ac1 client: always create alloc dir if it is non-empty 2015-09-13 12:14:12 -07:00
Ryan Uber 58216245ac client: skip init in dev mode 2015-09-12 13:16:27 -07:00
Ryan Uber 823276993c client: init the alloc dir 2015-09-12 11:47:44 -07:00
Ryan Uber 1ff724ab25 client: alloc dirs tolerate missing directories 2015-09-11 20:32:55 -07:00
Chris Bednarski 91194d9337 Update the interface, add UniversalExecutor, add stub for LinuxExecutor 2015-09-11 17:12:48 -07:00
Chris Bednarski f511eeac0e Added stub / spec for executor interface 2015-09-11 12:35:03 -07:00
Chris Bednarski da93d4a30f Change error to err to be consistent with other usage 2015-09-11 10:26:33 -07:00
Chris Bednarski 4f83bc7090 Fix typos 2015-09-10 11:35:03 -07:00
Chris Bednarski 2ccad3d6e8 Change panic to a more helpful message 2015-09-09 19:04:06 -07:00
Chris Bednarski 237bf5f68e Merge branch 'f-driver-config' into f-docker-resource-constraints 2015-09-09 18:47:35 -07:00
Chris Bednarski 2a40673a3a Relax Qemu version regexp to accomodate build identifier in the version command 2015-09-09 18:39:40 -07:00
Chris Bednarski cc4d361ee9 Updated Qemu and tests to use DriverContext 2015-09-09 18:38:52 -07:00
Chris Bednarski 0281debee4 Merge branch 'master' into f-driver-config
Conflicts:
	client/driver/driver.go
2015-09-09 18:19:19 -07:00
Chris Bednarski a695e311dc Replace logging and config with DriverContext, which allows us to expand the dependency injection without changing the interface 2015-09-09 18:06:23 -07:00
Chris Bednarski 1ff755f31a Merge pull request #24 from hashicorp/qemu-driver
Basic Qemu driver implementation
2015-09-09 17:43:13 -07:00
Chris Bednarski 9965d28a22 Add logger to the dockerHandle created by Open() 2015-09-09 13:43:28 -07:00
Chris Bednarski a731a84136 Cleanup based on PR feedback
- Add validation that Resources.MemoryMB and Resources.CPU have non-zero values
- Change log calls to use logger whenever possible
- Change log format to add colon after driver.docker
2015-09-09 13:35:10 -07:00
Clint Shryock 037ae6d6eb driver/qemu+java: Code cleanups 2015-09-09 14:38:42 -05:00
Clint Shryock bd0f92f977 driver/qemu: Actually use the requred Memory from the Task 2015-09-09 14:30:35 -05:00
Clint Shryock 2611523b3b driver/qemu: Require a memory resource on the task 2015-09-09 14:28:16 -05:00
Chris Bednarski ac277c5765 Change SIGINT to SIGTERM 2015-09-09 01:52:58 -07:00
Chris Bednarski b70b852662 Added preliminary resource constraints for docker; CPU and Memory 2015-09-09 01:08:31 -07:00
Clint Shryock 98c53162d2 driver/qemu: add to builtin drivers 2015-09-08 16:25:36 -05:00
Clint Shryock d2822a435d driver/qemu: Basic lifecycle management of Qemu images 2015-09-08 16:08:49 -05:00
Chris Bednarski 4eb8fc5188 Added config to drivers; needed for docker driver to get the socket endpoint 2015-09-08 12:43:02 -07:00
Clint Shryock c1f982a1d0 Merge branch 'master' into qemu-driver
* master: (66 commits)
  Use a single implementation of GenerateUUID
  scheduler: use update strategy for rolling updates
  nomad: adding helper structs
  scheduler: Adding CreateEval to Planner
  nomad: worker supports create eval
  nomad: guard eval creation based on parent eval
  nomad: adding Eval.Create endpoint
  nomad: support time wait for evaluations
  nomad: adding fields to cause an evaluation to 'wait'
  scheduler: support in-place allocation updates
  scheduler: util method to diff task groups
  nomad: helper struct func
  nomad: PopUpdate should minimize plan size
  nomad: adding helper to manipulate plans
  scheduler: share context and stack
  scheduler: allow updating the base nodes
  scheduler: allow StaticIterator to update base set
  scheduler: pull node shuffle into util
  nomad: adding node GC
  nomad: using Raft StartAsLeader to make tests faster
  ...
2015-09-08 09:52:40 -05:00
Chris Bednarski bd06e4bad2 Merge pull request #19 from hashicorp/test-resources
Added example python and java apps for testing
2015-09-07 17:03:09 -07:00
Armon Dadgar ea0795995d Use a single implementation of GenerateUUID 2015-09-07 15:23:03 -07:00
Armon Dadgar 7d69aa78c1 nomad: using Raft StartAsLeader to make tests faster 2015-09-07 10:46:41 -07:00
Armon Dadgar 8bedd3769c nomad: unifying the state store API 2015-09-06 20:56:38 -07:00
Armon Dadgar 1a5579384a nomad: cleanup API descrepencies 2015-09-06 20:47:42 -07:00
Armon Dadgar 0702f17989 Rename client endpoint to node endpoint 2015-09-06 20:31:32 -07:00
Armon Dadgar c7773feced nomad: improve error messages at start for dev mode 2015-09-06 20:18:47 -07:00
Armon Dadgar f1da1226c1 driver/java: Add to builtin list 2015-09-04 13:09:11 -07:00
Clint Shryock 60ad3b7517 Merge remote-tracking branch 'upstream/master' into qemu-driver
* upstream/master:
  Removed debug logging
  Added tests for docker, improved logging, and fixed a few bugs
  Added initial implementation for the docker driver; tests pending
2015-09-04 14:50:47 -05:00
Chris Bednarski aa3937f248 Added example python and java apps for testing
- Java example from @catsby
2015-09-04 11:13:24 -07:00
Chris Bednarski 813f905a1c Removed debug logging 2015-09-03 21:08:14 -07:00
Chris Bednarski c483036e16 Added tests for docker, improved logging, and fixed a few bugs 2015-09-03 21:00:16 -07:00
Clint Shryock 9cb1dc95a0 driver: Add README.md for docs 2015-09-03 17:01:43 -05:00
Chris Bednarski b9ceb69683 Added initial implementation for the docker driver; tests pending 2015-09-03 12:35:22 -07:00
Clint 2000d3657f Merge pull request #15 from hashicorp/b-java-driver
Rough spike at adding Java driver
2015-09-03 14:31:49 -05:00
Clint Shryock 8c6128503f driver/java: use filepath.Join instead of simple + 2015-09-03 10:25:09 -05:00
Clint Shryock 256d5c1286 driver/java: Don't error if Java isn't found; log if error parsing 2015-09-03 10:02:48 -05:00
Clint Shryock 1dd0b63cb4 clean up orphaned java processes 2015-09-03 09:49:39 -05:00
Clint Shryock c774c67b6b driver/java: update Fingerprint for Java driver 2015-09-02 11:41:25 -05:00
Clint Shryock 9d5c04ddbb Spike at a Java driver, runs Java jars 2015-09-01 17:07:41 -05:00
Clint Shryock 9e79a15789 move test logger to shared file 2015-09-01 16:56:42 -05:00
Chris Bednarski 7070b80167 Added test for config.Read and config.ReadDefault 2015-08-31 20:11:01 -07:00
Chris Bednarski 2e5a080354 Delete unused NewConfig function 2015-08-31 20:01:04 -07:00
Chris Bednarski d9d78d6b2c Add working test for consul fingerprinter 2015-08-31 19:56:38 -07:00
Chris Bednarski ab0deab3e5 Made consul fingerprinter configurable 2015-08-31 19:56:25 -07:00
Chris Bednarski ecfeba3ce6 Added ReadDefault for supreme laziness 2015-08-31 19:54:49 -07:00
Chris Bednarski 1936932406 Added Config.Options so we can support arbitrary key-value configuration 2015-08-31 19:48:59 -07:00
Chris Bednarski ff5266ad8f Add consul data to node.Links 2015-08-31 16:04:48 -07:00
Chris Bednarski a033bedbaf Added basic consul functionality; currently hard-coded to a test instance 2015-08-31 16:04:48 -07:00
Clint 05682391b9 Merge pull request #14 from hashicorp/aws-env
Spike on AWS ENV fingerprint
2015-08-31 15:10:33 -05:00
Clint Shryock 1e652cc4e9 fingerprint/env_aws: Rename ec2-instance link to aws.ec2, drop ami link 2015-08-31 15:02:31 -05:00
Clint Shryock 416e7de06d fingerprint/aws: Add 2 basic links, rename 'env' to 'platform' 2015-08-31 14:18:40 -05:00
Armon Dadgar 0527529f88 client: allocate alloc dir and cleanup 2015-08-30 17:35:58 -07:00
Armon Dadgar ab069de9b9 client: more stats 2015-08-30 17:24:12 -07:00
Armon Dadgar 5549a82f9f client: testing state restore 2015-08-30 17:19:20 -07:00
Armon Dadgar 43471d023e client: test alloc runner 2015-08-30 17:10:17 -07:00
Armon Dadgar 7b3adc6cc4 client: refactor AllocRunner for testing 2015-08-30 16:35:04 -07:00
Armon Dadgar 8c25d1fca1 client: testing task runner 2015-08-29 20:07:24 -07:00
Armon Dadgar db33f76a61 client: remove TaskRunner dependence on AllocRunner 2015-08-29 19:42:35 -07:00
Armon Dadgar a2d8c6c3fe client: working on state restore 2015-08-29 19:14:47 -07:00
Armon Dadgar b6332b435d client: first pass at save/restore of state 2015-08-29 18:16:49 -07:00
Armon Dadgar 50c677a9bb client: adding state save helpers 2015-08-29 18:03:00 -07:00
Armon Dadgar c99fe72f54 driver/exec: basic implementation 2015-08-29 16:20:07 -07:00
Armon Dadgar 83dd313b5c client: working on runners 2015-08-29 15:46:10 -07:00
Armon Dadgar e57ee3fbfe client: test watching allocations 2015-08-29 14:33:30 -07:00
Armon Dadgar 4d6238ebb8 client: test updating alloc status 2015-08-29 14:22:24 -07:00
Armon Dadgar 2e4809d2fc client: test heartbeats 2015-08-29 14:15:34 -07:00
Clint Shryock ae1142ad33 cleanups 2015-08-28 13:09:21 -05:00
Clint Shryock dc217da84a spike on AWS ENV fingerprint 2015-08-28 11:33:41 -05:00
Chris Bednarski 96cb220ff4 Update references to "os" to use "kernel.name"
This brings test code and mocks up to date with the fingerprinter. This was a slightly larger change than I anticipated, but I think it's good for two reasons:

1. More semanitcally correct. `os.name` is something like "Windows 10 Pro" or "Ubuntu", while `kernel.name` is "windows" or "linux". `os.version` and `kernel.version` match these semantics.
2. `kernel.name` is much easier to grep for than `os`, which is helpful because oracle can't help us with strings.
2015-08-28 01:30:47 -07:00
Chris Bednarski 9b8fc07bbe Drop os fingerprint since this is redundant with host 2015-08-27 17:37:56 -07:00
Chris Bednarski 94235e3448 Change 'os' to 'kernel.name'; add 'kernel.version' for *nix* 2015-08-27 17:37:37 -07:00
Chris Bednarski ced2f647c6 Add guard to storage fingerprint so CWD will be used if AllocDir is not specified -- fixes windows tests 2015-08-27 16:03:09 -07:00
Chris Bednarski d0a091c952 Add the storage fingerprinter to the list of built-ins 2015-08-27 14:30:41 -07:00
Chris Bednarski 0437a02fd7 Change column constraint so this is compatible with darwin and linux 2015-08-27 14:30:20 -07:00
Clint c6cdf014fd Merge pull request #7 from hashicorp/memory-fingerprint
Add a memory fingerprint
2015-08-27 16:11:44 -05:00
Clint Shryock b223278b6f convert to MB for MemoryMB, and update test 2015-08-27 16:01:47 -05:00
Chris Bednarski 6123ba8b83 Get average frequency of all CPUs so we can do average frequency * cores for total compute 2015-08-27 13:35:54 -07:00
Clint Shryock 759d3131f2 Merge remote-tracking branch 'upstream/master' into memory-fingerprint
* upstream/master:
  Prevent a panic if the df tool output is not in the expected format
  Change 'available' to 'free' because it's shorter; also initialize node.Resources.DiskMB as total disk instead of available disk
  Changed logs to errors; added data to node.Resources.DiskMB
  populate CPU in Node Resources
  Fix arity in log call for TCP resolution failure
  Add storage fingerprinter
2015-08-27 15:30:00 -05:00
Clint e3348ad809 Merge pull request #6 from hashicorp/cpu-resources
populate CPU in Node Resources
2015-08-27 15:26:00 -05:00
Clint Shryock 83a792593e Add a memory fingerprint, just grabs memory 2015-08-27 15:19:19 -05:00
Chris Bednarski 78767f0ff4 Merge pull request #4 from hashicorp/f-storage-fingerprint
Add storage fingerprinter
2015-08-27 12:43:18 -07:00
Chris Bednarski 8e544e0969 Prevent a panic if the df tool output is not in the expected format 2015-08-27 12:42:58 -07:00
Chris Bednarski 66b518cd6c Change 'available' to 'free' because it's shorter; also initialize node.Resources.DiskMB as total disk instead of available disk 2015-08-27 12:37:05 -07:00
Chris Bednarski d17c6128c8 Changed logs to errors; added data to node.Resources.DiskMB 2015-08-27 12:23:17 -07:00
Clint Shryock 58be8ba139 populate CPU in Node Resources 2015-08-27 14:15:56 -05:00
Clint Shryock cacb8074d3 Add cpu.frequency, cpu.totalcompute 2015-08-27 09:19:53 -05:00
Chris Bednarski cd5cd7efc2 Fix arity in log call for TCP resolution failure 2015-08-26 17:17:08 -07:00
Chris Bednarski edea3700a4 Add storage fingerprinter
Breaking change: Added ID() to Fingerprint interface. This allows us to assign
each fingerprint implementation a unique ID, identify which fingerprinters have
been run, and also self-identify in log messages.

- Added storage fingerprinter for Windows and *nix
- Added storage tests under storage_test.go
- Added test helper functions under fingerprint/fingerprint_test.go
- Added ID() to existing finterprinters and drivers
- Added Fingerprint.ID() to log messages via log.SetPrefix()
2015-08-26 17:17:08 -07:00
Clint Shryock 9a92383b69 refactor into multiple fingerprints 2015-08-26 16:29:18 -05:00
Clint Shryock 8ab31da8b0 update fingerprint with more cpu, some host info 2015-08-26 15:20:07 -05:00
Clint Shryock d2318f71f1 Fingerprint CPU model name, count of cores 2015-08-26 11:32:30 -05:00
Chris Bednarski 0b255c6af6 Pass config to fingerprints; update tests 2015-08-25 16:21:29 -07:00
Chris Bednarski 98331bbf87 We need a new package for this or we get a circular import between client and client/fingerprint 2015-08-25 16:13:33 -07:00
Armon Dadgar 265da591ae client: faster retries in dev mode 2015-08-23 17:40:14 -07:00
Armon Dadgar 07b832c588 agent: use the client 2015-08-23 16:53:15 -07:00
Armon Dadgar 8e32075210 client: making progress 2015-08-23 16:49:48 -07:00
Armon Dadgar 3663c44dee client: standardize naming 2015-08-23 15:36:06 -07:00
Armon Dadgar d7c785aad4 client: rename Alloc/TaskContext to Runner 2015-08-23 15:32:46 -07:00
Armon Dadgar 7cd52e10bc client: alloc/task context 2015-08-23 15:30:16 -07:00
Armon Dadgar c57821877b client: working on alloc context 2015-08-23 15:15:48 -07:00
Armon Dadgar 0f3ef2a48a client: working on alloc handling 2015-08-23 15:06:47 -07:00
Armon Dadgar c71c9bec1a client: working with alloc diffs 2015-08-23 14:54:52 -07:00
Armon Dadgar 1dfa7296c1 client: alloc diffing 2015-08-23 14:47:51 -07:00
Armon Dadgar 811d6d85e1 client: state stubs 2015-08-23 14:12:26 -07:00
Armon Dadgar 5705dc6398 client: watch for allocations 2015-08-22 19:31:22 -07:00
Armon Dadgar 6c8791ccf8 nomad: client does periodic heartbeat 2015-08-22 18:16:05 -07:00
Armon Dadgar 2b2e4c2256 client: register on start 2015-08-20 17:49:04 -07:00
Armon Dadgar c5553017be client: scan for drivers 2015-08-20 16:53:43 -07:00
Armon Dadgar a561fbb9a9 driver: skeleton package 2015-08-20 16:50:28 -07:00
Armon Dadgar d44bf839ef client: attempt fingerprint of host 2015-08-20 16:41:29 -07:00
Armon Dadgar 88438619c8 fingerprint: adding arch fingerprint 2015-08-20 16:29:19 -07:00
Armon Dadgar f20b361d89 fingerprint: adding simple package 2015-08-20 16:26:32 -07:00
Armon Dadgar a6c4d2a63f client: testing RPC 2015-08-20 16:13:05 -07:00
Armon Dadgar 0f2fe6a425 client: testing RPC 2015-08-20 16:12:28 -07:00
Armon Dadgar 7c3e987617 client: skeleton package 2015-08-20 16:07:26 -07:00
Armon Dadgar 0383bf3c14 client: adding skeleton 2015-08-20 15:25:09 -07:00