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
17020d6a
Commit
17020d6a
authored
Nov 23, 2012
by
Michael DeHaan
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1656 from dagwieers/setup-virtualization
Implemented more virtualization types
parents
9d773911
e528826d
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
11 deletions
+76
-11
library/setup
+76
-11
No files found.
library/setup
View file @
17020d6a
...
@@ -708,6 +708,7 @@ class LinuxVirtual(Virtual):
...
@@ -708,6 +708,7 @@ class LinuxVirtual(Virtual):
self
.
get_virtual_facts
()
self
.
get_virtual_facts
()
return
self
.
facts
return
self
.
facts
# For more information, check: http://people.redhat.com/~rjones/virt-what/
def
get_virtual_facts
(
self
):
def
get_virtual_facts
(
self
):
if
os
.
path
.
exists
(
"/proc/xen"
):
if
os
.
path
.
exists
(
"/proc/xen"
):
self
.
facts
[
'virtualization_type'
]
=
'xen'
self
.
facts
[
'virtualization_type'
]
=
'xen'
...
@@ -716,40 +717,104 @@ class LinuxVirtual(Virtual):
...
@@ -716,40 +717,104 @@ class LinuxVirtual(Virtual):
for
line
in
open
(
'/proc/xen/capabilities'
):
for
line
in
open
(
'/proc/xen/capabilities'
):
if
"control_d"
in
line
:
if
"control_d"
in
line
:
self
.
facts
[
'virtualization_role'
]
=
'host'
self
.
facts
[
'virtualization_role'
]
=
'host'
return
elif
os
.
path
.
exists
(
'/proc/vz'
):
if
os
.
path
.
exists
(
'/proc/vz'
):
self
.
facts
[
'virtualization_type'
]
=
'openvz'
self
.
facts
[
'virtualization_type'
]
=
'openvz'
if
os
.
path
.
exists
(
'/proc/
vz/version
'
):
if
os
.
path
.
exists
(
'/proc/
bc
'
):
self
.
facts
[
'virtualization_role'
]
=
'host'
self
.
facts
[
'virtualization_role'
]
=
'host'
else
:
else
:
self
.
facts
[
'virtualization_role'
]
=
'guest'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
product_name
=
get_file_content
(
'/sys/devices/virtual/dmi/id/product_name'
)
elif
get_file_content
(
'/sys/devices/virtual/dmi/id/product_name'
)
in
[
'KVM'
,
'Bochs'
]:
if
product_name
in
[
'KVM'
,
'Bochs'
]:
self
.
facts
[
'virtualization_type'
]
=
'kvm'
self
.
facts
[
'virtualization_type'
]
=
'kvm'
self
.
facts
[
'virtualization_role'
]
=
'guest'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
elif
get_file_content
(
'/sys/devices/virtual/dmi/id/sys_vendor'
)
==
'VMware, Inc.
'
:
if
product_name
==
'VMware Virtual Platform
'
:
self
.
facts
[
'virtualization_type'
]
=
'VMware'
self
.
facts
[
'virtualization_type'
]
=
'VMware'
self
.
facts
[
'virtualization_role'
]
=
'guest'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
bios_vendor
=
get_file_content
(
'/sys/devices/virtual/dmi/id/bios_vendor'
)
if
bios_vendor
==
'Xen'
:
self
.
facts
[
'virtualization_type'
]
=
'xen'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
if
bios_vendor
==
'innotek GmbH'
:
self
.
facts
[
'virtualization_type'
]
=
'virtualbox'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
sys_vendor
=
get_file_content
(
'/sys/devices/virtual/dmi/id/sys_vendor'
)
elif
get_file_content
(
'/sys/devices/virtual/dmi/id/sys_vendor'
)
==
'Microsoft Corporation'
:
# FIXME: This does also match hyperv
if
sys_vendor
==
'Microsoft Corporation'
:
self
.
facts
[
'virtualization_type'
]
=
'VirtualPC'
self
.
facts
[
'virtualization_type'
]
=
'VirtualPC'
self
.
facts
[
'virtualization_role'
]
=
'guest'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
if
sys_vendor
==
'Parallels Software International Inc.'
:
self
.
facts
[
'virtualization_type'
]
=
'parallels'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
elif
os
.
path
.
exists
(
"/proc/modules"
):
for
line
in
open
(
'/proc/self/status'
)
.
readlines
():
if
re
.
match
(
'^VxID:
\
d+'
,
line
):
self
.
facts
[
'virtualization_type'
]
=
'linux_vserver'
if
re
.
match
(
'^VxID: 0'
,
line
):
self
.
facts
[
'virtualization_role'
]
=
'host'
else
:
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
for
line
in
open
(
'/proc/cpuinfo'
)
.
readlines
():
if
re
.
match
(
'^model name.*QEMU Virtual CPU'
,
line
):
self
.
facts
[
'virtualization_type'
]
=
'kvm'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
if
re
.
match
(
'^vendor_id.*User Mode Linux'
,
line
):
self
.
facts
[
'virtualization_type'
]
=
'uml'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
if
re
.
match
(
'^model name.*UML'
,
line
):
self
.
facts
[
'virtualization_type'
]
=
'uml'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
if
re
.
match
(
'^vendor_id.*PowerVM Lx86'
,
line
):
self
.
facts
[
'virtualization_type'
]
=
'powervm_lx86'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
if
re
.
match
(
'^vendor_id.*IBM/S390'
,
line
):
self
.
facts
[
'virtualization_type'
]
=
'ibm_systemz'
self
.
facts
[
'virtualization_role'
]
=
'guest'
return
# Beware that we can have both kvm and virtualbox running on a single system
if
os
.
path
.
exists
(
"/proc/modules"
):
modules
=
[]
modules
=
[]
for
line
in
open
(
"/proc/modules"
)
.
readlines
():
for
line
in
open
(
"/proc/modules"
)
.
readlines
():
data
=
line
.
split
(
" "
,
1
)
data
=
line
.
split
(
" "
,
1
)
modules
.
append
(
data
[
0
])
modules
.
append
(
data
[
0
])
if
'kvm'
in
modules
:
if
'kvm'
in
modules
:
self
.
facts
[
'virtualization_type'
]
=
'kvm'
self
.
facts
[
'virtualization_type'
]
=
'kvm'
self
.
facts
[
'virtualization_role'
]
=
'host'
self
.
facts
[
'virtualization_role'
]
=
'host'
elif
'vboxdrv'
in
modules
:
return
if
'vboxdrv'
in
modules
:
self
.
facts
[
'virtualization_type'
]
=
'virtualbox'
self
.
facts
[
'virtualization_type'
]
=
'virtualbox'
self
.
facts
[
'virtualization_role'
]
=
'host'
self
.
facts
[
'virtualization_role'
]
=
'host'
elif
'vboxguest'
in
modules
:
return
self
.
facts
[
'virtualization_type'
]
=
'virtualbox'
self
.
facts
[
'virtualization_role'
]
=
'guest'
class
SunOSVirtual
(
Virtual
):
class
SunOSVirtual
(
Virtual
):
"""
"""
...
...
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