AcademySoftwareFoundation / AcademySoftwareFoundation/OpenCue
sandbox quick start guide fails to submit jobs
- Dominant language
- Python
- Stars
- 957
- Forks
- 259
- Avg merge
- 3d 6h
- Merged PRs (30d)
- 16
Description
**Describe the bug**
Following the [linux quickstart guide](https://www.opencue.io/docs/quick-starts/quick-start-linux/) for spinning up a deployment with docker-compose fails
**To Reproduce**
Steps to reproduce the behavior:
1. Follow guide and spin up sandbox deployment with docker-compse
2. Follow guide and install python modules into virtual env
3. Submit a job with APIusing following script
```python
#!/usr/bin/env python
from outline import Outline
from outline.cuerun import OutlineLauncher
from outline.modules.shell import Shell
from outline.depend import DependType
layer1 = Shell('layer1', command=['sleep 1'], range='1001-1100', threads=1, threadable=True)
layer2 = Shell('layer2', command=['echo $CUE_IFRAME'], range='1001-1100', threads=1, threadable=True)
layer2.depend_on(on_layer=layer1, depend_type=DependType.FrameByFrame)
ol = Outline(name='testing', name_unique=True)
ol.add_layer(layer1)
ol.add_layer(layer2)
launcher = OutlineLauncher(ol)
jobs = launcher.launch(False)
print(jobs)
```
Get the following error
```
jobs = launcher.launch(False)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/outline/cuerun.py", line 219, in launch
return self.__get_backend_module().launch(self, use_pycuerun=use_pycuerun)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/outline/backend/cue.py", line 124, in launch
jobs = opencue.api.launchSpecAndWait(launcher.serialize(use_pycuerun=use_pycuerun))
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/opencue/util.py", line 57, in _decorator
exception(exception.failMsg.format(details=details)))
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/opencue/util.py", line 44, in _decorator
return grpcFunc(*args, **kwargs)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/opencue/api.py", line 378, in launchSpecAndWait
job_pb2.JobLaunchSpecAndWaitRequest(spec=spec), timeout=Cuebot.Timeout).jobs
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/grpc/_channel.py", line 533, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/home/idris/projects/opensource/ASWF/OpenCue/venv_py2/local/lib/python2.7/site-packages/grpc/_channel.py", line 467, in _end_unary_response_blocking
raise _Rendezvous(state, None, None, deadline)
opencue.exception.CueInternalErrorException: Server caught an internal exception. Failed to launch and add job: Failed to parse job spec XML, java.io.FileNotFoundException: http://localhost:8080/spcue/dtd/cjsl-1.11.dtd
```
**Expected behavior**
Job should submit without error
**Additional context**
@larsbijl comment [here](https://github.com/AcademySoftwareFoundation/OpenCue/issues/896#issuecomment-772849398) highlights the cause of the inssue. The sandbox docker-compose is pulling an outdated cuebot image from `opencue/cuebot`
```
cuebot:
image: opencue/cuebot
```
**Possible Solutions**
One solution is to build the docker image from source by modifying the `docker-compose.yml`:
```
cuebot:
build:
context: ./
dockerfile: ./cuebot/Dockerfile
```
And then doing a build before running:
```bash
docker-compose --project-directory . -f sandbox/docker-compose.yml build
```
This has the drawback that the build process is quite slow, and this still requires updating the docs to add the build step.
The other, more desirable, solution is to push updated docker images.
Contributor guide
Research direction
Start with sandbox/docker-compose.yml and the Linux quick-start guide, then reproduce the deployment and submission steps using the provided Python script. Inspect the cuebot image reference and the documented build or image-update path. Done means the sandbox starts from the documented commands, the job submits without the missing cjsl-1.11.dtd error, and the guide matches the working setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, docker-compose, python
- Domain
- devops, documentation, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100