Esempio n. 1
0
PyObject* dsmEndQuery_wrapper(PyObject * self, PyObject * args) {
    dsUint32_t dsmHandle;
    int rc = 0;

    if (!PyArg_ParseTuple(args, "I", &dsmHandle)) {
        return NULL;
    }
    rc = dsmEndQuery(dsmHandle);
    return Py_BuildValue("I", rc);
}
Esempio n. 2
0
int
tsmqueryadv(char *fs, char *hl, char *ll, struct taquery **taqp,
	int state, time_t date)
{
	qryRespBackupData *qaresp;
	struct taquery *taq, *tapole = NULL, *tarev = NULL;
	struct taquery *ftaq;
	DataBlk db;
	dsmObjName on;
	qryBackupData qa;
	int rv, nq;

	strcpy(on.fs, fs);
	strcpy(on.hl, hl);
	strcpy(on.ll, ll);
	on.objType = DSM_OBJ_WILDCARD;

	qa.stVersion = qryBackupDataVersion;
	qa.objName = &on;
	qa.owner = "";
	qa.objState = DSM_ACTIVE;
	qa.pitDate.year = DATE_MINUS_INFINITE;

	if ((rv = dsmBeginQuery(dsmHandle,qtBackup, &qa))) {
		tsmerror("dsmBeginQuery", rv);
		return rv;
	}
	db.stVersion = DataBlkVersion;
	ftaq = fetchtaq();

	db.bufferLen = sizeof(qryRespBackupData);
	db.bufferPtr = ftaq->tsmresp;
	qaresp = (qryRespBackupData *)db.bufferPtr;
	qaresp->stVersion = qryRespBackupDataVersion;

	nq = 0;
	while ((rv = dsmGetNextQObj(dsmHandle, &db)) == DSM_RC_MORE_DATA) {
		taq = ftaq;
		taq->da = (struct dirattribute *)&qaresp->objInfo;
		taq->fs = qaresp->objName.fs;
		taq->hl = qaresp->objName.hl;
		taq->ll = qaresp->objName.ll;
		taq->next = tapole;
		tapole = taq;
		ftaq = fetchtaq();
		db.bufferPtr = ftaq->tsmresp;
		qaresp = (qryRespBackupData *)db.bufferPtr;
		qaresp->stVersion = qryRespBackupDataVersion;
		nq++;
		if (dflag && (nq % 1000) == 0)
			printf("**** Status taken of %d objects\n", nq);
	}
	if (dflag)
		printf("!!!! Total %d objects\n", nq);
	if (rv == DSM_RC_FINISHED || rv == DSM_RC_ABORT_NO_MATCH)
		rv = 0;
	else {
		tsmerror("dsmGetNextQObj", rv);
		return rv;
	}
	if ((rv = dsmEndQuery(dsmHandle)))
		tsmerror("dsmEndQuery", rv);
	while (tapole) {
		taq = tarev;
		tarev = tapole;
		tapole = tapole->next;
		tarev->next = taq;
	}
	*taqp = tarev;
	return rv;
}
Esempio n. 3
0
int
tsmquery(char *fs, char *hl, char *ll, struct taquery **taqp, struct tm *tm)
{
	qryRespBackupData *qaresp;
	struct taquery *taq, *tapole = NULL, *tarev = NULL;
	struct taquery *ftaq;
	DataBlk db;
	dsmObjName on;
	qryBackupData qa;
	int rv, nq;

	strcpy(on.fs, fs);
	strcpy(on.hl, hl);
	strcpy(on.ll, ll);
	on.objType = DSM_OBJ_WILDCARD;

	qa.stVersion = qryBackupDataVersion;
	qa.objName = &on;
	qa.owner = "";
	qa.objState = DSM_ACTIVE;
	if (tm != NULL) {
		qa.pitDate.year = tm->tm_year;
		qa.pitDate.month = tm->tm_mon;
		qa.pitDate.day = tm->tm_mday;
		qa.pitDate.hour = tm->tm_hour;
		qa.pitDate.minute = tm->tm_min;
		qa.pitDate.second = tm->tm_sec;
		qa.objState = DSM_ANY_MATCH;
	} else
		qa.pitDate.year = DATE_MINUS_INFINITE;

	if ((rv = dsmBeginQuery(dsmHandle,qtBackup, &qa))) {
		tsmerror("dsmBeginQuery", rv);
		return rv;
	}
	db.stVersion = DataBlkVersion;
	ftaq = fetchtaq();

	db.bufferLen = sizeof(qryRespBackupData);
	db.bufferPtr = ftaq->tsmresp;
	qaresp = (qryRespBackupData *)db.bufferPtr;
	qaresp->stVersion = qryRespBackupDataVersion;

	nq = 0;
e0:	while ((rv = dsmGetNextQObj(dsmHandle, &db)) == DSM_RC_MORE_DATA) {
		taq = ftaq;
		taq->da = (struct dirattribute *)&qaresp->objInfo;
		taq->fs = qaresp->objName.fs;
		taq->hl = qaresp->objName.hl;
		taq->ll = qaresp->objName.ll;
		taq->next = tapole;
		tapole = taq;
		ftaq = fetchtaq();
		db.bufferPtr = ftaq->tsmresp;
		qaresp = (qryRespBackupData *)db.bufferPtr;
		qaresp->stVersion = qryRespBackupDataVersion;
		nq++;
		if (dflag && (nq % 1000) == 0)
			printf("**** Status taken of %d objects\n", nq);
	}
	if (rv == DSM_RC_UNKNOWN_FORMAT) {
		/* XXX what to do??? */
		printf("unknown format...\n");
		goto e0;
	}
	if (dflag)
		printf("!!!! Total %d objects\n", nq);
	if (rv == DSM_RC_FINISHED || rv == DSM_RC_ABORT_NO_MATCH) {
		rv = 0;
	} else {
		tsmerror("dsmGetNextQObj", rv);
		return rv;
	}
	if ((rv = dsmEndQuery(dsmHandle)))
		tsmerror("dsmEndQuery", rv);
	while (tapole) {
		taq = tarev;
		tarev = tapole;
		tapole = tapole->next;
		tarev->next = taq;
	}
	*taqp = tarev;
	return rv;
}