linux-ip-addr 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/linux/ip/route.rb +16 -1
- data/lib/linux/ip/version.rb +5 -0
- data/linux-ip-addr.gemspec +2 -2
- data/test/linux_ip_route_test.rb +13 -0
- metadata +2 -2
- data/lib/linux/ip/addr/version.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d872c524cb5965dd7d8c4caaec484924b7394bf0
|
4
|
+
data.tar.gz: 7322ee705ccbbda31c2fe125d071237b95dc4ded
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d468f7180a526b6da439d1e9729834174da2adb3f58335649edf92519995cdec7008f3cfeb1df2fca52bc39cb1f182a69c2440dd86067826a8ba6d3b221f0575
|
7
|
+
data.tar.gz: 0f44708913a3ca536958a3a486ce2441e4153705b182f4ad8f60aed922718ab0ec7259f3be640841e9ffc5f6afcfacaf4826916881deca9f6af9905944cdc5d3
|
data/lib/linux/ip/route.rb
CHANGED
@@ -12,10 +12,19 @@ module Linux
|
|
12
12
|
@routes = []
|
13
13
|
end
|
14
14
|
|
15
|
+
def as_commands(direction = 'add')
|
16
|
+
@routes.map do |route|
|
17
|
+
route.as_commands(direction)
|
18
|
+
end.flatten.compact.join("\n")
|
19
|
+
end
|
20
|
+
|
15
21
|
class Options < OpenStruct
|
16
22
|
def initialize(options_str)
|
17
23
|
super(options_str.split(/\s+/).inject({}) { |r, i| r[i] = true; r })
|
18
24
|
end
|
25
|
+
def as_ip
|
26
|
+
"" # there is some to do
|
27
|
+
end
|
19
28
|
end
|
20
29
|
|
21
30
|
class ViaRoute
|
@@ -26,8 +35,11 @@ module Linux
|
|
26
35
|
@dev = dev
|
27
36
|
@options = options
|
28
37
|
end
|
38
|
+
def as_commands(direction)
|
39
|
+
"ip route #{direction} #{dst} via #{via} #{options.as_ip}"
|
40
|
+
end
|
29
41
|
end
|
30
|
-
def add_via(dev, dst, via, options)
|
42
|
+
def add_via(dev, dst, via, options = "")
|
31
43
|
@interfaces[dev] ||= []
|
32
44
|
route = ViaRoute.new(dst, via, dev, Options.new(options))
|
33
45
|
@interfaces[dev] << route
|
@@ -41,6 +53,9 @@ module Linux
|
|
41
53
|
@dev = dev
|
42
54
|
@options = options
|
43
55
|
end
|
56
|
+
def as_commands(direction)
|
57
|
+
"ip route #{direction} #{dst} dev #{dev} #{options.as_ip}"
|
58
|
+
end
|
44
59
|
end
|
45
60
|
def add_dev(dev, dst, options)
|
46
61
|
@interfaces[dev] ||= []
|
data/linux-ip-addr.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
lib = File.expand_path('../lib', __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'linux/ip/
|
4
|
+
require 'linux/ip/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "linux-ip-addr"
|
8
|
-
spec.version = Linux::Ip::
|
8
|
+
spec.version = Linux::Ip::VERSION
|
9
9
|
spec.authors = ["Meno Abels"]
|
10
10
|
spec.email = ["meno.abels@adviser.com"]
|
11
11
|
spec.summary = %q{Parse the output of ip addr on a linux system}
|
data/test/linux_ip_route_test.rb
CHANGED
@@ -104,5 +104,18 @@ SAMPLE
|
|
104
104
|
def test_find
|
105
105
|
end
|
106
106
|
|
107
|
+
def test_as_command
|
108
|
+
ip_route = Linux::Ip::Route.parse_from_lines(@ip_route_4_show.lines)
|
109
|
+
assert ip_route.as_commands("del").include?("ip route del 112.164.91.136/29 dev eth3.207")
|
110
|
+
ip_route = Linux::Ip::Route.parse_from_lines(@ip_route_6_show.lines)
|
111
|
+
assert ip_route.as_commands("add").include?("ip route add 3c04:3a60:0:fe82::/64 via 3c04:3a60:0:2::21")
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_from_scratch
|
115
|
+
ip_route = Linux::Ip::Route::IpRoute.new
|
116
|
+
ip_route.add_via("eth0", "0.0.0.0/0", "47.11.1.1")
|
117
|
+
assert ip_route.as_commands("add").include?("ip route add 0.0.0.0/0 via 47.11.1.1")
|
118
|
+
end
|
119
|
+
|
107
120
|
end
|
108
121
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linux-ip-addr
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Meno Abels
|
@@ -37,8 +37,8 @@ files:
|
|
37
37
|
- README.md
|
38
38
|
- Rakefile
|
39
39
|
- lib/linux/ip/addr.rb
|
40
|
-
- lib/linux/ip/addr/version.rb
|
41
40
|
- lib/linux/ip/route.rb
|
41
|
+
- lib/linux/ip/version.rb
|
42
42
|
- linux-ip-addr.gemspec
|
43
43
|
- test/linux_ip_addr_test.rb
|
44
44
|
- test/linux_ip_route_test.rb
|