def neutron_collector(self, destination, resources):
        collected_items = {}
        self.chose_destination_cloud(destination)
        if 'networks' in resources:
            networks_list = self.cloud_info.neutronclient.list_networks()
            collected_items['networks'] = networks_list['networks']
        if 'subnets' in resources:
            subnets_list = self.cloud_info.neutronclient.list_subnets()
            collected_items['subnets'] = subnets_list['subnets']
        if 'routers' in resources:
            routers_list = self.cloud_info.neutronclient.list_routers()
            collected_items['routers'] = routers_list['routers']
        if 'ports' in resources:
            ports_list = self.cloud_info.neutronclient.list_ports()
            collected_items['ports'] = ports_list['ports']
        if 'quotas' in resources:
            quotas = {}
            tenant_list = self.cloud_info.keystoneclient.tenants.list()
            for tenant in tenant_list:
                quota_list = self.cloud_info.neutronclient.show_quota(
                    tenant.id)
                quotas[tenant.name] = quota_list
            collected_items['quotas'] = quotas
        return collected_items
Repeatedly call a function with given arguments until AssertionErrors
dataset/ETHPy150Open MirantisWorkloadMobility/CloudFerry/cloudferry_devlab/cloudferry_devlab/tests/data_collector.py/DataCollector.neutron_collector--crossover with--dataset/ETHPy150Open ClusterHQ/flocker/flocker/node/agents/testtools/_blockdevice.py/IBlockDeviceAPITestsMixin.repeat_until_consistent