コード例 #1
0
 def mount_snapshot(json_args):
     _logger.info("MountSnapshot mount_snapshot json_args:{}".format(json_args))
     result_mount_snapshot = dict()
     j_args = json.loads(json_args)
     snapshots = j_args.get('snapshots', None)
     not_need_nbd = j_args.get('not_need_nbd', False)
     if snapshots and (not not_need_nbd):
         # 初始化一个 nbd 对象
         nbd_object = nbd.nbd_wrapper(
             nbd.nbd_wrapper_disable_lvm_allocator(nbd.nbd_wrapper_local_device_allocator()))
         device_path = nbd_object.device_path
         device_name = nbd_object.device_name
         # 挂载  (线程)
         nbd_thread = nbd.nbd_direct_images(device_name, nbd_object, snapshots)
         nbd_thread.start()
         nbd.nbd_wrapper.wait_nbd_read_ok(nbd_object)
         nbd_indet = uuid.uuid4().hex
         result_mount_snapshot['nbd_device_path'] = device_path
         result_mount_snapshot['nbd_object_uuid'] = nbd_indet
         with _threading_op_locker:
             _threading_pools[nbd_indet] = nbd_object
     else:
         result_mount_snapshot['nbd_device_path'] = None
         result_mount_snapshot['nbd_object_uuid'] = None
     _logger.info("MountSnapshot mount_snapshot result_mount_snapshot:{}".format(result_mount_snapshot))
     return result_mount_snapshot
コード例 #2
0
 def _nbd_object_by_data_device(data_device):
     device_profile = data_device['device_profile']
     nbdinfo = device_profile['nbd']
     return nbd.nbd_wrapper(
         nbd.nbd_wrapper_disable_lvm_allocator(
             nbd.nbd_wrapper_empty_allocator(nbdinfo['device_index'],
                                             nbdinfo['device_name'],
                                             nbdinfo['device_path'],
                                             nbdinfo['vnc_address'])))
コード例 #3
0
 def __init__(self):
     threading.Thread.__init__(self)
     self.__mount_cmd = None
     self.__umount_cmd = None
     self.new_nbd = nbd.nbd_wrapper(
         nbd.nbd_wrapper_disable_lvm_allocator(
             nbd.nbd_wrapper_local_device_allocator()))
     self.device_path = self.new_nbd.device_path
     self.scsi_id = None
     _logger.debug('nbd init,device_path {}'.format(self.device_path))
コード例 #4
0
ファイル: samba.py プロジェクト: ShawnYi5/logic_service
 def __init__(self, username='', hostname='', diskindex=0, disk_snapshots=''):
     threading.Thread.__init__(self)
     self.username = username
     self.hostname = hostname
     self.diskindex = diskindex
     self.disk_snapshots = disk_snapshots
     self.new_nbd = nbd.nbd_wrapper(nbd.nbd_wrapper_local_device_allocator())
     self.device_path = self.new_nbd.device_path
     _logger.debug('username {} hostname {} diskindex {} disk_snapshots {} nbd start,device_path {}'.
                   format(self.username, self.hostname, self.diskindex, self.disk_snapshots, self.device_path))
コード例 #5
0
 def _get_nbd_object(self):
     if self._nbd_object:
         return self._nbd_object
     else:
         self._nbd_object = nbd.nbd_wrapper(
             nbd.nbd_wrapper_disable_lvm_allocator(
                 nbd.nbd_wrapper_local_device_allocator()))
         nbd_thread = nbd.nbd_direct_images(self._nbd_object.device_name,
                                            self._nbd_object,
                                            self._snapshots)
         nbd_thread.start()
         nbd.nbd_wrapper.wait_nbd_read_ok(self._nbd_object)
         return self._nbd_object
コード例 #6
0
 def __init__(self, config):
     self._config = config
     self._nbd_object = nbd.nbd_wrapper(
         nbd.nbd_wrapper_disable_lvm_allocator(
             nbd.nbd_wrapper_local_device_allocator()))
     self._nbd_thread = None