Handle special service where package is not available (#45155)

There are several services e.g. vmware-fdm, which does not have package name and
package description which will raise a error if queried for.

(cherry picked from commit b3b65d16b8)
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2018-09-04 17:03:44 +05:30 committed by Toshio Kuratomi
parent bc80087cca
commit e0f910abcb
2 changed files with 16 additions and 11 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- vmware_host_service_facts - handle exception when service package does not have package name.

View file

@ -83,16 +83,18 @@ class VmwareServiceManager(PyVmomi):
if host_service_system:
services = host_service_system.serviceInfo.service
for service in services:
host_service_facts.append(dict(key=service.key,
label=service.label,
required=service.required,
uninstallable=service.uninstallable,
running=service.running,
policy=service.policy,
source_package_name=service.sourcePackage.sourcePackageName,
source_package_desc=service.sourcePackage.description,
)
)
host_service_facts.append(
dict(
key=service.key,
label=service.label,
required=service.required,
uninstallable=service.uninstallable,
running=service.running,
policy=service.policy,
source_package_name=service.sourcePackage.sourcePackageName if service.sourcePackage else 'NA',
source_package_desc=service.sourcePackage.description if service.sourcePackage else 'NA',
)
)
hosts_facts[host.name] = host_service_facts
return hosts_facts
@ -108,7 +110,8 @@ def main():
argument_spec=argument_spec,
required_one_of=[
['cluster_name', 'esxi_hostname'],
]
],
supports_check_mode=True,
)
vmware_host_service_config = VmwareServiceManager(module)