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")