Example #1
0
 def _initiate_rescan(self, wait_for_completion=True, raise_error=False):
     from infi.devicemanager import DeviceManager
     from infi.storagemodel.base.gevent_wrapper import joinall, defer, spawn
     dm = DeviceManager()
     rescan_callables = (defer(controller.rescan) for controller in dm.storage_controllers)
     greenlets = [spawn(item) for item in rescan_callables]
     if wait_for_completion:
         joinall(greenlets, raise_error=True)
 def asi_context(self):
     from infi.asi import create_platform_command_executer, create_os_file
     handle = create_os_file(self.get_pdo())
     executer = create_platform_command_executer(handle)
     executer.call = defer(executer.call)
     try:
         yield executer
     finally:
         handle.close()
 def get_physical_drive_number(self):
     """returns the drive number of the disk.
     if the disk is hidden (i.e. part of MPIODisk), it returns -1
     """
     try:
         number = defer(self.get_ioctl_interface().storage_get_device_number)()
         return -1 if number == 0xffffffff else number
     except WindowsException:
         return -1
Example #4
0
 def _initiate_rescan(self, wait_for_completion=True, raise_error=False):
     from infi.devicemanager import DeviceManager
     from infi.storagemodel.base.gevent_wrapper import joinall, defer, spawn
     dm = DeviceManager()
     rescan_callables = (defer(controller.rescan)
                         for controller in dm.storage_controllers)
     greenlets = [spawn(item) for item in rescan_callables]
     if wait_for_completion:
         joinall(greenlets, raise_error=True)
 def asi_context(self):
     from infi.asi import create_platform_command_executer, create_os_file
     handle = create_os_file(self._get_access_path())
     executer = create_platform_command_executer(handle)
     executer.call = gevent_wrapper.defer(executer.call)
     try:
         yield executer
     finally:
         handle.close()
 def asi_context(self):
     from infi.asi import create_platform_command_executer, create_os_file
     handle = create_os_file(self._get_access_path())
     executer = create_platform_command_executer(handle)
     executer.call = gevent_wrapper.defer(executer.call)
     try:
         yield executer
     finally:
         handle.close()
Example #7
0
 def asi_context(self):
     from infi.asi import create_platform_command_executer, create_os_file
     handle = create_os_file(self.get_pdo())
     executer = create_platform_command_executer(handle)
     executer.call = defer(executer.call)
     try:
         yield executer
     finally:
         handle.close()
Example #8
0
 def get_physical_drive_number(self):
     """returns the drive number of the disk.
     if the disk is hidden (i.e. part of MPIODisk), it returns -1
     """
     try:
         number = defer(
             self.get_ioctl_interface().storage_get_device_number)()
         return -1 if number == 0xffffffff else number
     except WindowsException:
         return -1
    def asi_context(self):
        import os
        from infi.asi import create_platform_command_executer, create_os_file

        handle = create_os_file(self.get_block_access_path())
        executer = create_platform_command_executer(handle, timeout=QUERY_TIMEOUT)
        executer.call = gevent_wrapper.defer(executer.call)
        try:
            yield executer
        finally:
            handle.close()
Example #10
0
    def asi_context(self):
        import os
        from infi.asi.unix import OSFile
        from infi.asi.linux import LinuxIoctlCommandExecuter

        handle = OSFile(os.open(self.get_block_access_path(), os.O_RDWR))
        executer = LinuxIoctlCommandExecuter(handle)
        executer.call = gevent_wrapper.defer(executer.call)
        try:
            yield executer
        finally:
            handle.close()
    def asi_context(self):
        import os
        from infi.asi.unix import OSFile
        from infi.asi.linux import LinuxIoctlCommandExecuter

        handle = OSFile(os.open(self.get_block_access_path(), os.O_RDWR))
        executer = LinuxIoctlCommandExecuter(handle)
        executer.call = gevent_wrapper.defer(executer.call)
        try:
            yield executer
        finally:
            handle.close()
 def asi_context(self):
     import os
     from infi.asi import create_platform_command_executer, create_os_file
     from .scsi import SG_TIMEOUT_IN_MS
     path = os.path.join("/dev", self.sysfs_device.get_scsi_generic_device_name())
     handle = create_os_file(path)
     executer = create_platform_command_executer(handle, timeout=SG_TIMEOUT_IN_MS)
     executer.call = gevent_wrapper.defer(executer.call)
     try:
         yield executer
     finally:
         handle.close()
Example #13
0
    def asi_context(self):
        import os
        from infi.asi import create_platform_command_executer, create_os_file

        handle = create_os_file(self.get_block_access_path())
        executer = create_platform_command_executer(handle,
                                                    timeout=QUERY_TIMEOUT)
        executer.call = gevent_wrapper.defer(executer.call)
        try:
            yield executer
        finally:
            handle.close()
Example #14
0
 def asi_context(self):
     import os
     from infi.asi import create_platform_command_executer, create_os_file
     from .scsi import SG_TIMEOUT_IN_MS
     path = os.path.join("/dev",
                         self.sysfs_device.get_scsi_generic_device_name())
     handle = create_os_file(path)
     executer = create_platform_command_executer(handle,
                                                 timeout=SG_TIMEOUT_IN_MS)
     executer.call = gevent_wrapper.defer(executer.call)
     try:
         yield executer
     finally:
         handle.close()
Example #15
0
    def asi_context(self):
        import os
        from infi.asi import create_platform_command_executer, create_os_file

        # if sgen is not loaded we can't open the device
        if not os.path.exists(self.get_block_access_path()) and os.path.exists(self.get_block_access_path().strip(":array_ctrl")):
            msg = "can't query device {} since block access path doesn't exist (sgen is not loaded)".format(self.get_display_name())
            raise ScsiGenericNotLoaded(msg)

        handle = create_os_file(self.get_block_access_path())
        executer = create_platform_command_executer(handle, timeout=QUERY_TIMEOUT)
        executer.call = gevent_wrapper.defer(executer.call)
        try:
            yield executer
        finally:
            handle.close()
Example #16
0
    def asi_context(self):
        import os
        from infi.asi import create_platform_command_executer, create_os_file

        # if sgen is not loaded we can't open the device
        if not os.path.exists(self.get_block_access_path()) and os.path.exists(
                self.get_block_access_path().strip(":array_ctrl")):
            msg = "can't query device {} since block access path doesn't exist (sgen is not loaded)".format(
                self.get_display_name())
            raise ScsiGenericNotLoaded(msg)

        handle = create_os_file(self.get_block_access_path())
        executer = create_platform_command_executer(handle,
                                                    timeout=QUERY_TIMEOUT)
        executer.call = gevent_wrapper.defer(executer.call)
        try:
            yield executer
        finally:
            handle.close()
Example #17
0
 def get_hctl(self):
     from infi.dtypes.hctl import HCTL
     return HCTL(*defer(self.get_ioctl_interface().scsi_get_address)())
 def get_hctl(self):
     from infi.dtypes.hctl import HCTL
     return HCTL(*defer(self.get_ioctl_interface().scsi_get_address)())
 def _get_hwid(self):
     hwid = defer(getattr)(self._device_object, 'hardware_ids')[0]
     hwid = hwid.replace('SCSI\\Disk', '').replace('SCSI\\Array', '').replace('MPIO\\Disk', '')
     return hwid
 def get_size_in_bytes(self):
     return defer(self.get_ioctl_interface().disk_get_drive_geometry_ex)()
Example #21
0
 def get_size_in_bytes(self):
     return defer(self.get_ioctl_interface().disk_get_drive_geometry_ex)()
Example #22
0
 def get_pdo(self):
     try:
         return defer(getattr)(self._device_object, 'psuedo_device_object')
     except KeyError:
         logger.exception("Getting device pdo raised KeyError")
         raise DeviceError()
Example #23
0
 def _get_hwid(self):
     hwid = defer(getattr)(self._device_object, 'hardware_ids')[0]
     hwid = hwid.replace('SCSI\\Disk',
                         '').replace('SCSI\\Array',
                                     '').replace('MPIO\\Disk', '')
     return hwid
 def get_pdo(self):
     try:
         return defer(getattr)(self._device_object, 'psuedo_device_object')
     except KeyError:
         logger.exception("Getting device pdo raised KeyError")
         raise DeviceError()