Skip to content

Commit 8dd77e7

Browse files
committed
Stop using ip -netns option
-netns option is not supported in Ubuntu 14.04
1 parent 7ec95fc commit 8dd77e7

1 file changed

Lines changed: 13 additions & 11 deletions

File tree

lib/phut/netns.rb

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class Netns
1414
def self.all
1515
sh('ip netns list').split("\n").map do |each|
1616
name = each.split.first
17-
addr_list = sudo("ip -netns #{name} -4 -o addr list").split("\n")
17+
addr_list = sudo("ip netns exec #{name} ip -4 -o addr list").split("\n")
1818
if addr_list.size > 1
1919
%r{inet ([^/]+)/(\d+)} =~ addr_list[1]
2020
new(name: name,
@@ -62,7 +62,8 @@ def stop
6262
end
6363

6464
def device
65-
if /^\d+: ([^@]+)@/ =~ sudo("ip -netns #{name} -o link show type veth")
65+
if /^\d+: ([^@]+)@/ =~
66+
sudo("ip netns exec #{name} ip -o link show type veth")
6667
Regexp.last_match(1)
6768
end
6869
end
@@ -74,25 +75,25 @@ def device=(device_name)
7475

7576
vlan_suffix = @vlan ? ".#{@vlan}" : ''
7677
if @vlan
77-
sudo "ip -netns #{name} link set #{device_name} up"
78-
sudo "ip -netns #{name} "\
79-
"link add link #{device_name} name "\
78+
sudo "ip netns exec #{name} ip link set #{device_name} up"
79+
sudo "ip netns exec #{name} "\
80+
"ip link add link #{device_name} name "\
8081
"#{device_name}#{vlan_suffix} type vlan id #{@vlan}"
8182
end
82-
sudo "ip -netns #{name} link set #{device_name}#{vlan_suffix} up"
83-
sudo "ip -netns #{name} "\
84-
"addr replace #{@ip_address}/#{@netmask} "\
83+
sudo "ip netns exec #{name} ip link set #{device_name}#{vlan_suffix} up"
84+
sudo "ip netns exec #{name} "\
85+
"ip addr replace #{@ip_address}/#{@netmask} "\
8586
"dev #{device_name}#{vlan_suffix}"
8687

87-
sudo "ip -netns #{name} link set #{device_name}#{vlan_suffix} up"
88+
sudo "ip netns exec #{name} ip link set #{device_name}#{vlan_suffix} up"
8889

8990
@route.add name
9091
end
9192
# rubocop:enable MethodLength
9293

9394
def netmask
9495
if %r{inet [^/]+/(\d+) } =~
95-
sudo("ip -netns #{name} -o -4 address show dev #{device}")
96+
sudo("ip netns exec #{name} ip -o -4 address show dev #{device}")
9697
IPAddr.new('255.255.255.255').mask(Regexp.last_match(1).to_i).to_s
9798
end
9899
end
@@ -102,7 +103,8 @@ def route
102103
end
103104

104105
def vlan
105-
if /^\d+: #{device}\.(\d+)@/ =~ sudo("ip -netns #{name} -o link show")
106+
if /^\d+: #{device}\.(\d+)@/ =~
107+
sudo("ip netns exec #{name} ip -o link show")
106108
Regexp.last_match(1)
107109
end
108110
end

0 commit comments

Comments
 (0)