Project

General

Profile

Actions

Feature #12876

closed

[CLI] arvados-client command-line tool

Added by Tom Clegg over 6 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
-
Target version:
-
Story points:
-

Description

Part of #12868.

Package an "arvados-client" program that does everything "arv" does (perhaps by shelling out to "arv" or one of the Python "arv-*" commands, depending on the subcommand)


Related issues

Related to Arvados - Idea #12308: [FUSE] Golang-based fuse driverResolvedTom CleggActions
Blocks Arvados - Idea #12868: Rearrange packages so "arv" runs a Go program that shells out to Python/Ruby code only if neededNewActions
Actions #1

Updated by Tom Clegg over 6 years ago

  • Blocks Idea #12868: Rearrange packages so "arv" runs a Go program that shells out to Python/Ruby code only if needed added
Actions #2

Updated by Tom Clegg over 6 years ago

12876-arvados-client @ a6ee0e990641973aa4d79e550821eb42eab25ca4

...adds "arvados-client" package with "arvados-client" binary
  • implements "arv-get" using the Go SDK
  • runs "arv" to handle the other commands that are currently handled inside "arv"
  • runs the appropriate Python/Ruby program ("arv-get", "arv-run-pipeline-instance", etc) to handle the non-builtin commands, just like "arv" does
todo:
  • ensure error messages are useful, especially "unknown subcommand", "--help", and "subcommand implemented by a ruby/python program which is not found / not installed"
related:
  • Go SDK doesn't cache the discovery doc, which makes "arv get" slow (perhaps comparable to rubygems overhead?) ...but that shortcoming should be addressed independently
Actions #3

Updated by Tom Clegg over 6 years ago

  • Related to Idea #12308: [FUSE] Golang-based fuse driver added
Actions #4

Updated by Tom Clegg over 6 years ago

12876-arvados-client @ b9851a978e1a1deb8853f7cd5b02acf7c55a24c8

If python pkg is not installed:

$ arvados-client keep ls
exec: "arv-ls": executable file not found in $PATH

Note: This subcommand uses the "arvados" Python module. If that is
not installed, try:
* "pip install arvados" (either as root or in a virtualenv), or
* "sudo apt-get install python-arvados-python-client", or
* see https://doc.arvados.org/install for more details.

If ruby pkg is not installed:

$ arvados-client pipeline run
exec: "arv-run-pipeline-instance": executable file not found in $PATH

Note: This subcommand uses the arvados-cli Ruby gem. If that is not
installed, try "gem install arvados-cli", or see
https://doc.arvados.org/install for more details.

Actions #5

Updated by Ward Vandewege over 6 years ago

This LGTM @ b9851a978e1a1deb8853f7cd5b02acf7c55a24c8

It works, and I looked at the code a bit, I see no big issues. Since this is a new piece of code, I see no real harm in merging now and improving it over time.

Actions #6

Updated by Tom Clegg over 6 years ago

  • Status changed from In Progress to Resolved
Actions

Also available in: Atom PDF