Skip to content

Commit

Permalink
Fix ldf dataset path not supporting combinations
Browse files Browse the repository at this point in the history
  • Loading branch information
rubensworks committed Aug 4, 2021
1 parent f45975e commit 6cd4edc
Show file tree
Hide file tree
Showing 2 changed files with 75 additions and 2 deletions.
12 changes: 10 additions & 2 deletions packages/hook-sparql-endpoint-ldf/lib/HookSparqlEndpointLdf.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,15 +81,23 @@ export class HookSparqlEndpointLdf implements Hook {
await context.docker.networkCreator.create({ Name: this.getDockerImageName(context, 'network') });
const network = options?.docker?.network || networkHandler!.network.id;

// Determine dataset path
let datasetPath = this.dataset;
if (datasetPath.startsWith('generated/')) {
datasetPath = Path.join(context.experimentPaths.generated, datasetPath.slice(10));
} else {
datasetPath = Path.join(context.experimentPaths.root, this.dataset);
}

// Start LDF server
const serverHandler = await context.docker.containerCreator.start({
containerName: 'ldfserver',
imageName: this.getDockerImageName(context, 'server'),
resourceConstraints: this.resourceConstraints,
hostConfig: {
Binds: [
`${Path.join(context.experimentPaths.root, this.dataset)}:/data/dataset.hdt`,
`${Path.join(context.experimentPaths.root, this.dataset)}.index.v1-1:/data/dataset.hdt.index.v1-1`,
`${datasetPath}:/data/dataset.hdt`,
`${datasetPath}.index.v1-1:/data/dataset.hdt.index.v1-1`,
],
PortBindings: {
'3000/tcp': [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,71 @@ describe('HookSparqlEndpointLdf', () => {

expect(subHook.start).toHaveBeenCalledWith(context, { docker: { network: 'MY-NETWORK' }});
});

it('should start the hook for a different dataset path', async() => {
hook = new HookSparqlEndpointLdf(
'input/dockerfiles/Dockerfile-ldf-server',
'input/dockerfiles/Dockerfile-ldf-server-cache',
resourceConstraints,
'input/config-ldf-server.json',
3_001,
3_000,
4,
8_192,
'input/dataset.hdt',
subHook,
);

const handler = await hook.start(context);
expect(handler).toBeInstanceOf(ProcessHandlerComposite);
expect((<any> handler).processHandlers).toHaveLength(4);

expect(context.docker.networkCreator.create).toHaveBeenCalledWith({
Name: 'jrb-experiment-CWD-sparql-endpoint-ldf-network',
});

expect(context.docker.containerCreator.start).toHaveBeenCalledWith({
containerName: 'ldfserver',
imageName: 'jrb-experiment-CWD-sparql-endpoint-ldf-server',
resourceConstraints,
logFilePath: Path.join('CWD', 'output', 'logs', 'sparql-endpoint-ldf-server.txt'),
statsFilePath: Path.join(context.cwd, 'output', 'stats-sparql-endpoint-ldf-server.csv'),
hostConfig: {
Binds: [
`${context.experimentPaths.root}/input/dataset.hdt:/data/dataset.hdt`,
`${context.experimentPaths.root}/input/dataset.hdt.index.v1-1:/data/dataset.hdt.index.v1-1`,
],
PortBindings: {
'3000/tcp': [
{ HostPort: `3001` },
],
},
NetworkMode: 'NETWORK',
},
});

expect(context.docker.containerCreator.start).toHaveBeenCalledWith({
containerName: 'cache',
imageName: 'jrb-experiment-CWD-sparql-endpoint-ldf-cache',
resourceConstraints,
logFilePath: Path.join('CWD', 'output', 'logs', 'sparql-endpoint-ldf-cache.txt'),
statsFilePath: Path.join(context.cwd, 'output', 'stats-sparql-endpoint-ldf-cache.csv'),
hostConfig: {
Binds: [
`${context.experimentPaths.root}/input/nginx-default:/etc/nginx/sites-enabled/default`,
`${context.experimentPaths.root}/input/nginx.conf:/etc/nginx/nginx.conf`,
],
PortBindings: {
'80/tcp': [
{ HostPort: `3000` },
],
},
NetworkMode: 'NETWORK',
},
});

expect(subHook.start).toHaveBeenCalledWith(context, { docker: { network: 'NETWORK' }});
});
});

describe('clean', () => {
Expand Down

0 comments on commit 6cd4edc

Please sign in to comment.