elastic / elastic/logstash-devutils

Can't extract the ASN database from its tar.gz file

Open
#71 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
17
Forks
27
Avg merge
4d 21h
Merged PRs (30d)
1

Description

The gem can't extract the ASN database defined in this `vendor.json` (I hope I got the semantic of `files` right)

```
[
{
"url": "http://geolite.maxmind.com/download/geoip/database/GeoLite2-ASN.tar.gz",
"files": "GeoLite2-ASN.mmdb",
"sha1": "ce70f043bf71602a211cef3565560e17d3543609"
}
]
```

It's because of these lines in `lib/logstash/devutils/rake/vendor.rake`.

```
161 if download =~ /.tar.gz/
162 prefix = download.gsub('.tar.gz', '').gsub('vendor/', '')
163 # prefix GeoLite2-ASN
164 untar(download) do |entry|
165 if !file['files'].nil?
166 next unless file['files'].include?(entry.full_name.gsub(prefix, ''))
167 out = entry.full_name.split("/").last
168 end
169 File.join('vendor', out)
170 end
...
```

Two problems here:

* the `gsub` at 166 turns `GeoLite2-ASN_20170620/GeoLite2-ASN.mmdb` into `_20170620/.mmdb` which won't match anything. A `sub` would do but it's not a general solution.
* the order or the `include?` is wrong and should be reversed (the entry includes the files)

Fix: replace lines 166 and 167 with

```
candidate = entry.full_name.split("/").last
next unless candidate.include?(file['files'])
out = candidate
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.