Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Elastic Agent] Improve version, restart, enroll CLI commands #20359

Merged
merged 11 commits into from
Aug 3, 2020

Conversation

blakerouse
Copy link
Contributor

@blakerouse blakerouse commented Jul 30, 2020

What does this PR do?

version has been changed to show both the version of the running daemon and the version of the executing binary. Along with --binary-only argument to skip connecting and reporting the version of the daemon and --yaml to print machine parsable version information.

enroll has been updated to connect to the running daemon and perform a restart. This is because after enroll if the daemon is already started it needs to be restart to load the new mode of communicating with Fleet.

restart is a new command added to just trigger restart of the current running daemon. This is very useful to test re-execution (especially on Windows, because SIGHUP doesn't exist on Windows).

This also includes some fixes that I thought was in my last PR for Windows, except I forgot to commit before merging the PR.

Why is it important?

To show the current running daemon version of the Agent, which could be different then the user executing binary. To improve the UX of the enroll command to re-start the daemon once successfully enrolled. To help debugging of re-execution.

Checklist

  • My code follows the style guidelines of this project
  • I have commented my code, particularly in hard-to-understand areas
  • [ ] I have made corresponding changes to the documentation
  • [ ] I have made corresponding change to the default configuration files
  • I have added tests that prove my fix is effective or that my feature works
  • I have added an entry in CHANGELOG.next.asciidoc or CHANGELOG-developer.next.asciidoc.

Related issues

Logs

version

blake@MacBook-Pro elastic-agent % ./elastic_agent version
Daemon: 8.0.0 (build: unknown at 0001-01-01 00:00:00 +0000 UTC)
Binary: 8.0.0 (build: unknown at 0001-01-01 00:00:00 +0000 UTC)
blake@MacBook-Pro elastic-agent % ./elastic_agent version --yaml
binary:
  version: 8.0.0
  commit: unknown
  build_time: 0001-01-01T00:00:00Z
  snapshot: false
daemon:
  version: 8.0.0
  commit: unknown
  build_time: 0001-01-01T00:00:00Z
  snapshot: false
blake@MacBook-Pro elastic-agent % ./elastic_agent version --binary-only --yaml
binary:
  version: 8.0.0
  commit: unknown
  build_time: 0001-01-01T00:00:00Z
  snapshot: false

enroll

blake@MacBook-Pro elastic-agent % ./elastic_agent enroll http://localhost:5061 LVY3Tm9ITUItQ1RKdjBvVU9nN1Q6WkNQQTdsMUlUbWVrOWRsQ3c3QUszdw --insecure --force
The Elastic Agent is currently in BETA and should not be used in production
2020-07-30T13:41:11.926-0400	DEBUG	kibana/client.go:170	Request method: POST, path: /api/ingest_manager/fleet/agents/enroll
Successfully enrolled the Elastic Agent.
Successfully triggered restart on running Elastic Agent.

restart

blake@MacBook-Pro elastic-agent % ./elastic_agent restart
blake@MacBook-Pro elastic-agent %

@blakerouse blakerouse self-assigned this Jul 30, 2020
@botelastic botelastic bot added needs_team Indicates that the issue/PR needs a Team:* label and removed needs_team Indicates that the issue/PR needs a Team:* label labels Jul 30, 2020
@blakerouse blakerouse marked this pull request as ready for review July 30, 2020 17:44
@elasticmachine
Copy link
Collaborator

Pinging @elastic/ingest-management (Team:Ingest Management)

@blakerouse blakerouse changed the title [Elastic Agent] Import version, restart, enroll CLI commands [Elastic Agent] Improve version, restart, enroll CLI commands Jul 30, 2020
@elasticmachine
Copy link
Collaborator

elasticmachine commented Jul 30, 2020

💚 Build Succeeded

Pipeline View Test View Changes Artifacts preview

Expand to view the summary

Build stats

  • Build Cause: [Pull request #20359 updated]

  • Start Time: 2020-08-03T14:33:42.133+0000

  • Duration: 30 min 1 sec

@@ -99,3 +99,6 @@
- Add --staging option to enroll command {pull}20026[20026]
- Add `event.dataset` to all events {pull}20076[20076]
- Prepare packaging for endpoint and asc files {pull}20186[20186]
- Improved version CLI {pull}20359[20359]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need 3 entries here, they link the same pr

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought it was easier to read being 3 different things, but if you prefer it to be 1 line, I can do that.

execSingletonOnce.Do(func() {
execSingleton = newManager(log, exec)
})
return execSingleton
}

// Manager returns the global reexec manager.
func Manager() ExecManager {
return execSingleton
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does not look like a good idea why not having just one method with Once-initialization

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to, but that deep into the code, I didn't want to have to pass in the logger and the path to the executable. I wanted that to be set at startup and later usages of the manager, can get the singleton.

daemon := client.New()
err = daemon.Start(context.Background())
if err == nil {
defer daemon.Stop()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are you stopping after restart is done?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stop just disconnects the client from the socket, it does not stop the running daemon.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this all makes sense then :-)

@@ -17,6 +17,9 @@ import (

func createListener() (net.Listener, error) {
path := strings.TrimPrefix(control.Address(), "unix://")
if _, err := os.Stat(path); !os.IsNotExist(err) {
os.Remove(path)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we check for errors here, if file exists but you're revoked access to it (too many fd, process reading/writing to it already whatever...) this will fail and we wont know

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will log it, but the error of not creating the listener socket will still be the really reported error.


func cleanupListener() {
path := strings.TrimPrefix(control.Address(), "unix://")
os.Remove(path)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here, at least log error returned from remove, will make troubleshooting easier

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above, will log it.

c := client.New()
err := c.Start(context.Background())
if err != nil {
return errors.New(err, "Failed talking to running daemon")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

connecting to?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Want me to add the path to the unix socket or the npipe?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no i meant talking to phrase feels weird to me

if err != nil {
return errors.New(err, "Failed talking to running daemon")
}
defer c.Stop()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we stopping after restart?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As above, this just disconnects from the running daemon.

c := client.New()
daemonError = c.Start(context.Background())
if daemonError == nil {
defer c.Stop()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think what stop does and what i think it does are two different things

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as above.

@blakerouse
Copy link
Contributor Author

@michalpristas Thanks for the +1.

I have updated the client from Start and Stop to Connect and Disconnect to make that more clear. I changed reexec module to not be a singleton anymore, which makes it easier to use and cleaner (as I generally don't like singletons, idk what I was thinking originally 😄 ). I also added the logging, you asked for.

@michalpristas
Copy link
Contributor

@blakerouse thanks for rename, it makes it much more readable

@blakerouse blakerouse merged commit 77b3b07 into elastic:master Aug 3, 2020
@blakerouse blakerouse deleted the agent-use-control-cli branch August 3, 2020 15:17
@elasticmachine
Copy link
Collaborator

❕ Build Aborted

There is a new build on-going so the previous on-going builds have been aborted.

Pipeline View Test View Changes Artifacts

Expand to view the summary

Build stats

  • Build Cause: [Pull request #20359 updated]

  • Reason: Aborted from #4

  • Start Time: 2020-08-03T14:28:51.940+0000

  • Duration: 122 min 46 sec

  • Commit: a334253

Log output

Expand to view the last 100 lines of log output

[2020-08-03T16:28:47.038Z] ERROR 
[2020-08-03T16:28:47.087Z] Running in C:\Users\jenkins\workspace\Beats_beats_PR-20359\src\github.com\elastic\beats\x-pack\elastic-agent
[2020-08-03T16:28:47.396Z] 
[2020-08-03T16:28:47.396Z] C:\Users\jenkins\workspace\Beats_beats_PR-20359\src\github.com\elastic\beats\x-pack\elastic-agent>mage  build unitTest 
[2020-08-03T16:29:34.134Z] go version go1.14.4 windows/amd64
[2020-08-03T16:29:34.134Z] set GO111MODULE=
[2020-08-03T16:29:34.134Z] set GOARCH=amd64
[2020-08-03T16:29:34.134Z] set GOBIN=
[2020-08-03T16:29:34.134Z] set GOCACHE=C:\Users\jenkins.PACKER-5D9FFF00\AppData\Local\go-build
[2020-08-03T16:29:34.134Z] set GOENV=C:\Users\jenkins.PACKER-5D9FFF00\AppData\Roaming\go\env
[2020-08-03T16:29:34.134Z] set GOEXE=.exe
[2020-08-03T16:29:34.134Z] set GOFLAGS=
[2020-08-03T16:29:34.134Z] set GOHOSTARCH=amd64
[2020-08-03T16:29:34.134Z] set GOHOSTOS=windows
[2020-08-03T16:29:34.134Z] set GOINSECURE=
[2020-08-03T16:29:34.134Z] set GONOPROXY=
[2020-08-03T16:29:34.134Z] set GONOSUMDB=
[2020-08-03T16:29:34.134Z] set GOOS=windows
[2020-08-03T16:29:34.134Z] set GOPATH=C:\Users\jenkins\workspace\Beats_beats_PR-20359
[2020-08-03T16:29:34.134Z] set GOPRIVATE=
[2020-08-03T16:29:34.134Z] set GOPROXY=https://proxy.golang.org,direct
[2020-08-03T16:29:34.134Z] set GOROOT=C:\Users\jenkins.PACKER-5D9FFF00\.gvm\versions\go1.14.4.windows.amd64
[2020-08-03T16:29:34.134Z] set GOSUMDB=sum.golang.org
[2020-08-03T16:29:34.134Z] set GOTMPDIR=
[2020-08-03T16:29:34.134Z] set GOTOOLDIR=C:\Users\jenkins.PACKER-5D9FFF00\.gvm\versions\go1.14.4.windows.amd64\pkg\tool\windows_amd64
[2020-08-03T16:29:34.134Z] set GCCGO=gccgo
[2020-08-03T16:29:34.134Z] set AR=ar
[2020-08-03T16:29:34.134Z] set CC=gcc
[2020-08-03T16:29:34.134Z] set CXX=g++
[2020-08-03T16:29:34.134Z] set CGO_ENABLED=1
[2020-08-03T16:29:34.134Z] set GOMOD=C:\Users\jenkins\workspace\Beats_beats_PR-20359\src\github.com\elastic\beats\go.mod
[2020-08-03T16:29:34.134Z] set CGO_CFLAGS=-g -O2
[2020-08-03T16:29:34.134Z] set CGO_CPPFLAGS=
[2020-08-03T16:29:34.134Z] set CGO_CXXFLAGS=-g -O2
[2020-08-03T16:29:34.134Z] set CGO_FFLAGS=-g -O2
[2020-08-03T16:29:34.134Z] set CGO_LDFLAGS=-g -O2
[2020-08-03T16:29:34.134Z] set PKG_CONFIG=pkg-config
[2020-08-03T16:29:34.134Z] set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\JENKIN~1.PAC\AppData\Local\Temp\go-build001598794=/tmp/go-build -gno-record-gcc-switches
[2020-08-03T16:29:34.134Z] >> build: Building elastic-agent
[2020-08-03T16:30:12.843Z] === RUN   TestSystem
[2020-08-03T16:30:12.843Z] --- PASS: TestSystem (0.00s)
[2020-08-03T16:30:12.843Z] PASS
[2020-08-03T16:30:12.843Z] coverage: 0.0% of statements
[2020-08-03T16:30:12.843Z] ok  	github.com/elastic/beats/v7/x-pack/elastic-agent	0.172s	coverage: 0.0% of statements
[2020-08-03T16:30:13.216Z] 
[2020-08-03T16:30:13.216Z] C:\Users\jenkins\workspace\Beats_beats_PR-20359\src\github.com\elastic\beats>python .ci/scripts/pre_archive_test.py 
[2020-08-03T16:30:14.151Z] Copy .\x-pack\elastic-agent\build into build\x-pack\elastic-agent\build
[2020-08-03T16:30:14.158Z] Running in C:\Users\jenkins\workspace\Beats_beats_PR-20359\src\github.com\elastic\beats\build
[2020-08-03T16:30:14.182Z] Recording test results
[2020-08-03T16:30:14.624Z] None of the test reports contained any result
[2020-08-03T16:30:14.771Z] Stashed 0 file(s)
[2020-08-03T16:30:14.780Z] Archiving artifacts
[2020-08-03T16:30:14.839Z] ‘**\build\TEST*.out’ doesn’t match anything: ‘**’ exists but not ‘**\build\TEST*.out’
[2020-08-03T16:30:14.839Z] No artifacts found that match the file pattern "**\build\TEST*.out". Configuration error?
[2020-08-03T16:30:15.249Z] [INFO] system-tests=''. If no empty then let's create a tarball
[2020-08-03T16:30:16.983Z] Running in /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats
[2020-08-03T16:30:17.296Z] + find . -type f -name TEST*.xml -path */build/* -delete
[2020-08-03T16:30:17.309Z] Running in /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats/Lint
[2020-08-03T16:30:17.410Z] Running in /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats/Elastic-Agent-Mac-OS-X
[2020-08-03T16:30:17.488Z] Running in /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats/Elastic-Agent-x-pack
[2020-08-03T16:30:17.572Z] Running in /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats/Elastic-Agent-x-pack-Windows
[2020-08-03T16:30:17.941Z] + cat
[2020-08-03T16:30:17.941Z] + /usr/local/bin/runbld ./runbld-script
[2020-08-03T16:30:17.941Z] Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8
[2020-08-03T16:30:24.533Z] runbld>>> runbld started
[2020-08-03T16:30:24.533Z] runbld>>> 1.6.12/f45d832f2ba0aa2722ab4ec1fda8ad140f027f8b
[2020-08-03T16:30:26.451Z] runbld>>> The following profiles matched the job 'Beats/beats/PR-20359' in order of occurrence in the config (last value wins).
[2020-08-03T16:30:27.836Z] runbld>>> Debug logging enabled.
[2020-08-03T16:30:27.836Z] runbld>>> Storing result
[2020-08-03T16:30:27.836Z] runbld>>> Store result: created {:total 2, :successful 2, :failed 0} 1
[2020-08-03T16:30:27.836Z] runbld>>> BUILD: https://c150076387b5421f9154dfbf536e5c60.us-west1.gcp.cloud.es.io:9243/build-1587637540455/t/20200803163027-C3CA6BE4
[2020-08-03T16:30:27.836Z] runbld>>> Adding system facts.
[2020-08-03T16:30:29.229Z] runbld>>> Adding vcs info for the latest commit:  d7e29fd51c36d7d7293c1de5d5a9ff95ea4e2deb
[2020-08-03T16:30:29.229Z] runbld>>> >>>>>>>>>>>> SCRIPT EXECUTION BEGIN >>>>>>>>>>>>
[2020-08-03T16:30:29.229Z] runbld>>> Adding /usr/lib/jvm/java-8-openjdk-amd64/bin to the path.
[2020-08-03T16:30:29.229Z] Processing JUnit reports with runbld...
[2020-08-03T16:30:29.229Z] + echo 'Processing JUnit reports with runbld...'
[2020-08-03T16:30:29.490Z] runbld>>> <<<<<<<<<<<< SCRIPT EXECUTION END <<<<<<<<<<<<
[2020-08-03T16:30:29.490Z] runbld>>> DURATION: 27ms
[2020-08-03T16:30:29.490Z] runbld>>> STDOUT: 40 bytes
[2020-08-03T16:30:29.490Z] runbld>>> STDERR: 49 bytes
[2020-08-03T16:30:29.490Z] runbld>>> WRAPPED PROCESS: SUCCESS (0)
[2020-08-03T16:30:29.490Z] runbld>>> Searching for build metadata in /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats
[2020-08-03T16:30:30.434Z] runbld>>> Storing build metadata: 
[2020-08-03T16:30:30.434Z] runbld>>> Adding test report.
[2020-08-03T16:30:30.434Z] runbld>>> Searching for junit test output files with the pattern: TEST-.*\.xml$ in: /var/lib/jenkins/workspace/Beats_beats_PR-20359/src/github.com/elastic/beats
[2020-08-03T16:30:31.377Z] runbld>>> Found 0 test output files
[2020-08-03T16:30:31.377Z] runbld>>> Test output logs contained: Errors: 0 Failures: 0 Tests: 0 Skipped: 0
[2020-08-03T16:30:31.377Z] runbld>>> Storing result
[2020-08-03T16:30:31.638Z] runbld>>> Store result: updated {:total 2, :successful 2, :failed 0} 2
[2020-08-03T16:30:31.638Z] runbld>>> BUILD: https://c150076387b5421f9154dfbf536e5c60.us-west1.gcp.cloud.es.io:9243/build-1587637540455/t/20200803163027-C3CA6BE4
[2020-08-03T16:30:31.899Z] runbld>>> Email notification disabled by environment variable.
[2020-08-03T16:30:31.899Z] runbld>>> Slack notification disabled by environment variable.
[2020-08-03T16:30:37.419Z] Running on Jenkins in /var/lib/jenkins/workspace/Beats_beats_PR-20359
[2020-08-03T16:30:37.515Z] [INFO] getVaultSecret: Getting secrets
[2020-08-03T16:30:37.581Z] Masking supported pattern matches of $VAULT_ADDR or $VAULT_ROLE_ID or $VAULT_SECRET_ID
[2020-08-03T16:30:38.310Z] + chmod 755 generate-build-data.sh
[2020-08-03T16:30:38.310Z] + ./generate-build-data.sh https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-20359/ https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-20359/runs/3 ABORTED 7306110
[2020-08-03T16:30:38.310Z] INFO: curl https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-20359/runs/3/steps/?limit=10000 -o steps-info.json
[2020-08-03T16:30:38.560Z] INFO: curl https://beats-ci.elastic.co/blue/rest/organizations/jenkins/pipelines/Beats/beats/PR-20359/runs/3/tests/?status=FAILED -o tests-errors.json

blakerouse added a commit to blakerouse/beats that referenced this pull request Aug 4, 2020
…c#20359)

* Add improve version CLI cmd.

* Add new restart cmd. Perform restart at end of enroll.

* Fix yaml annotations on version struct.

* Fix control.Address on Windows.

* Fix control.Address on Windows.

* Fix windows dialer.

* Fix control.Address on Windows.

* Add to CHANGELOG.

* Review cleanups.

* Fix go vet.

* Update talking to communicating.

(cherry picked from commit 77b3b07)
blakerouse added a commit that referenced this pull request Aug 4, 2020
…enroll CLI commands (#20431)

* [Elastic Agent] Improve version, restart, enroll CLI commands (#20359)

* Add improve version CLI cmd.

* Add new restart cmd. Perform restart at end of enroll.

* Fix yaml annotations on version struct.

* Fix control.Address on Windows.

* Fix control.Address on Windows.

* Fix windows dialer.

* Fix control.Address on Windows.

* Add to CHANGELOG.

* Review cleanups.

* Fix go vet.

* Update talking to communicating.

(cherry picked from commit 77b3b07)

* [Elastic Agent] Fix agent control socket path to always be less than 107 characters (#20426)

* Fix agent control socket path to always be less than 107 characters.

* Use os.TempDir.

* Don't use os.TempDir.
v1v added a commit to v1v/beats that referenced this pull request Aug 6, 2020
…ne-2.0

* upstream/master:
  [docs] Promote ingest management to beta (elastic#20295)
  Upgrade elasticsearch client library used in tests (elastic#20405)
  Disable logging when pulling on python integration tests (elastic#20397)
  Remove pillow from testing requirements.txt (elastic#20407)
  [Filebeat][ATP Module]Setting user agent field required by the API (elastic#20440)
  [Ingest Manager] Send datastreams fields (elastic#20402)
  Add event.ingested to all Filebeat modules (elastic#20386)
  [Elastic Agent] Fix agent control socket path to always be less than 107 characters (elastic#20426)
  Improve cgroup_regex docs with examples (elastic#20425)
  Makes `metrics` config option required in app_insights (elastic#20406)
  Ensure install scripts only install if needed (elastic#20349)
  Update container name for the azure filesets (elastic#19899)
  Group same timestamp metrics values in app_insights metricset (elastic#20403)
  add_process_metadata processor adds container id even if process metadata not accessible (elastic#19767)
  Support "cluster" scope in Metricbeat elasticsearch module (elastic#18547)
  [Filebeat][SophosXG Module] Renaming module and fileset (elastic#20396)
  Update Suricata dashboards (elastic#20394)
  [Elastic Agent] Improve version, restart, enroll CLI commands (elastic#20359)
  Prepare home directories for docker images in a different stage (elastic#20356)
v1v added a commit to v1v/beats that referenced this pull request Aug 6, 2020
…allation

* upstream/master: (23 commits)
  [docs] Promote ingest management to beta (elastic#20295)
  Upgrade elasticsearch client library used in tests (elastic#20405)
  Disable logging when pulling on python integration tests (elastic#20397)
  Remove pillow from testing requirements.txt (elastic#20407)
  [Filebeat][ATP Module]Setting user agent field required by the API (elastic#20440)
  [Ingest Manager] Send datastreams fields (elastic#20402)
  Add event.ingested to all Filebeat modules (elastic#20386)
  [Elastic Agent] Fix agent control socket path to always be less than 107 characters (elastic#20426)
  Improve cgroup_regex docs with examples (elastic#20425)
  Makes `metrics` config option required in app_insights (elastic#20406)
  Ensure install scripts only install if needed (elastic#20349)
  Update container name for the azure filesets (elastic#19899)
  Group same timestamp metrics values in app_insights metricset (elastic#20403)
  add_process_metadata processor adds container id even if process metadata not accessible (elastic#19767)
  Support "cluster" scope in Metricbeat elasticsearch module (elastic#18547)
  [Filebeat][SophosXG Module] Renaming module and fileset (elastic#20396)
  Update Suricata dashboards (elastic#20394)
  [Elastic Agent] Improve version, restart, enroll CLI commands (elastic#20359)
  Prepare home directories for docker images in a different stage (elastic#20356)
  New multiline mode in Filebeat: while_pattern (elastic#19662)
  ...
melchiormoulin pushed a commit to melchiormoulin/beats that referenced this pull request Oct 14, 2020
…c#20359)

* Add improve version CLI cmd.

* Add new restart cmd. Perform restart at end of enroll.

* Fix yaml annotations on version struct.

* Fix control.Address on Windows.

* Fix control.Address on Windows.

* Fix windows dialer.

* Fix control.Address on Windows.

* Add to CHANGELOG.

* Review cleanups.

* Fix go vet.

* Update talking to communicating.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants