Esempio n. 1
0
File: iscsi.py Progetto: q3k/benji
 def _iscsi_call_sync(operation: str, function: Callable, iscsi_context,
                      *args, **kwargs) -> Any:
     result = function(iscsi_context, *args, **kwargs)
     if result is None or isinstance(result, int) and result < 0:
         raise RuntimeError('{} failed: {}'.format(
             operation,
             libiscsi.iscsi_get_error(iscsi_context).rstrip()))
     return result
Esempio n. 2
0
File: iscsi.py Progetto: q3k/benji
 def _iscsi_execute_sync(operation: str, function: Callable, iscsi_context,
                         *args, **kwargs) -> Any:
     task = function(iscsi_context, *args, **kwargs)
     if task is not None:
         status, sense = libiscsi.scsi_task_get_status(task)
         if status != libiscsi.SCSI_STATUS_GOOD:
             raise RuntimeError('{} failed with {}, ASCQ {}.'.format(
                 operation, libiscsi.scsi_sense_key_str(sense.key),
                 libiscsi.scsi_sense_ascq_str(sense.ascq)))
         else:
             return task
     else:
         raise RuntimeError('{} failed: {}'.format(
             operation, libiscsi.iscsi_get_error(iscsi_context)))