Skip to content

Commit 0c4dc4a

Browse files
authored
Is beats updated? (elastic#831)
* remove nonexistent package * update github.com/elastic/beats/libbeat/kibana manually * add utility for checking beats sync status
1 parent c20cfa5 commit 0c4dc4a

File tree

3 files changed

+71
-80
lines changed

3 files changed

+71
-80
lines changed

Makefile

+5-1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ update-beats:
2727
@$(MAKE) update
2828
@echo --- Use this commit message: Update beats framework to `cat vendor/vendor.json | python -c 'import sys, json; print([p["revision"] for p in json.load(sys.stdin)["package"] if p["path"] == "github.com/elastic/beats/libbeat/beat"][0][:7])'`
2929

30+
.PHONY: is-beats-updated
31+
is-beats-updated: python-env
32+
@$(PYTHON_ENV)/bin/python ./script/is_beats_updated.py ${BEATS_VERSION}
33+
3034
# This is called by the beats packer before building starts
3135
.PHONY: before-build
3236
before-build:
@@ -93,4 +97,4 @@ force-update-docs: clean docs
9397
.PHONY: update-beats-docs
9498
update-beats-docs:
9599
@python script/copy-docs.py
96-
@$(MAKE) docs
100+
@$(MAKE) docs

script/is_beats_updated.py

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
#!/usr/bin/env python
2+
3+
from __future__ import print_function
4+
5+
import argparse
6+
import json
7+
import logging
8+
import sys
9+
10+
import requests
11+
12+
13+
def beats_version(vendor):
14+
"""parse vendor.json content and extract beats version"""
15+
v = json.load(vendor)
16+
found = set()
17+
for package in v['package']:
18+
if package['path'].startswith('github.com/elastic/beats/'):
19+
found.add(package['revision'])
20+
if len(found) == 0:
21+
raise Exception("no beats revision found")
22+
if len(found) > 1:
23+
raise Exception("multiple beats revisions found:\n" + "\n".join(sorted(found)))
24+
return found.pop()
25+
26+
27+
def main():
28+
parser = argparse.ArgumentParser()
29+
parser.add_argument('-i', '--vendor', type=argparse.FileType('r'), default='vendor/vendor.json',
30+
help='path to vendor.json')
31+
parser.add_argument('-B', '--beats-revision', type=str, help='beats revision override (skip reading vendor.json)')
32+
parser.add_argument('-D', '--debug', action='store_true')
33+
parser.add_argument("ref")
34+
args = parser.parse_args()
35+
36+
level = logging.DEBUG if args.debug else logging.ERROR
37+
logging.basicConfig(level=level)
38+
39+
current = args.beats_revision if args.beats_revision else beats_version(args.vendor)
40+
logging.debug("checking if latest beats revision in '%s' is: %s", args.ref, current)
41+
42+
rsp = requests.get(
43+
"https://api.github.com/repos/elastic/beats/commits/{}".format(args.ref),
44+
headers={
45+
'Accept': 'application/vnd.github.VERSION.sha',
46+
'Etag': current,
47+
},
48+
)
49+
actual = rsp.content.decode('utf-8')
50+
if rsp.status_code != 200:
51+
print("failed to query latest beat revision on '{}': {}".format(args.ref, actual))
52+
return 1
53+
54+
if actual != current:
55+
print("out of date: https://github.com/elastic/beats/compare/{}...{}".format(current, actual))
56+
return 1
57+
58+
print("update to date on '{}' at {}".format(args.ref, actual))
59+
return 0
60+
61+
62+
if __name__ == '__main__':
63+
sys.exit(main())

vendor/vendor.json

+3-79
Original file line numberDiff line numberDiff line change
@@ -517,12 +517,10 @@
517517
"versionExact": "master"
518518
},
519519
{
520-
"checksumSHA1": "qr5L7wYi9UcKO0ZPX7P6vxE1Vs0=",
520+
"checksumSHA1": "z8VztKgyYSA7eyVuhNocdpav6zA=",
521521
"path": "github.com/elastic/beats/libbeat/kibana",
522-
"revision": "584a2d385004814b8c2a154e53ebe1680775c1de",
523-
"revisionTime": "2017-11-30T05:04:44Z",
524-
"version": "master",
525-
"versionExact": "master"
522+
"revision": "4960293df6759a499221c132a453dcf9a64fe172",
523+
"revisionTime": "2018-04-12T14:53:20Z"
526524
},
527525
{
528526
"checksumSHA1": "z8VztKgyYSA7eyVuhNocdpav6zA=",
@@ -644,18 +642,6 @@
644642
"version": "master",
645643
"versionExact": "master"
646644
},
647-
{
648-
"path": "github.com/elastic/beats/libbeat/outputs/codecs/format",
649-
"revision": "master",
650-
"version": "master",
651-
"versionExact": "master"
652-
},
653-
{
654-
"path": "github.com/elastic/beats/libbeat/outputs/codecs/json",
655-
"revision": "master",
656-
"version": "master",
657-
"versionExact": "master"
658-
},
659645
{
660646
"checksumSHA1": "JGP5bMcL1KyJRJCR1kW11gZhPhk=",
661647
"path": "github.com/elastic/beats/libbeat/outputs/console",
@@ -696,30 +682,6 @@
696682
"version": "master",
697683
"versionExact": "master"
698684
},
699-
{
700-
"path": "github.com/elastic/beats/libbeat/outputs/mode",
701-
"revision": "master",
702-
"version": "master",
703-
"versionExact": "master"
704-
},
705-
{
706-
"path": "github.com/elastic/beats/libbeat/outputs/mode/lb",
707-
"revision": "master",
708-
"version": "master",
709-
"versionExact": "master"
710-
},
711-
{
712-
"path": "github.com/elastic/beats/libbeat/outputs/mode/modeutil",
713-
"revision": "master",
714-
"version": "master",
715-
"versionExact": "master"
716-
},
717-
{
718-
"path": "github.com/elastic/beats/libbeat/outputs/mode/single",
719-
"revision": "master",
720-
"version": "master",
721-
"versionExact": "master"
722-
},
723685
{
724686
"checksumSHA1": "UEGH5mAXdKBysIjODuTxHKlzqsY=",
725687
"path": "github.com/elastic/beats/libbeat/outputs/outil",
@@ -816,12 +778,6 @@
816778
"version": "master",
817779
"versionExact": "master"
818780
},
819-
{
820-
"path": "github.com/elastic/beats/libbeat/processors/kubernetes",
821-
"revision": "master",
822-
"version": "master",
823-
"versionExact": "master"
824-
},
825781
{
826782
"checksumSHA1": "3kyV9PwlSwcLnK9SWKX97Gh7c00=",
827783
"path": "github.com/elastic/beats/libbeat/publisher",
@@ -830,38 +786,6 @@
830786
"version": "master",
831787
"versionExact": "master"
832788
},
833-
{
834-
"checksumSHA1": "ftmsSpe94KKRIei+hfi9GVDfkuU=",
835-
"path": "github.com/elastic/beats/libbeat/publisher/bc/publisher",
836-
"revision": "f240148065af94d55c5149e444482b9635801f27",
837-
"revisionTime": "2017-07-28T07:19:26Z",
838-
"version": "master",
839-
"versionExact": "master"
840-
},
841-
{
842-
"checksumSHA1": "lDzOqs8+fRo5uTYqBocUpafrXg8=",
843-
"path": "github.com/elastic/beats/libbeat/publisher/beat",
844-
"revision": "0008c722eba848c3e48be81c4a270e51b024ace2",
845-
"revisionTime": "2017-08-08T09:57:48Z",
846-
"version": "master",
847-
"versionExact": "master"
848-
},
849-
{
850-
"checksumSHA1": "h/FWcbUZrr4jSczVEsSH9SsaCGU=",
851-
"path": "github.com/elastic/beats/libbeat/publisher/broker",
852-
"revision": "f240148065af94d55c5149e444482b9635801f27",
853-
"revisionTime": "2017-07-28T07:19:26Z",
854-
"version": "master",
855-
"versionExact": "master"
856-
},
857-
{
858-
"checksumSHA1": "anYB4tIWyeRa73+pYq/TkqEv0CE=",
859-
"path": "github.com/elastic/beats/libbeat/publisher/broker/membroker",
860-
"revision": "f240148065af94d55c5149e444482b9635801f27",
861-
"revisionTime": "2017-07-28T07:19:26Z",
862-
"version": "master",
863-
"versionExact": "master"
864-
},
865789
{
866790
"checksumSHA1": "1o8H8N6gEznJwpTwmtlgDu9o+/A=",
867791
"path": "github.com/elastic/beats/libbeat/publisher/includes",

0 commit comments

Comments
 (0)