Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
40fd474d
Commit
40fd474d
authored
Apr 22, 2013
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add some whitespace
parent
aa897571
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
9 deletions
+33
-9
library/setup
+33
-9
No files found.
library/setup
View file @
40fd474d
...
...
@@ -1039,7 +1039,9 @@ class LinuxNetwork(Network):
interfaces
[
device
][
'all_slaves_active'
]
=
open
(
os
.
path
.
join
(
path
,
'bonding'
,
'all_slaves_active'
))
.
read
()
==
'1'
output
=
subprocess
.
Popen
([
'/sbin/ip'
,
'addr'
,
'show'
,
device
],
stdout
=
subprocess
.
PIPE
,
stderr
=
subprocess
.
PIPE
)
.
communicate
()[
0
]
for
line
in
output
.
split
(
'
\n
'
):
if
not
line
:
continue
if
not
line
:
continue
words
=
line
.
split
()
if
words
[
0
]
==
'inet'
:
if
'/'
in
words
[
1
]:
...
...
@@ -1071,23 +1073,29 @@ class LinuxNetwork(Network):
if
not
address
.
startswith
(
'127.'
):
ips
[
'all_ipv4_addresses'
]
.
append
(
address
)
elif
words
[
0
]
==
'inet6'
:
address
,
prefix
=
words
[
1
]
.
split
(
'/'
)
scope
=
words
[
3
]
if
'ipv6'
not
in
interfaces
[
device
]:
interfaces
[
device
][
'ipv6'
]
=
[]
interfaces
[
device
][
'ipv6'
]
.
append
(
{
'address'
:
address
,
'prefix'
:
prefix
,
'scope'
:
scope
}
)
interfaces
[
device
][
'ipv6'
]
.
append
({
'address'
:
address
,
'prefix'
:
prefix
,
'scope'
:
scope
})
# If this is the default address, update default_ipv6
if
'address'
in
default_ipv6
and
default_ipv6
[
'address'
]
==
address
:
default_ipv6
[
'prefix'
]
=
prefix
default_ipv6
[
'scope'
]
=
scope
default_ipv6
[
'prefix'
]
=
prefix
default_ipv6
[
'scope'
]
=
scope
default_ipv6
[
'macaddress'
]
=
macaddress
default_ipv6
[
'mtu'
]
=
interfaces
[
device
][
'mtu'
]
default_ipv6
[
'type'
]
=
interfaces
[
device
][
'type'
]
default_ipv6
[
'mtu'
]
=
interfaces
[
device
][
'mtu'
]
default_ipv6
[
'type'
]
=
interfaces
[
device
][
'type'
]
if
not
address
==
'::1'
:
ips
[
'all_ipv6_addresses'
]
.
append
(
address
)
...
...
@@ -1111,36 +1119,48 @@ class GenericBsdIfconfigNetwork(Network):
Network
.
__init__
(
self
)
def
populate
(
self
):
ifconfig_path
=
module
.
get_bin_path
(
'ifconfig'
)
if
ifconfig_path
is
None
:
return
self
.
facts
route_path
=
module
.
get_bin_path
(
'route'
)
if
route_path
is
None
:
return
self
.
facts
default_ipv4
,
default_ipv6
=
self
.
get_default_interfaces
(
route_path
)
interfaces
,
ips
=
self
.
get_interfaces_info
(
ifconfig_path
)
self
.
merge_default_interface
(
default_ipv4
,
interfaces
,
'ipv4'
)
self
.
merge_default_interface
(
default_ipv6
,
interfaces
,
'ipv6'
)
self
.
facts
[
'interfaces'
]
=
interfaces
.
keys
()
for
iface
in
interfaces
:
self
.
facts
[
iface
]
=
interfaces
[
iface
]
self
.
facts
[
'default_ipv4'
]
=
default_ipv4
self
.
facts
[
'default_ipv6'
]
=
default_ipv6
self
.
facts
[
'all_ipv4_addresses'
]
=
ips
[
'all_ipv4_addresses'
]
self
.
facts
[
'all_ipv6_addresses'
]
=
ips
[
'all_ipv6_addresses'
]
return
self
.
facts
def
get_default_interfaces
(
self
,
route_path
):
# Use the commands:
# route -n get 8.8.8.8 -> Google public DNS
# route -n get 2404:6800:400a:800::1012 -> ipv6.google.com
# to find out the default outgoing interface, address, and gateway
command
=
dict
(
v4
=
[
route_path
,
'-n'
,
'get'
,
'8.8.8.8'
],
v6
=
[
route_path
,
'-n'
,
'get'
,
'2404:6800:400a:800::1012'
]
)
interface
=
dict
(
v4
=
{},
v6
=
{})
for
v
in
'v4'
,
'v6'
:
if
v
==
'v6'
and
not
socket
.
has_ipv6
:
continue
rc
,
out
,
err
=
module
.
run_command
(
command
[
v
])
...
...
@@ -1154,6 +1174,7 @@ class GenericBsdIfconfigNetwork(Network):
# look for first word starting interface
if
len
(
words
)
>
0
and
words
[
0
]
==
'interface:'
:
interface
[
v
][
'interface'
]
=
words
[
1
]
return
interface
[
'v4'
],
interface
[
'v6'
]
def
get_interfaces_info
(
self
,
ifconfig_path
):
...
...
@@ -1164,9 +1185,12 @@ class GenericBsdIfconfigNetwork(Network):
all_ipv6_addresses
=
[],
)
rc
,
out
,
err
=
module
.
run_command
([
ifconfig_path
])
for
line
in
out
.
split
(
'
\n
'
):
if
line
:
words
=
line
.
split
()
if
re
.
match
(
'^
\
S'
,
line
)
and
len
(
words
)
>
3
:
current_if
=
self
.
parse_interface_line
(
words
)
interfaces
[
current_if
[
'device'
]
]
=
current_if
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment