Skip to content

Commit

Permalink
bug: NERC Execution (#19)
Browse files Browse the repository at this point in the history
* Ensure sim files are made
* Make errors easier to follow
  • Loading branch information
cbolles committed Nov 22, 2024
1 parent a048dc8 commit f69d175
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 22 deletions.
11 changes: 11 additions & 0 deletions packages/backend/src/job/job.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,13 @@ export class JobService {
// this.jobTemplate.spec.ttlSecondsAfterFinished = 30;
this.jobTemplate.spec.template = new V1PodTemplateSpec();
this.jobTemplate.spec.template.spec = new V1PodSpec();

this.jobTemplate.spec.template.spec.volumes = [];
this.jobTemplate.spec.template.spec.volumes.push({
name: 'sim-files',
emptyDir: {}
});

this.jobTemplate.spec.template.spec.containers = [];
this.jobTemplate.spec.template.spec.containers.push({
resources: {
Expand All @@ -65,6 +72,10 @@ export class JobService {
{ name: 'REDIS_PORT', value: this.configService.getOrThrow<string>('redis.jobPort') },
{ name: 'REDIS_PASSWORD', value: this.configService.get<string>('redis.jobPassword') },
{ name: 'COMETS_GLOP', value: './lib/comets_glop' }
],
imagePullPolicy: 'Always',
volumeMounts: [

Check failure on line 77 in packages/backend/src/job/job.service.ts

View workflow job for this annotation

GitHub Actions / Check for Linting Errors

Replace `⏎········{·name:·'sim-files',·mountPath:·'/app/sim_files/'·}⏎······` with `{·name:·'sim-files',·mountPath:·'/app/sim_files/'·}`
{ name: 'sim-files', mountPath: '/app/sim_files/' }
]
});
this.jobTemplate.spec.template.spec.restartPolicy = 'Never';
Expand Down
39 changes: 19 additions & 20 deletions packages/backend/src/simulation/simulation.consumer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,14 @@ export class SimulationRequestConsumer extends WorkerHost {
async process(job: Job<SimulationRequest, any, string>): Promise<any> {
const request = job.data;
// Start the COMETs job
try {
const jobName = await this.jobService.triggerJob(request);
// Wait for the job to complete
const status = await this.awaitCompletion(jobName);
// If the status is error, collect and send error data
if (status == JobStatus.FAILURE) {
await this.handleError(request, jobName);
} else {
await this.handleSuccess(request, jobName);
}
} catch (e) {
console.error(e);
throw e;
const jobName = await this.jobService.triggerJob(request);
// Wait for the job to complete
const status = await this.awaitCompletion(jobName);
// If the status is error, collect and send error data
if (status == JobStatus.FAILURE) {
await this.handleError(request, jobName);
} else {
await this.handleSuccess(request, jobName);
}
}

Expand All @@ -50,14 +45,18 @@ export class SimulationRequestConsumer extends WorkerHost {
* Keep checking the status of the job once a second
*/
private async awaitCompletion(jobName: string): Promise<JobStatus> {
return new Promise(async (resolve, _reject) => {
return new Promise(async (resolve, reject) => {
const checkOperations = async () => {
const status = await this.jobService.getJobStatus(jobName);
if (status == JobStatus.RUNNING) {
setTimeout(checkOperations, 1000);
return;
} else {
resolve(status);
try {
const status = await this.jobService.getJobStatus(jobName);
if (status == JobStatus.RUNNING) {
setTimeout(checkOperations, 1000);
return;
} else {
resolve(status);
}
} catch (e) {
reject(e);
}
};
await checkOperations();
Expand Down
3 changes: 1 addition & 2 deletions packages/runner/.gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
venv/
sim_files/
!sim_files/.gitkeep
sim_files/*
sample.sh
sample-docker.sh
sample-petri.sh
Expand Down

0 comments on commit f69d175

Please sign in to comment.