Пример #1
0
    def test_mount_when_drive_locked_raise_exception(self):
        tape_drive = self.create_tape_drive()
        tape_drive.locked = True
        tape_drive.save(update_fields=['locked'])
        storage_medium = self.create_storage_medium(tape_drive)

        with self.assertRaises(TapeDriveLockedError):
            mount_tape_medium_into_drive(tape_drive.pk, storage_medium.pk, 120)
Пример #2
0
def MountTape(self, medium_id, drive_id=None, timeout=120):
    if drive_id is None:
        drive = TapeDrive.objects.filter(
            status=20, storage_medium__isnull=True, io_queue_entry__isnull=True, locked=False,
        ).order_by('num_of_mounts').first()

        if drive is None:
            raise ValueError('No tape drive available')

        drive_id = drive.pk

    mount_tape_medium_into_drive(drive_id, medium_id, timeout)
Пример #3
0
    def test_mount_when_mount_tape_raise_exception(self, mock_mount_tape):
        mock_mount_tape.side_effect = BaseException

        tape_drive = self.create_tape_drive()
        storage_medium = self.create_storage_medium(tape_drive)

        with self.assertRaises(BaseException):
            mount_tape_medium_into_drive(tape_drive.pk, storage_medium.pk, 120)

        # Refresh from DB
        storage_medium.refresh_from_db()
        storage_medium.tape_slot.refresh_from_db()
        tape_drive.refresh_from_db()

        mock_mount_tape.assert_called_once_with("robot_device", 12, 2)
        self.assertEqual(tape_drive.locked, False)
        self.assertEqual(storage_medium.status, 100)
        self.assertEqual(tape_drive.locked, False)
        self.assertEqual(tape_drive.status, 100)
        self.assertEqual(storage_medium.tape_slot.status, 100)
Пример #4
0
    def test_mount_success(self, mount_tape, wait_to_come_online,
                           write_medium_label_to_drive):
        tape_drive = self.create_tape_drive()
        storage_medium = self.create_storage_medium(tape_drive)

        before = timezone.now()
        mount_tape_medium_into_drive(tape_drive.pk, storage_medium.pk, 121)
        after = timezone.now()

        # Refresh from DB
        storage_medium.refresh_from_db()
        storage_medium.tape_slot.refresh_from_db()
        tape_drive.refresh_from_db()

        mount_tape.assert_called_once_with("robot_device", 12, 2)
        wait_to_come_online.assert_called_once_with("unique_char", 121)
        self.assertEqual(tape_drive.num_of_mounts, 1)
        self.assertEqual(tape_drive.locked, True)
        self.assertTrue(before <= tape_drive.last_change <= after)
        self.assertEqual(storage_medium.num_of_mounts, 1)
        self.assertEqual(storage_medium.tape_drive_id, tape_drive.pk)
Пример #5
0
 def run(self, medium=None, drive=None, timeout=120):
     mount_tape_medium_into_drive(drive, medium, timeout)