VMware: Python3 migrations for vmware_inventory.py (#47538)

* Sort and pretty print json output and cache file
* Enable Python3 test for vmware_inventory.py

Fixes: #46727

Signed-off-by: Rowin Andruscavage <8740187+MTN-RowinAndruscavage@users.noreply.github.com>
Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
Rowin Andruscavage 2019-06-25 03:10:13 -07:00 committed by Abhijeet Kasurde
parent 06292566ec
commit 896b84bfbe
2 changed files with 6 additions and 7 deletions

View file

@ -153,7 +153,7 @@ class VMWareInventory(object):
try: try:
text = str(text) text = str(text)
except UnicodeEncodeError: except UnicodeEncodeError:
text = text.encode('ascii', 'ignore') text = text.encode('utf-8')
print('%s %s' % (datetime.datetime.now(), text)) print('%s %s' % (datetime.datetime.now(), text))
def show(self): def show(self):
@ -187,14 +187,14 @@ class VMWareInventory(object):
def write_to_cache(self, data): def write_to_cache(self, data):
''' Dump inventory to json file ''' ''' Dump inventory to json file '''
with open(self.cache_path_cache, 'wb') as f: with open(self.cache_path_cache, 'w') as f:
f.write(json.dumps(data)) f.write(json.dumps(data, indent=2))
def get_inventory_from_cache(self): def get_inventory_from_cache(self):
''' Read in jsonified inventory ''' ''' Read in jsonified inventory '''
jdata = None jdata = None
with open(self.cache_path_cache, 'rb') as f: with open(self.cache_path_cache, 'r') as f:
jdata = f.read() jdata = f.read()
return json.loads(jdata) return json.loads(jdata)
@ -391,7 +391,7 @@ class VMWareInventory(object):
instances = [x for x in instances if x.name == self.args.host] instances = [x for x in instances if x.name == self.args.host]
instance_tuples = [] instance_tuples = []
for instance in sorted(instances): for instance in instances:
if self.guest_props: if self.guest_props:
ifacts = self.facts_from_proplist(instance) ifacts = self.facts_from_proplist(instance)
else: else:
@ -693,7 +693,7 @@ class VMWareInventory(object):
if vobj.isalnum(): if vobj.isalnum():
rdata = vobj rdata = vobj
else: else:
rdata = vobj.decode('ascii', 'ignore') rdata = vobj.encode('utf-8').decode('utf-8')
elif issubclass(type(vobj), bool) or isinstance(vobj, bool): elif issubclass(type(vobj), bool) or isinstance(vobj, bool):
rdata = vobj rdata = vobj
elif issubclass(type(vobj), integer_types) or isinstance(vobj, integer_types): elif issubclass(type(vobj), integer_types) or isinstance(vobj, integer_types):

View file

@ -1,6 +1,5 @@
shippable/vcenter/group1 shippable/vcenter/group1
cloud/vcenter cloud/vcenter
skip/python3
destructive destructive
needs/file/contrib/inventory/vmware_inventory.py needs/file/contrib/inventory/vmware_inventory.py
needs/file/contrib/inventory/vmware_inventory.ini needs/file/contrib/inventory/vmware_inventory.ini