def _get_instance_volumes(self, nova, cinder, backend_instance_id):
        try:
            attached_volume_ids = [
                v.volumeId
                for v in nova.volumes.get_server_volumes(backend_instance_id)
            ]

            if len(attached_volume_ids) != 2:
                logger.info('Skipping instance %s, only instances with 2 volumes are supported, found %d',
                            backend_instance_id, len(attached_volume_ids))
                raise LookupError

            attached_volumes = [
                cinder.volumes.get(volume_id)
                for volume_id in attached_volume_ids
            ]

            # Blessed be OpenStack developers for returning booleans as strings
            system_volume = next(v for v in attached_volumes if v.bootable == 'true')
            data_volume = next(v for v in attached_volumes if v.bootable == 'false')
        except (cinder_exceptions.ClientException, __HOLE__) as e:
            logger.info('Skipping instance %s, failed to fetch volumes', backend_instance_id)
            six.reraise(LookupError, e)
        else:
            return system_volume, data_volume
dataset/ETHPy150Open opennode/nodeconductor/nodeconductor/iaas/backend.py/OpenStackBackend._get_instance_volumes