int ndmca_tt_wrapper (struct ndm_session *sess, int (*func)(struct ndm_session *sess)) { int rc; rc = (*func)(sess); if (rc != 0) { ndmalogf (sess, "Test", 1, "Failure"); } ndmca_test_done_phase (sess); /* clean up mess */ ndmca_test_log_note (sess, 2, "Cleaning up..."); ndmca_tape_open (sess); /* Open the tape, OK if already opened */ ndmca_tape_mtio (sess, NDMP9_MTIO_REW, 1, 0); rc = ndmca_tape_close (sess); /* close, collective error */ if (rc != 0) { ndmca_test_log_note (sess, 0, "Cleaning up failed, quiting"); } else { ndmca_test_log_note (sess, 2, "Cleaning up done"); } return rc; }
int ndmca_test_load_tape(struct ndm_session* sess) { struct ndm_control_agent* ca = sess->control_acb; int rc; ca->tape_mode = NDMP9_TAPE_READ_MODE; ca->is_label_op = 1; rc = ndmca_op_robot_startup(sess, 1); if (rc) return rc; rc = ndmca_connect_tape_agent(sess); if (rc) { ndmconn_destruct(sess->plumb.tape); sess->plumb.tape = NULL; return rc; /* already tattled */ } rc = ndmca_media_load_first(sess); if (rc) return rc; ndmca_tape_close(sess); return 0; }
int ndmca_media_close_tape (struct ndm_session *sess) { struct ndm_control_agent *ca = sess->control_acb; int rc; ndmalogf (sess, 0, 2, "Closing tape drive %s", ca->job.tape_device); rc = ndmca_tape_close (sess); return 0; }
int ndmca_test_tape_close (struct ndm_session *sess, ndmp9_error expect_err) { struct ndmconn * conn = sess->plumb.tape; int rc; /* close previous test if there is one */ ndmca_test_close (sess); rc = ndmca_tape_close (sess); rc = ndmca_test_check_expect (conn, rc, expect_err); return rc; }
int ndmca_test_load_tape (struct ndm_session *sess) { struct ndm_control_agent *ca = &sess->control_acb; int rc; ca->tape_mode = NDMP9_TAPE_READ_MODE; ca->is_label_op = 1; rc = ndmca_op_robot_startup (sess, 1); if (rc) return rc; rc = ndmca_connect_tape_agent(sess); if (rc) return rc; rc = ndmca_media_load_first (sess); if (rc) return rc; ndmca_tape_close (sess); return 0; }