...
Creating and Adding a New Tool
- Developer (Gregory Jansen) Developer downloads BrownDog development environment in docker container (in dockerhub, link on BD webpage)
- Contains running Clowder instance, Polyglot instance, basic development tools, mabye even an IDE configured and ready to go
- Contains a bare-bones extractor ready to be modified for a new tool (with comments suggesting where to edit) (Rui Liu has started this)
- Contains a bare-bones converter ready to be modified for a new tool (with comments suggesting where to edit)
- Formerly Rob's work. Gregory Jansen to drive out this step.
- Developer (Gregory Jansen) Developer installs tool, creates interface script(s)
- Adds sample input file(s)
- Example extractor: imagemagick edge detector
- Example converter: imagemagick jpg to ico converter
- Smruti Padhy and Inna Zharnitsky will assist Gregory Jansen here
- Developer (Gregory Jansen) Developer creates dockerfile
- For extractors this should contain only the tool, its dependencies, and the extractor
- For converters this should contain the basic Polyglot setup, ideally only the Software Server, the tool, its dependencies, and the converter interface script
- Developer (Rui Liu) Developer submits tool to Tools Catalog (using BrownDog account)
- Interface script(s), dockerfile, sample input, sample output
- Through web interface
- Through script in development environment (probably the ideal way)
- Admin (Inna Zharnitsky) Admin presses button which deploys tool in a seperate Clowder/Polyglot sandbox, passes in the given input file, and checks the obtained output file against what is provided
- Returns pass/fail
- Inna Zharnitsky has started this UI, Marcus Slavenas to support
- Admin (Rui Liu) Admin selects instances to deploy interface on
- e.g. dts-dev or dts
- selects minimum number of instances to provision (e.g. 5 instances)
- presses button to deploy
- Admin (Sandeep Puthanveetil Satheesan) Admin receives status page showing number of tools deployed and where, load on each tool, etc...
- No support for this at this time.
- How to pull this from MongoDB
- Sandeep Puthanveetil Satheesan to investigate
Using a Tool
- (Luigi Marini) API Gateway with keys and tokens (uses Crowd credentials)
- (Jong Lee) Simple web interface (requires BrownDog account) Luigi Marini 's API work applies here
- Web form with field box for file URL or upload
- Tool selection dropdown box (means of selecting a specific tool)
- Output select dropdown box (means of allowing system to select tool)
- Clowder will run all relevant extractors (obtained by selecting "json" as the output)
- Polyglot will use I/O-graph
- Suggetions pane will update below
- REST API performing this same operation
- Python code in Jupyter lab notebook
- R code
- Matlab code
- curl commands