[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