bgpview 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -10
- data/Gemfile.lock +1 -1
- data/README.md +8 -0
- data/lib/bgpview/asn.rb +5 -0
- data/lib/bgpview/downstreams.rb +35 -0
- data/lib/bgpview/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a664513f54fe8ebc782b133c9a7d0740e8a9132aec436ca356279f73bb1abaee
|
4
|
+
data.tar.gz: 3290ba042a3351ed1c31e5157cb038727113c3783e550ae20c114843f096eb0a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71ada1c0de7e5469a2cce664710299adf1d78eabfa2c2c3c7029402d14ad3db6be7cffa5e7370d0b4d1856716d77607019221e536e0cbdcdf5c24faa42cbb6cf
|
7
|
+
data.tar.gz: 6b5a689b6178c635ac343a8483f8a225af46e0689c35f9b82d6b36d8f6938db8f971b32dd20294c523966900aaff4d5ad8e36a39aa61343424e67f6c1d013078
|
data/.travis.yml
CHANGED
@@ -6,17 +6,7 @@ sudo: false
|
|
6
6
|
language: ruby
|
7
7
|
cache: bundler
|
8
8
|
rvm:
|
9
|
-
- 2.5.0
|
10
|
-
- 2.5.1
|
11
|
-
- 2.5.2
|
12
|
-
- 2.5.3
|
13
|
-
- 2.5.4
|
14
|
-
- 2.5.5
|
15
9
|
- 2.5.6
|
16
|
-
- 2.6.0
|
17
|
-
- 2.6.1
|
18
|
-
- 2.6.2
|
19
|
-
- 2.6.3
|
20
10
|
- 2.6.4
|
21
11
|
before_install: gem install bundler -v 2.0.2
|
22
12
|
before_script:
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -67,6 +67,14 @@ upstreams.ipv4.map(&:number) # => [7514, 17676]
|
|
67
67
|
upstreams.ipv6.map(&:name) # => ["MEX", "GIGAINFRA"]
|
68
68
|
```
|
69
69
|
|
70
|
+
### ASN Downstreams
|
71
|
+
```ruby
|
72
|
+
downstreams = as7511.downstreams # BGPView::Downstreams instance
|
73
|
+
downstreams.ipv4 # array of IPv4 downstream instances
|
74
|
+
downstreams.ipv6 # array of IPv6 downstream instances
|
75
|
+
downstreams.ipv4.map(&:number) # => [7517, 45687]
|
76
|
+
downstreams.ipv6.map(&:name) # => []
|
77
|
+
```
|
70
78
|
|
71
79
|
## Contributing
|
72
80
|
|
data/lib/bgpview/asn.rb
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
require 'bgpview/api'
|
4
4
|
require 'bgpview/upstreams'
|
5
|
+
require 'bgpview/downstreams'
|
5
6
|
require 'bgpview/peers'
|
6
7
|
require 'bgpview/prefixes'
|
7
8
|
require 'bgpview/number'
|
@@ -45,6 +46,10 @@ module BGPView
|
|
45
46
|
BGPView::Upstreams.find(@number)
|
46
47
|
end
|
47
48
|
|
49
|
+
def downstreams
|
50
|
+
BGPView::Downstreams.find(@number)
|
51
|
+
end
|
52
|
+
|
48
53
|
def peers
|
49
54
|
BGPView::Peers.find(@number)
|
50
55
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bgpview/api'
|
4
|
+
|
5
|
+
module BGPView
|
6
|
+
class Downstreams
|
7
|
+
@@cache = {}
|
8
|
+
|
9
|
+
private_class_method :new
|
10
|
+
attr_reader :ipv4, :ipv6
|
11
|
+
|
12
|
+
def initialize(number)
|
13
|
+
BGPView::Number.check(number)
|
14
|
+
|
15
|
+
downstreams = BGPView::API.call("#{number}/downstreams")
|
16
|
+
|
17
|
+
@ipv4 = extract_as(downstreams, 'ipv4')
|
18
|
+
@ipv6 = extract_as(downstreams, 'ipv6')
|
19
|
+
|
20
|
+
@@cache[number] = self
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.find(number)
|
24
|
+
@@cache.key?(number) ? @@cache[number] : new(number)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def extract_as(downstreams, version)
|
30
|
+
downstreams[:data]["#{version}_downstreams".to_sym].map do |as|
|
31
|
+
BGPView::Asn.find_or_create(as[:asn], as[:name])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/bgpview/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bgpview
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ryonkn
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -189,6 +189,7 @@ files:
|
|
189
189
|
- lib/bgpview.rb
|
190
190
|
- lib/bgpview/api.rb
|
191
191
|
- lib/bgpview/asn.rb
|
192
|
+
- lib/bgpview/downstreams.rb
|
192
193
|
- lib/bgpview/error.rb
|
193
194
|
- lib/bgpview/ip.rb
|
194
195
|
- lib/bgpview/number.rb
|