Merge "VMware:Fix error creating vCenter inventory folder"
This commit is contained in:
commit
ea64e3584a
@ -378,6 +378,24 @@ class VolumeOpsTestCase(test.TestCase):
|
||||
mock.sentinel.dc,
|
||||
'vmFolder')
|
||||
|
||||
def test_create_folder_with_empty_vmfolder(self):
|
||||
"""Test create_folder when the datacenter vmFolder is empty"""
|
||||
child_folder = mock.sentinel.child_folder
|
||||
self.session.invoke_api.side_effect = [None, child_folder]
|
||||
|
||||
parent_folder = mock.sentinel.parent_folder
|
||||
child_name = 'child_folder'
|
||||
ret = self.vops.create_folder(parent_folder, child_name)
|
||||
|
||||
self.assertEqual(child_folder, ret)
|
||||
expected_calls = [mock.call(vim_util, 'get_object_property',
|
||||
self.session.vim, parent_folder,
|
||||
'childEntity'),
|
||||
mock.call(self.session.vim, 'CreateFolder',
|
||||
parent_folder, name=child_name)]
|
||||
self.assertEqual(expected_calls,
|
||||
self.session.invoke_api.call_args_list)
|
||||
|
||||
def test_create_folder_not_present(self):
|
||||
"""Test create_folder when child not present."""
|
||||
parent_folder = mock.sentinel.parent_folder
|
||||
|
@ -523,18 +523,20 @@ class VMwareVolumeOps(object):
|
||||
prop_val = self._session.invoke_api(vim_util, 'get_object_property',
|
||||
self._session.vim, parent_folder,
|
||||
'childEntity')
|
||||
child_entities = prop_val.ManagedObjectReference
|
||||
|
||||
# Return if the child folder with input name is already present
|
||||
for child_entity in child_entities:
|
||||
if child_entity._type != 'Folder':
|
||||
continue
|
||||
child_entity_name = self.get_entity_name(child_entity)
|
||||
if child_entity_name and (urllib.unquote(child_entity_name) ==
|
||||
child_folder_name):
|
||||
LOG.debug("Child folder: %s already present.",
|
||||
child_folder_name)
|
||||
return child_entity
|
||||
if prop_val and hasattr(prop_val, 'ManagedObjectReference'):
|
||||
child_entities = prop_val.ManagedObjectReference
|
||||
|
||||
# Return if the child folder with input name is already present
|
||||
for child_entity in child_entities:
|
||||
if child_entity._type != 'Folder':
|
||||
continue
|
||||
child_entity_name = self.get_entity_name(child_entity)
|
||||
if child_entity_name and (urllib.unquote(child_entity_name) ==
|
||||
child_folder_name):
|
||||
LOG.debug("Child folder: %s already present.",
|
||||
child_folder_name)
|
||||
return child_entity
|
||||
|
||||
# Need to create the child folder
|
||||
child_folder = self._session.invoke_api(self._session.vim,
|
||||
|
Loading…
x
Reference in New Issue
Block a user