Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion cloudinit/sources/DataSourceOVF.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@ def _get_data(self):
else:
search_paths = (
"/usr/lib/vmware-tools", "/usr/lib64/vmware-tools",
"/usr/lib/open-vm-tools", "/usr/lib64/open-vm-tools")
"/usr/lib/open-vm-tools", "/usr/lib64/open-vm-tools",
"/usr/lib/x86_64-linux-gnu/open-vm-tools",
"/usr/lib/aarch64-linux-gnu/open-vm-tools")

plugin = "libdeployPkgPlugin.so"
deployPkgPluginPath = None
Expand Down
24 changes: 24 additions & 0 deletions tests/unittests/test_ds_identify.py
Original file line number Diff line number Diff line change
Expand Up @@ -534,6 +534,30 @@ def test_ovf_on_vmware_iso_found_open_vm_tools_64(self):
return self._check_via_dict(
cust64, RC_FOUND, dslist=[cust64.get('ds'), DS_NONE])

def test_ovf_on_vmware_iso_found_open_vm_tools_x86_64_linux_gnu(self):
"""OVF is identified when open-vm-tools installed in
/usr/lib/x86_64-linux-gnu."""
cust64 = copy.deepcopy(VALID_CFG['OVF-vmware-customization'])
p32 = 'usr/lib/vmware-tools/plugins/vmsvc/libdeployPkgPlugin.so'
x86 = 'usr/lib/x86_64-linux-gnu/open-vm-tools/plugins/vmsvc/' \
'libdeployPkgPlugin.so'
cust64['files'][x86] = cust64['files'][p32]
del cust64['files'][p32]
return self._check_via_dict(
cust64, RC_FOUND, dslist=[cust64.get('ds'), DS_NONE])

def test_ovf_on_vmware_iso_found_open_vm_tools_aarch64_linux_gnu(self):
"""OVF is identified when open-vm-tools installed in
/usr/lib/aarch64-linux-gnu."""
cust64 = copy.deepcopy(VALID_CFG['OVF-vmware-customization'])
p32 = 'usr/lib/vmware-tools/plugins/vmsvc/libdeployPkgPlugin.so'
aarch64 = 'usr/lib/aarch64-linux-gnu/open-vm-tools/plugins/vmsvc/' \
'libdeployPkgPlugin.so'
cust64['files'][aarch64] = cust64['files'][p32]
del cust64['files'][p32]
return self._check_via_dict(
cust64, RC_FOUND, dslist=[cust64.get('ds'), DS_NONE])

def test_ovf_on_vmware_iso_found_by_cdrom_with_matching_fs_label(self):
"""OVF is identified by well-known iso9660 labels."""
ovf_cdrom_by_label = copy.deepcopy(VALID_CFG['OVF'])
Expand Down
5 changes: 5 additions & 0 deletions tools/ds-identify
Original file line number Diff line number Diff line change
Expand Up @@ -899,11 +899,16 @@ ovf_vmware_guest_customization() {

# we have to have the plugin to do vmware customization
local found="" pkg="" pre="${PATH_ROOT}/usr/lib"
local x86="x86_64-linux-gnu" aarch="aarch64-linux-gnu"
local ppath="plugins/vmsvc/libdeployPkgPlugin.so"
for pkg in vmware-tools open-vm-tools; do
if [ -f "$pre/$pkg/$ppath" -o -f "${pre}64/$pkg/$ppath" ]; then
found="$pkg"; break;
fi
# search in multiarch dir
if [ -f "$pre/$x86/$pkg/$ppath" -o -f "$pre/$aarch/$pkg/$ppath" ]; then
found="$pkg"; break;
fi
done
[ -n "$found" ] || return 1
# vmware customization is disabled by default
Expand Down