Exemplo n.º 1
0
void	generate_occi_sql_on_create( FILE * h, char * nptr, char * fullname )
{
	char	buffer[1024];
	char *	xptr=(char *) 0;
	char *	wptr;
	struct	item * iptr;
	int	items=0;
	fprintf(h,"\nprivate int %s_sql_on_create()\n{\n",fullname);
	fprintf(h,"\tstruct occi_expression expression={(char *) 0, (void *) 0};\n");
	for ( 	iptr= C.first;
		iptr != (struct item *) 0;
		iptr = iptr->next )
	{
		if (!( strcmp( iptr->name, "previous" ) ))
			continue;
		else if (!( strcmp( iptr->name, "next" ) ))
			continue;
		else if (!( strcmp( iptr->name, "parent" ) ))
			continue;
		else if (!( strncmp( iptr->name, "first", strlen("first") ) ))
			continue;
		else if (!( strncmp( iptr->name, "last", strlen("last") ) ))
			continue;
		else
		{
			if (!( strcmp( iptr->basic, "int" ) ))
				sprintf(buffer, "%s %s INTEGER",(xptr ? "," : " ("),iptr->name);
			else 	sprintf(buffer, "%s %s CHAR(128)",(xptr ? "," : " ("),iptr->name);
			if ( xptr )
			{
				if (!( wptr = allocate( strlen( xptr ) + strlen( buffer ) + 3 ) ))
					break;
				else	sprintf(wptr,"%s%s",xptr,buffer);
				liberate( xptr );
				xptr = wptr;
			}
			else	xptr = allocate_string( buffer );
			if (!( strcmp( iptr->name, "id" ) ))
				xptr = join_string( xptr, " PRIMARY KEY");							
		}
	}
	if ( xptr )
	{
		xptr = join_string( xptr, " ) ");
		fprintf(h,"\tif (!( expression.value = allocate_string(%c%s%c) ))\n",0x0022,xptr,0x0022);
		fprintf(h,"\t\treturn( 27 );\n");
	}
	fprintf(h,"\treturn(0);\n");
	fprintf(h,"}\n");
	return;
}
Exemplo n.º 2
0
char *factoid_set(array *args, struct irc_message *msg) {
	size_t i;
	char value[512];
	char *s;

	if (array_count(args) < 2) return NULL;

	join_string(args, 1, value, " ");
/*
	value[0] = 0;
	for (i = 1; i != array_count(args); ++i) {
		s = *(char**)array_at(args, i);
		strcat(value, s);
		strcat(value, " ");
	}
*/
	
	strmap_insert(&factoids, *(char**)array_at(args, 0), value);
	return NULL;
}
Exemplo n.º 3
0
char *shell(array *args, struct irc_message *msg) {
	char dope[512];
	int hookah[6];	
	ssize_t readbytes;
	pid_t pothead;
	char *gram;

	if (array_count(args) < 1) return NULL;
	join_string(args, 0, dope, " ");	
	
	pipe(&hookah[0]);
	pipe(&hookah[2]);
	pipe(&hookah[4]);

	pothead = fork();

	if (pothead == 0) {
		dup2(hookah[0], 0); close(hookah[1]);
		dup2(hookah[3], 1); close(hookah[2]);
		dup2(hookah[5], 2); close(hookah[4]);
		execl("/bin/bash", "/bin/bash", "-s", NULL);	
		exit(0);
	}
	close(hookah[0]);
	close(hookah[3]);
	close(hookah[5]);
	
	write(hookah[1], dope, strlen(dope));
	close(hookah[1]);
	memset(dope, 0, 512);
	for (gram = dope; (readbytes = read(hookah[2], gram, dope + 512 - gram)) > 0; gram += readbytes);

	for (gram = dope; *gram; ++gram) {
		if (*gram == '\n' || *gram == '\r') *gram = ' ';
	}

	return new_string(dope);	
}
Exemplo n.º 4
0
int main(int argc, char *argv[]) {

/* The current event file is /lsf/work/lsf-odyssey/logdir/lsb.acct"
 * 
 * John Brunelle has all previous (mostly) event files in /n/RC_Team/lsf_logs.sorted/acct
 */
    FILE  *fp;
    char  *eventFile = argv[1];
    int    lineNum   = 0;
    struct eventRec     *record;
    struct jobFinishLog *finishJob;

    if (argc != 2) {
        printf("Usage: %s lsb.acct\n", argv[0]);
        exit(-1);
    }

    if (lsb_init(argv[0]) < 0) {
        lsb_perror("lsb_init");
        exit(-1);
    }

    fp = fopen(eventFile, "r");
    if (fp == NULL) {
        perror(eventFile);
        exit(-1);
    }

    struct jobFinishLog *finishJob;

    for (;;) {

        record = lsb_geteventrec(fp, &lineNum);

        if (record == NULL) {
            if (lsberrno == LSBE_EOF)
                exit(0);
            lsb_perror("lsb_geteventrec");
            exit(-1);
        }


	if (record->type == EVENT_JOB_FINISH) {
	  
	  finishJob = &(record->eventLog.jobFinishLog);
	    
	    int    jobId         = finishJob->jobId;
	    int    userId        = finishJob->userId;
	    char  *userName      = finishJob->userName;
	    int    options       = finishJob->options;
	    int    numProcessors = finishJob->numProcessors;
	    int    jStatus       = finishJob->jStatus;
	    time_t submitTime    = finishJob->submitTime;
	    time_t startTime     = finishJob->startTime;
	    time_t endTime       = finishJob->endTime;
	    char  *queue         = finishJob->queue;

	    char  *subtime       = ctime(&submitTime);
	    char  *starttime     = ctime(&startTime);
	    char  *endtime       = ctime(&endTime);

	    subtime[24]   = '\0';
	    starttime[24] = '\0';
	    endtime[24]   = '\0';

	    printf("\"\\N\",\"%d\",\"%d\",\"%s\",\"%d\",\"%d\",\"%d\",\"%ld\",\"%ld\",\"%ld\",\"%s\",",
		   jobId,
		   userId,
		   userName,
		   options,
		   numProcessors,
		   jStatus,
		   submitTime,
		   startTime,
		   endTime,
		   queue);
	    
	    char *resReq       = finishJob->resReq;
	    char *fromHost     = finishJob->fromHost;
	    char *cwd          = finishJob->cwd;
	    char *inFile       = finishJob->inFile;
	    char *outFile      = finishJob->outFile;
	    char *errFile      = finishJob->errFile;
	    char *inFileSpool  = finishJob->inFileSpool;

	    printf("\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",",
		   resReq,
		   fromHost,
		   cwd,
		   inFile,
		   outFile,
		   errFile,
		   inFileSpool);
	    
	    char  *commandSpool  = finishJob->commandSpool;
	    char  *jobFile       = finishJob->jobFile;
	    int    numAskedHosts = finishJob->numAskedHosts;
	    char **askedHosts    = finishJob->askedHosts;
	    float  hostFactor    = finishJob->hostFactor;
	    int    numExHosts    = finishJob->numExHosts;
	    char **execHosts     = finishJob->execHosts;
	    float  cpuTime       = finishJob->cpuTime;
	    char  *jobName       = finishJob->jobName;
	    char  *command       = finishJob->command;

	    char *askedHostsString = join_string(askedHosts,numAskedHosts,",");
	    char *execHostsString  = join_string(execHosts,numExHosts,",");


	    printf("\"%s\",\"%s\",\"%d\",\"%s\",\"%f\",\"%d\",\"%s\",\"%f\",\"%s\",",commandSpool,jobFile,numAskedHosts,askedHostsString,hostFactor,numExHosts,execHostsString,cpuTime,jobName);

	    /*struct lsfRuage *lsfRusage = finishJob->lsfRusage;*/
	    char *dependCond       = finishJob->dependCond;
	    char *timeEvent        = finishJob->timeEvent;
	    char *preExecCmd       = finishJob->preExecCmd;
	    char *mailUser         = finishJob->mailUser;
	    char *projectName      = finishJob->projectName;
	    int   exitStatus       = finishJob->exitStatus;
	    int   maxNumProcessors = finishJob->maxNumProcessors;

	    printf("\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%d\",\"%d\",",dependCond,timeEvent,preExecCmd,mailUser,projectName,exitStatus,maxNumProcessors);

	    char *loginShell      = finishJob->loginShell;
	    int   idx             = finishJob->idx;
	    int   maxRMem         = finishJob->maxRMem;
	    int   maxRSwap        = finishJob->maxRSwap;
	    char *rsvId           = finishJob->rsvId;
	    char *sla             = finishJob->sla;
	    int   exceptMask      = finishJob->exceptMask;
	    char *additionalInfo  = finishJob->additionalInfo;

	    printf("\"%s\",\"%d\",\"%d\",\"%d\",\"%s\",\"%s\",\"%d\",\"%s\",",loginShell,idx,maxRMem,maxRSwap,rsvId,sla,exceptMask,additionalInfo);

	    int    exitInfo          = finishJob->exitInfo;
	    int    warningTimePeriod = finishJob->warningTimePeriod;
	    char  *warningAction     = finishJob->warningAction;
	    char  *chargedSAAP       = finishJob->chargedSAAP;
	    char  *licenseProject    = finishJob->licenseProject;
	    char  *app               = finishJob->app;
	    char  *postExecCmd       = finishJob->postExecCmd;
	    int    runtimeEstimation = finishJob->runtimeEstimation;
	    char  *jgroup            = finishJob->jgroup;
	    int    options2          = finishJob->options2;
	    char  *requeueEValues    = finishJob->requeueEValues;
	    char  *notifyCmd         = finishJob->notifyCmd;
	    time_t lastResizeTime    = finishJob->lastResizeTime;
	    char   *jobDescription   = finishJob->jobDescription;
	    /*	    struct submit_ext *submitExt = finishJob->submitExt;*/

	    char *tmpstr = ctime(&lastResizeTime);

	    tmpstr[24] = '\0';

	    printf("\"%d\",\"%d\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%d\",\"%s\",\"%d\",\"%s\",\"%s\",\"%ld\",\"%s\",\"%s;\n",
		   exitInfo,
		   warningTimePeriod,
		   warningAction,
		   chargedSAAP,
		   licenseProject,
		   app,
		   postExecCmd,
		   runtimeEstimation,
		   jgroup,
		   options2,
		   requeueEValues,
		   notifyCmd,
		   lastResizeTime,
		   jobDescription,
		   command);

	}
	
    }
}