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(a)ovirt.org
http://lists.ovirt.org/mailman/listinfo/kimchi-devel