def __init__(self, instance=None, disk_name=None, path=None): if not CONF.libvirt.images_rbd_pool: raise RuntimeError(_('You should specify' ' images_rbd_pool' ' flag to use rbd images.')) if path: try: self.rbd_name = path.split('/')[1] except IndexError: raise exception.InvalidDevicePath(path=path) else: self.rbd_name = '%s_%s' % (instance.uuid, disk_name) self.pool = CONF.libvirt.images_rbd_pool self.rbd_user = CONF.libvirt.rbd_user self.ceph_conf = CONF.libvirt.images_rbd_ceph_conf path = 'rbd:%s/%s' % (self.pool, self.rbd_name) if self.rbd_user: path += ':id=' + self.rbd_user if self.ceph_conf: path += ':conf=' + self.ceph_conf super(Rbd, self).__init__(path, "block", "rbd", is_block_dev=False) self.driver = rbd_utils.RBDDriver( pool=self.pool, ceph_conf=self.ceph_conf, rbd_user=self.rbd_user) self.discard_mode = CONF.libvirt.hw_disk_discard
def __init__(self, instance=None, disk_name=None, path=None): if not CONF.libvirt.images_rbd_pool: raise RuntimeError(_('You should specify' ' images_rbd_pool' ' flag to use rbd images.')) if path: try: self.rbd_name = path.split('/')[1] except IndexError: raise exception.InvalidDevicePath(path=path) else: self.rbd_name = '%s_%s' % (instance.uuid, disk_name) self.pool = CONF.libvirt.images_rbd_pool self.rbd_user = CONF.libvirt.rbd_user self.ceph_conf = CONF.libvirt.images_rbd_ceph_conf path = 'rbd:%s/%s' % (self.pool, self.rbd_name) if self.rbd_user: path += ':id=' + self.rbd_user if self.ceph_conf: path += ':conf=' + self.ceph_conf super(Rbd, self).__init__(path, "block", "rbd", is_block_dev=False) self.driver = rbd_utils.RBDDriver( pool=self.pool, ceph_conf=self.ceph_conf, rbd_user=self.rbd_user) self.discard_mode = CONF.libvirt.hw_disk_discard