[Kimchi-devel] [PATCH 2/2] MockModel refactor: Create MockModel based on Model("test:///default")
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Nov 14 18:51:24 UTC 2014
On 11/14/2014 04:41 PM, Aline Manera wrote:
>
> On 11/14/2014 04:36 PM, Crístian Viana wrote:
>> On 14-11-2014 15:15, Aline Manera wrote:
>>> The reset() function is to clean up all the mockup resources as it
>>> is running for the first time.
>>>
>>> The whole code is:
>>>
>>> params = {'vms': [u'test'], 'templates': [],
>>> 'networks': [u'default'], 'storagepools':
>>> [u'default-pool']}
>>>
>>> for res, items in params.iteritems():
>>> resources = getattr(self, '%s_get_list' % res)()
>>> for i in resources:
>>> if i in items:
>>> continue
>>>
>>> try:
>>> getattr(self, '%s_deactivate' % res[:-1])(i)
>>> except:
>>> pass
>>>
>>> getattr(self, '%s_delete' % res[:-1])(i)
>>>
>>>
>>> "params" hold the first time configuration - so one only VM named
>>> "test" must persist on 'test:///default' URI and the same for
>>> storagepools and networks.
>>>
>>> The first loop (for res, items in params.iteritems()) is to go by
>>> the "params" list.
>>> Then I collect all the resources for the API (resources =
>>> getattr(self, '%s_get_list' % res)()).
>>> The seconds loop is to identify the resources that need to be
>>> removed, ie, will not be in the first run time. So I compared the
>>> item against the "params" values.
>>>
>>> Does that make sense?
>>
>> The logic makes sense but that's not what that code snippet does. The
>> keyword "continue" will skip the current iteration of the *inner
>> loop*, not the outer one - which I guess is what you intended. In
>> other words, the inner loop doesn't do anything.
>
> No - I want to skip only the inner loop
>
>>
>> Try removing the inner loop entirely; the code will still work as
>> before.
>
> No! The outer loop is for pass along vms, storagepools, networks. The
> inner loop is for each VM, each storage pools, each network.
>
> The inner loop will be skipped *only if* the resource is in the
> default config (represented by "params")
To clarify the inner loop could be replaced by:
params = {'vms': [u'test'], 'templates': [],
'networks': [u'default'], 'storagepools':
[u'default-pool']}
for res, items in params.iteritems():
resources = getattr(self, '%s_get_list' % res)()
*for i in list(set(resources) - set(items):*
try:
getattr(self, '%s_deactivate' % res[:-1])(i)
except:
pass
getattr(self, '%s_delete' % res[:-1])(i)
>
>
> _______________________________________________
> Kimchi-devel mailing list
> Kimchi-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/kimchi-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/kimchi-devel/attachments/20141114/91c2486d/attachment.html>
More information about the Kimchi-devel
mailing list